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 82240 : pattern5 (rtx x1, machine_mode i1)
57 : {
58 82240 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
59 82240 : int res ATTRIBUTE_UNUSED;
60 82240 : if (!register_operand (operands[0], i1)
61 80279 : || GET_MODE (x1) != i1
62 80279 : || !register_operand (operands[1], i1)
63 156801 : || !register_operand (operands[2], i1))
64 15715 : return -1;
65 : return 0;
66 : }
67 :
68 : int
69 229248 : pattern12 (rtx x1, machine_mode i1)
70 : {
71 229248 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
72 229248 : int res ATTRIBUTE_UNUSED;
73 229248 : if (!register_operand (operands[0], i1)
74 229085 : || GET_MODE (x1) != i1
75 229085 : || !register_operand (operands[1], i1)
76 407128 : || !nonimmediate_operand (operands[2], i1))
77 178898 : return -1;
78 : return 0;
79 : }
80 :
81 : int
82 17106 : pattern17 (rtx x1, int *pnum_clobbers)
83 : {
84 17106 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
85 17106 : rtx x2;
86 17106 : int res ATTRIBUTE_UNUSED;
87 17106 : if (pnum_clobbers == NULL)
88 : return -1;
89 17106 : x2 = XEXP (x1, 1);
90 17106 : if (GET_MODE (x2) != E_QImode)
91 : return -1;
92 17076 : 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 273355 : pattern27 (rtx x1)
129 : {
130 273355 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
131 273355 : rtx x2, x3, x4, x5;
132 273355 : int res ATTRIBUTE_UNUSED;
133 273355 : x2 = XEXP (x1, 0);
134 273355 : operands[0] = x2;
135 273355 : x3 = XEXP (x1, 1);
136 273355 : x4 = XEXP (x3, 0);
137 273355 : operands[1] = x4;
138 273355 : x5 = XEXP (x3, 1);
139 273355 : operands[2] = x5;
140 273355 : 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 1495 : case E_V8SFmode:
165 1495 : if (pattern26 (x3,
166 : E_V8SFmode) != 0)
167 : return -1;
168 : return 4;
169 :
170 726 : case E_V4SFmode:
171 726 : 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 736 : case E_V2DFmode:
189 736 : if (pattern26 (x3,
190 : E_V2DFmode) != 0)
191 : return -1;
192 : return 8;
193 :
194 387 : case E_V32QImode:
195 387 : if (pattern3 (x3,
196 : E_V32QImode) != 0)
197 : return -1;
198 : return 9;
199 :
200 741 : case E_V16HImode:
201 741 : if (pattern3 (x3,
202 : E_V16HImode) != 0)
203 : return -1;
204 : return 10;
205 :
206 945 : case E_V8SImode:
207 945 : if (pattern3 (x3,
208 : E_V8SImode) != 0)
209 : return -1;
210 : return 11;
211 :
212 172 : case E_V16SImode:
213 172 : if (pattern3 (x3,
214 : E_V16SImode) != 0)
215 : return -1;
216 : return 12;
217 :
218 3150 : case E_V4SImode:
219 3150 : if (!register_operand (operands[0], E_V4SImode)
220 3150 : || 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 211 : case E_V64QImode:
243 211 : 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 9156 : case E_V8HImode:
261 9156 : if (!register_operand (operands[0], E_V8HImode)
262 9156 : || 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 145077 : pattern51 (rtx x1, int *pnum_clobbers)
291 : {
292 145077 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
293 145077 : rtx x2, x3, x4, x5;
294 145077 : int res ATTRIBUTE_UNUSED;
295 145077 : if (pnum_clobbers == NULL)
296 : return -1;
297 145071 : x2 = XEXP (x1, 1);
298 145071 : x3 = XEXP (x2, 1);
299 145071 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
300 : return -1;
301 126485 : x4 = XEXP (x1, 0);
302 126485 : if (GET_CODE (x4) != REG
303 126485 : || REGNO (x4) != 17)
304 : return -1;
305 126485 : x5 = XEXP (x2, 0);
306 126485 : 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 3089 : pattern61 (rtx x1)
338 : {
339 3089 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
340 3089 : rtx x2, x3, x4;
341 3089 : int res ATTRIBUTE_UNUSED;
342 3089 : x2 = XEXP (x1, 0);
343 3089 : operands[0] = x2;
344 3089 : x3 = XEXP (x1, 1);
345 3089 : x4 = XVECEXP (x3, 0, 0);
346 3089 : operands[1] = x4;
347 3089 : 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 356 : case E_HFmode:
357 356 : if (!register_operand (operands[0], E_HFmode)
358 356 : || GET_MODE (x3) != E_HFmode
359 712 : || !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 13897 : pattern70 (rtx x1)
370 : {
371 13897 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
372 13897 : int res ATTRIBUTE_UNUSED;
373 13897 : switch (GET_MODE (operands[0]))
374 : {
375 3479 : case E_HImode:
376 3479 : if (!register_operand (operands[0], E_HImode)
377 3479 : || GET_MODE (x1) != E_HImode)
378 : return -1;
379 3425 : 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 1171 : case E_V16SImode:
394 1171 : if (!register_operand (operands[1], E_V16SImode)
395 1171 : || !nonimmediate_operand (operands[2], E_V16SImode))
396 165 : return -1;
397 : return 2;
398 :
399 : default:
400 : return -1;
401 : }
402 :
403 6864 : case E_QImode:
404 6864 : if (!register_operand (operands[0], E_QImode)
405 6864 : || GET_MODE (x1) != E_QImode)
406 : return -1;
407 6667 : switch (GET_MODE (operands[1]))
408 : {
409 1544 : case E_V8HImode:
410 1544 : if (!register_operand (operands[1], E_V8HImode)
411 1544 : || !nonimmediate_operand (operands[2], E_V8HImode))
412 83 : return -1;
413 : return 3;
414 :
415 1302 : case E_V8SImode:
416 1302 : if (!register_operand (operands[1], E_V8SImode)
417 1302 : || !nonimmediate_operand (operands[2], E_V8SImode))
418 115 : 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 1136 : case E_V8DImode:
428 1136 : if (!register_operand (operands[1], E_V8DImode)
429 1136 : || !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 715 : case E_V2DImode:
440 715 : if (!register_operand (operands[1], E_V2DImode)
441 715 : || !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 1632 : pattern111 (rtx x1, machine_mode i1)
493 : {
494 1632 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
495 1632 : rtx x2;
496 1632 : int res ATTRIBUTE_UNUSED;
497 1632 : if (!nonimmediate_operand (operands[0], i1)
498 1632 : || GET_MODE (x1) != i1)
499 : return -1;
500 1632 : x2 = XEXP (x1, 0);
501 1632 : if (GET_MODE (x2) != i1
502 1632 : || !x86_64_general_operand (operands[1], i1))
503 187 : return -1;
504 : return 0;
505 : }
506 :
507 : int
508 47332 : pattern116 (rtx x1)
509 : {
510 47332 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
511 47332 : rtx x2, x3, x4;
512 47332 : int res ATTRIBUTE_UNUSED;
513 47332 : x2 = XEXP (x1, 0);
514 47332 : x3 = XEXP (x2, 0);
515 47332 : operands[1] = x3;
516 47332 : x4 = XEXP (x2, 1);
517 47332 : operands[2] = x4;
518 47332 : switch (GET_MODE (operands[0]))
519 : {
520 39173 : case E_DImode:
521 39173 : if (!register_operand (operands[0], E_DImode)
522 39173 : || GET_MODE (x1) != E_DImode)
523 : return -1;
524 39072 : switch (GET_MODE (x2))
525 : {
526 35042 : case E_SImode:
527 35042 : if (!nonimmediate_operand (operands[1], E_SImode))
528 : return -1;
529 : return 0;
530 :
531 3099 : case E_QImode:
532 3099 : if (!nonimmediate_operand (operands[1], E_QImode)
533 3099 : || !nonmemory_operand (operands[2], E_QImode))
534 184 : return -1;
535 : return 1;
536 :
537 931 : case E_HImode:
538 931 : if (!nonimmediate_operand (operands[1], E_HImode)
539 931 : || !nonmemory_operand (operands[2], E_QImode))
540 12 : return -1;
541 : return 2;
542 :
543 : default:
544 : return -1;
545 : }
546 :
547 7461 : case E_SImode:
548 7461 : if (!register_operand (operands[0], E_SImode)
549 7461 : || GET_MODE (x1) != E_SImode
550 14922 : || !nonmemory_operand (operands[2], E_QImode))
551 140 : return -1;
552 7321 : switch (GET_MODE (x2))
553 : {
554 5530 : case E_QImode:
555 5530 : if (!nonimmediate_operand (operands[1], E_QImode))
556 : return -1;
557 : return 3;
558 :
559 1791 : case E_HImode:
560 1791 : 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 3478 : pattern145 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
594 : {
595 3478 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
596 3478 : rtx x2;
597 3478 : int res ATTRIBUTE_UNUSED;
598 3478 : if (!nonimmediate_operand (operands[0], i1)
599 3478 : || GET_MODE (x1) != i1)
600 : return -1;
601 3478 : x2 = XEXP (x1, 0);
602 3478 : if (GET_MODE (x2) != i1
603 3478 : || !register_operand (operands[1], i3)
604 3477 : || !nonimm_or_0_operand (operands[2], i1)
605 6943 : || !register_operand (operands[3], i2))
606 229 : return -1;
607 : return 0;
608 : }
609 :
610 : int
611 7140 : pattern152 (rtx x1, machine_mode i1, machine_mode i2)
612 : {
613 7140 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
614 7140 : rtx x2;
615 7140 : int res ATTRIBUTE_UNUSED;
616 7140 : if (!register_operand (operands[0], i1)
617 7140 : || GET_MODE (x1) != i1)
618 : return -1;
619 6814 : x2 = XEXP (x1, 0);
620 6814 : if (GET_MODE (x2) != i1
621 6814 : || !nonimmediate_operand (operands[1], i1)
622 6763 : || !nonimm_or_0_operand (operands[2], i1)
623 13435 : || !register_operand (operands[3], i2))
624 642 : return -1;
625 : return 0;
626 : }
627 :
628 : int
629 5603 : pattern154 (rtx x1)
630 : {
631 5603 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
632 5603 : rtx x2, x3, x4, x5;
633 5603 : int res ATTRIBUTE_UNUSED;
634 5603 : x2 = XEXP (x1, 0);
635 5603 : x3 = XEXP (x2, 0);
636 5603 : operands[1] = x3;
637 5603 : x4 = XEXP (x1, 1);
638 5603 : operands[2] = x4;
639 5603 : x5 = XEXP (x1, 2);
640 5603 : operands[3] = x5;
641 5603 : 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 574 : case E_V32QImode:
698 574 : 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 : pattern196 (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 : || pattern195 (x1,
967 : E_V32HImode,
968 : E_V16HImode) != 0)
969 24 : return -1;
970 : return 0;
971 : }
972 :
973 : int
974 1007 : pattern218 (rtx x1, machine_mode i1)
975 : {
976 1007 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
977 1007 : rtx x2;
978 1007 : int res ATTRIBUTE_UNUSED;
979 1007 : if (GET_MODE (x1) != i1)
980 : return -1;
981 1007 : x2 = XEXP (x1, 0);
982 1007 : if (GET_MODE (x2) != i1
983 1007 : || !nonimmediate_operand (operands[1], i1)
984 1658 : || !general_operand (operands[2], i1))
985 356 : return -1;
986 : return 0;
987 : }
988 :
989 : int
990 19776 : pattern220 (rtx x1)
991 : {
992 19776 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
993 19776 : int res ATTRIBUTE_UNUSED;
994 19776 : switch (GET_MODE (operands[0]))
995 : {
996 19 : case E_HImode:
997 19 : if (!register_operand (operands[0], E_HImode)
998 19 : || pattern218 (x1,
999 : E_HImode) != 0)
1000 0 : return -1;
1001 : return 0;
1002 :
1003 4797 : case E_SImode:
1004 4797 : if (!register_operand (operands[0], E_SImode)
1005 4797 : || pattern219 (x1,
1006 : E_SImode) != 0)
1007 40 : return -1;
1008 : return 1;
1009 :
1010 14940 : case E_DImode:
1011 14940 : if (!register_operand (operands[0], E_DImode)
1012 14940 : || pattern219 (x1,
1013 : E_DImode) != 0)
1014 1335 : return -1;
1015 : return 2;
1016 :
1017 : default:
1018 : return -1;
1019 : }
1020 : }
1021 :
1022 : int
1023 382699 : pattern227 (rtx x1, machine_mode i1, machine_mode i2)
1024 : {
1025 382699 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1026 382699 : int res ATTRIBUTE_UNUSED;
1027 382699 : if (!register_operand (operands[0], i2)
1028 382093 : || GET_MODE (x1) != i2
1029 382093 : || !register_operand (operands[1], i2)
1030 687246 : || !vector_operand (operands[2], i1))
1031 126778 : return -1;
1032 : return 0;
1033 : }
1034 :
1035 : int
1036 2929540 : pattern231 (rtx x1)
1037 : {
1038 2929540 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1039 2929540 : rtx x2, x3;
1040 2929540 : int res ATTRIBUTE_UNUSED;
1041 2929540 : if (GET_CODE (x1) != CLOBBER)
1042 : return -1;
1043 1783438 : x2 = XEXP (x1, 0);
1044 1783438 : if (GET_CODE (x2) != MEM
1045 1783438 : || GET_MODE (x2) != E_BLKmode)
1046 : return -1;
1047 1783438 : x3 = XEXP (x2, 0);
1048 1783438 : if (GET_CODE (x3) != SCRATCH)
1049 0 : return -1;
1050 : return 0;
1051 : }
1052 :
1053 : int
1054 134021 : pattern236 (rtx x1)
1055 : {
1056 134021 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1057 134021 : rtx x2, x3, x4, x5, x6;
1058 134021 : int res ATTRIBUTE_UNUSED;
1059 134021 : x2 = XVECEXP (x1, 0, 0);
1060 134021 : x3 = XEXP (x2, 0);
1061 134021 : if (GET_CODE (x3) != MEM)
1062 : return -1;
1063 27583 : x4 = XVECEXP (x1, 0, 1);
1064 27583 : if (GET_CODE (x4) != SET)
1065 : return -1;
1066 27583 : x5 = XEXP (x4, 1);
1067 27583 : if (GET_CODE (x5) != PLUS)
1068 : return -1;
1069 7213 : x6 = XEXP (x5, 1);
1070 7213 : if (GET_CODE (x6) != CONST_INT)
1071 4894 : return -1;
1072 : return 0;
1073 : }
1074 :
1075 : int
1076 94 : pattern245 (rtx x1, machine_mode i1)
1077 : {
1078 94 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1079 94 : int res ATTRIBUTE_UNUSED;
1080 94 : if (!register_operand (operands[0], i1)
1081 94 : || GET_MODE (x1) != i1
1082 94 : || !nonimmediate_operand (operands[1], i1)
1083 97 : || !const_vector_duplicate_operand (operands[2], i1))
1084 91 : return -1;
1085 : return 0;
1086 : }
1087 :
1088 : int
1089 291271 : pattern250 (rtx x1)
1090 : {
1091 291271 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1092 291271 : rtx x2, x3, x4, x5, x6, x7;
1093 291271 : int res ATTRIBUTE_UNUSED;
1094 291271 : x2 = XVECEXP (x1, 0, 1);
1095 291271 : if (GET_CODE (x2) != CLOBBER)
1096 : return -1;
1097 290185 : x3 = XEXP (x2, 0);
1098 290185 : if (GET_CODE (x3) != REG
1099 290185 : || REGNO (x3) != 17
1100 580370 : || GET_MODE (x3) != E_CCmode)
1101 : return -1;
1102 290185 : x4 = XVECEXP (x1, 0, 0);
1103 290185 : x5 = XEXP (x4, 0);
1104 290185 : operands[0] = x5;
1105 290185 : x6 = XEXP (x4, 1);
1106 290185 : x7 = XEXP (x6, 0);
1107 290185 : operands[1] = x7;
1108 290185 : return 0;
1109 : }
1110 :
1111 : int
1112 2386 : pattern256 (rtx x1)
1113 : {
1114 2386 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1115 2386 : rtx x2, x3, x4;
1116 2386 : int res ATTRIBUTE_UNUSED;
1117 2386 : x2 = XEXP (x1, 1);
1118 2386 : x3 = XVECEXP (x2, 0, 1);
1119 2386 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1120 : return -1;
1121 2386 : x4 = XEXP (x1, 0);
1122 2386 : if (GET_CODE (x4) != REG
1123 2386 : || REGNO (x4) != 17
1124 4772 : || GET_MODE (x4) != E_CCCmode)
1125 0 : return -1;
1126 : return 0;
1127 : }
1128 :
1129 : int
1130 525 : pattern265 (rtx x1, machine_mode i1)
1131 : {
1132 525 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1133 525 : int res ATTRIBUTE_UNUSED;
1134 525 : if (!register_operand (operands[0], i1)
1135 525 : || GET_MODE (x1) != i1)
1136 : return -1;
1137 507 : return pattern264 (); /* [-1, 2] */
1138 : }
1139 :
1140 : int
1141 1469 : pattern268 (rtx x1, int *pnum_clobbers, machine_mode i1)
1142 : {
1143 1469 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1144 1469 : int res ATTRIBUTE_UNUSED;
1145 1469 : if (pnum_clobbers == NULL
1146 1469 : || !register_operand (operands[0], i1)
1147 1381 : || GET_MODE (x1) != i1
1148 2850 : || !general_operand (operands[1], i1))
1149 501 : return -1;
1150 : return 0;
1151 : }
1152 :
1153 : int
1154 5241 : pattern277 (rtx x1)
1155 : {
1156 5241 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1157 5241 : rtx x2, x3, x4, x5, x6;
1158 5241 : int res ATTRIBUTE_UNUSED;
1159 5241 : x2 = XEXP (x1, 0);
1160 5241 : if (XVECLEN (x2, 0) != 1
1161 1573 : || XINT (x2, 1) != 47
1162 630 : || GET_MODE (x2) != E_V4SImode)
1163 : return -1;
1164 630 : x3 = XEXP (x1, 1);
1165 630 : if (XVECLEN (x3, 0) != 2)
1166 : return -1;
1167 630 : x4 = XVECEXP (x3, 0, 0);
1168 630 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1169 : return -1;
1170 630 : x5 = XVECEXP (x3, 0, 1);
1171 630 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
1172 630 : || !register_operand (operands[0], E_V2SImode)
1173 1259 : || GET_MODE (x1) != E_V2SImode)
1174 1 : return -1;
1175 629 : x6 = XVECEXP (x2, 0, 0);
1176 629 : operands[1] = x6;
1177 629 : if (!nonimmediate_operand (operands[1], E_V4SFmode))
1178 : return -1;
1179 : return 0;
1180 : }
1181 :
1182 : int
1183 160 : pattern287 (rtx x1)
1184 : {
1185 160 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1186 160 : rtx x2;
1187 160 : int res ATTRIBUTE_UNUSED;
1188 160 : x2 = XEXP (x1, 1);
1189 160 : operands[3] = x2;
1190 160 : switch (GET_MODE (operands[0]))
1191 : {
1192 58 : case E_SImode:
1193 58 : return pattern286 (x1,
1194 58 : E_SImode); /* [-1, 0] */
1195 :
1196 72 : case E_DImode:
1197 72 : if (pattern286 (x1,
1198 : E_DImode) != 0)
1199 : return -1;
1200 : return 1;
1201 :
1202 : default:
1203 : return -1;
1204 : }
1205 : }
1206 :
1207 : int
1208 170861 : pattern292 (rtx x1)
1209 : {
1210 170861 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1211 170861 : rtx x2, x3, x4, x5, x6, x7;
1212 170861 : int res ATTRIBUTE_UNUSED;
1213 170861 : x2 = XEXP (x1, 0);
1214 170861 : x3 = XEXP (x2, 0);
1215 170861 : operands[1] = x3;
1216 170861 : x4 = XEXP (x1, 1);
1217 170861 : operands[2] = x4;
1218 170861 : x5 = XEXP (x2, 1);
1219 170861 : switch (GET_CODE (x5))
1220 : {
1221 10141 : case LTU:
1222 10141 : case UNLT:
1223 10141 : operands[4] = x5;
1224 10141 : x6 = XEXP (x5, 1);
1225 10141 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1226 : return -1;
1227 10019 : x7 = XEXP (x5, 0);
1228 10019 : operands[3] = x7;
1229 10019 : if (!flags_reg_operand (operands[3], E_VOIDmode))
1230 : return -1;
1231 : return 0;
1232 :
1233 592 : case EQ:
1234 592 : x6 = XEXP (x5, 1);
1235 592 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1236 : return -1;
1237 484 : x7 = XEXP (x5, 0);
1238 484 : operands[3] = x7;
1239 484 : if (!int_nonimmediate_operand (operands[3], E_VOIDmode))
1240 : return -1;
1241 : return 1;
1242 :
1243 : default:
1244 : return -1;
1245 : }
1246 : }
1247 :
1248 : int
1249 178 : pattern305 (rtx x1)
1250 : {
1251 178 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1252 178 : rtx x2;
1253 178 : int res ATTRIBUTE_UNUSED;
1254 178 : x2 = XVECEXP (x1, 0, 0);
1255 178 : operands[1] = x2;
1256 178 : switch (GET_MODE (operands[0]))
1257 : {
1258 87 : case E_SImode:
1259 87 : if (!register_operand (operands[0], E_SImode)
1260 87 : || GET_MODE (x1) != E_SImode
1261 174 : || !nonimmediate_operand (operands[1], E_SImode))
1262 2 : return -1;
1263 : return 0;
1264 :
1265 88 : case E_DImode:
1266 88 : if (!register_operand (operands[0], E_DImode)
1267 88 : || GET_MODE (x1) != E_DImode
1268 176 : || !nonimmediate_operand (operands[1], E_DImode))
1269 2 : return -1;
1270 : return 1;
1271 :
1272 : default:
1273 : return -1;
1274 : }
1275 : }
1276 :
1277 : int
1278 261 : pattern313 (rtx x1, machine_mode i1, machine_mode i2)
1279 : {
1280 261 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1281 261 : rtx x2, x3, x4;
1282 261 : int res ATTRIBUTE_UNUSED;
1283 261 : if (!register_operand (operands[0], i2)
1284 261 : || GET_MODE (x1) != i2)
1285 : return -1;
1286 237 : x2 = XEXP (x1, 0);
1287 237 : if (GET_MODE (x2) != i2)
1288 : return -1;
1289 237 : x3 = XEXP (x2, 0);
1290 237 : if (GET_MODE (x3) != i1)
1291 : return -1;
1292 237 : x4 = XEXP (x3, 0);
1293 237 : if (GET_MODE (x4) != i1
1294 237 : || !register_operand (operands[1], i2)
1295 446 : || !nonimmediate_operand (operands[2], i1))
1296 149 : return -1;
1297 : return 0;
1298 : }
1299 :
1300 : int
1301 65 : pattern320 (rtx x1, machine_mode i1, machine_mode i2)
1302 : {
1303 65 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1304 65 : rtx x2;
1305 65 : int res ATTRIBUTE_UNUSED;
1306 65 : if (!register_operand (operands[0], i1)
1307 65 : || GET_MODE (x1) != i1)
1308 : return -1;
1309 65 : x2 = XEXP (x1, 2);
1310 65 : if (GET_MODE (x2) != i2
1311 65 : || !nonimmediate_operand (operands[3], i1)
1312 124 : || !nonimmediate_operand (operands[4], i1))
1313 6 : return -1;
1314 : return 0;
1315 : }
1316 :
1317 : int
1318 61 : pattern326 (rtx x1)
1319 : {
1320 61 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1321 61 : rtx x2;
1322 61 : int res ATTRIBUTE_UNUSED;
1323 61 : x2 = XVECEXP (x1, 0, 0);
1324 61 : operands[1] = x2;
1325 61 : switch (GET_MODE (operands[0]))
1326 : {
1327 14 : case E_V16SImode:
1328 14 : if (!register_operand (operands[0], E_V16SImode)
1329 14 : || GET_MODE (x1) != E_V16SImode
1330 28 : || !memory_operand (operands[1], E_V16SImode))
1331 0 : return -1;
1332 : return 0;
1333 :
1334 14 : case E_V8SImode:
1335 14 : if (!register_operand (operands[0], E_V8SImode)
1336 14 : || GET_MODE (x1) != E_V8SImode
1337 28 : || !memory_operand (operands[1], E_V8SImode))
1338 0 : return -1;
1339 : return 1;
1340 :
1341 14 : case E_V4SImode:
1342 14 : if (!register_operand (operands[0], E_V4SImode)
1343 14 : || GET_MODE (x1) != E_V4SImode
1344 28 : || !memory_operand (operands[1], E_V4SImode))
1345 0 : return -1;
1346 : return 2;
1347 :
1348 0 : case E_V8DImode:
1349 0 : if (!register_operand (operands[0], E_V8DImode)
1350 0 : || GET_MODE (x1) != E_V8DImode
1351 0 : || !memory_operand (operands[1], E_V8DImode))
1352 0 : return -1;
1353 : return 3;
1354 :
1355 0 : case E_V4DImode:
1356 0 : if (!register_operand (operands[0], E_V4DImode)
1357 0 : || GET_MODE (x1) != E_V4DImode
1358 0 : || !memory_operand (operands[1], E_V4DImode))
1359 0 : return -1;
1360 : return 4;
1361 :
1362 0 : case E_V2DImode:
1363 0 : if (!register_operand (operands[0], E_V2DImode)
1364 0 : || GET_MODE (x1) != E_V2DImode
1365 0 : || !memory_operand (operands[1], E_V2DImode))
1366 0 : return -1;
1367 : return 5;
1368 :
1369 0 : case E_V16SFmode:
1370 0 : if (!register_operand (operands[0], E_V16SFmode)
1371 0 : || GET_MODE (x1) != E_V16SFmode
1372 0 : || !memory_operand (operands[1], E_V16SFmode))
1373 0 : return -1;
1374 : return 6;
1375 :
1376 0 : case E_V8SFmode:
1377 0 : if (!register_operand (operands[0], E_V8SFmode)
1378 0 : || GET_MODE (x1) != E_V8SFmode
1379 0 : || !memory_operand (operands[1], E_V8SFmode))
1380 0 : return -1;
1381 : return 7;
1382 :
1383 0 : case E_V4SFmode:
1384 0 : if (!register_operand (operands[0], E_V4SFmode)
1385 0 : || GET_MODE (x1) != E_V4SFmode
1386 0 : || !memory_operand (operands[1], E_V4SFmode))
1387 0 : return -1;
1388 : return 8;
1389 :
1390 19 : case E_V8DFmode:
1391 19 : if (!register_operand (operands[0], E_V8DFmode)
1392 19 : || GET_MODE (x1) != E_V8DFmode
1393 38 : || !memory_operand (operands[1], E_V8DFmode))
1394 0 : return -1;
1395 : return 9;
1396 :
1397 0 : case E_V4DFmode:
1398 0 : if (!register_operand (operands[0], E_V4DFmode)
1399 0 : || GET_MODE (x1) != E_V4DFmode
1400 0 : || !memory_operand (operands[1], E_V4DFmode))
1401 0 : return -1;
1402 : return 10;
1403 :
1404 0 : case E_V2DFmode:
1405 0 : if (!register_operand (operands[0], E_V2DFmode)
1406 0 : || GET_MODE (x1) != E_V2DFmode
1407 0 : || !memory_operand (operands[1], E_V2DFmode))
1408 0 : return -1;
1409 : return 11;
1410 :
1411 0 : case E_V64QImode:
1412 0 : if (!register_operand (operands[0], E_V64QImode)
1413 0 : || GET_MODE (x1) != E_V64QImode
1414 0 : || !memory_operand (operands[1], E_V64QImode))
1415 0 : return -1;
1416 : return 12;
1417 :
1418 0 : case E_V16QImode:
1419 0 : if (!register_operand (operands[0], E_V16QImode)
1420 0 : || GET_MODE (x1) != E_V16QImode
1421 0 : || !memory_operand (operands[1], E_V16QImode))
1422 0 : return -1;
1423 : return 13;
1424 :
1425 0 : case E_V32QImode:
1426 0 : if (!register_operand (operands[0], E_V32QImode)
1427 0 : || GET_MODE (x1) != E_V32QImode
1428 0 : || !memory_operand (operands[1], E_V32QImode))
1429 0 : return -1;
1430 : return 14;
1431 :
1432 0 : case E_V32HImode:
1433 0 : if (!register_operand (operands[0], E_V32HImode)
1434 0 : || GET_MODE (x1) != E_V32HImode
1435 0 : || !memory_operand (operands[1], E_V32HImode))
1436 0 : return -1;
1437 : return 15;
1438 :
1439 0 : case E_V16HImode:
1440 0 : if (!register_operand (operands[0], E_V16HImode)
1441 0 : || GET_MODE (x1) != E_V16HImode
1442 0 : || !memory_operand (operands[1], E_V16HImode))
1443 0 : return -1;
1444 : return 16;
1445 :
1446 0 : case E_V8HImode:
1447 0 : if (!register_operand (operands[0], E_V8HImode)
1448 0 : || GET_MODE (x1) != E_V8HImode
1449 0 : || !memory_operand (operands[1], E_V8HImode))
1450 0 : return -1;
1451 : return 17;
1452 :
1453 0 : case E_V32HFmode:
1454 0 : if (!register_operand (operands[0], E_V32HFmode)
1455 0 : || GET_MODE (x1) != E_V32HFmode
1456 0 : || !memory_operand (operands[1], E_V32HFmode))
1457 0 : return -1;
1458 : return 18;
1459 :
1460 0 : case E_V16HFmode:
1461 0 : if (!register_operand (operands[0], E_V16HFmode)
1462 0 : || GET_MODE (x1) != E_V16HFmode
1463 0 : || !memory_operand (operands[1], E_V16HFmode))
1464 0 : return -1;
1465 : return 19;
1466 :
1467 0 : case E_V8HFmode:
1468 0 : if (!register_operand (operands[0], E_V8HFmode)
1469 0 : || GET_MODE (x1) != E_V8HFmode
1470 0 : || !memory_operand (operands[1], E_V8HFmode))
1471 0 : return -1;
1472 : return 20;
1473 :
1474 0 : case E_V32BFmode:
1475 0 : if (!register_operand (operands[0], E_V32BFmode)
1476 0 : || GET_MODE (x1) != E_V32BFmode
1477 0 : || !memory_operand (operands[1], E_V32BFmode))
1478 0 : return -1;
1479 : return 21;
1480 :
1481 0 : case E_V16BFmode:
1482 0 : if (!register_operand (operands[0], E_V16BFmode)
1483 0 : || GET_MODE (x1) != E_V16BFmode
1484 0 : || !memory_operand (operands[1], E_V16BFmode))
1485 0 : return -1;
1486 : return 22;
1487 :
1488 0 : case E_V8BFmode:
1489 0 : if (!register_operand (operands[0], E_V8BFmode)
1490 0 : || GET_MODE (x1) != E_V8BFmode
1491 0 : || !memory_operand (operands[1], E_V8BFmode))
1492 0 : return -1;
1493 : return 23;
1494 :
1495 : default:
1496 : return -1;
1497 : }
1498 : }
1499 :
1500 : int
1501 30162 : pattern366 (rtx x1)
1502 : {
1503 30162 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1504 30162 : rtx x2, x3, x4, x5, x6, x7;
1505 30162 : int res ATTRIBUTE_UNUSED;
1506 30162 : x2 = XVECEXP (x1, 0, 0);
1507 30162 : x3 = XEXP (x2, 1);
1508 30162 : x4 = XEXP (x3, 0);
1509 30162 : x5 = XEXP (x4, 1);
1510 30162 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1511 : return -1;
1512 22788 : x6 = XVECEXP (x1, 0, 1);
1513 22788 : if (GET_CODE (x6) != CLOBBER)
1514 : return -1;
1515 21842 : x7 = XEXP (x6, 0);
1516 21842 : if (GET_CODE (x7) != REG
1517 21842 : || REGNO (x7) != 17
1518 43684 : || GET_MODE (x7) != E_CCmode)
1519 : return -1;
1520 21842 : return pattern365 (x2); /* [-1, 3] */
1521 : }
1522 :
1523 : int
1524 75537 : pattern372 (rtx x1)
1525 : {
1526 75537 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1527 75537 : rtx x2, x3, x4, x5, x6, x7, x8;
1528 75537 : int res ATTRIBUTE_UNUSED;
1529 75537 : x2 = XVECEXP (x1, 0, 0);
1530 75537 : x3 = XEXP (x2, 1);
1531 75537 : if (GET_MODE (x3) != E_V2SImode)
1532 : return -1;
1533 500 : x4 = XVECEXP (x1, 0, 1);
1534 500 : if (GET_CODE (x4) != UNSPEC
1535 140 : || XVECLEN (x4, 0) != 1
1536 140 : || XINT (x4, 1) != 111)
1537 : return -1;
1538 140 : x5 = XVECEXP (x4, 0, 0);
1539 140 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1540 : return -1;
1541 140 : x6 = XEXP (x2, 0);
1542 140 : operands[0] = x6;
1543 140 : if (!register_operand (operands[0], E_V2SImode))
1544 : return -1;
1545 140 : x7 = XEXP (x3, 0);
1546 140 : operands[1] = x7;
1547 140 : if (!register_operand (operands[1], E_V2SFmode))
1548 : return -1;
1549 140 : x8 = XEXP (x3, 1);
1550 140 : operands[2] = x8;
1551 140 : if (!nonimmediate_operand (operands[2], E_V2SFmode))
1552 : return -1;
1553 : return 0;
1554 : }
1555 :
1556 : int
1557 318 : pattern379 (rtx x1)
1558 : {
1559 318 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1560 318 : int res ATTRIBUTE_UNUSED;
1561 318 : switch (GET_MODE (operands[0]))
1562 : {
1563 303 : case E_QImode:
1564 303 : if (!register_operand (operands[0], E_QImode)
1565 303 : || GET_MODE (x1) != E_QImode
1566 606 : || !register_operand (operands[1], E_QImode))
1567 37 : return -1;
1568 : return 0;
1569 :
1570 15 : case E_HImode:
1571 15 : if (!register_operand (operands[0], E_HImode)
1572 15 : || GET_MODE (x1) != E_HImode
1573 30 : || !register_operand (operands[1], E_HImode))
1574 0 : return -1;
1575 : return 1;
1576 :
1577 : default:
1578 : return -1;
1579 : }
1580 : }
1581 :
1582 : int
1583 2515 : pattern387 (rtx x1, int i1)
1584 : {
1585 2515 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1586 2515 : rtx x2;
1587 2515 : int res ATTRIBUTE_UNUSED;
1588 2515 : if (GET_CODE (x1) != UNSPEC
1589 12 : || XVECLEN (x1, 0) != 1
1590 12 : || XINT (x1, 1) != i1)
1591 : return -1;
1592 12 : x2 = XVECEXP (x1, 0, 0);
1593 12 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1594 0 : return -1;
1595 : return 0;
1596 : }
1597 :
1598 : int
1599 3346 : pattern392 (rtx x1)
1600 : {
1601 3346 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1602 3346 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1603 3346 : rtx x10, x11;
1604 3346 : int res ATTRIBUTE_UNUSED;
1605 3346 : x2 = XVECEXP (x1, 0, 1);
1606 3346 : if (GET_CODE (x2) != CLOBBER)
1607 : return -1;
1608 3346 : x3 = XVECEXP (x1, 0, 2);
1609 3346 : if (GET_CODE (x3) != CLOBBER)
1610 : return -1;
1611 3346 : x4 = XVECEXP (x1, 0, 0);
1612 3346 : x5 = XEXP (x4, 0);
1613 3346 : operands[0] = x5;
1614 3346 : x6 = XEXP (x4, 1);
1615 3346 : x7 = XEXP (x6, 0);
1616 3346 : operands[1] = x7;
1617 3346 : if (!register_operand (operands[1], E_DImode))
1618 : return -1;
1619 3343 : x8 = XEXP (x2, 0);
1620 3343 : operands[2] = x8;
1621 3343 : if (!memory_operand (operands[2], E_DImode))
1622 : return -1;
1623 3343 : x9 = XEXP (x3, 0);
1624 3343 : operands[3] = x9;
1625 3343 : if (!scratch_operand (operands[3], E_V4SImode))
1626 : return -1;
1627 3343 : x10 = XVECEXP (x1, 0, 3);
1628 3343 : x11 = XEXP (x10, 0);
1629 3343 : operands[4] = x11;
1630 3343 : if (!scratch_operand (operands[4], E_V4SImode))
1631 : return -1;
1632 3343 : return pattern391 (x6); /* [-1, 2] */
1633 : }
1634 :
1635 : int
1636 12402 : pattern407 (rtx x1)
1637 : {
1638 12402 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1639 12402 : rtx x2, x3, x4, x5, x6;
1640 12402 : int res ATTRIBUTE_UNUSED;
1641 12402 : x2 = XEXP (x1, 0);
1642 12402 : x3 = XEXP (x2, 0);
1643 12402 : operands[1] = x3;
1644 12402 : x4 = XEXP (x1, 1);
1645 12402 : switch (GET_CODE (x4))
1646 : {
1647 0 : case ASHIFT:
1648 0 : x5 = XEXP (x4, 1);
1649 0 : operands[3] = x5;
1650 0 : if (!const_int_operand (operands[3], E_QImode))
1651 : return -1;
1652 0 : x6 = XEXP (x4, 0);
1653 0 : switch (GET_CODE (x6))
1654 : {
1655 0 : case REG:
1656 0 : case SUBREG:
1657 0 : operands[2] = x6;
1658 0 : switch (GET_MODE (operands[0]))
1659 : {
1660 0 : case E_DImode:
1661 0 : return pattern403 (x1,
1662 : E_DImode,
1663 0 : E_SImode); /* [-1, 0] */
1664 :
1665 0 : case E_TImode:
1666 0 : if (pattern403 (x1,
1667 : E_TImode,
1668 : E_DImode) != 0)
1669 : return -1;
1670 : return 1;
1671 :
1672 : default:
1673 : return -1;
1674 : }
1675 :
1676 0 : case SIGN_EXTEND:
1677 0 : res = pattern405 (x1);
1678 0 : if (res >= 0)
1679 0 : return res + 2; /* [2, 3] */
1680 : return -1;
1681 :
1682 0 : case ZERO_EXTEND:
1683 0 : res = pattern405 (x1);
1684 0 : if (res >= 0)
1685 0 : return res + 4; /* [4, 5] */
1686 : return -1;
1687 :
1688 : default:
1689 : return -1;
1690 : }
1691 :
1692 2806 : case CONST_INT:
1693 2806 : case CONST_WIDE_INT:
1694 2806 : operands[2] = x4;
1695 2806 : switch (GET_MODE (operands[0]))
1696 : {
1697 834 : case E_DImode:
1698 834 : if (pattern406 (x1,
1699 : E_DImode,
1700 : E_SImode) != 0)
1701 : return -1;
1702 : return 6;
1703 :
1704 1509 : case E_TImode:
1705 1509 : if (pattern406 (x1,
1706 : E_TImode,
1707 : E_DImode) != 0)
1708 : return -1;
1709 : return 7;
1710 :
1711 : default:
1712 : return -1;
1713 : }
1714 :
1715 : default:
1716 : return -1;
1717 : }
1718 : }
1719 :
1720 : int
1721 145943 : pattern427 (rtx x1)
1722 : {
1723 145943 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1724 145943 : rtx x2, x3, x4, x5, x6;
1725 145943 : int res ATTRIBUTE_UNUSED;
1726 145943 : x2 = XEXP (x1, 1);
1727 145943 : x3 = XEXP (x2, 0);
1728 145943 : x4 = XEXP (x3, 0);
1729 145943 : if (GET_CODE (x4) != SUBREG
1730 39092 : || maybe_ne (SUBREG_BYTE (x4), 0)
1731 184264 : || GET_MODE (x4) != E_QImode)
1732 : return -1;
1733 138 : x5 = XEXP (x4, 0);
1734 138 : switch (GET_CODE (x5))
1735 : {
1736 3 : case ASHIFTRT:
1737 3 : case LSHIFTRT:
1738 3 : case SIGN_EXTRACT:
1739 3 : case ZERO_EXTRACT:
1740 3 : operands[3] = x5;
1741 3 : x6 = XEXP (x1, 0);
1742 3 : return pattern426 (x6); /* [-1, 0] */
1743 :
1744 : default:
1745 : return -1;
1746 : }
1747 : }
1748 :
1749 : int
1750 374 : pattern434 (rtx x1, machine_mode i1)
1751 : {
1752 374 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1753 374 : rtx x2, x3;
1754 374 : int res ATTRIBUTE_UNUSED;
1755 374 : if (!register_operand (operands[0], i1)
1756 374 : || GET_MODE (x1) != i1)
1757 : return -1;
1758 306 : x2 = XEXP (x1, 0);
1759 306 : if (GET_MODE (x2) != i1)
1760 : return -1;
1761 306 : x3 = XEXP (x2, 0);
1762 306 : if (GET_MODE (x3) != i1
1763 306 : || !register_no_SP_operand (operands[1], i1)
1764 291 : || !register_operand (operands[3], i1)
1765 563 : || !immediate_operand (operands[4], i1))
1766 116 : return -1;
1767 : return 0;
1768 : }
1769 :
1770 : int
1771 330 : pattern443 (rtx x1)
1772 : {
1773 330 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1774 330 : rtx x2, x3;
1775 330 : int res ATTRIBUTE_UNUSED;
1776 330 : if (GET_MODE (x1) != E_SImode)
1777 : return -1;
1778 318 : x2 = XEXP (x1, 0);
1779 318 : if (GET_CODE (x2) != ASHIFT
1780 72 : || GET_MODE (x2) != E_SImode)
1781 : return -1;
1782 72 : x3 = XEXP (x2, 0);
1783 72 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
1784 46 : return -1;
1785 : return 0;
1786 : }
1787 :
1788 : int
1789 4495 : pattern449 (rtx x1, int *pnum_clobbers)
1790 : {
1791 4495 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1792 4495 : rtx x2, x3, x4, x5, x6, x7, x8;
1793 4495 : int res ATTRIBUTE_UNUSED;
1794 4495 : x2 = XEXP (x1, 1);
1795 4495 : x3 = XEXP (x2, 1);
1796 4495 : switch (GET_CODE (x3))
1797 : {
1798 1518 : case CONST_INT:
1799 1518 : operands[3] = x3;
1800 1518 : x4 = XEXP (x1, 0);
1801 1518 : x5 = XEXP (x4, 0);
1802 1518 : operands[4] = x5;
1803 1518 : x6 = XEXP (x4, 1);
1804 1518 : operands[2] = x6;
1805 1518 : x7 = XEXP (x2, 0);
1806 1518 : operands[1] = x7;
1807 1518 : return pattern447 (x1); /* [-1, 1] */
1808 :
1809 305 : case MINUS:
1810 305 : if (pnum_clobbers == NULL
1811 305 : || GET_MODE (x3) != E_QImode)
1812 : return -1;
1813 298 : x8 = XEXP (x3, 0);
1814 298 : if (GET_CODE (x8) != CONST_INT)
1815 : return -1;
1816 119 : x4 = XEXP (x1, 0);
1817 119 : x6 = XEXP (x4, 1);
1818 119 : if (!nonmemory_operand (x6, E_QImode))
1819 : return -1;
1820 119 : switch (XWINT (x8, 0))
1821 : {
1822 93 : case 64L:
1823 93 : if (pattern448 (x1,
1824 : E_DImode) != 0)
1825 : return -1;
1826 : return 2;
1827 :
1828 20 : case 32L:
1829 20 : if (pattern448 (x1,
1830 : E_SImode) != 0)
1831 : return -1;
1832 : return 3;
1833 :
1834 : default:
1835 : return -1;
1836 : }
1837 :
1838 : default:
1839 : return -1;
1840 : }
1841 : }
1842 :
1843 : int
1844 3663 : pattern462 (rtx x1)
1845 : {
1846 3663 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1847 3663 : rtx x2;
1848 3663 : int res ATTRIBUTE_UNUSED;
1849 3663 : x2 = XEXP (x1, 1);
1850 3663 : if (!rtx_equal_p (x2, operands[1]))
1851 : return -1;
1852 3246 : switch (GET_MODE (operands[0]))
1853 : {
1854 569 : case E_V8HFmode:
1855 569 : return pattern461 (x1,
1856 569 : E_V8HFmode); /* [-1, 0] */
1857 :
1858 1684 : case E_V4SFmode:
1859 1684 : if (pattern461 (x1,
1860 : E_V4SFmode) != 0)
1861 : return -1;
1862 : return 1;
1863 :
1864 993 : case E_V2DFmode:
1865 993 : if (pattern461 (x1,
1866 : E_V2DFmode) != 0)
1867 : return -1;
1868 : return 2;
1869 :
1870 : default:
1871 : return -1;
1872 : }
1873 : }
1874 :
1875 : int
1876 6227 : pattern472 (rtx x1, machine_mode i1, machine_mode i2)
1877 : {
1878 6227 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1879 6227 : rtx x2;
1880 6227 : int res ATTRIBUTE_UNUSED;
1881 6227 : if (!register_operand (operands[0], i1)
1882 6227 : || GET_MODE (x1) != i1)
1883 : return -1;
1884 5834 : x2 = XEXP (x1, 0);
1885 5834 : if (GET_MODE (x2) != i1
1886 5834 : || !nonimmediate_operand (operands[1], i1)
1887 5772 : || !nonimm_or_0_operand (operands[3], i1)
1888 11522 : || !register_operand (operands[4], i2))
1889 403 : return -1;
1890 : return 0;
1891 : }
1892 :
1893 : int
1894 7367 : pattern477 (rtx x1, machine_mode i1, machine_mode i2)
1895 : {
1896 7367 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1897 7367 : rtx x2;
1898 7367 : int res ATTRIBUTE_UNUSED;
1899 7367 : if (!register_operand (operands[0], i1)
1900 7367 : || GET_MODE (x1) != i1)
1901 : return -1;
1902 6903 : x2 = XEXP (x1, 0);
1903 6903 : if (GET_MODE (x2) != i1
1904 6903 : || !register_operand (operands[1], i1)
1905 6890 : || !vector_operand (operands[2], i1)
1906 6848 : || !nonimm_or_0_operand (operands[4], i1)
1907 13612 : || !register_operand (operands[5], i2))
1908 290 : return -1;
1909 : return 0;
1910 : }
1911 :
1912 : int
1913 6199 : pattern482 (rtx x1, machine_mode i1, machine_mode i2)
1914 : {
1915 6199 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1916 6199 : rtx x2;
1917 6199 : int res ATTRIBUTE_UNUSED;
1918 6199 : if (!register_operand (operands[0], i1)
1919 6199 : || GET_MODE (x1) != i1)
1920 : return -1;
1921 5941 : x2 = XEXP (x1, 0);
1922 5941 : if (GET_MODE (x2) != i1
1923 5941 : || !register_operand (operands[1], i1)
1924 5941 : || !nonimmediate_operand (operands[2], i1)
1925 5941 : || !nonimm_or_0_operand (operands[4], i1)
1926 11710 : || !register_operand (operands[5], i2))
1927 416 : return -1;
1928 : return 0;
1929 : }
1930 :
1931 : int
1932 18478 : pattern491 (rtx x1, machine_mode i1, machine_mode i2)
1933 : {
1934 18478 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1935 18478 : rtx x2;
1936 18478 : int res ATTRIBUTE_UNUSED;
1937 18478 : if (!register_operand (operands[0], i1)
1938 18478 : || GET_MODE (x1) != i1)
1939 : return -1;
1940 17528 : x2 = XEXP (x1, 0);
1941 17528 : if (GET_MODE (x2) != i1
1942 17528 : || !bcst_vector_operand (operands[1], i1)
1943 16248 : || !bcst_vector_operand (operands[2], i1)
1944 15136 : || !nonimm_or_0_operand (operands[3], i1)
1945 32150 : || !register_operand (operands[4], i2))
1946 3400 : return -1;
1947 : return 0;
1948 : }
1949 :
1950 : int
1951 379 : pattern496 (rtx x1, machine_mode i1, machine_mode i2)
1952 : {
1953 379 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1954 379 : rtx x2;
1955 379 : int res ATTRIBUTE_UNUSED;
1956 379 : if (!register_operand (operands[0], i2)
1957 379 : || GET_MODE (x1) != i2)
1958 : return -1;
1959 366 : x2 = XVECEXP (x1, 0, 0);
1960 366 : if (GET_MODE (x2) != i2
1961 366 : || !register_operand (operands[1], i1))
1962 21 : return -1;
1963 : return 0;
1964 : }
1965 :
1966 : int
1967 0 : pattern497 (rtx x1)
1968 : {
1969 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1970 0 : rtx x2, x3, x4;
1971 0 : int res ATTRIBUTE_UNUSED;
1972 0 : x2 = XVECEXP (x1, 0, 0);
1973 0 : x3 = XEXP (x2, 0);
1974 0 : operands[1] = x3;
1975 0 : x4 = XVECEXP (x1, 0, 1);
1976 0 : operands[2] = x4;
1977 0 : if (!const48_operand (operands[2], E_SImode))
1978 : return -1;
1979 0 : switch (GET_MODE (operands[0]))
1980 : {
1981 0 : case E_V8HImode:
1982 0 : return pattern496 (x1,
1983 : E_V8HFmode,
1984 0 : E_V8HImode); /* [-1, 0] */
1985 :
1986 0 : case E_V16HImode:
1987 0 : if (pattern496 (x1,
1988 : E_V16HFmode,
1989 : E_V16HImode) != 0)
1990 : return -1;
1991 : return 1;
1992 :
1993 0 : case E_V32HImode:
1994 0 : if (pattern496 (x1,
1995 : E_V32HFmode,
1996 : E_V32HImode) != 0)
1997 : return -1;
1998 : return 2;
1999 :
2000 0 : case E_V8SImode:
2001 0 : if (!register_operand (operands[0], E_V8SImode)
2002 0 : || GET_MODE (x1) != E_V8SImode
2003 0 : || GET_MODE (x2) != E_V8SImode)
2004 : return -1;
2005 0 : switch (GET_MODE (operands[1]))
2006 : {
2007 0 : case E_V8HFmode:
2008 0 : if (!register_operand (operands[1], E_V8HFmode))
2009 : return -1;
2010 : return 3;
2011 :
2012 0 : case E_V8DFmode:
2013 0 : if (!register_operand (operands[1], E_V8DFmode))
2014 : return -1;
2015 : return 4;
2016 :
2017 : default:
2018 : return -1;
2019 : }
2020 :
2021 0 : case E_V16SImode:
2022 0 : if (!register_operand (operands[0], E_V16SImode)
2023 0 : || GET_MODE (x1) != E_V16SImode
2024 0 : || GET_MODE (x2) != E_V16SImode)
2025 : return -1;
2026 0 : switch (GET_MODE (operands[1]))
2027 : {
2028 0 : case E_V16HFmode:
2029 0 : if (!register_operand (operands[1], E_V16HFmode))
2030 : return -1;
2031 : return 5;
2032 :
2033 0 : case E_V16SFmode:
2034 0 : if (!register_operand (operands[1], E_V16SFmode))
2035 : return -1;
2036 : return 6;
2037 :
2038 : default:
2039 : return -1;
2040 : }
2041 :
2042 0 : case E_V8DImode:
2043 0 : if (!register_operand (operands[0], E_V8DImode)
2044 0 : || GET_MODE (x1) != E_V8DImode
2045 0 : || GET_MODE (x2) != E_V8DImode)
2046 : return -1;
2047 0 : switch (GET_MODE (operands[1]))
2048 : {
2049 0 : case E_V8HFmode:
2050 0 : if (!register_operand (operands[1], E_V8HFmode))
2051 : return -1;
2052 : return 7;
2053 :
2054 0 : case E_V8DFmode:
2055 0 : if (!register_operand (operands[1], E_V8DFmode))
2056 : return -1;
2057 : return 8;
2058 :
2059 0 : case E_V8SFmode:
2060 0 : if (!register_operand (operands[1], E_V8SFmode))
2061 : return -1;
2062 : return 9;
2063 :
2064 : default:
2065 : return -1;
2066 : }
2067 :
2068 : default:
2069 : return -1;
2070 : }
2071 : }
2072 :
2073 : int
2074 24047 : pattern518 (rtx x1, machine_mode i1)
2075 : {
2076 24047 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2077 24047 : int res ATTRIBUTE_UNUSED;
2078 24047 : if (!register_operand (operands[0], i1)
2079 20801 : || GET_MODE (x1) != i1
2080 20801 : || !register_operand (operands[1], i1)
2081 39568 : || !bcst_vector_operand (operands[2], i1))
2082 10450 : return -1;
2083 : return 0;
2084 : }
2085 :
2086 : int
2087 388 : pattern522 (rtx x1, machine_mode i1)
2088 : {
2089 388 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2090 388 : int res ATTRIBUTE_UNUSED;
2091 388 : if (!register_operand (operands[0], i1)
2092 388 : || GET_MODE (x1) != i1)
2093 : return -1;
2094 351 : switch (GET_MODE (operands[1]))
2095 : {
2096 245 : case E_V8SImode:
2097 245 : if (!nonimmediate_operand (operands[1], E_V8SImode))
2098 : return -1;
2099 : return 0;
2100 :
2101 104 : case E_V8DImode:
2102 104 : if (!nonimmediate_operand (operands[1], E_V8DImode))
2103 : return -1;
2104 : return 1;
2105 :
2106 : default:
2107 : return -1;
2108 : }
2109 : }
2110 :
2111 : int
2112 218954 : pattern527 (rtx x1)
2113 : {
2114 218954 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2115 218954 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2116 218954 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
2117 218954 : rtx x18, x19, x20, x21, x22;
2118 218954 : int res ATTRIBUTE_UNUSED;
2119 218954 : x2 = XEXP (x1, 0);
2120 218954 : if (maybe_ne (SUBREG_BYTE (x2), 0))
2121 : return -1;
2122 218954 : x3 = XEXP (x2, 0);
2123 218954 : if (GET_CODE (x3) != UNSPEC
2124 18521 : || XVECLEN (x3, 0) != 2
2125 7520 : || XINT (x3, 1) != 152)
2126 : return -1;
2127 40 : x4 = XVECEXP (x3, 0, 0);
2128 40 : operands[1] = x4;
2129 40 : x5 = XVECEXP (x3, 0, 1);
2130 40 : operands[2] = x5;
2131 40 : x6 = XEXP (x1, 1);
2132 40 : switch (XVECLEN (x6, 0))
2133 : {
2134 3 : case 16:
2135 3 : x7 = XVECEXP (x6, 0, 0);
2136 3 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2137 : return -1;
2138 3 : x8 = XVECEXP (x6, 0, 1);
2139 3 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
2140 : return -1;
2141 3 : x9 = XVECEXP (x6, 0, 2);
2142 3 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
2143 : return -1;
2144 3 : x10 = XVECEXP (x6, 0, 3);
2145 3 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
2146 : return -1;
2147 3 : x11 = XVECEXP (x6, 0, 4);
2148 3 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
2149 : return -1;
2150 3 : x12 = XVECEXP (x6, 0, 5);
2151 3 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
2152 : return -1;
2153 3 : x13 = XVECEXP (x6, 0, 6);
2154 3 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
2155 : return -1;
2156 3 : x14 = XVECEXP (x6, 0, 7);
2157 3 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
2158 : return -1;
2159 3 : x15 = XVECEXP (x6, 0, 8);
2160 3 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
2161 : return -1;
2162 3 : x16 = XVECEXP (x6, 0, 9);
2163 3 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
2164 : return -1;
2165 3 : x17 = XVECEXP (x6, 0, 10);
2166 3 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
2167 : return -1;
2168 3 : x18 = XVECEXP (x6, 0, 11);
2169 3 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 11])
2170 : return -1;
2171 3 : x19 = XVECEXP (x6, 0, 12);
2172 3 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
2173 : return -1;
2174 3 : x20 = XVECEXP (x6, 0, 13);
2175 3 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 13])
2176 : return -1;
2177 3 : x21 = XVECEXP (x6, 0, 14);
2178 3 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 14])
2179 : return -1;
2180 3 : x22 = XVECEXP (x6, 0, 15);
2181 3 : if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 15]
2182 3 : || pattern526 (x1,
2183 : E_V32HImode,
2184 : E_V32HFmode,
2185 : E_V16HFmode) != 0)
2186 1 : return -1;
2187 : return 0;
2188 :
2189 3 : case 8:
2190 3 : x7 = XVECEXP (x6, 0, 0);
2191 3 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2192 : return -1;
2193 3 : x8 = XVECEXP (x6, 0, 1);
2194 3 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
2195 : return -1;
2196 3 : x9 = XVECEXP (x6, 0, 2);
2197 3 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
2198 : return -1;
2199 3 : x10 = XVECEXP (x6, 0, 3);
2200 3 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
2201 : return -1;
2202 3 : x11 = XVECEXP (x6, 0, 4);
2203 3 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
2204 : return -1;
2205 3 : x12 = XVECEXP (x6, 0, 5);
2206 3 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
2207 : return -1;
2208 3 : x13 = XVECEXP (x6, 0, 6);
2209 3 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
2210 : return -1;
2211 3 : x14 = XVECEXP (x6, 0, 7);
2212 3 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
2213 3 : || pattern526 (x1,
2214 : E_V16HImode,
2215 : E_V16HFmode,
2216 : E_V8HFmode) != 0)
2217 1 : return -1;
2218 : return 1;
2219 :
2220 : default:
2221 : return -1;
2222 : }
2223 : }
2224 :
2225 : int
2226 1160 : pattern553 (rtx x1)
2227 : {
2228 1160 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2229 1160 : rtx x2, x3, x4, x5, x6, x7;
2230 1160 : int res ATTRIBUTE_UNUSED;
2231 1160 : x2 = XVECEXP (x1, 0, 0);
2232 1160 : x3 = XEXP (x2, 1);
2233 1160 : if (GET_MODE (x3) != E_XFmode)
2234 : return -1;
2235 1160 : x4 = XVECEXP (x1, 0, 1);
2236 1160 : if (GET_CODE (x4) != CLOBBER)
2237 : return -1;
2238 1155 : x5 = XEXP (x4, 0);
2239 1155 : if (GET_CODE (x5) != REG
2240 1155 : || REGNO (x5) != 17
2241 2310 : || GET_MODE (x5) != E_CCmode)
2242 : return -1;
2243 1155 : x6 = XEXP (x2, 0);
2244 1155 : operands[0] = x6;
2245 1155 : if (!register_operand (operands[0], E_XFmode))
2246 : return -1;
2247 1155 : x7 = XVECEXP (x3, 0, 0);
2248 1155 : operands[1] = x7;
2249 1155 : if (!register_operand (operands[1], E_XFmode))
2250 : return -1;
2251 : return 0;
2252 : }
2253 :
2254 : int
2255 35 : pattern559 (rtx x1, int *pnum_clobbers)
2256 : {
2257 35 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2258 35 : rtx x2, x3, x4, x5, x6, x7;
2259 35 : int res ATTRIBUTE_UNUSED;
2260 35 : x2 = XVECEXP (x1, 0, 0);
2261 35 : x3 = XEXP (x2, 1);
2262 35 : x4 = XEXP (x3, 0);
2263 35 : x5 = XEXP (x4, 0);
2264 35 : operands[1] = x5;
2265 35 : x6 = XVECEXP (x1, 0, 1);
2266 35 : switch (GET_CODE (x6))
2267 : {
2268 35 : case CLOBBER:
2269 35 : x7 = XEXP (x6, 0);
2270 35 : if (GET_CODE (x7) != REG
2271 35 : || REGNO (x7) != 17
2272 70 : || GET_MODE (x7) != E_CCmode)
2273 0 : return -1;
2274 : return 0;
2275 :
2276 0 : case UNSPEC:
2277 0 : if (pnum_clobbers == NULL
2278 0 : || XVECLEN (x6, 0) != 1
2279 0 : || XINT (x6, 1) != 39)
2280 0 : return -1;
2281 : return 1;
2282 :
2283 : default:
2284 : return -1;
2285 : }
2286 : }
2287 :
2288 : int
2289 463230 : pattern567 (rtx x1, rtx_code i1)
2290 : {
2291 463230 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2292 463230 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2293 463230 : int res ATTRIBUTE_UNUSED;
2294 463230 : x2 = XVECEXP (x1, 0, 0);
2295 463230 : x3 = XEXP (x2, 1);
2296 463230 : x4 = XEXP (x3, 1);
2297 463230 : if (GET_CODE (x4) != i1)
2298 : return -1;
2299 253142 : x5 = XVECEXP (x1, 0, 1);
2300 253142 : if (GET_CODE (x5) != CLOBBER)
2301 : return -1;
2302 234219 : x6 = XEXP (x5, 0);
2303 234219 : if (GET_CODE (x6) != REG
2304 234219 : || REGNO (x6) != 17
2305 468438 : || GET_MODE (x6) != E_CCmode)
2306 : return -1;
2307 234219 : x7 = XEXP (x3, 0);
2308 234219 : x8 = XEXP (x7, 0);
2309 234219 : operands[1] = x8;
2310 234219 : x9 = XEXP (x4, 0);
2311 234219 : operands[2] = x9;
2312 234219 : switch (GET_MODE (operands[0]))
2313 : {
2314 119767 : case E_DImode:
2315 119767 : return pattern566 (x3,
2316 : E_SImode,
2317 119767 : E_DImode); /* [-1, 0] */
2318 :
2319 108850 : case E_TImode:
2320 108850 : if (pattern566 (x3,
2321 : E_DImode,
2322 : E_TImode) != 0)
2323 : return -1;
2324 : return 1;
2325 :
2326 4926 : case E_HImode:
2327 4926 : if (pattern566 (x3,
2328 : E_QImode,
2329 : E_HImode) != 0)
2330 : return -1;
2331 : return 2;
2332 :
2333 : default:
2334 : return -1;
2335 : }
2336 : }
2337 :
2338 : int
2339 638 : pattern578 (rtx x1)
2340 : {
2341 638 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2342 638 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2343 638 : int res ATTRIBUTE_UNUSED;
2344 638 : x2 = XVECEXP (x1, 0, 0);
2345 638 : x3 = XEXP (x2, 0);
2346 638 : operands[0] = x3;
2347 638 : x4 = XEXP (x2, 1);
2348 638 : x5 = XEXP (x4, 0);
2349 638 : operands[1] = x5;
2350 638 : if (!nonimmediate_operand (operands[1], E_SImode))
2351 : return -1;
2352 605 : x6 = XVECEXP (x1, 0, 1);
2353 605 : x7 = XEXP (x6, 0);
2354 605 : operands[2] = x7;
2355 605 : if (!memory_operand (operands[2], E_DImode))
2356 : return -1;
2357 605 : x8 = XVECEXP (x1, 0, 2);
2358 605 : x9 = XEXP (x8, 0);
2359 605 : operands[3] = x9;
2360 605 : if (!scratch_operand (operands[3], E_DImode))
2361 : return -1;
2362 604 : return pattern391 (x4); /* [-1, 2] */
2363 : }
2364 :
2365 : int
2366 397191 : pattern588 (rtx x1, rtx_code i1, machine_mode i2)
2367 : {
2368 397191 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2369 397191 : rtx x2, x3, x4, x5;
2370 397191 : int res ATTRIBUTE_UNUSED;
2371 397191 : x2 = XVECEXP (x1, 0, 0);
2372 397191 : x3 = XEXP (x2, 0);
2373 397191 : if (GET_CODE (x3) != REG
2374 397191 : || REGNO (x3) != 17
2375 794382 : || GET_MODE (x3) != i2)
2376 : return -1;
2377 115766 : x4 = XVECEXP (x1, 0, 1);
2378 115766 : if (GET_CODE (x4) != SET)
2379 : return -1;
2380 91298 : x5 = XEXP (x4, 1);
2381 91298 : if (GET_CODE (x5) != i1)
2382 736 : return -1;
2383 : return 0;
2384 : }
2385 :
2386 : int
2387 322624 : pattern592 (rtx x1, rtx_code i1)
2388 : {
2389 322624 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2390 322624 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2391 322624 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
2392 322624 : rtx x18;
2393 322624 : int res ATTRIBUTE_UNUSED;
2394 322624 : x2 = XVECEXP (x1, 0, 0);
2395 322624 : x3 = XEXP (x2, 1);
2396 322624 : x4 = XEXP (x3, 0);
2397 322624 : if (GET_MODE (x4) != E_QImode)
2398 : return -1;
2399 57263 : x5 = XEXP (x4, 0);
2400 57263 : if (GET_CODE (x5) != SUBREG
2401 1354 : || maybe_ne (SUBREG_BYTE (x5), 0)
2402 58617 : || GET_MODE (x5) != E_QImode)
2403 : return -1;
2404 1354 : x6 = XEXP (x5, 0);
2405 1354 : switch (GET_CODE (x6))
2406 : {
2407 259 : case ASHIFTRT:
2408 259 : case LSHIFTRT:
2409 259 : case SIGN_EXTRACT:
2410 259 : case ZERO_EXTRACT:
2411 259 : operands[3] = x6;
2412 259 : x7 = XEXP (x3, 1);
2413 259 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2414 : return -1;
2415 237 : x8 = XVECEXP (x1, 0, 1);
2416 237 : if (GET_CODE (x8) != SET)
2417 : return -1;
2418 0 : x9 = XEXP (x8, 1);
2419 0 : if (GET_CODE (x9) != SUBREG
2420 0 : || maybe_ne (SUBREG_BYTE (x9), 0))
2421 : return -1;
2422 0 : x10 = XEXP (x9, 0);
2423 0 : if (GET_CODE (x10) != i1
2424 0 : || GET_MODE (x10) != E_QImode)
2425 : return -1;
2426 0 : x11 = XEXP (x10, 0);
2427 0 : if (GET_CODE (x11) != SUBREG
2428 0 : || maybe_ne (SUBREG_BYTE (x11), 0)
2429 0 : || GET_MODE (x11) != E_QImode)
2430 : return -1;
2431 0 : x12 = XEXP (x11, 0);
2432 0 : if (GET_CODE (x12) != ZERO_EXTRACT)
2433 : return -1;
2434 0 : x13 = XEXP (x12, 1);
2435 0 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
2436 : return -1;
2437 0 : x14 = XEXP (x12, 2);
2438 0 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
2439 : return -1;
2440 0 : x15 = XEXP (x8, 0);
2441 0 : if (GET_CODE (x15) != ZERO_EXTRACT)
2442 : return -1;
2443 0 : x16 = XEXP (x15, 1);
2444 0 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
2445 : return -1;
2446 0 : x17 = XEXP (x15, 2);
2447 0 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
2448 : return -1;
2449 0 : x18 = XEXP (x2, 0);
2450 0 : operands[4] = x18;
2451 0 : if (!flags_reg_operand (operands[4], E_VOIDmode))
2452 : return -1;
2453 0 : operands[5] = x3;
2454 0 : if (!compare_operator (operands[5], E_VOIDmode))
2455 : return -1;
2456 0 : return pattern591 (x1); /* [-1, 2] */
2457 :
2458 : default:
2459 : return -1;
2460 : }
2461 : }
2462 :
2463 : int
2464 424 : pattern615 (rtx x1)
2465 : {
2466 424 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2467 424 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2468 424 : rtx x10, x11, x12, x13;
2469 424 : int res ATTRIBUTE_UNUSED;
2470 424 : x2 = XEXP (x1, 1);
2471 424 : x3 = XVECEXP (x2, 0, 0);
2472 424 : x4 = XEXP (x3, 0);
2473 424 : if (GET_CODE (x4) != EQ)
2474 : return -1;
2475 113 : x5 = XVECEXP (x2, 0, 1);
2476 113 : if (GET_CODE (x5) != EQ)
2477 : return -1;
2478 113 : x6 = XEXP (x5, 0);
2479 113 : if (GET_CODE (x6) != EQ)
2480 : return -1;
2481 113 : x7 = XEXP (x1, 0);
2482 113 : if (GET_MODE (x7) != E_CCZmode
2483 113 : || GET_MODE (x2) != E_CCZmode)
2484 : return -1;
2485 113 : x8 = XEXP (x4, 0);
2486 113 : operands[0] = x8;
2487 113 : x9 = XEXP (x4, 1);
2488 113 : operands[1] = x9;
2489 113 : x10 = XEXP (x3, 1);
2490 113 : operands[2] = x10;
2491 113 : x11 = XEXP (x6, 0);
2492 113 : if (!rtx_equal_p (x11, operands[0]))
2493 : return -1;
2494 113 : x12 = XEXP (x6, 1);
2495 113 : if (!rtx_equal_p (x12, operands[1]))
2496 : return -1;
2497 113 : x13 = XEXP (x5, 1);
2498 113 : if (!rtx_equal_p (x13, operands[2]))
2499 : return -1;
2500 113 : switch (GET_MODE (x3))
2501 : {
2502 14 : case E_V32QImode:
2503 14 : return pattern614 (x2,
2504 14 : E_V32QImode); /* [-1, 0] */
2505 :
2506 0 : case E_V16QImode:
2507 0 : if (pattern614 (x2,
2508 : E_V16QImode) != 0)
2509 : return -1;
2510 : return 1;
2511 :
2512 0 : case E_V16HImode:
2513 0 : if (pattern614 (x2,
2514 : E_V16HImode) != 0)
2515 : return -1;
2516 : return 2;
2517 :
2518 0 : case E_V8HImode:
2519 0 : if (pattern614 (x2,
2520 : E_V8HImode) != 0)
2521 : return -1;
2522 : return 3;
2523 :
2524 7 : case E_V8SImode:
2525 7 : if (pattern614 (x2,
2526 : E_V8SImode) != 0)
2527 : return -1;
2528 : return 4;
2529 :
2530 0 : case E_V4SImode:
2531 0 : if (pattern614 (x2,
2532 : E_V4SImode) != 0)
2533 : return -1;
2534 : return 5;
2535 :
2536 70 : case E_V4DImode:
2537 70 : if (pattern614 (x2,
2538 : E_V4DImode) != 0)
2539 : return -1;
2540 : return 6;
2541 :
2542 22 : case E_V2DImode:
2543 22 : if (pattern614 (x2,
2544 : E_V2DImode) != 0)
2545 : return -1;
2546 : return 7;
2547 :
2548 : default:
2549 : return -1;
2550 : }
2551 : }
2552 :
2553 : int
2554 658 : pattern638 (rtx x1, machine_mode i1)
2555 : {
2556 658 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2557 658 : rtx x2;
2558 658 : int res ATTRIBUTE_UNUSED;
2559 658 : if (!memory_operand (operands[0], i1)
2560 658 : || GET_MODE (x1) != i1)
2561 : return -1;
2562 626 : x2 = XVECEXP (x1, 0, 0);
2563 626 : if (GET_MODE (x2) != i1
2564 626 : || !register_operand (operands[1], i1))
2565 23 : return -1;
2566 : return 0;
2567 : }
2568 :
2569 : int
2570 2960 : pattern644 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
2571 : {
2572 2960 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2573 2960 : rtx x2;
2574 2960 : int res ATTRIBUTE_UNUSED;
2575 2960 : if (!register_operand (operands[0], i1)
2576 2960 : || GET_MODE (x1) != i1)
2577 : return -1;
2578 2838 : x2 = XEXP (x1, 0);
2579 2838 : if (GET_MODE (x2) != i1
2580 2838 : || !nonimmediate_operand (operands[1], i3)
2581 2838 : || !nonimm_or_0_operand (operands[2], i1)
2582 5605 : || !register_operand (operands[3], i2))
2583 206 : return -1;
2584 : return 0;
2585 : }
2586 :
2587 : int
2588 6178 : pattern649 (rtx x1)
2589 : {
2590 6178 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2591 6178 : rtx x2, x3, x4;
2592 6178 : int res ATTRIBUTE_UNUSED;
2593 6178 : x2 = XEXP (x1, 0);
2594 6178 : x3 = XVECEXP (x2, 0, 0);
2595 6178 : operands[1] = x3;
2596 6178 : x4 = XEXP (x1, 2);
2597 6178 : operands[3] = x4;
2598 6178 : switch (GET_MODE (operands[0]))
2599 : {
2600 512 : case E_V16SImode:
2601 512 : return pattern646 (x1,
2602 : E_V16SImode,
2603 : E_HImode,
2604 512 : E_V16SFmode); /* [-1, 0] */
2605 :
2606 1032 : case E_V8SImode:
2607 1032 : if (!register_operand (operands[0], E_V8SImode)
2608 980 : || GET_MODE (x1) != E_V8SImode
2609 980 : || GET_MODE (x2) != E_V8SImode
2610 980 : || !nonimm_or_0_operand (operands[2], E_V8SImode)
2611 1980 : || !register_operand (operands[3], E_QImode))
2612 124 : return -1;
2613 908 : switch (GET_MODE (operands[1]))
2614 : {
2615 448 : case E_V8SFmode:
2616 448 : if (!vector_operand (operands[1], E_V8SFmode))
2617 : return -1;
2618 : return 1;
2619 :
2620 460 : case E_V8DFmode:
2621 460 : if (!vector_operand (operands[1], E_V8DFmode))
2622 : return -1;
2623 : return 2;
2624 :
2625 : default:
2626 : return -1;
2627 : }
2628 :
2629 1480 : case E_V4SImode:
2630 1480 : if (!register_operand (operands[0], E_V4SImode)
2631 1468 : || GET_MODE (x1) != E_V4SImode
2632 1468 : || GET_MODE (x2) != E_V4SImode
2633 1468 : || !nonimm_or_0_operand (operands[2], E_V4SImode)
2634 2898 : || !register_operand (operands[3], E_QImode))
2635 126 : return -1;
2636 1354 : switch (GET_MODE (operands[1]))
2637 : {
2638 450 : case E_V4SFmode:
2639 450 : if (!vector_operand (operands[1], E_V4SFmode))
2640 : return -1;
2641 : return 3;
2642 :
2643 452 : case E_V4DFmode:
2644 452 : if (!vector_operand (operands[1], E_V4DFmode))
2645 : return -1;
2646 : return 4;
2647 :
2648 452 : case E_V2DFmode:
2649 452 : if (!vector_operand (operands[1], E_V2DFmode))
2650 : return -1;
2651 : return 5;
2652 :
2653 : default:
2654 : return -1;
2655 : }
2656 :
2657 1072 : case E_V8DImode:
2658 1072 : if (!register_operand (operands[0], E_V8DImode)
2659 988 : || GET_MODE (x1) != E_V8DImode
2660 988 : || GET_MODE (x2) != E_V8DImode
2661 988 : || !nonimm_or_0_operand (operands[2], E_V8DImode)
2662 2024 : || !register_operand (operands[3], E_QImode))
2663 160 : return -1;
2664 912 : switch (GET_MODE (operands[1]))
2665 : {
2666 460 : case E_V8DFmode:
2667 460 : if (!vector_operand (operands[1], E_V8DFmode))
2668 : return -1;
2669 : return 6;
2670 :
2671 452 : case E_V8SFmode:
2672 452 : if (!vector_operand (operands[1], E_V8SFmode))
2673 : return -1;
2674 : return 7;
2675 :
2676 : default:
2677 : return -1;
2678 : }
2679 :
2680 1059 : case E_V4DImode:
2681 1059 : if (!register_operand (operands[0], E_V4DImode)
2682 975 : || GET_MODE (x1) != E_V4DImode
2683 975 : || GET_MODE (x2) != E_V4DImode
2684 975 : || !nonimm_or_0_operand (operands[2], E_V4DImode)
2685 1999 : || !register_operand (operands[3], E_QImode))
2686 159 : return -1;
2687 900 : switch (GET_MODE (operands[1]))
2688 : {
2689 456 : case E_V4DFmode:
2690 456 : if (!vector_operand (operands[1], E_V4DFmode))
2691 : return -1;
2692 : return 8;
2693 :
2694 444 : case E_V4SFmode:
2695 444 : if (!vector_operand (operands[1], E_V4SFmode))
2696 : return -1;
2697 : return 9;
2698 :
2699 : default:
2700 : return -1;
2701 : }
2702 :
2703 1023 : case E_V2DImode:
2704 1023 : if (!register_operand (operands[0], E_V2DImode)
2705 983 : || GET_MODE (x1) != E_V2DImode
2706 983 : || GET_MODE (x2) != E_V2DImode
2707 983 : || !nonimm_or_0_operand (operands[2], E_V2DImode)
2708 1967 : || !register_operand (operands[3], E_QImode))
2709 118 : return -1;
2710 905 : switch (GET_MODE (operands[1]))
2711 : {
2712 454 : case E_V2DFmode:
2713 454 : if (!vector_operand (operands[1], E_V2DFmode))
2714 : return -1;
2715 : return 10;
2716 :
2717 451 : case E_V4SFmode:
2718 451 : if (!vector_operand (operands[1], E_V4SFmode))
2719 : return -1;
2720 : return 11;
2721 :
2722 : default:
2723 : return -1;
2724 : }
2725 :
2726 : default:
2727 : return -1;
2728 : }
2729 : }
2730 :
2731 : int
2732 400 : pattern688 (rtx x1)
2733 : {
2734 400 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2735 400 : rtx x2, x3, x4, x5, x6;
2736 400 : int res ATTRIBUTE_UNUSED;
2737 400 : x2 = XEXP (x1, 0);
2738 400 : x3 = XEXP (x2, 0);
2739 400 : x4 = XEXP (x3, 0);
2740 400 : operands[2] = x4;
2741 400 : x5 = XEXP (x3, 1);
2742 400 : operands[3] = x5;
2743 400 : x6 = XEXP (x1, 1);
2744 400 : operands[4] = x6;
2745 400 : switch (GET_MODE (operands[0]))
2746 : {
2747 90 : case E_V8SFmode:
2748 90 : return pattern687 (x1,
2749 90 : E_V8SFmode); /* [-1, 0] */
2750 :
2751 122 : case E_V4SFmode:
2752 122 : if (pattern687 (x1,
2753 : E_V4SFmode) != 0)
2754 : return -1;
2755 : return 1;
2756 :
2757 0 : case E_V4DFmode:
2758 0 : if (pattern687 (x1,
2759 : E_V4DFmode) != 0)
2760 : return -1;
2761 : return 2;
2762 :
2763 93 : case E_V2DFmode:
2764 93 : if (pattern687 (x1,
2765 : E_V2DFmode) != 0)
2766 : return -1;
2767 : return 3;
2768 :
2769 : default:
2770 : return -1;
2771 : }
2772 : }
2773 :
2774 : int
2775 120 : pattern695 (rtx x1, machine_mode i1, machine_mode i2)
2776 : {
2777 120 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2778 120 : rtx x2, x3, x4, x5;
2779 120 : int res ATTRIBUTE_UNUSED;
2780 120 : x2 = XVECEXP (x1, 0, 1);
2781 120 : if (XVECLEN (x2, 0) != 1
2782 120 : || XINT (x2, 1) != 111)
2783 : return -1;
2784 120 : x3 = XVECEXP (x2, 0, 0);
2785 120 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
2786 120 : || !register_operand (operands[0], i2))
2787 0 : return -1;
2788 120 : x4 = XVECEXP (x1, 0, 0);
2789 120 : x5 = XEXP (x4, 1);
2790 120 : if (GET_MODE (x5) != i2
2791 120 : || !nonimmediate_operand (operands[1], i1))
2792 0 : return -1;
2793 : return 0;
2794 : }
2795 :
2796 : int
2797 249 : pattern701 (rtx x1, machine_mode i1)
2798 : {
2799 249 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2800 249 : rtx x2;
2801 249 : int res ATTRIBUTE_UNUSED;
2802 249 : if (!nonimmediate_operand (operands[0], i1)
2803 249 : || GET_MODE (x1) != i1
2804 498 : || !general_operand (operands[1], i1))
2805 0 : return -1;
2806 249 : x2 = XEXP (x1, 1);
2807 249 : if (GET_MODE (x2) != i1)
2808 : return -1;
2809 : return 0;
2810 : }
2811 :
2812 : int
2813 1996345 : pattern705 (rtx x1)
2814 : {
2815 1996345 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2816 1996345 : rtx x2, x3, x4, x5, x6, x7;
2817 1996345 : int res ATTRIBUTE_UNUSED;
2818 1996345 : x2 = XVECEXP (x1, 0, 1);
2819 1996345 : if (GET_CODE (x2) != CLOBBER)
2820 : return -1;
2821 287144 : x3 = XEXP (x2, 0);
2822 287144 : if (GET_CODE (x3) != REG
2823 287144 : || REGNO (x3) != 17
2824 535686 : || GET_MODE (x3) != E_CCmode)
2825 : return -1;
2826 52848 : x4 = XVECEXP (x1, 0, 0);
2827 52848 : x5 = XEXP (x4, 1);
2828 52848 : x6 = XEXP (x5, 0);
2829 52848 : x7 = XEXP (x6, 0);
2830 52848 : switch (GET_CODE (x7))
2831 : {
2832 : case REG:
2833 : case SUBREG:
2834 : return 0;
2835 :
2836 17205 : case ZERO_EXTRACT:
2837 17205 : return 1;
2838 :
2839 : default:
2840 : return -1;
2841 : }
2842 : }
2843 :
2844 : int
2845 166 : pattern715 (rtx x1, machine_mode i1, int i2)
2846 : {
2847 166 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2848 166 : rtx x2, x3, x4, x5, x6, x7, x8;
2849 166 : int res ATTRIBUTE_UNUSED;
2850 166 : x2 = XVECEXP (x1, 0, 0);
2851 166 : x3 = XEXP (x2, 1);
2852 166 : if (GET_MODE (x3) != E_DImode)
2853 : return -1;
2854 166 : x4 = XVECEXP (x3, 0, 0);
2855 166 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2856 : return -1;
2857 166 : x5 = XVECEXP (x1, 0, 1);
2858 166 : if (GET_CODE (x5) != SET)
2859 : return -1;
2860 166 : x6 = XEXP (x5, 1);
2861 166 : if (GET_CODE (x6) != UNSPEC_VOLATILE
2862 166 : || XVECLEN (x6, 0) != 1
2863 166 : || XINT (x6, 1) != i2
2864 166 : || GET_MODE (x6) != i1)
2865 : return -1;
2866 166 : x7 = XVECEXP (x6, 0, 0);
2867 166 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
2868 166 : || !register_operand (operands[0], E_DImode))
2869 0 : return -1;
2870 166 : x8 = XEXP (x5, 0);
2871 166 : operands[1] = x8;
2872 166 : if (!register_operand (operands[1], i1))
2873 : return -1;
2874 : return 0;
2875 : }
2876 :
2877 : int
2878 99395 : pattern723 (rtx x1, machine_mode i1, machine_mode i2)
2879 : {
2880 99395 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2881 99395 : rtx x2, x3, x4;
2882 99395 : int res ATTRIBUTE_UNUSED;
2883 99395 : if (!nonimmediate_operand (operands[0], i2)
2884 99395 : || GET_MODE (x1) != i2)
2885 : return -1;
2886 99335 : x2 = XEXP (x1, 0);
2887 99335 : if (GET_MODE (x2) != i2)
2888 : return -1;
2889 99335 : x3 = XEXP (x2, 0);
2890 99335 : if (GET_MODE (x3) != i2
2891 99335 : || !nonimmediate_operand (operands[1], i1))
2892 2567 : return -1;
2893 96768 : x4 = XEXP (x1, 1);
2894 96768 : if (GET_MODE (x4) != i2
2895 96768 : || !nonimmediate_operand (operands[3], i1))
2896 1185 : return -1;
2897 : return 0;
2898 : }
2899 :
2900 : int
2901 858 : pattern732 (rtx x1, int i1, int i2)
2902 : {
2903 858 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2904 858 : rtx x2, x3, x4, x5, x6, x7;
2905 858 : int res ATTRIBUTE_UNUSED;
2906 858 : x2 = XVECEXP (x1, 0, 0);
2907 858 : x3 = XEXP (x2, 1);
2908 858 : if (XINT (x3, 1) != i1
2909 858 : || GET_MODE (x3) != E_SImode)
2910 : return -1;
2911 448 : x4 = XVECEXP (x1, 0, 1);
2912 448 : if (GET_CODE (x4) != SET)
2913 : return -1;
2914 448 : x5 = XEXP (x4, 1);
2915 448 : if (GET_CODE (x5) != UNSPEC
2916 448 : || XVECLEN (x5, 0) != i2
2917 448 : || XINT (x5, 1) != i1
2918 448 : || GET_MODE (x5) != E_V16QImode)
2919 : return -1;
2920 448 : x6 = XVECEXP (x1, 0, 2);
2921 448 : if (GET_CODE (x6) != SET)
2922 : return -1;
2923 448 : x7 = XEXP (x6, 1);
2924 448 : if (GET_CODE (x7) != UNSPEC
2925 448 : || XVECLEN (x7, 0) != i2
2926 448 : || XINT (x7, 1) != i1
2927 896 : || pattern731 (x6,
2928 : E_CCmode,
2929 : 17) != 0)
2930 0 : return -1;
2931 : return 0;
2932 : }
2933 :
2934 : int
2935 290 : pattern740 (rtx x1, machine_mode i1)
2936 : {
2937 290 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2938 290 : int res ATTRIBUTE_UNUSED;
2939 290 : if (!register_operand (operands[0], i1)
2940 290 : || GET_MODE (x1) != i1
2941 290 : || !register_operand (operands[1], i1)
2942 540 : || !register_mmxmem_operand (operands[2], i1))
2943 56 : return -1;
2944 : return 0;
2945 : }
2946 :
2947 : int
2948 1214 : pattern745 (rtx x1)
2949 : {
2950 1214 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2951 1214 : rtx x2, x3, x4, x5, x6;
2952 1214 : int res ATTRIBUTE_UNUSED;
2953 1214 : x2 = XVECEXP (x1, 0, 2);
2954 1214 : x3 = XEXP (x2, 0);
2955 1214 : if (GET_CODE (x3) != EQ)
2956 : return -1;
2957 290 : x4 = XEXP (x3, 0);
2958 290 : operands[3] = x4;
2959 290 : x5 = XEXP (x3, 1);
2960 290 : operands[4] = x5;
2961 290 : x6 = XEXP (x2, 1);
2962 290 : operands[5] = x6;
2963 290 : switch (GET_MODE (operands[0]))
2964 : {
2965 0 : case E_V8QImode:
2966 0 : return pattern744 (x1,
2967 0 : E_V8QImode); /* [-1, 0] */
2968 :
2969 90 : case E_V4QImode:
2970 90 : if (pattern744 (x1,
2971 : E_V4QImode) != 0)
2972 : return -1;
2973 : return 1;
2974 :
2975 180 : case E_V2QImode:
2976 180 : if (pattern744 (x1,
2977 : E_V2QImode) != 0)
2978 : return -1;
2979 : return 2;
2980 :
2981 0 : case E_V2HImode:
2982 0 : if (pattern744 (x1,
2983 : E_V2HImode) != 0)
2984 : return -1;
2985 : return 3;
2986 :
2987 : default:
2988 : return -1;
2989 : }
2990 : }
2991 :
2992 : int
2993 551022 : pattern756 (rtx x1)
2994 : {
2995 551022 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2996 551022 : rtx x2, x3, x4;
2997 551022 : int res ATTRIBUTE_UNUSED;
2998 551022 : if (!const_0_to_3_operand (operands[2], E_VOIDmode))
2999 : return -1;
3000 488589 : x2 = XVECEXP (x1, 0, 1);
3001 488589 : operands[3] = x2;
3002 488589 : if (!const_0_to_3_operand (operands[3], E_VOIDmode))
3003 : return -1;
3004 488404 : x3 = XVECEXP (x1, 0, 2);
3005 488404 : operands[4] = x3;
3006 488404 : if (!const_0_to_3_operand (operands[4], E_VOIDmode))
3007 : return -1;
3008 483551 : x4 = XVECEXP (x1, 0, 3);
3009 483551 : operands[5] = x4;
3010 483551 : if (!const_0_to_3_operand (operands[5], E_VOIDmode))
3011 : return -1;
3012 : return 0;
3013 : }
3014 :
3015 : int
3016 84 : pattern765 (rtx x1, machine_mode i1)
3017 : {
3018 84 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3019 84 : rtx x2, x3;
3020 84 : int res ATTRIBUTE_UNUSED;
3021 84 : if (!register_operand (operands[0], i1)
3022 84 : || GET_MODE (x1) != i1)
3023 : return -1;
3024 84 : x2 = XEXP (x1, 0);
3025 84 : if (GET_MODE (x2) != i1
3026 84 : || !nonimmediate_operand (operands[1], i1))
3027 0 : return -1;
3028 84 : x3 = XEXP (x1, 1);
3029 84 : if (GET_MODE (x3) != i1)
3030 : return -1;
3031 : return 0;
3032 : }
3033 :
3034 : int
3035 2 : pattern773 (rtx x1)
3036 : {
3037 2 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3038 2 : rtx x2, x3, x4, x5, x6, x7;
3039 2 : int res ATTRIBUTE_UNUSED;
3040 2 : x2 = XEXP (x1, 2);
3041 2 : switch (GET_CODE (x2))
3042 : {
3043 1 : case UNSPEC:
3044 1 : if (XVECLEN (x2, 0) != 3
3045 1 : || XINT (x2, 1) != 60)
3046 : return -1;
3047 1 : x3 = XVECEXP (x2, 0, 2);
3048 1 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
3049 : return -1;
3050 0 : x4 = XEXP (x1, 0);
3051 0 : operands[3] = x4;
3052 0 : x5 = XEXP (x1, 1);
3053 0 : operands[4] = x5;
3054 0 : x6 = XVECEXP (x2, 0, 0);
3055 0 : operands[1] = x6;
3056 0 : x7 = XVECEXP (x2, 0, 1);
3057 0 : operands[2] = x7;
3058 0 : switch (GET_MODE (x1))
3059 : {
3060 0 : case E_V32QImode:
3061 0 : return pattern772 (x2,
3062 : E_V32QImode,
3063 0 : E_SImode); /* [-1, 0] */
3064 :
3065 0 : case E_V16QImode:
3066 0 : if (pattern772 (x2,
3067 : E_V16QImode,
3068 : E_HImode) != 0)
3069 : return -1;
3070 : return 1;
3071 :
3072 : default:
3073 : return -1;
3074 : }
3075 :
3076 1 : case REG:
3077 1 : case SUBREG:
3078 1 : operands[1] = x2;
3079 1 : x4 = XEXP (x1, 0);
3080 1 : operands[2] = x4;
3081 1 : x5 = XEXP (x1, 1);
3082 1 : operands[3] = x5;
3083 1 : switch (GET_MODE (x1))
3084 : {
3085 1 : case E_V16QImode:
3086 1 : if (!vector_all_ones_operand (operands[2], E_V16QImode)
3087 1 : || !const0_operand (operands[3], E_V16QImode)
3088 2 : || !register_operand (operands[1], E_HImode))
3089 0 : return -1;
3090 : return 2;
3091 :
3092 0 : case E_V32QImode:
3093 0 : if (!vector_all_ones_operand (operands[2], E_V32QImode)
3094 0 : || !const0_operand (operands[3], E_V32QImode)
3095 0 : || !register_operand (operands[1], E_SImode))
3096 0 : return -1;
3097 : return 3;
3098 :
3099 : default:
3100 : return -1;
3101 : }
3102 :
3103 : default:
3104 : return -1;
3105 : }
3106 : }
3107 :
3108 : int
3109 152 : pattern799 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
3110 : {
3111 152 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3112 152 : rtx x2, x3;
3113 152 : int res ATTRIBUTE_UNUSED;
3114 152 : if (!register_operand (operands[0], i3)
3115 152 : || GET_MODE (x1) != i3)
3116 : return -1;
3117 142 : x2 = XEXP (x1, 0);
3118 142 : if (GET_MODE (x2) != i2
3119 142 : || !vector_operand (operands[2], i1))
3120 0 : return -1;
3121 142 : x3 = XEXP (x1, 1);
3122 142 : if (GET_MODE (x3) != i2
3123 142 : || !register_operand (operands[1], i1))
3124 7 : return -1;
3125 : return 0;
3126 : }
3127 :
3128 : int
3129 1174 : pattern811 (rtx x1, machine_mode i1, machine_mode i2)
3130 : {
3131 1174 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3132 1174 : rtx x2;
3133 1174 : int res ATTRIBUTE_UNUSED;
3134 1174 : if (!register_operand (operands[0], i1)
3135 1174 : || GET_MODE (x1) != i1)
3136 : return -1;
3137 1153 : x2 = XEXP (x1, 0);
3138 1153 : if (GET_MODE (x2) != i2
3139 1153 : || !nonimmediate_operand (operands[1], i1)
3140 2262 : || !const0_operand (operands[2], i1))
3141 422 : return -1;
3142 : return 0;
3143 : }
3144 :
3145 : int
3146 183 : pattern818 (rtx x1, machine_mode i1)
3147 : {
3148 183 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3149 183 : rtx x2;
3150 183 : int res ATTRIBUTE_UNUSED;
3151 183 : if (!register_operand (operands[0], i1)
3152 183 : || GET_MODE (x1) != i1)
3153 : return -1;
3154 183 : x2 = XEXP (x1, 0);
3155 183 : if (GET_MODE (x2) != i1
3156 183 : || !bcst_vector_operand (operands[1], i1)
3157 358 : || !bcst_vector_operand (operands[2], i1))
3158 8 : return -1;
3159 : return 0;
3160 : }
3161 :
3162 : int
3163 13904 : pattern823 (rtx x1)
3164 : {
3165 13904 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3166 13904 : int res ATTRIBUTE_UNUSED;
3167 13904 : switch (GET_MODE (operands[0]))
3168 : {
3169 1573 : case E_QImode:
3170 1573 : if (!register_operand (operands[0], E_QImode)
3171 1553 : || GET_MODE (x1) != E_QImode
3172 3126 : || !register_operand (operands[1], E_QImode))
3173 46 : return -1;
3174 : return 0;
3175 :
3176 9394 : case E_HImode:
3177 9394 : if (!register_operand (operands[0], E_HImode)
3178 9374 : || GET_MODE (x1) != E_HImode
3179 18768 : || !register_operand (operands[1], E_HImode))
3180 2969 : return -1;
3181 : return 1;
3182 :
3183 1959 : case E_SImode:
3184 1959 : if (!register_operand (operands[0], E_SImode)
3185 1939 : || GET_MODE (x1) != E_SImode
3186 3898 : || !register_operand (operands[1], E_SImode))
3187 52 : return -1;
3188 : return 2;
3189 :
3190 978 : case E_DImode:
3191 978 : if (!register_operand (operands[0], E_DImode)
3192 958 : || GET_MODE (x1) != E_DImode
3193 1936 : || !register_operand (operands[1], E_DImode))
3194 87 : return -1;
3195 : return 3;
3196 :
3197 : default:
3198 : return -1;
3199 : }
3200 : }
3201 :
3202 : int
3203 63026 : pattern834 (rtx x1)
3204 : {
3205 63026 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3206 63026 : rtx x2, x3;
3207 63026 : int res ATTRIBUTE_UNUSED;
3208 63026 : switch (GET_CODE (x1))
3209 : {
3210 56292 : case CLOBBER:
3211 56292 : x2 = XEXP (x1, 0);
3212 56292 : if (GET_CODE (x2) != REG
3213 56292 : || REGNO (x2) != 17
3214 112584 : || GET_MODE (x2) != E_CCmode)
3215 0 : return -1;
3216 : return 0;
3217 :
3218 705 : case UNSPEC:
3219 705 : if (XVECLEN (x1, 0) != 1
3220 705 : || XINT (x1, 1) != 175)
3221 : return -1;
3222 705 : x3 = XVECEXP (x1, 0, 0);
3223 705 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3224 : return -1;
3225 705 : switch (GET_MODE (operands[0]))
3226 : {
3227 : case E_QImode:
3228 : return 1;
3229 :
3230 : case E_HImode:
3231 : return 2;
3232 :
3233 : case E_SImode:
3234 : return 3;
3235 :
3236 : case E_DImode:
3237 : return 4;
3238 :
3239 : default:
3240 : return -1;
3241 : }
3242 :
3243 : default:
3244 : return -1;
3245 : }
3246 : }
3247 :
3248 : int
3249 6475 : pattern842 (rtx x1, machine_mode i1)
3250 : {
3251 6475 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3252 6475 : int res ATTRIBUTE_UNUSED;
3253 6475 : if (!register_operand (operands[0], i1)
3254 4489 : || GET_MODE (x1) != i1
3255 4489 : || !register_operand (operands[1], i1)
3256 6500 : || !nonmemory_operand (operands[2], i1))
3257 6475 : return -1;
3258 : return 0;
3259 : }
3260 :
3261 : int
3262 7901 : pattern846 (rtx x1)
3263 : {
3264 7901 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3265 7901 : rtx x2, x3, x4, x5;
3266 7901 : int res ATTRIBUTE_UNUSED;
3267 7901 : if (!register_operand (operands[0], E_TFmode))
3268 : return -1;
3269 4658 : x2 = XVECEXP (x1, 0, 0);
3270 4658 : x3 = XEXP (x2, 1);
3271 4658 : if (GET_MODE (x3) != E_TFmode
3272 4658 : || !vector_operand (operands[1], E_TFmode))
3273 0 : return -1;
3274 4658 : x4 = XVECEXP (x1, 0, 1);
3275 4658 : x5 = XEXP (x4, 0);
3276 4658 : operands[2] = x5;
3277 4658 : if (!vector_operand (operands[2], E_TFmode))
3278 : return -1;
3279 : return 0;
3280 : }
3281 :
3282 : int
3283 856429 : pattern852 (rtx x1, machine_mode i1)
3284 : {
3285 856429 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3286 856429 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
3287 856429 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
3288 856429 : rtx x18;
3289 856429 : int res ATTRIBUTE_UNUSED;
3290 856429 : if (peep2_current_count < 4
3291 856429 : || peep2_current_count < 5
3292 482428 : || !memory_operand (operands[1], i1)
3293 988265 : || !register_operand (operands[0], i1))
3294 724782 : return -1;
3295 131647 : x2 = XEXP (x1, 0);
3296 131647 : operands[3] = x2;
3297 131647 : if (!register_operand (operands[3], i1))
3298 : return -1;
3299 23448 : x3 = XEXP (x1, 1);
3300 23448 : if (!rtx_equal_p (x3, operands[0]))
3301 : return -1;
3302 4666 : x4 = PATTERN (peep2_next_insn (2));
3303 4666 : if (GET_CODE (x4) != PARALLEL
3304 2757 : || XVECLEN (x4, 0) != 2)
3305 : return -1;
3306 2753 : x5 = XVECEXP (x4, 0, 0);
3307 2753 : if (GET_CODE (x5) != SET)
3308 : return -1;
3309 2753 : x6 = XEXP (x5, 1);
3310 2753 : if (GET_CODE (x6) != XOR)
3311 : return -1;
3312 133 : x7 = XVECEXP (x4, 0, 1);
3313 133 : if (GET_CODE (x7) != CLOBBER)
3314 : return -1;
3315 133 : x8 = XEXP (x7, 0);
3316 133 : if (GET_CODE (x8) != REG
3317 133 : || REGNO (x8) != 17
3318 266 : || GET_MODE (x8) != E_CCmode)
3319 : return -1;
3320 133 : x9 = XEXP (x5, 0);
3321 133 : operands[4] = x9;
3322 133 : x10 = XEXP (x6, 1);
3323 133 : operands[2] = x10;
3324 133 : x11 = XEXP (x6, 0);
3325 133 : if (!rtx_equal_p (x11, operands[4]))
3326 : return -1;
3327 131 : x12 = PATTERN (peep2_next_insn (3));
3328 131 : if (GET_CODE (x12) != SET)
3329 : return -1;
3330 124 : x13 = XEXP (x12, 0);
3331 124 : if (!rtx_equal_p (x13, operands[1]))
3332 : return -1;
3333 28 : x14 = PATTERN (peep2_next_insn (4));
3334 28 : if (GET_CODE (x14) != SET)
3335 : return -1;
3336 26 : x15 = XEXP (x14, 1);
3337 26 : if (GET_CODE (x15) != COMPARE
3338 22 : || GET_MODE (x15) != E_CCZmode)
3339 : return -1;
3340 22 : x16 = XEXP (x14, 0);
3341 22 : if (GET_CODE (x16) != REG
3342 22 : || REGNO (x16) != 17
3343 44 : || GET_MODE (x16) != E_CCZmode)
3344 : return -1;
3345 22 : x17 = XEXP (x15, 0);
3346 22 : if (!register_operand (x17, i1))
3347 : return -1;
3348 22 : x18 = XEXP (x15, 1);
3349 22 : if (!nonmemory_operand (x18, i1))
3350 : return -1;
3351 : return 0;
3352 : }
3353 :
3354 : int
3355 40981 : pattern870 (rtx x1, machine_mode i1)
3356 : {
3357 40981 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3358 40981 : int res ATTRIBUTE_UNUSED;
3359 40981 : if (!register_operand (operands[0], i1)
3360 31407 : || !binary_fp_operator (operands[3], i1)
3361 31407 : || !register_operand (operands[1], i1)
3362 72162 : || GET_MODE (x1) != i1)
3363 9800 : return -1;
3364 31181 : switch (GET_MODE (operands[2]))
3365 : {
3366 16 : case E_HImode:
3367 16 : if (!nonimmediate_operand (operands[2], E_HImode))
3368 : return -1;
3369 : return 0;
3370 :
3371 30160 : case E_SImode:
3372 30160 : if (!nonimmediate_operand (operands[2], E_SImode))
3373 : return -1;
3374 : return 1;
3375 :
3376 : default:
3377 : return -1;
3378 : }
3379 : }
3380 :
3381 : int
3382 8870 : pattern880 (rtx x1, machine_mode i1)
3383 : {
3384 8870 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3385 8870 : rtx x2, x3;
3386 8870 : int res ATTRIBUTE_UNUSED;
3387 8870 : if (!register_operand (operands[0], i1)
3388 8870 : || GET_MODE (x1) != i1)
3389 : return -1;
3390 8846 : x2 = XEXP (x1, 0);
3391 8846 : if (GET_MODE (x2) != i1)
3392 : return -1;
3393 8846 : x3 = XEXP (x1, 2);
3394 8846 : if (GET_MODE (x3) != i1)
3395 0 : return -1;
3396 : return 0;
3397 : }
3398 :
3399 : int
3400 1390 : pattern886 (rtx x1)
3401 : {
3402 1390 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3403 1390 : rtx x2;
3404 1390 : int res ATTRIBUTE_UNUSED;
3405 1390 : switch (GET_MODE (operands[0]))
3406 : {
3407 276 : case E_DImode:
3408 276 : return pattern885 (x1,
3409 : E_DImode,
3410 276 : E_V64QImode); /* [-1, 0] */
3411 :
3412 584 : case E_SImode:
3413 584 : if (!register_operand (operands[0], E_SImode)
3414 584 : || GET_MODE (x1) != E_SImode)
3415 : return -1;
3416 568 : x2 = XEXP (x1, 0);
3417 568 : if (GET_MODE (x2) != E_SImode
3418 568 : || !register_operand (operands[3], E_SImode))
3419 96 : return -1;
3420 472 : res = pattern882 ();
3421 472 : if (res >= 0)
3422 472 : return res + 1; /* [1, 2] */
3423 : return -1;
3424 :
3425 : default:
3426 : return -1;
3427 : }
3428 : }
3429 :
3430 : int
3431 614 : pattern895 (rtx x1)
3432 : {
3433 614 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3434 614 : rtx x2;
3435 614 : int res ATTRIBUTE_UNUSED;
3436 614 : x2 = XEXP (x1, 2);
3437 614 : if (XWINT (x2, 0) != 1L)
3438 : return -1;
3439 434 : switch (GET_MODE (operands[0]))
3440 : {
3441 210 : case E_V4SFmode:
3442 210 : return pattern641 (x1,
3443 210 : E_V4SFmode); /* [-1, 0] */
3444 :
3445 224 : case E_V8HFmode:
3446 224 : if (pattern641 (x1,
3447 : E_V8HFmode) != 0)
3448 : return -1;
3449 : return 1;
3450 :
3451 : default:
3452 : return -1;
3453 : }
3454 : }
3455 :
3456 : int
3457 1104 : pattern904 (rtx x1)
3458 : {
3459 1104 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3460 1104 : rtx x2;
3461 1104 : int res ATTRIBUTE_UNUSED;
3462 1104 : if (!register_operand (operands[0], E_V8HFmode)
3463 1104 : || GET_MODE (x1) != E_V8HFmode)
3464 : return -1;
3465 1038 : x2 = XEXP (x1, 0);
3466 1038 : if (GET_MODE (x2) != E_V8HFmode
3467 1038 : || !nonimm_or_0_operand (operands[2], E_V8HFmode)
3468 2074 : || !register_operand (operands[3], E_QImode))
3469 82 : return -1;
3470 956 : switch (GET_MODE (operands[1]))
3471 : {
3472 408 : case E_V8HImode:
3473 408 : if (!vector_operand (operands[1], E_V8HImode))
3474 : return -1;
3475 : return 0;
3476 :
3477 406 : case E_V8SImode:
3478 406 : if (!vector_operand (operands[1], E_V8SImode))
3479 : return -1;
3480 : return 1;
3481 :
3482 142 : case E_V8DImode:
3483 142 : if (!vector_operand (operands[1], E_V8DImode))
3484 : return -1;
3485 : return 2;
3486 :
3487 : default:
3488 : return -1;
3489 : }
3490 : }
3491 :
3492 : int
3493 1286 : pattern917 (rtx x1)
3494 : {
3495 1286 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3496 1286 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
3497 1286 : int res ATTRIBUTE_UNUSED;
3498 1286 : x2 = XVECEXP (x1, 0, 0);
3499 1286 : x3 = XEXP (x2, 0);
3500 1286 : x4 = XVECEXP (x3, 0, 0);
3501 1286 : operands[1] = x4;
3502 1286 : x5 = XVECEXP (x3, 0, 1);
3503 1286 : operands[2] = x5;
3504 1286 : x6 = XVECEXP (x1, 0, 1);
3505 1286 : if (!const_4_or_8_to_11_operand (x6, E_SImode))
3506 : return -1;
3507 1286 : x7 = XEXP (x2, 2);
3508 1286 : switch (GET_CODE (x7))
3509 : {
3510 926 : case UNSPEC:
3511 926 : if (XVECLEN (x7, 0) != 1
3512 926 : || XINT (x7, 1) != 224
3513 926 : || GET_MODE (x7) != E_SImode
3514 926 : || !register_operand (operands[0], E_V32HFmode)
3515 870 : || GET_MODE (x1) != E_V32HFmode
3516 870 : || GET_MODE (x2) != E_V32HFmode
3517 870 : || GET_MODE (x3) != E_V32HFmode
3518 870 : || !register_operand (operands[1], E_V32HFmode)
3519 1776 : || !register_operand (operands[2], E_V32HFmode))
3520 92 : return -1;
3521 834 : x8 = XEXP (x2, 1);
3522 834 : operands[3] = x8;
3523 834 : if (!nonimm_or_0_operand (operands[3], E_V32HFmode))
3524 : return -1;
3525 830 : x9 = XVECEXP (x7, 0, 0);
3526 830 : operands[4] = x9;
3527 830 : if (!register_operand (operands[4], E_HImode))
3528 : return -1;
3529 766 : operands[5] = x6;
3530 766 : return 0;
3531 :
3532 360 : case CONST_INT:
3533 360 : if (XWINT (x7, 0) != 3L
3534 360 : || !register_operand (operands[0], E_V8HFmode)
3535 334 : || GET_MODE (x1) != E_V8HFmode
3536 334 : || GET_MODE (x2) != E_V8HFmode
3537 334 : || GET_MODE (x3) != E_V8HFmode
3538 334 : || !nonimmediate_operand (operands[1], E_V8HFmode)
3539 694 : || !register_operand (operands[2], E_V8HFmode))
3540 36 : return -1;
3541 324 : operands[3] = x6;
3542 324 : x8 = XEXP (x2, 1);
3543 324 : if (!rtx_equal_p (x8, operands[1]))
3544 : return -1;
3545 : return 1;
3546 :
3547 : default:
3548 : return -1;
3549 : }
3550 : }
3551 :
3552 : int
3553 73229 : pattern937 (rtx x1, machine_mode i1)
3554 : {
3555 73229 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3556 73229 : int res ATTRIBUTE_UNUSED;
3557 73229 : if (!register_operand (operands[0], i1)
3558 72645 : || GET_MODE (x1) != i1
3559 72645 : || !bcst_vector_operand (operands[1], i1)
3560 145145 : || !vector_all_ones_operand (operands[2], i1))
3561 68507 : return -1;
3562 : return 0;
3563 : }
3564 :
3565 : int
3566 30565 : pattern939 (rtx x1, machine_mode i1)
3567 : {
3568 30565 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3569 30565 : rtx x2;
3570 30565 : int res ATTRIBUTE_UNUSED;
3571 30565 : if (!register_operand (operands[0], i1)
3572 30565 : || GET_MODE (x1) != i1)
3573 : return -1;
3574 30337 : x2 = XEXP (x1, 0);
3575 30337 : if (GET_MODE (x2) != i1
3576 30337 : || !nonimmediate_operand (operands[1], i1))
3577 3036 : return -1;
3578 : return 0;
3579 : }
3580 :
3581 : int
3582 235450 : pattern945 (rtx x1)
3583 : {
3584 235450 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3585 235450 : rtx x2, x3, x4, x5, x6;
3586 235450 : int res ATTRIBUTE_UNUSED;
3587 235450 : x2 = XEXP (x1, 0);
3588 235450 : operands[0] = x2;
3589 235450 : x3 = XEXP (x1, 1);
3590 235450 : x4 = XEXP (x3, 0);
3591 235450 : x5 = XEXP (x4, 0);
3592 235450 : operands[2] = x5;
3593 235450 : x6 = XEXP (x3, 1);
3594 235450 : operands[1] = x6;
3595 235450 : switch (GET_MODE (operands[0]))
3596 : {
3597 198019 : case E_DImode:
3598 198019 : return pattern944 (x3,
3599 : E_DImode,
3600 198019 : E_SImode); /* [-1, 0] */
3601 :
3602 3012 : case E_TImode:
3603 3012 : if (pattern944 (x3,
3604 : E_TImode,
3605 : E_DImode) != 0)
3606 : return -1;
3607 : return 1;
3608 :
3609 : default:
3610 : return -1;
3611 : }
3612 : }
3613 :
3614 : int
3615 8391 : pattern954 (rtx x1, rtx_code i1)
3616 : {
3617 8391 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3618 8391 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
3619 8391 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
3620 8391 : rtx x18;
3621 8391 : int res ATTRIBUTE_UNUSED;
3622 8391 : x2 = XVECEXP (x1, 0, 0);
3623 8391 : x3 = XEXP (x2, 1);
3624 8391 : x4 = XEXP (x3, 0);
3625 8391 : x5 = XEXP (x4, 0);
3626 8391 : if (GET_CODE (x5) != SUBREG
3627 1551 : || maybe_ne (SUBREG_BYTE (x5), 0)
3628 9942 : || GET_MODE (x5) != E_QImode)
3629 : return -1;
3630 1551 : x6 = XEXP (x5, 0);
3631 1551 : switch (GET_CODE (x6))
3632 : {
3633 760 : case ASHIFTRT:
3634 760 : case LSHIFTRT:
3635 760 : case SIGN_EXTRACT:
3636 760 : case ZERO_EXTRACT:
3637 760 : operands[3] = x6;
3638 760 : x7 = XVECEXP (x1, 0, 1);
3639 760 : if (GET_CODE (x7) != SET)
3640 : return -1;
3641 443 : x8 = XEXP (x7, 1);
3642 443 : if (GET_CODE (x8) != SUBREG
3643 443 : || maybe_ne (SUBREG_BYTE (x8), 0))
3644 : return -1;
3645 0 : x9 = XEXP (x8, 0);
3646 0 : if (GET_CODE (x9) != i1
3647 0 : || GET_MODE (x9) != E_QImode)
3648 : return -1;
3649 0 : x10 = XEXP (x9, 0);
3650 0 : if (GET_CODE (x10) != SUBREG
3651 0 : || maybe_ne (SUBREG_BYTE (x10), 0)
3652 0 : || GET_MODE (x10) != E_QImode)
3653 : return -1;
3654 0 : x11 = XEXP (x10, 0);
3655 0 : if (GET_CODE (x11) != ZERO_EXTRACT)
3656 : return -1;
3657 0 : x12 = XEXP (x11, 1);
3658 0 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
3659 : return -1;
3660 0 : x13 = XEXP (x11, 2);
3661 0 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
3662 : return -1;
3663 0 : x14 = XEXP (x7, 0);
3664 0 : if (GET_CODE (x14) != ZERO_EXTRACT)
3665 : return -1;
3666 0 : x15 = XEXP (x14, 1);
3667 0 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
3668 : return -1;
3669 0 : x16 = XEXP (x14, 2);
3670 0 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
3671 : return -1;
3672 0 : x17 = XEXP (x2, 0);
3673 0 : operands[4] = x17;
3674 0 : if (!flags_reg_operand (operands[4], E_VOIDmode))
3675 : return -1;
3676 0 : operands[5] = x3;
3677 0 : if (!compare_operator (operands[5], E_VOIDmode)
3678 0 : || GET_MODE (x4) != E_QImode)
3679 : return -1;
3680 0 : x18 = XEXP (x6, 0);
3681 0 : operands[1] = x18;
3682 0 : if (!int248_register_operand (operands[1], E_VOIDmode))
3683 : return -1;
3684 0 : return pattern590 (x7); /* [-1, 2] */
3685 :
3686 : default:
3687 : return -1;
3688 : }
3689 : }
3690 :
3691 : int
3692 1807 : pattern979 (rtx x1)
3693 : {
3694 1807 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3695 1807 : rtx x2, x3, x4, x5, x6, x7;
3696 1807 : int res ATTRIBUTE_UNUSED;
3697 1807 : x2 = XEXP (x1, 0);
3698 1807 : x3 = XEXP (x2, 1);
3699 1807 : if (XVECLEN (x3, 0) != 1)
3700 : return -1;
3701 1799 : x4 = XVECEXP (x3, 0, 0);
3702 1799 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3703 : return -1;
3704 362 : x5 = XEXP (x1, 1);
3705 362 : x6 = XEXP (x5, 1);
3706 362 : if (XVECLEN (x6, 0) != 1)
3707 : return -1;
3708 362 : x7 = XVECEXP (x6, 0, 0);
3709 362 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
3710 154 : return -1;
3711 : return 0;
3712 : }
3713 :
3714 : int
3715 3241 : pattern981 (rtx x1)
3716 : {
3717 3241 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3718 3241 : int res ATTRIBUTE_UNUSED;
3719 3241 : if (!nonimmediate_operand (operands[0], E_HFmode)
3720 3241 : || GET_MODE (x1) != E_HFmode)
3721 : return -1;
3722 3241 : switch (GET_MODE (operands[1]))
3723 : {
3724 46 : case E_V32HFmode:
3725 46 : if (!nonimmediate_operand (operands[1], E_V32HFmode))
3726 : return -1;
3727 : return 0;
3728 :
3729 81 : case E_V16HFmode:
3730 81 : if (!nonimmediate_operand (operands[1], E_V16HFmode))
3731 : return -1;
3732 : return 1;
3733 :
3734 2346 : case E_V8HFmode:
3735 2346 : if (!nonimmediate_operand (operands[1], E_V8HFmode))
3736 : return -1;
3737 : return 2;
3738 :
3739 : default:
3740 : return -1;
3741 : }
3742 : }
3743 :
3744 : int
3745 268867 : pattern984 (rtx x1)
3746 : {
3747 268867 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3748 268867 : rtx x2, x3;
3749 268867 : int res ATTRIBUTE_UNUSED;
3750 268867 : if (!const_0_to_3_operand (operands[3], E_VOIDmode))
3751 : return -1;
3752 268867 : x2 = XEXP (x1, 1);
3753 268867 : x3 = XVECEXP (x2, 0, 1);
3754 268867 : operands[4] = x3;
3755 268867 : if (!const_0_to_3_operand (operands[4], E_VOIDmode))
3756 : return -1;
3757 268867 : switch (GET_MODE (operands[0]))
3758 : {
3759 0 : case E_V2HFmode:
3760 0 : return pattern274 (x1,
3761 : E_V2HFmode,
3762 0 : E_V4HFmode); /* [-1, 0] */
3763 :
3764 0 : case E_V2BFmode:
3765 0 : if (pattern274 (x1,
3766 : E_V2BFmode,
3767 : E_V4BFmode) != 0)
3768 : return -1;
3769 : return 1;
3770 :
3771 2966 : case E_V2HImode:
3772 2966 : if (pattern274 (x1,
3773 : E_V2HImode,
3774 : E_V4HImode) != 0)
3775 : return -1;
3776 : return 2;
3777 :
3778 : default:
3779 : return -1;
3780 : }
3781 : }
3782 :
3783 : int
3784 14 : pattern993 (rtx x1, machine_mode i1)
3785 : {
3786 14 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3787 14 : rtx x2, x3;
3788 14 : int res ATTRIBUTE_UNUSED;
3789 14 : if (!register_operand (operands[0], i1)
3790 14 : || GET_MODE (x1) != i1)
3791 : return -1;
3792 14 : x2 = XEXP (x1, 0);
3793 14 : if (GET_MODE (x2) != i1)
3794 : return -1;
3795 14 : x3 = XEXP (x2, 0);
3796 14 : if (GET_MODE (x3) != i1
3797 14 : || !nonimmediate_operand (operands[1], i1))
3798 10 : return -1;
3799 : return 0;
3800 : }
3801 :
3802 : int
3803 1762 : pattern996 (rtx x1)
3804 : {
3805 1762 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3806 1762 : rtx x2;
3807 1762 : int res ATTRIBUTE_UNUSED;
3808 1762 : if (!register_operand (operands[0], E_DImode)
3809 1762 : || GET_MODE (x1) != E_DImode)
3810 : return -1;
3811 1736 : x2 = XEXP (x1, 0);
3812 1736 : if (GET_MODE (x2) != E_DImode
3813 1736 : || !register_operand (operands[1], E_V64QImode)
3814 1587 : || !nonimmediate_operand (operands[2], E_V64QImode)
3815 3317 : || !const_0_to_7_operand (operands[3], E_SImode))
3816 155 : return -1;
3817 : return 0;
3818 : }
3819 :
3820 : int
3821 517 : pattern1000 (rtx x1)
3822 : {
3823 517 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3824 517 : rtx x2;
3825 517 : int res ATTRIBUTE_UNUSED;
3826 517 : if (!register_operand (operands[0], E_V16SImode)
3827 517 : || GET_MODE (x1) != E_V16SImode)
3828 : return -1;
3829 462 : x2 = XEXP (x1, 0);
3830 462 : if (GET_MODE (x2) != E_V16SImode
3831 462 : || !nonimm_or_0_operand (operands[2], E_V16SImode)
3832 897 : || !register_operand (operands[3], E_HImode))
3833 96 : return -1;
3834 366 : switch (GET_MODE (operands[1]))
3835 : {
3836 198 : case E_V16HFmode:
3837 198 : if (!vector_operand (operands[1], E_V16HFmode))
3838 : return -1;
3839 : return 0;
3840 :
3841 168 : case E_V16SFmode:
3842 168 : if (!vector_operand (operands[1], E_V16SFmode))
3843 : return -1;
3844 : return 1;
3845 :
3846 : default:
3847 : return -1;
3848 : }
3849 : }
3850 :
3851 : int
3852 199 : pattern1005 (rtx x1, machine_mode i1)
3853 : {
3854 199 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3855 199 : rtx x2;
3856 199 : int res ATTRIBUTE_UNUSED;
3857 199 : if (!register_operand (operands[0], i1)
3858 199 : || GET_MODE (x1) != i1)
3859 : return -1;
3860 199 : x2 = XEXP (x1, 0);
3861 199 : if (GET_MODE (x2) != i1
3862 199 : || !nonimmediate_operand (operands[1], i1)
3863 398 : || !const0_operand (operands[2], i1))
3864 66 : return -1;
3865 : return 0;
3866 : }
3867 :
3868 : int
3869 4161 : pattern1013 (rtx x1, machine_mode i1, machine_mode i2)
3870 : {
3871 4161 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3872 4161 : rtx x2;
3873 4161 : int res ATTRIBUTE_UNUSED;
3874 4161 : if (!register_operand (operands[0], i1)
3875 4161 : || GET_MODE (x1) != i1)
3876 : return -1;
3877 3984 : x2 = XEXP (x1, 0);
3878 3984 : if (GET_MODE (x2) != i1
3879 3984 : || !nonimmediate_operand (operands[2], i2)
3880 7939 : || !reg_or_0_operand (operands[1], i1))
3881 437 : return -1;
3882 : return 0;
3883 : }
3884 :
3885 : int
3886 8894 : pattern1020 (rtx x1)
3887 : {
3888 8894 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3889 8894 : rtx x2, x3, x4, x5, x6, x7;
3890 8894 : int res ATTRIBUTE_UNUSED;
3891 8894 : x2 = XEXP (x1, 1);
3892 8894 : operands[2] = x2;
3893 8894 : x3 = XEXP (x1, 2);
3894 8894 : x4 = XVECEXP (x3, 0, 1);
3895 8894 : operands[4] = x4;
3896 8894 : x5 = XVECEXP (x3, 0, 2);
3897 8894 : operands[5] = x5;
3898 8894 : x6 = XVECEXP (x3, 0, 0);
3899 8894 : switch (GET_CODE (x6))
3900 : {
3901 : case REG:
3902 : case SUBREG:
3903 : case MEM:
3904 : return 0;
3905 :
3906 0 : case NOT:
3907 0 : x7 = XEXP (x6, 0);
3908 0 : operands[3] = x7;
3909 0 : if (!const_0_to_7_operand (operands[5], E_SImode))
3910 : return -1;
3911 0 : switch (GET_MODE (operands[0]))
3912 : {
3913 0 : case E_V32QImode:
3914 0 : if (pattern1019 (x1,
3915 : E_V32QImode,
3916 : E_SImode) != 0)
3917 : return -1;
3918 : return 1;
3919 :
3920 0 : case E_V16QImode:
3921 0 : if (pattern1019 (x1,
3922 : E_V16QImode,
3923 : E_HImode) != 0)
3924 : return -1;
3925 : return 2;
3926 :
3927 : default:
3928 : return -1;
3929 : }
3930 :
3931 : default:
3932 : return -1;
3933 : }
3934 : }
3935 :
3936 : int
3937 217 : pattern1037 (rtx x1, machine_mode i1, machine_mode i2)
3938 : {
3939 217 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3940 217 : rtx x2;
3941 217 : int res ATTRIBUTE_UNUSED;
3942 217 : if (!register_operand (operands[0], i2)
3943 217 : || GET_MODE (x1) != i2)
3944 : return -1;
3945 209 : x2 = XVECEXP (x1, 0, 0);
3946 209 : if (GET_MODE (x2) != i2
3947 209 : || !nonimmediate_operand (operands[1], i1))
3948 3 : return -1;
3949 : return 0;
3950 : }
3951 :
3952 : int
3953 450 : pattern1042 (rtx x1, machine_mode i1)
3954 : {
3955 450 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3956 450 : int res ATTRIBUTE_UNUSED;
3957 450 : if (!register_operand (operands[0], i1)
3958 396 : || GET_MODE (x1) != i1
3959 396 : || !register_operand (operands[1], i1)
3960 789 : || !bcst_vector_operand (operands[2], i1))
3961 111 : return -1;
3962 : return 0;
3963 : }
3964 :
3965 : int
3966 21441 : pattern1047 (rtx x1)
3967 : {
3968 21441 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3969 21441 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
3970 21441 : rtx x10;
3971 21441 : int res ATTRIBUTE_UNUSED;
3972 21441 : x2 = XEXP (x1, 1);
3973 21441 : x3 = XEXP (x2, 0);
3974 21441 : if (GET_MODE (x3) != E_QImode)
3975 : return -1;
3976 21098 : x4 = XEXP (x3, 0);
3977 21098 : if (GET_CODE (x4) != SUBREG
3978 21092 : || maybe_ne (SUBREG_BYTE (x4), 0)
3979 42190 : || GET_MODE (x4) != E_QImode)
3980 : return -1;
3981 21092 : x5 = XEXP (x4, 0);
3982 21092 : switch (GET_CODE (x5))
3983 : {
3984 21092 : case ASHIFTRT:
3985 21092 : case LSHIFTRT:
3986 21092 : case SIGN_EXTRACT:
3987 21092 : case ZERO_EXTRACT:
3988 21092 : operands[3] = x5;
3989 21092 : x6 = XEXP (x1, 0);
3990 21092 : if (GET_CODE (x6) != ZERO_EXTRACT)
3991 : return -1;
3992 21092 : x7 = XEXP (x6, 1);
3993 21092 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
3994 : return -1;
3995 21092 : x8 = XEXP (x6, 2);
3996 21092 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
3997 : return -1;
3998 21092 : x9 = XEXP (x6, 0);
3999 21092 : operands[0] = x9;
4000 21092 : if (!int248_register_operand (operands[0], E_VOIDmode))
4001 : return -1;
4002 21092 : x10 = XEXP (x5, 0);
4003 21092 : operands[1] = x10;
4004 21092 : if (!int248_register_operand (operands[1], E_VOIDmode))
4005 : return -1;
4006 : return 0;
4007 :
4008 : default:
4009 : return -1;
4010 : }
4011 : }
4012 :
4013 : int
4014 633 : pattern1057 (rtx x1)
4015 : {
4016 633 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4017 633 : rtx x2, x3, x4, x5, x6, x7;
4018 633 : int res ATTRIBUTE_UNUSED;
4019 633 : x2 = XEXP (x1, 1);
4020 633 : x3 = XEXP (x2, 1);
4021 633 : x4 = XEXP (x3, 0);
4022 633 : x5 = XEXP (x4, 0);
4023 633 : operands[2] = x5;
4024 633 : if (!int248_register_operand (operands[2], E_VOIDmode))
4025 : return -1;
4026 427 : x6 = XEXP (x1, 0);
4027 427 : switch (GET_CODE (x6))
4028 : {
4029 65 : case STRICT_LOW_PART:
4030 65 : x7 = XEXP (x6, 0);
4031 65 : operands[0] = x7;
4032 65 : if (!register_operand (operands[0], E_QImode))
4033 : return -1;
4034 65 : return pattern1056 (); /* [-1, 2] */
4035 :
4036 362 : case REG:
4037 362 : case SUBREG:
4038 362 : operands[0] = x6;
4039 362 : if (!register_operand (operands[0], E_QImode))
4040 : return -1;
4041 362 : res = pattern1056 ();
4042 362 : if (res >= 0)
4043 194 : return res + 3; /* [3, 5] */
4044 : return -1;
4045 :
4046 : default:
4047 : return -1;
4048 : }
4049 : }
4050 :
4051 : int
4052 1231 : pattern1063 (rtx x1)
4053 : {
4054 1231 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4055 1231 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
4056 1231 : int res ATTRIBUTE_UNUSED;
4057 1231 : x2 = XEXP (x1, 0);
4058 1231 : operands[0] = x2;
4059 1231 : x3 = XEXP (x1, 1);
4060 1231 : x4 = XEXP (x3, 0);
4061 1231 : x5 = XEXP (x4, 0);
4062 1231 : x6 = XEXP (x5, 0);
4063 1231 : operands[1] = x6;
4064 1231 : x7 = XEXP (x5, 1);
4065 1231 : operands[2] = x7;
4066 1231 : x8 = XEXP (x4, 1);
4067 1231 : operands[3] = x8;
4068 1231 : x9 = XEXP (x3, 1);
4069 1231 : if (!rtx_equal_p (x9, operands[1]))
4070 : return -1;
4071 833 : switch (GET_MODE (operands[0]))
4072 : {
4073 84 : case E_HImode:
4074 84 : return pattern1062 (x3,
4075 84 : E_HImode); /* [-1, 0] */
4076 :
4077 749 : case E_SImode:
4078 749 : if (pattern1062 (x3,
4079 : E_SImode) != 0)
4080 : return -1;
4081 : return 1;
4082 :
4083 0 : case E_DImode:
4084 0 : if (pattern1062 (x3,
4085 : E_DImode) != 0)
4086 : return -1;
4087 : return 2;
4088 :
4089 : default:
4090 : return -1;
4091 : }
4092 : }
4093 :
4094 : int
4095 3932 : pattern1071 (rtx x1, int i1)
4096 : {
4097 3932 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4098 3932 : rtx x2, x3, x4, x5;
4099 3932 : int res ATTRIBUTE_UNUSED;
4100 3932 : x2 = XEXP (x1, 1);
4101 3932 : x3 = XEXP (x2, 0);
4102 3932 : x4 = XEXP (x3, 0);
4103 3932 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
4104 : return -1;
4105 567 : x5 = XEXP (x1, 0);
4106 567 : operands[0] = x5;
4107 567 : return pattern1070 (x2); /* [-1, 3] */
4108 : }
4109 :
4110 : int
4111 4 : pattern1076 (rtx x1, machine_mode i1, machine_mode i2)
4112 : {
4113 4 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4114 4 : rtx x2, x3;
4115 4 : int res ATTRIBUTE_UNUSED;
4116 4 : if (!register_operand (operands[0], i1)
4117 4 : || GET_MODE (x1) != i1)
4118 : return -1;
4119 4 : x2 = XEXP (x1, 0);
4120 4 : if (GET_MODE (x2) != i1)
4121 : return -1;
4122 4 : x3 = XEXP (x2, 0);
4123 4 : if (GET_MODE (x3) != i2
4124 4 : || !vector_operand (operands[2], i1))
4125 0 : return -1;
4126 : return 0;
4127 : }
4128 :
4129 : int
4130 15868 : pattern1082 ()
4131 : {
4132 15868 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4133 15868 : int res ATTRIBUTE_UNUSED;
4134 15868 : switch (GET_MODE (operands[3]))
4135 : {
4136 946 : case E_HImode:
4137 946 : if (!extract_high_operator (operands[3], E_HImode))
4138 : return -1;
4139 : return 0;
4140 :
4141 10013 : case E_SImode:
4142 10013 : if (!extract_high_operator (operands[3], E_SImode))
4143 : return -1;
4144 : return 1;
4145 :
4146 4909 : case E_DImode:
4147 4909 : if (!extract_high_operator (operands[3], E_DImode))
4148 : return -1;
4149 : return 2;
4150 :
4151 : default:
4152 : return -1;
4153 : }
4154 : }
4155 :
4156 : int
4157 2 : pattern1087 (rtx x1)
4158 : {
4159 2 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4160 2 : rtx x2, x3, x4, x5;
4161 2 : int res ATTRIBUTE_UNUSED;
4162 2 : x2 = XEXP (x1, 0);
4163 2 : x3 = XEXP (x2, 0);
4164 2 : if (GET_CODE (x3) != REG
4165 2 : || REGNO (x3) != 17)
4166 : return -1;
4167 2 : x4 = XEXP (x2, 1);
4168 2 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
4169 : return -1;
4170 2 : x5 = XEXP (x1, 1);
4171 2 : operands[1] = x5;
4172 2 : if (!nonimmediate_operand (operands[1], E_QImode))
4173 : return -1;
4174 : return 0;
4175 : }
4176 :
4177 : int
4178 309 : pattern1095 (rtx x1, int i1, int i2, int i3, int i4)
4179 : {
4180 309 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4181 309 : rtx x2, x3, x4, x5;
4182 309 : int res ATTRIBUTE_UNUSED;
4183 309 : x2 = XVECEXP (x1, 0, 0);
4184 309 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + i4])
4185 : return -1;
4186 309 : x3 = XVECEXP (x1, 0, 1);
4187 309 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + i3])
4188 : return -1;
4189 309 : x4 = XVECEXP (x1, 0, 2);
4190 309 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + i2])
4191 : return -1;
4192 309 : x5 = XVECEXP (x1, 0, 3);
4193 309 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
4194 0 : return -1;
4195 : return 0;
4196 : }
4197 :
4198 : int
4199 0 : pattern1107 (rtx x1, machine_mode i1)
4200 : {
4201 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4202 0 : int res ATTRIBUTE_UNUSED;
4203 0 : if (GET_MODE (x1) != i1
4204 0 : || !vector_all_ones_operand (operands[3], i1)
4205 0 : || !const0_operand (operands[4], i1)
4206 0 : || !register_operand (operands[1], i1)
4207 0 : || !const0_operand (operands[2], i1))
4208 0 : return -1;
4209 : return 0;
4210 : }
4211 :
4212 : int
4213 460 : pattern1113 (rtx x1)
4214 : {
4215 460 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4216 460 : rtx x2, x3, x4;
4217 460 : int res ATTRIBUTE_UNUSED;
4218 460 : x2 = XEXP (x1, 2);
4219 460 : x3 = XEXP (x2, 0);
4220 460 : operands[3] = x3;
4221 460 : if (!register_operand (operands[3], E_QImode))
4222 : return -1;
4223 431 : x4 = XEXP (x2, 1);
4224 431 : switch (XWINT (x4, 0))
4225 : {
4226 284 : case 15L:
4227 284 : switch (GET_MODE (operands[0]))
4228 : {
4229 0 : case E_V4SFmode:
4230 0 : return pattern1112 (x1,
4231 0 : E_V4SFmode); /* [-1, 0] */
4232 :
4233 58 : case E_V4DFmode:
4234 58 : if (pattern1112 (x1,
4235 : E_V4DFmode) != 0)
4236 : return -1;
4237 : return 1;
4238 :
4239 142 : case E_V4SImode:
4240 142 : if (pattern1112 (x1,
4241 : E_V4SImode) != 0)
4242 : return -1;
4243 : return 2;
4244 :
4245 84 : case E_V4DImode:
4246 84 : if (pattern1112 (x1,
4247 : E_V4DImode) != 0)
4248 : return -1;
4249 : return 3;
4250 :
4251 : default:
4252 : return -1;
4253 : }
4254 :
4255 147 : case 3L:
4256 147 : switch (GET_MODE (operands[0]))
4257 : {
4258 5 : case E_V2DFmode:
4259 5 : if (pattern1112 (x1,
4260 : E_V2DFmode) != 0)
4261 : return -1;
4262 : return 4;
4263 :
4264 142 : case E_V2DImode:
4265 142 : if (pattern1112 (x1,
4266 : E_V2DImode) != 0)
4267 : return -1;
4268 : return 5;
4269 :
4270 : default:
4271 : return -1;
4272 : }
4273 :
4274 : default:
4275 : return -1;
4276 : }
4277 : }
4278 :
4279 : int
4280 1406 : pattern1121 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
4281 : {
4282 1406 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4283 1406 : rtx x2;
4284 1406 : int res ATTRIBUTE_UNUSED;
4285 1406 : if (!register_operand (operands[0], i1)
4286 1406 : || GET_MODE (x1) != i1)
4287 : return -1;
4288 1317 : x2 = XEXP (x1, 0);
4289 1317 : if (GET_MODE (x2) != i1
4290 1317 : || !register_operand (operands[1], i1)
4291 1315 : || !nonimmediate_operand (operands[2], i2)
4292 1315 : || !nonimm_or_0_operand (operands[3], i1)
4293 2599 : || !register_operand (operands[4], i3))
4294 122 : return -1;
4295 : return 0;
4296 : }
4297 :
4298 : int
4299 48125 : pattern1130 (rtx x1, machine_mode i1)
4300 : {
4301 48125 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4302 48125 : int res ATTRIBUTE_UNUSED;
4303 48125 : if (!register_operand (operands[0], i1)
4304 47835 : || GET_MODE (x1) != i1
4305 47835 : || !vector_operand (operands[2], i1)
4306 37693 : || !register_operand (operands[1], i1)
4307 74055 : || !const_0_to_255_operand (operands[3], E_SImode))
4308 22568 : return -1;
4309 : return 0;
4310 : }
4311 :
4312 : int
4313 296 : pattern1134 (rtx x1, machine_mode i1, machine_mode i2)
4314 : {
4315 296 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4316 296 : rtx x2;
4317 296 : int res ATTRIBUTE_UNUSED;
4318 296 : if (!register_operand (operands[0], i2)
4319 287 : || GET_MODE (x1) != i2
4320 583 : || !register_operand (operands[1], i2))
4321 10 : return -1;
4322 286 : x2 = XEXP (x1, 1);
4323 286 : if (GET_MODE (x2) != i2
4324 286 : || !nonimmediate_operand (operands[2], i1))
4325 0 : return -1;
4326 : return 0;
4327 : }
4328 :
4329 : int
4330 964 : pattern1143 (rtx x1)
4331 : {
4332 964 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4333 964 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
4334 964 : rtx x10, x11, x12;
4335 964 : int res ATTRIBUTE_UNUSED;
4336 964 : x2 = XVECEXP (x1, 0, 0);
4337 964 : x3 = XEXP (x2, 0);
4338 964 : x4 = XEXP (x3, 0);
4339 964 : if (GET_MODE (x4) != E_V8HFmode)
4340 : return -1;
4341 964 : x5 = XEXP (x3, 2);
4342 964 : if (GET_CODE (x5) != UNSPEC
4343 964 : || XVECLEN (x5, 0) != 1
4344 964 : || XINT (x5, 1) != 224
4345 964 : || GET_MODE (x5) != E_QImode)
4346 : return -1;
4347 964 : x6 = XEXP (x2, 2);
4348 964 : if (XWINT (x6, 0) != 3L
4349 964 : || !register_operand (operands[0], E_V8HFmode)
4350 900 : || GET_MODE (x1) != E_V8HFmode
4351 900 : || GET_MODE (x2) != E_V8HFmode
4352 1864 : || GET_MODE (x3) != E_V8HFmode)
4353 64 : return -1;
4354 900 : x7 = XVECEXP (x4, 0, 0);
4355 900 : operands[1] = x7;
4356 900 : if (!nonimmediate_operand (operands[1], E_V8HFmode))
4357 : return -1;
4358 900 : x8 = XVECEXP (x4, 0, 1);
4359 900 : operands[2] = x8;
4360 900 : if (!register_operand (operands[2], E_V8HFmode))
4361 : return -1;
4362 876 : x9 = XEXP (x3, 1);
4363 876 : operands[3] = x9;
4364 876 : if (!nonimm_or_0_operand (operands[3], E_V8HFmode))
4365 : return -1;
4366 876 : x10 = XVECEXP (x5, 0, 0);
4367 876 : operands[4] = x10;
4368 876 : if (!register_operand (operands[4], E_QImode))
4369 : return -1;
4370 796 : x11 = XVECEXP (x1, 0, 1);
4371 796 : operands[5] = x11;
4372 796 : if (!const_4_or_8_to_11_operand (operands[5], E_SImode))
4373 : return -1;
4374 796 : x12 = XEXP (x2, 1);
4375 796 : if (!rtx_equal_p (x12, operands[1]))
4376 : return -1;
4377 : return 0;
4378 : }
4379 :
4380 : int
4381 2375 : pattern1164 (rtx x1)
4382 : {
4383 2375 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4384 2375 : int res ATTRIBUTE_UNUSED;
4385 2375 : switch (GET_MODE (operands[0]))
4386 : {
4387 466 : case E_SImode:
4388 466 : if (!register_operand (operands[0], E_SImode)
4389 466 : || GET_MODE (x1) != E_SImode)
4390 : return -1;
4391 456 : switch (GET_MODE (operands[1]))
4392 : {
4393 138 : case E_QImode:
4394 138 : if (!nonimmediate_operand (operands[1], E_QImode))
4395 : return -1;
4396 : return 0;
4397 :
4398 318 : case E_HImode:
4399 318 : if (!nonimmediate_operand (operands[1], E_HImode))
4400 : return -1;
4401 : return 1;
4402 :
4403 : default:
4404 : return -1;
4405 : }
4406 :
4407 106 : case E_HImode:
4408 106 : if (!register_operand (operands[0], E_HImode)
4409 106 : || GET_MODE (x1) != E_HImode
4410 212 : || !nonimmediate_operand (operands[1], E_QImode))
4411 0 : return -1;
4412 : return 2;
4413 :
4414 : default:
4415 : return -1;
4416 : }
4417 : }
4418 :
4419 : int
4420 35250 : pattern1177 (rtx x1)
4421 : {
4422 35250 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4423 35250 : rtx x2, x3, x4, x5;
4424 35250 : int res ATTRIBUTE_UNUSED;
4425 35250 : x2 = XEXP (x1, 0);
4426 35250 : operands[0] = x2;
4427 35250 : x3 = XEXP (x1, 1);
4428 35250 : x4 = XEXP (x3, 1);
4429 35250 : x5 = XEXP (x4, 0);
4430 35250 : operands[2] = x5;
4431 35250 : switch (GET_MODE (operands[0]))
4432 : {
4433 22372 : case E_DImode:
4434 22372 : return pattern1176 (x3,
4435 : E_SImode,
4436 22372 : E_DImode); /* [-1, 0] */
4437 :
4438 3160 : case E_TImode:
4439 3160 : if (pattern1176 (x3,
4440 : E_DImode,
4441 : E_TImode) != 0)
4442 : return -1;
4443 : return 1;
4444 :
4445 : default:
4446 : return -1;
4447 : }
4448 : }
4449 :
4450 : int
4451 11965 : pattern1185 (rtx x1)
4452 : {
4453 11965 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4454 11965 : rtx x2, x3, x4;
4455 11965 : int res ATTRIBUTE_UNUSED;
4456 11965 : x2 = XEXP (x1, 0);
4457 11965 : if (GET_MODE (x2) != E_SImode
4458 11933 : || !register_operand (operands[0], E_DImode)
4459 23898 : || GET_MODE (x1) != E_DImode)
4460 32 : return -1;
4461 11933 : x3 = XEXP (x2, 0);
4462 11933 : operands[1] = x3;
4463 11933 : if (!nonimmediate_operand (operands[1], E_SImode))
4464 : return -1;
4465 11909 : x4 = XEXP (x2, 1);
4466 11909 : operands[2] = x4;
4467 11909 : if (!register_operand (operands[2], E_QImode))
4468 : return -1;
4469 : return 0;
4470 : }
4471 :
4472 : int
4473 42 : pattern1194 (rtx x1, machine_mode i1)
4474 : {
4475 42 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4476 42 : int res ATTRIBUTE_UNUSED;
4477 42 : if (!register_operand (operands[0], i1)
4478 42 : || GET_MODE (x1) != i1
4479 42 : || !nonimmediate_operand (operands[2], i1)
4480 84 : || !nonimmediate_operand (operands[3], i1))
4481 0 : return -1;
4482 42 : return pattern1193 (); /* [-1, 3] */
4483 : }
4484 :
4485 : int
4486 184 : pattern1201 (rtx x1, machine_mode i1)
4487 : {
4488 184 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4489 184 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
4490 184 : rtx x10, x11, x12;
4491 184 : int res ATTRIBUTE_UNUSED;
4492 184 : x2 = XVECEXP (x1, 0, 0);
4493 184 : x3 = XEXP (x2, 1);
4494 184 : x4 = XEXP (x3, 0);
4495 184 : if (!rtx_equal_p (x4, operands[0]))
4496 : return -1;
4497 184 : x5 = XVECEXP (x1, 0, 1);
4498 184 : x6 = XEXP (x5, 1);
4499 184 : if (GET_CODE (x6) != MINUS)
4500 : return -1;
4501 184 : x7 = XEXP (x2, 0);
4502 184 : if (GET_MODE (x7) != E_CCmode
4503 184 : || GET_MODE (x3) != E_CCmode)
4504 : return -1;
4505 184 : x8 = XEXP (x3, 1);
4506 184 : operands[2] = x8;
4507 184 : if (!memory_operand (operands[2], i1))
4508 : return -1;
4509 106 : x9 = XEXP (x6, 0);
4510 106 : if (!rtx_equal_p (x9, operands[0]))
4511 : return -1;
4512 106 : x10 = XEXP (x6, 1);
4513 106 : if (!rtx_equal_p (x10, operands[2]))
4514 : return -1;
4515 106 : x11 = PATTERN (peep2_next_insn (2));
4516 106 : x12 = XEXP (x11, 0);
4517 106 : if (!rtx_equal_p (x12, operands[1]))
4518 : return -1;
4519 : return 0;
4520 : }
4521 :
4522 : int
4523 1230209 : pattern1210 (rtx x1, machine_mode i1)
4524 : {
4525 1230209 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4526 1230209 : int res ATTRIBUTE_UNUSED;
4527 1230209 : if (!register_operand (operands[0], i1)
4528 1222365 : || GET_MODE (x1) != i1
4529 1222365 : || !ix86_comparison_operator (operands[1], E_VOIDmode)
4530 1222365 : || !nonimmediate_operand (operands[2], i1)
4531 2422878 : || !nonimmediate_operand (operands[3], i1))
4532 42626 : return -1;
4533 : return 0;
4534 : }
4535 :
4536 : int
4537 25768 : pattern1214 ()
4538 : {
4539 25768 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4540 25768 : int res ATTRIBUTE_UNUSED;
4541 25768 : switch (GET_MODE (operands[2]))
4542 : {
4543 975 : case E_HImode:
4544 975 : if (!extract_high_operator (operands[2], E_HImode))
4545 : return -1;
4546 : return 0;
4547 :
4548 11516 : case E_SImode:
4549 11516 : if (!extract_high_operator (operands[2], E_SImode))
4550 : return -1;
4551 : return 1;
4552 :
4553 13277 : case E_DImode:
4554 13277 : if (!extract_high_operator (operands[2], E_DImode))
4555 : return -1;
4556 : return 2;
4557 :
4558 : default:
4559 : return -1;
4560 : }
4561 : }
4562 :
4563 : int
4564 254 : pattern1221 (rtx x1, machine_mode i1)
4565 : {
4566 254 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4567 254 : rtx x2;
4568 254 : int res ATTRIBUTE_UNUSED;
4569 254 : if (!register_operand (operands[0], i1)
4570 254 : || GET_MODE (x1) != i1
4571 508 : || !register_operand (operands[2], i1))
4572 166 : return -1;
4573 88 : x2 = XVECEXP (x1, 0, 2);
4574 88 : if (GET_MODE (x2) != i1)
4575 : return -1;
4576 : return 0;
4577 : }
4578 :
4579 : int
4580 725 : pattern1229 (rtx x1, int i1, int i2, int i3, int i4)
4581 : {
4582 725 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4583 725 : rtx x2, x3, x4, x5;
4584 725 : int res ATTRIBUTE_UNUSED;
4585 725 : x2 = XVECEXP (x1, 0, 0);
4586 725 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + i4])
4587 : return -1;
4588 725 : x3 = XVECEXP (x1, 0, 1);
4589 725 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + i3])
4590 : return -1;
4591 725 : x4 = XVECEXP (x1, 0, 2);
4592 725 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + i2])
4593 : return -1;
4594 725 : x5 = XVECEXP (x1, 0, 3);
4595 725 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
4596 0 : return -1;
4597 : return 0;
4598 : }
4599 :
4600 : int
4601 1904 : pattern1237 (rtx x1)
4602 : {
4603 1904 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4604 1904 : rtx x2, x3, x4;
4605 1904 : int res ATTRIBUTE_UNUSED;
4606 1904 : x2 = XVECEXP (x1, 0, 2);
4607 1904 : x3 = XEXP (x2, 0);
4608 1904 : x4 = XEXP (x3, 1);
4609 1904 : operands[4] = x4;
4610 1904 : switch (GET_MODE (operands[0]))
4611 : {
4612 1462 : case E_V16QImode:
4613 1462 : if (!register_operand (operands[0], E_V16QImode)
4614 1462 : || GET_MODE (x1) != E_V16QImode
4615 1462 : || !vector_operand (operands[1], E_V16QImode)
4616 1204 : || !register_operand (operands[2], E_V16QImode)
4617 2044 : || GET_MODE (x2) != E_V16QImode)
4618 880 : return -1;
4619 582 : switch (GET_MODE (x3))
4620 : {
4621 272 : case E_V4SImode:
4622 272 : if (!register_operand (operands[3], E_V4SImode)
4623 272 : || !vector_all_ones_operand (operands[4], E_V4SImode))
4624 272 : return -1;
4625 : return 0;
4626 :
4627 303 : case E_V2DImode:
4628 303 : if (!register_operand (operands[3], E_V2DImode)
4629 303 : || !vector_all_ones_operand (operands[4], E_V2DImode))
4630 303 : return -1;
4631 : return 1;
4632 :
4633 : default:
4634 : return -1;
4635 : }
4636 :
4637 190 : case E_V32QImode:
4638 190 : if (!register_operand (operands[0], E_V32QImode)
4639 190 : || GET_MODE (x1) != E_V32QImode
4640 190 : || !vector_operand (operands[1], E_V32QImode)
4641 126 : || !register_operand (operands[2], E_V32QImode)
4642 284 : || GET_MODE (x2) != E_V32QImode)
4643 96 : return -1;
4644 94 : switch (GET_MODE (x3))
4645 : {
4646 64 : case E_V8SImode:
4647 64 : if (!register_operand (operands[3], E_V8SImode)
4648 64 : || !vector_all_ones_operand (operands[4], E_V8SImode))
4649 64 : return -1;
4650 : return 2;
4651 :
4652 29 : case E_V4DImode:
4653 29 : if (!register_operand (operands[3], E_V4DImode)
4654 29 : || !vector_all_ones_operand (operands[4], E_V4DImode))
4655 29 : return -1;
4656 : return 3;
4657 :
4658 : default:
4659 : return -1;
4660 : }
4661 :
4662 : default:
4663 : return -1;
4664 : }
4665 : }
4666 :
4667 : int
4668 50 : pattern1256 (rtx x1)
4669 : {
4670 50 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4671 50 : rtx x2, x3;
4672 50 : int res ATTRIBUTE_UNUSED;
4673 50 : switch (GET_MODE (operands[0]))
4674 : {
4675 40 : case E_SImode:
4676 40 : if (!register_operand (operands[0], E_SImode)
4677 40 : || GET_MODE (x1) != E_SImode)
4678 : return -1;
4679 40 : x2 = XEXP (x1, 0);
4680 40 : if (GET_MODE (x2) != E_SImode)
4681 : return -1;
4682 40 : x3 = XEXP (x2, 0);
4683 40 : if (GET_MODE (x3) != E_SImode
4684 40 : || !nonimmediate_operand (operands[1], E_SImode))
4685 10 : return -1;
4686 : return 0;
4687 :
4688 10 : case E_DImode:
4689 10 : if (!register_operand (operands[0], E_DImode)
4690 10 : || GET_MODE (x1) != E_DImode)
4691 : return -1;
4692 10 : x2 = XEXP (x1, 0);
4693 10 : if (GET_MODE (x2) != E_DImode)
4694 : return -1;
4695 10 : x3 = XEXP (x2, 0);
4696 10 : if (GET_MODE (x3) != E_DImode
4697 10 : || !nonimmediate_operand (operands[1], E_DImode))
4698 0 : return -1;
4699 : return 1;
4700 :
4701 : default:
4702 : return -1;
4703 : }
4704 : }
4705 :
4706 : int
4707 24119 : pattern1269 (rtx x1, machine_mode i1)
4708 : {
4709 24119 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4710 24119 : rtx x2, x3, x4, x5, x6, x7, x8;
4711 24119 : int res ATTRIBUTE_UNUSED;
4712 24119 : x2 = XVECEXP (x1, 0, 0);
4713 24119 : x3 = XEXP (x2, 1);
4714 24119 : x4 = XEXP (x3, 0);
4715 24119 : if (!plusminuslogic_operator (x4, i1))
4716 : return -1;
4717 19658 : operands[3] = x4;
4718 19658 : x5 = XEXP (x3, 1);
4719 19658 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
4720 : return -1;
4721 18308 : x6 = XEXP (x2, 0);
4722 18308 : if (GET_CODE (x6) != REG
4723 18308 : || REGNO (x6) != 17)
4724 : return -1;
4725 18308 : x7 = XVECEXP (x1, 0, 1);
4726 18308 : if (GET_CODE (x7) != SET)
4727 : return -1;
4728 14024 : x8 = XEXP (x4, 1);
4729 14024 : operands[2] = x8;
4730 14024 : if (!x86_64_nonmemory_operand (operands[2], i1))
4731 : return -1;
4732 : return 0;
4733 : }
4734 :
4735 : int
4736 0 : pattern1276 (rtx x1, machine_mode i1)
4737 : {
4738 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4739 0 : rtx x2, x3;
4740 0 : int res ATTRIBUTE_UNUSED;
4741 0 : if (!nonimmediate_operand (operands[0], i1)
4742 0 : || GET_MODE (x1) != i1)
4743 : return -1;
4744 0 : x2 = XEXP (x1, 0);
4745 0 : if (GET_MODE (x2) != i1)
4746 : return -1;
4747 0 : x3 = XEXP (x2, 0);
4748 0 : if (GET_MODE (x3) != i1
4749 0 : || !nonimmediate_operand (operands[1], i1)
4750 0 : || !immediate_operand (operands[2], i1))
4751 0 : return -1;
4752 : return 0;
4753 : }
4754 :
4755 : int
4756 1442 : pattern1283 (rtx x1, machine_mode i1, machine_mode i2)
4757 : {
4758 1442 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4759 1442 : rtx x2, x3;
4760 1442 : int res ATTRIBUTE_UNUSED;
4761 1442 : if (!register_operand (operands[0], i1)
4762 1442 : || GET_MODE (x1) != i1)
4763 : return -1;
4764 1333 : x2 = XEXP (x1, 0);
4765 1333 : if (GET_MODE (x2) != i1
4766 1333 : || !nonimmediate_operand (operands[1], i1)
4767 2666 : || !vector_operand (operands[2], i1))
4768 0 : return -1;
4769 1333 : x3 = XVECEXP (x2, 0, 2);
4770 1333 : if (GET_MODE (x3) != i1
4771 1333 : || !register_operand (operands[4], i2))
4772 57 : return -1;
4773 : return 0;
4774 : }
4775 :
4776 : int
4777 442 : pattern1292 (rtx x1)
4778 : {
4779 442 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4780 442 : rtx x2, x3;
4781 442 : int res ATTRIBUTE_UNUSED;
4782 442 : x2 = XEXP (x1, 0);
4783 442 : x3 = XEXP (x2, 0);
4784 442 : if (GET_MODE (x3) != E_V8HFmode
4785 442 : || !register_operand (operands[0], E_V8HFmode)
4786 430 : || GET_MODE (x1) != E_V8HFmode
4787 430 : || GET_MODE (x2) != E_V8HFmode
4788 430 : || !nonimmediate_operand (operands[1], E_V8HFmode)
4789 430 : || !nonimm_or_0_operand (operands[3], E_V8HFmode)
4790 872 : || !register_operand (operands[2], E_V8HFmode))
4791 12 : return -1;
4792 : return 0;
4793 : }
4794 :
4795 : int
4796 2048 : pattern1300 (rtx x1, machine_mode i1, machine_mode i2)
4797 : {
4798 2048 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4799 2048 : rtx x2, x3;
4800 2048 : int res ATTRIBUTE_UNUSED;
4801 2048 : if (!register_operand (operands[0], i1)
4802 2048 : || GET_MODE (x1) != i1)
4803 : return -1;
4804 1917 : x2 = XEXP (x1, 0);
4805 1917 : if (GET_MODE (x2) != i1
4806 1917 : || !vector_operand (operands[2], i1))
4807 4 : return -1;
4808 1913 : x3 = XEXP (x2, 2);
4809 1913 : if (GET_MODE (x3) != i1
4810 1913 : || !register_operand (operands[4], i2))
4811 0 : return -1;
4812 : return 0;
4813 : }
4814 :
4815 : int
4816 2854 : pattern1310 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
4817 : {
4818 2854 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4819 2854 : rtx x2, x3;
4820 2854 : int res ATTRIBUTE_UNUSED;
4821 2854 : if (!register_operand (operands[0], i2)
4822 2854 : || GET_MODE (x1) != i2)
4823 : return -1;
4824 2744 : x2 = XVECEXP (x1, 0, 0);
4825 2744 : if (GET_MODE (x2) != i2)
4826 : return -1;
4827 2744 : x3 = XEXP (x2, 0);
4828 2744 : if (GET_MODE (x3) != i2
4829 2744 : || !register_operand (operands[1], i3)
4830 2712 : || !nonimm_or_0_operand (operands[2], i2)
4831 5420 : || !register_operand (operands[3], i1))
4832 152 : return -1;
4833 : return 0;
4834 : }
4835 :
4836 : int
4837 972 : pattern1318 (rtx x1)
4838 : {
4839 972 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4840 972 : rtx x2, x3;
4841 972 : int res ATTRIBUTE_UNUSED;
4842 972 : if (!register_operand (operands[0], E_V16HFmode)
4843 972 : || GET_MODE (x1) != E_V16HFmode)
4844 : return -1;
4845 944 : x2 = XVECEXP (x1, 0, 0);
4846 944 : if (GET_MODE (x2) != E_V16HFmode)
4847 : return -1;
4848 944 : x3 = XEXP (x2, 0);
4849 944 : if (GET_MODE (x3) != E_V16HFmode
4850 944 : || !nonimm_or_0_operand (operands[2], E_V16HFmode)
4851 1888 : || !register_operand (operands[3], E_HImode))
4852 20 : return -1;
4853 924 : switch (GET_MODE (operands[1]))
4854 : {
4855 0 : case E_V16HImode:
4856 0 : if (!register_operand (operands[1], E_V16HImode))
4857 : return -1;
4858 : return 0;
4859 :
4860 924 : case E_V16SImode:
4861 924 : if (!register_operand (operands[1], E_V16SImode))
4862 : return -1;
4863 : return 1;
4864 :
4865 : default:
4866 : return -1;
4867 : }
4868 : }
4869 :
4870 : int
4871 3 : pattern1328 (rtx x1)
4872 : {
4873 3 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4874 3 : rtx x2, x3, x4, x5, x6;
4875 3 : int res ATTRIBUTE_UNUSED;
4876 3 : x2 = XVECEXP (x1, 0, 1);
4877 3 : x3 = XEXP (x2, 1);
4878 3 : x4 = XEXP (x3, 0);
4879 3 : operands[2] = x4;
4880 3 : if (!nonimmediate_operand (operands[2], E_SImode))
4881 : return -1;
4882 3 : switch (GET_MODE (operands[0]))
4883 : {
4884 0 : case E_SImode:
4885 0 : if (!memory_operand (operands[0], E_SImode))
4886 : return -1;
4887 0 : x5 = XVECEXP (x1, 0, 0);
4888 0 : x6 = XEXP (x5, 1);
4889 0 : if (GET_MODE (x6) != E_SImode
4890 0 : || !memory_operand (operands[3], E_SImode))
4891 0 : return -1;
4892 : return 0;
4893 :
4894 3 : case E_DImode:
4895 3 : if (!memory_operand (operands[0], E_DImode))
4896 : return -1;
4897 3 : x5 = XVECEXP (x1, 0, 0);
4898 3 : x6 = XEXP (x5, 1);
4899 3 : if (GET_MODE (x6) != E_DImode
4900 3 : || !memory_operand (operands[3], E_DImode))
4901 0 : return -1;
4902 : return 1;
4903 :
4904 : default:
4905 : return -1;
4906 : }
4907 : }
4908 :
4909 : int
4910 323 : pattern1340 (rtx x1, machine_mode i1)
4911 : {
4912 323 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4913 323 : rtx x2;
4914 323 : int res ATTRIBUTE_UNUSED;
4915 323 : if (!register_operand (operands[0], i1)
4916 323 : || GET_MODE (x1) != i1)
4917 : return -1;
4918 323 : x2 = XEXP (x1, 0);
4919 323 : if (GET_MODE (x2) != i1
4920 323 : || !register_operand (operands[1], i1)
4921 646 : || !register_operand (operands[2], i1))
4922 0 : return -1;
4923 : return 0;
4924 : }
4925 :
4926 : int
4927 1404722 : pattern1346 (rtx x1)
4928 : {
4929 1404722 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4930 1404722 : rtx x2, x3;
4931 1404722 : int res ATTRIBUTE_UNUSED;
4932 1404722 : x2 = XEXP (x1, 0);
4933 1404722 : switch (GET_CODE (x2))
4934 : {
4935 1400471 : case REG:
4936 1400471 : case SUBREG:
4937 1400471 : operands[0] = x2;
4938 1400471 : switch (GET_MODE (operands[0]))
4939 : {
4940 904563 : case E_DImode:
4941 904563 : if (!register_operand (operands[0], E_DImode))
4942 : return -1;
4943 904563 : x3 = XEXP (x1, 1);
4944 904563 : if (GET_MODE (x3) != E_DImode)
4945 : return -1;
4946 : return 0;
4947 :
4948 23905 : case E_TImode:
4949 23905 : x3 = XEXP (x1, 1);
4950 23905 : if (pattern1344 (x3,
4951 : E_TImode) != 0)
4952 : return -1;
4953 : return 1;
4954 :
4955 : default:
4956 : return -1;
4957 : }
4958 :
4959 108 : case STRICT_LOW_PART:
4960 108 : res = pattern1345 (x1);
4961 108 : if (res >= 0)
4962 108 : return res + 2; /* [2, 3] */
4963 : return -1;
4964 :
4965 : default:
4966 : return -1;
4967 : }
4968 : }
4969 :
4970 : int
4971 2221 : pattern1360 (rtx x1, machine_mode i1)
4972 : {
4973 2221 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4974 2221 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
4975 2221 : rtx x10, x11, x12, x13, x14, x15, x16;
4976 2221 : int res ATTRIBUTE_UNUSED;
4977 2221 : x2 = XVECEXP (x1, 0, 0);
4978 2221 : x3 = XEXP (x2, 1);
4979 2221 : if (GET_MODE (x3) != i1)
4980 : return -1;
4981 1451 : x4 = XVECEXP (x1, 0, 1);
4982 1451 : if (GET_CODE (x4) != CLOBBER)
4983 : return -1;
4984 1451 : x5 = XEXP (x4, 0);
4985 1451 : if (GET_CODE (x5) != REG
4986 1451 : || REGNO (x5) != 17
4987 2902 : || GET_MODE (x5) != E_CCmode)
4988 : return -1;
4989 1451 : x6 = XEXP (x2, 0);
4990 1451 : operands[4] = x6;
4991 1451 : if (!register_operand (operands[4], i1))
4992 : return -1;
4993 1334 : x7 = XEXP (x3, 0);
4994 1334 : operands[3] = x7;
4995 1334 : if (!register_operand (operands[3], i1))
4996 : return -1;
4997 1330 : x8 = XEXP (x3, 1);
4998 1330 : operands[2] = x8;
4999 1330 : if (!nonmemory_operand (operands[2], i1))
5000 : return -1;
5001 405 : x9 = PATTERN (peep2_next_insn (2));
5002 405 : if (GET_CODE (x9) != SET)
5003 : return -1;
5004 348 : x10 = XEXP (x9, 1);
5005 348 : if (!rtx_equal_p (x10, operands[4]))
5006 : return -1;
5007 7 : x11 = XEXP (x9, 0);
5008 7 : if (!rtx_equal_p (x11, operands[1]))
5009 : return -1;
5010 0 : x12 = PATTERN (peep2_next_insn (3));
5011 0 : if (GET_CODE (x12) != SET)
5012 : return -1;
5013 0 : x13 = XEXP (x12, 1);
5014 0 : if (GET_CODE (x13) != COMPARE
5015 0 : || GET_MODE (x13) != E_CCZmode)
5016 : return -1;
5017 0 : x14 = XEXP (x12, 0);
5018 0 : if (GET_CODE (x14) != REG
5019 0 : || REGNO (x14) != 17
5020 0 : || GET_MODE (x14) != E_CCZmode)
5021 : return -1;
5022 0 : x15 = XEXP (x13, 0);
5023 0 : operands[5] = x15;
5024 0 : if (!register_operand (operands[5], i1))
5025 : return -1;
5026 0 : x16 = XEXP (x13, 1);
5027 0 : operands[6] = x16;
5028 0 : if (!nonmemory_operand (operands[6], i1))
5029 : return -1;
5030 : return 0;
5031 : }
5032 :
5033 : int
5034 276 : pattern1379 (rtx x1, machine_mode i1, machine_mode i2)
5035 : {
5036 276 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5037 276 : rtx x2;
5038 276 : int res ATTRIBUTE_UNUSED;
5039 276 : if (!register_operand (operands[0], i2)
5040 276 : || GET_MODE (x1) != i2)
5041 : return -1;
5042 264 : x2 = XEXP (x1, 0);
5043 264 : if (GET_MODE (x2) != i2
5044 264 : || !register_operand (operands[1], i2)
5045 264 : || !register_operand (operands[2], i1)
5046 524 : || !nonimmediate_operand (operands[3], i1))
5047 4 : return -1;
5048 : return 0;
5049 : }
5050 :
5051 : int
5052 950 : pattern1389 (rtx x1, machine_mode i1, machine_mode i2)
5053 : {
5054 950 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5055 950 : rtx x2, x3;
5056 950 : int res ATTRIBUTE_UNUSED;
5057 950 : if (!register_operand (operands[0], i1)
5058 950 : || GET_MODE (x1) != i1)
5059 : return -1;
5060 903 : x2 = XEXP (x1, 0);
5061 903 : if (GET_MODE (x2) != i1
5062 903 : || !bcst_vector_operand (operands[1], i1))
5063 0 : return -1;
5064 903 : x3 = XEXP (x2, 2);
5065 903 : return pattern1388 (x3,
5066 : i2,
5067 903 : i1); /* [-1, 0] */
5068 : }
5069 :
5070 : int
5071 269 : pattern1398 (rtx x1, machine_mode i1)
5072 : {
5073 269 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5074 269 : rtx x2, x3;
5075 269 : int res ATTRIBUTE_UNUSED;
5076 269 : if (!register_operand (operands[0], i1)
5077 269 : || GET_MODE (x1) != i1)
5078 : return -1;
5079 258 : x2 = XEXP (x1, 0);
5080 258 : if (GET_MODE (x2) != i1)
5081 : return -1;
5082 258 : x3 = XEXP (x2, 0);
5083 258 : if (GET_MODE (x3) != i1
5084 258 : || !nonimmediate_operand (operands[1], i1)
5085 258 : || !nonimmediate_operand (operands[2], i1)
5086 516 : || !nonimmediate_operand (operands[3], i1))
5087 0 : return -1;
5088 : return 0;
5089 : }
5090 :
5091 : int
5092 971 : pattern1407 (rtx x1)
5093 : {
5094 971 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5095 971 : rtx x2, x3;
5096 971 : int res ATTRIBUTE_UNUSED;
5097 971 : x2 = XVECEXP (x1, 0, 0);
5098 971 : x3 = XEXP (x2, 2);
5099 971 : if (XWINT (x3, 0) != 1L
5100 971 : || !const_0_to_255_operand (operands[3], E_SImode))
5101 0 : return -1;
5102 971 : return pattern1406 (x1); /* [-1, 2] */
5103 : }
5104 :
5105 : int
5106 195 : pattern1412 (rtx x1, machine_mode i1)
5107 : {
5108 195 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5109 195 : rtx x2, x3;
5110 195 : int res ATTRIBUTE_UNUSED;
5111 195 : if (!register_operand (operands[0], i1)
5112 195 : || GET_MODE (x1) != i1)
5113 : return -1;
5114 184 : x2 = XVECEXP (x1, 0, 0);
5115 184 : if (GET_MODE (x2) != i1)
5116 : return -1;
5117 184 : x3 = XEXP (x2, 0);
5118 184 : if (GET_MODE (x3) != i1
5119 184 : || !nonimmediate_operand (operands[1], i1)
5120 366 : || !register_operand (operands[2], i1))
5121 27 : return -1;
5122 : return 0;
5123 : }
5124 :
5125 : int
5126 321 : pattern1419 (rtx x1, machine_mode i1)
5127 : {
5128 321 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5129 321 : rtx x2;
5130 321 : int res ATTRIBUTE_UNUSED;
5131 321 : if (!register_operand (operands[0], i1)
5132 321 : || GET_MODE (x1) != i1)
5133 : return -1;
5134 312 : x2 = XVECEXP (x1, 0, 0);
5135 312 : if (GET_MODE (x2) != i1
5136 312 : || !register_operand (operands[1], i1)
5137 312 : || !register_operand (operands[2], i1)
5138 619 : || !register_operand (operands[3], i1))
5139 5 : return -1;
5140 : return 0;
5141 : }
5142 :
5143 : int
5144 828 : pattern1426 (rtx x1, machine_mode i1, machine_mode i2)
5145 : {
5146 828 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5147 828 : rtx x2, x3, x4, x5, x6;
5148 828 : int res ATTRIBUTE_UNUSED;
5149 828 : if (!register_operand (operands[0], i2)
5150 828 : || GET_MODE (x1) != i2)
5151 : return -1;
5152 776 : x2 = XEXP (x1, 0);
5153 776 : if (GET_MODE (x2) != i1)
5154 : return -1;
5155 776 : x3 = XEXP (x2, 0);
5156 776 : if (GET_MODE (x3) != i1)
5157 : return -1;
5158 776 : x4 = XEXP (x3, 0);
5159 776 : if (GET_MODE (x4) != i1)
5160 : return -1;
5161 776 : x5 = XEXP (x4, 0);
5162 776 : if (GET_MODE (x5) != i1
5163 776 : || !vector_operand (operands[1], i2))
5164 31 : return -1;
5165 745 : x6 = XEXP (x4, 1);
5166 745 : if (GET_MODE (x6) != i1
5167 745 : || !vector_operand (operands[2], i2)
5168 1462 : || !const1_operand (operands[3], i1))
5169 28 : return -1;
5170 : return 0;
5171 : }
5172 :
5173 : int
5174 97096 : pattern1439 (rtx x1)
5175 : {
5176 97096 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5177 97096 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5178 97096 : int res ATTRIBUTE_UNUSED;
5179 97096 : x2 = XVECEXP (x1, 0, 1);
5180 97096 : x3 = XEXP (x2, 1);
5181 97096 : x4 = XEXP (x3, 1);
5182 97096 : if (!rtx_equal_p (x4, operands[2]))
5183 : return -1;
5184 97085 : x5 = XEXP (x3, 0);
5185 97085 : switch (GET_CODE (x5))
5186 : {
5187 97073 : case REG:
5188 97073 : case SUBREG:
5189 97073 : case MEM:
5190 97073 : if (!rtx_equal_p (x5, operands[1]))
5191 : return -1;
5192 97073 : x6 = XVECEXP (x1, 0, 0);
5193 97073 : x7 = XEXP (x6, 1);
5194 97073 : x8 = XEXP (x7, 0);
5195 97073 : switch (GET_MODE (x8))
5196 : {
5197 3079 : case E_QImode:
5198 3079 : return pattern1437 (x3,
5199 3079 : E_QImode); /* [-1, 0] */
5200 :
5201 196 : case E_HImode:
5202 196 : if (pattern1437 (x3,
5203 : E_HImode) != 0)
5204 : return -1;
5205 : return 1;
5206 :
5207 32942 : case E_SImode:
5208 32942 : if (pattern1438 (x3,
5209 : E_SImode) != 0)
5210 : return -1;
5211 : return 2;
5212 :
5213 60847 : case E_DImode:
5214 60847 : if (pattern1438 (x3,
5215 : E_DImode) != 0)
5216 : return -1;
5217 : return 3;
5218 :
5219 : default:
5220 : return -1;
5221 : }
5222 :
5223 0 : case ZERO_EXTEND:
5224 0 : if (GET_MODE (x5) != E_DImode)
5225 : return -1;
5226 0 : x6 = XVECEXP (x1, 0, 0);
5227 0 : x7 = XEXP (x6, 1);
5228 0 : x8 = XEXP (x7, 0);
5229 0 : if (GET_MODE (x8) != E_SImode
5230 0 : || !nonimmediate_operand (operands[1], E_SImode)
5231 0 : || !x86_64_zext_immediate_operand (operands[2], E_SImode)
5232 0 : || !register_operand (operands[0], E_DImode)
5233 0 : || GET_MODE (x3) != E_DImode)
5234 0 : return -1;
5235 0 : x9 = XEXP (x5, 0);
5236 0 : if (!rtx_equal_p (x9, operands[1]))
5237 : return -1;
5238 : return 4;
5239 :
5240 : default:
5241 : return -1;
5242 : }
5243 : }
5244 :
5245 : int
5246 651 : pattern1467 (rtx x1, machine_mode i1, machine_mode i2)
5247 : {
5248 651 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5249 651 : rtx x2;
5250 651 : int res ATTRIBUTE_UNUSED;
5251 651 : if (!register_operand (operands[0], i1)
5252 651 : || GET_MODE (x1) != i1)
5253 : return -1;
5254 620 : x2 = XEXP (x1, 0);
5255 620 : if (GET_MODE (x2) != i1
5256 620 : || !register_operand (operands[1], i1)
5257 620 : || !register_operand (operands[2], i1)
5258 620 : || !bcst_vector_operand (operands[3], i1)
5259 1239 : || !register_operand (operands[5], i2))
5260 31 : return -1;
5261 : return 0;
5262 : }
5263 :
5264 : int
5265 48 : pattern1476 (rtx x1, machine_mode i1, machine_mode i2)
5266 : {
5267 48 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5268 48 : rtx x2, x3, x4;
5269 48 : int res ATTRIBUTE_UNUSED;
5270 48 : if (!register_operand (operands[0], i1)
5271 48 : || GET_MODE (x1) != i1
5272 48 : || !vector_operand (operands[1], i1)
5273 96 : || !vector_operand (operands[2], i1))
5274 0 : return -1;
5275 48 : x2 = XEXP (x1, 2);
5276 48 : if (GET_MODE (x2) != E_QImode)
5277 : return -1;
5278 48 : x3 = XVECEXP (x2, 0, 0);
5279 48 : if (GET_MODE (x3) != i1)
5280 : return -1;
5281 48 : x4 = XEXP (x3, 0);
5282 48 : if (GET_MODE (x4) != i2
5283 48 : || !vector_operand (operands[3], i2)
5284 96 : || !const0_operand (operands[4], i1))
5285 24 : return -1;
5286 : return 0;
5287 : }
5288 :
5289 : int
5290 2581 : pattern1486 (rtx x1, machine_mode i1)
5291 : {
5292 2581 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5293 2581 : rtx x2, x3;
5294 2581 : int res ATTRIBUTE_UNUSED;
5295 2581 : if (!register_operand (operands[0], i1)
5296 2581 : || GET_MODE (x1) != i1)
5297 : return -1;
5298 2561 : x2 = XVECEXP (x1, 0, 0);
5299 2561 : if (GET_MODE (x2) != i1)
5300 : return -1;
5301 2561 : x3 = XEXP (x2, 0);
5302 2561 : if (GET_MODE (x3) != i1)
5303 0 : return -1;
5304 : return 0;
5305 : }
5306 :
5307 : int
5308 226 : pattern1491 (rtx x1)
5309 : {
5310 226 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5311 226 : rtx x2;
5312 226 : int res ATTRIBUTE_UNUSED;
5313 226 : if (!register_operand (operands[0], E_V4SFmode)
5314 226 : || GET_MODE (x1) != E_V4SFmode)
5315 : return -1;
5316 222 : x2 = XEXP (x1, 0);
5317 222 : switch (GET_MODE (x2))
5318 : {
5319 112 : case E_V4HFmode:
5320 112 : if (!memory_operand (operands[1], E_V8HFmode))
5321 : return -1;
5322 : return 0;
5323 :
5324 110 : case E_V4BFmode:
5325 110 : if (!memory_operand (operands[1], E_V8BFmode))
5326 : return -1;
5327 : return 1;
5328 :
5329 : default:
5330 : return -1;
5331 : }
5332 : }
5333 :
5334 : int
5335 1228 : pattern1500 (rtx x1)
5336 : {
5337 1228 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5338 1228 : int res ATTRIBUTE_UNUSED;
5339 1228 : switch (GET_MODE (operands[1]))
5340 : {
5341 897 : case E_SImode:
5342 897 : if (!nonimmediate_operand (operands[1], E_SImode)
5343 894 : || !register_operand (operands[0], E_SImode)
5344 1791 : || GET_MODE (x1) != E_SImode)
5345 3 : return -1;
5346 : return 0;
5347 :
5348 331 : case E_DImode:
5349 331 : if (!nonimmediate_operand (operands[1], E_DImode)
5350 331 : || !register_operand (operands[0], E_DImode)
5351 662 : || GET_MODE (x1) != E_DImode)
5352 0 : return -1;
5353 : return 1;
5354 :
5355 : default:
5356 : return -1;
5357 : }
5358 : }
5359 :
5360 : int
5361 265 : pattern1508 (rtx x1)
5362 : {
5363 265 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5364 265 : rtx x2, x3, x4, x5, x6, x7, x8;
5365 265 : int res ATTRIBUTE_UNUSED;
5366 265 : x2 = XVECEXP (x1, 0, 1);
5367 265 : x3 = XEXP (x2, 1);
5368 265 : x4 = XEXP (x3, 0);
5369 265 : if (!rtx_equal_p (x4, operands[2]))
5370 : return -1;
5371 265 : x5 = XEXP (x3, 1);
5372 265 : if (!rtx_equal_p (x5, operands[3]))
5373 : return -1;
5374 265 : x6 = XVECEXP (x1, 0, 2);
5375 265 : switch (GET_CODE (x6))
5376 : {
5377 12 : case UNSPEC:
5378 12 : if (XVECLEN (x6, 0) != 1
5379 12 : || XINT (x6, 1) != 33)
5380 : return -1;
5381 12 : x7 = XVECEXP (x6, 0, 0);
5382 12 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
5383 : return -1;
5384 : return 0;
5385 :
5386 253 : case USE:
5387 253 : x8 = XEXP (x6, 0);
5388 253 : operands[4] = x8;
5389 253 : if (!register_operand (operands[4], E_SImode))
5390 : return -1;
5391 : return 1;
5392 :
5393 : default:
5394 : return -1;
5395 : }
5396 : }
5397 :
5398 : int
5399 183 : pattern1523 (rtx x1, machine_mode i1, machine_mode i2)
5400 : {
5401 183 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5402 183 : rtx x2, x3;
5403 183 : int res ATTRIBUTE_UNUSED;
5404 183 : if (!register_operand (operands[0], i2)
5405 183 : || GET_MODE (x1) != i2)
5406 : return -1;
5407 173 : x2 = XEXP (x1, 0);
5408 173 : if (GET_MODE (x2) != i1)
5409 : return -1;
5410 173 : x3 = XEXP (x2, 0);
5411 173 : return pattern1522 (x3,
5412 173 : i1); /* [-1, 0] */
5413 : }
5414 :
5415 : int
5416 693330 : pattern1529 ()
5417 : {
5418 693330 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5419 693330 : int res ATTRIBUTE_UNUSED;
5420 693330 : if (!const_0_to_3_operand (operands[3], E_VOIDmode)
5421 645678 : || !const_0_to_3_operand (operands[4], E_VOIDmode)
5422 441609 : || !const_4_to_7_operand (operands[5], E_VOIDmode)
5423 1131491 : || !const_4_to_7_operand (operands[6], E_VOIDmode))
5424 258632 : return -1;
5425 : return 0;
5426 : }
5427 :
5428 : int
5429 10699 : pattern1533 ()
5430 : {
5431 10699 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5432 10699 : int res ATTRIBUTE_UNUSED;
5433 10699 : switch (GET_MODE (operands[3]))
5434 : {
5435 856 : case E_HImode:
5436 856 : if (!extract_high_operator (operands[3], E_HImode))
5437 : return -1;
5438 : return 0;
5439 :
5440 7201 : case E_SImode:
5441 7201 : if (!extract_high_operator (operands[3], E_SImode))
5442 : return -1;
5443 : return 1;
5444 :
5445 2642 : case E_DImode:
5446 2642 : if (!extract_high_operator (operands[3], E_DImode))
5447 : return -1;
5448 : return 2;
5449 :
5450 : default:
5451 : return -1;
5452 : }
5453 : }
5454 :
5455 : int
5456 4378 : pattern1543 (rtx x1)
5457 : {
5458 4378 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5459 4378 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5460 4378 : rtx x10, x11, x12;
5461 4378 : int res ATTRIBUTE_UNUSED;
5462 4378 : x2 = XEXP (x1, 1);
5463 4378 : x3 = XEXP (x2, 0);
5464 4378 : x4 = XEXP (x3, 0);
5465 4378 : x5 = XEXP (x4, 2);
5466 4378 : if (maybe_ne (SUBREG_BYTE (x5), 0)
5467 4378 : || GET_MODE (x5) != E_QImode)
5468 : return -1;
5469 4378 : x6 = XEXP (x5, 0);
5470 4378 : if (GET_CODE (x6) != AND)
5471 : return -1;
5472 459 : x7 = XEXP (x2, 1);
5473 459 : if (GET_CODE (x7) != LABEL_REF)
5474 : return -1;
5475 459 : x8 = XEXP (x2, 2);
5476 459 : if (GET_CODE (x8) != PC)
5477 : return -1;
5478 459 : x9 = XEXP (x1, 0);
5479 459 : if (GET_CODE (x9) != PC)
5480 : return -1;
5481 459 : operands[0] = x3;
5482 459 : x10 = XEXP (x6, 0);
5483 459 : operands[2] = x10;
5484 459 : if (!int248_register_operand (operands[2], E_VOIDmode))
5485 : return -1;
5486 409 : x11 = XEXP (x6, 1);
5487 409 : operands[3] = x11;
5488 409 : if (!const_int_operand (operands[3], E_VOIDmode))
5489 : return -1;
5490 409 : x12 = XEXP (x7, 0);
5491 409 : operands[4] = x12;
5492 409 : switch (GET_MODE (x4))
5493 : {
5494 267 : case E_SImode:
5495 267 : if (!nonimmediate_operand (operands[1], E_SImode))
5496 : return -1;
5497 : return 0;
5498 :
5499 142 : case E_DImode:
5500 142 : if (!nonimmediate_operand (operands[1], E_DImode))
5501 : return -1;
5502 : return 1;
5503 :
5504 : default:
5505 : return -1;
5506 : }
5507 : }
5508 :
5509 : int
5510 366 : pattern1560 (rtx x1)
5511 : {
5512 366 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5513 366 : rtx x2, x3, x4, x5;
5514 366 : int res ATTRIBUTE_UNUSED;
5515 366 : x2 = XVECEXP (x1, 0, 4);
5516 366 : operands[2] = x2;
5517 366 : if (!const_4_to_7_operand (operands[2], E_VOIDmode))
5518 : return -1;
5519 366 : x3 = XVECEXP (x1, 0, 5);
5520 366 : operands[3] = x3;
5521 366 : if (!const_4_to_7_operand (operands[3], E_VOIDmode))
5522 : return -1;
5523 366 : x4 = XVECEXP (x1, 0, 6);
5524 366 : operands[4] = x4;
5525 366 : if (!const_4_to_7_operand (operands[4], E_VOIDmode))
5526 : return -1;
5527 366 : x5 = XVECEXP (x1, 0, 7);
5528 366 : operands[5] = x5;
5529 366 : if (!const_4_to_7_operand (operands[5], E_VOIDmode))
5530 : return -1;
5531 : return 0;
5532 : }
5533 :
5534 : int
5535 67674 : pattern1570 (rtx x1)
5536 : {
5537 67674 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5538 67674 : rtx x2, x3;
5539 67674 : int res ATTRIBUTE_UNUSED;
5540 67674 : if (!nonimmediate_operand (operands[0], E_V4SFmode)
5541 67674 : || GET_MODE (x1) != E_V4SFmode)
5542 : return -1;
5543 59084 : x2 = XEXP (x1, 0);
5544 59084 : if (GET_MODE (x2) != E_V8SFmode
5545 59084 : || !nonimmediate_operand (operands[1], E_V4SFmode))
5546 25 : return -1;
5547 59059 : x3 = XEXP (x2, 1);
5548 59059 : operands[2] = x3;
5549 59059 : if (!nonimmediate_operand (operands[2], E_V4SFmode))
5550 : return -1;
5551 : return 0;
5552 : }
5553 :
5554 : int
5555 13426 : pattern1577 (rtx x1, machine_mode i1)
5556 : {
5557 13426 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5558 13426 : int res ATTRIBUTE_UNUSED;
5559 13426 : if (!nonimmediate_operand (operands[0], i1)
5560 13426 : || GET_MODE (x1) != i1
5561 13426 : || !nonimmediate_operand (operands[1], i1)
5562 25459 : || !ix86_carry_flag_operator (operands[2], i1))
5563 1393 : return -1;
5564 : return 0;
5565 : }
5566 :
5567 : int
5568 137 : pattern1584 (rtx x1, int *pnum_clobbers)
5569 : {
5570 137 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5571 137 : rtx x2, x3;
5572 137 : int res ATTRIBUTE_UNUSED;
5573 137 : switch (GET_CODE (x1))
5574 : {
5575 6 : case UNSPEC:
5576 6 : if (pnum_clobbers == NULL
5577 6 : || XVECLEN (x1, 0) != 1
5578 6 : || XINT (x1, 1) != 33)
5579 : return -1;
5580 6 : x2 = XVECEXP (x1, 0, 0);
5581 6 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
5582 : return -1;
5583 : return 0;
5584 :
5585 95 : case CLOBBER:
5586 95 : x3 = XEXP (x1, 0);
5587 95 : if (GET_CODE (x3) != REG
5588 95 : || REGNO (x3) != 17
5589 190 : || GET_MODE (x3) != E_CCmode)
5590 : return -1;
5591 : return 1;
5592 :
5593 0 : case USE:
5594 0 : if (pnum_clobbers == NULL)
5595 : return -1;
5596 0 : x3 = XEXP (x1, 0);
5597 0 : operands[4] = x3;
5598 0 : if (!register_operand (operands[4], E_SImode))
5599 : return -1;
5600 : return 2;
5601 :
5602 : default:
5603 : return -1;
5604 : }
5605 : }
5606 :
5607 : int
5608 261 : pattern1596 (rtx x1, machine_mode i1)
5609 : {
5610 261 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5611 261 : rtx x2, x3;
5612 261 : int res ATTRIBUTE_UNUSED;
5613 261 : if (!register_operand (operands[0], i1)
5614 261 : || GET_MODE (x1) != i1
5615 522 : || !nonimmediate_operand (operands[3], i1))
5616 95 : return -1;
5617 166 : x2 = XEXP (x1, 0);
5618 166 : x3 = XEXP (x2, 0);
5619 166 : return pattern1595 (x3,
5620 166 : i1); /* [-1, 1] */
5621 : }
5622 :
5623 : int
5624 1535 : pattern1603 (rtx x1, machine_mode i1, machine_mode i2)
5625 : {
5626 1535 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5627 1535 : rtx x2, x3;
5628 1535 : int res ATTRIBUTE_UNUSED;
5629 1535 : if (!register_operand (operands[0], i1)
5630 1535 : || GET_MODE (x1) != i1)
5631 : return -1;
5632 1502 : x2 = XVECEXP (x1, 0, 0);
5633 1502 : if (GET_MODE (x2) != i1)
5634 : return -1;
5635 1502 : x3 = XEXP (x2, 0);
5636 1502 : if (GET_MODE (x3) != i1
5637 1502 : || !register_operand (operands[2], i1)
5638 2992 : || !register_operand (operands[4], i2))
5639 22 : return -1;
5640 : return 0;
5641 : }
5642 :
5643 : int
5644 507 : pattern1613 (rtx x1, machine_mode i1, machine_mode i2)
5645 : {
5646 507 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5647 507 : rtx x2, x3, x4;
5648 507 : int res ATTRIBUTE_UNUSED;
5649 507 : if (!register_operand (operands[0], i2)
5650 507 : || GET_MODE (x1) != i2)
5651 : return -1;
5652 493 : x2 = XVECEXP (x1, 0, 0);
5653 493 : if (GET_MODE (x2) != i2)
5654 : return -1;
5655 493 : x3 = XEXP (x2, 0);
5656 493 : if (GET_MODE (x3) != i2)
5657 : return -1;
5658 493 : x4 = XEXP (x3, 0);
5659 493 : if (GET_MODE (x4) != i2
5660 493 : || !register_operand (operands[1], i2)
5661 981 : || pattern1605 (
5662 : i1,
5663 : i2) != 0)
5664 17 : return -1;
5665 : return 0;
5666 : }
5667 :
5668 : int
5669 356 : pattern1621 (rtx x1, machine_mode i1)
5670 : {
5671 356 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5672 356 : rtx x2, x3, x4;
5673 356 : int res ATTRIBUTE_UNUSED;
5674 356 : if (!vsib_mem_operator (operands[5], i1)
5675 356 : || !register_operand (operands[6], E_QImode))
5676 114 : return -1;
5677 242 : x2 = XEXP (x1, 1);
5678 242 : if (GET_MODE (x2) != i1)
5679 : return -1;
5680 242 : x3 = XEXP (x1, 0);
5681 242 : x4 = XEXP (x3, 0);
5682 242 : switch (GET_MODE (x4))
5683 : {
5684 : case E_SImode:
5685 : return 0;
5686 :
5687 242 : case E_DImode:
5688 242 : return 1;
5689 :
5690 : default:
5691 : return -1;
5692 : }
5693 : }
5694 :
5695 : int
5696 1101 : pattern1629 (rtx x1, machine_mode i1, machine_mode i2)
5697 : {
5698 1101 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5699 1101 : rtx x2, x3;
5700 1101 : int res ATTRIBUTE_UNUSED;
5701 1101 : if (!register_operand (operands[0], i2)
5702 1043 : || GET_MODE (x1) != i2
5703 1043 : || !register_operand (operands[6], E_QImode)
5704 1319 : || !vsib_mem_operator (operands[5], i1))
5705 883 : return -1;
5706 218 : x2 = XVECEXP (x1, 0, 2);
5707 218 : x3 = XEXP (x2, 0);
5708 218 : switch (GET_MODE (x3))
5709 : {
5710 0 : case E_SImode:
5711 0 : return pattern1628 (
5712 0 : E_SImode); /* [-1, 1] */
5713 :
5714 218 : case E_DImode:
5715 218 : res = pattern1628 (
5716 : E_DImode);
5717 218 : if (res >= 0)
5718 96 : return res + 2; /* [2, 3] */
5719 : return -1;
5720 :
5721 : default:
5722 : return -1;
5723 : }
5724 : }
5725 :
5726 : int
5727 44 : pattern1641 (rtx x1, machine_mode i1)
5728 : {
5729 44 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5730 44 : rtx x2;
5731 44 : int res ATTRIBUTE_UNUSED;
5732 44 : if (!nonimmediate_operand (operands[0], i1)
5733 44 : || GET_MODE (x1) != i1)
5734 : return -1;
5735 44 : x2 = XEXP (x1, 0);
5736 44 : if (GET_MODE (x2) != i1
5737 44 : || !ix86_carry_flag_operator (operands[4], i1)
5738 44 : || !nonimmediate_operand (operands[1], i1)
5739 88 : || !general_operand (operands[2], i1))
5740 0 : return -1;
5741 : return 0;
5742 : }
5743 :
5744 : int
5745 13 : pattern1647 (rtx x1, int *pnum_clobbers)
5746 : {
5747 13 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5748 13 : rtx x2, x3, x4, x5, x6;
5749 13 : int res ATTRIBUTE_UNUSED;
5750 13 : x2 = XVECEXP (x1, 0, 1);
5751 13 : x3 = XEXP (x2, 1);
5752 13 : x4 = XEXP (x3, 0);
5753 13 : if (!rtx_equal_p (x4, operands[2]))
5754 : return -1;
5755 13 : x5 = XEXP (x3, 1);
5756 13 : if (!rtx_equal_p (x5, operands[3]))
5757 : return -1;
5758 13 : x6 = XVECEXP (x1, 0, 2);
5759 13 : return pattern1584 (x6, pnum_clobbers); /* [-1, 2] */
5760 : }
5761 :
5762 : int
5763 422 : pattern1657 (rtx x1, machine_mode i1, machine_mode i2)
5764 : {
5765 422 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5766 422 : rtx x2, x3, x4, x5, x6;
5767 422 : int res ATTRIBUTE_UNUSED;
5768 422 : if (!register_operand (operands[0], i1)
5769 422 : || GET_MODE (x1) != i1)
5770 : return -1;
5771 402 : x2 = XEXP (x1, 0);
5772 402 : if (GET_MODE (x2) != i2)
5773 : return -1;
5774 402 : x3 = XEXP (x2, 0);
5775 402 : if (GET_MODE (x3) != i2)
5776 : return -1;
5777 402 : x4 = XEXP (x3, 0);
5778 402 : if (GET_MODE (x4) != i2)
5779 : return -1;
5780 402 : x5 = XEXP (x4, 0);
5781 402 : if (GET_MODE (x5) != i2
5782 402 : || !register_mmxmem_operand (operands[1], i1))
5783 16 : return -1;
5784 386 : x6 = XEXP (x4, 1);
5785 386 : if (GET_MODE (x6) != i2
5786 386 : || !register_mmxmem_operand (operands[2], i1))
5787 12 : return -1;
5788 : return 0;
5789 : }
5790 :
5791 : int
5792 1084 : pattern1667 (rtx x1)
5793 : {
5794 1084 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5795 1084 : rtx x2, x3;
5796 1084 : int res ATTRIBUTE_UNUSED;
5797 1084 : x2 = XVECEXP (x1, 0, 0);
5798 1084 : x3 = XEXP (x2, 1);
5799 1084 : if (!rtx_equal_p (x3, operands[1]))
5800 : return -1;
5801 1084 : switch (GET_MODE (operands[0]))
5802 : {
5803 484 : case E_V8HFmode:
5804 484 : return pattern1666 (x1,
5805 484 : E_V8HFmode); /* [-1, 0] */
5806 :
5807 300 : case E_V4SFmode:
5808 300 : if (pattern1666 (x1,
5809 : E_V4SFmode) != 0)
5810 : return -1;
5811 : return 1;
5812 :
5813 300 : case E_V2DFmode:
5814 300 : if (pattern1666 (x1,
5815 : E_V2DFmode) != 0)
5816 : return -1;
5817 : return 2;
5818 :
5819 : default:
5820 : return -1;
5821 : }
5822 : }
5823 :
5824 : int
5825 258 : pattern1676 (rtx x1, machine_mode i1, machine_mode i2)
5826 : {
5827 258 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5828 258 : rtx x2, x3;
5829 258 : int res ATTRIBUTE_UNUSED;
5830 258 : if (!register_operand (operands[0], i2)
5831 238 : || GET_MODE (x1) != i2
5832 238 : || !register_operand (operands[1], i2)
5833 238 : || !register_operand (operands[7], E_QImode)
5834 402 : || !vsib_mem_operator (operands[6], i1))
5835 114 : return -1;
5836 144 : x2 = XVECEXP (x1, 0, 2);
5837 144 : x3 = XEXP (x2, 0);
5838 144 : switch (GET_MODE (x3))
5839 : {
5840 0 : case E_SImode:
5841 0 : return pattern1675 (
5842 0 : E_SImode); /* [-1, 1] */
5843 :
5844 144 : case E_DImode:
5845 144 : res = pattern1675 (
5846 : E_DImode);
5847 144 : if (res >= 0)
5848 100 : return res + 2; /* [2, 3] */
5849 : return -1;
5850 :
5851 : default:
5852 : return -1;
5853 : }
5854 : }
5855 :
5856 : int
5857 0 : pattern1689 (rtx x1, machine_mode i1, machine_mode i2)
5858 : {
5859 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5860 0 : rtx x2, x3;
5861 0 : int res ATTRIBUTE_UNUSED;
5862 0 : if (!register_operand (operands[0], i1)
5863 0 : || !addsub_vs_operator (operands[7], i1)
5864 0 : || GET_MODE (x1) != i2)
5865 0 : return -1;
5866 0 : x2 = XEXP (x1, 0);
5867 0 : if (GET_MODE (x2) != i1
5868 0 : || !vector_operand (operands[1], i1)
5869 0 : || !vector_operand (operands[2], i1))
5870 0 : return -1;
5871 0 : x3 = XEXP (x1, 1);
5872 0 : if (GET_MODE (x3) != i1
5873 0 : || !register_operand (operands[3], i1)
5874 0 : || !vector_operand (operands[4], i1))
5875 0 : return -1;
5876 : return 0;
5877 : }
5878 :
5879 : int
5880 5803 : pattern1701 (rtx x1, machine_mode i1, machine_mode i2)
5881 : {
5882 5803 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5883 5803 : rtx x2;
5884 5803 : int res ATTRIBUTE_UNUSED;
5885 5803 : if (!register_operand (operands[0], i1)
5886 5803 : || GET_MODE (x1) != i1)
5887 : return -1;
5888 5782 : x2 = XEXP (x1, 0);
5889 5782 : if (GET_MODE (x2) != i2
5890 5782 : || !register_operand (operands[1], i1)
5891 5701 : || !nonimmediate_operand (operands[2], i1)
5892 5665 : || !const_0_to_7_operand (operands[3], E_VOIDmode)
5893 10289 : || pattern1700 () != 0)
5894 4114 : return -1;
5895 : return 0;
5896 : }
5897 :
5898 : int
5899 242695 : pattern1709 (rtx x1, machine_mode i1)
5900 : {
5901 242695 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5902 242695 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5903 242695 : int res ATTRIBUTE_UNUSED;
5904 242695 : x2 = XVECEXP (x1, 0, 0);
5905 242695 : x3 = XEXP (x2, 0);
5906 242695 : if (GET_MODE (x3) != i1)
5907 : return -1;
5908 242695 : x4 = XEXP (x2, 1);
5909 242695 : if (GET_MODE (x4) != i1)
5910 : return -1;
5911 242695 : x5 = XEXP (x4, 0);
5912 242695 : if (GET_MODE (x5) != i1)
5913 : return -1;
5914 242695 : x6 = XVECEXP (x1, 0, 1);
5915 242695 : x7 = XEXP (x6, 0);
5916 242695 : if (GET_MODE (x7) != i1)
5917 : return -1;
5918 242695 : x8 = XEXP (x6, 1);
5919 242695 : if (GET_MODE (x8) != i1)
5920 : return -1;
5921 242695 : x9 = XEXP (x8, 0);
5922 242695 : if (GET_MODE (x9) != i1)
5923 0 : return -1;
5924 : return 0;
5925 : }
5926 :
5927 : int
5928 447 : pattern1720 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
5929 : {
5930 447 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5931 447 : rtx x2, x3;
5932 447 : int res ATTRIBUTE_UNUSED;
5933 447 : if (!register_operand (operands[0], i2)
5934 447 : || GET_MODE (x1) != i2)
5935 : return -1;
5936 441 : x2 = XVECEXP (x1, 0, 0);
5937 441 : if (GET_MODE (x2) != i2)
5938 : return -1;
5939 441 : x3 = XEXP (x2, 0);
5940 441 : if (GET_MODE (x3) != i2
5941 441 : || !register_operand (operands[1], i2)
5942 441 : || !register_operand (operands[2], i2)
5943 441 : || !nonimmediate_operand (operands[3], i1)
5944 882 : || !register_operand (operands[5], i3))
5945 0 : return -1;
5946 : return 0;
5947 : }
5948 :
5949 : int
5950 100540 : pattern1729 (rtx x1)
5951 : {
5952 100540 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5953 100540 : rtx x2, x3, x4, x5, x6, x7, x8;
5954 100540 : int res ATTRIBUTE_UNUSED;
5955 100540 : x2 = XEXP (x1, 1);
5956 100540 : x3 = XVECEXP (x2, 0, 4);
5957 100540 : if (XWINT (x3, 0) != 6L)
5958 : return -1;
5959 100540 : x4 = XVECEXP (x2, 0, 5);
5960 100540 : if (XWINT (x4, 0) != 14L)
5961 : return -1;
5962 100540 : x5 = XVECEXP (x2, 0, 6);
5963 100540 : if (XWINT (x5, 0) != 7L)
5964 : return -1;
5965 100540 : x6 = XVECEXP (x2, 0, 7);
5966 100540 : if (XWINT (x6, 0) != 15L)
5967 : return -1;
5968 100540 : x7 = XEXP (x1, 0);
5969 100540 : x8 = XEXP (x7, 1);
5970 100540 : operands[2] = x8;
5971 100540 : return 0;
5972 : }
5973 :
5974 : int
5975 1570 : pattern1736 (machine_mode i1)
5976 : {
5977 1570 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5978 1570 : int res ATTRIBUTE_UNUSED;
5979 1570 : if (!vsib_address_operand (operands[0], i1))
5980 : return -1;
5981 1518 : switch (GET_MODE (operands[2]))
5982 : {
5983 790 : case E_V4SImode:
5984 790 : if (!register_operand (operands[2], E_V4SImode))
5985 : return -1;
5986 : return 0;
5987 :
5988 728 : case E_V2DImode:
5989 728 : if (!register_operand (operands[2], E_V2DImode))
5990 : return -1;
5991 : return 1;
5992 :
5993 : default:
5994 : return -1;
5995 : }
5996 : }
5997 :
5998 : int
5999 123 : pattern1744 (machine_mode i1)
6000 : {
6001 123 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6002 123 : int res ATTRIBUTE_UNUSED;
6003 123 : if (!vsib_address_operand (operands[3], i1))
6004 : return -1;
6005 119 : switch (GET_MODE (operands[2]))
6006 : {
6007 34 : case E_V4SImode:
6008 34 : if (!register_operand (operands[2], E_V4SImode))
6009 : return -1;
6010 : return 0;
6011 :
6012 85 : case E_V4DImode:
6013 85 : if (!register_operand (operands[2], E_V4DImode))
6014 : return -1;
6015 : return 1;
6016 :
6017 : default:
6018 : return -1;
6019 : }
6020 : }
6021 :
6022 : int
6023 13974 : pattern1752 (rtx x1, machine_mode i1)
6024 : {
6025 13974 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6026 13974 : rtx x2, x3, x4, x5;
6027 13974 : int res ATTRIBUTE_UNUSED;
6028 13974 : if (!register_operand (operands[0], i1))
6029 : return -1;
6030 13974 : x2 = XVECEXP (x1, 0, 0);
6031 13974 : x3 = XEXP (x2, 1);
6032 13974 : if (GET_MODE (x3) != i1)
6033 : return -1;
6034 13974 : x4 = XVECEXP (x1, 0, 1);
6035 13974 : if (GET_MODE (x4) != i1)
6036 : return -1;
6037 13974 : x5 = XVECEXP (x4, 0, 1);
6038 13974 : if (GET_MODE (x5) != i1
6039 13974 : || !register_operand (operands[4], i1))
6040 0 : return -1;
6041 : return 0;
6042 : }
6043 :
6044 : int
6045 81 : pattern1760 (rtx x1, machine_mode i1)
6046 : {
6047 81 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6048 81 : rtx x2, x3, x4, x5, x6;
6049 81 : int res ATTRIBUTE_UNUSED;
6050 81 : if (!register_operand (operands[0], i1)
6051 81 : || GET_MODE (x1) != i1)
6052 : return -1;
6053 78 : x2 = XVECEXP (x1, 0, 0);
6054 78 : if (GET_MODE (x2) != i1)
6055 : return -1;
6056 78 : x3 = XEXP (x2, 0);
6057 78 : if (GET_MODE (x3) != i1)
6058 : return -1;
6059 78 : x4 = XEXP (x3, 0);
6060 78 : if (GET_MODE (x4) != i1)
6061 : return -1;
6062 78 : x5 = XEXP (x4, 0);
6063 78 : if (GET_MODE (x5) != i1
6064 78 : || !register_operand (operands[2], i1)
6065 156 : || !nonimmediate_operand (operands[1], i1))
6066 0 : return -1;
6067 78 : x6 = XEXP (x4, 2);
6068 78 : if (GET_MODE (x6) != i1
6069 78 : || !register_operand (operands[3], i1)
6070 156 : || !const0_operand (operands[4], i1))
6071 0 : return -1;
6072 : return 0;
6073 : }
6074 :
6075 : int
6076 519 : pattern1770 (machine_mode i1)
6077 : {
6078 519 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6079 519 : int res ATTRIBUTE_UNUSED;
6080 519 : if (!vsib_address_operand (operands[4], i1))
6081 : return -1;
6082 519 : switch (GET_MODE (operands[3]))
6083 : {
6084 291 : case E_V4SImode:
6085 291 : if (!register_operand (operands[3], E_V4SImode))
6086 : return -1;
6087 : return 0;
6088 :
6089 228 : case E_V4DImode:
6090 228 : if (!register_operand (operands[3], E_V4DImode))
6091 : return -1;
6092 : return 1;
6093 :
6094 : default:
6095 : return -1;
6096 : }
6097 : }
6098 :
6099 : int
6100 9 : pattern1778 (rtx x1, machine_mode i1)
6101 : {
6102 9 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6103 9 : int res ATTRIBUTE_UNUSED;
6104 9 : if (!memory_operand (operands[0], i1)
6105 1 : || !const_int_operand (operands[2], i1)
6106 1 : || GET_MODE (x1) != i1
6107 10 : || !const_int_operand (operands[1], i1))
6108 8 : return -1;
6109 : return 0;
6110 : }
6111 :
6112 : int
6113 0 : pattern1787 (rtx x1, machine_mode i1)
6114 : {
6115 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6116 0 : rtx x2, x3, x4, x5;
6117 0 : int res ATTRIBUTE_UNUSED;
6118 0 : x2 = XVECEXP (x1, 0, 0);
6119 0 : x3 = XEXP (x2, 0);
6120 0 : if (GET_MODE (x3) != i1
6121 0 : || !register_operand (operands[1], i1)
6122 0 : || !register_operand (operands[2], i1))
6123 0 : return -1;
6124 0 : x4 = XVECEXP (x1, 0, 1);
6125 0 : if (GET_MODE (x4) != i1)
6126 : return -1;
6127 0 : x5 = XEXP (x4, 0);
6128 0 : if (GET_MODE (x5) != i1)
6129 : return -1;
6130 : return 0;
6131 : }
6132 :
6133 : int
6134 1277 : pattern1794 (machine_mode i1, machine_mode i2, machine_mode i3)
6135 : {
6136 1277 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6137 1277 : int res ATTRIBUTE_UNUSED;
6138 1277 : if (!register_operand (operands[2], i3)
6139 1201 : || !register_operand (operands[6], i1)
6140 993 : || !register_operand (operands[3], i2)
6141 2162 : || !scratch_operand (operands[1], i1))
6142 392 : return -1;
6143 : return 0;
6144 : }
6145 :
6146 : int
6147 1016 : pattern1798 (machine_mode i1)
6148 : {
6149 1016 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6150 1016 : int res ATTRIBUTE_UNUSED;
6151 1016 : if (!vsib_address_operand (operands[2], i1))
6152 : return -1;
6153 976 : switch (GET_MODE (operands[3]))
6154 : {
6155 377 : case E_V4SImode:
6156 377 : if (!register_operand (operands[3], E_V4SImode))
6157 : return -1;
6158 : return 0;
6159 :
6160 599 : case E_V2DImode:
6161 599 : if (!register_operand (operands[3], E_V2DImode))
6162 : return -1;
6163 : return 1;
6164 :
6165 : default:
6166 : return -1;
6167 : }
6168 : }
6169 :
6170 : int
6171 822 : pattern1806 (rtx x1)
6172 : {
6173 822 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6174 822 : rtx x2, x3, x4, x5, x6, x7;
6175 822 : int res ATTRIBUTE_UNUSED;
6176 822 : x2 = XEXP (x1, 1);
6177 822 : x3 = XEXP (x2, 0);
6178 822 : x4 = XEXP (x3, 0);
6179 822 : if (GET_CODE (x4) != REG
6180 822 : || REGNO (x4) != 17
6181 1644 : || GET_MODE (x4) != E_CCZmode)
6182 : return -1;
6183 822 : x5 = XEXP (x3, 1);
6184 822 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6185 : return -1;
6186 822 : x6 = XEXP (x2, 2);
6187 822 : if (GET_CODE (x6) != PC)
6188 : return -1;
6189 773 : x7 = XEXP (x1, 0);
6190 773 : if (GET_CODE (x7) != PC)
6191 0 : return -1;
6192 : return 0;
6193 : }
6194 :
6195 : int
6196 1020 : pattern1816 (machine_mode i1)
6197 : {
6198 1020 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6199 1020 : int res ATTRIBUTE_UNUSED;
6200 1020 : if (!vsib_address_operand (operands[3], i1))
6201 : return -1;
6202 988 : switch (GET_MODE (operands[4]))
6203 : {
6204 441 : case E_V4SImode:
6205 441 : if (!register_operand (operands[4], E_V4SImode))
6206 : return -1;
6207 : return 0;
6208 :
6209 547 : case E_V2DImode:
6210 547 : if (!register_operand (operands[4], E_V2DImode))
6211 : return -1;
6212 : return 1;
6213 :
6214 : default:
6215 : return -1;
6216 : }
6217 : }
6218 :
6219 : int
6220 3806 : pattern1823 (rtx x1, machine_mode i1)
6221 : {
6222 3806 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6223 3806 : rtx x2;
6224 3806 : int res ATTRIBUTE_UNUSED;
6225 3806 : if (!x86_64_general_operand (operands[2], i1)
6226 3766 : || !nonimmediate_operand (operands[0], i1)
6227 7572 : || GET_MODE (x1) != i1)
6228 40 : return -1;
6229 3766 : x2 = XEXP (x1, 0);
6230 3766 : if (GET_MODE (x2) != i1)
6231 : return -1;
6232 : return 0;
6233 : }
6234 :
6235 : int
6236 28737 : pattern1828 (rtx x1, machine_mode i1, machine_mode i2)
6237 : {
6238 28737 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6239 28737 : rtx x2, x3, x4, x5, x6;
6240 28737 : int res ATTRIBUTE_UNUSED;
6241 28737 : x2 = XVECEXP (x1, 0, 0);
6242 28737 : x3 = XEXP (x2, 1);
6243 28737 : x4 = XEXP (x3, 0);
6244 28737 : x5 = XEXP (x4, 0);
6245 28737 : if (GET_MODE (x5) != i2
6246 28737 : || !nonimmediate_operand (operands[1], i1))
6247 150 : return -1;
6248 28587 : x6 = XEXP (x4, 1);
6249 28587 : if (GET_MODE (x6) != i2
6250 28587 : || !x86_64_sext_operand (operands[2], i1)
6251 57174 : || pattern1827 (x1,
6252 : i1,
6253 : i2) != 0)
6254 0 : return -1;
6255 : return 0;
6256 : }
6257 :
6258 : int
6259 894 : pattern1837 (rtx x1, machine_mode i1, machine_mode i2)
6260 : {
6261 894 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6262 894 : rtx x2, x3, x4, x5, x6;
6263 894 : int res ATTRIBUTE_UNUSED;
6264 894 : if (!register_operand (operands[0], i1)
6265 894 : || GET_MODE (x1) != i1)
6266 : return -1;
6267 842 : x2 = XEXP (x1, 0);
6268 842 : if (GET_MODE (x2) != i1)
6269 : return -1;
6270 842 : x3 = XEXP (x2, 0);
6271 842 : if (GET_MODE (x3) != i2
6272 842 : || !nonimmediate_operand (operands[1], i1))
6273 0 : return -1;
6274 842 : x4 = XEXP (x1, 1);
6275 842 : operands[2] = x4;
6276 842 : if (!nonimm_or_0_operand (operands[2], i1))
6277 : return -1;
6278 822 : x5 = XEXP (x1, 2);
6279 822 : operands[3] = x5;
6280 822 : x6 = XEXP (x3, 1);
6281 822 : if (!rtx_equal_p (x6, operands[1]))
6282 : return -1;
6283 : return 0;
6284 : }
6285 :
6286 : int
6287 380 : pattern1847 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
6288 : {
6289 380 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6290 380 : rtx x2, x3, x4;
6291 380 : int res ATTRIBUTE_UNUSED;
6292 380 : if (!register_operand (operands[0], i3)
6293 380 : || GET_MODE (x1) != i3)
6294 : return -1;
6295 364 : x2 = XEXP (x1, 0);
6296 364 : if (GET_MODE (x2) != i3)
6297 : return -1;
6298 364 : x3 = XEXP (x2, 0);
6299 364 : if (GET_MODE (x3) != i2
6300 364 : || !register_operand (operands[1], i1))
6301 0 : return -1;
6302 364 : x4 = XEXP (x2, 1);
6303 364 : if (GET_MODE (x4) != i2
6304 364 : || !vector_operand (operands[2], i1))
6305 0 : return -1;
6306 : return 0;
6307 : }
6308 :
6309 : int
6310 625 : pattern1854 (rtx x1, machine_mode i1, machine_mode i2)
6311 : {
6312 625 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6313 625 : int res ATTRIBUTE_UNUSED;
6314 625 : if (!register_operand (operands[7], i1)
6315 589 : || !register_operand (operands[3], i2)
6316 1197 : || !scratch_operand (operands[2], i1))
6317 53 : return -1;
6318 572 : switch (GET_MODE (x1))
6319 : {
6320 0 : case E_SImode:
6321 0 : if (!vsib_address_operand (operands[4], E_SImode))
6322 : return -1;
6323 : return 0;
6324 :
6325 572 : case E_DImode:
6326 572 : if (!vsib_address_operand (operands[4], E_DImode))
6327 : return -1;
6328 : return 1;
6329 :
6330 : default:
6331 : return -1;
6332 : }
6333 : }
6334 :
6335 : int
6336 580 : pattern1864 (rtx x1, machine_mode i1)
6337 : {
6338 580 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6339 580 : int res ATTRIBUTE_UNUSED;
6340 580 : if (!register_operand (operands[3], i1))
6341 : return -1;
6342 558 : switch (GET_MODE (x1))
6343 : {
6344 0 : case E_SImode:
6345 0 : if (!vsib_address_operand (operands[4], E_SImode))
6346 : return -1;
6347 : return 0;
6348 :
6349 558 : case E_DImode:
6350 558 : if (!vsib_address_operand (operands[4], E_DImode))
6351 : return -1;
6352 : return 1;
6353 :
6354 : default:
6355 : return -1;
6356 : }
6357 : }
6358 :
6359 : int
6360 666 : pattern1868 (rtx x1)
6361 : {
6362 666 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6363 666 : rtx x2, x3, x4, x5;
6364 666 : int res ATTRIBUTE_UNUSED;
6365 666 : x2 = XVECEXP (x1, 0, 4);
6366 666 : if (XWINT (x2, 0) != 6L)
6367 : return -1;
6368 666 : x3 = XVECEXP (x1, 0, 5);
6369 666 : if (XWINT (x3, 0) != 22L)
6370 : return -1;
6371 666 : x4 = XVECEXP (x1, 0, 6);
6372 666 : if (XWINT (x4, 0) != 7L)
6373 : return -1;
6374 666 : x5 = XVECEXP (x1, 0, 7);
6375 666 : if (XWINT (x5, 0) != 23L)
6376 0 : return -1;
6377 : return 0;
6378 : }
6379 :
6380 : int
6381 503 : pattern1873 (rtx x1, machine_mode i1, machine_mode i2)
6382 : {
6383 503 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6384 503 : rtx x2, x3, x4, x5, x6, x7;
6385 503 : int res ATTRIBUTE_UNUSED;
6386 503 : if (!nonimmediate_operand (operands[1], i1))
6387 : return -1;
6388 503 : x2 = XVECEXP (x1, 0, 0);
6389 503 : x3 = XEXP (x2, 1);
6390 503 : x4 = XEXP (x3, 1);
6391 503 : if (GET_MODE (x4) != i2
6392 503 : || !ix86_carry_flag_operator (operands[4], i2)
6393 503 : || !const_scalar_int_operand (operands[6], i2)
6394 1006 : || !nonimmediate_operand (operands[0], i1))
6395 0 : return -1;
6396 503 : x5 = XVECEXP (x1, 0, 1);
6397 503 : x6 = XEXP (x5, 1);
6398 503 : if (GET_MODE (x6) != i1)
6399 : return -1;
6400 503 : x7 = XEXP (x6, 0);
6401 503 : if (GET_MODE (x7) != i1
6402 503 : || !ix86_carry_flag_operator (operands[5], i1)
6403 1006 : || !x86_64_immediate_operand (operands[2], i1))
6404 348 : return -1;
6405 : return 0;
6406 : }
6407 :
6408 : int
6409 402 : pattern1884 ()
6410 : {
6411 402 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6412 402 : int res ATTRIBUTE_UNUSED;
6413 402 : if (!const_0_to_15_operand (operands[2], E_VOIDmode)
6414 402 : || !const_0_to_15_operand (operands[3], E_VOIDmode)
6415 402 : || !const_0_to_15_operand (operands[4], E_VOIDmode)
6416 402 : || !const_0_to_15_operand (operands[5], E_VOIDmode)
6417 402 : || !const_0_to_15_operand (operands[6], E_VOIDmode)
6418 402 : || !const_0_to_15_operand (operands[7], E_VOIDmode)
6419 402 : || !const_0_to_15_operand (operands[8], E_VOIDmode)
6420 402 : || !const_0_to_15_operand (operands[9], E_VOIDmode)
6421 402 : || !const_0_to_15_operand (operands[10], E_VOIDmode)
6422 402 : || !const_0_to_15_operand (operands[11], E_VOIDmode)
6423 402 : || !const_0_to_15_operand (operands[12], E_VOIDmode)
6424 402 : || !const_0_to_15_operand (operands[13], E_VOIDmode)
6425 402 : || !const_0_to_15_operand (operands[14], E_VOIDmode)
6426 402 : || !const_0_to_15_operand (operands[15], E_VOIDmode)
6427 402 : || !const_0_to_15_operand (operands[16], E_VOIDmode)
6428 804 : || !const_0_to_15_operand (operands[17], E_VOIDmode))
6429 0 : return -1;
6430 : return 0;
6431 : }
6432 :
6433 : int
6434 1003 : pattern1893 (rtx x1, machine_mode i1)
6435 : {
6436 1003 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6437 1003 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6438 1003 : rtx x10;
6439 1003 : int res ATTRIBUTE_UNUSED;
6440 1003 : x2 = XVECEXP (x1, 0, 1);
6441 1003 : x3 = XEXP (x2, 1);
6442 1003 : if (XINT (x3, 1) != 109
6443 1003 : || GET_MODE (x3) != i1)
6444 : return -1;
6445 1003 : x4 = XVECEXP (x1, 0, 2);
6446 1003 : x5 = XEXP (x4, 1);
6447 1003 : if (GET_CODE (x5) != UNSPEC_VOLATILE
6448 1003 : || XVECLEN (x5, 0) != 1
6449 1003 : || XINT (x5, 1) != 109
6450 1003 : || GET_MODE (x5) != E_CCZmode)
6451 : return -1;
6452 1003 : x6 = XVECEXP (x5, 0, 0);
6453 1003 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
6454 1003 : || !memory_operand (operands[2], i1)
6455 2006 : || !register_operand (operands[3], i1))
6456 0 : return -1;
6457 1003 : x7 = XEXP (x4, 0);
6458 1003 : if (GET_MODE (x7) != E_CCZmode)
6459 : return -1;
6460 1003 : x8 = PATTERN (peep2_next_insn (2));
6461 1003 : x9 = XEXP (x8, 0);
6462 1003 : if (GET_MODE (x9) != E_CCZmode)
6463 : return -1;
6464 1003 : x10 = XEXP (x8, 1);
6465 1003 : if (GET_MODE (x10) != E_CCZmode
6466 1003 : || !register_operand (operands[5], i1)
6467 2001 : || !general_operand (operands[6], i1))
6468 5 : return -1;
6469 : return 0;
6470 : }
6471 :
6472 : int
6473 0 : pattern1903 (rtx x1, machine_mode i1, machine_mode i2)
6474 : {
6475 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6476 0 : rtx x2, x3, x4, x5, x6, x7;
6477 0 : int res ATTRIBUTE_UNUSED;
6478 0 : x2 = XVECEXP (x1, 0, 0);
6479 0 : x3 = XEXP (x2, 1);
6480 0 : x4 = XEXP (x3, 0);
6481 0 : x5 = XEXP (x4, 0);
6482 0 : if (GET_MODE (x5) != i2
6483 0 : || !ix86_carry_flag_operator (operands[4], i2))
6484 0 : return -1;
6485 0 : x6 = XEXP (x5, 1);
6486 0 : if (GET_MODE (x6) != i2
6487 0 : || !nonimmediate_operand (operands[1], i1))
6488 0 : return -1;
6489 0 : x7 = XEXP (x4, 1);
6490 0 : if (GET_MODE (x7) != i2
6491 0 : || !sext_operand (operands[2], i1)
6492 0 : || pattern1902 (x1,
6493 : i1,
6494 : i2) != 0)
6495 0 : return -1;
6496 : return 0;
6497 : }
6498 :
6499 : int
6500 178 : pattern1910 (rtx x1, machine_mode i1, machine_mode i2)
6501 : {
6502 178 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6503 178 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6504 178 : rtx x10, x11;
6505 178 : int res ATTRIBUTE_UNUSED;
6506 178 : x2 = XVECEXP (x1, 0, 0);
6507 178 : x3 = XEXP (x2, 1);
6508 178 : x4 = XEXP (x3, 0);
6509 178 : x5 = XEXP (x4, 0);
6510 178 : if (GET_MODE (x5) != i2)
6511 : return -1;
6512 178 : x6 = XEXP (x5, 0);
6513 178 : if (GET_MODE (x6) != i2
6514 178 : || !nonimmediate_operand (operands[1], i1)
6515 178 : || !ix86_carry_flag_operator (operands[4], i2)
6516 356 : || !const_int_operand (operands[6], i2))
6517 0 : return -1;
6518 178 : x7 = XEXP (x3, 1);
6519 178 : if (GET_MODE (x7) != i2)
6520 : return -1;
6521 178 : x8 = XEXP (x7, 0);
6522 178 : if (GET_MODE (x8) != i1)
6523 : return -1;
6524 178 : x9 = XEXP (x8, 0);
6525 178 : if (GET_MODE (x9) != i1
6526 178 : || !ix86_carry_flag_operator (operands[5], i1))
6527 0 : return -1;
6528 178 : x10 = XVECEXP (x1, 0, 1);
6529 178 : x11 = XEXP (x10, 1);
6530 178 : return pattern1905 (x11,
6531 178 : i1); /* [-1, 0] */
6532 : }
6533 :
6534 : int
6535 1060 : pattern1920 (rtx x1)
6536 : {
6537 1060 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6538 1060 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6539 1060 : int res ATTRIBUTE_UNUSED;
6540 1060 : x2 = XVECEXP (x1, 0, 24);
6541 1060 : if (XWINT (x2, 0) != 28L)
6542 : return -1;
6543 1060 : x3 = XVECEXP (x1, 0, 25);
6544 1060 : if (XWINT (x3, 0) != 60L)
6545 : return -1;
6546 1060 : x4 = XVECEXP (x1, 0, 26);
6547 1060 : if (XWINT (x4, 0) != 29L)
6548 : return -1;
6549 1060 : x5 = XVECEXP (x1, 0, 27);
6550 1060 : if (XWINT (x5, 0) != 61L)
6551 : return -1;
6552 1060 : x6 = XVECEXP (x1, 0, 28);
6553 1060 : if (XWINT (x6, 0) != 30L)
6554 : return -1;
6555 1060 : x7 = XVECEXP (x1, 0, 29);
6556 1060 : if (XWINT (x7, 0) != 62L)
6557 : return -1;
6558 1060 : x8 = XVECEXP (x1, 0, 30);
6559 1060 : if (XWINT (x8, 0) != 31L)
6560 : return -1;
6561 1060 : x9 = XVECEXP (x1, 0, 31);
6562 1060 : if (XWINT (x9, 0) != 63L)
6563 0 : return -1;
6564 : return 0;
6565 : }
6566 :
6567 : int
6568 3261935 : recog_7 (rtx x1 ATTRIBUTE_UNUSED,
6569 : rtx_insn *insn ATTRIBUTE_UNUSED,
6570 : int *pnum_clobbers ATTRIBUTE_UNUSED)
6571 : {
6572 3261935 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6573 3261935 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6574 3261935 : rtx x10, x11, x12;
6575 3261935 : int res ATTRIBUTE_UNUSED;
6576 3261935 : if (pattern59 (x1,
6577 : E_CCFPmode) != 0)
6578 : return -1;
6579 3230379 : x2 = XEXP (x1, 1);
6580 3230379 : x3 = XVECEXP (x2, 0, 0);
6581 3230379 : if (GET_MODE (x3) != E_CCFPmode)
6582 : return -1;
6583 3230379 : switch (GET_CODE (x3))
6584 : {
6585 3213643 : case COMPARE:
6586 3213643 : x4 = XEXP (x3, 0);
6587 3213643 : switch (GET_CODE (x4))
6588 : {
6589 2824687 : case REG:
6590 2824687 : case SUBREG:
6591 2824687 : operands[0] = x4;
6592 2824687 : x5 = XEXP (x3, 1);
6593 2824687 : operands[1] = x5;
6594 2824687 : switch (GET_MODE (operands[0]))
6595 : {
6596 635303 : case E_XFmode:
6597 635303 : if (!register_operand (operands[0], E_XFmode)
6598 635303 : || !register_operand (operands[1], E_XFmode)
6599 1167072 : || !
6600 : #line 2066 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6601 : (TARGET_80387 && TARGET_CMOVE))
6602 : return -1;
6603 : return 53; /* *cmpiuxf_i387 */
6604 :
6605 : case E_SFmode:
6606 : if (!register_operand (operands[0], E_SFmode)
6607 : || !register_ssemem_operand (operands[1], E_SFmode)
6608 : || !
6609 : #line 2107 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6610 : ((SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)
6611 : || (TARGET_80387 && TARGET_CMOVE)))
6612 : return -1;
6613 : return 61; /* *cmpiusf */
6614 :
6615 : case E_DFmode:
6616 : if (!register_operand (operands[0], E_DFmode)
6617 : || !register_ssemem_operand (operands[1], E_DFmode)
6618 : || !
6619 : #line 2107 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6620 : ((SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)
6621 : || (TARGET_80387 && TARGET_CMOVE)))
6622 : return -1;
6623 : return 63; /* *cmpiudf */
6624 :
6625 : case E_HFmode:
6626 : if (!register_operand (operands[0], E_HFmode)
6627 : || !nonimmediate_operand (operands[1], E_HFmode)
6628 : || !
6629 : #line 2145 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6630 : (TARGET_AVX512FP16))
6631 : return -1;
6632 : return 65; /* *cmpiuhf */
6633 :
6634 : default:
6635 : return -1;
6636 : }
6637 :
6638 : case VEC_SELECT:
6639 : if (pattern612 (x3) != 0)
6640 : return -1;
6641 : x6 = XEXP (x4, 0);
6642 : operands[0] = x6;
6643 : x5 = XEXP (x3, 1);
6644 : x7 = XEXP (x5, 0);
6645 : operands[1] = x7;
6646 : switch (GET_MODE (x4))
6647 : {
6648 : case E_HFmode:
6649 : if (!register_operand (operands[0], E_V8HFmode)
6650 : || GET_MODE (x5) != E_HFmode
6651 : || !nonimmediate_operand (operands[1], E_V8HFmode)
6652 : || !(
6653 : #line 5273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6654 : (SSE_FLOAT_MODE_P (HFmode) || HFmode == E_HFmode) &&
6655 : #line 1386 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6656 : (TARGET_AVX512FP16)))
6657 : return -1;
6658 : return 3760; /* avx512fp16_ucomi */
6659 :
6660 : case E_SFmode:
6661 : if (!register_operand (operands[0], E_V4SFmode)
6662 : || GET_MODE (x5) != E_SFmode
6663 : || !nonimmediate_operand (operands[1], E_V4SFmode)
6664 : || !
6665 : #line 5273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6666 : (SSE_FLOAT_MODE_P (SFmode) || SFmode == E_HFmode))
6667 : return -1;
6668 : return 3764; /* sse_ucomi */
6669 :
6670 : case E_DFmode:
6671 : if (!register_operand (operands[0], E_V2DFmode)
6672 : || GET_MODE (x5) != E_DFmode
6673 : || !nonimmediate_operand (operands[1], E_V2DFmode)
6674 : || !
6675 : #line 5273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6676 : (SSE_FLOAT_MODE_P (DFmode) || DFmode == E_HFmode))
6677 : return -1;
6678 : return 3768; /* sse2_ucomi */
6679 :
6680 : default:
6681 : return -1;
6682 : }
6683 :
6684 : default:
6685 : return -1;
6686 : }
6687 :
6688 : case UNSPEC:
6689 : switch (XVECLEN (x3, 0))
6690 : {
6691 : case 1:
6692 : if (XINT (x3, 1) != 45)
6693 : return -1;
6694 : x8 = XVECEXP (x3, 0, 0);
6695 : if (GET_CODE (x8) != COMPARE
6696 : || GET_MODE (x8) != E_CCFPmode)
6697 : return -1;
6698 : x9 = XEXP (x8, 0);
6699 : operands[0] = x9;
6700 : x10 = XEXP (x8, 1);
6701 : operands[1] = x10;
6702 : switch (GET_MODE (operands[0]))
6703 : {
6704 : case E_SFmode:
6705 : if (!register_operand (operands[0], E_SFmode)
6706 : || !nonimmediate_operand (operands[1], E_SFmode)
6707 : || !
6708 : #line 2083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6709 : (TARGET_AVX10_2))
6710 : return -1;
6711 : return 55; /* *cmpxusf */
6712 :
6713 : case E_DFmode:
6714 : if (!register_operand (operands[0], E_DFmode)
6715 : || !nonimmediate_operand (operands[1], E_DFmode)
6716 : || !
6717 : #line 2083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6718 : (TARGET_AVX10_2))
6719 : return -1;
6720 : return 57; /* *cmpxudf */
6721 :
6722 : case E_HFmode:
6723 : if (!register_operand (operands[0], E_HFmode)
6724 : || !nonimmediate_operand (operands[1], E_HFmode)
6725 : || !
6726 : #line 2096 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6727 : (TARGET_AVX10_2))
6728 : return -1;
6729 : return 59; /* *cmpxuhf */
6730 :
6731 : default:
6732 : return -1;
6733 : }
6734 :
6735 : case 2:
6736 : if (XINT (x3, 1) != 62
6737 : || pattern858 (x3) != 0)
6738 : return -1;
6739 : x8 = XVECEXP (x3, 0, 0);
6740 : x9 = XEXP (x8, 0);
6741 : operands[0] = x9;
6742 : x11 = XVECEXP (x3, 0, 1);
6743 : x12 = XEXP (x11, 0);
6744 : operands[1] = x12;
6745 : switch (GET_MODE (x8))
6746 : {
6747 : case E_HFmode:
6748 : if (!register_operand (operands[0], E_V8HFmode)
6749 : || GET_MODE (x11) != E_HFmode
6750 : || !nonimmediate_operand (operands[1], E_V8HFmode)
6751 : || !(
6752 : #line 5258 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6753 : (TARGET_AVX10_2) &&
6754 : #line 1386 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6755 : (TARGET_AVX512FP16)))
6756 : return -1;
6757 : return 3748; /* avx10_2_ucomxhf */
6758 :
6759 : case E_SFmode:
6760 : if (!register_operand (operands[0], E_V4SFmode)
6761 : || GET_MODE (x11) != E_SFmode
6762 : || !nonimmediate_operand (operands[1], E_V4SFmode)
6763 : || !
6764 : #line 5258 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6765 : (TARGET_AVX10_2))
6766 : return -1;
6767 : return 3752; /* avx10_2_ucomxsf */
6768 :
6769 : case E_DFmode:
6770 : if (!register_operand (operands[0], E_V2DFmode)
6771 : || GET_MODE (x11) != E_DFmode
6772 : || !nonimmediate_operand (operands[1], E_V2DFmode)
6773 : || !
6774 : #line 5258 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6775 : (TARGET_AVX10_2))
6776 : return -1;
6777 : return 3756; /* avx10_2_ucomxdf */
6778 :
6779 : default:
6780 : return -1;
6781 : }
6782 :
6783 : default:
6784 : return -1;
6785 : }
6786 :
6787 : default:
6788 : return -1;
6789 : }
6790 : }
6791 :
6792 : int
6793 : recog_17 (rtx x1 ATTRIBUTE_UNUSED,
6794 : rtx_insn *insn ATTRIBUTE_UNUSED,
6795 : int *pnum_clobbers ATTRIBUTE_UNUSED)
6796 : {
6797 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6798 : rtx x2, x3, x4;
6799 : int res ATTRIBUTE_UNUSED;
6800 : x2 = XEXP (x1, 0);
6801 : operands[0] = x2;
6802 : x3 = XEXP (x1, 1);
6803 : operands[1] = x3;
6804 : switch (GET_MODE (operands[0]))
6805 : {
6806 : case E_V1TImode:
6807 : if (push_operand (operands[0], E_V1TImode)
6808 : && register_operand (operands[1], E_V1TImode))
6809 : {
6810 : if ((
6811 : #line 2214 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6812 : (TARGET_64BIT && TARGET_STV) &&
6813 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6814 : (Pmode == SImode)))
6815 : return 69; /* *pushv1ti2 */
6816 : if ((
6817 : #line 2214 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6818 : (TARGET_64BIT && TARGET_STV) &&
6819 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6820 : (Pmode == DImode)))
6821 : return 70; /* *pushv1ti2 */
6822 : }
6823 : break;
6824 :
6825 : case E_DImode:
6826 : if (push_operand (operands[0], E_DImode)
6827 : && general_no_elim_operand (operands[1], E_DImode))
6828 : {
6829 : if (
6830 : #line 1226 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6831 : (!TARGET_64BIT))
6832 : return 71; /* *pushdi2 */
6833 : if (
6834 : #line 2245 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6835 : (TARGET_64BIT))
6836 : return 73; /* *pushdi2_rex64 */
6837 : }
6838 : if (nonimmediate_operand (operands[0], E_DImode)
6839 : && pop_operand (operands[1], E_DImode)
6840 : &&
6841 : #line 1434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6842 : (word_mode == DImode))
6843 : return 81; /* *popdi1 */
6844 : if (pnum_clobbers != NULL
6845 : && const0_operand (operands[1], E_DImode))
6846 : {
6847 : if (register_operand (operands[0], E_DImode)
6848 : && (
6849 : #line 2463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6850 : (reload_completed) &&
6851 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6852 : (TARGET_64BIT)))
6853 : {
6854 : *pnum_clobbers = 1;
6855 : return 89; /* *movdi_xor */
6856 : }
6857 : if (memory_operand (operands[0], E_DImode)
6858 : && (
6859 : #line 2475 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6860 : (reload_completed) &&
6861 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6862 : (TARGET_64BIT)))
6863 : {
6864 : *pnum_clobbers = 1;
6865 : return 92; /* *movdi_and */
6866 : }
6867 : }
6868 : if (nonimmediate_operand (operands[0], E_DImode))
6869 : {
6870 : if (pnum_clobbers != NULL
6871 : && constm1_operand (operands[1], E_DImode)
6872 : && (
6873 : #line 2490 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6874 : (reload_completed) &&
6875 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6876 : (TARGET_64BIT)))
6877 : {
6878 : *pnum_clobbers = 1;
6879 : return 95; /* *movdi_or */
6880 : }
6881 : if (general_operand (operands[1], E_DImode)
6882 : &&
6883 : #line 2639 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6884 : (!(MEM_P (operands[0]) && MEM_P (operands[1]))
6885 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
6886 : return 99; /* *movdi_internal */
6887 : }
6888 : break;
6889 :
6890 : case E_TImode:
6891 : if (push_operand (operands[0], E_TImode)
6892 : && general_no_elim_operand (operands[1], E_TImode)
6893 : &&
6894 : #line 1227 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6895 : (TARGET_64BIT))
6896 : return 72; /* *pushti2 */
6897 : if (nonimmediate_operand (operands[0], E_TImode)
6898 : && general_operand (operands[1], E_TImode)
6899 : &&
6900 : #line 2551 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6901 : ((TARGET_64BIT
6902 : && !(MEM_P (operands[0]) && MEM_P (operands[1])))
6903 : || (TARGET_SSE
6904 : && nonimmediate_or_sse_const_operand (operands[1], TImode)
6905 : && (register_operand (operands[0], TImode)
6906 : || register_operand (operands[1], TImode)))))
6907 : return 98; /* *movti_internal */
6908 : break;
6909 :
6910 : case E_SImode:
6911 : res = recog_16 (x1, insn, pnum_clobbers);
6912 : if (res >= 0)
6913 : return res;
6914 : break;
6915 :
6916 : case E_QImode:
6917 : if (push_operand (operands[0], E_QImode)
6918 : && nonmemory_no_elim_operand (operands[1], E_QImode))
6919 : return 76; /* *pushqi2 */
6920 : if (nonimmediate_operand (operands[0], E_QImode)
6921 : && general_operand (operands[1], E_QImode)
6922 : &&
6923 : #line 3213 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6924 : (!(MEM_P (operands[0]) && MEM_P (operands[1]))
6925 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
6926 : return 102; /* *movqi_internal */
6927 : break;
6928 :
6929 : case E_HImode:
6930 : if (push_operand (operands[0], E_HImode)
6931 : && nonmemory_no_elim_operand (operands[1], E_HImode))
6932 : return 77; /* *pushhi2 */
6933 : if (pnum_clobbers != NULL
6934 : && memory_operand (operands[0], E_HImode)
6935 : && const0_operand (operands[1], E_HImode)
6936 : &&
6937 : #line 2475 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6938 : (reload_completed))
6939 : {
6940 : *pnum_clobbers = 1;
6941 : return 90; /* *movhi_and */
6942 : }
6943 : if (nonimmediate_operand (operands[0], E_HImode))
6944 : {
6945 : if (pnum_clobbers != NULL
6946 : && constm1_operand (operands[1], E_HImode)
6947 : &&
6948 : #line 2490 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6949 : (reload_completed))
6950 : {
6951 : *pnum_clobbers = 1;
6952 : return 93; /* *movhi_or */
6953 : }
6954 : if (general_operand (operands[1], E_HImode)
6955 : &&
6956 : #line 3046 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6957 : (!(MEM_P (operands[0]) && MEM_P (operands[1]))
6958 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
6959 : return 101; /* *movhi_internal */
6960 : }
6961 : break;
6962 :
6963 : case E_TFmode:
6964 : if (push_operand (operands[0], E_TFmode)
6965 : && general_no_elim_operand (operands[1], E_TFmode)
6966 : &&
6967 : #line 3830 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6968 : (TARGET_64BIT || TARGET_SSE))
6969 : return 156; /* *pushtf */
6970 : if (nonimmediate_operand (operands[0], E_TFmode)
6971 : && general_operand (operands[1], E_TFmode)
6972 : &&
6973 : #line 4099 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6974 : ((TARGET_64BIT || TARGET_SSE)
6975 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))
6976 : && (lra_in_progress || reload_completed
6977 : || !CONST_DOUBLE_P (operands[1])
6978 : || (standard_sse_constant_p (operands[1], TFmode) == 1
6979 : && !memory_operand (operands[0], TFmode))
6980 : || (!TARGET_MEMORY_MISMATCH_STALL
6981 : && memory_operand (operands[0], TFmode)))))
6982 : return 171; /* *movtf_internal */
6983 : break;
6984 :
6985 : case E_XFmode:
6986 : if (push_operand (operands[0], E_XFmode)
6987 : && general_no_elim_operand (operands[1], E_XFmode))
6988 : return 157; /* *pushxf */
6989 : if (nonimmediate_operand (operands[0], E_XFmode)
6990 : && general_operand (operands[1], E_XFmode)
6991 : &&
6992 : #line 4160 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6993 : (!(MEM_P (operands[0]) && MEM_P (operands[1]))
6994 : && (lra_in_progress || reload_completed
6995 : || !CONST_DOUBLE_P (operands[1])
6996 : || ((optimize_function_for_size_p (cfun)
6997 : || (ix86_cmodel == CM_LARGE || ix86_cmodel == CM_LARGE_PIC))
6998 : && standard_80387_constant_p (operands[1]) > 0
6999 : && !memory_operand (operands[0], XFmode))
7000 : || (!TARGET_MEMORY_MISMATCH_STALL
7001 : && memory_operand (operands[0], XFmode))
7002 : || !TARGET_HARD_XF_REGS)))
7003 : return 172; /* *movxf_internal */
7004 : break;
7005 :
7006 : case E_DFmode:
7007 : if (push_operand (operands[0], E_DFmode)
7008 : && general_no_elim_operand (operands[1], E_DFmode))
7009 : return 158; /* *pushdf */
7010 : if (nonimmediate_operand (operands[0], E_DFmode)
7011 : && general_operand (operands[1], E_DFmode)
7012 : &&
7013 : #line 4232 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7014 : (!(MEM_P (operands[0]) && MEM_P (operands[1]))
7015 : && (lra_in_progress || reload_completed
7016 : || !CONST_DOUBLE_P (operands[1])
7017 : || ((optimize_function_for_size_p (cfun)
7018 : || (ix86_cmodel == CM_LARGE || ix86_cmodel == CM_LARGE_PIC))
7019 : && IS_STACK_MODE (DFmode)
7020 : && standard_80387_constant_p (operands[1]) > 0
7021 : && !memory_operand (operands[0], DFmode))
7022 : || (TARGET_SSE2 && TARGET_SSE_MATH
7023 : && standard_sse_constant_p (operands[1], DFmode) == 1
7024 : && !memory_operand (operands[0], DFmode))
7025 : || ((TARGET_64BIT || !TARGET_MEMORY_MISMATCH_STALL)
7026 : && memory_operand (operands[0], DFmode))
7027 : || !TARGET_HARD_DF_REGS)))
7028 : return 173; /* *movdf_internal */
7029 : break;
7030 :
7031 : case E_HFmode:
7032 : if (push_operand (operands[0], E_HFmode))
7033 : {
7034 : if (nonmemory_no_elim_operand (operands[1], E_HFmode)
7035 : &&
7036 : #line 3926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7037 : (TARGET_64BIT))
7038 : return 159; /* *pushhf_rex64 */
7039 : if (general_no_elim_operand (operands[1], E_HFmode)
7040 : &&
7041 : #line 3939 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7042 : (!TARGET_64BIT))
7043 : return 161; /* *pushhf */
7044 : }
7045 : if (nonimmediate_operand (operands[0], E_HFmode)
7046 : && general_operand (operands[1], E_HFmode)
7047 : &&
7048 : #line 4552 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7049 : (!(MEM_P (operands[0]) && MEM_P (operands[1]))
7050 : && (lra_in_progress
7051 : || reload_completed
7052 : || !CONST_DOUBLE_P (operands[1])
7053 : || (TARGET_SSE2
7054 : && standard_sse_constant_p (operands[1], HFmode) == 1)
7055 : || memory_operand (operands[0], HFmode))))
7056 : return 175; /* *movhf_internal */
7057 : break;
7058 :
7059 : case E_BFmode:
7060 : if (push_operand (operands[0], E_BFmode))
7061 : {
7062 : if (nonmemory_no_elim_operand (operands[1], E_BFmode)
7063 : &&
7064 : #line 3926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7065 : (TARGET_64BIT))
7066 : return 160; /* *pushbf_rex64 */
7067 : if (general_no_elim_operand (operands[1], E_BFmode)
7068 : &&
7069 : #line 3939 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7070 : (!TARGET_64BIT))
7071 : return 162; /* *pushbf */
7072 : }
7073 : if (nonimmediate_operand (operands[0], E_BFmode)
7074 : && general_operand (operands[1], E_BFmode)
7075 : &&
7076 : #line 4552 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7077 : (!(MEM_P (operands[0]) && MEM_P (operands[1]))
7078 : && (lra_in_progress
7079 : || reload_completed
7080 : || !CONST_DOUBLE_P (operands[1])
7081 : || (TARGET_SSE2
7082 : && standard_sse_constant_p (operands[1], BFmode) == 1)
7083 : || memory_operand (operands[0], BFmode))))
7084 : return 176; /* *movbf_internal */
7085 : break;
7086 :
7087 : case E_SFmode:
7088 : if (push_operand (operands[0], E_SFmode))
7089 : {
7090 : if (nonmemory_no_elim_operand (operands[1], E_SFmode)
7091 : &&
7092 : #line 4014 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7093 : (TARGET_64BIT))
7094 : return 169; /* *pushsf_rex64 */
7095 : if (general_no_elim_operand (operands[1], E_SFmode)
7096 : &&
7097 : #line 4028 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7098 : (!TARGET_64BIT))
7099 : return 170; /* *pushsf */
7100 : }
7101 : if (nonimmediate_operand (operands[0], E_SFmode)
7102 : && general_operand (operands[1], E_SFmode)
7103 : &&
7104 : #line 4413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7105 : (!(MEM_P (operands[0]) && MEM_P (operands[1]))
7106 : && (lra_in_progress || reload_completed
7107 : || !CONST_DOUBLE_P (operands[1])
7108 : || ((optimize_function_for_size_p (cfun)
7109 : || (ix86_cmodel == CM_LARGE || ix86_cmodel == CM_LARGE_PIC))
7110 : && IS_STACK_MODE (SFmode)
7111 : && standard_80387_constant_p (operands[1]) > 0)
7112 : || (TARGET_SSE && TARGET_SSE_MATH
7113 : && standard_sse_constant_p (operands[1], SFmode) == 1)
7114 : || memory_operand (operands[0], SFmode)
7115 : || !TARGET_HARD_SF_REGS)))
7116 : return 174; /* *movsf_internal */
7117 : break;
7118 :
7119 : case E_V8QImode:
7120 : if (nonimmediate_operand (operands[0], E_V8QImode)
7121 : && nonimm_or_0_operand (operands[1], E_V8QImode)
7122 : &&
7123 : #line 191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7124 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
7125 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))
7126 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
7127 : return 2070; /* *movv8qi_internal */
7128 : if (memory_operand (operands[0], E_V8QImode)
7129 : && x86_64_const_vector_operand (operands[1], E_V8QImode)
7130 : && (
7131 : #line 601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7132 : (!TARGET_LCP_STALL || V8QImode != V2QImode) &&
7133 : #line 87 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7134 : (TARGET_64BIT)))
7135 : return 2094; /* *movv8qi_imm */
7136 : break;
7137 :
7138 : case E_V4HImode:
7139 : if (nonimmediate_operand (operands[0], E_V4HImode)
7140 : && nonimm_or_0_operand (operands[1], E_V4HImode)
7141 : &&
7142 : #line 191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7143 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
7144 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))
7145 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
7146 : return 2071; /* *movv4hi_internal */
7147 : if (memory_operand (operands[0], E_V4HImode)
7148 : && x86_64_const_vector_operand (operands[1], E_V4HImode)
7149 : && (
7150 : #line 601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7151 : (!TARGET_LCP_STALL || V4HImode != V2QImode) &&
7152 : #line 87 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7153 : (TARGET_64BIT)))
7154 : return 2095; /* *movv4hi_imm */
7155 : break;
7156 :
7157 : case E_V2SImode:
7158 : if (nonimmediate_operand (operands[0], E_V2SImode)
7159 : && nonimm_or_0_operand (operands[1], E_V2SImode)
7160 : &&
7161 : #line 191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7162 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
7163 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))
7164 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
7165 : return 2072; /* *movv2si_internal */
7166 : if (memory_operand (operands[0], E_V2SImode)
7167 : && x86_64_const_vector_operand (operands[1], E_V2SImode)
7168 : && (
7169 : #line 601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7170 : (!TARGET_LCP_STALL || V2SImode != V2QImode) &&
7171 : #line 89 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7172 : (TARGET_64BIT)))
7173 : return 2098; /* *movv2si_imm */
7174 : break;
7175 :
7176 : case E_V1DImode:
7177 : if (nonimmediate_operand (operands[0], E_V1DImode)
7178 : && nonimm_or_0_operand (operands[1], E_V1DImode)
7179 : &&
7180 : #line 191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7181 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
7182 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))
7183 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
7184 : return 2073; /* *movv1di_internal */
7185 : if (memory_operand (operands[0], E_V1DImode)
7186 : && x86_64_const_vector_operand (operands[1], E_V1DImode)
7187 : && (
7188 : #line 601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7189 : (!TARGET_LCP_STALL || V1DImode != V2QImode) &&
7190 : #line 90 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7191 : (TARGET_64BIT)))
7192 : return 2100; /* *movv1di_imm */
7193 : break;
7194 :
7195 : case E_V2SFmode:
7196 : if (nonimmediate_operand (operands[0], E_V2SFmode)
7197 : && nonimm_or_0_operand (operands[1], E_V2SFmode)
7198 : &&
7199 : #line 191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7200 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
7201 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))
7202 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
7203 : return 2074; /* *movv2sf_internal */
7204 : if (memory_operand (operands[0], E_V2SFmode)
7205 : && x86_64_const_vector_operand (operands[1], E_V2SFmode)
7206 : && (
7207 : #line 601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7208 : (!TARGET_LCP_STALL || V2SFmode != V2QImode) &&
7209 : #line 89 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7210 : (TARGET_64BIT)))
7211 : return 2099; /* *movv2sf_imm */
7212 : break;
7213 :
7214 : case E_V4HFmode:
7215 : if (nonimmediate_operand (operands[0], E_V4HFmode)
7216 : && nonimm_or_0_operand (operands[1], E_V4HFmode)
7217 : &&
7218 : #line 191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7219 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
7220 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))
7221 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
7222 : return 2075; /* *movv4hf_internal */
7223 : if (memory_operand (operands[0], E_V4HFmode)
7224 : && x86_64_const_vector_operand (operands[1], E_V4HFmode)
7225 : && (
7226 : #line 601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7227 : (!TARGET_LCP_STALL || V4HFmode != V2QImode) &&
7228 : #line 88 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7229 : (TARGET_64BIT)))
7230 : return 2096; /* *movv4hf_imm */
7231 : break;
7232 :
7233 : case E_V4BFmode:
7234 : if (nonimmediate_operand (operands[0], E_V4BFmode)
7235 : && nonimm_or_0_operand (operands[1], E_V4BFmode)
7236 : &&
7237 : #line 191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7238 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
7239 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))
7240 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
7241 : return 2076; /* *movv4bf_internal */
7242 : if (memory_operand (operands[0], E_V4BFmode)
7243 : && x86_64_const_vector_operand (operands[1], E_V4BFmode)
7244 : && (
7245 : #line 601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7246 : (!TARGET_LCP_STALL || V4BFmode != V2QImode) &&
7247 : #line 88 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7248 : (TARGET_64BIT)))
7249 : return 2097; /* *movv4bf_imm */
7250 : break;
7251 :
7252 : case E_V4QImode:
7253 : if (nonimmediate_operand (operands[0], E_V4QImode)
7254 : && nonimm_or_0_operand (operands[1], E_V4QImode)
7255 : &&
7256 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7257 : (!(MEM_P (operands[0]) && MEM_P (operands[1]))
7258 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
7259 : return 2077; /* *movv4qi_internal */
7260 : if (push_operand (operands[0], E_V4QImode)
7261 : && nonmemory_no_elim_operand (operands[1], E_V4QImode)
7262 : &&
7263 : #line 416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7264 : (TARGET_64BIT))
7265 : return 2082; /* *pushv4qi2_rex64 */
7266 : if (memory_operand (operands[0], E_V4QImode)
7267 : && x86_64_const_vector_operand (operands[1], E_V4QImode))
7268 : return 2089; /* *movv4qi_imm */
7269 : break;
7270 :
7271 : case E_V2HImode:
7272 : if (nonimmediate_operand (operands[0], E_V2HImode)
7273 : && nonimm_or_0_operand (operands[1], E_V2HImode)
7274 : &&
7275 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7276 : (!(MEM_P (operands[0]) && MEM_P (operands[1]))
7277 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
7278 : return 2078; /* *movv2hi_internal */
7279 : if (push_operand (operands[0], E_V2HImode)
7280 : && nonmemory_no_elim_operand (operands[1], E_V2HImode)
7281 : &&
7282 : #line 416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7283 : (TARGET_64BIT))
7284 : return 2083; /* *pushv2hi2_rex64 */
7285 : if (memory_operand (operands[0], E_V2HImode)
7286 : && x86_64_const_vector_operand (operands[1], E_V2HImode))
7287 : return 2090; /* *movv2hi_imm */
7288 : break;
7289 :
7290 : case E_V1SImode:
7291 : if (nonimmediate_operand (operands[0], E_V1SImode)
7292 : && nonimm_or_0_operand (operands[1], E_V1SImode)
7293 : &&
7294 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7295 : (!(MEM_P (operands[0]) && MEM_P (operands[1]))
7296 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
7297 : return 2079; /* *movv1si_internal */
7298 : if (push_operand (operands[0], E_V1SImode)
7299 : && nonmemory_no_elim_operand (operands[1], E_V1SImode)
7300 : &&
7301 : #line 416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7302 : (TARGET_64BIT))
7303 : return 2084; /* *pushv1si2_rex64 */
7304 : if (memory_operand (operands[0], E_V1SImode)
7305 : && x86_64_const_vector_operand (operands[1], E_V1SImode))
7306 : return 2091; /* *movv1si_imm */
7307 : break;
7308 :
7309 : case E_V2HFmode:
7310 : if (nonimmediate_operand (operands[0], E_V2HFmode)
7311 : && nonimm_or_0_operand (operands[1], E_V2HFmode)
7312 : &&
7313 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7314 : (!(MEM_P (operands[0]) && MEM_P (operands[1]))
7315 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
7316 : return 2080; /* *movv2hf_internal */
7317 : if (push_operand (operands[0], E_V2HFmode)
7318 : && nonmemory_no_elim_operand (operands[1], E_V2HFmode)
7319 : &&
7320 : #line 416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7321 : (TARGET_64BIT))
7322 : return 2085; /* *pushv2hf2_rex64 */
7323 : if (memory_operand (operands[0], E_V2HFmode)
7324 : && x86_64_const_vector_operand (operands[1], E_V2HFmode))
7325 : return 2092; /* *movv2hf_imm */
7326 : break;
7327 :
7328 : case E_V2BFmode:
7329 : if (nonimmediate_operand (operands[0], E_V2BFmode)
7330 : && nonimm_or_0_operand (operands[1], E_V2BFmode)
7331 : &&
7332 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7333 : (!(MEM_P (operands[0]) && MEM_P (operands[1]))
7334 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
7335 : return 2081; /* *movv2bf_internal */
7336 : if (push_operand (operands[0], E_V2BFmode)
7337 : && nonmemory_no_elim_operand (operands[1], E_V2BFmode)
7338 : &&
7339 : #line 416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7340 : (TARGET_64BIT))
7341 : return 2086; /* *pushv2bf2_rex64 */
7342 : if (memory_operand (operands[0], E_V2BFmode)
7343 : && x86_64_const_vector_operand (operands[1], E_V2BFmode))
7344 : return 2093; /* *movv2bf_imm */
7345 : break;
7346 :
7347 : case E_V2QImode:
7348 : if (nonimmediate_operand (operands[0], E_V2QImode)
7349 : && nonimm_or_0_operand (operands[1], E_V2QImode)
7350 : &&
7351 : #line 458 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7352 : (!(MEM_P (operands[0]) && MEM_P (operands[1]))
7353 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
7354 : return 2087; /* *movv2qi_internal */
7355 : if (memory_operand (operands[0], E_V2QImode)
7356 : && x86_64_const_vector_operand (operands[1], E_V2QImode)
7357 : &&
7358 : #line 601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7359 : (!TARGET_LCP_STALL || V2QImode != V2QImode))
7360 : return 2088; /* *movv2qi_imm */
7361 : if (push_operand (operands[0], E_V2QImode)
7362 : && nonmemory_no_elim_operand (operands[1], E_V2QImode))
7363 : return 2101; /* *pushv2qi2 */
7364 : break;
7365 :
7366 : case E_P2QImode:
7367 : if (nonimmediate_operand (operands[0], E_P2QImode)
7368 : && nonimmediate_operand (operands[1], E_P2QImode)
7369 : &&
7370 : #line 32024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7371 : (TARGET_AVX512VP2INTERSECT
7372 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
7373 : return 10434; /* *movp2qi_internal */
7374 : break;
7375 :
7376 : case E_P2HImode:
7377 : if (nonimmediate_operand (operands[0], E_P2HImode)
7378 : && nonimmediate_operand (operands[1], E_P2HImode)
7379 : &&
7380 : #line 32024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7381 : (TARGET_AVX512VP2INTERSECT
7382 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
7383 : return 10435; /* *movp2hi_internal */
7384 : break;
7385 :
7386 : default:
7387 : break;
7388 : }
7389 : if (GET_CODE (x2) != MEM)
7390 : return -1;
7391 : x4 = XEXP (x2, 0);
7392 : operands[0] = x4;
7393 : if (!x86_64_movabs_operand (operands[0], E_DImode))
7394 : return -1;
7395 : operands[1] = x3;
7396 : switch (GET_MODE (x2))
7397 : {
7398 : case E_QImode:
7399 : if (!nonmemory_operand (operands[1], E_QImode)
7400 : || !
7401 : #line 3364 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7402 : (TARGET_LP64 && ix86_check_movabs (insn, 0)))
7403 : return -1;
7404 : return 103; /* *movabsqi_1 */
7405 :
7406 : case E_HImode:
7407 : if (!nonmemory_operand (operands[1], E_HImode)
7408 : || !
7409 : #line 3364 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7410 : (TARGET_LP64 && ix86_check_movabs (insn, 0)))
7411 : return -1;
7412 : return 104; /* *movabshi_1 */
7413 :
7414 : case E_SImode:
7415 : if (!nonmemory_operand (operands[1], E_SImode)
7416 : || !
7417 : #line 3364 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7418 : (TARGET_LP64 && ix86_check_movabs (insn, 0)))
7419 : return -1;
7420 : return 105; /* *movabssi_1 */
7421 :
7422 : case E_DImode:
7423 : if (!nonmemory_operand (operands[1], E_DImode)
7424 : || !
7425 : #line 3364 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7426 : (TARGET_LP64 && ix86_check_movabs (insn, 0)))
7427 : return -1;
7428 : return 106; /* *movabsdi_1 */
7429 :
7430 : default:
7431 : return -1;
7432 : }
7433 : }
7434 :
7435 : int
7436 : recog_34 (rtx x1 ATTRIBUTE_UNUSED,
7437 : rtx_insn *insn ATTRIBUTE_UNUSED,
7438 : int *pnum_clobbers ATTRIBUTE_UNUSED)
7439 : {
7440 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
7441 : rtx x2, x3, x4;
7442 : int res ATTRIBUTE_UNUSED;
7443 : x2 = XEXP (x1, 0);
7444 : operands[0] = x2;
7445 : x3 = XEXP (x1, 1);
7446 : x4 = XEXP (x3, 0);
7447 : operands[1] = x4;
7448 : switch (GET_MODE (operands[0]))
7449 : {
7450 : case E_SImode:
7451 : if (GET_MODE (x3) != E_SImode)
7452 : return -1;
7453 : if (register_operand (operands[0], E_SImode))
7454 : {
7455 : switch (pattern264 ())
7456 : {
7457 : case 0:
7458 : if (
7459 : #line 5880 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7460 : (TARGET_AVX512FP16))
7461 : return 216; /* fix_trunchfsi2 */
7462 : break;
7463 :
7464 : case 1:
7465 : if (
7466 : #line 6056 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7467 : (SSE_FLOAT_MODE_P (SFmode)
7468 : && (!TARGET_FISTTP || TARGET_SSE_MATH)))
7469 : return 229; /* fix_truncsfsi_sse */
7470 : break;
7471 :
7472 : case 2:
7473 : if (
7474 : #line 6056 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7475 : (SSE_FLOAT_MODE_P (DFmode)
7476 : && (!TARGET_FISTTP || TARGET_SSE_MATH)))
7477 : return 231; /* fix_truncdfsi_sse */
7478 : break;
7479 :
7480 : default:
7481 : break;
7482 : }
7483 : }
7484 : if (pnum_clobbers == NULL
7485 : || !nonimmediate_operand (operands[0], E_SImode)
7486 : || !register_operand (operands[1], E_VOIDmode))
7487 : return -1;
7488 : if (
7489 : #line 6086 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7490 : (X87_FLOAT_MODE_P (GET_MODE (operands[1]))
7491 : && TARGET_FISTTP
7492 : && !((SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
7493 : && (TARGET_64BIT || SImode != DImode))
7494 : && TARGET_SSE_MATH)))
7495 : {
7496 : *pnum_clobbers = 1;
7497 : return 234; /* fix_truncsi_i387_fisttp */
7498 : }
7499 : if (!
7500 : #line 6104 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7501 : (X87_FLOAT_MODE_P (GET_MODE (operands[1]))
7502 : && !TARGET_FISTTP
7503 : && !(SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
7504 : && (TARGET_64BIT || SImode != DImode))
7505 : && ix86_pre_reload_split ()))
7506 : return -1;
7507 : *pnum_clobbers = 1;
7508 : return 237; /* *fix_truncsi_i387_1 */
7509 :
7510 : case E_DImode:
7511 : if (GET_MODE (x3) != E_DImode)
7512 : return -1;
7513 : if (register_operand (operands[0], E_DImode))
7514 : {
7515 : switch (pattern264 ())
7516 : {
7517 : case 0:
7518 : if ((
7519 : #line 5880 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7520 : (TARGET_AVX512FP16) &&
7521 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7522 : (TARGET_64BIT)))
7523 : return 218; /* fix_trunchfdi2 */
7524 : break;
7525 :
7526 : case 1:
7527 : if ((
7528 : #line 6056 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7529 : (SSE_FLOAT_MODE_P (SFmode)
7530 : && (!TARGET_FISTTP || TARGET_SSE_MATH)) &&
7531 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7532 : (TARGET_64BIT)))
7533 : return 230; /* fix_truncsfdi_sse */
7534 : break;
7535 :
7536 : case 2:
7537 : if ((
7538 : #line 6056 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7539 : (SSE_FLOAT_MODE_P (DFmode)
7540 : && (!TARGET_FISTTP || TARGET_SSE_MATH)) &&
7541 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7542 : (TARGET_64BIT)))
7543 : return 232; /* fix_truncdfdi_sse */
7544 : break;
7545 :
7546 : default:
7547 : break;
7548 : }
7549 : }
7550 : if (pnum_clobbers == NULL
7551 : || !nonimmediate_operand (operands[0], E_DImode)
7552 : || !register_operand (operands[1], E_VOIDmode))
7553 : return -1;
7554 : if (
7555 : #line 6086 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7556 : (X87_FLOAT_MODE_P (GET_MODE (operands[1]))
7557 : && TARGET_FISTTP
7558 : && !((SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
7559 : && (TARGET_64BIT || DImode != DImode))
7560 : && TARGET_SSE_MATH)))
7561 : {
7562 : *pnum_clobbers = 1;
7563 : return 235; /* fix_truncdi_i387_fisttp */
7564 : }
7565 : if (!
7566 : #line 6104 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7567 : (X87_FLOAT_MODE_P (GET_MODE (operands[1]))
7568 : && !TARGET_FISTTP
7569 : && !(SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
7570 : && (TARGET_64BIT || DImode != DImode))
7571 : && ix86_pre_reload_split ()))
7572 : return -1;
7573 : *pnum_clobbers = 1;
7574 : return 238; /* *fix_truncdi_i387_1 */
7575 :
7576 : case E_HImode:
7577 : if (pattern263 (x3, pnum_clobbers,
7578 : E_VOIDmode,
7579 : E_HImode) != 0)
7580 : return -1;
7581 : if (
7582 : #line 6086 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7583 : (X87_FLOAT_MODE_P (GET_MODE (operands[1]))
7584 : && TARGET_FISTTP
7585 : && !((SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
7586 : && (TARGET_64BIT || HImode != DImode))
7587 : && TARGET_SSE_MATH)))
7588 : {
7589 : *pnum_clobbers = 1;
7590 : return 233; /* fix_trunchi_i387_fisttp */
7591 : }
7592 : if (!
7593 : #line 6104 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7594 : (X87_FLOAT_MODE_P (GET_MODE (operands[1]))
7595 : && !TARGET_FISTTP
7596 : && !(SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
7597 : && (TARGET_64BIT || HImode != DImode))
7598 : && ix86_pre_reload_split ()))
7599 : return -1;
7600 : *pnum_clobbers = 1;
7601 : return 236; /* *fix_trunchi_i387_1 */
7602 :
7603 : case E_V2SImode:
7604 : if (!register_operand (operands[0], E_V2SImode)
7605 : || GET_MODE (x3) != E_V2SImode
7606 : || !vector_operand (operands[1], E_V2DFmode)
7607 : || !
7608 : #line 9323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7609 : (TARGET_SSE2))
7610 : return -1;
7611 : return 4944; /* sse2_cvttpd2pi */
7612 :
7613 : default:
7614 : return -1;
7615 : }
7616 : }
7617 :
7618 : int
7619 : recog_42 (rtx x1 ATTRIBUTE_UNUSED,
7620 : rtx_insn *insn ATTRIBUTE_UNUSED,
7621 : int *pnum_clobbers ATTRIBUTE_UNUSED)
7622 : {
7623 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
7624 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
7625 : rtx x10, x11, x12, x13, x14, x15, x16;
7626 : int res ATTRIBUTE_UNUSED;
7627 : x2 = XEXP (x1, 1);
7628 : x3 = XEXP (x2, 0);
7629 : switch (GET_CODE (x3))
7630 : {
7631 : case REG:
7632 : case SUBREG:
7633 : case MEM:
7634 : operands[1] = x3;
7635 : res = recog_38 (x1, insn, pnum_clobbers);
7636 : if (res >= 0)
7637 : return res;
7638 : if (pnum_clobbers == NULL
7639 : || GET_CODE (x3) != SUBREG
7640 : || maybe_ne (SUBREG_BYTE (x3), 0))
7641 : return -1;
7642 : x4 = XEXP (x3, 0);
7643 : switch (GET_CODE (x4))
7644 : {
7645 : case ASHIFTRT:
7646 : case LSHIFTRT:
7647 : case SIGN_EXTRACT:
7648 : case ZERO_EXTRACT:
7649 : operands[3] = x4;
7650 : if (GET_MODE (x2) != E_QImode
7651 : || GET_MODE (x3) != E_QImode)
7652 : return -1;
7653 : x5 = XEXP (x4, 0);
7654 : operands[2] = x5;
7655 : switch (pattern1083 (x1))
7656 : {
7657 : case 0:
7658 : if (
7659 : #line 13578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7660 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
7661 : {
7662 : *pnum_clobbers = 1;
7663 : return 759; /* *andqi_exthi_1_slp */
7664 : }
7665 : break;
7666 :
7667 : case 1:
7668 : if (
7669 : #line 13578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7670 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
7671 : {
7672 : *pnum_clobbers = 1;
7673 : return 762; /* *andqi_extsi_1_slp */
7674 : }
7675 : break;
7676 :
7677 : case 2:
7678 : if ((
7679 : #line 13578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7680 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
7681 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7682 : (TARGET_64BIT)))
7683 : {
7684 : *pnum_clobbers = 1;
7685 : return 765; /* *andqi_extdi_1_slp */
7686 : }
7687 : break;
7688 :
7689 : case 3:
7690 : *pnum_clobbers = 1;
7691 : return 783; /* *andqi_exthi_0 */
7692 :
7693 : case 4:
7694 : *pnum_clobbers = 1;
7695 : return 786; /* *andqi_extsi_0 */
7696 :
7697 : case 5:
7698 : if (
7699 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7700 : (TARGET_64BIT))
7701 : {
7702 : *pnum_clobbers = 1;
7703 : return 789; /* *andqi_extdi_0 */
7704 : }
7705 : break;
7706 :
7707 : default:
7708 : break;
7709 : }
7710 : x6 = XEXP (x2, 1);
7711 : if (GET_CODE (x6) != SUBREG)
7712 : return -1;
7713 : switch (pattern1086 (x1))
7714 : {
7715 : case 0:
7716 : if (!
7717 : #line 13607 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7718 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
7719 : return -1;
7720 : *pnum_clobbers = 1;
7721 : return 768; /* *andqi_exthi_2_slp */
7722 :
7723 : case 1:
7724 : if (!
7725 : #line 13607 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7726 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
7727 : return -1;
7728 : *pnum_clobbers = 1;
7729 : return 771; /* *andqi_extsi_2_slp */
7730 :
7731 : case 2:
7732 : if (!(
7733 : #line 13607 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7734 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
7735 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7736 : (TARGET_64BIT)))
7737 : return -1;
7738 : *pnum_clobbers = 1;
7739 : return 774; /* *andqi_extdi_2_slp */
7740 :
7741 : case 3:
7742 : *pnum_clobbers = 1;
7743 : return 792; /* *andqi_ext2hi_0 */
7744 :
7745 : case 4:
7746 : *pnum_clobbers = 1;
7747 : return 795; /* *andqi_ext2si_0 */
7748 :
7749 : case 5:
7750 : if (!
7751 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7752 : (TARGET_64BIT))
7753 : return -1;
7754 : *pnum_clobbers = 1;
7755 : return 798; /* *andqi_ext2di_0 */
7756 :
7757 : default:
7758 : return -1;
7759 : }
7760 :
7761 : case ROTATE:
7762 : if (GET_MODE (x4) != E_SImode)
7763 : return -1;
7764 : x5 = XEXP (x4, 0);
7765 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + -2])
7766 : return -1;
7767 : x7 = XEXP (x1, 0);
7768 : operands[0] = x7;
7769 : x8 = XEXP (x4, 1);
7770 : operands[2] = x8;
7771 : if (!register_operand (operands[2], E_QImode))
7772 : return -1;
7773 : x6 = XEXP (x2, 1);
7774 : operands[1] = x6;
7775 : switch (GET_MODE (operands[0]))
7776 : {
7777 : case E_QImode:
7778 : if (pattern1368 (x2,
7779 : E_QImode) != 0
7780 : || !
7781 : #line 19902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7782 : (TARGET_USE_BT && ix86_pre_reload_split ()))
7783 : return -1;
7784 : *pnum_clobbers = 1;
7785 : return 1441; /* *btrqi_1 */
7786 :
7787 : case E_HImode:
7788 : if (pattern1368 (x2,
7789 : E_HImode) != 0
7790 : || !
7791 : #line 19902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7792 : (TARGET_USE_BT && ix86_pre_reload_split ()))
7793 : return -1;
7794 : *pnum_clobbers = 1;
7795 : return 1442; /* *btrhi_1 */
7796 :
7797 : default:
7798 : return -1;
7799 : }
7800 :
7801 : default:
7802 : return -1;
7803 : }
7804 :
7805 : case NOT:
7806 : x7 = XEXP (x1, 0);
7807 : operands[0] = x7;
7808 : x4 = XEXP (x3, 0);
7809 : operands[1] = x4;
7810 : res = recog_39 (x1, insn, pnum_clobbers);
7811 : if (res >= 0)
7812 : return res;
7813 : if (pnum_clobbers == NULL
7814 : || !register_operand (operands[0], E_QImode)
7815 : || GET_CODE (x4) != SUBREG
7816 : || maybe_ne (SUBREG_BYTE (x4), 0)
7817 : || GET_MODE (x4) != E_QImode)
7818 : return -1;
7819 : x5 = XEXP (x4, 0);
7820 : if (GET_CODE (x5) != LSHIFTRT)
7821 : return -1;
7822 : x6 = XEXP (x2, 1);
7823 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
7824 : || GET_MODE (x2) != E_QImode
7825 : || GET_MODE (x3) != E_QImode)
7826 : return -1;
7827 : x9 = XEXP (x5, 0);
7828 : operands[1] = x9;
7829 : x10 = XEXP (x5, 1);
7830 : operands[2] = x10;
7831 : if (!register_operand (operands[2], E_QImode))
7832 : return -1;
7833 : switch (GET_MODE (x5))
7834 : {
7835 : case E_SImode:
7836 : if (!nonimmediate_operand (operands[1], E_SImode)
7837 : || !
7838 : #line 20342 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7839 : (TARGET_USE_BT && ix86_pre_reload_split ()))
7840 : return -1;
7841 : *pnum_clobbers = 1;
7842 : return 1466; /* *btsi_setncqi */
7843 :
7844 : case E_DImode:
7845 : if (!nonimmediate_operand (operands[1], E_DImode)
7846 : || !(
7847 : #line 20342 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7848 : (TARGET_USE_BT && ix86_pre_reload_split ()) &&
7849 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7850 : (TARGET_64BIT)))
7851 : return -1;
7852 : *pnum_clobbers = 1;
7853 : return 1467; /* *btdi_setncqi */
7854 :
7855 : default:
7856 : return -1;
7857 : }
7858 :
7859 : case UNSPEC:
7860 : x7 = XEXP (x1, 0);
7861 : operands[0] = x7;
7862 : switch (XVECLEN (x3, 0))
7863 : {
7864 : case 3:
7865 : x11 = XVECEXP (x3, 0, 2);
7866 : if (GET_CODE (x11) != CONST_INT)
7867 : return -1;
7868 : x12 = XVECEXP (x3, 0, 0);
7869 : operands[1] = x12;
7870 : x13 = XVECEXP (x3, 0, 1);
7871 : operands[2] = x13;
7872 : switch (XINT (x3, 1))
7873 : {
7874 : case 60:
7875 : operands[3] = x11;
7876 : res = recog_40 (x1, insn, pnum_clobbers);
7877 : if (res >= 0)
7878 : return res;
7879 : if (XWINT (x11, 0) != 0L)
7880 : return -1;
7881 : switch (pattern976 (x2))
7882 : {
7883 : case 0:
7884 : if (!(
7885 : #line 4811 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7886 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
7887 : #line 525 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7888 : (TARGET_AVX512VL)))
7889 : return -1;
7890 : return 3467; /* *avx512vl_eqv4si3_and15 */
7891 :
7892 : case 1:
7893 : if (!(
7894 : #line 4811 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7895 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
7896 : #line 525 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7897 : (TARGET_AVX512VL)))
7898 : return -1;
7899 : return 3469; /* *avx512vl_eqv4di3_and15 */
7900 :
7901 : case 2:
7902 : if (!
7903 : #line 4860 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7904 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
7905 : return -1;
7906 : return 3474; /* *avx512vl_eqv2di_and3 */
7907 :
7908 : case 3:
7909 : if (!(
7910 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
7911 : (TARGET_AVX512F) && (
7912 : #line 4996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7913 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
7914 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7915 : (TARGET_AVX512VL))))
7916 : return -1;
7917 : return 3577; /* *avx512vl_eqv16qi3_mask_1 */
7918 :
7919 : case 4:
7920 : if (!(
7921 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
7922 : (TARGET_AVX512F) && (
7923 : #line 4996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7924 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
7925 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7926 : (TARGET_AVX512VL))))
7927 : return -1;
7928 : return 3589; /* *avx512vl_eqv16hi3_mask_1 */
7929 :
7930 : case 5:
7931 : if (!(
7932 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
7933 : (TARGET_AVX512F) &&
7934 : #line 5072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7935 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
7936 : return -1;
7937 : return 3633; /* *avx512f_eqv16si3_mask_1 */
7938 :
7939 : case 6:
7940 : if (!(
7941 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
7942 : (TARGET_AVX512F) && (
7943 : #line 4996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7944 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
7945 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7946 : (TARGET_AVX512VL))))
7947 : return -1;
7948 : return 3593; /* *avx512vl_eqv8hi3_mask_1 */
7949 :
7950 : case 7:
7951 : if (!(
7952 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
7953 : (TARGET_AVX512F) && (
7954 : #line 5072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7955 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
7956 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7957 : (TARGET_AVX512VL))))
7958 : return -1;
7959 : return 3637; /* *avx512vl_eqv8si3_mask_1 */
7960 :
7961 : case 8:
7962 : if (!(
7963 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
7964 : (TARGET_AVX512F) && (
7965 : #line 5072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7966 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
7967 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7968 : (TARGET_AVX512VL))))
7969 : return -1;
7970 : return 3641; /* *avx512vl_eqv4si3_mask_1 */
7971 :
7972 : case 9:
7973 : if (!(
7974 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
7975 : (TARGET_AVX512F) &&
7976 : #line 5072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7977 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
7978 : return -1;
7979 : return 3645; /* *avx512f_eqv8di3_mask_1 */
7980 :
7981 : case 10:
7982 : if (!(
7983 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
7984 : (TARGET_AVX512F) && (
7985 : #line 5072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7986 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
7987 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7988 : (TARGET_AVX512VL))))
7989 : return -1;
7990 : return 3649; /* *avx512vl_eqv4di3_mask_1 */
7991 :
7992 : case 11:
7993 : if (!(
7994 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
7995 : (TARGET_AVX512F) && (
7996 : #line 5072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7997 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
7998 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7999 : (TARGET_AVX512VL))))
8000 : return -1;
8001 : return 3653; /* *avx512vl_eqv2di3_mask_1 */
8002 :
8003 : default:
8004 : return -1;
8005 : }
8006 :
8007 : case 158:
8008 : if (GET_MODE (x3) == E_QImode)
8009 : {
8010 : res = recog_41 (x1, insn, pnum_clobbers);
8011 : if (res >= 0)
8012 : return res;
8013 : }
8014 : if (XWINT (x11, 0) == 0L)
8015 : {
8016 : switch (pattern976 (x2))
8017 : {
8018 : case 0:
8019 : if ((
8020 : #line 4811 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8021 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
8022 : #line 525 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8023 : (TARGET_AVX512VL)))
8024 : return 3468; /* *avx512vl_eqv4si3_and15 */
8025 : break;
8026 :
8027 : case 1:
8028 : if ((
8029 : #line 4811 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8030 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
8031 : #line 525 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8032 : (TARGET_AVX512VL)))
8033 : return 3470; /* *avx512vl_eqv4di3_and15 */
8034 : break;
8035 :
8036 : case 2:
8037 : if (
8038 : #line 4860 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8039 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8040 : return 3475; /* *avx512vl_eqv2di_and3 */
8041 : break;
8042 :
8043 : case 3:
8044 : if ((
8045 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8046 : (TARGET_AVX512F) && (
8047 : #line 4996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8048 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
8049 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8050 : (TARGET_AVX512VL))))
8051 : return 3579; /* *avx512vl_eqv16qi3_mask_1 */
8052 : break;
8053 :
8054 : case 4:
8055 : if ((
8056 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8057 : (TARGET_AVX512F) && (
8058 : #line 4996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8059 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
8060 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8061 : (TARGET_AVX512VL))))
8062 : return 3591; /* *avx512vl_eqv16hi3_mask_1 */
8063 : break;
8064 :
8065 : case 5:
8066 : if ((
8067 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8068 : (TARGET_AVX512F) &&
8069 : #line 5072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8070 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
8071 : return 3635; /* *avx512f_eqv16si3_mask_1 */
8072 : break;
8073 :
8074 : case 6:
8075 : if ((
8076 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8077 : (TARGET_AVX512F) && (
8078 : #line 4996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8079 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
8080 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8081 : (TARGET_AVX512VL))))
8082 : return 3595; /* *avx512vl_eqv8hi3_mask_1 */
8083 : break;
8084 :
8085 : case 7:
8086 : if ((
8087 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8088 : (TARGET_AVX512F) && (
8089 : #line 5072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8090 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
8091 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8092 : (TARGET_AVX512VL))))
8093 : return 3639; /* *avx512vl_eqv8si3_mask_1 */
8094 : break;
8095 :
8096 : case 8:
8097 : if ((
8098 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8099 : (TARGET_AVX512F) && (
8100 : #line 5072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8101 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
8102 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8103 : (TARGET_AVX512VL))))
8104 : return 3643; /* *avx512vl_eqv4si3_mask_1 */
8105 : break;
8106 :
8107 : case 9:
8108 : if ((
8109 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8110 : (TARGET_AVX512F) &&
8111 : #line 5072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8112 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
8113 : return 3647; /* *avx512f_eqv8di3_mask_1 */
8114 : break;
8115 :
8116 : case 10:
8117 : if ((
8118 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8119 : (TARGET_AVX512F) && (
8120 : #line 5072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8121 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
8122 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8123 : (TARGET_AVX512VL))))
8124 : return 3651; /* *avx512vl_eqv4di3_mask_1 */
8125 : break;
8126 :
8127 : case 11:
8128 : if ((
8129 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8130 : (TARGET_AVX512F) && (
8131 : #line 5072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8132 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
8133 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8134 : (TARGET_AVX512VL))))
8135 : return 3655; /* *avx512vl_eqv2di3_mask_1 */
8136 : break;
8137 :
8138 : default:
8139 : break;
8140 : }
8141 : }
8142 : operands[3] = x11;
8143 : if (!const_0_to_7_operand (operands[3], E_SImode))
8144 : return -1;
8145 : switch (pattern1089 (x2))
8146 : {
8147 : case 0:
8148 : switch (pattern748 ())
8149 : {
8150 : case 0:
8151 : if (!(
8152 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8153 : (TARGET_AVX512F) && (
8154 : #line 5089 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8155 : (TARGET_AVX512F) &&
8156 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8157 : (TARGET_AVX512VL && TARGET_AVX512BW))))
8158 : return -1;
8159 : return 3661; /* avx512vl_ucmpv16qi3_mask */
8160 :
8161 : case 1:
8162 : if (!(
8163 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8164 : (TARGET_AVX512F) && (
8165 : #line 5089 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8166 : (TARGET_AVX512F) &&
8167 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8168 : (TARGET_AVX512VL && TARGET_AVX512BW))))
8169 : return -1;
8170 : return 3665; /* avx512vl_ucmpv16hi3_mask */
8171 :
8172 : case 2:
8173 : if (!
8174 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8175 : (TARGET_AVX512F))
8176 : return -1;
8177 : return 3669; /* avx512f_ucmpv16si3_mask */
8178 :
8179 : default:
8180 : return -1;
8181 : }
8182 :
8183 : case 1:
8184 : switch (pattern749 ())
8185 : {
8186 : case 0:
8187 : if (!(
8188 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8189 : (TARGET_AVX512F) && (
8190 : #line 5089 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8191 : (TARGET_AVX512F) &&
8192 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8193 : (TARGET_AVX512VL && TARGET_AVX512BW))))
8194 : return -1;
8195 : return 3667; /* avx512vl_ucmpv8hi3_mask */
8196 :
8197 : case 1:
8198 : if (!(
8199 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8200 : (TARGET_AVX512F) && (
8201 : #line 5089 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8202 : (TARGET_AVX512F) &&
8203 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8204 : (TARGET_AVX512VL))))
8205 : return -1;
8206 : return 3671; /* avx512vl_ucmpv8si3_mask */
8207 :
8208 : case 2:
8209 : if (!(
8210 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8211 : (TARGET_AVX512F) && (
8212 : #line 5089 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8213 : (TARGET_AVX512F) &&
8214 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8215 : (TARGET_AVX512VL))))
8216 : return -1;
8217 : return 3673; /* avx512vl_ucmpv4si3_mask */
8218 :
8219 : case 3:
8220 : if (!
8221 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8222 : (TARGET_AVX512F))
8223 : return -1;
8224 : return 3675; /* avx512f_ucmpv8di3_mask */
8225 :
8226 : case 4:
8227 : if (!(
8228 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8229 : (TARGET_AVX512F) && (
8230 : #line 5089 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8231 : (TARGET_AVX512F) &&
8232 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8233 : (TARGET_AVX512VL))))
8234 : return -1;
8235 : return 3677; /* avx512vl_ucmpv4di3_mask */
8236 :
8237 : case 5:
8238 : if (!(
8239 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8240 : (TARGET_AVX512F) && (
8241 : #line 5089 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8242 : (TARGET_AVX512F) &&
8243 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8244 : (TARGET_AVX512VL))))
8245 : return -1;
8246 : return 3679; /* avx512vl_ucmpv2di3_mask */
8247 :
8248 : default:
8249 : return -1;
8250 : }
8251 :
8252 : default:
8253 : return -1;
8254 : }
8255 :
8256 : default:
8257 : return -1;
8258 : }
8259 :
8260 : case 2:
8261 : x12 = XVECEXP (x3, 0, 0);
8262 : operands[1] = x12;
8263 : x13 = XVECEXP (x3, 0, 1);
8264 : operands[2] = x13;
8265 : switch (XINT (x3, 1))
8266 : {
8267 : case 159:
8268 : switch (pattern750 (x2))
8269 : {
8270 : case 0:
8271 : if (!(
8272 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8273 : (TARGET_AVX512F) && (
8274 : #line 19519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8275 : (TARGET_AVX512F) &&
8276 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8277 : (TARGET_AVX512VL && TARGET_AVX512BW))))
8278 : return -1;
8279 : return 8189; /* avx512vl_testmv16qi3_mask */
8280 :
8281 : case 1:
8282 : if (!(
8283 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8284 : (TARGET_AVX512F) && (
8285 : #line 19519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8286 : (TARGET_AVX512F) &&
8287 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8288 : (TARGET_AVX512VL && TARGET_AVX512BW))))
8289 : return -1;
8290 : return 8193; /* avx512vl_testmv16hi3_mask */
8291 :
8292 : case 2:
8293 : if (!
8294 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8295 : (TARGET_AVX512F))
8296 : return -1;
8297 : return 8197; /* avx512f_testmv16si3_mask */
8298 :
8299 : case 3:
8300 : if (!(
8301 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8302 : (TARGET_AVX512F) && (
8303 : #line 19519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8304 : (TARGET_AVX512F) &&
8305 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8306 : (TARGET_AVX512VL && TARGET_AVX512BW))))
8307 : return -1;
8308 : return 8195; /* avx512vl_testmv8hi3_mask */
8309 :
8310 : case 4:
8311 : if (!(
8312 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8313 : (TARGET_AVX512F) && (
8314 : #line 19519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8315 : (TARGET_AVX512F) &&
8316 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8317 : (TARGET_AVX512VL))))
8318 : return -1;
8319 : return 8199; /* avx512vl_testmv8si3_mask */
8320 :
8321 : case 5:
8322 : if (!(
8323 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8324 : (TARGET_AVX512F) && (
8325 : #line 19519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8326 : (TARGET_AVX512F) &&
8327 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8328 : (TARGET_AVX512VL))))
8329 : return -1;
8330 : return 8201; /* avx512vl_testmv4si3_mask */
8331 :
8332 : case 6:
8333 : if (!
8334 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8335 : (TARGET_AVX512F))
8336 : return -1;
8337 : return 8203; /* avx512f_testmv8di3_mask */
8338 :
8339 : case 7:
8340 : if (!(
8341 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8342 : (TARGET_AVX512F) && (
8343 : #line 19519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8344 : (TARGET_AVX512F) &&
8345 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8346 : (TARGET_AVX512VL))))
8347 : return -1;
8348 : return 8205; /* avx512vl_testmv4di3_mask */
8349 :
8350 : case 8:
8351 : if (!(
8352 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8353 : (TARGET_AVX512F) && (
8354 : #line 19519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8355 : (TARGET_AVX512F) &&
8356 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8357 : (TARGET_AVX512VL))))
8358 : return -1;
8359 : return 8207; /* avx512vl_testmv2di3_mask */
8360 :
8361 : default:
8362 : return -1;
8363 : }
8364 :
8365 : case 160:
8366 : switch (pattern750 (x2))
8367 : {
8368 : case 0:
8369 : if (!(
8370 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8371 : (TARGET_AVX512F) && (
8372 : #line 19530 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8373 : (TARGET_AVX512F) &&
8374 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8375 : (TARGET_AVX512VL && TARGET_AVX512BW))))
8376 : return -1;
8377 : return 8213; /* avx512vl_testnmv16qi3_mask */
8378 :
8379 : case 1:
8380 : if (!(
8381 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8382 : (TARGET_AVX512F) && (
8383 : #line 19530 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8384 : (TARGET_AVX512F) &&
8385 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8386 : (TARGET_AVX512VL && TARGET_AVX512BW))))
8387 : return -1;
8388 : return 8217; /* avx512vl_testnmv16hi3_mask */
8389 :
8390 : case 2:
8391 : if (!
8392 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8393 : (TARGET_AVX512F))
8394 : return -1;
8395 : return 8221; /* avx512f_testnmv16si3_mask */
8396 :
8397 : case 3:
8398 : if (!(
8399 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8400 : (TARGET_AVX512F) && (
8401 : #line 19530 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8402 : (TARGET_AVX512F) &&
8403 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8404 : (TARGET_AVX512VL && TARGET_AVX512BW))))
8405 : return -1;
8406 : return 8219; /* avx512vl_testnmv8hi3_mask */
8407 :
8408 : case 4:
8409 : if (!(
8410 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8411 : (TARGET_AVX512F) && (
8412 : #line 19530 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8413 : (TARGET_AVX512F) &&
8414 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8415 : (TARGET_AVX512VL))))
8416 : return -1;
8417 : return 8223; /* avx512vl_testnmv8si3_mask */
8418 :
8419 : case 5:
8420 : if (!(
8421 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8422 : (TARGET_AVX512F) && (
8423 : #line 19530 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8424 : (TARGET_AVX512F) &&
8425 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8426 : (TARGET_AVX512VL))))
8427 : return -1;
8428 : return 8225; /* avx512vl_testnmv4si3_mask */
8429 :
8430 : case 6:
8431 : if (!
8432 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8433 : (TARGET_AVX512F))
8434 : return -1;
8435 : return 8227; /* avx512f_testnmv8di3_mask */
8436 :
8437 : case 7:
8438 : if (!(
8439 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8440 : (TARGET_AVX512F) && (
8441 : #line 19530 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8442 : (TARGET_AVX512F) &&
8443 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8444 : (TARGET_AVX512VL))))
8445 : return -1;
8446 : return 8229; /* avx512vl_testnmv4di3_mask */
8447 :
8448 : case 8:
8449 : if (!(
8450 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8451 : (TARGET_AVX512F) && (
8452 : #line 19530 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8453 : (TARGET_AVX512F) &&
8454 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8455 : (TARGET_AVX512VL))))
8456 : return -1;
8457 : return 8231; /* avx512vl_testnmv2di3_mask */
8458 :
8459 : default:
8460 : return -1;
8461 : }
8462 :
8463 : case 194:
8464 : if (!const_0_to_255_operand (operands[2], E_VOIDmode))
8465 : return -1;
8466 : x6 = XEXP (x2, 1);
8467 : switch (GET_CODE (x6))
8468 : {
8469 : case REG:
8470 : case SUBREG:
8471 : operands[3] = x6;
8472 : switch (GET_MODE (operands[0]))
8473 : {
8474 : case E_HImode:
8475 : if (pattern286 (x2,
8476 : E_HImode) != 0)
8477 : return -1;
8478 : switch (GET_MODE (operands[1]))
8479 : {
8480 : case E_V16HFmode:
8481 : if (!vector_operand (operands[1], E_V16HFmode)
8482 : || !(
8483 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8484 : (TARGET_AVX512F) && (
8485 : #line 30907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8486 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V16HFmode)) &&
8487 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8488 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
8489 : return -1;
8490 : return 10089; /* avx512dq_fpclassv16hf_mask */
8491 :
8492 : case E_V16SFmode:
8493 : if (!vector_operand (operands[1], E_V16SFmode)
8494 : || !(
8495 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8496 : (TARGET_AVX512F) &&
8497 : #line 30907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8498 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V16SFmode))))
8499 : return -1;
8500 : return 10093; /* avx512dq_fpclassv16sf_mask */
8501 :
8502 : default:
8503 : return -1;
8504 : }
8505 :
8506 : case E_QImode:
8507 : if (pattern286 (x2,
8508 : E_QImode) != 0)
8509 : return -1;
8510 : switch (GET_MODE (operands[1]))
8511 : {
8512 : case E_V8HFmode:
8513 : if (!vector_operand (operands[1], E_V8HFmode)
8514 : || !(
8515 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8516 : (TARGET_AVX512F) && (
8517 : #line 30907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8518 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V8HFmode)) &&
8519 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8520 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
8521 : return -1;
8522 : return 10091; /* avx512dq_fpclassv8hf_mask */
8523 :
8524 : case E_V8SFmode:
8525 : if (!vector_operand (operands[1], E_V8SFmode)
8526 : || !(
8527 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8528 : (TARGET_AVX512F) && (
8529 : #line 30907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8530 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V8SFmode)) &&
8531 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8532 : (TARGET_AVX512VL))))
8533 : return -1;
8534 : return 10095; /* avx512dq_fpclassv8sf_mask */
8535 :
8536 : case E_V4SFmode:
8537 : if (!vector_operand (operands[1], E_V4SFmode)
8538 : || !(
8539 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8540 : (TARGET_AVX512F) && (
8541 : #line 30907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8542 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V4SFmode)) &&
8543 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8544 : (TARGET_AVX512VL))))
8545 : return -1;
8546 : return 10097; /* avx512dq_fpclassv4sf_mask */
8547 :
8548 : case E_V8DFmode:
8549 : if (!vector_operand (operands[1], E_V8DFmode)
8550 : || !(
8551 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8552 : (TARGET_AVX512F) &&
8553 : #line 30907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8554 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V8DFmode))))
8555 : return -1;
8556 : return 10099; /* avx512dq_fpclassv8df_mask */
8557 :
8558 : case E_V4DFmode:
8559 : if (!vector_operand (operands[1], E_V4DFmode)
8560 : || !(
8561 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8562 : (TARGET_AVX512F) && (
8563 : #line 30907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8564 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V4DFmode)) &&
8565 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8566 : (TARGET_AVX512VL))))
8567 : return -1;
8568 : return 10101; /* avx512dq_fpclassv4df_mask */
8569 :
8570 : case E_V2DFmode:
8571 : if (!vector_operand (operands[1], E_V2DFmode)
8572 : || !(
8573 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8574 : (TARGET_AVX512F) && (
8575 : #line 30907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8576 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V2DFmode)) &&
8577 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8578 : (TARGET_AVX512VL))))
8579 : return -1;
8580 : return 10103; /* avx512dq_fpclassv2df_mask */
8581 :
8582 : default:
8583 : return -1;
8584 : }
8585 :
8586 : default:
8587 : return -1;
8588 : }
8589 :
8590 : case CONST_INT:
8591 : if (XWINT (x6, 0) != 1L
8592 : || !register_operand (operands[0], E_QImode)
8593 : || GET_MODE (x2) != E_QImode
8594 : || GET_MODE (x3) != E_QImode)
8595 : return -1;
8596 : switch (GET_MODE (operands[1]))
8597 : {
8598 : case E_V8HFmode:
8599 : if (!nonimmediate_operand (operands[1], E_V8HFmode)
8600 : || !(
8601 : #line 30922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8602 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V8HFmode)) &&
8603 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8604 : (TARGET_AVX512FP16)))
8605 : return -1;
8606 : return 10104; /* avx512dq_vmfpclassv8hf */
8607 :
8608 : case E_V4SFmode:
8609 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
8610 : || !
8611 : #line 30922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8612 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V4SFmode)))
8613 : return -1;
8614 : return 10106; /* avx512dq_vmfpclassv4sf */
8615 :
8616 : case E_V2DFmode:
8617 : if (!nonimmediate_operand (operands[1], E_V2DFmode)
8618 : || !(
8619 : #line 30922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8620 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V2DFmode)) &&
8621 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8622 : (TARGET_SSE2)))
8623 : return -1;
8624 : return 10108; /* avx512dq_vmfpclassv2df */
8625 :
8626 : default:
8627 : return -1;
8628 : }
8629 :
8630 : default:
8631 : return -1;
8632 : }
8633 :
8634 : case 215:
8635 : if (GET_MODE (x3) != E_HImode
8636 : || !register_operand (operands[0], E_HImode)
8637 : || GET_MODE (x2) != E_HImode
8638 : || !register_operand (operands[1], E_V16QImode)
8639 : || !nonimmediate_operand (operands[2], E_V16QImode))
8640 : return -1;
8641 : x6 = XEXP (x2, 1);
8642 : operands[3] = x6;
8643 : if (!register_operand (operands[3], E_HImode)
8644 : || !(
8645 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8646 : (TARGET_AVX512F) && (
8647 : #line 32001 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8648 : (TARGET_AVX512BITALG) &&
8649 : #line 338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8650 : (TARGET_AVX512VL))))
8651 : return -1;
8652 : return 10431; /* avx512vl_vpshufbitqmbv16qi_mask */
8653 :
8654 : case 263:
8655 : if (!const_0_to_255_operand (operands[2], E_VOIDmode))
8656 : return -1;
8657 : x6 = XEXP (x2, 1);
8658 : operands[3] = x6;
8659 : switch (GET_MODE (operands[0]))
8660 : {
8661 : case E_HImode:
8662 : if (pattern1090 (x2,
8663 : E_HImode,
8664 : E_V16BFmode) != 0
8665 : || !(
8666 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8667 : (TARGET_AVX512F) &&
8668 : #line 33521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8669 : (TARGET_AVX10_2)))
8670 : return -1;
8671 : return 10825; /* avx10_2_fpclassbf16_v16bf_mask */
8672 :
8673 : case E_QImode:
8674 : if (pattern1090 (x2,
8675 : E_QImode,
8676 : E_V8BFmode) != 0
8677 : || !(
8678 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8679 : (TARGET_AVX512F) &&
8680 : #line 33521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8681 : (TARGET_AVX10_2)))
8682 : return -1;
8683 : return 10827; /* avx10_2_fpclassbf16_v8bf_mask */
8684 :
8685 : default:
8686 : return -1;
8687 : }
8688 :
8689 : default:
8690 : return -1;
8691 : }
8692 :
8693 : default:
8694 : return -1;
8695 : }
8696 :
8697 : case AND:
8698 : if (GET_MODE (x3) != E_QImode)
8699 : return -1;
8700 : x4 = XEXP (x3, 0);
8701 : if (pattern89 (x4,
8702 : E_QImode,
8703 : 194,
8704 : 2) != 0)
8705 : return -1;
8706 : x14 = XEXP (x3, 1);
8707 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
8708 : return -1;
8709 : x7 = XEXP (x1, 0);
8710 : operands[0] = x7;
8711 : if (!register_operand (operands[0], E_QImode)
8712 : || GET_MODE (x2) != E_QImode)
8713 : return -1;
8714 : x15 = XVECEXP (x4, 0, 0);
8715 : operands[1] = x15;
8716 : x16 = XVECEXP (x4, 0, 1);
8717 : operands[2] = x16;
8718 : if (!const_0_to_255_operand (operands[2], E_VOIDmode))
8719 : return -1;
8720 : x6 = XEXP (x2, 1);
8721 : operands[3] = x6;
8722 : if (!register_operand (operands[3], E_QImode))
8723 : return -1;
8724 : switch (GET_MODE (operands[1]))
8725 : {
8726 : case E_V8HFmode:
8727 : if (!nonimmediate_operand (operands[1], E_V8HFmode)
8728 : || !(
8729 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8730 : (TARGET_AVX512F) && (
8731 : #line 30922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8732 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V8HFmode)) &&
8733 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8734 : (TARGET_AVX512FP16))))
8735 : return -1;
8736 : return 10105; /* avx512dq_vmfpclassv8hf_mask */
8737 :
8738 : case E_V4SFmode:
8739 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
8740 : || !(
8741 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8742 : (TARGET_AVX512F) &&
8743 : #line 30922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8744 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V4SFmode))))
8745 : return -1;
8746 : return 10107; /* avx512dq_vmfpclassv4sf_mask */
8747 :
8748 : case E_V2DFmode:
8749 : if (!nonimmediate_operand (operands[1], E_V2DFmode)
8750 : || !(
8751 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8752 : (TARGET_AVX512F) && (
8753 : #line 30922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8754 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V2DFmode)) &&
8755 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8756 : (TARGET_SSE2))))
8757 : return -1;
8758 : return 10109; /* avx512dq_vmfpclassv2df_mask */
8759 :
8760 : default:
8761 : return -1;
8762 : }
8763 :
8764 : default:
8765 : return -1;
8766 : }
8767 : }
8768 :
8769 : int
8770 : recog_81 (rtx x1 ATTRIBUTE_UNUSED,
8771 : rtx_insn *insn ATTRIBUTE_UNUSED,
8772 : int *pnum_clobbers ATTRIBUTE_UNUSED)
8773 : {
8774 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
8775 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
8776 : rtx x10, x11;
8777 : int res ATTRIBUTE_UNUSED;
8778 : x2 = XEXP (x1, 1);
8779 : x3 = XEXP (x2, 0);
8780 : switch (GET_CODE (x3))
8781 : {
8782 : case NEG:
8783 : if (pnum_clobbers == NULL)
8784 : return -1;
8785 : x4 = XEXP (x1, 0);
8786 : if (GET_CODE (x4) != REG
8787 : || REGNO (x4) != 17)
8788 : return -1;
8789 : x5 = XEXP (x3, 0);
8790 : operands[2] = x5;
8791 : x6 = XEXP (x2, 1);
8792 : operands[1] = x6;
8793 : switch (GET_MODE (x3))
8794 : {
8795 : case E_QImode:
8796 : if (!general_operand (operands[2], E_QImode)
8797 : || !nonimmediate_operand (operands[1], E_QImode)
8798 : || !
8799 : #line 7421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8800 : (ix86_match_ccmode (insn, CCZmode)
8801 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8802 : return -1;
8803 : *pnum_clobbers = 1;
8804 : return 318; /* *addqi_3 */
8805 :
8806 : case E_HImode:
8807 : if (!general_operand (operands[2], E_HImode)
8808 : || !nonimmediate_operand (operands[1], E_HImode)
8809 : || !
8810 : #line 7421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8811 : (ix86_match_ccmode (insn, CCZmode)
8812 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8813 : return -1;
8814 : *pnum_clobbers = 1;
8815 : return 319; /* *addhi_3 */
8816 :
8817 : case E_SImode:
8818 : if (!x86_64_general_operand (operands[2], E_SImode)
8819 : || !nonimmediate_operand (operands[1], E_SImode)
8820 : || !
8821 : #line 7421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8822 : (ix86_match_ccmode (insn, CCZmode)
8823 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8824 : return -1;
8825 : *pnum_clobbers = 1;
8826 : return 320; /* *addsi_3 */
8827 :
8828 : case E_DImode:
8829 : if (!x86_64_general_operand (operands[2], E_DImode)
8830 : || !nonimmediate_operand (operands[1], E_DImode)
8831 : || !(
8832 : #line 7421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8833 : (ix86_match_ccmode (insn, CCZmode)
8834 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
8835 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8836 : (TARGET_64BIT)))
8837 : return -1;
8838 : *pnum_clobbers = 1;
8839 : return 321; /* *adddi_3 */
8840 :
8841 : default:
8842 : return -1;
8843 : }
8844 :
8845 : case REG:
8846 : case SUBREG:
8847 : case MEM:
8848 : if (pnum_clobbers == NULL)
8849 : return -1;
8850 : operands[1] = x3;
8851 : x4 = XEXP (x1, 0);
8852 : if (GET_CODE (x4) != REG
8853 : || REGNO (x4) != 17)
8854 : return -1;
8855 : x6 = XEXP (x2, 1);
8856 : operands[2] = x6;
8857 : switch (GET_MODE (operands[1]))
8858 : {
8859 : case E_DImode:
8860 : if (!nonimmediate_operand (operands[1], E_DImode)
8861 : || !x86_64_immediate_operand (operands[2], E_DImode)
8862 : || !
8863 : #line 7530 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8864 : (TARGET_64BIT
8865 : && ix86_match_ccmode (insn, CCGCmode)))
8866 : return -1;
8867 : *pnum_clobbers = 1;
8868 : return 323; /* *adddi_4 */
8869 :
8870 : case E_QImode:
8871 : if (!nonimmediate_operand (operands[1], E_QImode)
8872 : || !const_int_operand (operands[2], E_QImode)
8873 : || !
8874 : #line 7575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8875 : (ix86_match_ccmode (insn, CCGCmode)))
8876 : return -1;
8877 : *pnum_clobbers = 1;
8878 : return 324; /* *addqi_4 */
8879 :
8880 : case E_HImode:
8881 : if (!nonimmediate_operand (operands[1], E_HImode)
8882 : || !const_int_operand (operands[2], E_HImode)
8883 : || !
8884 : #line 7575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8885 : (ix86_match_ccmode (insn, CCGCmode)))
8886 : return -1;
8887 : *pnum_clobbers = 1;
8888 : return 325; /* *addhi_4 */
8889 :
8890 : case E_SImode:
8891 : if (!nonimmediate_operand (operands[1], E_SImode)
8892 : || !const_int_operand (operands[2], E_SImode)
8893 : || !
8894 : #line 7575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8895 : (ix86_match_ccmode (insn, CCGCmode)))
8896 : return -1;
8897 : *pnum_clobbers = 1;
8898 : return 326; /* *addsi_4 */
8899 :
8900 : default:
8901 : return -1;
8902 : }
8903 :
8904 : case PLUS:
8905 : if (pnum_clobbers == NULL)
8906 : return -1;
8907 : x4 = XEXP (x1, 0);
8908 : if (GET_CODE (x4) != REG
8909 : || REGNO (x4) != 17)
8910 : return -1;
8911 : x5 = XEXP (x3, 0);
8912 : operands[1] = x5;
8913 : x7 = XEXP (x3, 1);
8914 : operands[2] = x7;
8915 : x6 = XEXP (x2, 1);
8916 : if (x6 == const_int_rtx[MAX_SAVED_CONST_INT + 0])
8917 : {
8918 : switch (pattern49 (x3))
8919 : {
8920 : case 0:
8921 : if (
8922 : #line 7614 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8923 : (ix86_match_ccmode (insn, CCGOCmode)
8924 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8925 : {
8926 : *pnum_clobbers = 1;
8927 : return 327; /* *addqi_5 */
8928 : }
8929 : break;
8930 :
8931 : case 1:
8932 : if (
8933 : #line 7614 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8934 : (ix86_match_ccmode (insn, CCGOCmode)
8935 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8936 : {
8937 : *pnum_clobbers = 1;
8938 : return 328; /* *addhi_5 */
8939 : }
8940 : break;
8941 :
8942 : case 2:
8943 : if (
8944 : #line 7614 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8945 : (ix86_match_ccmode (insn, CCGOCmode)
8946 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8947 : {
8948 : *pnum_clobbers = 1;
8949 : return 329; /* *addsi_5 */
8950 : }
8951 : break;
8952 :
8953 : case 3:
8954 : if ((
8955 : #line 7614 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8956 : (ix86_match_ccmode (insn, CCGOCmode)
8957 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
8958 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8959 : (TARGET_64BIT)))
8960 : {
8961 : *pnum_clobbers = 1;
8962 : return 330; /* *adddi_5 */
8963 : }
8964 : break;
8965 :
8966 : default:
8967 : break;
8968 : }
8969 : }
8970 : if (GET_MODE (x4) != E_CCCmode
8971 : || GET_MODE (x2) != E_CCCmode
8972 : || !rtx_equal_p (x6, operands[2]))
8973 : return -1;
8974 : switch (pattern49 (x3))
8975 : {
8976 : case 0:
8977 : if (!
8978 : #line 10760 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8979 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))))
8980 : return -1;
8981 : *pnum_clobbers = 1;
8982 : return 571; /* *addqi3_cconly_overflow_2 */
8983 :
8984 : case 1:
8985 : if (!
8986 : #line 10760 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8987 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))))
8988 : return -1;
8989 : *pnum_clobbers = 1;
8990 : return 572; /* *addhi3_cconly_overflow_2 */
8991 :
8992 : case 2:
8993 : if (!
8994 : #line 10760 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8995 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))))
8996 : return -1;
8997 : *pnum_clobbers = 1;
8998 : return 573; /* *addsi3_cconly_overflow_2 */
8999 :
9000 : case 3:
9001 : if (!(
9002 : #line 10760 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9003 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
9004 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9005 : (TARGET_64BIT)))
9006 : return -1;
9007 : *pnum_clobbers = 1;
9008 : return 574; /* *adddi3_cconly_overflow_2 */
9009 :
9010 : default:
9011 : return -1;
9012 : }
9013 :
9014 : case AND:
9015 : x6 = XEXP (x2, 1);
9016 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
9017 : return -1;
9018 : x4 = XEXP (x1, 0);
9019 : if (GET_CODE (x4) != REG
9020 : || REGNO (x4) != 17)
9021 : return -1;
9022 : x5 = XEXP (x3, 0);
9023 : switch (GET_CODE (x5))
9024 : {
9025 : case REG:
9026 : case SUBREG:
9027 : case MEM:
9028 : operands[0] = x5;
9029 : x7 = XEXP (x3, 1);
9030 : operands[1] = x7;
9031 : switch (GET_MODE (x3))
9032 : {
9033 : case E_DImode:
9034 : if (nonimmediate_operand (operands[0], E_DImode)
9035 : && x86_64_szext_general_operand (operands[1], E_DImode)
9036 : &&
9037 : #line 12847 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9038 : (TARGET_64BIT
9039 : && ix86_match_ccmode
9040 : (insn,
9041 : /* If we are going to emit testl instead of testq, and the operands[1]
9042 : constant might have the SImode sign bit set, make sure the sign
9043 : flag isn't tested, because the instruction will set the sign flag
9044 : based on bit 31 rather than bit 63. If it isn't CONST_INT,
9045 : conservatively assume it might have bit 31 set. */
9046 : (satisfies_constraint_Z (operands[1])
9047 : && (!CONST_INT_P (operands[1])
9048 : || val_signbit_known_set_p (SImode, INTVAL (operands[1]))))
9049 : ? CCZmode : CCNOmode)
9050 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
9051 : return 710; /* *testdi_1 */
9052 : break;
9053 :
9054 : case E_QImode:
9055 : if (nonimmediate_operand (operands[0], E_QImode)
9056 : && general_operand (operands[1], E_QImode))
9057 : {
9058 : if (
9059 : #line 12873 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9060 : (ix86_match_ccmode (insn,
9061 : CONST_INT_P (operands[1])
9062 : && INTVAL (operands[1]) >= 0 ? CCNOmode : CCZmode)
9063 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
9064 : return 711; /* *testqi_1_maybe_si */
9065 : if (
9066 : #line 12905 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9067 : (ix86_match_ccmode (insn, CCNOmode)
9068 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
9069 : return 712; /* *testqi_1 */
9070 : }
9071 : break;
9072 :
9073 : case E_HImode:
9074 : if (nonimmediate_operand (operands[0], E_HImode)
9075 : && general_operand (operands[1], E_HImode)
9076 : &&
9077 : #line 12905 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9078 : (ix86_match_ccmode (insn, CCNOmode)
9079 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
9080 : return 713; /* *testhi_1 */
9081 : break;
9082 :
9083 : case E_SImode:
9084 : if (nonimmediate_operand (operands[0], E_SImode)
9085 : && x86_64_general_operand (operands[1], E_SImode)
9086 : &&
9087 : #line 12905 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9088 : (ix86_match_ccmode (insn, CCNOmode)
9089 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
9090 : return 714; /* *testsi_1 */
9091 : break;
9092 :
9093 : default:
9094 : break;
9095 : }
9096 : if (GET_CODE (x5) != SUBREG
9097 : || maybe_ne (SUBREG_BYTE (x5), 0)
9098 : || GET_MODE (x5) != E_QImode)
9099 : return -1;
9100 : x8 = XEXP (x5, 0);
9101 : switch (GET_CODE (x8))
9102 : {
9103 : case ASHIFTRT:
9104 : case LSHIFTRT:
9105 : case SIGN_EXTRACT:
9106 : case ZERO_EXTRACT:
9107 : operands[2] = x8;
9108 : if (GET_MODE (x3) != E_QImode)
9109 : return -1;
9110 : x9 = XEXP (x8, 0);
9111 : operands[0] = x9;
9112 : if (!int248_register_operand (operands[0], E_VOIDmode))
9113 : return -1;
9114 : operands[1] = x7;
9115 : if (general_operand (operands[1], E_QImode))
9116 : {
9117 : switch (GET_MODE (operands[2]))
9118 : {
9119 : case E_HImode:
9120 : if (extract_high_operator (operands[2], E_HImode)
9121 : &&
9122 : #line 12933 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9123 : (ix86_match_ccmode (insn, CCNOmode)))
9124 : return 715; /* *testqi_exthi_1 */
9125 : break;
9126 :
9127 : case E_SImode:
9128 : if (extract_high_operator (operands[2], E_SImode)
9129 : &&
9130 : #line 12933 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9131 : (ix86_match_ccmode (insn, CCNOmode)))
9132 : return 716; /* *testqi_extsi_1 */
9133 : break;
9134 :
9135 : case E_DImode:
9136 : if (extract_high_operator (operands[2], E_DImode)
9137 : && (
9138 : #line 12933 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9139 : (ix86_match_ccmode (insn, CCNOmode)) &&
9140 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9141 : (TARGET_64BIT)))
9142 : return 717; /* *testqi_extdi_1 */
9143 : break;
9144 :
9145 : default:
9146 : break;
9147 : }
9148 : }
9149 : if (GET_CODE (x7) != SUBREG
9150 : || maybe_ne (SUBREG_BYTE (x7), 0)
9151 : || GET_MODE (x7) != E_QImode)
9152 : return -1;
9153 : x10 = XEXP (x7, 0);
9154 : switch (GET_CODE (x10))
9155 : {
9156 : case ASHIFTRT:
9157 : case LSHIFTRT:
9158 : case SIGN_EXTRACT:
9159 : case ZERO_EXTRACT:
9160 : operands[3] = x10;
9161 : x11 = XEXP (x10, 0);
9162 : operands[1] = x11;
9163 : if (!int248_register_operand (operands[1], E_VOIDmode))
9164 : return -1;
9165 : switch (GET_MODE (operands[2]))
9166 : {
9167 : case E_HImode:
9168 : if (!extract_high_operator (operands[2], E_HImode)
9169 : || !extract_high_operator (operands[3], E_HImode)
9170 : || !
9171 : #line 12950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9172 : (ix86_match_ccmode (insn, CCNOmode)))
9173 : return -1;
9174 : return 718; /* *testqi_exthi_2 */
9175 :
9176 : case E_SImode:
9177 : if (!extract_high_operator (operands[2], E_SImode)
9178 : || !extract_high_operator (operands[3], E_SImode)
9179 : || !
9180 : #line 12950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9181 : (ix86_match_ccmode (insn, CCNOmode)))
9182 : return -1;
9183 : return 719; /* *testqi_extsi_2 */
9184 :
9185 : case E_DImode:
9186 : if (!extract_high_operator (operands[2], E_DImode)
9187 : || !extract_high_operator (operands[3], E_DImode)
9188 : || !(
9189 : #line 12950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9190 : (ix86_match_ccmode (insn, CCNOmode)) &&
9191 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9192 : (TARGET_64BIT)))
9193 : return -1;
9194 : return 720; /* *testqi_extdi_2 */
9195 :
9196 : default:
9197 : return -1;
9198 : }
9199 :
9200 : default:
9201 : return -1;
9202 : }
9203 :
9204 : default:
9205 : return -1;
9206 : }
9207 :
9208 : case NOT:
9209 : if (pnum_clobbers == NULL)
9210 : return -1;
9211 : x8 = XEXP (x5, 0);
9212 : operands[1] = x8;
9213 : x7 = XEXP (x3, 1);
9214 : operands[2] = x7;
9215 : switch (GET_MODE (x3))
9216 : {
9217 : case E_SImode:
9218 : if (GET_MODE (x5) != E_SImode
9219 : || !register_operand (operands[1], E_SImode)
9220 : || !nonimmediate_operand (operands[2], E_SImode)
9221 : || !
9222 : #line 14195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9223 : (TARGET_BMI && ix86_match_ccmode (insn, CCNOmode)))
9224 : return -1;
9225 : *pnum_clobbers = 1;
9226 : return 845; /* *andn_si_ccno */
9227 :
9228 : case E_DImode:
9229 : if (GET_MODE (x5) != E_DImode
9230 : || !register_operand (operands[1], E_DImode)
9231 : || !nonimmediate_operand (operands[2], E_DImode)
9232 : || !(
9233 : #line 14195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9234 : (TARGET_BMI && ix86_match_ccmode (insn, CCNOmode)) &&
9235 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9236 : (TARGET_64BIT)))
9237 : return -1;
9238 : *pnum_clobbers = 1;
9239 : return 846; /* *andn_di_ccno */
9240 :
9241 : default:
9242 : return -1;
9243 : }
9244 :
9245 : case NEG:
9246 : if (pnum_clobbers == NULL)
9247 : return -1;
9248 : switch (pattern763 (x3))
9249 : {
9250 : case 0:
9251 : if (!
9252 : #line 22875 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9253 : (TARGET_BMI && ix86_match_ccmode (insn, CCNOmode)))
9254 : return -1;
9255 : *pnum_clobbers = 1;
9256 : return 1608; /* *bmi_blsi_si_ccno */
9257 :
9258 : case 1:
9259 : if (!(
9260 : #line 22875 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9261 : (TARGET_BMI && ix86_match_ccmode (insn, CCNOmode)) &&
9262 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9263 : (TARGET_64BIT)))
9264 : return -1;
9265 : *pnum_clobbers = 1;
9266 : return 1609; /* *bmi_blsi_di_ccno */
9267 :
9268 : default:
9269 : return -1;
9270 : }
9271 :
9272 : default:
9273 : return -1;
9274 : }
9275 :
9276 : case ZERO_EXTRACT:
9277 : switch (pattern48 (x1))
9278 : {
9279 : case 0:
9280 : if (!
9281 : #line 12985 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9282 : (/* Ensure that resulting mask is zero or sign extended operand. */
9283 : INTVAL (operands[4]) >= 0
9284 : && ((INTVAL (operands[3]) > 0
9285 : && INTVAL (operands[3]) + INTVAL (operands[4]) <= 32)
9286 : || (HImode == DImode
9287 : && INTVAL (operands[3]) > 32
9288 : && INTVAL (operands[3]) + INTVAL (operands[4]) == 64))
9289 : && ix86_match_ccmode (insn,
9290 : /* If zero_extract mode precision is the same
9291 : as len, the SF of the zero_extract
9292 : comparison will be the most significant
9293 : extracted bit, but this could be matched
9294 : after splitting only for pos 0 len all bits
9295 : trivial extractions. Require CCZmode. */
9296 : (GET_MODE_PRECISION (HImode)
9297 : == INTVAL (operands[3]))
9298 : /* Otherwise, require CCZmode if we'd use a mask
9299 : with the most significant bit set and can't
9300 : widen it to wider mode. *testdi_1 also
9301 : requires CCZmode if the mask has bit
9302 : 31 set and all bits above it clear. */
9303 : || (INTVAL (operands[3]) + INTVAL (operands[4])
9304 : >= 32)
9305 : /* We can't widen also if val is not a REG. */
9306 : || (INTVAL (operands[3]) + INTVAL (operands[4])
9307 : == GET_MODE_PRECISION (GET_MODE (operands[2]))
9308 : && !register_operand (operands[2],
9309 : GET_MODE (operands[2])))
9310 : /* And we shouldn't widen if
9311 : TARGET_PARTIAL_REG_STALL. */
9312 : || (TARGET_PARTIAL_REG_STALL
9313 : && (INTVAL (operands[3]) + INTVAL (operands[4])
9314 : >= (paradoxical_subreg_p (operands[2])
9315 : && (GET_MODE_CLASS
9316 : (GET_MODE (SUBREG_REG (operands[2])))
9317 : == MODE_INT)
9318 : ? GET_MODE_PRECISION
9319 : (GET_MODE (SUBREG_REG (operands[2])))
9320 : : GET_MODE_PRECISION
9321 : (GET_MODE (operands[2])))))
9322 : ? CCZmode : CCNOmode)))
9323 : return -1;
9324 : return 722; /* *testqi_ext_3 */
9325 :
9326 : case 1:
9327 : if (!
9328 : #line 12985 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9329 : (/* Ensure that resulting mask is zero or sign extended operand. */
9330 : INTVAL (operands[4]) >= 0
9331 : && ((INTVAL (operands[3]) > 0
9332 : && INTVAL (operands[3]) + INTVAL (operands[4]) <= 32)
9333 : || (SImode == DImode
9334 : && INTVAL (operands[3]) > 32
9335 : && INTVAL (operands[3]) + INTVAL (operands[4]) == 64))
9336 : && ix86_match_ccmode (insn,
9337 : /* If zero_extract mode precision is the same
9338 : as len, the SF of the zero_extract
9339 : comparison will be the most significant
9340 : extracted bit, but this could be matched
9341 : after splitting only for pos 0 len all bits
9342 : trivial extractions. Require CCZmode. */
9343 : (GET_MODE_PRECISION (SImode)
9344 : == INTVAL (operands[3]))
9345 : /* Otherwise, require CCZmode if we'd use a mask
9346 : with the most significant bit set and can't
9347 : widen it to wider mode. *testdi_1 also
9348 : requires CCZmode if the mask has bit
9349 : 31 set and all bits above it clear. */
9350 : || (INTVAL (operands[3]) + INTVAL (operands[4])
9351 : >= 32)
9352 : /* We can't widen also if val is not a REG. */
9353 : || (INTVAL (operands[3]) + INTVAL (operands[4])
9354 : == GET_MODE_PRECISION (GET_MODE (operands[2]))
9355 : && !register_operand (operands[2],
9356 : GET_MODE (operands[2])))
9357 : /* And we shouldn't widen if
9358 : TARGET_PARTIAL_REG_STALL. */
9359 : || (TARGET_PARTIAL_REG_STALL
9360 : && (INTVAL (operands[3]) + INTVAL (operands[4])
9361 : >= (paradoxical_subreg_p (operands[2])
9362 : && (GET_MODE_CLASS
9363 : (GET_MODE (SUBREG_REG (operands[2])))
9364 : == MODE_INT)
9365 : ? GET_MODE_PRECISION
9366 : (GET_MODE (SUBREG_REG (operands[2])))
9367 : : GET_MODE_PRECISION
9368 : (GET_MODE (operands[2])))))
9369 : ? CCZmode : CCNOmode)))
9370 : return -1;
9371 : return 723; /* *testqi_ext_3 */
9372 :
9373 : case 2:
9374 : if (!(
9375 : #line 12985 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9376 : (/* Ensure that resulting mask is zero or sign extended operand. */
9377 : INTVAL (operands[4]) >= 0
9378 : && ((INTVAL (operands[3]) > 0
9379 : && INTVAL (operands[3]) + INTVAL (operands[4]) <= 32)
9380 : || (DImode == DImode
9381 : && INTVAL (operands[3]) > 32
9382 : && INTVAL (operands[3]) + INTVAL (operands[4]) == 64))
9383 : && ix86_match_ccmode (insn,
9384 : /* If zero_extract mode precision is the same
9385 : as len, the SF of the zero_extract
9386 : comparison will be the most significant
9387 : extracted bit, but this could be matched
9388 : after splitting only for pos 0 len all bits
9389 : trivial extractions. Require CCZmode. */
9390 : (GET_MODE_PRECISION (DImode)
9391 : == INTVAL (operands[3]))
9392 : /* Otherwise, require CCZmode if we'd use a mask
9393 : with the most significant bit set and can't
9394 : widen it to wider mode. *testdi_1 also
9395 : requires CCZmode if the mask has bit
9396 : 31 set and all bits above it clear. */
9397 : || (INTVAL (operands[3]) + INTVAL (operands[4])
9398 : >= 32)
9399 : /* We can't widen also if val is not a REG. */
9400 : || (INTVAL (operands[3]) + INTVAL (operands[4])
9401 : == GET_MODE_PRECISION (GET_MODE (operands[2]))
9402 : && !register_operand (operands[2],
9403 : GET_MODE (operands[2])))
9404 : /* And we shouldn't widen if
9405 : TARGET_PARTIAL_REG_STALL. */
9406 : || (TARGET_PARTIAL_REG_STALL
9407 : && (INTVAL (operands[3]) + INTVAL (operands[4])
9408 : >= (paradoxical_subreg_p (operands[2])
9409 : && (GET_MODE_CLASS
9410 : (GET_MODE (SUBREG_REG (operands[2])))
9411 : == MODE_INT)
9412 : ? GET_MODE_PRECISION
9413 : (GET_MODE (SUBREG_REG (operands[2])))
9414 : : GET_MODE_PRECISION
9415 : (GET_MODE (operands[2])))))
9416 : ? CCZmode : CCNOmode)) &&
9417 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9418 : (TARGET_64BIT)))
9419 : return -1;
9420 : return 724; /* *testqi_ext_3 */
9421 :
9422 : default:
9423 : return -1;
9424 : }
9425 :
9426 : case IOR:
9427 : switch (pattern51 (x1, pnum_clobbers))
9428 : {
9429 : case 0:
9430 : if (!
9431 : #line 14819 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9432 : (ix86_match_ccmode (insn, CCNOmode)
9433 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9434 : return -1;
9435 : *pnum_clobbers = 1;
9436 : return 916; /* *iorqi_3 */
9437 :
9438 : case 1:
9439 : if (!
9440 : #line 14819 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9441 : (ix86_match_ccmode (insn, CCNOmode)
9442 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9443 : return -1;
9444 : *pnum_clobbers = 1;
9445 : return 918; /* *iorhi_3 */
9446 :
9447 : case 2:
9448 : if (!
9449 : #line 14819 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9450 : (ix86_match_ccmode (insn, CCNOmode)
9451 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9452 : return -1;
9453 : *pnum_clobbers = 1;
9454 : return 920; /* *iorsi_3 */
9455 :
9456 : case 3:
9457 : if (!(
9458 : #line 14819 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9459 : (ix86_match_ccmode (insn, CCNOmode)
9460 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
9461 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9462 : (TARGET_64BIT)))
9463 : return -1;
9464 : *pnum_clobbers = 1;
9465 : return 922; /* *iordi_3 */
9466 :
9467 : default:
9468 : return -1;
9469 : }
9470 :
9471 : case XOR:
9472 : switch (pattern51 (x1, pnum_clobbers))
9473 : {
9474 : case 0:
9475 : if (!
9476 : #line 14819 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9477 : (ix86_match_ccmode (insn, CCNOmode)
9478 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9479 : return -1;
9480 : *pnum_clobbers = 1;
9481 : return 917; /* *xorqi_3 */
9482 :
9483 : case 1:
9484 : if (!
9485 : #line 14819 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9486 : (ix86_match_ccmode (insn, CCNOmode)
9487 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9488 : return -1;
9489 : *pnum_clobbers = 1;
9490 : return 919; /* *xorhi_3 */
9491 :
9492 : case 2:
9493 : if (!
9494 : #line 14819 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9495 : (ix86_match_ccmode (insn, CCNOmode)
9496 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9497 : return -1;
9498 : *pnum_clobbers = 1;
9499 : return 921; /* *xorsi_3 */
9500 :
9501 : case 3:
9502 : if (!(
9503 : #line 14819 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9504 : (ix86_match_ccmode (insn, CCNOmode)
9505 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
9506 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9507 : (TARGET_64BIT)))
9508 : return -1;
9509 : *pnum_clobbers = 1;
9510 : return 923; /* *xordi_3 */
9511 :
9512 : default:
9513 : return -1;
9514 : }
9515 :
9516 : case ASHIFT:
9517 : switch (pattern52 (x1, pnum_clobbers))
9518 : {
9519 : case 0:
9520 : if (!
9521 : #line 17402 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9522 : ((optimize_function_for_size_p (cfun)
9523 : || !TARGET_PARTIAL_FLAG_REG_STALL
9524 : || operands[2] == const1_rtx)
9525 : && ix86_match_ccmode (insn, CCGOCmode)))
9526 : return -1;
9527 : *pnum_clobbers = 1;
9528 : return 1147; /* *ashlqi3_cconly */
9529 :
9530 : case 1:
9531 : if (!
9532 : #line 17402 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9533 : ((optimize_function_for_size_p (cfun)
9534 : || !TARGET_PARTIAL_FLAG_REG_STALL
9535 : || operands[2] == const1_rtx)
9536 : && ix86_match_ccmode (insn, CCGOCmode)))
9537 : return -1;
9538 : *pnum_clobbers = 1;
9539 : return 1148; /* *ashlhi3_cconly */
9540 :
9541 : case 2:
9542 : if (!
9543 : #line 17402 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9544 : ((optimize_function_for_size_p (cfun)
9545 : || !TARGET_PARTIAL_FLAG_REG_STALL
9546 : || operands[2] == const1_rtx)
9547 : && ix86_match_ccmode (insn, CCGOCmode)))
9548 : return -1;
9549 : *pnum_clobbers = 1;
9550 : return 1149; /* *ashlsi3_cconly */
9551 :
9552 : case 3:
9553 : if (!(
9554 : #line 17402 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9555 : ((optimize_function_for_size_p (cfun)
9556 : || !TARGET_PARTIAL_FLAG_REG_STALL
9557 : || operands[2] == const1_rtx)
9558 : && ix86_match_ccmode (insn, CCGOCmode)) &&
9559 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9560 : (TARGET_64BIT)))
9561 : return -1;
9562 : *pnum_clobbers = 1;
9563 : return 1150; /* *ashldi3_cconly */
9564 :
9565 : default:
9566 : return -1;
9567 : }
9568 :
9569 : case LSHIFTRT:
9570 : switch (pattern52 (x1, pnum_clobbers))
9571 : {
9572 : case 0:
9573 : if (!
9574 : #line 18695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9575 : ((optimize_function_for_size_p (cfun)
9576 : || !TARGET_PARTIAL_FLAG_REG_STALL
9577 : || operands[2] == const1_rtx)
9578 : && ix86_match_ccmode (insn, CCGOCmode)))
9579 : return -1;
9580 : *pnum_clobbers = 1;
9581 : return 1262; /* *lshrqi3_cconly */
9582 :
9583 : case 1:
9584 : if (!
9585 : #line 18695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9586 : ((optimize_function_for_size_p (cfun)
9587 : || !TARGET_PARTIAL_FLAG_REG_STALL
9588 : || operands[2] == const1_rtx)
9589 : && ix86_match_ccmode (insn, CCGOCmode)))
9590 : return -1;
9591 : *pnum_clobbers = 1;
9592 : return 1264; /* *lshrhi3_cconly */
9593 :
9594 : case 2:
9595 : if (!
9596 : #line 18695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9597 : ((optimize_function_for_size_p (cfun)
9598 : || !TARGET_PARTIAL_FLAG_REG_STALL
9599 : || operands[2] == const1_rtx)
9600 : && ix86_match_ccmode (insn, CCGOCmode)))
9601 : return -1;
9602 : *pnum_clobbers = 1;
9603 : return 1266; /* *lshrsi3_cconly */
9604 :
9605 : case 3:
9606 : if (!(
9607 : #line 18695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9608 : ((optimize_function_for_size_p (cfun)
9609 : || !TARGET_PARTIAL_FLAG_REG_STALL
9610 : || operands[2] == const1_rtx)
9611 : && ix86_match_ccmode (insn, CCGOCmode)) &&
9612 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9613 : (TARGET_64BIT)))
9614 : return -1;
9615 : *pnum_clobbers = 1;
9616 : return 1268; /* *lshrdi3_cconly */
9617 :
9618 : default:
9619 : return -1;
9620 : }
9621 :
9622 : case ASHIFTRT:
9623 : switch (pattern52 (x1, pnum_clobbers))
9624 : {
9625 : case 0:
9626 : if (!
9627 : #line 18695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9628 : ((optimize_function_for_size_p (cfun)
9629 : || !TARGET_PARTIAL_FLAG_REG_STALL
9630 : || operands[2] == const1_rtx)
9631 : && ix86_match_ccmode (insn, CCGOCmode)))
9632 : return -1;
9633 : *pnum_clobbers = 1;
9634 : return 1263; /* *ashrqi3_cconly */
9635 :
9636 : case 1:
9637 : if (!
9638 : #line 18695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9639 : ((optimize_function_for_size_p (cfun)
9640 : || !TARGET_PARTIAL_FLAG_REG_STALL
9641 : || operands[2] == const1_rtx)
9642 : && ix86_match_ccmode (insn, CCGOCmode)))
9643 : return -1;
9644 : *pnum_clobbers = 1;
9645 : return 1265; /* *ashrhi3_cconly */
9646 :
9647 : case 2:
9648 : if (!
9649 : #line 18695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9650 : ((optimize_function_for_size_p (cfun)
9651 : || !TARGET_PARTIAL_FLAG_REG_STALL
9652 : || operands[2] == const1_rtx)
9653 : && ix86_match_ccmode (insn, CCGOCmode)))
9654 : return -1;
9655 : *pnum_clobbers = 1;
9656 : return 1267; /* *ashrsi3_cconly */
9657 :
9658 : case 3:
9659 : if (!(
9660 : #line 18695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9661 : ((optimize_function_for_size_p (cfun)
9662 : || !TARGET_PARTIAL_FLAG_REG_STALL
9663 : || operands[2] == const1_rtx)
9664 : && ix86_match_ccmode (insn, CCGOCmode)) &&
9665 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9666 : (TARGET_64BIT)))
9667 : return -1;
9668 : *pnum_clobbers = 1;
9669 : return 1269; /* *ashrdi3_cconly */
9670 :
9671 : default:
9672 : return -1;
9673 : }
9674 :
9675 : default:
9676 : return -1;
9677 : }
9678 : }
9679 :
9680 : int
9681 : recog_110 (rtx x1 ATTRIBUTE_UNUSED,
9682 : rtx_insn *insn ATTRIBUTE_UNUSED,
9683 : int *pnum_clobbers ATTRIBUTE_UNUSED)
9684 : {
9685 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
9686 : rtx x2, x3, x4, x5;
9687 : int res ATTRIBUTE_UNUSED;
9688 : x2 = XEXP (x1, 1);
9689 : operands[1] = x2;
9690 : x3 = XEXP (x2, 0);
9691 : if (GET_CODE (x3) != REG
9692 : || REGNO (x3) != 17)
9693 : return -1;
9694 : x4 = XEXP (x2, 1);
9695 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
9696 : return -1;
9697 : x5 = XEXP (x1, 0);
9698 : operands[0] = x5;
9699 : switch (GET_MODE (operands[0]))
9700 : {
9701 : case E_SImode:
9702 : if (!register_operand (operands[0], E_SImode)
9703 : || !ix86_comparison_operator (operands[1], E_SImode))
9704 : return -1;
9705 : if (
9706 : #line 20471 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9707 : (TARGET_APX_ZU && !TARGET_DISABLE_SETZUCC))
9708 : return 1475; /* *setcc_si_zu */
9709 : if (pnum_clobbers != NULL
9710 : &&
9711 : #line 20496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9712 : (!TARGET_PARTIAL_REG_STALL
9713 : && TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)))
9714 : {
9715 : *pnum_clobbers = 1;
9716 : return 1479; /* *setcc_si_1_and */
9717 : }
9718 : if (!
9719 : #line 20513 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9720 : ((!TARGET_APX_ZU || TARGET_DISABLE_SETZUCC) && !TARGET_PARTIAL_REG_STALL
9721 : && (!TARGET_ZERO_EXTEND_WITH_AND || optimize_function_for_size_p (cfun))))
9722 : return -1;
9723 : return 1481; /* *setcc_si_1_movzbl */
9724 :
9725 : case E_DImode:
9726 : if (!register_operand (operands[0], E_DImode)
9727 : || !ix86_comparison_operator (operands[1], E_DImode))
9728 : return -1;
9729 : if ((
9730 : #line 20471 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9731 : (TARGET_APX_ZU && !TARGET_DISABLE_SETZUCC) &&
9732 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9733 : (TARGET_64BIT)))
9734 : return 1476; /* *setcc_di_zu */
9735 : if (!
9736 : #line 20479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9737 : ((!TARGET_APX_ZU || TARGET_DISABLE_SETZUCC)
9738 : && TARGET_64BIT && !TARGET_PARTIAL_REG_STALL))
9739 : return -1;
9740 : return 1477; /* *setcc_di_1 */
9741 :
9742 : default:
9743 : return -1;
9744 : }
9745 : }
9746 :
9747 : int
9748 : recog_113 (rtx x1 ATTRIBUTE_UNUSED,
9749 : rtx_insn *insn ATTRIBUTE_UNUSED,
9750 : int *pnum_clobbers ATTRIBUTE_UNUSED)
9751 : {
9752 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
9753 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
9754 : rtx x10, x11, x12, x13;
9755 : int res ATTRIBUTE_UNUSED;
9756 : x2 = XEXP (x1, 0);
9757 : operands[0] = x2;
9758 : x3 = XEXP (x1, 1);
9759 : switch (XINT (x3, 1))
9760 : {
9761 : case 46:
9762 : if (pattern301 (x3) != 0
9763 : || !register_operand (operands[0], E_SImode))
9764 : return -1;
9765 : x4 = XVECEXP (x3, 0, 1);
9766 : operands[2] = x4;
9767 : if (!register_operand (operands[2], E_SImode)
9768 : || !
9769 : #line 20567 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9770 : (ix86_pre_reload_split ()))
9771 : return -1;
9772 : return 1484; /* *setcc_si_slp */
9773 :
9774 : case 99:
9775 : if (pnum_clobbers == NULL)
9776 : return -1;
9777 : x5 = XVECEXP (x3, 0, 0);
9778 : operands[1] = x5;
9779 : x4 = XVECEXP (x3, 0, 1);
9780 : operands[2] = x4;
9781 : switch (GET_MODE (operands[0]))
9782 : {
9783 : case E_SImode:
9784 : if (pattern789 (x3,
9785 : E_SImode) != 0
9786 : || !
9787 : #line 22760 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9788 : (TARGET_BMI))
9789 : return -1;
9790 : *pnum_clobbers = 1;
9791 : return 1598; /* bmi_bextr_si */
9792 :
9793 : case E_DImode:
9794 : if (pattern789 (x3,
9795 : E_DImode) != 0
9796 : || !(
9797 : #line 22760 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9798 : (TARGET_BMI) &&
9799 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9800 : (TARGET_64BIT)))
9801 : return -1;
9802 : *pnum_clobbers = 1;
9803 : return 1599; /* bmi_bextr_di */
9804 :
9805 : default:
9806 : return -1;
9807 : }
9808 :
9809 : case 100:
9810 : switch (pattern302 (x3))
9811 : {
9812 : case 0:
9813 : if (!
9814 : #line 23153 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9815 : (TARGET_BMI2))
9816 : return -1;
9817 : return 1632; /* bmi2_pdep_si3 */
9818 :
9819 : case 1:
9820 : if (!(
9821 : #line 23153 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9822 : (TARGET_BMI2) &&
9823 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9824 : (TARGET_64BIT)))
9825 : return -1;
9826 : return 1633; /* bmi2_pdep_di3 */
9827 :
9828 : default:
9829 : return -1;
9830 : }
9831 :
9832 : case 101:
9833 : switch (pattern302 (x3))
9834 : {
9835 : case 0:
9836 : if (!
9837 : #line 23164 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9838 : (TARGET_BMI2))
9839 : return -1;
9840 : return 1634; /* bmi2_pext_si3 */
9841 :
9842 : case 1:
9843 : if (!(
9844 : #line 23164 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9845 : (TARGET_BMI2) &&
9846 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9847 : (TARGET_64BIT)))
9848 : return -1;
9849 : return 1635; /* bmi2_pext_di3 */
9850 :
9851 : default:
9852 : return -1;
9853 : }
9854 :
9855 : case 94:
9856 : if (pnum_clobbers == NULL
9857 : || GET_MODE (x3) != E_CCZmode
9858 : || !flags_reg_operand (operands[0], E_CCZmode))
9859 : return -1;
9860 : x5 = XVECEXP (x3, 0, 0);
9861 : operands[1] = x5;
9862 : x4 = XVECEXP (x3, 0, 1);
9863 : operands[2] = x4;
9864 : switch (GET_MODE (operands[1]))
9865 : {
9866 : case E_SImode:
9867 : if (!memory_operand (operands[1], E_SImode)
9868 : || !memory_operand (operands[2], E_SImode)
9869 : || !
9870 : #line 1439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9871 : (ptr_mode == SImode))
9872 : return -1;
9873 : *pnum_clobbers = 1;
9874 : return 1934; /* stack_protect_test_1_si */
9875 :
9876 : case E_DImode:
9877 : if (!memory_operand (operands[1], E_DImode)
9878 : || !memory_operand (operands[2], E_DImode)
9879 : || !
9880 : #line 1439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9881 : (ptr_mode == DImode))
9882 : return -1;
9883 : *pnum_clobbers = 1;
9884 : return 1935; /* stack_protect_test_1_di */
9885 :
9886 : default:
9887 : return -1;
9888 : }
9889 :
9890 : case 96:
9891 : if (GET_MODE (x3) != E_SImode
9892 : || !register_operand (operands[0], E_SImode))
9893 : return -1;
9894 : x5 = XVECEXP (x3, 0, 0);
9895 : operands[1] = x5;
9896 : if (!register_operand (operands[1], E_SImode))
9897 : return -1;
9898 : x4 = XVECEXP (x3, 0, 1);
9899 : operands[2] = x4;
9900 : switch (GET_MODE (operands[2]))
9901 : {
9902 : case E_QImode:
9903 : if (!nonimmediate_operand (operands[2], E_QImode)
9904 : || !
9905 : #line 30435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9906 : (TARGET_CRC32))
9907 : return -1;
9908 : return 1942; /* sse4_2_crc32qi */
9909 :
9910 : case E_HImode:
9911 : if (!nonimmediate_operand (operands[2], E_HImode)
9912 : || !
9913 : #line 30435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9914 : (TARGET_CRC32))
9915 : return -1;
9916 : return 1943; /* sse4_2_crc32hi */
9917 :
9918 : case E_SImode:
9919 : if (!nonimmediate_operand (operands[2], E_SImode)
9920 : || !
9921 : #line 30435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9922 : (TARGET_CRC32))
9923 : return -1;
9924 : return 1944; /* sse4_2_crc32si */
9925 :
9926 : default:
9927 : return -1;
9928 : }
9929 :
9930 : case 179:
9931 : x5 = XVECEXP (x3, 0, 0);
9932 : switch (GET_CODE (x5))
9933 : {
9934 : case UNSPEC:
9935 : switch (XVECLEN (x5, 0))
9936 : {
9937 : case 3:
9938 : if (XINT (x5, 1) != 60
9939 : || GET_MODE (x5) != E_SImode
9940 : || !register_operand (operands[0], E_SImode)
9941 : || GET_MODE (x3) != E_SImode)
9942 : return -1;
9943 : x6 = XVECEXP (x5, 0, 0);
9944 : operands[1] = x6;
9945 : if (!register_operand (operands[1], E_V32HFmode))
9946 : return -1;
9947 : x7 = XVECEXP (x5, 0, 1);
9948 : operands[2] = x7;
9949 : if (!nonimmediate_operand (operands[2], E_V32HFmode))
9950 : return -1;
9951 : x8 = XVECEXP (x5, 0, 2);
9952 : operands[3] = x8;
9953 : if (!const_0_to_31_operand (operands[3], E_SImode))
9954 : return -1;
9955 : x4 = XVECEXP (x3, 0, 1);
9956 : operands[4] = x4;
9957 : if (!const48_operand (operands[4], E_SImode)
9958 : || !(
9959 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
9960 : (TARGET_AVX512F) && (
9961 : #line 4681 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9962 : (TARGET_AVX512F && (V32HFmode == V16SFmode
9963 : || V32HFmode == V8DFmode
9964 : || V32HFmode == V8DImode
9965 : || V32HFmode == V16SImode
9966 : || V32HFmode == V32HFmode)) &&
9967 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9968 : (TARGET_AVX512FP16))))
9969 : return -1;
9970 : return 3333; /* avx512bw_cmpv32hf3_round */
9971 :
9972 : case 1:
9973 : x4 = XVECEXP (x3, 0, 1);
9974 : operands[2] = x4;
9975 : switch (XINT (x5, 1))
9976 : {
9977 : case 157:
9978 : switch (pattern888 (x3))
9979 : {
9980 : case 0:
9981 : if (!(
9982 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
9983 : (TARGET_AVX512F) &&
9984 : #line 8215 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9985 : (TARGET_AVX512FP16)))
9986 : return -1;
9987 : return 4591; /* avx512fp16_vcvtsh2usi_round */
9988 :
9989 : case 1:
9990 : if (!
9991 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
9992 : (TARGET_AVX512F))
9993 : return -1;
9994 : return 4951; /* avx512f_vcvtss2usi_round */
9995 :
9996 : case 2:
9997 : if (!
9998 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
9999 : (TARGET_AVX512F))
10000 : return -1;
10001 : return 4963; /* avx512f_vcvtsd2usi_round */
10002 :
10003 : case 3:
10004 : if (!(
10005 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10006 : (TARGET_AVX512F) && (
10007 : #line 8215 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10008 : (TARGET_AVX512FP16) &&
10009 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10010 : (TARGET_64BIT))))
10011 : return -1;
10012 : return 4595; /* avx512fp16_vcvtsh2usiq_round */
10013 :
10014 : case 4:
10015 : if (!(
10016 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10017 : (TARGET_AVX512F) && (
10018 : #line 9415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10019 : (TARGET_AVX512F) &&
10020 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10021 : (TARGET_64BIT))))
10022 : return -1;
10023 : return 4953; /* avx512f_vcvtss2usiq_round */
10024 :
10025 : case 5:
10026 : if (!(
10027 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10028 : (TARGET_AVX512F) && (
10029 : #line 9451 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10030 : (TARGET_AVX512F) &&
10031 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10032 : (TARGET_64BIT))))
10033 : return -1;
10034 : return 4965; /* avx512f_vcvtsd2usiq_round */
10035 :
10036 : default:
10037 : return -1;
10038 : }
10039 :
10040 : case 47:
10041 : switch (pattern888 (x3))
10042 : {
10043 : case 0:
10044 : if (!(
10045 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10046 : (TARGET_AVX512F) &&
10047 : #line 8215 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10048 : (TARGET_AVX512FP16)))
10049 : return -1;
10050 : return 4593; /* avx512fp16_vcvtsh2si_round */
10051 :
10052 : case 1:
10053 : if (!(
10054 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10055 : (TARGET_AVX512F) &&
10056 : #line 8943 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10057 : (TARGET_SSE)))
10058 : return -1;
10059 : return 4840; /* sse_cvtss2si_round */
10060 :
10061 : case 2:
10062 : if (!(
10063 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10064 : (TARGET_AVX512F) &&
10065 : #line 9487 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10066 : (TARGET_SSE2)))
10067 : return -1;
10068 : return 4975; /* sse2_cvtsd2si_round */
10069 :
10070 : case 3:
10071 : if (!(
10072 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10073 : (TARGET_AVX512F) && (
10074 : #line 8215 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10075 : (TARGET_AVX512FP16) &&
10076 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10077 : (TARGET_64BIT))))
10078 : return -1;
10079 : return 4597; /* avx512fp16_vcvtsh2siq_round */
10080 :
10081 : case 4:
10082 : if (!(
10083 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10084 : (TARGET_AVX512F) && (
10085 : #line 8943 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10086 : (TARGET_SSE) &&
10087 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10088 : (TARGET_64BIT))))
10089 : return -1;
10090 : return 4842; /* sse_cvtss2siq_round */
10091 :
10092 : case 5:
10093 : if (!(
10094 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10095 : (TARGET_AVX512F) && (
10096 : #line 9487 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10097 : (TARGET_SSE2) &&
10098 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10099 : (TARGET_64BIT))))
10100 : return -1;
10101 : return 4977; /* sse2_cvtsd2siq_round */
10102 :
10103 : default:
10104 : return -1;
10105 : }
10106 :
10107 : case 173:
10108 : switch (pattern890 (x3))
10109 : {
10110 : case 0:
10111 : if (!(
10112 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10113 : (TARGET_AVX512F) &&
10114 : #line 8380 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10115 : (TARGET_AVX512FP16)))
10116 : return -1;
10117 : return 4743; /* unspec_avx512fp16_fix_truncsi2_round */
10118 :
10119 : case 1:
10120 : if (!(
10121 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10122 : (TARGET_AVX512F) &&
10123 : #line 8971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10124 : (TARGET_SSE)))
10125 : return -1;
10126 : return 4846; /* unspec_sse_cvttss2si_round */
10127 :
10128 : case 2:
10129 : if (!(
10130 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10131 : (TARGET_AVX512F) &&
10132 : #line 9516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10133 : (TARGET_SSE2)))
10134 : return -1;
10135 : return 4981; /* unspec_sse2_cvttsd2si_round */
10136 :
10137 : case 3:
10138 : if (!(
10139 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10140 : (TARGET_AVX512F) && (
10141 : #line 8380 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10142 : (TARGET_AVX512FP16) &&
10143 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10144 : (TARGET_64BIT))))
10145 : return -1;
10146 : return 4747; /* unspec_avx512fp16_fix_truncdi2_round */
10147 :
10148 : case 4:
10149 : if (!(
10150 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10151 : (TARGET_AVX512F) && (
10152 : #line 8971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10153 : (TARGET_SSE) &&
10154 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10155 : (TARGET_64BIT))))
10156 : return -1;
10157 : return 4848; /* unspec_sse_cvttss2siq_round */
10158 :
10159 : case 5:
10160 : if (!(
10161 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10162 : (TARGET_AVX512F) && (
10163 : #line 9516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10164 : (TARGET_SSE2) &&
10165 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10166 : (TARGET_64BIT))))
10167 : return -1;
10168 : return 4983; /* unspec_sse2_cvttsd2siq_round */
10169 :
10170 : default:
10171 : return -1;
10172 : }
10173 :
10174 : case 174:
10175 : switch (pattern890 (x3))
10176 : {
10177 : case 0:
10178 : if (!(
10179 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10180 : (TARGET_AVX512F) &&
10181 : #line 8380 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10182 : (TARGET_AVX512FP16)))
10183 : return -1;
10184 : return 4745; /* unspec_avx512fp16_fixuns_truncsi2_round */
10185 :
10186 : case 1:
10187 : if (!
10188 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10189 : (TARGET_AVX512F))
10190 : return -1;
10191 : return 4955; /* unspec_avx512f_vcvttss2usi_round */
10192 :
10193 : case 2:
10194 : if (!
10195 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10196 : (TARGET_AVX512F))
10197 : return -1;
10198 : return 4967; /* unspec_avx512f_vcvttsd2usi_round */
10199 :
10200 : case 3:
10201 : if (!(
10202 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10203 : (TARGET_AVX512F) && (
10204 : #line 8380 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10205 : (TARGET_AVX512FP16) &&
10206 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10207 : (TARGET_64BIT))))
10208 : return -1;
10209 : return 4749; /* unspec_avx512fp16_fixuns_truncdi2_round */
10210 :
10211 : case 4:
10212 : if (!(
10213 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10214 : (TARGET_AVX512F) && (
10215 : #line 9426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10216 : (TARGET_AVX512F) &&
10217 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10218 : (TARGET_64BIT))))
10219 : return -1;
10220 : return 4957; /* unspec_avx512f_vcvttss2usiq_round */
10221 :
10222 : case 5:
10223 : if (!(
10224 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10225 : (TARGET_AVX512F) && (
10226 : #line 9462 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10227 : (TARGET_AVX512F) &&
10228 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10229 : (TARGET_64BIT))))
10230 : return -1;
10231 : return 4969; /* unspec_avx512f_vcvttsd2usiq_round */
10232 :
10233 : default:
10234 : return -1;
10235 : }
10236 :
10237 : case 276:
10238 : switch (pattern892 (x3))
10239 : {
10240 : case 0:
10241 : if (!(
10242 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10243 : (TARGET_AVX512F) &&
10244 : #line 33688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10245 : (TARGET_AVX10_2)))
10246 : return -1;
10247 : return 10987; /* avx10_2_vcvttsd2sissi_round */
10248 :
10249 : case 1:
10250 : if (!(
10251 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10252 : (TARGET_AVX512F) &&
10253 : #line 33701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10254 : (TARGET_AVX10_2)))
10255 : return -1;
10256 : return 10995; /* avx10_2_vcvttss2sissi_round */
10257 :
10258 : case 2:
10259 : if (!(
10260 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10261 : (TARGET_AVX512F) && (
10262 : #line 33688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10263 : (TARGET_AVX10_2) &&
10264 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10265 : (TARGET_64BIT))))
10266 : return -1;
10267 : return 10991; /* avx10_2_vcvttsd2sisdi_round */
10268 :
10269 : case 3:
10270 : if (!(
10271 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10272 : (TARGET_AVX512F) && (
10273 : #line 33701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10274 : (TARGET_AVX10_2) &&
10275 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10276 : (TARGET_64BIT))))
10277 : return -1;
10278 : return 10999; /* avx10_2_vcvttss2sisdi_round */
10279 :
10280 : default:
10281 : return -1;
10282 : }
10283 :
10284 : case 277:
10285 : switch (pattern892 (x3))
10286 : {
10287 : case 0:
10288 : if (!(
10289 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10290 : (TARGET_AVX512F) &&
10291 : #line 33688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10292 : (TARGET_AVX10_2)))
10293 : return -1;
10294 : return 10989; /* avx10_2_vcvttsd2usissi_round */
10295 :
10296 : case 1:
10297 : if (!(
10298 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10299 : (TARGET_AVX512F) &&
10300 : #line 33701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10301 : (TARGET_AVX10_2)))
10302 : return -1;
10303 : return 10997; /* avx10_2_vcvttss2usissi_round */
10304 :
10305 : case 2:
10306 : if (!(
10307 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10308 : (TARGET_AVX512F) && (
10309 : #line 33688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10310 : (TARGET_AVX10_2) &&
10311 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10312 : (TARGET_64BIT))))
10313 : return -1;
10314 : return 10993; /* avx10_2_vcvttsd2usisdi_round */
10315 :
10316 : case 3:
10317 : if (!(
10318 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10319 : (TARGET_AVX512F) && (
10320 : #line 33701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10321 : (TARGET_AVX10_2) &&
10322 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10323 : (TARGET_64BIT))))
10324 : return -1;
10325 : return 11001; /* avx10_2_vcvttss2usisdi_round */
10326 :
10327 : default:
10328 : return -1;
10329 : }
10330 :
10331 : default:
10332 : return -1;
10333 : }
10334 :
10335 : default:
10336 : return -1;
10337 : }
10338 :
10339 : case AND:
10340 : if (GET_MODE (x5) != E_SImode)
10341 : return -1;
10342 : x9 = XEXP (x5, 0);
10343 : if (GET_CODE (x9) != UNSPEC
10344 : || XVECLEN (x9, 0) != 3
10345 : || XINT (x9, 1) != 60
10346 : || GET_MODE (x9) != E_SImode
10347 : || !register_operand (operands[0], E_SImode)
10348 : || GET_MODE (x3) != E_SImode)
10349 : return -1;
10350 : x10 = XVECEXP (x9, 0, 0);
10351 : operands[1] = x10;
10352 : if (!register_operand (operands[1], E_V32HFmode))
10353 : return -1;
10354 : x11 = XVECEXP (x9, 0, 1);
10355 : operands[2] = x11;
10356 : if (!nonimmediate_operand (operands[2], E_V32HFmode))
10357 : return -1;
10358 : x12 = XVECEXP (x9, 0, 2);
10359 : operands[3] = x12;
10360 : if (!const_0_to_31_operand (operands[3], E_SImode))
10361 : return -1;
10362 : x13 = XEXP (x5, 1);
10363 : operands[4] = x13;
10364 : if (!register_operand (operands[4], E_SImode))
10365 : return -1;
10366 : x4 = XVECEXP (x3, 0, 1);
10367 : operands[5] = x4;
10368 : if (!const48_operand (operands[5], E_SImode)
10369 : || !(
10370 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10371 : (TARGET_AVX512F) && (
10372 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10373 : (TARGET_AVX512F) && (
10374 : #line 4681 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10375 : (TARGET_AVX512F && (V32HFmode == V16SFmode
10376 : || V32HFmode == V8DFmode
10377 : || V32HFmode == V8DImode
10378 : || V32HFmode == V16SImode
10379 : || V32HFmode == V32HFmode)) &&
10380 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10381 : (TARGET_AVX512FP16)))))
10382 : return -1;
10383 : return 3335; /* avx512bw_cmpv32hf3_mask_round */
10384 :
10385 : case FIX:
10386 : switch (pattern458 (x3))
10387 : {
10388 : case 0:
10389 : if (!(
10390 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10391 : (TARGET_AVX512F) &&
10392 : #line 8392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10393 : (TARGET_AVX512FP16)))
10394 : return -1;
10395 : return 4751; /* avx512fp16_fix_truncsi2_round */
10396 :
10397 : case 1:
10398 : if (!(
10399 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10400 : (TARGET_AVX512F) &&
10401 : #line 8987 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10402 : (TARGET_SSE)))
10403 : return -1;
10404 : return 4850; /* sse_cvttss2si_round */
10405 :
10406 : case 2:
10407 : if (!(
10408 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10409 : (TARGET_AVX512F) &&
10410 : #line 9533 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10411 : (TARGET_SSE2)))
10412 : return -1;
10413 : return 4985; /* sse2_cvttsd2si_round */
10414 :
10415 : case 3:
10416 : if (!(
10417 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10418 : (TARGET_AVX512F) && (
10419 : #line 8392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10420 : (TARGET_AVX512FP16) &&
10421 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10422 : (TARGET_64BIT))))
10423 : return -1;
10424 : return 4755; /* avx512fp16_fix_truncdi2_round */
10425 :
10426 : case 4:
10427 : if (!(
10428 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10429 : (TARGET_AVX512F) && (
10430 : #line 8987 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10431 : (TARGET_SSE) &&
10432 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10433 : (TARGET_64BIT))))
10434 : return -1;
10435 : return 4852; /* sse_cvttss2siq_round */
10436 :
10437 : case 5:
10438 : if (!(
10439 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10440 : (TARGET_AVX512F) && (
10441 : #line 9533 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10442 : (TARGET_SSE2) &&
10443 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10444 : (TARGET_64BIT))))
10445 : return -1;
10446 : return 4987; /* sse2_cvttsd2siq_round */
10447 :
10448 : default:
10449 : return -1;
10450 : }
10451 :
10452 : case UNSIGNED_FIX:
10453 : switch (pattern458 (x3))
10454 : {
10455 : case 0:
10456 : if (!(
10457 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10458 : (TARGET_AVX512F) &&
10459 : #line 8392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10460 : (TARGET_AVX512FP16)))
10461 : return -1;
10462 : return 4753; /* avx512fp16_fixuns_truncsi2_round */
10463 :
10464 : case 1:
10465 : if (!
10466 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10467 : (TARGET_AVX512F))
10468 : return -1;
10469 : return 4959; /* avx512f_vcvttss2usi_round */
10470 :
10471 : case 2:
10472 : if (!
10473 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10474 : (TARGET_AVX512F))
10475 : return -1;
10476 : return 4971; /* avx512f_vcvttsd2usi_round */
10477 :
10478 : case 3:
10479 : if (!(
10480 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10481 : (TARGET_AVX512F) && (
10482 : #line 8392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10483 : (TARGET_AVX512FP16) &&
10484 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10485 : (TARGET_64BIT))))
10486 : return -1;
10487 : return 4757; /* avx512fp16_fixuns_truncdi2_round */
10488 :
10489 : case 4:
10490 : if (!(
10491 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10492 : (TARGET_AVX512F) && (
10493 : #line 9438 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10494 : (TARGET_AVX512F) &&
10495 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10496 : (TARGET_64BIT))))
10497 : return -1;
10498 : return 4961; /* avx512f_vcvttss2usiq_round */
10499 :
10500 : case 5:
10501 : if (!(
10502 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10503 : (TARGET_AVX512F) && (
10504 : #line 9474 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10505 : (TARGET_AVX512F) &&
10506 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10507 : (TARGET_64BIT))))
10508 : return -1;
10509 : return 4973; /* avx512f_vcvttsd2usiq_round */
10510 :
10511 : default:
10512 : return -1;
10513 : }
10514 :
10515 : default:
10516 : return -1;
10517 : }
10518 :
10519 : case 159:
10520 : switch (pattern304 (x3))
10521 : {
10522 : case 0:
10523 : if (!(
10524 : #line 19519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10525 : (TARGET_AVX512F) &&
10526 : #line 500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10527 : (TARGET_AVX512BW)))
10528 : return -1;
10529 : return 8184; /* avx512bw_testmv64qi3 */
10530 :
10531 : case 1:
10532 : if (!(
10533 : #line 19519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10534 : (TARGET_AVX512F) &&
10535 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10536 : (TARGET_AVX512VL && TARGET_AVX512BW)))
10537 : return -1;
10538 : return 8186; /* avx512vl_testmv32qi3 */
10539 :
10540 : case 2:
10541 : if (!(
10542 : #line 19519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10543 : (TARGET_AVX512F) &&
10544 : #line 503 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10545 : (TARGET_AVX512BW)))
10546 : return -1;
10547 : return 8190; /* avx512bw_testmv32hi3 */
10548 :
10549 : default:
10550 : return -1;
10551 : }
10552 :
10553 : case 160:
10554 : switch (pattern304 (x3))
10555 : {
10556 : case 0:
10557 : if (!(
10558 : #line 19530 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10559 : (TARGET_AVX512F) &&
10560 : #line 500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10561 : (TARGET_AVX512BW)))
10562 : return -1;
10563 : return 8208; /* avx512bw_testnmv64qi3 */
10564 :
10565 : case 1:
10566 : if (!(
10567 : #line 19530 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10568 : (TARGET_AVX512F) &&
10569 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10570 : (TARGET_AVX512VL && TARGET_AVX512BW)))
10571 : return -1;
10572 : return 8210; /* avx512vl_testnmv32qi3 */
10573 :
10574 : case 2:
10575 : if (!(
10576 : #line 19530 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10577 : (TARGET_AVX512F) &&
10578 : #line 503 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10579 : (TARGET_AVX512BW)))
10580 : return -1;
10581 : return 8214; /* avx512bw_testnmv32hi3 */
10582 :
10583 : default:
10584 : return -1;
10585 : }
10586 :
10587 : case 194:
10588 : if (GET_MODE (x3) != E_SImode
10589 : || !register_operand (operands[0], E_SImode))
10590 : return -1;
10591 : x5 = XVECEXP (x3, 0, 0);
10592 : operands[1] = x5;
10593 : if (!vector_operand (operands[1], E_V32HFmode))
10594 : return -1;
10595 : x4 = XVECEXP (x3, 0, 1);
10596 : operands[2] = x4;
10597 : if (!const_0_to_255_operand (operands[2], E_VOIDmode)
10598 : || !(
10599 : #line 30907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10600 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V32HFmode)) &&
10601 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10602 : (TARGET_AVX512FP16)))
10603 : return -1;
10604 : return 10086; /* avx512dq_fpclassv32hf */
10605 :
10606 : case 215:
10607 : x5 = XVECEXP (x3, 0, 0);
10608 : operands[1] = x5;
10609 : x4 = XVECEXP (x3, 0, 1);
10610 : operands[2] = x4;
10611 : switch (GET_MODE (operands[0]))
10612 : {
10613 : case E_DImode:
10614 : if (pattern169 (x3,
10615 : E_DImode,
10616 : E_V64QImode) != 0
10617 : || !
10618 : #line 32001 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10619 : (TARGET_AVX512BITALG))
10620 : return -1;
10621 : return 10428; /* avx512vl_vpshufbitqmbv64qi */
10622 :
10623 : case E_SImode:
10624 : if (pattern169 (x3,
10625 : E_SImode,
10626 : E_V32QImode) != 0
10627 : || !(
10628 : #line 32001 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10629 : (TARGET_AVX512BITALG) &&
10630 : #line 338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10631 : (TARGET_AVX512VL)))
10632 : return -1;
10633 : return 10432; /* avx512vl_vpshufbitqmbv32qi */
10634 :
10635 : default:
10636 : return -1;
10637 : }
10638 :
10639 : case 263:
10640 : if (GET_MODE (x3) != E_SImode
10641 : || !register_operand (operands[0], E_SImode))
10642 : return -1;
10643 : x5 = XVECEXP (x3, 0, 0);
10644 : operands[1] = x5;
10645 : if (!nonimmediate_operand (operands[1], E_V32BFmode))
10646 : return -1;
10647 : x4 = XVECEXP (x3, 0, 1);
10648 : operands[2] = x4;
10649 : if (!const_0_to_255_operand (operands[2], E_VOIDmode)
10650 : || !
10651 : #line 33521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10652 : (TARGET_AVX10_2))
10653 : return -1;
10654 : return 10822; /* avx10_2_fpclassbf16_v32bf */
10655 :
10656 : case 292:
10657 : x5 = XVECEXP (x3, 0, 0);
10658 : operands[1] = x5;
10659 : x4 = XVECEXP (x3, 0, 1);
10660 : operands[2] = x4;
10661 : if (!const_int_operand (operands[2], E_SImode))
10662 : return -1;
10663 : switch (GET_MODE (operands[0]))
10664 : {
10665 : case E_SImode:
10666 : if (!memory_operand (operands[0], E_SImode)
10667 : || GET_MODE (x3) != E_SImode
10668 : || !x86_64_nonmemory_operand (operands[1], E_SImode))
10669 : return -1;
10670 : return 11097; /* atomic_storesi_1 */
10671 :
10672 : case E_DImode:
10673 : if (!memory_operand (operands[0], E_DImode)
10674 : || GET_MODE (x3) != E_DImode
10675 : || !x86_64_nonmemory_operand (operands[1], E_DImode)
10676 : || !
10677 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10678 : (TARGET_64BIT))
10679 : return -1;
10680 : return 11098; /* atomic_storedi_1 */
10681 :
10682 : default:
10683 : return -1;
10684 : }
10685 :
10686 : default:
10687 : return -1;
10688 : }
10689 : }
10690 :
10691 : int
10692 : recog_154 (rtx x1 ATTRIBUTE_UNUSED,
10693 : rtx_insn *insn ATTRIBUTE_UNUSED,
10694 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10695 : {
10696 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10697 : rtx x2, x3, x4, x5;
10698 : int res ATTRIBUTE_UNUSED;
10699 : x2 = XEXP (x1, 1);
10700 : if (GET_MODE (x2) != E_V8BFmode)
10701 : return -1;
10702 : x3 = XEXP (x2, 2);
10703 : if (!register_operand (x3, E_QImode))
10704 : return -1;
10705 : operands[3] = x3;
10706 : if (register_operand (operands[0], E_V8BFmode))
10707 : {
10708 : x4 = XEXP (x2, 0);
10709 : operands[2] = x4;
10710 : if (nonimmediate_operand (operands[2], E_V8BFmode))
10711 : {
10712 : x5 = XEXP (x2, 1);
10713 : operands[1] = x5;
10714 : if (nonimm_or_0_operand (operands[1], E_V8BFmode)
10715 : && (
10716 : #line 1809 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10717 : (TARGET_AVX512BW) &&
10718 : #line 335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10719 : (TARGET_AVX512VL)))
10720 : return 2589; /* avx512vl_blendmv8bf */
10721 : }
10722 : }
10723 : operands[2] = x3;
10724 : if (!memory_operand (operands[0], E_V8BFmode))
10725 : return -1;
10726 : x4 = XEXP (x2, 0);
10727 : operands[1] = x4;
10728 : if (!register_operand (operands[1], E_V8BFmode))
10729 : return -1;
10730 : x5 = XEXP (x2, 1);
10731 : if (!rtx_equal_p (x5, operands[0])
10732 : || !(
10733 : #line 1852 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10734 : (TARGET_AVX512BW) &&
10735 : #line 335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10736 : (TARGET_AVX512VL)))
10737 : return -1;
10738 : return 2613; /* *avx512vl_storev8bf_mask */
10739 : }
10740 :
10741 : int
10742 : recog_155 (rtx x1 ATTRIBUTE_UNUSED,
10743 : rtx_insn *insn ATTRIBUTE_UNUSED,
10744 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10745 : {
10746 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10747 : rtx x2, x3, x4, x5;
10748 : int res ATTRIBUTE_UNUSED;
10749 : x2 = XEXP (x1, 1);
10750 : if (GET_MODE (x2) != E_V16BFmode)
10751 : return -1;
10752 : x3 = XEXP (x2, 2);
10753 : if (!register_operand (x3, E_HImode))
10754 : return -1;
10755 : operands[3] = x3;
10756 : if (register_operand (operands[0], E_V16BFmode))
10757 : {
10758 : x4 = XEXP (x2, 0);
10759 : operands[2] = x4;
10760 : if (nonimmediate_operand (operands[2], E_V16BFmode))
10761 : {
10762 : x5 = XEXP (x2, 1);
10763 : operands[1] = x5;
10764 : if (nonimm_or_0_operand (operands[1], E_V16BFmode)
10765 : && (
10766 : #line 1809 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10767 : (TARGET_AVX512BW) &&
10768 : #line 335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10769 : (TARGET_AVX512VL)))
10770 : return 2588; /* avx512vl_blendmv16bf */
10771 : }
10772 : }
10773 : operands[2] = x3;
10774 : if (!memory_operand (operands[0], E_V16BFmode))
10775 : return -1;
10776 : x4 = XEXP (x2, 0);
10777 : operands[1] = x4;
10778 : if (!register_operand (operands[1], E_V16BFmode))
10779 : return -1;
10780 : x5 = XEXP (x2, 1);
10781 : if (!rtx_equal_p (x5, operands[0])
10782 : || !(
10783 : #line 1852 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10784 : (TARGET_AVX512BW) &&
10785 : #line 335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10786 : (TARGET_AVX512VL)))
10787 : return -1;
10788 : return 2612; /* *avx512vl_storev16bf_mask */
10789 : }
10790 :
10791 : int
10792 : recog_156 (rtx x1 ATTRIBUTE_UNUSED,
10793 : rtx_insn *insn ATTRIBUTE_UNUSED,
10794 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10795 : {
10796 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10797 : rtx x2, x3, x4, x5;
10798 : int res ATTRIBUTE_UNUSED;
10799 : x2 = XEXP (x1, 1);
10800 : if (GET_MODE (x2) != E_V32BFmode)
10801 : return -1;
10802 : x3 = XEXP (x2, 2);
10803 : if (!register_operand (x3, E_SImode))
10804 : return -1;
10805 : operands[3] = x3;
10806 : if (register_operand (operands[0], E_V32BFmode))
10807 : {
10808 : x4 = XEXP (x2, 0);
10809 : operands[2] = x4;
10810 : if (nonimmediate_operand (operands[2], E_V32BFmode))
10811 : {
10812 : x5 = XEXP (x2, 1);
10813 : operands[1] = x5;
10814 : if (nonimm_or_0_operand (operands[1], E_V32BFmode)
10815 : &&
10816 : #line 1809 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10817 : (TARGET_AVX512BW))
10818 : return 2587; /* avx512bw_blendmv32bf */
10819 : }
10820 : }
10821 : operands[2] = x3;
10822 : if (!memory_operand (operands[0], E_V32BFmode))
10823 : return -1;
10824 : x4 = XEXP (x2, 0);
10825 : operands[1] = x4;
10826 : if (!register_operand (operands[1], E_V32BFmode))
10827 : return -1;
10828 : x5 = XEXP (x2, 1);
10829 : if (!rtx_equal_p (x5, operands[0])
10830 : || !
10831 : #line 1852 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10832 : (TARGET_AVX512BW))
10833 : return -1;
10834 : return 2611; /* *avx512bw_storev32bf_mask */
10835 : }
10836 :
10837 : int
10838 : recog_157 (rtx x1 ATTRIBUTE_UNUSED,
10839 : rtx_insn *insn ATTRIBUTE_UNUSED,
10840 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10841 : {
10842 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10843 : rtx x2, x3, x4, x5;
10844 : int res ATTRIBUTE_UNUSED;
10845 : x2 = XEXP (x1, 1);
10846 : if (GET_MODE (x2) != E_V8HFmode)
10847 : return -1;
10848 : x3 = XEXP (x2, 2);
10849 : if (!register_operand (x3, E_QImode))
10850 : return -1;
10851 : operands[3] = x3;
10852 : if (register_operand (operands[0], E_V8HFmode))
10853 : {
10854 : x4 = XEXP (x2, 0);
10855 : operands[2] = x4;
10856 : if (nonimmediate_operand (operands[2], E_V8HFmode))
10857 : {
10858 : x5 = XEXP (x2, 1);
10859 : operands[1] = x5;
10860 : if (nonimm_or_0_operand (operands[1], E_V8HFmode)
10861 : && (
10862 : #line 1809 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10863 : (TARGET_AVX512BW) &&
10864 : #line 334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10865 : (TARGET_AVX512VL)))
10866 : return 2586; /* avx512fp16_blendmv8hf */
10867 : }
10868 : }
10869 : operands[2] = x3;
10870 : if (!memory_operand (operands[0], E_V8HFmode))
10871 : return -1;
10872 : x4 = XEXP (x2, 0);
10873 : operands[1] = x4;
10874 : if (!register_operand (operands[1], E_V8HFmode))
10875 : return -1;
10876 : x5 = XEXP (x2, 1);
10877 : if (!rtx_equal_p (x5, operands[0])
10878 : || !(
10879 : #line 1852 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10880 : (TARGET_AVX512BW) &&
10881 : #line 334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10882 : (TARGET_AVX512VL)))
10883 : return -1;
10884 : return 2610; /* *avx512fp16_storev8hf_mask */
10885 : }
10886 :
10887 : int
10888 : recog_158 (rtx x1 ATTRIBUTE_UNUSED,
10889 : rtx_insn *insn ATTRIBUTE_UNUSED,
10890 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10891 : {
10892 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10893 : rtx x2, x3, x4, x5;
10894 : int res ATTRIBUTE_UNUSED;
10895 : x2 = XEXP (x1, 1);
10896 : if (GET_MODE (x2) != E_V16HFmode)
10897 : return -1;
10898 : x3 = XEXP (x2, 2);
10899 : if (!register_operand (x3, E_HImode))
10900 : return -1;
10901 : operands[3] = x3;
10902 : if (register_operand (operands[0], E_V16HFmode))
10903 : {
10904 : x4 = XEXP (x2, 0);
10905 : operands[2] = x4;
10906 : if (nonimmediate_operand (operands[2], E_V16HFmode))
10907 : {
10908 : x5 = XEXP (x2, 1);
10909 : operands[1] = x5;
10910 : if (nonimm_or_0_operand (operands[1], E_V16HFmode)
10911 : && (
10912 : #line 1809 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10913 : (TARGET_AVX512BW) &&
10914 : #line 334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10915 : (TARGET_AVX512VL)))
10916 : return 2585; /* avx512vl_blendmv16hf */
10917 : }
10918 : }
10919 : operands[2] = x3;
10920 : if (!memory_operand (operands[0], E_V16HFmode))
10921 : return -1;
10922 : x4 = XEXP (x2, 0);
10923 : operands[1] = x4;
10924 : if (!register_operand (operands[1], E_V16HFmode))
10925 : return -1;
10926 : x5 = XEXP (x2, 1);
10927 : if (!rtx_equal_p (x5, operands[0])
10928 : || !(
10929 : #line 1852 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10930 : (TARGET_AVX512BW) &&
10931 : #line 334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10932 : (TARGET_AVX512VL)))
10933 : return -1;
10934 : return 2609; /* *avx512vl_storev16hf_mask */
10935 : }
10936 :
10937 : int
10938 : recog_159 (rtx x1 ATTRIBUTE_UNUSED,
10939 : rtx_insn *insn ATTRIBUTE_UNUSED,
10940 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10941 : {
10942 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10943 : rtx x2, x3, x4, x5;
10944 : int res ATTRIBUTE_UNUSED;
10945 : switch (GET_MODE (operands[0]))
10946 : {
10947 : case E_V16SImode:
10948 : x2 = XEXP (x1, 1);
10949 : if (GET_MODE (x2) != E_V16SImode)
10950 : return -1;
10951 : x3 = XEXP (x2, 2);
10952 : if (!register_operand (x3, E_HImode))
10953 : return -1;
10954 : operands[3] = x3;
10955 : if (register_operand (operands[0], E_V16SImode))
10956 : {
10957 : x4 = XEXP (x2, 0);
10958 : operands[2] = x4;
10959 : if (nonimmediate_operand (operands[2], E_V16SImode))
10960 : {
10961 : x5 = XEXP (x2, 1);
10962 : operands[1] = x5;
10963 : if (nonimm_or_0_operand (operands[1], E_V16SImode)
10964 : &&
10965 : #line 1773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10966 : (TARGET_AVX512F))
10967 : return 2566; /* avx512f_blendmv16si */
10968 : }
10969 : }
10970 : operands[2] = x3;
10971 : if (!memory_operand (operands[0], E_V16SImode))
10972 : return -1;
10973 : x4 = XEXP (x2, 0);
10974 : operands[1] = x4;
10975 : if (!register_operand (operands[1], E_V16SImode))
10976 : return -1;
10977 : x5 = XEXP (x2, 1);
10978 : if (!rtx_equal_p (x5, operands[0])
10979 : || !
10980 : #line 1824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10981 : (TARGET_AVX512F))
10982 : return -1;
10983 : return 2590; /* *avx512f_storev16si_mask */
10984 :
10985 : case E_V8SImode:
10986 : x2 = XEXP (x1, 1);
10987 : if (GET_MODE (x2) != E_V8SImode)
10988 : return -1;
10989 : x3 = XEXP (x2, 2);
10990 : if (!register_operand (x3, E_QImode))
10991 : return -1;
10992 : operands[3] = x3;
10993 : if (register_operand (operands[0], E_V8SImode))
10994 : {
10995 : x4 = XEXP (x2, 0);
10996 : operands[2] = x4;
10997 : if (nonimmediate_operand (operands[2], E_V8SImode))
10998 : {
10999 : x5 = XEXP (x2, 1);
11000 : operands[1] = x5;
11001 : if (nonimm_or_0_operand (operands[1], E_V8SImode)
11002 : && (
11003 : #line 1773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11004 : (TARGET_AVX512F) &&
11005 : #line 299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11006 : (TARGET_AVX512VL)))
11007 : return 2567; /* avx512vl_blendmv8si */
11008 : }
11009 : }
11010 : operands[2] = x3;
11011 : if (!memory_operand (operands[0], E_V8SImode))
11012 : return -1;
11013 : x4 = XEXP (x2, 0);
11014 : operands[1] = x4;
11015 : if (!register_operand (operands[1], E_V8SImode))
11016 : return -1;
11017 : x5 = XEXP (x2, 1);
11018 : if (!rtx_equal_p (x5, operands[0])
11019 : || !(
11020 : #line 1824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11021 : (TARGET_AVX512F) &&
11022 : #line 299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11023 : (TARGET_AVX512VL)))
11024 : return -1;
11025 : return 2591; /* *avx512vl_storev8si_mask */
11026 :
11027 : case E_V4SImode:
11028 : x2 = XEXP (x1, 1);
11029 : if (GET_MODE (x2) != E_V4SImode)
11030 : return -1;
11031 : x3 = XEXP (x2, 2);
11032 : if (!register_operand (x3, E_QImode))
11033 : return -1;
11034 : operands[3] = x3;
11035 : if (register_operand (operands[0], E_V4SImode))
11036 : {
11037 : x4 = XEXP (x2, 0);
11038 : operands[2] = x4;
11039 : if (nonimmediate_operand (operands[2], E_V4SImode))
11040 : {
11041 : x5 = XEXP (x2, 1);
11042 : operands[1] = x5;
11043 : if (nonimm_or_0_operand (operands[1], E_V4SImode)
11044 : && (
11045 : #line 1773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11046 : (TARGET_AVX512F) &&
11047 : #line 299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11048 : (TARGET_AVX512VL)))
11049 : return 2568; /* avx512vl_blendmv4si */
11050 : }
11051 : }
11052 : operands[2] = x3;
11053 : if (!memory_operand (operands[0], E_V4SImode))
11054 : return -1;
11055 : x4 = XEXP (x2, 0);
11056 : operands[1] = x4;
11057 : if (!register_operand (operands[1], E_V4SImode))
11058 : return -1;
11059 : x5 = XEXP (x2, 1);
11060 : if (!rtx_equal_p (x5, operands[0])
11061 : || !(
11062 : #line 1824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11063 : (TARGET_AVX512F) &&
11064 : #line 299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11065 : (TARGET_AVX512VL)))
11066 : return -1;
11067 : return 2592; /* *avx512vl_storev4si_mask */
11068 :
11069 : case E_V8DImode:
11070 : x2 = XEXP (x1, 1);
11071 : if (GET_MODE (x2) != E_V8DImode)
11072 : return -1;
11073 : x3 = XEXP (x2, 2);
11074 : if (!register_operand (x3, E_QImode))
11075 : return -1;
11076 : operands[3] = x3;
11077 : if (register_operand (operands[0], E_V8DImode))
11078 : {
11079 : x4 = XEXP (x2, 0);
11080 : operands[2] = x4;
11081 : if (nonimmediate_operand (operands[2], E_V8DImode))
11082 : {
11083 : x5 = XEXP (x2, 1);
11084 : operands[1] = x5;
11085 : if (nonimm_or_0_operand (operands[1], E_V8DImode)
11086 : &&
11087 : #line 1773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11088 : (TARGET_AVX512F))
11089 : return 2569; /* avx512f_blendmv8di */
11090 : }
11091 : }
11092 : operands[2] = x3;
11093 : if (!memory_operand (operands[0], E_V8DImode))
11094 : return -1;
11095 : x4 = XEXP (x2, 0);
11096 : operands[1] = x4;
11097 : if (!register_operand (operands[1], E_V8DImode))
11098 : return -1;
11099 : x5 = XEXP (x2, 1);
11100 : if (!rtx_equal_p (x5, operands[0])
11101 : || !
11102 : #line 1824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11103 : (TARGET_AVX512F))
11104 : return -1;
11105 : return 2593; /* *avx512f_storev8di_mask */
11106 :
11107 : case E_V4DImode:
11108 : x2 = XEXP (x1, 1);
11109 : if (GET_MODE (x2) != E_V4DImode)
11110 : return -1;
11111 : x3 = XEXP (x2, 2);
11112 : if (!register_operand (x3, E_QImode))
11113 : return -1;
11114 : operands[3] = x3;
11115 : if (register_operand (operands[0], E_V4DImode))
11116 : {
11117 : x4 = XEXP (x2, 0);
11118 : operands[2] = x4;
11119 : if (nonimmediate_operand (operands[2], E_V4DImode))
11120 : {
11121 : x5 = XEXP (x2, 1);
11122 : operands[1] = x5;
11123 : if (nonimm_or_0_operand (operands[1], E_V4DImode)
11124 : && (
11125 : #line 1773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11126 : (TARGET_AVX512F) &&
11127 : #line 300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11128 : (TARGET_AVX512VL)))
11129 : return 2570; /* avx512vl_blendmv4di */
11130 : }
11131 : }
11132 : operands[2] = x3;
11133 : if (!memory_operand (operands[0], E_V4DImode))
11134 : return -1;
11135 : x4 = XEXP (x2, 0);
11136 : operands[1] = x4;
11137 : if (!register_operand (operands[1], E_V4DImode))
11138 : return -1;
11139 : x5 = XEXP (x2, 1);
11140 : if (!rtx_equal_p (x5, operands[0])
11141 : || !(
11142 : #line 1824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11143 : (TARGET_AVX512F) &&
11144 : #line 300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11145 : (TARGET_AVX512VL)))
11146 : return -1;
11147 : return 2594; /* *avx512vl_storev4di_mask */
11148 :
11149 : case E_V2DImode:
11150 : x2 = XEXP (x1, 1);
11151 : if (GET_MODE (x2) != E_V2DImode)
11152 : return -1;
11153 : x3 = XEXP (x2, 2);
11154 : if (!register_operand (x3, E_QImode))
11155 : return -1;
11156 : operands[3] = x3;
11157 : if (register_operand (operands[0], E_V2DImode))
11158 : {
11159 : x4 = XEXP (x2, 0);
11160 : operands[2] = x4;
11161 : if (nonimmediate_operand (operands[2], E_V2DImode))
11162 : {
11163 : x5 = XEXP (x2, 1);
11164 : operands[1] = x5;
11165 : if (nonimm_or_0_operand (operands[1], E_V2DImode)
11166 : && (
11167 : #line 1773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11168 : (TARGET_AVX512F) &&
11169 : #line 300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11170 : (TARGET_AVX512VL)))
11171 : return 2571; /* avx512vl_blendmv2di */
11172 : }
11173 : }
11174 : operands[2] = x3;
11175 : if (!memory_operand (operands[0], E_V2DImode))
11176 : return -1;
11177 : x4 = XEXP (x2, 0);
11178 : operands[1] = x4;
11179 : if (!register_operand (operands[1], E_V2DImode))
11180 : return -1;
11181 : x5 = XEXP (x2, 1);
11182 : if (!rtx_equal_p (x5, operands[0])
11183 : || !(
11184 : #line 1824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11185 : (TARGET_AVX512F) &&
11186 : #line 300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11187 : (TARGET_AVX512VL)))
11188 : return -1;
11189 : return 2595; /* *avx512vl_storev2di_mask */
11190 :
11191 : case E_V16SFmode:
11192 : x2 = XEXP (x1, 1);
11193 : if (GET_MODE (x2) != E_V16SFmode)
11194 : return -1;
11195 : x3 = XEXP (x2, 2);
11196 : if (!register_operand (x3, E_HImode))
11197 : return -1;
11198 : operands[3] = x3;
11199 : if (register_operand (operands[0], E_V16SFmode))
11200 : {
11201 : x4 = XEXP (x2, 0);
11202 : operands[2] = x4;
11203 : if (nonimmediate_operand (operands[2], E_V16SFmode))
11204 : {
11205 : x5 = XEXP (x2, 1);
11206 : operands[1] = x5;
11207 : if (nonimm_or_0_operand (operands[1], E_V16SFmode)
11208 : &&
11209 : #line 1773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11210 : (TARGET_AVX512F))
11211 : return 2572; /* avx512f_blendmv16sf */
11212 : }
11213 : }
11214 : operands[2] = x3;
11215 : if (!memory_operand (operands[0], E_V16SFmode))
11216 : return -1;
11217 : x4 = XEXP (x2, 0);
11218 : operands[1] = x4;
11219 : if (!register_operand (operands[1], E_V16SFmode))
11220 : return -1;
11221 : x5 = XEXP (x2, 1);
11222 : if (!rtx_equal_p (x5, operands[0])
11223 : || !
11224 : #line 1824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11225 : (TARGET_AVX512F))
11226 : return -1;
11227 : return 2596; /* *avx512f_storev16sf_mask */
11228 :
11229 : case E_V8SFmode:
11230 : x2 = XEXP (x1, 1);
11231 : if (GET_MODE (x2) != E_V8SFmode)
11232 : return -1;
11233 : x3 = XEXP (x2, 2);
11234 : if (!register_operand (x3, E_QImode))
11235 : return -1;
11236 : operands[3] = x3;
11237 : if (register_operand (operands[0], E_V8SFmode))
11238 : {
11239 : x4 = XEXP (x2, 0);
11240 : operands[2] = x4;
11241 : if (nonimmediate_operand (operands[2], E_V8SFmode))
11242 : {
11243 : x5 = XEXP (x2, 1);
11244 : operands[1] = x5;
11245 : if (nonimm_or_0_operand (operands[1], E_V8SFmode)
11246 : && (
11247 : #line 1773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11248 : (TARGET_AVX512F) &&
11249 : #line 301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11250 : (TARGET_AVX512VL)))
11251 : return 2573; /* avx512vl_blendmv8sf */
11252 : }
11253 : }
11254 : operands[2] = x3;
11255 : if (!memory_operand (operands[0], E_V8SFmode))
11256 : return -1;
11257 : x4 = XEXP (x2, 0);
11258 : operands[1] = x4;
11259 : if (!register_operand (operands[1], E_V8SFmode))
11260 : return -1;
11261 : x5 = XEXP (x2, 1);
11262 : if (!rtx_equal_p (x5, operands[0])
11263 : || !(
11264 : #line 1824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11265 : (TARGET_AVX512F) &&
11266 : #line 301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11267 : (TARGET_AVX512VL)))
11268 : return -1;
11269 : return 2597; /* *avx512vl_storev8sf_mask */
11270 :
11271 : case E_V4SFmode:
11272 : x2 = XEXP (x1, 1);
11273 : if (GET_MODE (x2) != E_V4SFmode)
11274 : return -1;
11275 : x3 = XEXP (x2, 2);
11276 : if (!register_operand (x3, E_QImode))
11277 : return -1;
11278 : operands[3] = x3;
11279 : if (register_operand (operands[0], E_V4SFmode))
11280 : {
11281 : x4 = XEXP (x2, 0);
11282 : operands[2] = x4;
11283 : if (nonimmediate_operand (operands[2], E_V4SFmode))
11284 : {
11285 : x5 = XEXP (x2, 1);
11286 : operands[1] = x5;
11287 : if (nonimm_or_0_operand (operands[1], E_V4SFmode)
11288 : && (
11289 : #line 1773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11290 : (TARGET_AVX512F) &&
11291 : #line 301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11292 : (TARGET_AVX512VL)))
11293 : return 2574; /* avx512vl_blendmv4sf */
11294 : }
11295 : }
11296 : operands[2] = x3;
11297 : if (!memory_operand (operands[0], E_V4SFmode))
11298 : return -1;
11299 : x4 = XEXP (x2, 0);
11300 : operands[1] = x4;
11301 : if (!register_operand (operands[1], E_V4SFmode))
11302 : return -1;
11303 : x5 = XEXP (x2, 1);
11304 : if (!rtx_equal_p (x5, operands[0])
11305 : || !(
11306 : #line 1824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11307 : (TARGET_AVX512F) &&
11308 : #line 301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11309 : (TARGET_AVX512VL)))
11310 : return -1;
11311 : return 2598; /* *avx512vl_storev4sf_mask */
11312 :
11313 : case E_V8DFmode:
11314 : x2 = XEXP (x1, 1);
11315 : if (GET_MODE (x2) != E_V8DFmode)
11316 : return -1;
11317 : x3 = XEXP (x2, 2);
11318 : if (!register_operand (x3, E_QImode))
11319 : return -1;
11320 : operands[3] = x3;
11321 : if (register_operand (operands[0], E_V8DFmode))
11322 : {
11323 : x4 = XEXP (x2, 0);
11324 : operands[2] = x4;
11325 : if (nonimmediate_operand (operands[2], E_V8DFmode))
11326 : {
11327 : x5 = XEXP (x2, 1);
11328 : operands[1] = x5;
11329 : if (nonimm_or_0_operand (operands[1], E_V8DFmode)
11330 : &&
11331 : #line 1773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11332 : (TARGET_AVX512F))
11333 : return 2575; /* avx512f_blendmv8df */
11334 : }
11335 : }
11336 : operands[2] = x3;
11337 : if (!memory_operand (operands[0], E_V8DFmode))
11338 : return -1;
11339 : x4 = XEXP (x2, 0);
11340 : operands[1] = x4;
11341 : if (!register_operand (operands[1], E_V8DFmode))
11342 : return -1;
11343 : x5 = XEXP (x2, 1);
11344 : if (!rtx_equal_p (x5, operands[0])
11345 : || !
11346 : #line 1824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11347 : (TARGET_AVX512F))
11348 : return -1;
11349 : return 2599; /* *avx512f_storev8df_mask */
11350 :
11351 : case E_V4DFmode:
11352 : x2 = XEXP (x1, 1);
11353 : if (GET_MODE (x2) != E_V4DFmode)
11354 : return -1;
11355 : x3 = XEXP (x2, 2);
11356 : if (!register_operand (x3, E_QImode))
11357 : return -1;
11358 : operands[3] = x3;
11359 : if (register_operand (operands[0], E_V4DFmode))
11360 : {
11361 : x4 = XEXP (x2, 0);
11362 : operands[2] = x4;
11363 : if (nonimmediate_operand (operands[2], E_V4DFmode))
11364 : {
11365 : x5 = XEXP (x2, 1);
11366 : operands[1] = x5;
11367 : if (nonimm_or_0_operand (operands[1], E_V4DFmode)
11368 : && (
11369 : #line 1773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11370 : (TARGET_AVX512F) &&
11371 : #line 302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11372 : (TARGET_AVX512VL)))
11373 : return 2576; /* avx512vl_blendmv4df */
11374 : }
11375 : }
11376 : operands[2] = x3;
11377 : if (!memory_operand (operands[0], E_V4DFmode))
11378 : return -1;
11379 : x4 = XEXP (x2, 0);
11380 : operands[1] = x4;
11381 : if (!register_operand (operands[1], E_V4DFmode))
11382 : return -1;
11383 : x5 = XEXP (x2, 1);
11384 : if (!rtx_equal_p (x5, operands[0])
11385 : || !(
11386 : #line 1824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11387 : (TARGET_AVX512F) &&
11388 : #line 302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11389 : (TARGET_AVX512VL)))
11390 : return -1;
11391 : return 2600; /* *avx512vl_storev4df_mask */
11392 :
11393 : case E_V2DFmode:
11394 : x2 = XEXP (x1, 1);
11395 : if (GET_MODE (x2) != E_V2DFmode)
11396 : return -1;
11397 : x3 = XEXP (x2, 2);
11398 : if (!register_operand (x3, E_QImode))
11399 : return -1;
11400 : operands[3] = x3;
11401 : if (register_operand (operands[0], E_V2DFmode))
11402 : {
11403 : x4 = XEXP (x2, 0);
11404 : operands[2] = x4;
11405 : if (nonimmediate_operand (operands[2], E_V2DFmode))
11406 : {
11407 : x5 = XEXP (x2, 1);
11408 : operands[1] = x5;
11409 : if (nonimm_or_0_operand (operands[1], E_V2DFmode)
11410 : && (
11411 : #line 1773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11412 : (TARGET_AVX512F) &&
11413 : #line 302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11414 : (TARGET_AVX512VL)))
11415 : return 2577; /* avx512vl_blendmv2df */
11416 : }
11417 : }
11418 : operands[2] = x3;
11419 : if (!memory_operand (operands[0], E_V2DFmode))
11420 : return -1;
11421 : x4 = XEXP (x2, 0);
11422 : operands[1] = x4;
11423 : if (!register_operand (operands[1], E_V2DFmode))
11424 : return -1;
11425 : x5 = XEXP (x2, 1);
11426 : if (!rtx_equal_p (x5, operands[0])
11427 : || !(
11428 : #line 1824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11429 : (TARGET_AVX512F) &&
11430 : #line 302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11431 : (TARGET_AVX512VL)))
11432 : return -1;
11433 : return 2601; /* *avx512vl_storev2df_mask */
11434 :
11435 : case E_V64QImode:
11436 : x2 = XEXP (x1, 1);
11437 : if (GET_MODE (x2) != E_V64QImode)
11438 : return -1;
11439 : x3 = XEXP (x2, 2);
11440 : if (!register_operand (x3, E_DImode))
11441 : return -1;
11442 : operands[3] = x3;
11443 : if (register_operand (operands[0], E_V64QImode))
11444 : {
11445 : x4 = XEXP (x2, 0);
11446 : operands[2] = x4;
11447 : if (nonimmediate_operand (operands[2], E_V64QImode))
11448 : {
11449 : x5 = XEXP (x2, 1);
11450 : operands[1] = x5;
11451 : if (nonimm_or_0_operand (operands[1], E_V64QImode)
11452 : &&
11453 : #line 1809 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11454 : (TARGET_AVX512BW))
11455 : return 2578; /* avx512bw_blendmv64qi */
11456 : }
11457 : }
11458 : operands[2] = x3;
11459 : if (!memory_operand (operands[0], E_V64QImode))
11460 : return -1;
11461 : x4 = XEXP (x2, 0);
11462 : operands[1] = x4;
11463 : if (!register_operand (operands[1], E_V64QImode))
11464 : return -1;
11465 : x5 = XEXP (x2, 1);
11466 : if (!rtx_equal_p (x5, operands[0])
11467 : || !
11468 : #line 1852 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11469 : (TARGET_AVX512BW))
11470 : return -1;
11471 : return 2602; /* *avx512bw_storev64qi_mask */
11472 :
11473 : case E_V16QImode:
11474 : x2 = XEXP (x1, 1);
11475 : if (GET_MODE (x2) != E_V16QImode)
11476 : return -1;
11477 : x3 = XEXP (x2, 2);
11478 : if (!register_operand (x3, E_HImode))
11479 : return -1;
11480 : operands[3] = x3;
11481 : if (register_operand (operands[0], E_V16QImode))
11482 : {
11483 : x4 = XEXP (x2, 0);
11484 : operands[2] = x4;
11485 : if (nonimmediate_operand (operands[2], E_V16QImode))
11486 : {
11487 : x5 = XEXP (x2, 1);
11488 : operands[1] = x5;
11489 : if (nonimm_or_0_operand (operands[1], E_V16QImode)
11490 : && (
11491 : #line 1809 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11492 : (TARGET_AVX512BW) &&
11493 : #line 332 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11494 : (TARGET_AVX512VL)))
11495 : return 2579; /* avx512vl_blendmv16qi */
11496 : }
11497 : }
11498 : operands[2] = x3;
11499 : if (!memory_operand (operands[0], E_V16QImode))
11500 : return -1;
11501 : x4 = XEXP (x2, 0);
11502 : operands[1] = x4;
11503 : if (!register_operand (operands[1], E_V16QImode))
11504 : return -1;
11505 : x5 = XEXP (x2, 1);
11506 : if (!rtx_equal_p (x5, operands[0])
11507 : || !(
11508 : #line 1852 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11509 : (TARGET_AVX512BW) &&
11510 : #line 332 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11511 : (TARGET_AVX512VL)))
11512 : return -1;
11513 : return 2603; /* *avx512vl_storev16qi_mask */
11514 :
11515 : case E_V32QImode:
11516 : x2 = XEXP (x1, 1);
11517 : if (GET_MODE (x2) != E_V32QImode)
11518 : return -1;
11519 : x3 = XEXP (x2, 2);
11520 : if (!register_operand (x3, E_SImode))
11521 : return -1;
11522 : operands[3] = x3;
11523 : if (register_operand (operands[0], E_V32QImode))
11524 : {
11525 : x4 = XEXP (x2, 0);
11526 : operands[2] = x4;
11527 : if (nonimmediate_operand (operands[2], E_V32QImode))
11528 : {
11529 : x5 = XEXP (x2, 1);
11530 : operands[1] = x5;
11531 : if (nonimm_or_0_operand (operands[1], E_V32QImode)
11532 : && (
11533 : #line 1809 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11534 : (TARGET_AVX512BW) &&
11535 : #line 332 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11536 : (TARGET_AVX512VL)))
11537 : return 2580; /* avx512vl_blendmv32qi */
11538 : }
11539 : }
11540 : operands[2] = x3;
11541 : if (!memory_operand (operands[0], E_V32QImode))
11542 : return -1;
11543 : x4 = XEXP (x2, 0);
11544 : operands[1] = x4;
11545 : if (!register_operand (operands[1], E_V32QImode))
11546 : return -1;
11547 : x5 = XEXP (x2, 1);
11548 : if (!rtx_equal_p (x5, operands[0])
11549 : || !(
11550 : #line 1852 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11551 : (TARGET_AVX512BW) &&
11552 : #line 332 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11553 : (TARGET_AVX512VL)))
11554 : return -1;
11555 : return 2604; /* *avx512vl_storev32qi_mask */
11556 :
11557 : case E_V32HImode:
11558 : x2 = XEXP (x1, 1);
11559 : if (GET_MODE (x2) != E_V32HImode)
11560 : return -1;
11561 : x3 = XEXP (x2, 2);
11562 : if (!register_operand (x3, E_SImode))
11563 : return -1;
11564 : operands[3] = x3;
11565 : if (register_operand (operands[0], E_V32HImode))
11566 : {
11567 : x4 = XEXP (x2, 0);
11568 : operands[2] = x4;
11569 : if (nonimmediate_operand (operands[2], E_V32HImode))
11570 : {
11571 : x5 = XEXP (x2, 1);
11572 : operands[1] = x5;
11573 : if (nonimm_or_0_operand (operands[1], E_V32HImode)
11574 : &&
11575 : #line 1809 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11576 : (TARGET_AVX512BW))
11577 : return 2581; /* avx512bw_blendmv32hi */
11578 : }
11579 : }
11580 : operands[2] = x3;
11581 : if (!memory_operand (operands[0], E_V32HImode))
11582 : return -1;
11583 : x4 = XEXP (x2, 0);
11584 : operands[1] = x4;
11585 : if (!register_operand (operands[1], E_V32HImode))
11586 : return -1;
11587 : x5 = XEXP (x2, 1);
11588 : if (!rtx_equal_p (x5, operands[0])
11589 : || !
11590 : #line 1852 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11591 : (TARGET_AVX512BW))
11592 : return -1;
11593 : return 2605; /* *avx512bw_storev32hi_mask */
11594 :
11595 : case E_V16HImode:
11596 : x2 = XEXP (x1, 1);
11597 : if (GET_MODE (x2) != E_V16HImode)
11598 : return -1;
11599 : x3 = XEXP (x2, 2);
11600 : if (!register_operand (x3, E_HImode))
11601 : return -1;
11602 : operands[3] = x3;
11603 : if (register_operand (operands[0], E_V16HImode))
11604 : {
11605 : x4 = XEXP (x2, 0);
11606 : operands[2] = x4;
11607 : if (nonimmediate_operand (operands[2], E_V16HImode))
11608 : {
11609 : x5 = XEXP (x2, 1);
11610 : operands[1] = x5;
11611 : if (nonimm_or_0_operand (operands[1], E_V16HImode)
11612 : && (
11613 : #line 1809 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11614 : (TARGET_AVX512BW) &&
11615 : #line 333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11616 : (TARGET_AVX512VL)))
11617 : return 2582; /* avx512vl_blendmv16hi */
11618 : }
11619 : }
11620 : operands[2] = x3;
11621 : if (!memory_operand (operands[0], E_V16HImode))
11622 : return -1;
11623 : x4 = XEXP (x2, 0);
11624 : operands[1] = x4;
11625 : if (!register_operand (operands[1], E_V16HImode))
11626 : return -1;
11627 : x5 = XEXP (x2, 1);
11628 : if (!rtx_equal_p (x5, operands[0])
11629 : || !(
11630 : #line 1852 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11631 : (TARGET_AVX512BW) &&
11632 : #line 333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11633 : (TARGET_AVX512VL)))
11634 : return -1;
11635 : return 2606; /* *avx512vl_storev16hi_mask */
11636 :
11637 : case E_V8HImode:
11638 : x2 = XEXP (x1, 1);
11639 : if (GET_MODE (x2) != E_V8HImode)
11640 : return -1;
11641 : x3 = XEXP (x2, 2);
11642 : if (!register_operand (x3, E_QImode))
11643 : return -1;
11644 : operands[3] = x3;
11645 : if (register_operand (operands[0], E_V8HImode))
11646 : {
11647 : x4 = XEXP (x2, 0);
11648 : operands[2] = x4;
11649 : if (nonimmediate_operand (operands[2], E_V8HImode))
11650 : {
11651 : x5 = XEXP (x2, 1);
11652 : operands[1] = x5;
11653 : if (nonimm_or_0_operand (operands[1], E_V8HImode)
11654 : && (
11655 : #line 1809 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11656 : (TARGET_AVX512BW) &&
11657 : #line 333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11658 : (TARGET_AVX512VL)))
11659 : return 2583; /* avx512vl_blendmv8hi */
11660 : }
11661 : }
11662 : operands[2] = x3;
11663 : if (!memory_operand (operands[0], E_V8HImode))
11664 : return -1;
11665 : x4 = XEXP (x2, 0);
11666 : operands[1] = x4;
11667 : if (!register_operand (operands[1], E_V8HImode))
11668 : return -1;
11669 : x5 = XEXP (x2, 1);
11670 : if (!rtx_equal_p (x5, operands[0])
11671 : || !(
11672 : #line 1852 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11673 : (TARGET_AVX512BW) &&
11674 : #line 333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11675 : (TARGET_AVX512VL)))
11676 : return -1;
11677 : return 2607; /* *avx512vl_storev8hi_mask */
11678 :
11679 : case E_V32HFmode:
11680 : x2 = XEXP (x1, 1);
11681 : if (GET_MODE (x2) != E_V32HFmode)
11682 : return -1;
11683 : x3 = XEXP (x2, 2);
11684 : if (!register_operand (x3, E_SImode))
11685 : return -1;
11686 : operands[3] = x3;
11687 : if (register_operand (operands[0], E_V32HFmode))
11688 : {
11689 : x4 = XEXP (x2, 0);
11690 : operands[2] = x4;
11691 : if (nonimmediate_operand (operands[2], E_V32HFmode))
11692 : {
11693 : x5 = XEXP (x2, 1);
11694 : operands[1] = x5;
11695 : if (nonimm_or_0_operand (operands[1], E_V32HFmode)
11696 : &&
11697 : #line 1809 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11698 : (TARGET_AVX512BW))
11699 : return 2584; /* avx512bw_blendmv32hf */
11700 : }
11701 : }
11702 : operands[2] = x3;
11703 : if (!memory_operand (operands[0], E_V32HFmode))
11704 : return -1;
11705 : x4 = XEXP (x2, 0);
11706 : operands[1] = x4;
11707 : if (!register_operand (operands[1], E_V32HFmode))
11708 : return -1;
11709 : x5 = XEXP (x2, 1);
11710 : if (!rtx_equal_p (x5, operands[0])
11711 : || !
11712 : #line 1852 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11713 : (TARGET_AVX512BW))
11714 : return -1;
11715 : return 2608; /* *avx512bw_storev32hf_mask */
11716 :
11717 : case E_V16HFmode:
11718 : return recog_158 (x1, insn, pnum_clobbers);
11719 :
11720 : case E_V8HFmode:
11721 : return recog_157 (x1, insn, pnum_clobbers);
11722 :
11723 : case E_V32BFmode:
11724 : return recog_156 (x1, insn, pnum_clobbers);
11725 :
11726 : case E_V16BFmode:
11727 : return recog_155 (x1, insn, pnum_clobbers);
11728 :
11729 : case E_V8BFmode:
11730 : return recog_154 (x1, insn, pnum_clobbers);
11731 :
11732 : default:
11733 : return -1;
11734 : }
11735 : }
11736 :
11737 : int
11738 : recog_166 (rtx x1 ATTRIBUTE_UNUSED,
11739 : rtx_insn *insn ATTRIBUTE_UNUSED,
11740 : int *pnum_clobbers ATTRIBUTE_UNUSED)
11741 : {
11742 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
11743 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
11744 : rtx x10, x11, x12, x13, x14, x15, x16;
11745 : int res ATTRIBUTE_UNUSED;
11746 : x2 = XEXP (x1, 1);
11747 : x3 = XEXP (x2, 0);
11748 : x4 = XEXP (x3, 1);
11749 : if (pattern932 (x4) != 0)
11750 : return -1;
11751 : x5 = XEXP (x2, 2);
11752 : if (!register_operand (x5, E_QImode))
11753 : return -1;
11754 : x6 = XVECEXP (x4, 0, 0);
11755 : switch (XWINT (x6, 0))
11756 : {
11757 : case 2L:
11758 : x7 = XVECEXP (x4, 0, 1);
11759 : if (XWINT (x7, 0) != 10L)
11760 : return -1;
11761 : x8 = XVECEXP (x4, 0, 2);
11762 : if (XWINT (x8, 0) != 3L)
11763 : return -1;
11764 : x9 = XVECEXP (x4, 0, 3);
11765 : if (XWINT (x9, 0) != 11L
11766 : || pattern1754 (x2) != 0)
11767 : return -1;
11768 : switch (GET_MODE (operands[0]))
11769 : {
11770 : case E_V8SFmode:
11771 : if (pattern1598 (x2,
11772 : E_V8SFmode,
11773 : E_V16SFmode) != 0
11774 : || !(
11775 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11776 : (TARGET_AVX512F) &&
11777 : #line 11557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11778 : (TARGET_AVX && TARGET_AVX512VL)))
11779 : return -1;
11780 : return 5269; /* avx_unpckhps256_mask */
11781 :
11782 : case E_V8SImode:
11783 : if (pattern1598 (x2,
11784 : E_V8SImode,
11785 : E_V16SImode) != 0
11786 : || !(
11787 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11788 : (TARGET_AVX512F) &&
11789 : #line 20191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11790 : (TARGET_AVX2 && TARGET_AVX512VL)))
11791 : return -1;
11792 : return 8443; /* avx2_interleave_highv8si_mask */
11793 :
11794 : default:
11795 : return -1;
11796 : }
11797 :
11798 : case 0L:
11799 : x7 = XVECEXP (x4, 0, 1);
11800 : switch (XWINT (x7, 0))
11801 : {
11802 : case 8L:
11803 : x8 = XVECEXP (x4, 0, 2);
11804 : switch (XWINT (x8, 0))
11805 : {
11806 : case 1L:
11807 : x9 = XVECEXP (x4, 0, 3);
11808 : if (XWINT (x9, 0) != 9L)
11809 : return -1;
11810 : x10 = XEXP (x3, 0);
11811 : x11 = XEXP (x10, 1);
11812 : operands[2] = x11;
11813 : x12 = XEXP (x2, 1);
11814 : operands[3] = x12;
11815 : operands[4] = x5;
11816 : x13 = XVECEXP (x4, 0, 4);
11817 : switch (XWINT (x13, 0))
11818 : {
11819 : case 4L:
11820 : x14 = XVECEXP (x4, 0, 5);
11821 : if (XWINT (x14, 0) != 12L)
11822 : return -1;
11823 : x15 = XVECEXP (x4, 0, 6);
11824 : if (XWINT (x15, 0) != 5L)
11825 : return -1;
11826 : x16 = XVECEXP (x4, 0, 7);
11827 : if (XWINT (x16, 0) != 13L)
11828 : return -1;
11829 : switch (GET_MODE (operands[0]))
11830 : {
11831 : case E_V8SFmode:
11832 : if (pattern1598 (x2,
11833 : E_V8SFmode,
11834 : E_V16SFmode) != 0
11835 : || !(
11836 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11837 : (TARGET_AVX512F) &&
11838 : #line 11645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11839 : (TARGET_AVX && TARGET_AVX512VL)))
11840 : return -1;
11841 : return 5275; /* avx_unpcklps256_mask */
11842 :
11843 : case E_V8SImode:
11844 : if (pattern1598 (x2,
11845 : E_V8SImode,
11846 : E_V16SImode) != 0
11847 : || !(
11848 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11849 : (TARGET_AVX512F) &&
11850 : #line 20246 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11851 : (TARGET_AVX2 && TARGET_AVX512VL)))
11852 : return -1;
11853 : return 8449; /* avx2_interleave_lowv8si_mask */
11854 :
11855 : default:
11856 : return -1;
11857 : }
11858 :
11859 : case 2L:
11860 : x14 = XVECEXP (x4, 0, 5);
11861 : if (XWINT (x14, 0) != 10L)
11862 : return -1;
11863 : x15 = XVECEXP (x4, 0, 6);
11864 : if (XWINT (x15, 0) != 3L)
11865 : return -1;
11866 : x16 = XVECEXP (x4, 0, 7);
11867 : if (XWINT (x16, 0) != 11L)
11868 : return -1;
11869 : switch (GET_MODE (operands[0]))
11870 : {
11871 : case E_V8HImode:
11872 : if (pattern1599 (x2,
11873 : E_V8HImode,
11874 : E_V16HImode) != 0
11875 : || !(
11876 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11877 : (TARGET_AVX512F) &&
11878 : #line 20171 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11879 : (TARGET_SSE2 && TARGET_AVX512VL && TARGET_AVX512BW)))
11880 : return -1;
11881 : return 8437; /* vec_interleave_lowv8hi_mask */
11882 :
11883 : case E_V8HFmode:
11884 : if (pattern1599 (x2,
11885 : E_V8HFmode,
11886 : E_V16HFmode) != 0
11887 : || !(
11888 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11889 : (TARGET_AVX512F) &&
11890 : #line 20171 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11891 : (TARGET_SSE2 && TARGET_AVX512VL && TARGET_AVX512BW)))
11892 : return -1;
11893 : return 8439; /* vec_interleave_lowv8hf_mask */
11894 :
11895 : case E_V8BFmode:
11896 : if (pattern1599 (x2,
11897 : E_V8BFmode,
11898 : E_V16BFmode) != 0
11899 : || !(
11900 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11901 : (TARGET_AVX512F) &&
11902 : #line 20171 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11903 : (TARGET_SSE2 && TARGET_AVX512VL && TARGET_AVX512BW)))
11904 : return -1;
11905 : return 8441; /* vec_interleave_lowv8bf_mask */
11906 :
11907 : default:
11908 : return -1;
11909 : }
11910 :
11911 : default:
11912 : return -1;
11913 : }
11914 :
11915 : case 2L:
11916 : x9 = XVECEXP (x4, 0, 3);
11917 : if (XWINT (x9, 0) != 10L)
11918 : return -1;
11919 : x13 = XVECEXP (x4, 0, 4);
11920 : if (XWINT (x13, 0) != 4L)
11921 : return -1;
11922 : x14 = XVECEXP (x4, 0, 5);
11923 : if (XWINT (x14, 0) != 12L)
11924 : return -1;
11925 : x15 = XVECEXP (x4, 0, 6);
11926 : if (XWINT (x15, 0) != 6L)
11927 : return -1;
11928 : x16 = XVECEXP (x4, 0, 7);
11929 : if (XWINT (x16, 0) != 14L)
11930 : return -1;
11931 : switch (GET_MODE (operands[0]))
11932 : {
11933 : case E_V8DFmode:
11934 : if (pattern1661 (x2,
11935 : E_V8DFmode,
11936 : E_V16DFmode) != 0)
11937 : return -1;
11938 : x12 = XEXP (x2, 1);
11939 : operands[2] = x12;
11940 : if (nonimmediate_operand (operands[1], E_V8DFmode))
11941 : {
11942 : operands[3] = x5;
11943 : x10 = XEXP (x3, 0);
11944 : x11 = XEXP (x10, 1);
11945 : if (rtx_equal_p (x11, operands[1])
11946 : &&
11947 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11948 : (TARGET_AVX512F))
11949 : return 5427; /* avx512f_movddup512_mask */
11950 : }
11951 : operands[3] = x12;
11952 : if (!register_operand (operands[1], E_V8DFmode))
11953 : return -1;
11954 : x10 = XEXP (x3, 0);
11955 : x11 = XEXP (x10, 1);
11956 : operands[2] = x11;
11957 : if (!nonimmediate_operand (operands[2], E_V8DFmode))
11958 : return -1;
11959 : operands[4] = x5;
11960 : if (!
11961 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11962 : (TARGET_AVX512F))
11963 : return -1;
11964 : return 5429; /* avx512f_unpcklpd512_mask */
11965 :
11966 : case E_V8DImode:
11967 : if (pattern1662 (x2,
11968 : E_V8DImode,
11969 : E_V16DImode) != 0
11970 : || !
11971 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11972 : (TARGET_AVX512F))
11973 : return -1;
11974 : return 7248; /* avx512f_interleave_lowv8di_mask */
11975 :
11976 : default:
11977 : return -1;
11978 : }
11979 :
11980 : default:
11981 : return -1;
11982 : }
11983 :
11984 : case 0L:
11985 : if (pattern1693 (x4) != 0
11986 : || pattern1837 (x2,
11987 : E_V8SFmode,
11988 : E_V16SFmode) != 0
11989 : || !(
11990 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11991 : (TARGET_AVX512F) &&
11992 : #line 11784 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11993 : (TARGET_AVX && TARGET_AVX512VL)))
11994 : return -1;
11995 : return 5285; /* avx_movsldup256_mask */
11996 :
11997 : default:
11998 : return -1;
11999 : }
12000 :
12001 : case 1L:
12002 : x8 = XVECEXP (x4, 0, 2);
12003 : if (XWINT (x8, 0) != 3L)
12004 : return -1;
12005 : x13 = XVECEXP (x4, 0, 4);
12006 : if (XWINT (x13, 0) != 5L)
12007 : return -1;
12008 : x15 = XVECEXP (x4, 0, 6);
12009 : if (XWINT (x15, 0) != 7L)
12010 : return -1;
12011 : x7 = XVECEXP (x4, 0, 1);
12012 : switch (XWINT (x7, 0))
12013 : {
12014 : case 1L:
12015 : x9 = XVECEXP (x4, 0, 3);
12016 : if (XWINT (x9, 0) != 3L)
12017 : return -1;
12018 : x14 = XVECEXP (x4, 0, 5);
12019 : if (XWINT (x14, 0) != 5L)
12020 : return -1;
12021 : x16 = XVECEXP (x4, 0, 7);
12022 : if (XWINT (x16, 0) != 7L
12023 : || pattern1837 (x2,
12024 : E_V8SFmode,
12025 : E_V16SFmode) != 0
12026 : || !(
12027 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12028 : (TARGET_AVX512F) &&
12029 : #line 11731 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12030 : (TARGET_AVX && TARGET_AVX512VL)))
12031 : return -1;
12032 : return 5279; /* avx_movshdup256_mask */
12033 :
12034 : case 9L:
12035 : x9 = XVECEXP (x4, 0, 3);
12036 : if (XWINT (x9, 0) != 11L)
12037 : return -1;
12038 : x14 = XVECEXP (x4, 0, 5);
12039 : if (XWINT (x14, 0) != 13L)
12040 : return -1;
12041 : x16 = XVECEXP (x4, 0, 7);
12042 : if (XWINT (x16, 0) != 15L)
12043 : return -1;
12044 : x10 = XEXP (x3, 0);
12045 : x11 = XEXP (x10, 1);
12046 : operands[2] = x11;
12047 : x12 = XEXP (x2, 1);
12048 : operands[3] = x12;
12049 : operands[4] = x5;
12050 : switch (GET_MODE (operands[0]))
12051 : {
12052 : case E_V8DFmode:
12053 : if (pattern1598 (x2,
12054 : E_V8DFmode,
12055 : E_V16DFmode) != 0
12056 : || !
12057 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12058 : (TARGET_AVX512F))
12059 : return -1;
12060 : return 5421; /* avx512f_unpckhpd512_mask */
12061 :
12062 : case E_V8DImode:
12063 : if (pattern1598 (x2,
12064 : E_V8DImode,
12065 : E_V16DImode) != 0
12066 : || !
12067 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12068 : (TARGET_AVX512F))
12069 : return -1;
12070 : return 7242; /* avx512f_interleave_highv8di_mask */
12071 :
12072 : default:
12073 : return -1;
12074 : }
12075 :
12076 : default:
12077 : return -1;
12078 : }
12079 :
12080 : case 4L:
12081 : x7 = XVECEXP (x4, 0, 1);
12082 : if (XWINT (x7, 0) != 12L)
12083 : return -1;
12084 : x8 = XVECEXP (x4, 0, 2);
12085 : if (XWINT (x8, 0) != 5L)
12086 : return -1;
12087 : x9 = XVECEXP (x4, 0, 3);
12088 : if (XWINT (x9, 0) != 13L
12089 : || pattern1754 (x2) != 0)
12090 : return -1;
12091 : switch (GET_MODE (operands[0]))
12092 : {
12093 : case E_V8HImode:
12094 : if (pattern1599 (x2,
12095 : E_V8HImode,
12096 : E_V16HImode) != 0
12097 : || !(
12098 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12099 : (TARGET_AVX512F) &&
12100 : #line 20103 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12101 : (TARGET_SSE2 && TARGET_AVX512VL && TARGET_AVX512BW)))
12102 : return -1;
12103 : return 8419; /* vec_interleave_highv8hi_mask */
12104 :
12105 : case E_V8HFmode:
12106 : if (pattern1599 (x2,
12107 : E_V8HFmode,
12108 : E_V16HFmode) != 0
12109 : || !(
12110 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12111 : (TARGET_AVX512F) &&
12112 : #line 20103 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12113 : (TARGET_SSE2 && TARGET_AVX512VL && TARGET_AVX512BW)))
12114 : return -1;
12115 : return 8421; /* vec_interleave_highv8hf_mask */
12116 :
12117 : case E_V8BFmode:
12118 : if (pattern1599 (x2,
12119 : E_V8BFmode,
12120 : E_V16BFmode) != 0
12121 : || !(
12122 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12123 : (TARGET_AVX512F) &&
12124 : #line 20103 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12125 : (TARGET_SSE2 && TARGET_AVX512VL && TARGET_AVX512BW)))
12126 : return -1;
12127 : return 8423; /* vec_interleave_highv8bf_mask */
12128 :
12129 : default:
12130 : return -1;
12131 : }
12132 :
12133 : default:
12134 : return -1;
12135 : }
12136 : }
12137 :
12138 : int
12139 : recog_182 (rtx x1 ATTRIBUTE_UNUSED,
12140 : rtx_insn *insn ATTRIBUTE_UNUSED,
12141 : int *pnum_clobbers ATTRIBUTE_UNUSED)
12142 : {
12143 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
12144 : rtx x2, x3;
12145 : int res ATTRIBUTE_UNUSED;
12146 : x2 = XEXP (x1, 1);
12147 : x3 = XEXP (x2, 0);
12148 : switch (GET_CODE (x3))
12149 : {
12150 : case REG:
12151 : case SUBREG:
12152 : case MEM:
12153 : res = recog_160 (x1, insn, pnum_clobbers);
12154 : if (res >= 0)
12155 : return res;
12156 : break;
12157 :
12158 : case CONST_INT:
12159 : case CONST_DOUBLE:
12160 : case CONST_VECTOR:
12161 : switch (pattern322 (x2))
12162 : {
12163 : case 0:
12164 : res = recog_161 (x1, insn, pnum_clobbers);
12165 : if (res >= 0)
12166 : return res;
12167 : break;
12168 :
12169 : case 1:
12170 : if (vector_all_ones_operand (operands[1], E_V16QImode)
12171 : && const0_operand (operands[2], E_V16QImode)
12172 : &&
12173 : #line 18587 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12174 : (TARGET_AVX512VL && ix86_pre_reload_split ()
12175 : && (INTVAL (operands[5]) == 2 || INTVAL (operands[5]) == 5)))
12176 : return 7988; /* *avx2_pcmpv16qi3_6 */
12177 : if (const0_operand (operands[1], E_V16QImode)
12178 : && vector_all_ones_operand (operands[2], E_V16QImode)
12179 : &&
12180 : #line 18645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12181 : (TARGET_AVX512VL && ix86_pre_reload_split ()
12182 : /* NE is commutative. */
12183 : && INTVAL (operands[5]) == 4))
12184 : return 8011; /* *avx2_pcmpv16qi3_8 */
12185 : break;
12186 :
12187 : case 2:
12188 : if (vector_all_ones_operand (operands[1], E_V8HImode)
12189 : && const0_operand (operands[2], E_V8HImode)
12190 : &&
12191 : #line 18587 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12192 : (TARGET_AVX512VL && ix86_pre_reload_split ()
12193 : && (INTVAL (operands[5]) == 2 || INTVAL (operands[5]) == 5)))
12194 : return 7990; /* *avx2_pcmpv8hi3_6 */
12195 : if (const0_operand (operands[1], E_V8HImode)
12196 : && vector_all_ones_operand (operands[2], E_V8HImode)
12197 : &&
12198 : #line 18645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12199 : (TARGET_AVX512VL && ix86_pre_reload_split ()
12200 : /* NE is commutative. */
12201 : && INTVAL (operands[5]) == 4))
12202 : return 8012; /* *avx2_pcmpv8hi3_8 */
12203 : break;
12204 :
12205 : case 3:
12206 : if (vector_all_ones_operand (operands[1], E_V4SImode)
12207 : && const0_operand (operands[2], E_V4SImode)
12208 : &&
12209 : #line 18587 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12210 : (TARGET_AVX512VL && ix86_pre_reload_split ()
12211 : && (INTVAL (operands[5]) == 2 || INTVAL (operands[5]) == 5)))
12212 : return 7992; /* *avx2_pcmpv4si3_6 */
12213 : if (const0_operand (operands[1], E_V4SImode)
12214 : && vector_all_ones_operand (operands[2], E_V4SImode)
12215 : &&
12216 : #line 18645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12217 : (TARGET_AVX512VL && ix86_pre_reload_split ()
12218 : /* NE is commutative. */
12219 : && INTVAL (operands[5]) == 4))
12220 : return 8013; /* *avx2_pcmpv4si3_8 */
12221 : break;
12222 :
12223 : case 4:
12224 : if (vector_all_ones_operand (operands[1], E_V2DImode)
12225 : && const0_operand (operands[2], E_V2DImode)
12226 : &&
12227 : #line 18587 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12228 : (TARGET_AVX512VL && ix86_pre_reload_split ()
12229 : && (INTVAL (operands[5]) == 2 || INTVAL (operands[5]) == 5)))
12230 : return 7994; /* *avx2_pcmpv2di3_6 */
12231 : if (const0_operand (operands[1], E_V2DImode)
12232 : && vector_all_ones_operand (operands[2], E_V2DImode)
12233 : &&
12234 : #line 18645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12235 : (TARGET_AVX512VL && ix86_pre_reload_split ()
12236 : /* NE is commutative. */
12237 : && INTVAL (operands[5]) == 4))
12238 : return 8014; /* *avx2_pcmpv2di3_8 */
12239 : break;
12240 :
12241 : case 5:
12242 : if (vector_all_ones_operand (operands[1], E_V32QImode)
12243 : && const0_operand (operands[2], E_V32QImode)
12244 : &&
12245 : #line 18587 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12246 : (TARGET_AVX512VL && ix86_pre_reload_split ()
12247 : && (INTVAL (operands[5]) == 2 || INTVAL (operands[5]) == 5)))
12248 : return 7996; /* *avx2_pcmpv32qi3_6 */
12249 : if (const0_operand (operands[1], E_V32QImode)
12250 : && vector_all_ones_operand (operands[2], E_V32QImode)
12251 : &&
12252 : #line 18645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12253 : (TARGET_AVX512VL && ix86_pre_reload_split ()
12254 : /* NE is commutative. */
12255 : && INTVAL (operands[5]) == 4))
12256 : return 8015; /* *avx2_pcmpv32qi3_8 */
12257 : break;
12258 :
12259 : case 6:
12260 : if (vector_all_ones_operand (operands[1], E_V16HImode)
12261 : && const0_operand (operands[2], E_V16HImode)
12262 : &&
12263 : #line 18587 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12264 : (TARGET_AVX512VL && ix86_pre_reload_split ()
12265 : && (INTVAL (operands[5]) == 2 || INTVAL (operands[5]) == 5)))
12266 : return 7998; /* *avx2_pcmpv16hi3_6 */
12267 : if (const0_operand (operands[1], E_V16HImode)
12268 : && vector_all_ones_operand (operands[2], E_V16HImode)
12269 : &&
12270 : #line 18645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12271 : (TARGET_AVX512VL && ix86_pre_reload_split ()
12272 : /* NE is commutative. */
12273 : && INTVAL (operands[5]) == 4))
12274 : return 8016; /* *avx2_pcmpv16hi3_8 */
12275 : break;
12276 :
12277 : case 7:
12278 : if (vector_all_ones_operand (operands[1], E_V8SImode)
12279 : && const0_operand (operands[2], E_V8SImode)
12280 : &&
12281 : #line 18587 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12282 : (TARGET_AVX512VL && ix86_pre_reload_split ()
12283 : && (INTVAL (operands[5]) == 2 || INTVAL (operands[5]) == 5)))
12284 : return 8000; /* *avx2_pcmpv8si3_6 */
12285 : if (const0_operand (operands[1], E_V8SImode)
12286 : && vector_all_ones_operand (operands[2], E_V8SImode)
12287 : &&
12288 : #line 18645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12289 : (TARGET_AVX512VL && ix86_pre_reload_split ()
12290 : /* NE is commutative. */
12291 : && INTVAL (operands[5]) == 4))
12292 : return 8017; /* *avx2_pcmpv8si3_8 */
12293 : break;
12294 :
12295 : case 8:
12296 : if (vector_all_ones_operand (operands[1], E_V4DImode)
12297 : && const0_operand (operands[2], E_V4DImode)
12298 : &&
12299 : #line 18587 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12300 : (TARGET_AVX512VL && ix86_pre_reload_split ()
12301 : && (INTVAL (operands[5]) == 2 || INTVAL (operands[5]) == 5)))
12302 : return 8002; /* *avx2_pcmpv4di3_6 */
12303 : if (const0_operand (operands[1], E_V4DImode)
12304 : && vector_all_ones_operand (operands[2], E_V4DImode)
12305 : &&
12306 : #line 18645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12307 : (TARGET_AVX512VL && ix86_pre_reload_split ()
12308 : /* NE is commutative. */
12309 : && INTVAL (operands[5]) == 4))
12310 : return 8018; /* *avx2_pcmpv4di3_8 */
12311 : break;
12312 :
12313 : case 9:
12314 : if ((
12315 : #line 4413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12316 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
12317 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12318 : (TARGET_AVX)))
12319 : return 3292; /* *avx_cmpv8sf3_2 */
12320 : break;
12321 :
12322 : case 10:
12323 : if (
12324 : #line 18462 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12325 : (TARGET_AVX512VL && ix86_pre_reload_split ()
12326 : /* NE is commutative. */
12327 : && ((INTVAL (operands[5]) == 4
12328 : && !(MEM_P (operands[3]) && MEM_P (operands[4])))
12329 : /* LE, 3 must be register. */
12330 : || (INTVAL (operands[5]) == 2
12331 : && !MEM_P (operands[3]))
12332 : /* NLT aka GE, 4 must be register and we swap operands. */
12333 : || (INTVAL (operands[5]) == 5
12334 : && !MEM_P (operands[4])))))
12335 : return 7979; /* *avx2_pcmpv8si3_2 */
12336 : break;
12337 :
12338 : case 11:
12339 : if (
12340 : #line 4413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12341 : (TARGET_AVX512VL && ix86_pre_reload_split ()))
12342 : return 3293; /* *avx_cmpv4sf3_2 */
12343 : break;
12344 :
12345 : case 12:
12346 : if (
12347 : #line 18462 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12348 : (TARGET_AVX512VL && ix86_pre_reload_split ()
12349 : /* NE is commutative. */
12350 : && ((INTVAL (operands[5]) == 4
12351 : && !(MEM_P (operands[3]) && MEM_P (operands[4])))
12352 : /* LE, 3 must be register. */
12353 : || (INTVAL (operands[5]) == 2
12354 : && !MEM_P (operands[3]))
12355 : /* NLT aka GE, 4 must be register and we swap operands. */
12356 : || (INTVAL (operands[5]) == 5
12357 : && !MEM_P (operands[4])))))
12358 : return 7975; /* *avx2_pcmpv4si3_2 */
12359 : break;
12360 :
12361 : case 13:
12362 : if ((
12363 : #line 4413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12364 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
12365 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12366 : (TARGET_AVX)))
12367 : return 3294; /* *avx_cmpv4df3_2 */
12368 : break;
12369 :
12370 : case 14:
12371 : if (
12372 : #line 18462 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12373 : (TARGET_AVX512VL && ix86_pre_reload_split ()
12374 : /* NE is commutative. */
12375 : && ((INTVAL (operands[5]) == 4
12376 : && !(MEM_P (operands[3]) && MEM_P (operands[4])))
12377 : /* LE, 3 must be register. */
12378 : || (INTVAL (operands[5]) == 2
12379 : && !MEM_P (operands[3]))
12380 : /* NLT aka GE, 4 must be register and we swap operands. */
12381 : || (INTVAL (operands[5]) == 5
12382 : && !MEM_P (operands[4])))))
12383 : return 7980; /* *avx2_pcmpv4di3_2 */
12384 : break;
12385 :
12386 : case 15:
12387 : if ((
12388 : #line 4413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12389 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
12390 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12391 : (TARGET_SSE2)))
12392 : return 3295; /* *avx_cmpv2df3_2 */
12393 : break;
12394 :
12395 : case 16:
12396 : if (
12397 : #line 18462 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12398 : (TARGET_AVX512VL && ix86_pre_reload_split ()
12399 : /* NE is commutative. */
12400 : && ((INTVAL (operands[5]) == 4
12401 : && !(MEM_P (operands[3]) && MEM_P (operands[4])))
12402 : /* LE, 3 must be register. */
12403 : || (INTVAL (operands[5]) == 2
12404 : && !MEM_P (operands[3]))
12405 : /* NLT aka GE, 4 must be register and we swap operands. */
12406 : || (INTVAL (operands[5]) == 5
12407 : && !MEM_P (operands[4])))))
12408 : return 7976; /* *avx2_pcmpv2di3_2 */
12409 : break;
12410 :
12411 : case 17:
12412 : if (
12413 : #line 18462 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12414 : (TARGET_AVX512VL && ix86_pre_reload_split ()
12415 : /* NE is commutative. */
12416 : && ((INTVAL (operands[5]) == 4
12417 : && !(MEM_P (operands[3]) && MEM_P (operands[4])))
12418 : /* LE, 3 must be register. */
12419 : || (INTVAL (operands[5]) == 2
12420 : && !MEM_P (operands[3]))
12421 : /* NLT aka GE, 4 must be register and we swap operands. */
12422 : || (INTVAL (operands[5]) == 5
12423 : && !MEM_P (operands[4])))))
12424 : return 7973; /* *avx2_pcmpv16qi3_2 */
12425 : break;
12426 :
12427 : case 18:
12428 : if (
12429 : #line 18462 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12430 : (TARGET_AVX512VL && ix86_pre_reload_split ()
12431 : /* NE is commutative. */
12432 : && ((INTVAL (operands[5]) == 4
12433 : && !(MEM_P (operands[3]) && MEM_P (operands[4])))
12434 : /* LE, 3 must be register. */
12435 : || (INTVAL (operands[5]) == 2
12436 : && !MEM_P (operands[3]))
12437 : /* NLT aka GE, 4 must be register and we swap operands. */
12438 : || (INTVAL (operands[5]) == 5
12439 : && !MEM_P (operands[4])))))
12440 : return 7974; /* *avx2_pcmpv8hi3_2 */
12441 : break;
12442 :
12443 : case 19:
12444 : if (
12445 : #line 18462 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12446 : (TARGET_AVX512VL && ix86_pre_reload_split ()
12447 : /* NE is commutative. */
12448 : && ((INTVAL (operands[5]) == 4
12449 : && !(MEM_P (operands[3]) && MEM_P (operands[4])))
12450 : /* LE, 3 must be register. */
12451 : || (INTVAL (operands[5]) == 2
12452 : && !MEM_P (operands[3]))
12453 : /* NLT aka GE, 4 must be register and we swap operands. */
12454 : || (INTVAL (operands[5]) == 5
12455 : && !MEM_P (operands[4])))))
12456 : return 7977; /* *avx2_pcmpv32qi3_2 */
12457 : break;
12458 :
12459 : case 20:
12460 : if (
12461 : #line 18462 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12462 : (TARGET_AVX512VL && ix86_pre_reload_split ()
12463 : /* NE is commutative. */
12464 : && ((INTVAL (operands[5]) == 4
12465 : && !(MEM_P (operands[3]) && MEM_P (operands[4])))
12466 : /* LE, 3 must be register. */
12467 : || (INTVAL (operands[5]) == 2
12468 : && !MEM_P (operands[3]))
12469 : /* NLT aka GE, 4 must be register and we swap operands. */
12470 : || (INTVAL (operands[5]) == 5
12471 : && !MEM_P (operands[4])))))
12472 : return 7978; /* *avx2_pcmpv16hi3_2 */
12473 : break;
12474 :
12475 : case 21:
12476 : switch (GET_MODE (operands[0]))
12477 : {
12478 : case E_V64QImode:
12479 : if (register_operand (operands[0], E_V64QImode)
12480 : && GET_MODE (x2) == E_V64QImode
12481 : && register_operand (operands[1], E_DImode))
12482 : {
12483 : if (vector_all_ones_operand (operands[2], E_V64QImode)
12484 : && const0_operand (operands[3], E_V64QImode)
12485 : &&
12486 : #line 10681 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12487 : (TARGET_AVX512BW))
12488 : return 5227; /* *avx512bw_cvtmask2bv64qi */
12489 : if (const0_operand (operands[2], E_V64QImode)
12490 : && vector_all_ones_operand (operands[3], E_V64QImode)
12491 : && (
12492 : #line 10730 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12493 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
12494 : #line 500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12495 : (TARGET_AVX512BW)))
12496 : return 5239; /* *avx512bw_cvtmask2bv64qi_not */
12497 : }
12498 : break;
12499 :
12500 : case E_V16QImode:
12501 : if (register_operand (operands[0], E_V16QImode)
12502 : && GET_MODE (x2) == E_V16QImode
12503 : && register_operand (operands[1], E_HImode))
12504 : {
12505 : if (vector_all_ones_operand (operands[2], E_V16QImode)
12506 : && const0_operand (operands[3], E_V16QImode)
12507 : && (
12508 : #line 10681 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12509 : (TARGET_AVX512BW) &&
12510 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12511 : (TARGET_AVX512VL)))
12512 : return 5228; /* *avx512vl_cvtmask2bv16qi */
12513 : if (const0_operand (operands[2], E_V16QImode)
12514 : && vector_all_ones_operand (operands[3], E_V16QImode)
12515 : && (
12516 : #line 10730 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12517 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
12518 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12519 : (TARGET_AVX512VL && TARGET_AVX512BW)))
12520 : return 5241; /* *avx512vl_cvtmask2bv16qi_not */
12521 : }
12522 : break;
12523 :
12524 : case E_V32QImode:
12525 : if (register_operand (operands[0], E_V32QImode)
12526 : && GET_MODE (x2) == E_V32QImode
12527 : && register_operand (operands[1], E_SImode))
12528 : {
12529 : if (vector_all_ones_operand (operands[2], E_V32QImode)
12530 : && const0_operand (operands[3], E_V32QImode)
12531 : && (
12532 : #line 10681 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12533 : (TARGET_AVX512BW) &&
12534 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12535 : (TARGET_AVX512VL)))
12536 : return 5229; /* *avx512vl_cvtmask2bv32qi */
12537 : if (const0_operand (operands[2], E_V32QImode)
12538 : && vector_all_ones_operand (operands[3], E_V32QImode)
12539 : && (
12540 : #line 10730 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12541 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
12542 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12543 : (TARGET_AVX512VL && TARGET_AVX512BW)))
12544 : return 5240; /* *avx512vl_cvtmask2bv32qi_not */
12545 : }
12546 : break;
12547 :
12548 : case E_V32HImode:
12549 : if (register_operand (operands[0], E_V32HImode)
12550 : && GET_MODE (x2) == E_V32HImode
12551 : && register_operand (operands[1], E_SImode))
12552 : {
12553 : if (vector_all_ones_operand (operands[2], E_V32HImode)
12554 : && const0_operand (operands[3], E_V32HImode)
12555 : &&
12556 : #line 10681 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12557 : (TARGET_AVX512BW))
12558 : return 5230; /* *avx512bw_cvtmask2wv32hi */
12559 : if (const0_operand (operands[2], E_V32HImode)
12560 : && vector_all_ones_operand (operands[3], E_V32HImode)
12561 : && (
12562 : #line 10730 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12563 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
12564 : #line 503 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12565 : (TARGET_AVX512BW)))
12566 : return 5242; /* *avx512bw_cvtmask2wv32hi_not */
12567 : }
12568 : break;
12569 :
12570 : case E_V16HImode:
12571 : if (register_operand (operands[0], E_V16HImode)
12572 : && GET_MODE (x2) == E_V16HImode
12573 : && register_operand (operands[1], E_HImode))
12574 : {
12575 : if (vector_all_ones_operand (operands[2], E_V16HImode)
12576 : && const0_operand (operands[3], E_V16HImode)
12577 : && (
12578 : #line 10681 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12579 : (TARGET_AVX512BW) &&
12580 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12581 : (TARGET_AVX512VL)))
12582 : return 5231; /* *avx512vl_cvtmask2wv16hi */
12583 : if (const0_operand (operands[2], E_V16HImode)
12584 : && vector_all_ones_operand (operands[3], E_V16HImode)
12585 : && (
12586 : #line 10730 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12587 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
12588 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12589 : (TARGET_AVX512VL && TARGET_AVX512BW)))
12590 : return 5243; /* *avx512vl_cvtmask2wv16hi_not */
12591 : }
12592 : break;
12593 :
12594 : case E_V8HImode:
12595 : if (register_operand (operands[0], E_V8HImode)
12596 : && GET_MODE (x2) == E_V8HImode
12597 : && register_operand (operands[1], E_QImode))
12598 : {
12599 : if (vector_all_ones_operand (operands[2], E_V8HImode)
12600 : && const0_operand (operands[3], E_V8HImode)
12601 : && (
12602 : #line 10681 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12603 : (TARGET_AVX512BW) &&
12604 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12605 : (TARGET_AVX512VL)))
12606 : return 5232; /* *avx512vl_cvtmask2wv8hi */
12607 : if (const0_operand (operands[2], E_V8HImode)
12608 : && vector_all_ones_operand (operands[3], E_V8HImode)
12609 : && (
12610 : #line 10730 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12611 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
12612 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12613 : (TARGET_AVX512VL && TARGET_AVX512BW)))
12614 : return 5244; /* *avx512vl_cvtmask2wv8hi_not */
12615 : }
12616 : break;
12617 :
12618 : case E_V16SImode:
12619 : if (register_operand (operands[0], E_V16SImode)
12620 : && GET_MODE (x2) == E_V16SImode
12621 : && register_operand (operands[1], E_HImode))
12622 : {
12623 : if (vector_all_ones_operand (operands[2], E_V16SImode)
12624 : && const0_operand (operands[3], E_V16SImode)
12625 : &&
12626 : #line 10704 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12627 : (TARGET_AVX512F))
12628 : return 5233; /* *avx512f_cvtmask2dv16si */
12629 : if (const0_operand (operands[2], E_V16SImode)
12630 : && vector_all_ones_operand (operands[3], E_V16SImode)
12631 : &&
12632 : #line 10730 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12633 : (TARGET_AVX512F && ix86_pre_reload_split ()))
12634 : return 5245; /* *avx512f_cvtmask2dv16si_not */
12635 : }
12636 : break;
12637 :
12638 : case E_V8SImode:
12639 : if (register_operand (operands[0], E_V8SImode)
12640 : && GET_MODE (x2) == E_V8SImode
12641 : && register_operand (operands[1], E_QImode))
12642 : {
12643 : if (vector_all_ones_operand (operands[2], E_V8SImode)
12644 : && const0_operand (operands[3], E_V8SImode)
12645 : && (
12646 : #line 10704 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12647 : (TARGET_AVX512F) &&
12648 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12649 : (TARGET_AVX512VL)))
12650 : return 5234; /* *avx512vl_cvtmask2dv8si */
12651 : if (const0_operand (operands[2], E_V8SImode)
12652 : && vector_all_ones_operand (operands[3], E_V8SImode)
12653 : && (
12654 : #line 10730 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12655 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
12656 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12657 : (TARGET_AVX512VL)))
12658 : return 5246; /* *avx512vl_cvtmask2dv8si_not */
12659 : }
12660 : break;
12661 :
12662 : case E_V4SImode:
12663 : if (register_operand (operands[0], E_V4SImode)
12664 : && GET_MODE (x2) == E_V4SImode
12665 : && register_operand (operands[1], E_QImode))
12666 : {
12667 : if (vector_all_ones_operand (operands[2], E_V4SImode)
12668 : && const0_operand (operands[3], E_V4SImode)
12669 : && (
12670 : #line 10704 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12671 : (TARGET_AVX512F) &&
12672 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12673 : (TARGET_AVX512VL)))
12674 : return 5235; /* *avx512vl_cvtmask2dv4si */
12675 : if (const0_operand (operands[2], E_V4SImode)
12676 : && vector_all_ones_operand (operands[3], E_V4SImode)
12677 : && (
12678 : #line 10730 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12679 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
12680 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12681 : (TARGET_AVX512VL)))
12682 : return 5247; /* *avx512vl_cvtmask2dv4si_not */
12683 : }
12684 : break;
12685 :
12686 : case E_V8DImode:
12687 : if (register_operand (operands[0], E_V8DImode)
12688 : && GET_MODE (x2) == E_V8DImode
12689 : && register_operand (operands[1], E_QImode))
12690 : {
12691 : if (vector_all_ones_operand (operands[2], E_V8DImode)
12692 : && const0_operand (operands[3], E_V8DImode)
12693 : &&
12694 : #line 10704 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12695 : (TARGET_AVX512F))
12696 : return 5236; /* *avx512f_cvtmask2qv8di */
12697 : if (const0_operand (operands[2], E_V8DImode)
12698 : && vector_all_ones_operand (operands[3], E_V8DImode)
12699 : &&
12700 : #line 10730 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12701 : (TARGET_AVX512F && ix86_pre_reload_split ()))
12702 : return 5248; /* *avx512f_cvtmask2qv8di_not */
12703 : }
12704 : break;
12705 :
12706 : case E_V4DImode:
12707 : if (register_operand (operands[0], E_V4DImode)
12708 : && GET_MODE (x2) == E_V4DImode
12709 : && register_operand (operands[1], E_QImode))
12710 : {
12711 : if (vector_all_ones_operand (operands[2], E_V4DImode)
12712 : && const0_operand (operands[3], E_V4DImode)
12713 : && (
12714 : #line 10704 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12715 : (TARGET_AVX512F) &&
12716 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12717 : (TARGET_AVX512VL)))
12718 : return 5237; /* *avx512vl_cvtmask2qv4di */
12719 : if (const0_operand (operands[2], E_V4DImode)
12720 : && vector_all_ones_operand (operands[3], E_V4DImode)
12721 : && (
12722 : #line 10730 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12723 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
12724 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12725 : (TARGET_AVX512VL)))
12726 : return 5249; /* *avx512vl_cvtmask2qv4di_not */
12727 : }
12728 : break;
12729 :
12730 : case E_V2DImode:
12731 : if (register_operand (operands[0], E_V2DImode)
12732 : && GET_MODE (x2) == E_V2DImode
12733 : && register_operand (operands[1], E_QImode))
12734 : {
12735 : if (vector_all_ones_operand (operands[2], E_V2DImode)
12736 : && const0_operand (operands[3], E_V2DImode)
12737 : && (
12738 : #line 10704 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12739 : (TARGET_AVX512F) &&
12740 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12741 : (TARGET_AVX512VL)))
12742 : return 5238; /* *avx512vl_cvtmask2qv2di */
12743 : if (const0_operand (operands[2], E_V2DImode)
12744 : && vector_all_ones_operand (operands[3], E_V2DImode)
12745 : && (
12746 : #line 10730 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12747 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
12748 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12749 : (TARGET_AVX512VL)))
12750 : return 5250; /* *avx512vl_cvtmask2qv2di_not */
12751 : }
12752 : break;
12753 :
12754 : default:
12755 : break;
12756 : }
12757 : break;
12758 :
12759 : default:
12760 : break;
12761 : }
12762 : break;
12763 :
12764 : default:
12765 : break;
12766 : }
12767 : operands[1] = x3;
12768 : switch (pattern325 (x2))
12769 : {
12770 : case 0:
12771 : if (!(
12772 : #line 4440 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12773 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
12774 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12775 : (TARGET_AVX)))
12776 : return -1;
12777 : return 3296; /* *avx_cmpv8sf3_3 */
12778 :
12779 : case 1:
12780 : if (!
12781 : #line 4440 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12782 : (TARGET_AVX512VL && ix86_pre_reload_split ()))
12783 : return -1;
12784 : return 3297; /* *avx_cmpv4sf3_3 */
12785 :
12786 : case 2:
12787 : if (!(
12788 : #line 4440 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12789 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
12790 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12791 : (TARGET_AVX)))
12792 : return -1;
12793 : return 3298; /* *avx_cmpv4df3_3 */
12794 :
12795 : case 3:
12796 : if (!(
12797 : #line 4440 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12798 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
12799 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12800 : (TARGET_SSE2)))
12801 : return -1;
12802 : return 3299; /* *avx_cmpv2df3_3 */
12803 :
12804 : case 4:
12805 : if (!(
12806 : #line 4461 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12807 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
12808 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12809 : (TARGET_AVX)))
12810 : return -1;
12811 : return 3300; /* *avx_cmpv8sf3_4 */
12812 :
12813 : case 5:
12814 : if (!
12815 : #line 4461 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12816 : (TARGET_AVX512VL && ix86_pre_reload_split ()))
12817 : return -1;
12818 : return 3301; /* *avx_cmpv4sf3_4 */
12819 :
12820 : case 6:
12821 : if (!(
12822 : #line 4461 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12823 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
12824 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12825 : (TARGET_AVX)))
12826 : return -1;
12827 : return 3302; /* *avx_cmpv4df3_4 */
12828 :
12829 : case 7:
12830 : if (!(
12831 : #line 4461 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12832 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
12833 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12834 : (TARGET_SSE2)))
12835 : return -1;
12836 : return 3303; /* *avx_cmpv2df3_4 */
12837 :
12838 : default:
12839 : return -1;
12840 : }
12841 : }
12842 :
12843 : int
12844 : recog_202 (rtx x1 ATTRIBUTE_UNUSED,
12845 : rtx_insn *insn ATTRIBUTE_UNUSED,
12846 : int *pnum_clobbers ATTRIBUTE_UNUSED)
12847 : {
12848 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
12849 : rtx x2, x3, x4, x5, x6;
12850 : int res ATTRIBUTE_UNUSED;
12851 : x2 = XEXP (x1, 1);
12852 : x3 = XEXP (x2, 0);
12853 : x4 = XEXP (x3, 0);
12854 : operands[1] = x4;
12855 : x5 = XEXP (x2, 1);
12856 : operands[2] = x5;
12857 : x6 = XEXP (x2, 2);
12858 : switch (GET_CODE (x6))
12859 : {
12860 : case REG:
12861 : case SUBREG:
12862 : operands[3] = x6;
12863 : switch (GET_MODE (operands[0]))
12864 : {
12865 : case E_V32HFmode:
12866 : if (pattern901 (x2,
12867 : E_V32HFmode,
12868 : E_SImode) != 0
12869 : || !(
12870 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12871 : (TARGET_AVX512F) && (
12872 : #line 3111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12873 : (TARGET_SSE && (64 == 64 || TARGET_AVX512VL) && 1) &&
12874 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12875 : (TARGET_AVX512FP16))))
12876 : return -1;
12877 : return 2975; /* avx512fp16_sqrtv32hf2_mask */
12878 :
12879 : case E_V16HFmode:
12880 : if (pattern901 (x2,
12881 : E_V16HFmode,
12882 : E_HImode) != 0
12883 : || !(
12884 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12885 : (TARGET_AVX512F) && (
12886 : #line 3111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12887 : (TARGET_SSE && (32 == 64 || TARGET_AVX512VL) && 1) &&
12888 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12889 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
12890 : return -1;
12891 : return 2978; /* avx512fp16_sqrtv16hf2_mask */
12892 :
12893 : case E_V8HFmode:
12894 : if (pattern901 (x2,
12895 : E_V8HFmode,
12896 : E_QImode) != 0
12897 : || !(
12898 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12899 : (TARGET_AVX512F) && (
12900 : #line 3111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12901 : (TARGET_SSE && (16 == 64 || TARGET_AVX512VL) && 1) &&
12902 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12903 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
12904 : return -1;
12905 : return 2980; /* avx512fp16_sqrtv8hf2_mask */
12906 :
12907 : case E_V16SFmode:
12908 : if (pattern901 (x2,
12909 : E_V16SFmode,
12910 : E_HImode) != 0
12911 : || !(
12912 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12913 : (TARGET_AVX512F) && (
12914 : #line 3111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12915 : (TARGET_SSE && (64 == 64 || TARGET_AVX512VL) && 1) &&
12916 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12917 : (TARGET_AVX512F))))
12918 : return -1;
12919 : return 2983; /* avx512f_sqrtv16sf2_mask */
12920 :
12921 : case E_V8SFmode:
12922 : if (pattern901 (x2,
12923 : E_V8SFmode,
12924 : E_QImode) != 0
12925 : || !(
12926 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12927 : (TARGET_AVX512F) && (
12928 : #line 3111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12929 : (TARGET_SSE && (32 == 64 || TARGET_AVX512VL) && 1) &&
12930 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12931 : (TARGET_AVX))))
12932 : return -1;
12933 : return 2986; /* avx_sqrtv8sf2_mask */
12934 :
12935 : case E_V4SFmode:
12936 : if (pattern901 (x2,
12937 : E_V4SFmode,
12938 : E_QImode) != 0
12939 : || !(
12940 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12941 : (TARGET_AVX512F) &&
12942 : #line 3111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12943 : (TARGET_SSE && (16 == 64 || TARGET_AVX512VL) && 1)))
12944 : return -1;
12945 : return 2988; /* sse_sqrtv4sf2_mask */
12946 :
12947 : case E_V8DFmode:
12948 : if (pattern901 (x2,
12949 : E_V8DFmode,
12950 : E_QImode) != 0
12951 : || !(
12952 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12953 : (TARGET_AVX512F) && (
12954 : #line 3111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12955 : (TARGET_SSE && (64 == 64 || TARGET_AVX512VL) && 1) &&
12956 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12957 : (TARGET_AVX512F))))
12958 : return -1;
12959 : return 2991; /* avx512f_sqrtv8df2_mask */
12960 :
12961 : case E_V4DFmode:
12962 : if (pattern901 (x2,
12963 : E_V4DFmode,
12964 : E_QImode) != 0
12965 : || !(
12966 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12967 : (TARGET_AVX512F) && (
12968 : #line 3111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12969 : (TARGET_SSE && (32 == 64 || TARGET_AVX512VL) && 1) &&
12970 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12971 : (TARGET_AVX))))
12972 : return -1;
12973 : return 2994; /* avx_sqrtv4df2_mask */
12974 :
12975 : case E_V2DFmode:
12976 : if (pattern901 (x2,
12977 : E_V2DFmode,
12978 : E_QImode) != 0
12979 : || !(
12980 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12981 : (TARGET_AVX512F) && (
12982 : #line 3111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12983 : (TARGET_SSE && (16 == 64 || TARGET_AVX512VL) && 1) &&
12984 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12985 : (TARGET_SSE2))))
12986 : return -1;
12987 : return 2996; /* sse2_sqrtv2df2_mask */
12988 :
12989 : case E_V32BFmode:
12990 : if (pattern152 (x2,
12991 : E_V32BFmode,
12992 : E_SImode) != 0
12993 : || !(
12994 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12995 : (TARGET_AVX512F) &&
12996 : #line 33473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12997 : (TARGET_AVX10_2)))
12998 : return -1;
12999 : return 10787; /* avx10_2_sqrtbf16_v32bf_mask */
13000 :
13001 : case E_V16BFmode:
13002 : if (pattern152 (x2,
13003 : E_V16BFmode,
13004 : E_HImode) != 0
13005 : || !(
13006 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13007 : (TARGET_AVX512F) &&
13008 : #line 33473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13009 : (TARGET_AVX10_2)))
13010 : return -1;
13011 : return 10789; /* avx10_2_sqrtbf16_v16bf_mask */
13012 :
13013 : case E_V8BFmode:
13014 : if (pattern152 (x2,
13015 : E_V8BFmode,
13016 : E_QImode) != 0
13017 : || !(
13018 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13019 : (TARGET_AVX512F) &&
13020 : #line 33473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13021 : (TARGET_AVX10_2)))
13022 : return -1;
13023 : return 10791; /* avx10_2_sqrtbf16_v8bf_mask */
13024 :
13025 : default:
13026 : return -1;
13027 : }
13028 :
13029 : case CONST_INT:
13030 : if (XWINT (x6, 0) != 1L)
13031 : return -1;
13032 : switch (GET_MODE (operands[0]))
13033 : {
13034 : case E_V8HFmode:
13035 : if (pattern902 (x2,
13036 : E_V8HFmode) != 0
13037 : || !(
13038 : #line 3130 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13039 : (TARGET_SSE) &&
13040 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13041 : (TARGET_AVX512FP16)))
13042 : return -1;
13043 : return 2997; /* avx512fp16_vmsqrtv8hf2 */
13044 :
13045 : case E_V4SFmode:
13046 : if (pattern902 (x2,
13047 : E_V4SFmode) != 0
13048 : || !
13049 : #line 3130 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13050 : (TARGET_SSE))
13051 : return -1;
13052 : return 3001; /* sse_vmsqrtv4sf2 */
13053 :
13054 : case E_V2DFmode:
13055 : if (pattern902 (x2,
13056 : E_V2DFmode) != 0
13057 : || !(
13058 : #line 3130 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13059 : (TARGET_SSE) &&
13060 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13061 : (TARGET_SSE2)))
13062 : return -1;
13063 : return 3005; /* sse2_vmsqrtv2df2 */
13064 :
13065 : default:
13066 : return -1;
13067 : }
13068 :
13069 : default:
13070 : return -1;
13071 : }
13072 : }
13073 :
13074 : int
13075 : recog_208 (rtx x1 ATTRIBUTE_UNUSED,
13076 : rtx_insn *insn ATTRIBUTE_UNUSED,
13077 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13078 : {
13079 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13080 : rtx x2, x3, x4, x5;
13081 : int res ATTRIBUTE_UNUSED;
13082 : x2 = XEXP (x1, 1);
13083 : x3 = XEXP (x2, 0);
13084 : x4 = XEXP (x3, 0);
13085 : operands[1] = x4;
13086 : x5 = XEXP (x3, 1);
13087 : operands[2] = x5;
13088 : switch (pattern492 (x2))
13089 : {
13090 : case 0:
13091 : if (!(
13092 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13093 : (TARGET_AVX512F) && (
13094 : #line 2701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13095 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V32HFmode, operands)
13096 : && (64 == 64 || TARGET_AVX512VL) && 1) &&
13097 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13098 : (TARGET_AVX512FP16))))
13099 : return -1;
13100 : return 2754; /* *addv32hf3_mask */
13101 :
13102 : case 1:
13103 : if (!(
13104 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13105 : (TARGET_AVX512F) && (
13106 : #line 2701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13107 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V16HFmode, operands)
13108 : && (32 == 64 || TARGET_AVX512VL) && 1) &&
13109 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13110 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
13111 : return -1;
13112 : return 2762; /* *addv16hf3_mask */
13113 :
13114 : case 2:
13115 : if (!(
13116 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13117 : (TARGET_AVX512F) && (
13118 : #line 2701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13119 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V8HFmode, operands)
13120 : && (16 == 64 || TARGET_AVX512VL) && 1) &&
13121 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13122 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
13123 : return -1;
13124 : return 2770; /* *addv8hf3_mask */
13125 :
13126 : case 3:
13127 : if (!(
13128 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13129 : (TARGET_AVX512F) && (
13130 : #line 2701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13131 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V16SFmode, operands)
13132 : && (64 == 64 || TARGET_AVX512VL) && 1) &&
13133 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13134 : (TARGET_AVX512F))))
13135 : return -1;
13136 : return 2778; /* *addv16sf3_mask */
13137 :
13138 : case 4:
13139 : if (!(
13140 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13141 : (TARGET_AVX512F) && (
13142 : #line 2701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13143 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V8SFmode, operands)
13144 : && (32 == 64 || TARGET_AVX512VL) && 1) &&
13145 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13146 : (TARGET_AVX))))
13147 : return -1;
13148 : return 2786; /* *addv8sf3_mask */
13149 :
13150 : case 5:
13151 : if (!(
13152 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13153 : (TARGET_AVX512F) &&
13154 : #line 2701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13155 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V4SFmode, operands)
13156 : && (16 == 64 || TARGET_AVX512VL) && 1)))
13157 : return -1;
13158 : return 2794; /* *addv4sf3_mask */
13159 :
13160 : case 6:
13161 : if (!(
13162 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13163 : (TARGET_AVX512F) && (
13164 : #line 2701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13165 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V8DFmode, operands)
13166 : && (64 == 64 || TARGET_AVX512VL) && 1) &&
13167 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13168 : (TARGET_AVX512F))))
13169 : return -1;
13170 : return 2802; /* *addv8df3_mask */
13171 :
13172 : case 7:
13173 : if (!(
13174 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13175 : (TARGET_AVX512F) && (
13176 : #line 2701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13177 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V4DFmode, operands)
13178 : && (32 == 64 || TARGET_AVX512VL) && 1) &&
13179 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13180 : (TARGET_AVX))))
13181 : return -1;
13182 : return 2810; /* *addv4df3_mask */
13183 :
13184 : case 8:
13185 : if (!(
13186 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13187 : (TARGET_AVX512F) && (
13188 : #line 2701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13189 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V2DFmode, operands)
13190 : && (16 == 64 || TARGET_AVX512VL) && 1) &&
13191 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13192 : (TARGET_SSE2))))
13193 : return -1;
13194 : return 2818; /* *addv2df3_mask */
13195 :
13196 : case 9:
13197 : if (!
13198 : #line 16697 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13199 : (TARGET_AVX512F && ix86_binary_operator_ok (PLUS, V16SImode, operands)))
13200 : return -1;
13201 : return 7529; /* *addv16si3_mask */
13202 :
13203 : case 10:
13204 : if (!(
13205 : #line 16697 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13206 : (TARGET_AVX512F && ix86_binary_operator_ok (PLUS, V8SImode, operands)) &&
13207 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13208 : (TARGET_AVX512VL)))
13209 : return -1;
13210 : return 7531; /* *addv8si3_mask */
13211 :
13212 : case 11:
13213 : if (!(
13214 : #line 16697 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13215 : (TARGET_AVX512F && ix86_binary_operator_ok (PLUS, V4SImode, operands)) &&
13216 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13217 : (TARGET_AVX512VL)))
13218 : return -1;
13219 : return 7533; /* *addv4si3_mask */
13220 :
13221 : case 12:
13222 : if (!
13223 : #line 16697 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13224 : (TARGET_AVX512F && ix86_binary_operator_ok (PLUS, V8DImode, operands)))
13225 : return -1;
13226 : return 7535; /* *addv8di3_mask */
13227 :
13228 : case 13:
13229 : if (!(
13230 : #line 16697 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13231 : (TARGET_AVX512F && ix86_binary_operator_ok (PLUS, V4DImode, operands)) &&
13232 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13233 : (TARGET_AVX512VL)))
13234 : return -1;
13235 : return 7537; /* *addv4di3_mask */
13236 :
13237 : case 14:
13238 : if (!(
13239 : #line 16697 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13240 : (TARGET_AVX512F && ix86_binary_operator_ok (PLUS, V2DImode, operands)) &&
13241 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13242 : (TARGET_AVX512VL)))
13243 : return -1;
13244 : return 7539; /* *addv2di3_mask */
13245 :
13246 : case 15:
13247 : if (!
13248 : #line 16711 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13249 : (TARGET_AVX512BW && ix86_binary_operator_ok (PLUS, V64QImode, operands)))
13250 : return -1;
13251 : return 7541; /* *addv64qi3_mask */
13252 :
13253 : case 16:
13254 : if (!(
13255 : #line 16711 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13256 : (TARGET_AVX512BW && ix86_binary_operator_ok (PLUS, V16QImode, operands)) &&
13257 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13258 : (TARGET_AVX512VL)))
13259 : return -1;
13260 : return 7543; /* *addv16qi3_mask */
13261 :
13262 : case 17:
13263 : if (!(
13264 : #line 16711 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13265 : (TARGET_AVX512BW && ix86_binary_operator_ok (PLUS, V32QImode, operands)) &&
13266 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13267 : (TARGET_AVX512VL)))
13268 : return -1;
13269 : return 7545; /* *addv32qi3_mask */
13270 :
13271 : case 18:
13272 : if (!
13273 : #line 16711 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13274 : (TARGET_AVX512BW && ix86_binary_operator_ok (PLUS, V32HImode, operands)))
13275 : return -1;
13276 : return 7547; /* *addv32hi3_mask */
13277 :
13278 : case 19:
13279 : if (!(
13280 : #line 16711 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13281 : (TARGET_AVX512BW && ix86_binary_operator_ok (PLUS, V16HImode, operands)) &&
13282 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13283 : (TARGET_AVX512VL)))
13284 : return -1;
13285 : return 7549; /* *addv16hi3_mask */
13286 :
13287 : case 20:
13288 : if (!(
13289 : #line 16711 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13290 : (TARGET_AVX512BW && ix86_binary_operator_ok (PLUS, V8HImode, operands)) &&
13291 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13292 : (TARGET_AVX512VL)))
13293 : return -1;
13294 : return 7551; /* *addv8hi3_mask */
13295 :
13296 : case 21:
13297 : if (!(
13298 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13299 : (TARGET_AVX512F) &&
13300 : #line 33196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13301 : (TARGET_AVX10_2)))
13302 : return -1;
13303 : return 10709; /* avx10_2_addbf16_v32bf_mask */
13304 :
13305 : case 22:
13306 : if (!(
13307 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13308 : (TARGET_AVX512F) &&
13309 : #line 33196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13310 : (TARGET_AVX10_2)))
13311 : return -1;
13312 : return 10717; /* avx10_2_addbf16_v16bf_mask */
13313 :
13314 : case 23:
13315 : if (!(
13316 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13317 : (TARGET_AVX512F) &&
13318 : #line 33196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13319 : (TARGET_AVX10_2)))
13320 : return -1;
13321 : return 10725; /* avx10_2_addbf16_v8bf_mask */
13322 :
13323 : case 24:
13324 : if (!(
13325 : #line 2750 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13326 : (TARGET_SSE) &&
13327 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13328 : (TARGET_AVX512FP16)))
13329 : return -1;
13330 : return 2830; /* avx512fp16_vmaddv8hf3 */
13331 :
13332 : case 25:
13333 : if (!
13334 : #line 2750 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13335 : (TARGET_SSE))
13336 : return -1;
13337 : return 2838; /* sse_vmaddv4sf3 */
13338 :
13339 : case 26:
13340 : if (!(
13341 : #line 2750 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13342 : (TARGET_SSE) &&
13343 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13344 : (TARGET_SSE2)))
13345 : return -1;
13346 : return 2846; /* sse2_vmaddv2df3 */
13347 :
13348 : default:
13349 : return -1;
13350 : }
13351 : }
13352 :
13353 : int
13354 : recog_224 (rtx x1 ATTRIBUTE_UNUSED,
13355 : rtx_insn *insn ATTRIBUTE_UNUSED,
13356 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13357 : {
13358 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13359 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
13360 : int res ATTRIBUTE_UNUSED;
13361 : x2 = XEXP (x1, 1);
13362 : x3 = XVECEXP (x2, 0, 0);
13363 : x4 = XEXP (x3, 0);
13364 : switch (XINT (x4, 1))
13365 : {
13366 : case 64:
13367 : switch (pattern916 (x2))
13368 : {
13369 : case 0:
13370 : if (!(
13371 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13372 : (TARGET_AVX512F) && (
13373 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13374 : (TARGET_AVX512F) && (
13375 : #line 3493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13376 : (TARGET_SSE
13377 : && (64 == 64 || TARGET_AVX512VL)
13378 : && (V32HFmode == V16SFmode
13379 : || V32HFmode == V8DFmode
13380 : || V32HFmode == V8DImode
13381 : || V32HFmode == V16SImode
13382 : || V32HFmode == V32HFmode)) &&
13383 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13384 : (TARGET_AVX512FP16)))))
13385 : return -1;
13386 : return 3123; /* ieee_maxv32hf3_mask_round */
13387 :
13388 : case 1:
13389 : if (!(
13390 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13391 : (TARGET_AVX512F) && (
13392 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13393 : (TARGET_AVX512F) && (
13394 : #line 3493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13395 : (TARGET_SSE
13396 : && (64 == 64 || TARGET_AVX512VL)
13397 : && (V16SFmode == V16SFmode
13398 : || V16SFmode == V8DFmode
13399 : || V16SFmode == V8DImode
13400 : || V16SFmode == V16SImode
13401 : || V16SFmode == V32HFmode)) &&
13402 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13403 : (TARGET_AVX512F)))))
13404 : return -1;
13405 : return 3139; /* ieee_maxv16sf3_mask_round */
13406 :
13407 : case 2:
13408 : if (!(
13409 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13410 : (TARGET_AVX512F) && (
13411 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13412 : (TARGET_AVX512F) && (
13413 : #line 3493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13414 : (TARGET_SSE
13415 : && (64 == 64 || TARGET_AVX512VL)
13416 : && (V8DFmode == V16SFmode
13417 : || V8DFmode == V8DFmode
13418 : || V8DFmode == V8DImode
13419 : || V8DFmode == V16SImode
13420 : || V8DFmode == V32HFmode)) &&
13421 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13422 : (TARGET_AVX512F)))))
13423 : return -1;
13424 : return 3155; /* ieee_maxv8df3_mask_round */
13425 :
13426 : case 3:
13427 : if (!(
13428 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13429 : (TARGET_AVX512F) && (
13430 : #line 3588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13431 : (TARGET_SSE) &&
13432 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13433 : (TARGET_AVX512FP16))))
13434 : return -1;
13435 : return 3200; /* avx512fp16_ieee_vmmaxv8hf3_round */
13436 :
13437 : case 4:
13438 : if (!(
13439 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13440 : (TARGET_AVX512F) &&
13441 : #line 3588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13442 : (TARGET_SSE)))
13443 : return -1;
13444 : return 3208; /* sse_ieee_vmmaxv4sf3_round */
13445 :
13446 : case 5:
13447 : if (!(
13448 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13449 : (TARGET_AVX512F) && (
13450 : #line 3588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13451 : (TARGET_SSE) &&
13452 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13453 : (TARGET_SSE2))))
13454 : return -1;
13455 : return 3216; /* sse2_ieee_vmmaxv2df3_round */
13456 :
13457 : default:
13458 : return -1;
13459 : }
13460 :
13461 : case 63:
13462 : switch (pattern916 (x2))
13463 : {
13464 : case 0:
13465 : if (!(
13466 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13467 : (TARGET_AVX512F) && (
13468 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13469 : (TARGET_AVX512F) && (
13470 : #line 3493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13471 : (TARGET_SSE
13472 : && (64 == 64 || TARGET_AVX512VL)
13473 : && (V32HFmode == V16SFmode
13474 : || V32HFmode == V8DFmode
13475 : || V32HFmode == V8DImode
13476 : || V32HFmode == V16SImode
13477 : || V32HFmode == V32HFmode)) &&
13478 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13479 : (TARGET_AVX512FP16)))))
13480 : return -1;
13481 : return 3127; /* ieee_minv32hf3_mask_round */
13482 :
13483 : case 1:
13484 : if (!(
13485 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13486 : (TARGET_AVX512F) && (
13487 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13488 : (TARGET_AVX512F) && (
13489 : #line 3493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13490 : (TARGET_SSE
13491 : && (64 == 64 || TARGET_AVX512VL)
13492 : && (V16SFmode == V16SFmode
13493 : || V16SFmode == V8DFmode
13494 : || V16SFmode == V8DImode
13495 : || V16SFmode == V16SImode
13496 : || V16SFmode == V32HFmode)) &&
13497 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13498 : (TARGET_AVX512F)))))
13499 : return -1;
13500 : return 3143; /* ieee_minv16sf3_mask_round */
13501 :
13502 : case 2:
13503 : if (!(
13504 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13505 : (TARGET_AVX512F) && (
13506 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13507 : (TARGET_AVX512F) && (
13508 : #line 3493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13509 : (TARGET_SSE
13510 : && (64 == 64 || TARGET_AVX512VL)
13511 : && (V8DFmode == V16SFmode
13512 : || V8DFmode == V8DFmode
13513 : || V8DFmode == V8DImode
13514 : || V8DFmode == V16SImode
13515 : || V8DFmode == V32HFmode)) &&
13516 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13517 : (TARGET_AVX512F)))))
13518 : return -1;
13519 : return 3159; /* ieee_minv8df3_mask_round */
13520 :
13521 : case 3:
13522 : if (!(
13523 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13524 : (TARGET_AVX512F) && (
13525 : #line 3588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13526 : (TARGET_SSE) &&
13527 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13528 : (TARGET_AVX512FP16))))
13529 : return -1;
13530 : return 3204; /* avx512fp16_ieee_vmminv8hf3_round */
13531 :
13532 : case 4:
13533 : if (!(
13534 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13535 : (TARGET_AVX512F) &&
13536 : #line 3588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13537 : (TARGET_SSE)))
13538 : return -1;
13539 : return 3212; /* sse_ieee_vmminv4sf3_round */
13540 :
13541 : case 5:
13542 : if (!(
13543 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13544 : (TARGET_AVX512F) && (
13545 : #line 3588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13546 : (TARGET_SSE) &&
13547 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13548 : (TARGET_SSE2))))
13549 : return -1;
13550 : return 3220; /* sse2_ieee_vmminv2df3_round */
13551 :
13552 : default:
13553 : return -1;
13554 : }
13555 :
13556 : case 193:
13557 : x5 = XVECEXP (x4, 0, 0);
13558 : operands[1] = x5;
13559 : x6 = XVECEXP (x4, 0, 1);
13560 : operands[2] = x6;
13561 : if (!const_0_to_255_operand (operands[2], E_SImode))
13562 : return -1;
13563 : x7 = XEXP (x3, 1);
13564 : operands[3] = x7;
13565 : x8 = XEXP (x3, 2);
13566 : operands[4] = x8;
13567 : x9 = XVECEXP (x2, 0, 1);
13568 : operands[5] = x9;
13569 : if (!const48_operand (operands[5], E_SImode))
13570 : return -1;
13571 : switch (GET_MODE (operands[0]))
13572 : {
13573 : case E_V32HFmode:
13574 : if (pattern1563 (x2,
13575 : E_V32HFmode,
13576 : E_SImode) != 0
13577 : || !(
13578 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13579 : (TARGET_AVX512F) && (
13580 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13581 : (TARGET_AVX512F) && (
13582 : #line 4293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13583 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V32HFmode))) &&
13584 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13585 : (TARGET_AVX512FP16)))))
13586 : return -1;
13587 : return 3239; /* reducepv32hf_mask_round */
13588 :
13589 : case E_V16HFmode:
13590 : if (pattern1563 (x2,
13591 : E_V16HFmode,
13592 : E_HImode) != 0
13593 : || !(
13594 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13595 : (TARGET_AVX512F) && (
13596 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13597 : (TARGET_AVX512F) && (
13598 : #line 4293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13599 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V16HFmode))) &&
13600 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13601 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))))
13602 : return -1;
13603 : return 3243; /* reducepv16hf_mask_round */
13604 :
13605 : case E_V8HFmode:
13606 : if (pattern1563 (x2,
13607 : E_V8HFmode,
13608 : E_QImode) != 0
13609 : || !(
13610 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13611 : (TARGET_AVX512F) && (
13612 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13613 : (TARGET_AVX512F) && (
13614 : #line 4293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13615 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V8HFmode))) &&
13616 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13617 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))))
13618 : return -1;
13619 : return 3247; /* reducepv8hf_mask_round */
13620 :
13621 : case E_V16SFmode:
13622 : if (pattern1563 (x2,
13623 : E_V16SFmode,
13624 : E_HImode) != 0
13625 : || !(
13626 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13627 : (TARGET_AVX512F) && (
13628 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13629 : (TARGET_AVX512F) &&
13630 : #line 4293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13631 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V16SFmode))))))
13632 : return -1;
13633 : return 3251; /* reducepv16sf_mask_round */
13634 :
13635 : case E_V8SFmode:
13636 : if (pattern1563 (x2,
13637 : E_V8SFmode,
13638 : E_QImode) != 0
13639 : || !(
13640 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13641 : (TARGET_AVX512F) && (
13642 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13643 : (TARGET_AVX512F) && (
13644 : #line 4293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13645 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V8SFmode))) &&
13646 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13647 : (TARGET_AVX512VL)))))
13648 : return -1;
13649 : return 3255; /* reducepv8sf_mask_round */
13650 :
13651 : case E_V4SFmode:
13652 : if (pattern1563 (x2,
13653 : E_V4SFmode,
13654 : E_QImode) != 0
13655 : || !(
13656 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13657 : (TARGET_AVX512F) && (
13658 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13659 : (TARGET_AVX512F) && (
13660 : #line 4293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13661 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V4SFmode))) &&
13662 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13663 : (TARGET_AVX512VL)))))
13664 : return -1;
13665 : return 3259; /* reducepv4sf_mask_round */
13666 :
13667 : case E_V8DFmode:
13668 : if (pattern1563 (x2,
13669 : E_V8DFmode,
13670 : E_QImode) != 0
13671 : || !(
13672 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13673 : (TARGET_AVX512F) && (
13674 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13675 : (TARGET_AVX512F) &&
13676 : #line 4293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13677 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V8DFmode))))))
13678 : return -1;
13679 : return 3263; /* reducepv8df_mask_round */
13680 :
13681 : case E_V4DFmode:
13682 : if (pattern1563 (x2,
13683 : E_V4DFmode,
13684 : E_QImode) != 0
13685 : || !(
13686 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13687 : (TARGET_AVX512F) && (
13688 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13689 : (TARGET_AVX512F) && (
13690 : #line 4293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13691 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V4DFmode))) &&
13692 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13693 : (TARGET_AVX512VL)))))
13694 : return -1;
13695 : return 3267; /* reducepv4df_mask_round */
13696 :
13697 : case E_V2DFmode:
13698 : if (pattern1563 (x2,
13699 : E_V2DFmode,
13700 : E_QImode) != 0
13701 : || !(
13702 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13703 : (TARGET_AVX512F) && (
13704 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13705 : (TARGET_AVX512F) && (
13706 : #line 4293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13707 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V2DFmode))) &&
13708 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13709 : (TARGET_AVX512VL)))))
13710 : return -1;
13711 : return 3271; /* reducepv2df_mask_round */
13712 :
13713 : default:
13714 : return -1;
13715 : }
13716 :
13717 : case 222:
13718 : switch (pattern917 (x2))
13719 : {
13720 : case 0:
13721 : if (!(
13722 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13723 : (TARGET_AVX512F) && (
13724 : #line 106 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13725 : (TARGET_AVX512F) &&
13726 : #line 7722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13727 : (TARGET_AVX512FP16 && (V32HFmode == V16SFmode
13728 : || V32HFmode == V8DFmode
13729 : || V32HFmode == V8DImode
13730 : || V32HFmode == V16SImode
13731 : || V32HFmode == V32HFmode)))))
13732 : return -1;
13733 : return 4419; /* avx512bw_fmulc_v32hf_mask_round */
13734 :
13735 : case 1:
13736 : if (!(
13737 : #line 437 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13738 : (TARGET_AVX512F) &&
13739 : #line 7926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13740 : (TARGET_AVX512FP16)))
13741 : return -1;
13742 : return 4445; /* avx512fp16_fmulcsh_v8hf_round */
13743 :
13744 : default:
13745 : return -1;
13746 : }
13747 :
13748 : case 223:
13749 : switch (pattern917 (x2))
13750 : {
13751 : case 0:
13752 : if (!(
13753 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13754 : (TARGET_AVX512F) && (
13755 : #line 106 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13756 : (TARGET_AVX512F) &&
13757 : #line 7722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13758 : (TARGET_AVX512FP16 && (V32HFmode == V16SFmode
13759 : || V32HFmode == V8DFmode
13760 : || V32HFmode == V8DImode
13761 : || V32HFmode == V16SImode
13762 : || V32HFmode == V32HFmode)))))
13763 : return -1;
13764 : return 4423; /* avx512bw_fcmulc_v32hf_mask_round */
13765 :
13766 : case 1:
13767 : if (!(
13768 : #line 437 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13769 : (TARGET_AVX512F) &&
13770 : #line 7926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13771 : (TARGET_AVX512FP16)))
13772 : return -1;
13773 : return 4449; /* avx512fp16_fcmulcsh_v8hf_round */
13774 :
13775 : default:
13776 : return -1;
13777 : }
13778 :
13779 : case 59:
13780 : x5 = XVECEXP (x4, 0, 0);
13781 : operands[1] = x5;
13782 : x6 = XVECEXP (x4, 0, 1);
13783 : operands[2] = x6;
13784 : x9 = XVECEXP (x2, 0, 1);
13785 : if (!const_4_or_8_to_11_operand (x9, E_SImode))
13786 : return -1;
13787 : x8 = XEXP (x3, 2);
13788 : switch (GET_CODE (x8))
13789 : {
13790 : case CONST_INT:
13791 : if (XWINT (x8, 0) != 1L)
13792 : return -1;
13793 : operands[3] = x9;
13794 : switch (pattern1416 (x2))
13795 : {
13796 : case 0:
13797 : if (!(
13798 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13799 : (TARGET_AVX512F) && (
13800 : #line 14013 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13801 : (TARGET_AVX512F) &&
13802 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13803 : (TARGET_AVX512FP16))))
13804 : return -1;
13805 : return 5437; /* avx512f_vmscalefv8hf_round */
13806 :
13807 : case 1:
13808 : if (!
13809 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13810 : (TARGET_AVX512F))
13811 : return -1;
13812 : return 5441; /* avx512f_vmscalefv4sf_round */
13813 :
13814 : case 2:
13815 : if (!(
13816 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13817 : (TARGET_AVX512F) && (
13818 : #line 14013 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13819 : (TARGET_AVX512F) &&
13820 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13821 : (TARGET_SSE2))))
13822 : return -1;
13823 : return 5445; /* avx512f_vmscalefv2df_round */
13824 :
13825 : default:
13826 : return -1;
13827 : }
13828 :
13829 : case REG:
13830 : case SUBREG:
13831 : operands[4] = x8;
13832 : x7 = XEXP (x3, 1);
13833 : operands[3] = x7;
13834 : operands[5] = x9;
13835 : switch (GET_MODE (operands[0]))
13836 : {
13837 : case E_V32HFmode:
13838 : if (pattern1564 (x2,
13839 : E_V32HFmode,
13840 : E_SImode) != 0
13841 : || !(
13842 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13843 : (TARGET_AVX512F) && (
13844 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13845 : (TARGET_AVX512F) && (
13846 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13847 : (TARGET_AVX512F) &&
13848 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13849 : (TARGET_AVX512FP16)))))
13850 : return -1;
13851 : return 5451; /* avx512bw_scalefv32hf_mask_round */
13852 :
13853 : case E_V16HFmode:
13854 : if (pattern1564 (x2,
13855 : E_V16HFmode,
13856 : E_HImode) != 0
13857 : || !(
13858 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13859 : (TARGET_AVX512F) && (
13860 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13861 : (TARGET_AVX512F) && (
13862 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13863 : (TARGET_AVX512F) &&
13864 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13865 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))))
13866 : return -1;
13867 : return 5455; /* avx512vl_scalefv16hf_mask_round */
13868 :
13869 : case E_V8HFmode:
13870 : if (pattern1564 (x2,
13871 : E_V8HFmode,
13872 : E_QImode) != 0
13873 : || !(
13874 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13875 : (TARGET_AVX512F) && (
13876 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13877 : (TARGET_AVX512F) && (
13878 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13879 : (TARGET_AVX512F) &&
13880 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13881 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))))
13882 : return -1;
13883 : return 5459; /* avx512fp16_scalefv8hf_mask_round */
13884 :
13885 : case E_V16SFmode:
13886 : if (pattern1564 (x2,
13887 : E_V16SFmode,
13888 : E_HImode) != 0
13889 : || !
13890 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13891 : (TARGET_AVX512F))
13892 : return -1;
13893 : return 5463; /* avx512f_scalefv16sf_mask_round */
13894 :
13895 : case E_V8SFmode:
13896 : if (pattern1564 (x2,
13897 : E_V8SFmode,
13898 : E_QImode) != 0
13899 : || !(
13900 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13901 : (TARGET_AVX512F) && (
13902 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13903 : (TARGET_AVX512F) && (
13904 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13905 : (TARGET_AVX512F) &&
13906 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13907 : (TARGET_AVX512VL)))))
13908 : return -1;
13909 : return 5467; /* avx512vl_scalefv8sf_mask_round */
13910 :
13911 : case E_V4SFmode:
13912 : if (pattern1564 (x2,
13913 : E_V4SFmode,
13914 : E_QImode) != 0
13915 : || !(
13916 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13917 : (TARGET_AVX512F) && (
13918 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13919 : (TARGET_AVX512F) && (
13920 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13921 : (TARGET_AVX512F) &&
13922 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13923 : (TARGET_AVX512VL)))))
13924 : return -1;
13925 : return 5471; /* avx512vl_scalefv4sf_mask_round */
13926 :
13927 : case E_V8DFmode:
13928 : if (pattern1564 (x2,
13929 : E_V8DFmode,
13930 : E_QImode) != 0
13931 : || !
13932 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13933 : (TARGET_AVX512F))
13934 : return -1;
13935 : return 5475; /* avx512f_scalefv8df_mask_round */
13936 :
13937 : case E_V4DFmode:
13938 : if (pattern1564 (x2,
13939 : E_V4DFmode,
13940 : E_QImode) != 0
13941 : || !(
13942 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13943 : (TARGET_AVX512F) && (
13944 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13945 : (TARGET_AVX512F) && (
13946 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13947 : (TARGET_AVX512F) &&
13948 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13949 : (TARGET_AVX512VL)))))
13950 : return -1;
13951 : return 5479; /* avx512vl_scalefv4df_mask_round */
13952 :
13953 : case E_V2DFmode:
13954 : if (pattern1564 (x2,
13955 : E_V2DFmode,
13956 : E_QImode) != 0
13957 : || !(
13958 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13959 : (TARGET_AVX512F) && (
13960 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13961 : (TARGET_AVX512F) && (
13962 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13963 : (TARGET_AVX512F) &&
13964 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13965 : (TARGET_AVX512VL)))))
13966 : return -1;
13967 : return 5483; /* avx512vl_scalefv2df_mask_round */
13968 :
13969 : default:
13970 : return -1;
13971 : }
13972 :
13973 : default:
13974 : return -1;
13975 : }
13976 :
13977 : case 166:
13978 : x8 = XEXP (x3, 2);
13979 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
13980 : return -1;
13981 : x5 = XVECEXP (x4, 0, 0);
13982 : operands[1] = x5;
13983 : x6 = XVECEXP (x4, 0, 1);
13984 : operands[2] = x6;
13985 : x9 = XVECEXP (x2, 0, 1);
13986 : operands[3] = x9;
13987 : if (!const48_operand (operands[3], E_SImode))
13988 : return -1;
13989 : switch (pattern1416 (x2))
13990 : {
13991 : case 0:
13992 : if (!(
13993 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13994 : (TARGET_AVX512F) && (
13995 : #line 14446 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13996 : (TARGET_AVX512F) &&
13997 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13998 : (TARGET_AVX512FP16))))
13999 : return -1;
14000 : return 7100; /* avx512f_sgetexpv8hf_round */
14001 :
14002 : case 1:
14003 : if (!
14004 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14005 : (TARGET_AVX512F))
14006 : return -1;
14007 : return 7104; /* avx512f_sgetexpv4sf_round */
14008 :
14009 : case 2:
14010 : if (!(
14011 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14012 : (TARGET_AVX512F) && (
14013 : #line 14446 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14014 : (TARGET_AVX512F) &&
14015 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14016 : (TARGET_SSE2))))
14017 : return -1;
14018 : return 7108; /* avx512f_sgetexpv2df_round */
14019 :
14020 : default:
14021 : return -1;
14022 : }
14023 :
14024 : case 95:
14025 : x6 = XVECEXP (x4, 0, 1);
14026 : if (!const_0_to_255_operand (x6, E_SImode))
14027 : return -1;
14028 : x9 = XVECEXP (x2, 0, 1);
14029 : if (!const48_operand (x9, E_SImode))
14030 : return -1;
14031 : x8 = XEXP (x3, 2);
14032 : switch (GET_CODE (x8))
14033 : {
14034 : case REG:
14035 : case SUBREG:
14036 : operands[4] = x8;
14037 : x5 = XVECEXP (x4, 0, 0);
14038 : operands[1] = x5;
14039 : operands[2] = x6;
14040 : x7 = XEXP (x3, 1);
14041 : operands[3] = x7;
14042 : operands[5] = x9;
14043 : switch (GET_MODE (operands[0]))
14044 : {
14045 : case E_V32HFmode:
14046 : if (pattern1565 (x2,
14047 : E_V32HFmode,
14048 : E_SImode) != 0
14049 : || !(
14050 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14051 : (TARGET_AVX512F) && (
14052 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14053 : (TARGET_AVX512F) && (
14054 : #line 14626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14055 : (TARGET_AVX512F) &&
14056 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14057 : (TARGET_AVX512FP16)))))
14058 : return -1;
14059 : return 7181; /* avx512bw_rndscalev32hf_mask_round */
14060 :
14061 : case E_V16HFmode:
14062 : if (pattern1565 (x2,
14063 : E_V16HFmode,
14064 : E_HImode) != 0
14065 : || !(
14066 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14067 : (TARGET_AVX512F) && (
14068 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14069 : (TARGET_AVX512F) && (
14070 : #line 14626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14071 : (TARGET_AVX512F) &&
14072 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14073 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))))
14074 : return -1;
14075 : return 7185; /* avx512vl_rndscalev16hf_mask_round */
14076 :
14077 : case E_V8HFmode:
14078 : if (pattern1565 (x2,
14079 : E_V8HFmode,
14080 : E_QImode) != 0
14081 : || !(
14082 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14083 : (TARGET_AVX512F) && (
14084 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14085 : (TARGET_AVX512F) && (
14086 : #line 14626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14087 : (TARGET_AVX512F) &&
14088 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14089 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))))
14090 : return -1;
14091 : return 7189; /* avx512fp16_rndscalev8hf_mask_round */
14092 :
14093 : case E_V16SFmode:
14094 : if (pattern1565 (x2,
14095 : E_V16SFmode,
14096 : E_HImode) != 0
14097 : || !
14098 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14099 : (TARGET_AVX512F))
14100 : return -1;
14101 : return 7193; /* avx512f_rndscalev16sf_mask_round */
14102 :
14103 : case E_V8SFmode:
14104 : if (pattern1565 (x2,
14105 : E_V8SFmode,
14106 : E_QImode) != 0
14107 : || !(
14108 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14109 : (TARGET_AVX512F) && (
14110 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14111 : (TARGET_AVX512F) && (
14112 : #line 14626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14113 : (TARGET_AVX512F) &&
14114 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14115 : (TARGET_AVX512VL)))))
14116 : return -1;
14117 : return 7197; /* avx512vl_rndscalev8sf_mask_round */
14118 :
14119 : case E_V4SFmode:
14120 : if (pattern1565 (x2,
14121 : E_V4SFmode,
14122 : E_QImode) != 0
14123 : || !(
14124 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14125 : (TARGET_AVX512F) && (
14126 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14127 : (TARGET_AVX512F) && (
14128 : #line 14626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14129 : (TARGET_AVX512F) &&
14130 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14131 : (TARGET_AVX512VL)))))
14132 : return -1;
14133 : return 7201; /* avx512vl_rndscalev4sf_mask_round */
14134 :
14135 : case E_V8DFmode:
14136 : if (pattern1565 (x2,
14137 : E_V8DFmode,
14138 : E_QImode) != 0
14139 : || !
14140 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14141 : (TARGET_AVX512F))
14142 : return -1;
14143 : return 7205; /* avx512f_rndscalev8df_mask_round */
14144 :
14145 : case E_V4DFmode:
14146 : if (pattern1565 (x2,
14147 : E_V4DFmode,
14148 : E_QImode) != 0
14149 : || !(
14150 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14151 : (TARGET_AVX512F) && (
14152 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14153 : (TARGET_AVX512F) && (
14154 : #line 14626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14155 : (TARGET_AVX512F) &&
14156 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14157 : (TARGET_AVX512VL)))))
14158 : return -1;
14159 : return 7209; /* avx512vl_rndscalev4df_mask_round */
14160 :
14161 : case E_V2DFmode:
14162 : if (pattern1565 (x2,
14163 : E_V2DFmode,
14164 : E_QImode) != 0
14165 : || !(
14166 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14167 : (TARGET_AVX512F) && (
14168 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14169 : (TARGET_AVX512F) && (
14170 : #line 14626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14171 : (TARGET_AVX512F) &&
14172 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14173 : (TARGET_AVX512VL)))))
14174 : return -1;
14175 : return 7213; /* avx512vl_rndscalev2df_mask_round */
14176 :
14177 : default:
14178 : return -1;
14179 : }
14180 :
14181 : case CONST_INT:
14182 : if (XWINT (x8, 0) != 1L)
14183 : return -1;
14184 : x5 = XVECEXP (x4, 0, 0);
14185 : operands[2] = x5;
14186 : operands[3] = x6;
14187 : x7 = XEXP (x3, 1);
14188 : operands[1] = x7;
14189 : operands[4] = x9;
14190 : switch (GET_MODE (operands[0]))
14191 : {
14192 : case E_V8HFmode:
14193 : if (pattern1602 (x2,
14194 : E_V8HFmode) != 0
14195 : || !(
14196 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14197 : (TARGET_AVX512F) && (
14198 : #line 14641 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14199 : (TARGET_AVX512F) &&
14200 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14201 : (TARGET_AVX512FP16))))
14202 : return -1;
14203 : return 7216; /* avx512f_rndscalev8hf_round */
14204 :
14205 : case E_V4SFmode:
14206 : if (pattern1602 (x2,
14207 : E_V4SFmode) != 0
14208 : || !
14209 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14210 : (TARGET_AVX512F))
14211 : return -1;
14212 : return 7220; /* avx512f_rndscalev4sf_round */
14213 :
14214 : case E_V2DFmode:
14215 : if (pattern1602 (x2,
14216 : E_V2DFmode) != 0
14217 : || !(
14218 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14219 : (TARGET_AVX512F) && (
14220 : #line 14641 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14221 : (TARGET_AVX512F) &&
14222 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14223 : (TARGET_SSE2))))
14224 : return -1;
14225 : return 7224; /* avx512f_rndscalev2df_round */
14226 :
14227 : default:
14228 : return -1;
14229 : }
14230 :
14231 : default:
14232 : return -1;
14233 : }
14234 :
14235 : case 151:
14236 : if (GET_MODE (x4) != E_V16HImode
14237 : || !register_operand (operands[0], E_V16HImode)
14238 : || GET_MODE (x2) != E_V16HImode
14239 : || GET_MODE (x3) != E_V16HImode)
14240 : return -1;
14241 : x5 = XVECEXP (x4, 0, 0);
14242 : operands[1] = x5;
14243 : if (!register_operand (operands[1], E_V16SFmode))
14244 : return -1;
14245 : x6 = XVECEXP (x4, 0, 1);
14246 : operands[2] = x6;
14247 : if (!const_0_to_255_operand (operands[2], E_SImode))
14248 : return -1;
14249 : x7 = XEXP (x3, 1);
14250 : operands[3] = x7;
14251 : if (!nonimm_or_0_operand (operands[3], E_V16HImode))
14252 : return -1;
14253 : x8 = XEXP (x3, 2);
14254 : operands[4] = x8;
14255 : if (!register_operand (operands[4], E_HImode))
14256 : return -1;
14257 : x9 = XVECEXP (x2, 0, 1);
14258 : operands[5] = x9;
14259 : if (!const48_operand (operands[5], E_SImode)
14260 : || !
14261 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14262 : (TARGET_AVX512F))
14263 : return -1;
14264 : return 9771; /* avx512f_vcvtps2ph512_mask_round */
14265 :
14266 : case 167:
14267 : x5 = XVECEXP (x4, 0, 0);
14268 : operands[1] = x5;
14269 : x6 = XVECEXP (x4, 0, 1);
14270 : operands[2] = x6;
14271 : if (!const_0_to_15_operand (operands[2], E_SImode))
14272 : return -1;
14273 : x7 = XEXP (x3, 1);
14274 : operands[3] = x7;
14275 : x8 = XEXP (x3, 2);
14276 : operands[4] = x8;
14277 : x9 = XVECEXP (x2, 0, 1);
14278 : operands[5] = x9;
14279 : if (!const48_operand (operands[5], E_SImode))
14280 : return -1;
14281 : switch (GET_MODE (operands[0]))
14282 : {
14283 : case E_V32HFmode:
14284 : if (pattern1565 (x2,
14285 : E_V32HFmode,
14286 : E_SImode) != 0
14287 : || !(
14288 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14289 : (TARGET_AVX512F) && (
14290 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14291 : (TARGET_AVX512F) && (
14292 : #line 30935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14293 : (TARGET_AVX512F) &&
14294 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14295 : (TARGET_AVX512FP16)))))
14296 : return -1;
14297 : return 10113; /* avx512bw_getmantv32hf_mask_round */
14298 :
14299 : case E_V16HFmode:
14300 : if (pattern1565 (x2,
14301 : E_V16HFmode,
14302 : E_HImode) != 0
14303 : || !(
14304 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14305 : (TARGET_AVX512F) && (
14306 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14307 : (TARGET_AVX512F) && (
14308 : #line 30935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14309 : (TARGET_AVX512F) &&
14310 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14311 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))))
14312 : return -1;
14313 : return 10117; /* avx512vl_getmantv16hf_mask_round */
14314 :
14315 : case E_V8HFmode:
14316 : if (pattern1565 (x2,
14317 : E_V8HFmode,
14318 : E_QImode) != 0
14319 : || !(
14320 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14321 : (TARGET_AVX512F) && (
14322 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14323 : (TARGET_AVX512F) && (
14324 : #line 30935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14325 : (TARGET_AVX512F) &&
14326 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14327 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))))
14328 : return -1;
14329 : return 10121; /* avx512fp16_getmantv8hf_mask_round */
14330 :
14331 : case E_V16SFmode:
14332 : if (pattern1565 (x2,
14333 : E_V16SFmode,
14334 : E_HImode) != 0
14335 : || !
14336 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14337 : (TARGET_AVX512F))
14338 : return -1;
14339 : return 10125; /* avx512f_getmantv16sf_mask_round */
14340 :
14341 : case E_V8SFmode:
14342 : if (pattern1565 (x2,
14343 : E_V8SFmode,
14344 : E_QImode) != 0
14345 : || !(
14346 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14347 : (TARGET_AVX512F) && (
14348 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14349 : (TARGET_AVX512F) && (
14350 : #line 30935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14351 : (TARGET_AVX512F) &&
14352 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14353 : (TARGET_AVX512VL)))))
14354 : return -1;
14355 : return 10129; /* avx512vl_getmantv8sf_mask_round */
14356 :
14357 : case E_V4SFmode:
14358 : if (pattern1565 (x2,
14359 : E_V4SFmode,
14360 : E_QImode) != 0
14361 : || !(
14362 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14363 : (TARGET_AVX512F) && (
14364 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14365 : (TARGET_AVX512F) && (
14366 : #line 30935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14367 : (TARGET_AVX512F) &&
14368 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14369 : (TARGET_AVX512VL)))))
14370 : return -1;
14371 : return 10133; /* avx512vl_getmantv4sf_mask_round */
14372 :
14373 : case E_V8DFmode:
14374 : if (pattern1565 (x2,
14375 : E_V8DFmode,
14376 : E_QImode) != 0
14377 : || !
14378 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14379 : (TARGET_AVX512F))
14380 : return -1;
14381 : return 10137; /* avx512f_getmantv8df_mask_round */
14382 :
14383 : case E_V4DFmode:
14384 : if (pattern1565 (x2,
14385 : E_V4DFmode,
14386 : E_QImode) != 0
14387 : || !(
14388 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14389 : (TARGET_AVX512F) && (
14390 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14391 : (TARGET_AVX512F) && (
14392 : #line 30935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14393 : (TARGET_AVX512F) &&
14394 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14395 : (TARGET_AVX512VL)))))
14396 : return -1;
14397 : return 10141; /* avx512vl_getmantv4df_mask_round */
14398 :
14399 : case E_V2DFmode:
14400 : if (pattern1565 (x2,
14401 : E_V2DFmode,
14402 : E_QImode) != 0
14403 : || !(
14404 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14405 : (TARGET_AVX512F) && (
14406 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14407 : (TARGET_AVX512F) && (
14408 : #line 30935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14409 : (TARGET_AVX512F) &&
14410 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14411 : (TARGET_AVX512VL)))))
14412 : return -1;
14413 : return 10145; /* avx512vl_getmantv2df_mask_round */
14414 :
14415 : default:
14416 : return -1;
14417 : }
14418 :
14419 : default:
14420 : return -1;
14421 : }
14422 : }
14423 :
14424 : int
14425 : recog_240 (rtx x1 ATTRIBUTE_UNUSED,
14426 : rtx_insn *insn ATTRIBUTE_UNUSED,
14427 : int *pnum_clobbers ATTRIBUTE_UNUSED)
14428 : {
14429 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
14430 : rtx x2, x3, x4, x5;
14431 : int res ATTRIBUTE_UNUSED;
14432 : x2 = XEXP (x1, 0);
14433 : operands[0] = x2;
14434 : x3 = XEXP (x1, 1);
14435 : x4 = XVECEXP (x3, 0, 0);
14436 : operands[1] = x4;
14437 : x5 = XVECEXP (x3, 0, 1);
14438 : operands[2] = x5;
14439 : if (!const_0_to_15_operand (operands[2], E_SImode))
14440 : return -1;
14441 : switch (GET_MODE (operands[0]))
14442 : {
14443 : case E_V32HFmode:
14444 : if (!register_operand (operands[0], E_V32HFmode)
14445 : || GET_MODE (x3) != E_V32HFmode
14446 : || !nonimmediate_operand (operands[1], E_V32HFmode)
14447 : || !(
14448 : #line 30935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14449 : (TARGET_AVX512F) &&
14450 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14451 : (TARGET_AVX512FP16)))
14452 : return -1;
14453 : return 10110; /* avx512bw_getmantv32hf */
14454 :
14455 : case E_V16HFmode:
14456 : if (!register_operand (operands[0], E_V16HFmode)
14457 : || GET_MODE (x3) != E_V16HFmode
14458 : || !nonimmediate_operand (operands[1], E_V16HFmode)
14459 : || !(
14460 : #line 30935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14461 : (TARGET_AVX512F) &&
14462 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14463 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
14464 : return -1;
14465 : return 10114; /* avx512vl_getmantv16hf */
14466 :
14467 : case E_V8HFmode:
14468 : if (!register_operand (operands[0], E_V8HFmode)
14469 : || GET_MODE (x3) != E_V8HFmode
14470 : || !nonimmediate_operand (operands[1], E_V8HFmode)
14471 : || !(
14472 : #line 30935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14473 : (TARGET_AVX512F) &&
14474 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14475 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
14476 : return -1;
14477 : return 10118; /* avx512fp16_getmantv8hf */
14478 :
14479 : case E_V16SFmode:
14480 : if (!register_operand (operands[0], E_V16SFmode)
14481 : || GET_MODE (x3) != E_V16SFmode
14482 : || !nonimmediate_operand (operands[1], E_V16SFmode)
14483 : || !
14484 : #line 30935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14485 : (TARGET_AVX512F))
14486 : return -1;
14487 : return 10122; /* avx512f_getmantv16sf */
14488 :
14489 : case E_V8SFmode:
14490 : if (!register_operand (operands[0], E_V8SFmode)
14491 : || GET_MODE (x3) != E_V8SFmode
14492 : || !nonimmediate_operand (operands[1], E_V8SFmode)
14493 : || !(
14494 : #line 30935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14495 : (TARGET_AVX512F) &&
14496 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14497 : (TARGET_AVX512VL)))
14498 : return -1;
14499 : return 10126; /* avx512vl_getmantv8sf */
14500 :
14501 : case E_V4SFmode:
14502 : if (!register_operand (operands[0], E_V4SFmode)
14503 : || GET_MODE (x3) != E_V4SFmode
14504 : || !nonimmediate_operand (operands[1], E_V4SFmode)
14505 : || !(
14506 : #line 30935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14507 : (TARGET_AVX512F) &&
14508 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14509 : (TARGET_AVX512VL)))
14510 : return -1;
14511 : return 10130; /* avx512vl_getmantv4sf */
14512 :
14513 : case E_V8DFmode:
14514 : if (!register_operand (operands[0], E_V8DFmode)
14515 : || GET_MODE (x3) != E_V8DFmode
14516 : || !nonimmediate_operand (operands[1], E_V8DFmode)
14517 : || !
14518 : #line 30935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14519 : (TARGET_AVX512F))
14520 : return -1;
14521 : return 10134; /* avx512f_getmantv8df */
14522 :
14523 : case E_V4DFmode:
14524 : if (!register_operand (operands[0], E_V4DFmode)
14525 : || GET_MODE (x3) != E_V4DFmode
14526 : || !nonimmediate_operand (operands[1], E_V4DFmode)
14527 : || !(
14528 : #line 30935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14529 : (TARGET_AVX512F) &&
14530 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14531 : (TARGET_AVX512VL)))
14532 : return -1;
14533 : return 10138; /* avx512vl_getmantv4df */
14534 :
14535 : case E_V2DFmode:
14536 : if (!register_operand (operands[0], E_V2DFmode)
14537 : || GET_MODE (x3) != E_V2DFmode
14538 : || !nonimmediate_operand (operands[1], E_V2DFmode)
14539 : || !(
14540 : #line 30935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14541 : (TARGET_AVX512F) &&
14542 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14543 : (TARGET_AVX512VL)))
14544 : return -1;
14545 : return 10142; /* avx512vl_getmantv2df */
14546 :
14547 : default:
14548 : return -1;
14549 : }
14550 : }
14551 :
14552 : int
14553 : recog_242 (rtx x1 ATTRIBUTE_UNUSED,
14554 : rtx_insn *insn ATTRIBUTE_UNUSED,
14555 : int *pnum_clobbers ATTRIBUTE_UNUSED)
14556 : {
14557 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
14558 : rtx x2, x3, x4, x5;
14559 : int res ATTRIBUTE_UNUSED;
14560 : x2 = XEXP (x1, 0);
14561 : if (GET_CODE (x2) != REG
14562 : || REGNO (x2) != 17)
14563 : return -1;
14564 : x3 = XEXP (x1, 1);
14565 : x4 = XVECEXP (x3, 0, 0);
14566 : operands[0] = x4;
14567 : x5 = XVECEXP (x3, 0, 1);
14568 : operands[1] = x5;
14569 : switch (GET_MODE (operands[0]))
14570 : {
14571 : case E_QImode:
14572 : if (register_operand (operands[0], E_QImode)
14573 : && register_operand (operands[1], E_QImode)
14574 : && (
14575 : #line 2382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14576 : (TARGET_AVX512F) &&
14577 : #line 2104 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14578 : (TARGET_AVX512DQ)))
14579 : return 2683; /* *kortestqi */
14580 : break;
14581 :
14582 : case E_HImode:
14583 : if (register_operand (operands[0], E_HImode)
14584 : && register_operand (operands[1], E_HImode)
14585 : &&
14586 : #line 2382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14587 : (TARGET_AVX512F))
14588 : return 2684; /* *kortesthi */
14589 : break;
14590 :
14591 : case E_SImode:
14592 : if (register_operand (operands[0], E_SImode)
14593 : && register_operand (operands[1], E_SImode)
14594 : && (
14595 : #line 2382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14596 : (TARGET_AVX512F) &&
14597 : #line 2104 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14598 : (TARGET_AVX512BW)))
14599 : return 2685; /* *kortestsi */
14600 : break;
14601 :
14602 : case E_DImode:
14603 : if (register_operand (operands[0], E_DImode)
14604 : && register_operand (operands[1], E_DImode)
14605 : && (
14606 : #line 2382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14607 : (TARGET_AVX512F) &&
14608 : #line 2104 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14609 : (TARGET_AVX512BW)))
14610 : return 2686; /* *kortestdi */
14611 : break;
14612 :
14613 : default:
14614 : break;
14615 : }
14616 : switch (GET_MODE (x2))
14617 : {
14618 : case E_CCCmode:
14619 : if (GET_MODE (x3) != E_CCCmode)
14620 : return -1;
14621 : switch (pattern969 ())
14622 : {
14623 : case 0:
14624 : if (!(
14625 : #line 2395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14626 : (TARGET_AVX512F) &&
14627 : #line 2104 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14628 : (TARGET_AVX512DQ)))
14629 : return -1;
14630 : return 2687; /* kortestqi_ccc */
14631 :
14632 : case 1:
14633 : if (!
14634 : #line 2395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14635 : (TARGET_AVX512F))
14636 : return -1;
14637 : return 2688; /* kortesthi_ccc */
14638 :
14639 : case 2:
14640 : if (!(
14641 : #line 2395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14642 : (TARGET_AVX512F) &&
14643 : #line 2104 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14644 : (TARGET_AVX512BW)))
14645 : return -1;
14646 : return 2689; /* kortestsi_ccc */
14647 :
14648 : case 3:
14649 : if (!(
14650 : #line 2395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14651 : (TARGET_AVX512F) &&
14652 : #line 2104 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14653 : (TARGET_AVX512BW)))
14654 : return -1;
14655 : return 2690; /* kortestdi_ccc */
14656 :
14657 : default:
14658 : return -1;
14659 : }
14660 :
14661 : case E_CCZmode:
14662 : if (GET_MODE (x3) != E_CCZmode)
14663 : return -1;
14664 : switch (pattern969 ())
14665 : {
14666 : case 0:
14667 : if (!(
14668 : #line 2403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14669 : (TARGET_AVX512F) &&
14670 : #line 2104 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14671 : (TARGET_AVX512DQ)))
14672 : return -1;
14673 : return 2691; /* kortestqi_ccz */
14674 :
14675 : case 1:
14676 : if (!
14677 : #line 2403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14678 : (TARGET_AVX512F))
14679 : return -1;
14680 : return 2692; /* kortesthi_ccz */
14681 :
14682 : case 2:
14683 : if (!(
14684 : #line 2403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14685 : (TARGET_AVX512F) &&
14686 : #line 2104 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14687 : (TARGET_AVX512BW)))
14688 : return -1;
14689 : return 2693; /* kortestsi_ccz */
14690 :
14691 : case 3:
14692 : if (!(
14693 : #line 2403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14694 : (TARGET_AVX512F) &&
14695 : #line 2104 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14696 : (TARGET_AVX512BW)))
14697 : return -1;
14698 : return 2694; /* kortestdi_ccz */
14699 :
14700 : default:
14701 : return -1;
14702 : }
14703 :
14704 : default:
14705 : return -1;
14706 : }
14707 : }
14708 :
14709 : int
14710 : recog_251 (rtx x1 ATTRIBUTE_UNUSED,
14711 : rtx_insn *insn ATTRIBUTE_UNUSED,
14712 : int *pnum_clobbers ATTRIBUTE_UNUSED)
14713 : {
14714 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
14715 : rtx x2, x3, x4, x5, x6, x7, x8;
14716 : int res ATTRIBUTE_UNUSED;
14717 : x2 = XEXP (x1, 0);
14718 : operands[0] = x2;
14719 : x3 = XEXP (x1, 1);
14720 : x4 = XVECEXP (x3, 0, 2);
14721 : switch (GET_CODE (x4))
14722 : {
14723 : case LT:
14724 : x5 = XVECEXP (x3, 0, 0);
14725 : operands[1] = x5;
14726 : switch (pattern670 (x3))
14727 : {
14728 : case 0:
14729 : if ((
14730 : #line 3416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14731 : (TARGET_SSE && ix86_pre_reload_split ()
14732 : && ((rtx_equal_p (operands[1], operands[3])
14733 : && rtx_equal_p (operands[2], operands[4]))
14734 : || (rtx_equal_p (operands[1], operands[4])
14735 : && rtx_equal_p (operands[2], operands[3])))) &&
14736 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14737 : (TARGET_AVX)))
14738 : return 3108; /* *minmaxv8sf3_2 */
14739 : break;
14740 :
14741 : case 1:
14742 : if (
14743 : #line 3416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14744 : (TARGET_SSE && ix86_pre_reload_split ()
14745 : && ((rtx_equal_p (operands[1], operands[3])
14746 : && rtx_equal_p (operands[2], operands[4]))
14747 : || (rtx_equal_p (operands[1], operands[4])
14748 : && rtx_equal_p (operands[2], operands[3])))))
14749 : return 3109; /* *minmaxv4sf3_2 */
14750 : break;
14751 :
14752 : case 2:
14753 : if ((
14754 : #line 3416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14755 : (TARGET_SSE && ix86_pre_reload_split ()
14756 : && ((rtx_equal_p (operands[1], operands[3])
14757 : && rtx_equal_p (operands[2], operands[4]))
14758 : || (rtx_equal_p (operands[1], operands[4])
14759 : && rtx_equal_p (operands[2], operands[3])))) &&
14760 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14761 : (TARGET_AVX)))
14762 : return 3110; /* *minmaxv4df3_2 */
14763 : break;
14764 :
14765 : case 3:
14766 : if ((
14767 : #line 3416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14768 : (TARGET_SSE && ix86_pre_reload_split ()
14769 : && ((rtx_equal_p (operands[1], operands[3])
14770 : && rtx_equal_p (operands[2], operands[4]))
14771 : || (rtx_equal_p (operands[1], operands[4])
14772 : && rtx_equal_p (operands[2], operands[3])))) &&
14773 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14774 : (TARGET_SSE2)))
14775 : return 3111; /* *minmaxv2df3_2 */
14776 : break;
14777 :
14778 : case 4:
14779 : if ((
14780 : #line 24124 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14781 : (TARGET_SSE4_1) &&
14782 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14783 : (TARGET_AVX)))
14784 : return 8764; /* *avx_blendvps256_lt */
14785 : break;
14786 :
14787 : case 5:
14788 : if (
14789 : #line 24124 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14790 : (TARGET_SSE4_1))
14791 : return 8765; /* *sse4_1_blendvps_lt */
14792 : break;
14793 :
14794 : case 6:
14795 : if ((
14796 : #line 24124 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14797 : (TARGET_SSE4_1) &&
14798 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14799 : (TARGET_AVX)))
14800 : return 8766; /* *avx_blendvpd256_lt */
14801 : break;
14802 :
14803 : case 7:
14804 : if ((
14805 : #line 24124 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14806 : (TARGET_SSE4_1) &&
14807 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14808 : (TARGET_SSE2)))
14809 : return 8767; /* *sse4_1_blendvpd_lt */
14810 : break;
14811 :
14812 : case 8:
14813 : if ((
14814 : #line 24451 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14815 : (TARGET_SSE4_1) &&
14816 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14817 : (TARGET_AVX2)))
14818 : return 8811; /* *avx2_pblendvb_lt */
14819 : break;
14820 :
14821 : case 9:
14822 : if (
14823 : #line 24451 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14824 : (TARGET_SSE4_1))
14825 : return 8812; /* *sse4_1_pblendvb_lt */
14826 : break;
14827 :
14828 : default:
14829 : break;
14830 : }
14831 : x6 = XEXP (x4, 0);
14832 : if (GET_CODE (x6) != SUBREG)
14833 : return -1;
14834 : switch (pattern672 (x3))
14835 : {
14836 : case 0:
14837 : if (!(
14838 : #line 24501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14839 : (TARGET_SSE4_1
14840 : && GET_MODE_CLASS (GET_MODE (operands[3])) == MODE_VECTOR_INT
14841 : && GET_MODE_SIZE (GET_MODE (operands[3])) == 32
14842 : && ix86_pre_reload_split ()) &&
14843 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14844 : (TARGET_AVX2)))
14845 : return -1;
14846 : return 8815; /* *avx2_pblendvb_lt_subreg_not */
14847 :
14848 : case 1:
14849 : if (!
14850 : #line 24501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14851 : (TARGET_SSE4_1
14852 : && GET_MODE_CLASS (GET_MODE (operands[3])) == MODE_VECTOR_INT
14853 : && GET_MODE_SIZE (GET_MODE (operands[3])) == 16
14854 : && ix86_pre_reload_split ()))
14855 : return -1;
14856 : return 8816; /* *sse4_1_pblendvb_lt_subreg_not */
14857 :
14858 : default:
14859 : return -1;
14860 : }
14861 :
14862 : case REG:
14863 : case SUBREG:
14864 : operands[3] = x4;
14865 : x5 = XVECEXP (x3, 0, 0);
14866 : operands[1] = x5;
14867 : x7 = XVECEXP (x3, 0, 1);
14868 : operands[2] = x7;
14869 : switch (GET_MODE (operands[0]))
14870 : {
14871 : case E_V8SFmode:
14872 : if (pattern1038 (x3,
14873 : E_V8SFmode) == 0
14874 : && (
14875 : #line 24058 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14876 : (TARGET_SSE4_1) &&
14877 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14878 : (TARGET_AVX)))
14879 : return 8758; /* avx_blendvps256 */
14880 : break;
14881 :
14882 : case E_V4SFmode:
14883 : if (pattern1038 (x3,
14884 : E_V4SFmode) == 0
14885 : &&
14886 : #line 24058 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14887 : (TARGET_SSE4_1))
14888 : return 8759; /* sse4_1_blendvps */
14889 : break;
14890 :
14891 : case E_V4DFmode:
14892 : if (pattern1038 (x3,
14893 : E_V4DFmode) == 0
14894 : && (
14895 : #line 24058 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14896 : (TARGET_SSE4_1) &&
14897 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14898 : (TARGET_AVX)))
14899 : return 8760; /* avx_blendvpd256 */
14900 : break;
14901 :
14902 : case E_V2DFmode:
14903 : if (pattern1038 (x3,
14904 : E_V2DFmode) == 0
14905 : && (
14906 : #line 24058 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14907 : (TARGET_SSE4_1) &&
14908 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14909 : (TARGET_SSE2)))
14910 : return 8761; /* sse4_1_blendvpd */
14911 : break;
14912 :
14913 : default:
14914 : break;
14915 : }
14916 : operands[1] = x5;
14917 : operands[2] = x7;
14918 : if (GET_CODE (x4) == SUBREG
14919 : && known_eq (SUBREG_BYTE (x4), 0))
14920 : {
14921 : x6 = XEXP (x4, 0);
14922 : switch (GET_CODE (x6))
14923 : {
14924 : case LT:
14925 : x8 = XEXP (x6, 0);
14926 : operands[3] = x8;
14927 : switch (pattern1235 (x3))
14928 : {
14929 : case 0:
14930 : if (
14931 : #line 24177 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14932 : (TARGET_SSE4_1))
14933 : return 8772; /* *sse4_1_blendvps_ltint */
14934 : break;
14935 :
14936 : case 1:
14937 : if (
14938 : #line 24177 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14939 : (TARGET_SSE4_1))
14940 : return 8773; /* *sse4_1_blendvpd_ltint */
14941 : break;
14942 :
14943 : case 2:
14944 : if ((
14945 : #line 24177 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14946 : (TARGET_SSE4_1) &&
14947 : #line 608 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14948 : (TARGET_AVX)))
14949 : return 8774; /* *avx_blendvps256_ltint */
14950 : break;
14951 :
14952 : case 3:
14953 : if ((
14954 : #line 24177 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14955 : (TARGET_SSE4_1) &&
14956 : #line 608 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14957 : (TARGET_AVX)))
14958 : return 8775; /* *avx_blendvpd256_ltint */
14959 : break;
14960 :
14961 : default:
14962 : break;
14963 : }
14964 : if (GET_CODE (x8) == SUBREG)
14965 : {
14966 : switch (pattern1236 (x3))
14967 : {
14968 : case 0:
14969 : if (
14970 : #line 24244 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14971 : (TARGET_SSE4_1 && ix86_pre_reload_split ()))
14972 : return 8780; /* *sse4_1_blendvps_not_ltint */
14973 : break;
14974 :
14975 : case 1:
14976 : if (
14977 : #line 24244 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14978 : (TARGET_SSE4_1 && ix86_pre_reload_split ()))
14979 : return 8781; /* *sse4_1_blendvpd_not_ltint */
14980 : break;
14981 :
14982 : case 2:
14983 : if ((
14984 : #line 24244 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14985 : (TARGET_SSE4_1 && ix86_pre_reload_split ()) &&
14986 : #line 608 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14987 : (TARGET_AVX)))
14988 : return 8782; /* *avx_blendvps256_not_ltint */
14989 : break;
14990 :
14991 : case 3:
14992 : if ((
14993 : #line 24244 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14994 : (TARGET_SSE4_1 && ix86_pre_reload_split ()) &&
14995 : #line 608 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14996 : (TARGET_AVX)))
14997 : return 8783; /* *avx_blendvpd256_not_ltint */
14998 : break;
14999 :
15000 : default:
15001 : break;
15002 : }
15003 : }
15004 : break;
15005 :
15006 : case GT:
15007 : x8 = XEXP (x6, 0);
15008 : operands[3] = x8;
15009 : switch (pattern1237 (x3))
15010 : {
15011 : case 0:
15012 : if (
15013 : #line 24209 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15014 : (TARGET_SSE4_1))
15015 : return 8776; /* *sse4_1_blendvps_gtint */
15016 : break;
15017 :
15018 : case 1:
15019 : if (
15020 : #line 24209 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15021 : (TARGET_SSE4_1))
15022 : return 8777; /* *sse4_1_blendvpd_gtint */
15023 : break;
15024 :
15025 : case 2:
15026 : if ((
15027 : #line 24209 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15028 : (TARGET_SSE4_1) &&
15029 : #line 608 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15030 : (TARGET_AVX)))
15031 : return 8778; /* *avx_blendvps256_gtint */
15032 : break;
15033 :
15034 : case 3:
15035 : if ((
15036 : #line 24209 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15037 : (TARGET_SSE4_1) &&
15038 : #line 608 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15039 : (TARGET_AVX)))
15040 : return 8779; /* *avx_blendvpd256_gtint */
15041 : break;
15042 :
15043 : default:
15044 : break;
15045 : }
15046 : if (GET_CODE (x8) == SUBREG)
15047 : {
15048 : switch (pattern1238 (x3))
15049 : {
15050 : case 0:
15051 : if (
15052 : #line 24270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15053 : (TARGET_SSE4_1 && ix86_pre_reload_split ()))
15054 : return 8784; /* *sse4_1_blendvps_not_gtint */
15055 : break;
15056 :
15057 : case 1:
15058 : if (
15059 : #line 24270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15060 : (TARGET_SSE4_1 && ix86_pre_reload_split ()))
15061 : return 8785; /* *sse4_1_blendvpd_not_gtint */
15062 : break;
15063 :
15064 : case 2:
15065 : if ((
15066 : #line 24270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15067 : (TARGET_SSE4_1 && ix86_pre_reload_split ()) &&
15068 : #line 608 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15069 : (TARGET_AVX)))
15070 : return 8786; /* *avx_blendvps256_not_gtint */
15071 : break;
15072 :
15073 : case 3:
15074 : if ((
15075 : #line 24270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15076 : (TARGET_SSE4_1 && ix86_pre_reload_split ()) &&
15077 : #line 608 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15078 : (TARGET_AVX)))
15079 : return 8787; /* *avx_blendvpd256_not_gtint */
15080 : break;
15081 :
15082 : default:
15083 : break;
15084 : }
15085 : }
15086 : break;
15087 :
15088 : default:
15089 : break;
15090 : }
15091 : }
15092 : operands[3] = x4;
15093 : switch (GET_MODE (operands[0]))
15094 : {
15095 : case E_V32QImode:
15096 : if (pattern1038 (x3,
15097 : E_V32QImode) != 0
15098 : || !(
15099 : #line 24399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15100 : (TARGET_SSE4_1) &&
15101 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15102 : (TARGET_AVX2)))
15103 : return -1;
15104 : return 8809; /* avx2_pblendvb */
15105 :
15106 : case E_V16QImode:
15107 : if (pattern1038 (x3,
15108 : E_V16QImode) != 0
15109 : || !
15110 : #line 24399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15111 : (TARGET_SSE4_1))
15112 : return -1;
15113 : return 8810; /* sse4_1_pblendvb */
15114 :
15115 : default:
15116 : return -1;
15117 : }
15118 :
15119 : case GT:
15120 : x5 = XVECEXP (x3, 0, 0);
15121 : operands[1] = x5;
15122 : switch (pattern675 (x3))
15123 : {
15124 : case 0:
15125 : if ((
15126 : #line 24150 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15127 : (TARGET_SSE4_1) &&
15128 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15129 : (TARGET_AVX)))
15130 : return 8768; /* *avx_blendvps256_gt */
15131 : break;
15132 :
15133 : case 1:
15134 : if (
15135 : #line 24150 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15136 : (TARGET_SSE4_1))
15137 : return 8769; /* *sse4_1_blendvps_gt */
15138 : break;
15139 :
15140 : case 2:
15141 : if ((
15142 : #line 24150 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15143 : (TARGET_SSE4_1) &&
15144 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15145 : (TARGET_AVX)))
15146 : return 8770; /* *avx_blendvpd256_gt */
15147 : break;
15148 :
15149 : case 3:
15150 : if ((
15151 : #line 24150 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15152 : (TARGET_SSE4_1) &&
15153 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15154 : (TARGET_SSE2)))
15155 : return 8771; /* *sse4_1_blendvpd_gt */
15156 : break;
15157 :
15158 : case 4:
15159 : if ((
15160 : #line 24475 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15161 : (TARGET_SSE4_1) &&
15162 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15163 : (TARGET_AVX2)))
15164 : return 8813; /* *avx2_pblendvb_gt */
15165 : break;
15166 :
15167 : case 5:
15168 : if (
15169 : #line 24475 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15170 : (TARGET_SSE4_1))
15171 : return 8814; /* *sse4_1_pblendvb_gt */
15172 : break;
15173 :
15174 : default:
15175 : break;
15176 : }
15177 : x6 = XEXP (x4, 0);
15178 : if (GET_CODE (x6) != SUBREG)
15179 : return -1;
15180 : switch (pattern677 (x3))
15181 : {
15182 : case 0:
15183 : if (!(
15184 : #line 24523 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15185 : (TARGET_SSE4_1
15186 : && GET_MODE_CLASS (GET_MODE (operands[3])) == MODE_VECTOR_INT
15187 : && GET_MODE_SIZE (GET_MODE (operands[3])) == 32
15188 : && ix86_pre_reload_split ()) &&
15189 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15190 : (TARGET_AVX2)))
15191 : return -1;
15192 : return 8817; /* *avx2_pblendvb_gt_subreg_not */
15193 :
15194 : case 1:
15195 : if (!
15196 : #line 24523 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15197 : (TARGET_SSE4_1
15198 : && GET_MODE_CLASS (GET_MODE (operands[3])) == MODE_VECTOR_INT
15199 : && GET_MODE_SIZE (GET_MODE (operands[3])) == 16
15200 : && ix86_pre_reload_split ()))
15201 : return -1;
15202 : return 8818; /* *sse4_1_pblendvb_gt_subreg_not */
15203 :
15204 : default:
15205 : return -1;
15206 : }
15207 :
15208 : default:
15209 : return -1;
15210 : }
15211 : }
15212 :
15213 : int
15214 : recog_260 (rtx x1 ATTRIBUTE_UNUSED,
15215 : rtx_insn *insn ATTRIBUTE_UNUSED,
15216 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15217 : {
15218 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15219 : int res ATTRIBUTE_UNUSED;
15220 : switch (pattern181 (x1))
15221 : {
15222 : case 0:
15223 : if (!
15224 : #line 31467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15225 : (TARGET_AVX512VBMI2))
15226 : return -1;
15227 : return 10305; /* vpshld_v32hi */
15228 :
15229 : case 1:
15230 : if (!
15231 : #line 31467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15232 : (TARGET_AVX512VBMI2))
15233 : return -1;
15234 : return 10307; /* vpshld_v16si */
15235 :
15236 : case 2:
15237 : if (!
15238 : #line 31467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15239 : (TARGET_AVX512VBMI2))
15240 : return -1;
15241 : return 10309; /* vpshld_v8di */
15242 :
15243 : case 3:
15244 : if (!(
15245 : #line 31467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15246 : (TARGET_AVX512VBMI2) &&
15247 : #line 747 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15248 : (TARGET_AVX512VL)))
15249 : return -1;
15250 : return 10311; /* vpshld_v16hi */
15251 :
15252 : case 4:
15253 : if (!(
15254 : #line 31467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15255 : (TARGET_AVX512VBMI2) &&
15256 : #line 747 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15257 : (TARGET_AVX512VL)))
15258 : return -1;
15259 : return 10313; /* vpshld_v8si */
15260 :
15261 : case 5:
15262 : if (!(
15263 : #line 31467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15264 : (TARGET_AVX512VBMI2) &&
15265 : #line 748 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15266 : (TARGET_AVX512VL)))
15267 : return -1;
15268 : return 10315; /* vpshld_v4di */
15269 :
15270 : case 6:
15271 : if (!(
15272 : #line 31467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15273 : (TARGET_AVX512VBMI2) &&
15274 : #line 748 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15275 : (TARGET_AVX512VL)))
15276 : return -1;
15277 : return 10317; /* vpshld_v8hi */
15278 :
15279 : case 7:
15280 : if (!(
15281 : #line 31467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15282 : (TARGET_AVX512VBMI2) &&
15283 : #line 749 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15284 : (TARGET_AVX512VL)))
15285 : return -1;
15286 : return 10319; /* vpshld_v4si */
15287 :
15288 : case 8:
15289 : if (!(
15290 : #line 31467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15291 : (TARGET_AVX512VBMI2) &&
15292 : #line 749 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15293 : (TARGET_AVX512VL)))
15294 : return -1;
15295 : return 10321; /* vpshld_v2di */
15296 :
15297 : default:
15298 : return -1;
15299 : }
15300 : }
15301 :
15302 : int
15303 : recog_266 (rtx x1 ATTRIBUTE_UNUSED,
15304 : rtx_insn *insn ATTRIBUTE_UNUSED,
15305 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15306 : {
15307 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15308 : rtx x2, x3, x4, x5;
15309 : int res ATTRIBUTE_UNUSED;
15310 : x2 = XEXP (x1, 0);
15311 : operands[0] = x2;
15312 : x3 = XEXP (x1, 1);
15313 : x4 = XVECEXP (x3, 0, 0);
15314 : operands[1] = x4;
15315 : x5 = XVECEXP (x3, 0, 1);
15316 : operands[2] = x5;
15317 : switch (pattern679 (x3))
15318 : {
15319 : case 0:
15320 : if (
15321 : #line 7564 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15322 : (TARGET_AVX512FP16 && 1 && 1))
15323 : return 4368; /* fma_fmaddc_v32hf */
15324 : break;
15325 :
15326 : case 1:
15327 : if ((
15328 : #line 7564 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15329 : (TARGET_AVX512FP16 && 1 && 1) &&
15330 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15331 : (TARGET_AVX512VL)))
15332 : return 4376; /* fma_fmaddc_v16hf */
15333 : break;
15334 :
15335 : case 2:
15336 : if ((
15337 : #line 7564 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15338 : (TARGET_AVX512FP16 && 1 && 1) &&
15339 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15340 : (TARGET_AVX512VL)))
15341 : return 4380; /* fma_fmaddc_v8hf */
15342 : break;
15343 :
15344 : default:
15345 : break;
15346 : }
15347 : if (GET_CODE (x5) != SUBREG
15348 : || maybe_ne (SUBREG_BYTE (x5), 0))
15349 : return -1;
15350 : switch (pattern604 (x3))
15351 : {
15352 : case 0:
15353 : if (!
15354 : #line 7643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15355 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()))
15356 : return -1;
15357 : return 4402; /* fma_v32hf_fmaddc_bcst */
15358 :
15359 : case 1:
15360 : if (!(
15361 : #line 7643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15362 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()) &&
15363 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15364 : (TARGET_AVX512VL)))
15365 : return -1;
15366 : return 4403; /* fma_v16hf_fmaddc_bcst */
15367 :
15368 : case 2:
15369 : if (!(
15370 : #line 7643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15371 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()) &&
15372 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15373 : (TARGET_AVX512VL)))
15374 : return -1;
15375 : return 4404; /* fma_v8hf_fmaddc_bcst */
15376 :
15377 : default:
15378 : return -1;
15379 : }
15380 : }
15381 :
15382 : int
15383 : recog_273 (rtx x1 ATTRIBUTE_UNUSED,
15384 : rtx_insn *insn ATTRIBUTE_UNUSED,
15385 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15386 : {
15387 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15388 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
15389 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
15390 : int res ATTRIBUTE_UNUSED;
15391 : x2 = XEXP (x1, 1);
15392 : x3 = XEXP (x2, 0);
15393 : x4 = XEXP (x3, 2);
15394 : if (!register_operand (x4, E_QImode))
15395 : return -1;
15396 : x5 = XEXP (x3, 0);
15397 : switch (GET_CODE (x5))
15398 : {
15399 : case FLOAT:
15400 : switch (pattern505 (x2))
15401 : {
15402 : case 0:
15403 : if (!
15404 : #line 8111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15405 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
15406 : return -1;
15407 : return 4576; /* *avx512fp16_vcvtdq2ph_v4si_mask */
15408 :
15409 : case 1:
15410 : if (!
15411 : #line 8111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15412 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
15413 : return -1;
15414 : return 4578; /* *avx512fp16_vcvtqq2ph_v4di_mask */
15415 :
15416 : case 2:
15417 : if (!
15418 : #line 8187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15419 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
15420 : return -1;
15421 : return 4586; /* *avx512fp16_vcvtqq2ph_v2di_mask */
15422 :
15423 : case 3:
15424 : if (!
15425 : #line 9702 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15426 : (TARGET_AVX512DQ && TARGET_AVX512VL))
15427 : return -1;
15428 : return 5030; /* *floatv2div2sf2_mask */
15429 :
15430 : case 4:
15431 : if (!
15432 : #line 8126 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15433 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
15434 : return -1;
15435 : return 4580; /* *avx512fp16_vcvtdq2ph_v4si_mask_1 */
15436 :
15437 : case 5:
15438 : if (!
15439 : #line 8126 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15440 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
15441 : return -1;
15442 : return 4582; /* *avx512fp16_vcvtqq2ph_v4di_mask_1 */
15443 :
15444 : case 6:
15445 : if (!
15446 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15447 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
15448 : return -1;
15449 : return 4588; /* *avx512fp16_vcvtqq2ph_v2di_mask_1 */
15450 :
15451 : case 7:
15452 : if (!
15453 : #line 9717 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15454 : (TARGET_AVX512DQ && TARGET_AVX512VL))
15455 : return -1;
15456 : return 5032; /* *floatv2div2sf2_mask_1 */
15457 :
15458 : default:
15459 : return -1;
15460 : }
15461 :
15462 : case UNSIGNED_FLOAT:
15463 : switch (pattern505 (x2))
15464 : {
15465 : case 0:
15466 : if (!
15467 : #line 8111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15468 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
15469 : return -1;
15470 : return 4577; /* *avx512fp16_vcvtudq2ph_v4si_mask */
15471 :
15472 : case 1:
15473 : if (!
15474 : #line 8111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15475 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
15476 : return -1;
15477 : return 4579; /* *avx512fp16_vcvtuqq2ph_v4di_mask */
15478 :
15479 : case 2:
15480 : if (!
15481 : #line 8187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15482 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
15483 : return -1;
15484 : return 4587; /* *avx512fp16_vcvtuqq2ph_v2di_mask */
15485 :
15486 : case 3:
15487 : if (!
15488 : #line 9702 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15489 : (TARGET_AVX512DQ && TARGET_AVX512VL))
15490 : return -1;
15491 : return 5031; /* *floatunsv2div2sf2_mask */
15492 :
15493 : case 4:
15494 : if (!
15495 : #line 8126 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15496 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
15497 : return -1;
15498 : return 4581; /* *avx512fp16_vcvtudq2ph_v4si_mask_1 */
15499 :
15500 : case 5:
15501 : if (!
15502 : #line 8126 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15503 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
15504 : return -1;
15505 : return 4583; /* *avx512fp16_vcvtuqq2ph_v4di_mask_1 */
15506 :
15507 : case 6:
15508 : if (!
15509 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15510 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
15511 : return -1;
15512 : return 4589; /* *avx512fp16_vcvtuqq2ph_v2di_mask_1 */
15513 :
15514 : case 7:
15515 : if (!
15516 : #line 9717 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15517 : (TARGET_AVX512DQ && TARGET_AVX512VL))
15518 : return -1;
15519 : return 5033; /* *floatunsv2div2sf2_mask_1 */
15520 :
15521 : default:
15522 : return -1;
15523 : }
15524 :
15525 : case FLOAT_TRUNCATE:
15526 : x6 = XEXP (x5, 0);
15527 : operands[1] = x6;
15528 : x7 = XEXP (x2, 1);
15529 : operands[4] = x7;
15530 : x8 = XEXP (x3, 1);
15531 : switch (GET_CODE (x8))
15532 : {
15533 : case VEC_SELECT:
15534 : x9 = XEXP (x8, 1);
15535 : if (GET_CODE (x9) != PARALLEL)
15536 : return -1;
15537 : x10 = XEXP (x8, 0);
15538 : operands[2] = x10;
15539 : operands[3] = x4;
15540 : switch (XVECLEN (x9, 0))
15541 : {
15542 : case 4:
15543 : if (pattern1229 (x9,
15544 : 3,
15545 : 2,
15546 : 1,
15547 : 0) != 0)
15548 : return -1;
15549 : switch (GET_MODE (operands[0]))
15550 : {
15551 : case E_V8HFmode:
15552 : if (!register_operand (operands[0], E_V8HFmode)
15553 : || GET_MODE (x2) != E_V8HFmode
15554 : || GET_MODE (x3) != E_V4HFmode
15555 : || GET_MODE (x5) != E_V4HFmode
15556 : || GET_MODE (x8) != E_V4HFmode
15557 : || !nonimm_or_0_operand (operands[2], E_V8HFmode))
15558 : return -1;
15559 : switch (pattern1568 ())
15560 : {
15561 : case 0:
15562 : if (!
15563 : #line 8582 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15564 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
15565 : return -1;
15566 : return 4800; /* *avx512fp16_vcvtpd2ph_v4df_mask */
15567 :
15568 : case 1:
15569 : if (!
15570 : #line 8582 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15571 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
15572 : return -1;
15573 : return 4801; /* *avx512fp16_vcvtps2ph_v4sf_mask */
15574 :
15575 : default:
15576 : return -1;
15577 : }
15578 :
15579 : case E_V8BFmode:
15580 : if (pattern501 (x2,
15581 : E_V4BFmode,
15582 : E_V8BFmode,
15583 : E_V4SFmode) != 0
15584 : || !
15585 : #line 32170 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15586 : (TARGET_AVX512BF16 && TARGET_AVX512VL))
15587 : return -1;
15588 : return 10449; /* avx512f_cvtneps2bf16_v4sf_mask_1 */
15589 :
15590 : default:
15591 : return -1;
15592 : }
15593 :
15594 : case 2:
15595 : switch (pattern502 (x2,
15596 : E_V2DFmode))
15597 : {
15598 : case 0:
15599 : if (!
15600 : #line 8658 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15601 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
15602 : return -1;
15603 : return 4805; /* *avx512fp16_vcvtpd2ph_v2df_mask */
15604 :
15605 : case 1:
15606 : if (!
15607 : #line 10566 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15608 : (TARGET_AVX512VL))
15609 : return -1;
15610 : return 5205; /* *sse2_cvtpd2ps_mask */
15611 :
15612 : default:
15613 : return -1;
15614 : }
15615 :
15616 : default:
15617 : return -1;
15618 : }
15619 :
15620 : case CONST_INT:
15621 : case CONST_DOUBLE:
15622 : case CONST_VECTOR:
15623 : operands[3] = x8;
15624 : operands[2] = x4;
15625 : switch (GET_MODE (operands[0]))
15626 : {
15627 : case E_V8HFmode:
15628 : if (!register_operand (operands[0], E_V8HFmode)
15629 : || GET_MODE (x2) != E_V8HFmode)
15630 : return -1;
15631 : switch (GET_MODE (x3))
15632 : {
15633 : case E_V4HFmode:
15634 : if (GET_MODE (x5) != E_V4HFmode
15635 : || !const0_operand (operands[3], E_V4HFmode))
15636 : return -1;
15637 : switch (pattern1568 ())
15638 : {
15639 : case 0:
15640 : if (!
15641 : #line 8597 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15642 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
15643 : return -1;
15644 : return 4802; /* *avx512fp16_vcvtpd2ph_v4df_mask_1 */
15645 :
15646 : case 1:
15647 : if (!
15648 : #line 8597 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15649 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
15650 : return -1;
15651 : return 4803; /* *avx512fp16_vcvtps2ph_v4sf_mask_1 */
15652 :
15653 : default:
15654 : return -1;
15655 : }
15656 :
15657 : case E_V2HFmode:
15658 : if (pattern503 (x5,
15659 : E_V2DFmode) != 0
15660 : || !
15661 : #line 8673 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15662 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
15663 : return -1;
15664 : return 4806; /* *avx512fp16_vcvtpd2ph_v2df_mask_1 */
15665 :
15666 : default:
15667 : return -1;
15668 : }
15669 :
15670 : case E_V4SFmode:
15671 : if (pattern504 (x2,
15672 : E_V2DFmode) != 0
15673 : || !
15674 : #line 10581 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15675 : (TARGET_AVX512VL))
15676 : return -1;
15677 : return 5206; /* *sse2_cvtpd2ps_mask_1 */
15678 :
15679 : default:
15680 : return -1;
15681 : }
15682 :
15683 : default:
15684 : return -1;
15685 : }
15686 :
15687 : case UNSPEC:
15688 : switch (XVECLEN (x5, 0))
15689 : {
15690 : case 1:
15691 : x11 = XVECEXP (x5, 0, 0);
15692 : operands[1] = x11;
15693 : switch (XINT (x5, 1))
15694 : {
15695 : case 47:
15696 : switch (pattern923 (x2))
15697 : {
15698 : case 0:
15699 : if (!
15700 : #line 9861 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15701 : (TARGET_AVX512VL))
15702 : return -1;
15703 : return 5052; /* sse2_cvtpd2dq_mask */
15704 :
15705 : case 1:
15706 : if (!
15707 : #line 9876 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15708 : (TARGET_AVX512VL))
15709 : return -1;
15710 : return 5053; /* *sse2_cvtpd2dq_mask_1 */
15711 :
15712 : default:
15713 : return -1;
15714 : }
15715 :
15716 : case 157:
15717 : switch (pattern923 (x2))
15718 : {
15719 : case 0:
15720 : if (!
15721 : #line 9922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15722 : (TARGET_AVX512VL))
15723 : return -1;
15724 : return 5063; /* fixuns_notruncv2dfv2si2_mask */
15725 :
15726 : case 1:
15727 : if (!
15728 : #line 9938 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15729 : (TARGET_AVX512VL))
15730 : return -1;
15731 : return 5064; /* *fixuns_notruncv2dfv2si2_mask_1 */
15732 :
15733 : default:
15734 : return -1;
15735 : }
15736 :
15737 : case 174:
15738 : if (GET_MODE (x5) != E_V2SImode)
15739 : return -1;
15740 : x8 = XEXP (x3, 1);
15741 : if (pattern680 (x8,
15742 : 2,
15743 : E_V2SImode) != 0)
15744 : return -1;
15745 : x9 = XEXP (x8, 1);
15746 : x12 = XVECEXP (x9, 0, 0);
15747 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
15748 : return -1;
15749 : x13 = XVECEXP (x9, 0, 1);
15750 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
15751 : return -1;
15752 : x7 = XEXP (x2, 1);
15753 : if (GET_CODE (x7) != CONST_VECTOR
15754 : || XVECLEN (x7, 0) != 2
15755 : || GET_MODE (x7) != E_V2SImode)
15756 : return -1;
15757 : x14 = XVECEXP (x7, 0, 0);
15758 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
15759 : return -1;
15760 : x15 = XVECEXP (x7, 0, 1);
15761 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
15762 : || !register_operand (operands[0], E_V4SImode)
15763 : || GET_MODE (x2) != E_V4SImode
15764 : || GET_MODE (x3) != E_V2SImode
15765 : || !nonimmediate_operand (operands[1], E_V2DFmode))
15766 : return -1;
15767 : x10 = XEXP (x8, 0);
15768 : operands[2] = x10;
15769 : if (!nonimm_or_0_operand (operands[2], E_V4SImode))
15770 : return -1;
15771 : operands[3] = x4;
15772 : if (!
15773 : #line 9999 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15774 : (TARGET_AVX512VL))
15775 : return -1;
15776 : return 5083; /* unspec_fixuns_truncv2dfv2si2_mask */
15777 :
15778 : case 254:
15779 : if (pattern924 (x2) != 0
15780 : || !
15781 : #line 32978 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15782 : (TARGET_AVX10_2))
15783 : return -1;
15784 : return 10601; /* *vcvtph2bf8v8hf_mask */
15785 :
15786 : case 255:
15787 : if (pattern924 (x2) != 0
15788 : || !
15789 : #line 32978 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15790 : (TARGET_AVX10_2))
15791 : return -1;
15792 : return 10602; /* *vcvtph2bf8sv8hf_mask */
15793 :
15794 : case 256:
15795 : if (pattern924 (x2) != 0
15796 : || !
15797 : #line 32978 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15798 : (TARGET_AVX10_2))
15799 : return -1;
15800 : return 10603; /* *vcvtph2hf8v8hf_mask */
15801 :
15802 : case 257:
15803 : if (pattern924 (x2) != 0
15804 : || !
15805 : #line 32978 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15806 : (TARGET_AVX10_2))
15807 : return -1;
15808 : return 10604; /* *vcvtph2hf8sv8hf_mask */
15809 :
15810 : default:
15811 : return -1;
15812 : }
15813 :
15814 : case 2:
15815 : x8 = XEXP (x3, 1);
15816 : if (pattern680 (x8,
15817 : 8,
15818 : E_V8QImode) != 0)
15819 : return -1;
15820 : x9 = XEXP (x8, 1);
15821 : x12 = XVECEXP (x9, 0, 0);
15822 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
15823 : return -1;
15824 : x13 = XVECEXP (x9, 0, 1);
15825 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
15826 : return -1;
15827 : x16 = XVECEXP (x9, 0, 2);
15828 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 2]
15829 : || pattern1423 (x9,
15830 : 7,
15831 : 6,
15832 : 5,
15833 : 4,
15834 : 3) != 0
15835 : || !register_operand (operands[0], E_V16QImode)
15836 : || GET_MODE (x2) != E_V16QImode
15837 : || GET_MODE (x3) != E_V8QImode
15838 : || GET_MODE (x5) != E_V8QImode)
15839 : return -1;
15840 : x11 = XVECEXP (x5, 0, 0);
15841 : operands[1] = x11;
15842 : if (!register_operand (operands[1], E_V16QImode))
15843 : return -1;
15844 : x17 = XVECEXP (x5, 0, 1);
15845 : operands[2] = x17;
15846 : if (!nonimmediate_operand (operands[2], E_V8HFmode))
15847 : return -1;
15848 : x10 = XEXP (x8, 0);
15849 : operands[3] = x10;
15850 : if (!nonimm_or_0_operand (operands[3], E_V16QImode))
15851 : return -1;
15852 : operands[4] = x4;
15853 : x7 = XEXP (x2, 1);
15854 : operands[5] = x7;
15855 : if (!const0_operand (operands[5], E_V8QImode))
15856 : return -1;
15857 : switch (XINT (x5, 1))
15858 : {
15859 : case 246:
15860 : if (!
15861 : #line 32890 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15862 : (TARGET_AVX10_2))
15863 : return -1;
15864 : return 10577; /* *vcvtbiasph2bf8v8hf_mask */
15865 :
15866 : case 247:
15867 : if (!
15868 : #line 32890 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15869 : (TARGET_AVX10_2))
15870 : return -1;
15871 : return 10578; /* *vcvtbiasph2bf8sv8hf_mask */
15872 :
15873 : case 248:
15874 : if (!
15875 : #line 32890 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15876 : (TARGET_AVX10_2))
15877 : return -1;
15878 : return 10579; /* *vcvtbiasph2hf8v8hf_mask */
15879 :
15880 : case 249:
15881 : if (!
15882 : #line 32890 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15883 : (TARGET_AVX10_2))
15884 : return -1;
15885 : return 10580; /* *vcvtbiasph2hf8sv8hf_mask */
15886 :
15887 : default:
15888 : return -1;
15889 : }
15890 :
15891 : default:
15892 : return -1;
15893 : }
15894 :
15895 : case UNSIGNED_FIX:
15896 : switch (pattern507 (x2))
15897 : {
15898 : case 0:
15899 : if (!
15900 : #line 10015 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15901 : (TARGET_AVX512VL))
15902 : return -1;
15903 : return 5084; /* fixuns_truncv2dfv2si2_mask */
15904 :
15905 : case 1:
15906 : if (!
15907 : #line 10029 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15908 : (TARGET_AVX512VL))
15909 : return -1;
15910 : return 5085; /* *fixuns_truncv2dfv2si2_mask_1 */
15911 :
15912 : default:
15913 : return -1;
15914 : }
15915 :
15916 : case FIX:
15917 : switch (pattern507 (x2))
15918 : {
15919 : case 0:
15920 : if (!
15921 : #line 10364 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15922 : (TARGET_AVX512VL))
15923 : return -1;
15924 : return 5185; /* sse2_cvttpd2dq_mask */
15925 :
15926 : case 1:
15927 : if (!
15928 : #line 10378 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15929 : (TARGET_AVX512VL))
15930 : return -1;
15931 : return 5186; /* *sse2_cvttpd2dq_mask_1 */
15932 :
15933 : default:
15934 : return -1;
15935 : }
15936 :
15937 : case SS_TRUNCATE:
15938 : switch (pattern513 (x2))
15939 : {
15940 : case 0:
15941 : if (!
15942 : #line 15838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15943 : (TARGET_AVX512VL))
15944 : return -1;
15945 : return 7344; /* avx512vl_ss_truncatev2div2qi2_mask */
15946 :
15947 : case 1:
15948 : if (!
15949 : #line 16276 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15950 : (TARGET_AVX512VL))
15951 : return -1;
15952 : return 7459; /* avx512vl_ss_truncatev2div2hi2_mask */
15953 :
15954 : case 2:
15955 : if (!
15956 : #line 16424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15957 : (TARGET_AVX512VL))
15958 : return -1;
15959 : return 7478; /* avx512vl_ss_truncatev2div2si2_mask */
15960 :
15961 : case 3:
15962 : if (!
15963 : #line 15933 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15964 : (TARGET_AVX512VL))
15965 : return -1;
15966 : return 7365; /* avx512vl_ss_truncatev4siv4qi2_mask */
15967 :
15968 : case 4:
15969 : if (!
15970 : #line 15933 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15971 : (TARGET_AVX512VL))
15972 : return -1;
15973 : return 7368; /* avx512vl_ss_truncatev4div4qi2_mask */
15974 :
15975 : case 5:
15976 : if (!
15977 : #line 16189 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15978 : (TARGET_AVX512VL))
15979 : return -1;
15980 : return 7435; /* avx512vl_ss_truncatev4siv4hi2_mask */
15981 :
15982 : case 6:
15983 : if (!
15984 : #line 16189 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15985 : (TARGET_AVX512VL))
15986 : return -1;
15987 : return 7438; /* avx512vl_ss_truncatev4div4hi2_mask */
15988 :
15989 : case 7:
15990 : if (!(
15991 : #line 16031 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15992 : (TARGET_AVX512VL) &&
15993 : #line 15989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15994 : (TARGET_AVX512BW)))
15995 : return -1;
15996 : return 7395; /* avx512vl_ss_truncatev8hiv8qi2_mask */
15997 :
15998 : case 8:
15999 : if (!
16000 : #line 16031 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16001 : (TARGET_AVX512VL))
16002 : return -1;
16003 : return 7398; /* avx512vl_ss_truncatev8siv8qi2_mask */
16004 :
16005 : case 9:
16006 : if (!
16007 : #line 16543 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16008 : (TARGET_AVX512F))
16009 : return -1;
16010 : return 7496; /* avx512f_ss_truncatev8div16qi2_mask */
16011 :
16012 : case 10:
16013 : if (!
16014 : #line 15859 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16015 : (TARGET_AVX512VL))
16016 : return -1;
16017 : return 7347; /* *avx512vl_ss_truncatev2div2qi2_mask_1 */
16018 :
16019 : case 11:
16020 : if (!
16021 : #line 16293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16022 : (TARGET_AVX512VL))
16023 : return -1;
16024 : return 7462; /* *avx512vl_ss_truncatev2div2hi2_mask_1 */
16025 :
16026 : case 12:
16027 : if (!
16028 : #line 16439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16029 : (TARGET_AVX512VL))
16030 : return -1;
16031 : return 7481; /* *avx512vl_ss_truncatev2div2si2_mask_1 */
16032 :
16033 : case 13:
16034 : if (!
16035 : #line 15954 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16036 : (TARGET_AVX512VL))
16037 : return -1;
16038 : return 7371; /* *avx512vl_ss_truncatev4siv4qi2_mask_1 */
16039 :
16040 : case 14:
16041 : if (!
16042 : #line 15954 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16043 : (TARGET_AVX512VL))
16044 : return -1;
16045 : return 7374; /* *avx512vl_ss_truncatev4div4qi2_mask_1 */
16046 :
16047 : case 15:
16048 : if (!
16049 : #line 16206 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16050 : (TARGET_AVX512VL))
16051 : return -1;
16052 : return 7441; /* *avx512vl_ss_truncatev4siv4hi2_mask_1 */
16053 :
16054 : case 16:
16055 : if (!
16056 : #line 16206 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16057 : (TARGET_AVX512VL))
16058 : return -1;
16059 : return 7444; /* *avx512vl_ss_truncatev4div4hi2_mask_1 */
16060 :
16061 : case 17:
16062 : if (!(
16063 : #line 16052 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16064 : (TARGET_AVX512VL) &&
16065 : #line 15989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16066 : (TARGET_AVX512BW)))
16067 : return -1;
16068 : return 7401; /* *avx512vl_ss_truncatev8hiv8qi2_mask_1 */
16069 :
16070 : case 18:
16071 : if (!
16072 : #line 16052 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16073 : (TARGET_AVX512VL))
16074 : return -1;
16075 : return 7404; /* *avx512vl_ss_truncatev8siv8qi2_mask_1 */
16076 :
16077 : case 19:
16078 : if (!
16079 : #line 16564 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16080 : (TARGET_AVX512F))
16081 : return -1;
16082 : return 7499; /* *avx512f_ss_truncatev8div16qi2_mask_1 */
16083 :
16084 : default:
16085 : return -1;
16086 : }
16087 :
16088 : case TRUNCATE:
16089 : switch (pattern513 (x2))
16090 : {
16091 : case 0:
16092 : if (!
16093 : #line 15838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16094 : (TARGET_AVX512VL))
16095 : return -1;
16096 : return 7345; /* avx512vl_truncatev2div2qi2_mask */
16097 :
16098 : case 1:
16099 : if (!
16100 : #line 16276 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16101 : (TARGET_AVX512VL))
16102 : return -1;
16103 : return 7460; /* avx512vl_truncatev2div2hi2_mask */
16104 :
16105 : case 2:
16106 : if (!
16107 : #line 16424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16108 : (TARGET_AVX512VL))
16109 : return -1;
16110 : return 7479; /* avx512vl_truncatev2div2si2_mask */
16111 :
16112 : case 3:
16113 : if (!
16114 : #line 15933 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16115 : (TARGET_AVX512VL))
16116 : return -1;
16117 : return 7366; /* avx512vl_truncatev4siv4qi2_mask */
16118 :
16119 : case 4:
16120 : if (!
16121 : #line 15933 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16122 : (TARGET_AVX512VL))
16123 : return -1;
16124 : return 7369; /* avx512vl_truncatev4div4qi2_mask */
16125 :
16126 : case 5:
16127 : if (!
16128 : #line 16189 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16129 : (TARGET_AVX512VL))
16130 : return -1;
16131 : return 7436; /* avx512vl_truncatev4siv4hi2_mask */
16132 :
16133 : case 6:
16134 : if (!
16135 : #line 16189 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16136 : (TARGET_AVX512VL))
16137 : return -1;
16138 : return 7439; /* avx512vl_truncatev4div4hi2_mask */
16139 :
16140 : case 7:
16141 : if (!(
16142 : #line 16031 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16143 : (TARGET_AVX512VL) &&
16144 : #line 15989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16145 : (TARGET_AVX512BW)))
16146 : return -1;
16147 : return 7396; /* avx512vl_truncatev8hiv8qi2_mask */
16148 :
16149 : case 8:
16150 : if (!
16151 : #line 16031 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16152 : (TARGET_AVX512VL))
16153 : return -1;
16154 : return 7399; /* avx512vl_truncatev8siv8qi2_mask */
16155 :
16156 : case 9:
16157 : if (!
16158 : #line 16543 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16159 : (TARGET_AVX512F))
16160 : return -1;
16161 : return 7497; /* avx512f_truncatev8div16qi2_mask */
16162 :
16163 : case 10:
16164 : if (!
16165 : #line 15859 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16166 : (TARGET_AVX512VL))
16167 : return -1;
16168 : return 7348; /* *avx512vl_truncatev2div2qi2_mask_1 */
16169 :
16170 : case 11:
16171 : if (!
16172 : #line 16293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16173 : (TARGET_AVX512VL))
16174 : return -1;
16175 : return 7463; /* *avx512vl_truncatev2div2hi2_mask_1 */
16176 :
16177 : case 12:
16178 : if (!
16179 : #line 16439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16180 : (TARGET_AVX512VL))
16181 : return -1;
16182 : return 7482; /* *avx512vl_truncatev2div2si2_mask_1 */
16183 :
16184 : case 13:
16185 : if (!
16186 : #line 15954 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16187 : (TARGET_AVX512VL))
16188 : return -1;
16189 : return 7372; /* *avx512vl_truncatev4siv4qi2_mask_1 */
16190 :
16191 : case 14:
16192 : if (!
16193 : #line 15954 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16194 : (TARGET_AVX512VL))
16195 : return -1;
16196 : return 7375; /* *avx512vl_truncatev4div4qi2_mask_1 */
16197 :
16198 : case 15:
16199 : if (!
16200 : #line 16206 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16201 : (TARGET_AVX512VL))
16202 : return -1;
16203 : return 7442; /* *avx512vl_truncatev4siv4hi2_mask_1 */
16204 :
16205 : case 16:
16206 : if (!
16207 : #line 16206 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16208 : (TARGET_AVX512VL))
16209 : return -1;
16210 : return 7445; /* *avx512vl_truncatev4div4hi2_mask_1 */
16211 :
16212 : case 17:
16213 : if (!(
16214 : #line 16052 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16215 : (TARGET_AVX512VL) &&
16216 : #line 15989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16217 : (TARGET_AVX512BW)))
16218 : return -1;
16219 : return 7402; /* *avx512vl_truncatev8hiv8qi2_mask_1 */
16220 :
16221 : case 18:
16222 : if (!
16223 : #line 16052 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16224 : (TARGET_AVX512VL))
16225 : return -1;
16226 : return 7405; /* *avx512vl_truncatev8siv8qi2_mask_1 */
16227 :
16228 : case 19:
16229 : if (!
16230 : #line 16564 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16231 : (TARGET_AVX512F))
16232 : return -1;
16233 : return 7500; /* *avx512f_truncatev8div16qi2_mask_1 */
16234 :
16235 : default:
16236 : return -1;
16237 : }
16238 :
16239 : case US_TRUNCATE:
16240 : switch (pattern513 (x2))
16241 : {
16242 : case 0:
16243 : if (!
16244 : #line 15838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16245 : (TARGET_AVX512VL))
16246 : return -1;
16247 : return 7346; /* avx512vl_us_truncatev2div2qi2_mask */
16248 :
16249 : case 1:
16250 : if (!
16251 : #line 16276 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16252 : (TARGET_AVX512VL))
16253 : return -1;
16254 : return 7461; /* avx512vl_us_truncatev2div2hi2_mask */
16255 :
16256 : case 2:
16257 : if (!
16258 : #line 16424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16259 : (TARGET_AVX512VL))
16260 : return -1;
16261 : return 7480; /* avx512vl_us_truncatev2div2si2_mask */
16262 :
16263 : case 3:
16264 : if (!
16265 : #line 15933 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16266 : (TARGET_AVX512VL))
16267 : return -1;
16268 : return 7367; /* avx512vl_us_truncatev4siv4qi2_mask */
16269 :
16270 : case 4:
16271 : if (!
16272 : #line 15933 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16273 : (TARGET_AVX512VL))
16274 : return -1;
16275 : return 7370; /* avx512vl_us_truncatev4div4qi2_mask */
16276 :
16277 : case 5:
16278 : if (!
16279 : #line 16189 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16280 : (TARGET_AVX512VL))
16281 : return -1;
16282 : return 7437; /* avx512vl_us_truncatev4siv4hi2_mask */
16283 :
16284 : case 6:
16285 : if (!
16286 : #line 16189 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16287 : (TARGET_AVX512VL))
16288 : return -1;
16289 : return 7440; /* avx512vl_us_truncatev4div4hi2_mask */
16290 :
16291 : case 7:
16292 : if (!(
16293 : #line 16031 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16294 : (TARGET_AVX512VL) &&
16295 : #line 15989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16296 : (TARGET_AVX512BW)))
16297 : return -1;
16298 : return 7397; /* avx512vl_us_truncatev8hiv8qi2_mask */
16299 :
16300 : case 8:
16301 : if (!
16302 : #line 16031 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16303 : (TARGET_AVX512VL))
16304 : return -1;
16305 : return 7400; /* avx512vl_us_truncatev8siv8qi2_mask */
16306 :
16307 : case 9:
16308 : if (!
16309 : #line 16543 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16310 : (TARGET_AVX512F))
16311 : return -1;
16312 : return 7498; /* avx512f_us_truncatev8div16qi2_mask */
16313 :
16314 : case 10:
16315 : if (!
16316 : #line 15859 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16317 : (TARGET_AVX512VL))
16318 : return -1;
16319 : return 7349; /* *avx512vl_us_truncatev2div2qi2_mask_1 */
16320 :
16321 : case 11:
16322 : if (!
16323 : #line 16293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16324 : (TARGET_AVX512VL))
16325 : return -1;
16326 : return 7464; /* *avx512vl_us_truncatev2div2hi2_mask_1 */
16327 :
16328 : case 12:
16329 : if (!
16330 : #line 16439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16331 : (TARGET_AVX512VL))
16332 : return -1;
16333 : return 7483; /* *avx512vl_us_truncatev2div2si2_mask_1 */
16334 :
16335 : case 13:
16336 : if (!
16337 : #line 15954 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16338 : (TARGET_AVX512VL))
16339 : return -1;
16340 : return 7373; /* *avx512vl_us_truncatev4siv4qi2_mask_1 */
16341 :
16342 : case 14:
16343 : if (!
16344 : #line 15954 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16345 : (TARGET_AVX512VL))
16346 : return -1;
16347 : return 7376; /* *avx512vl_us_truncatev4div4qi2_mask_1 */
16348 :
16349 : case 15:
16350 : if (!
16351 : #line 16206 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16352 : (TARGET_AVX512VL))
16353 : return -1;
16354 : return 7443; /* *avx512vl_us_truncatev4siv4hi2_mask_1 */
16355 :
16356 : case 16:
16357 : if (!
16358 : #line 16206 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16359 : (TARGET_AVX512VL))
16360 : return -1;
16361 : return 7446; /* *avx512vl_us_truncatev4div4hi2_mask_1 */
16362 :
16363 : case 17:
16364 : if (!(
16365 : #line 16052 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16366 : (TARGET_AVX512VL) &&
16367 : #line 15989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16368 : (TARGET_AVX512BW)))
16369 : return -1;
16370 : return 7403; /* *avx512vl_us_truncatev8hiv8qi2_mask_1 */
16371 :
16372 : case 18:
16373 : if (!
16374 : #line 16052 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16375 : (TARGET_AVX512VL))
16376 : return -1;
16377 : return 7406; /* *avx512vl_us_truncatev8siv8qi2_mask_1 */
16378 :
16379 : case 19:
16380 : if (!
16381 : #line 16564 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16382 : (TARGET_AVX512F))
16383 : return -1;
16384 : return 7501; /* *avx512f_us_truncatev8div16qi2_mask_1 */
16385 :
16386 : default:
16387 : return -1;
16388 : }
16389 :
16390 : default:
16391 : return -1;
16392 : }
16393 : }
16394 :
16395 : int
16396 : recog_292 (rtx x1 ATTRIBUTE_UNUSED,
16397 : rtx_insn *insn ATTRIBUTE_UNUSED,
16398 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16399 : {
16400 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16401 : rtx x2, x3, x4, x5, x6, x7;
16402 : int res ATTRIBUTE_UNUSED;
16403 : x2 = XEXP (x1, 1);
16404 : x3 = XEXP (x2, 1);
16405 : x4 = XVECEXP (x3, 0, 0);
16406 : if (GET_CODE (x4) != CONST_INT)
16407 : return -1;
16408 : operands[2] = x4;
16409 : res = recog_291 (x1, insn, pnum_clobbers);
16410 : if (res >= 0)
16411 : return res;
16412 : x5 = XVECEXP (x3, 0, 1);
16413 : if (GET_CODE (x5) != CONST_INT)
16414 : return -1;
16415 : x6 = XVECEXP (x3, 0, 2);
16416 : if (GET_CODE (x6) != CONST_INT)
16417 : return -1;
16418 : x7 = XVECEXP (x3, 0, 3);
16419 : if (GET_CODE (x7) != CONST_INT)
16420 : return -1;
16421 : switch (XWINT (x4, 0))
16422 : {
16423 : case 0L:
16424 : if (XWINT (x5, 0) != 1L
16425 : || XWINT (x6, 0) != 2L
16426 : || XWINT (x7, 0) != 3L)
16427 : return -1;
16428 : switch (GET_MODE (operands[0]))
16429 : {
16430 : case E_V4DFmode:
16431 : if (!nonimmediate_operand (operands[0], E_V4DFmode)
16432 : || GET_MODE (x2) != E_V4DFmode
16433 : || !nonimmediate_operand (operands[1], E_V8DFmode)
16434 : || !
16435 : #line 13033 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16436 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
16437 : return -1;
16438 : return 5366; /* vec_extract_lo_v8df */
16439 :
16440 : case E_V4DImode:
16441 : if (!nonimmediate_operand (operands[0], E_V4DImode)
16442 : || GET_MODE (x2) != E_V4DImode
16443 : || !nonimmediate_operand (operands[1], E_V8DImode)
16444 : || !
16445 : #line 13033 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16446 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
16447 : return -1;
16448 : return 5367; /* vec_extract_lo_v8di */
16449 :
16450 : case E_V4SImode:
16451 : if (!nonimmediate_operand (operands[0], E_V4SImode)
16452 : || GET_MODE (x2) != E_V4SImode
16453 : || !nonimmediate_operand (operands[1], E_V8SImode)
16454 : || !
16455 : #line 13366 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16456 : (TARGET_AVX
16457 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
16458 : return -1;
16459 : return 5390; /* vec_extract_lo_v8si */
16460 :
16461 : case E_V4SFmode:
16462 : if (!nonimmediate_operand (operands[0], E_V4SFmode)
16463 : || GET_MODE (x2) != E_V4SFmode
16464 : || !nonimmediate_operand (operands[1], E_V8SFmode)
16465 : || !
16466 : #line 13366 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16467 : (TARGET_AVX
16468 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
16469 : return -1;
16470 : return 5391; /* vec_extract_lo_v8sf */
16471 :
16472 : default:
16473 : return -1;
16474 : }
16475 :
16476 : case 4L:
16477 : if (XWINT (x5, 0) != 5L
16478 : || XWINT (x6, 0) != 6L
16479 : || XWINT (x7, 0) != 7L)
16480 : return -1;
16481 : switch (GET_MODE (operands[0]))
16482 : {
16483 : case E_V4DFmode:
16484 : if (!nonimmediate_operand (operands[0], E_V4DFmode)
16485 : || GET_MODE (x2) != E_V4DFmode
16486 : || !register_operand (operands[1], E_V8DFmode)
16487 : || !
16488 : #line 13069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16489 : (TARGET_AVX512F))
16490 : return -1;
16491 : return 5370; /* vec_extract_hi_v8df */
16492 :
16493 : case E_V4DImode:
16494 : if (!nonimmediate_operand (operands[0], E_V4DImode)
16495 : || GET_MODE (x2) != E_V4DImode
16496 : || !register_operand (operands[1], E_V8DImode)
16497 : || !
16498 : #line 13069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16499 : (TARGET_AVX512F))
16500 : return -1;
16501 : return 5371; /* vec_extract_hi_v8di */
16502 :
16503 : case E_V4SImode:
16504 : if (!nonimmediate_operand (operands[0], E_V4SImode)
16505 : || GET_MODE (x2) != E_V4SImode
16506 : || !register_operand (operands[1], E_V8SImode)
16507 : || !
16508 : #line 13398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16509 : (TARGET_AVX))
16510 : return -1;
16511 : return 5394; /* vec_extract_hi_v8si */
16512 :
16513 : case E_V4SFmode:
16514 : if (!nonimmediate_operand (operands[0], E_V4SFmode)
16515 : || GET_MODE (x2) != E_V4SFmode
16516 : || !register_operand (operands[1], E_V8SFmode)
16517 : || !
16518 : #line 13398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16519 : (TARGET_AVX))
16520 : return -1;
16521 : return 5395; /* vec_extract_hi_v8sf */
16522 :
16523 : default:
16524 : return -1;
16525 : }
16526 :
16527 : default:
16528 : return -1;
16529 : }
16530 : }
16531 :
16532 : int
16533 : recog_299 (rtx x1 ATTRIBUTE_UNUSED,
16534 : rtx_insn *insn ATTRIBUTE_UNUSED,
16535 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16536 : {
16537 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16538 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
16539 : rtx x10, x11;
16540 : int res ATTRIBUTE_UNUSED;
16541 : x2 = XEXP (x1, 1);
16542 : x3 = XEXP (x2, 1);
16543 : x4 = XVECEXP (x3, 0, 4);
16544 : if (GET_CODE (x4) != CONST_INT)
16545 : return -1;
16546 : operands[6] = x4;
16547 : res = recog_298 (x1, insn, pnum_clobbers);
16548 : if (res >= 0)
16549 : return res;
16550 : if (XWINT (x4, 0) != 4L)
16551 : return -1;
16552 : x5 = XVECEXP (x3, 0, 5);
16553 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
16554 : return -1;
16555 : x6 = XVECEXP (x3, 0, 6);
16556 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
16557 : return -1;
16558 : x7 = XVECEXP (x3, 0, 7);
16559 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
16560 : || pattern1425 (x3) != 0
16561 : || !register_operand (operands[0], E_V16HImode)
16562 : || GET_MODE (x2) != E_V16HImode
16563 : || !nonimmediate_operand (operands[1], E_V16HImode)
16564 : || pattern756 (x3) != 0)
16565 : return -1;
16566 : x8 = XVECEXP (x3, 0, 8);
16567 : operands[6] = x8;
16568 : if (!const_8_to_11_operand (operands[6], E_VOIDmode))
16569 : return -1;
16570 : x9 = XVECEXP (x3, 0, 9);
16571 : operands[7] = x9;
16572 : if (!const_8_to_11_operand (operands[7], E_VOIDmode))
16573 : return -1;
16574 : x10 = XVECEXP (x3, 0, 10);
16575 : operands[8] = x10;
16576 : if (!const_8_to_11_operand (operands[8], E_VOIDmode))
16577 : return -1;
16578 : x11 = XVECEXP (x3, 0, 11);
16579 : operands[9] = x11;
16580 : if (!const_8_to_11_operand (operands[9], E_VOIDmode)
16581 : || !
16582 : #line 21262 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16583 : (TARGET_AVX2
16584 : && 1 && 1
16585 : && INTVAL (operands[2]) + 8 == INTVAL (operands[6])
16586 : && INTVAL (operands[3]) + 8 == INTVAL (operands[7])
16587 : && INTVAL (operands[4]) + 8 == INTVAL (operands[8])
16588 : && INTVAL (operands[5]) + 8 == INTVAL (operands[9])))
16589 : return -1;
16590 : return 8520; /* avx2_pshuflw_1 */
16591 : }
16592 :
16593 : int
16594 : recog_304 (rtx x1 ATTRIBUTE_UNUSED,
16595 : rtx_insn *insn ATTRIBUTE_UNUSED,
16596 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16597 : {
16598 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16599 : rtx x2, x3, x4, x5, x6, x7;
16600 : int res ATTRIBUTE_UNUSED;
16601 : x2 = XEXP (x1, 1);
16602 : x3 = XEXP (x2, 0);
16603 : x4 = XEXP (x3, 1);
16604 : if (GET_CODE (x4) != PARALLEL)
16605 : return -1;
16606 : x5 = XEXP (x3, 0);
16607 : operands[1] = x5;
16608 : switch (XVECLEN (x4, 0))
16609 : {
16610 : case 1:
16611 : x6 = XVECEXP (x4, 0, 0);
16612 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
16613 : return -1;
16614 : switch (GET_MODE (operands[0]))
16615 : {
16616 : case E_V8SFmode:
16617 : if (!register_operand (operands[0], E_V8SFmode)
16618 : || GET_MODE (x2) != E_V8SFmode
16619 : || GET_MODE (x3) != E_SFmode)
16620 : return -1;
16621 : switch (GET_MODE (operands[1]))
16622 : {
16623 : case E_V4SFmode:
16624 : if (register_operand (operands[1], E_V4SFmode)
16625 : && (
16626 : #line 12101 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16627 : (TARGET_AVX2) &&
16628 : #line 444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16629 : (TARGET_AVX)))
16630 : return 5301; /* avx2_vec_dupv8sf */
16631 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
16632 : || !(
16633 : #line 28655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16634 : (TARGET_AVX512F) &&
16635 : #line 301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16636 : (TARGET_AVX512VL)))
16637 : return -1;
16638 : return 9296; /* avx512vl_vec_dupv8sf */
16639 :
16640 : case E_V8SFmode:
16641 : if (!register_operand (operands[1], E_V8SFmode)
16642 : || !
16643 : #line 12113 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16644 : (TARGET_AVX2))
16645 : return -1;
16646 : return 5303; /* avx2_vec_dupv8sf_1 */
16647 :
16648 : default:
16649 : return -1;
16650 : }
16651 :
16652 : case E_V4SFmode:
16653 : if (!register_operand (operands[0], E_V4SFmode)
16654 : || GET_MODE (x2) != E_V4SFmode
16655 : || GET_MODE (x3) != E_SFmode)
16656 : return -1;
16657 : if (register_operand (operands[1], E_V4SFmode)
16658 : &&
16659 : #line 12101 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16660 : (TARGET_AVX2))
16661 : return 5302; /* avx2_vec_dupv4sf */
16662 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
16663 : || !(
16664 : #line 28655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16665 : (TARGET_AVX512F) &&
16666 : #line 301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16667 : (TARGET_AVX512VL)))
16668 : return -1;
16669 : return 9298; /* avx512vl_vec_dupv4sf */
16670 :
16671 : case E_V16SFmode:
16672 : if (!register_operand (operands[0], E_V16SFmode)
16673 : || GET_MODE (x2) != E_V16SFmode
16674 : || GET_MODE (x3) != E_SFmode)
16675 : return -1;
16676 : switch (GET_MODE (operands[1]))
16677 : {
16678 : case E_V16SFmode:
16679 : if (!register_operand (operands[1], E_V16SFmode)
16680 : || !
16681 : #line 12125 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16682 : (TARGET_AVX512F))
16683 : return -1;
16684 : return 5304; /* avx512f_vec_dupv16sf_1 */
16685 :
16686 : case E_V4SFmode:
16687 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
16688 : || !
16689 : #line 28655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16690 : (TARGET_AVX512F))
16691 : return -1;
16692 : return 9294; /* avx512f_vec_dupv16sf */
16693 :
16694 : default:
16695 : return -1;
16696 : }
16697 :
16698 : case E_V8DFmode:
16699 : if (!register_operand (operands[0], E_V8DFmode)
16700 : || GET_MODE (x2) != E_V8DFmode
16701 : || GET_MODE (x3) != E_DFmode)
16702 : return -1;
16703 : switch (GET_MODE (operands[1]))
16704 : {
16705 : case E_V8DFmode:
16706 : if (!register_operand (operands[1], E_V8DFmode)
16707 : || !
16708 : #line 12125 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16709 : (TARGET_AVX512F))
16710 : return -1;
16711 : return 5305; /* avx512f_vec_dupv8df_1 */
16712 :
16713 : case E_V2DFmode:
16714 : if (!nonimmediate_operand (operands[1], E_V2DFmode)
16715 : || !
16716 : #line 28655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16717 : (TARGET_AVX512F))
16718 : return -1;
16719 : return 9300; /* avx512f_vec_dupv8df */
16720 :
16721 : default:
16722 : return -1;
16723 : }
16724 :
16725 : case E_V16SImode:
16726 : if (!register_operand (operands[0], E_V16SImode)
16727 : || GET_MODE (x2) != E_V16SImode
16728 : || GET_MODE (x3) != E_SImode)
16729 : return -1;
16730 : switch (GET_MODE (operands[1]))
16731 : {
16732 : case E_V4SImode:
16733 : if (!nonimmediate_operand (operands[1], E_V4SImode))
16734 : return -1;
16735 : if ((
16736 : #line 28219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16737 : (TARGET_AVX2) &&
16738 : #line 564 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16739 : (TARGET_AVX512F)))
16740 : return 9175; /* avx2_pbroadcastv16si */
16741 : if (!
16742 : #line 28655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16743 : (TARGET_AVX512F))
16744 : return -1;
16745 : return 9282; /* avx512f_vec_dupv16si */
16746 :
16747 : case E_V16SImode:
16748 : if (!nonimmediate_operand (operands[1], E_V16SImode)
16749 : || !
16750 : #line 28641 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16751 : (TARGET_AVX512F))
16752 : return -1;
16753 : return 9276; /* avx512f_vec_dupv16si_1 */
16754 :
16755 : default:
16756 : return -1;
16757 : }
16758 :
16759 : case E_V8DImode:
16760 : if (!register_operand (operands[0], E_V8DImode)
16761 : || GET_MODE (x2) != E_V8DImode
16762 : || GET_MODE (x3) != E_DImode)
16763 : return -1;
16764 : switch (GET_MODE (operands[1]))
16765 : {
16766 : case E_V2DImode:
16767 : if (!nonimmediate_operand (operands[1], E_V2DImode))
16768 : return -1;
16769 : if ((
16770 : #line 28219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16771 : (TARGET_AVX2) &&
16772 : #line 564 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16773 : (TARGET_AVX512F)))
16774 : return 9176; /* avx2_pbroadcastv8di */
16775 : if (!
16776 : #line 28655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16777 : (TARGET_AVX512F))
16778 : return -1;
16779 : return 9288; /* avx512f_vec_dupv8di */
16780 :
16781 : case E_V8DImode:
16782 : if (!nonimmediate_operand (operands[1], E_V8DImode)
16783 : || !
16784 : #line 28641 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16785 : (TARGET_AVX512F))
16786 : return -1;
16787 : return 9277; /* avx512f_vec_dupv8di_1 */
16788 :
16789 : default:
16790 : return -1;
16791 : }
16792 :
16793 : case E_V64QImode:
16794 : if (!register_operand (operands[0], E_V64QImode)
16795 : || GET_MODE (x2) != E_V64QImode
16796 : || GET_MODE (x3) != E_QImode)
16797 : return -1;
16798 : switch (GET_MODE (operands[1]))
16799 : {
16800 : case E_V16QImode:
16801 : if (!nonimmediate_operand (operands[1], E_V16QImode))
16802 : return -1;
16803 : if ((
16804 : #line 28219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16805 : (TARGET_AVX2) &&
16806 : #line 565 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16807 : (TARGET_AVX512BW)))
16808 : return 9177; /* avx2_pbroadcastv64qi */
16809 : if (!
16810 : #line 28674 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16811 : (TARGET_AVX512BW))
16812 : return -1;
16813 : return 9306; /* avx512bw_vec_dupv64qi */
16814 :
16815 : case E_V64QImode:
16816 : if (!nonimmediate_operand (operands[1], E_V64QImode)
16817 : || !(
16818 : #line 28641 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16819 : (TARGET_AVX512F) &&
16820 : #line 964 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16821 : (TARGET_AVX512BW)))
16822 : return -1;
16823 : return 9279; /* avx512bw_vec_dupv64qi_1 */
16824 :
16825 : default:
16826 : return -1;
16827 : }
16828 :
16829 : case E_V32QImode:
16830 : if (!register_operand (operands[0], E_V32QImode)
16831 : || GET_MODE (x2) != E_V32QImode
16832 : || GET_MODE (x3) != E_QImode)
16833 : return -1;
16834 : switch (GET_MODE (operands[1]))
16835 : {
16836 : case E_V16QImode:
16837 : if (!nonimmediate_operand (operands[1], E_V16QImode))
16838 : return -1;
16839 : if ((
16840 : #line 28219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16841 : (TARGET_AVX2) &&
16842 : #line 565 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16843 : (TARGET_AVX)))
16844 : return 9178; /* avx2_pbroadcastv32qi */
16845 : if (!(
16846 : #line 28674 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16847 : (TARGET_AVX512BW) &&
16848 : #line 332 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16849 : (TARGET_AVX512VL)))
16850 : return -1;
16851 : return 9310; /* avx512vl_vec_dupv32qi */
16852 :
16853 : case E_V32QImode:
16854 : if (!nonimmediate_operand (operands[1], E_V32QImode)
16855 : || !
16856 : #line 28233 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16857 : (TARGET_AVX2))
16858 : return -1;
16859 : return 9193; /* avx2_pbroadcastv32qi_1 */
16860 :
16861 : default:
16862 : return -1;
16863 : }
16864 :
16865 : case E_V16QImode:
16866 : if (pattern935 (x2,
16867 : E_V16QImode,
16868 : E_QImode) != 0)
16869 : return -1;
16870 : if (
16871 : #line 28219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16872 : (TARGET_AVX2))
16873 : return 9179; /* avx2_pbroadcastv16qi */
16874 : if (!(
16875 : #line 28674 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16876 : (TARGET_AVX512BW) &&
16877 : #line 332 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16878 : (TARGET_AVX512VL)))
16879 : return -1;
16880 : return 9308; /* avx512vl_vec_dupv16qi */
16881 :
16882 : case E_V32HImode:
16883 : if (!register_operand (operands[0], E_V32HImode)
16884 : || GET_MODE (x2) != E_V32HImode
16885 : || GET_MODE (x3) != E_HImode)
16886 : return -1;
16887 : switch (GET_MODE (operands[1]))
16888 : {
16889 : case E_V8HImode:
16890 : if (!nonimmediate_operand (operands[1], E_V8HImode))
16891 : return -1;
16892 : if ((
16893 : #line 28219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16894 : (TARGET_AVX2) &&
16895 : #line 566 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16896 : (TARGET_AVX512BW)))
16897 : return 9180; /* avx2_pbroadcastv32hi */
16898 : if (!
16899 : #line 28674 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16900 : (TARGET_AVX512BW))
16901 : return -1;
16902 : return 9312; /* avx512bw_vec_dupv32hi */
16903 :
16904 : case E_V32HImode:
16905 : if (!nonimmediate_operand (operands[1], E_V32HImode)
16906 : || !(
16907 : #line 28641 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16908 : (TARGET_AVX512F) &&
16909 : #line 964 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16910 : (TARGET_AVX512BW)))
16911 : return -1;
16912 : return 9278; /* avx512bw_vec_dupv32hi_1 */
16913 :
16914 : default:
16915 : return -1;
16916 : }
16917 :
16918 : case E_V16HImode:
16919 : if (!register_operand (operands[0], E_V16HImode)
16920 : || GET_MODE (x2) != E_V16HImode
16921 : || GET_MODE (x3) != E_HImode)
16922 : return -1;
16923 : switch (GET_MODE (operands[1]))
16924 : {
16925 : case E_V8HImode:
16926 : if (!nonimmediate_operand (operands[1], E_V8HImode))
16927 : return -1;
16928 : if ((
16929 : #line 28219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16930 : (TARGET_AVX2) &&
16931 : #line 566 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16932 : (TARGET_AVX)))
16933 : return 9181; /* avx2_pbroadcastv16hi */
16934 : if (!(
16935 : #line 28674 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16936 : (TARGET_AVX512BW) &&
16937 : #line 333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16938 : (TARGET_AVX512VL)))
16939 : return -1;
16940 : return 9314; /* avx512vl_vec_dupv16hi */
16941 :
16942 : case E_V16HImode:
16943 : if (!nonimmediate_operand (operands[1], E_V16HImode)
16944 : || !
16945 : #line 28233 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16946 : (TARGET_AVX2))
16947 : return -1;
16948 : return 9194; /* avx2_pbroadcastv16hi_1 */
16949 :
16950 : default:
16951 : return -1;
16952 : }
16953 :
16954 : case E_V8HImode:
16955 : if (pattern935 (x2,
16956 : E_V8HImode,
16957 : E_HImode) != 0)
16958 : return -1;
16959 : if (
16960 : #line 28219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16961 : (TARGET_AVX2))
16962 : return 9182; /* avx2_pbroadcastv8hi */
16963 : if (!(
16964 : #line 28674 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16965 : (TARGET_AVX512BW) &&
16966 : #line 333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16967 : (TARGET_AVX512VL)))
16968 : return -1;
16969 : return 9316; /* avx512vl_vec_dupv8hi */
16970 :
16971 : case E_V8SImode:
16972 : if (!register_operand (operands[0], E_V8SImode)
16973 : || GET_MODE (x2) != E_V8SImode
16974 : || GET_MODE (x3) != E_SImode)
16975 : return -1;
16976 : switch (GET_MODE (operands[1]))
16977 : {
16978 : case E_V4SImode:
16979 : if (!nonimmediate_operand (operands[1], E_V4SImode))
16980 : return -1;
16981 : if ((
16982 : #line 28219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16983 : (TARGET_AVX2) &&
16984 : #line 567 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16985 : (TARGET_AVX)))
16986 : return 9183; /* avx2_pbroadcastv8si */
16987 : if (!(
16988 : #line 28655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16989 : (TARGET_AVX512F) &&
16990 : #line 299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16991 : (TARGET_AVX512VL)))
16992 : return -1;
16993 : return 9284; /* avx512vl_vec_dupv8si */
16994 :
16995 : case E_V8SImode:
16996 : if (!nonimmediate_operand (operands[1], E_V8SImode)
16997 : || !
16998 : #line 28233 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16999 : (TARGET_AVX2))
17000 : return -1;
17001 : return 9195; /* avx2_pbroadcastv8si_1 */
17002 :
17003 : default:
17004 : return -1;
17005 : }
17006 :
17007 : case E_V4SImode:
17008 : if (pattern935 (x2,
17009 : E_V4SImode,
17010 : E_SImode) != 0)
17011 : return -1;
17012 : if (
17013 : #line 28219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17014 : (TARGET_AVX2))
17015 : return 9184; /* avx2_pbroadcastv4si */
17016 : if (!(
17017 : #line 28655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17018 : (TARGET_AVX512F) &&
17019 : #line 299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17020 : (TARGET_AVX512VL)))
17021 : return -1;
17022 : return 9286; /* avx512vl_vec_dupv4si */
17023 :
17024 : case E_V4DImode:
17025 : if (!register_operand (operands[0], E_V4DImode)
17026 : || GET_MODE (x2) != E_V4DImode
17027 : || GET_MODE (x3) != E_DImode)
17028 : return -1;
17029 : switch (GET_MODE (operands[1]))
17030 : {
17031 : case E_V2DImode:
17032 : if (!nonimmediate_operand (operands[1], E_V2DImode))
17033 : return -1;
17034 : if ((
17035 : #line 28219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17036 : (TARGET_AVX2) &&
17037 : #line 567 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17038 : (TARGET_AVX)))
17039 : return 9185; /* avx2_pbroadcastv4di */
17040 : if (!(
17041 : #line 28655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17042 : (TARGET_AVX512F) &&
17043 : #line 300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17044 : (TARGET_AVX512VL)))
17045 : return -1;
17046 : return 9290; /* avx512vl_vec_dupv4di */
17047 :
17048 : case E_V4DImode:
17049 : if (!nonimmediate_operand (operands[1], E_V4DImode)
17050 : || !
17051 : #line 28233 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17052 : (TARGET_AVX2))
17053 : return -1;
17054 : return 9196; /* avx2_pbroadcastv4di_1 */
17055 :
17056 : default:
17057 : return -1;
17058 : }
17059 :
17060 : case E_V2DImode:
17061 : if (pattern935 (x2,
17062 : E_V2DImode,
17063 : E_DImode) != 0)
17064 : return -1;
17065 : if (
17066 : #line 28219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17067 : (TARGET_AVX2))
17068 : return 9186; /* avx2_pbroadcastv2di */
17069 : if (!(
17070 : #line 28655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17071 : (TARGET_AVX512F) &&
17072 : #line 300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17073 : (TARGET_AVX512VL)))
17074 : return -1;
17075 : return 9292; /* avx512vl_vec_dupv2di */
17076 :
17077 : case E_V32HFmode:
17078 : if (!register_operand (operands[0], E_V32HFmode)
17079 : || GET_MODE (x2) != E_V32HFmode
17080 : || GET_MODE (x3) != E_HFmode)
17081 : return -1;
17082 : switch (GET_MODE (operands[1]))
17083 : {
17084 : case E_V8HFmode:
17085 : if (!nonimmediate_operand (operands[1], E_V8HFmode))
17086 : return -1;
17087 : if ((
17088 : #line 28219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17089 : (TARGET_AVX2) &&
17090 : #line 568 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17091 : (TARGET_AVX512BW)))
17092 : return 9187; /* avx2_pbroadcastv32hf */
17093 : if (!
17094 : #line 28674 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17095 : (TARGET_AVX512BW))
17096 : return -1;
17097 : return 9318; /* avx512bw_vec_dupv32hf */
17098 :
17099 : case E_V32HFmode:
17100 : if (!nonimmediate_operand (operands[1], E_V32HFmode)
17101 : || !(
17102 : #line 28641 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17103 : (TARGET_AVX512F) &&
17104 : #line 965 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17105 : (TARGET_AVX512BW)))
17106 : return -1;
17107 : return 9280; /* avx512bw_vec_dupv32hf_1 */
17108 :
17109 : default:
17110 : return -1;
17111 : }
17112 :
17113 : case E_V16HFmode:
17114 : if (!register_operand (operands[0], E_V16HFmode)
17115 : || GET_MODE (x2) != E_V16HFmode
17116 : || GET_MODE (x3) != E_HFmode)
17117 : return -1;
17118 : switch (GET_MODE (operands[1]))
17119 : {
17120 : case E_V8HFmode:
17121 : if (!nonimmediate_operand (operands[1], E_V8HFmode))
17122 : return -1;
17123 : if ((
17124 : #line 28219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17125 : (TARGET_AVX2) &&
17126 : #line 568 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17127 : (TARGET_AVX)))
17128 : return 9188; /* avx2_pbroadcastv16hf */
17129 : if (!(
17130 : #line 28674 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17131 : (TARGET_AVX512BW) &&
17132 : #line 334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17133 : (TARGET_AVX512VL)))
17134 : return -1;
17135 : return 9320; /* avx512vl_vec_dupv16hf */
17136 :
17137 : case E_V16HFmode:
17138 : if (!nonimmediate_operand (operands[1], E_V16HFmode)
17139 : || !
17140 : #line 28233 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17141 : (TARGET_AVX2))
17142 : return -1;
17143 : return 9197; /* avx2_pbroadcastv16hf_1 */
17144 :
17145 : default:
17146 : return -1;
17147 : }
17148 :
17149 : case E_V8HFmode:
17150 : if (pattern935 (x2,
17151 : E_V8HFmode,
17152 : E_HFmode) != 0)
17153 : return -1;
17154 : if (
17155 : #line 28219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17156 : (TARGET_AVX2))
17157 : return 9189; /* avx2_pbroadcastv8hf */
17158 : if (!(
17159 : #line 28674 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17160 : (TARGET_AVX512BW) &&
17161 : #line 334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17162 : (TARGET_AVX512VL)))
17163 : return -1;
17164 : return 9322; /* avx512fp16_vec_dupv8hf */
17165 :
17166 : case E_V32BFmode:
17167 : if (!register_operand (operands[0], E_V32BFmode)
17168 : || GET_MODE (x2) != E_V32BFmode
17169 : || GET_MODE (x3) != E_BFmode)
17170 : return -1;
17171 : switch (GET_MODE (operands[1]))
17172 : {
17173 : case E_V8BFmode:
17174 : if (!nonimmediate_operand (operands[1], E_V8BFmode))
17175 : return -1;
17176 : if ((
17177 : #line 28219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17178 : (TARGET_AVX2) &&
17179 : #line 569 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17180 : (TARGET_AVX512BW)))
17181 : return 9190; /* avx2_pbroadcastv32bf */
17182 : if (!
17183 : #line 28674 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17184 : (TARGET_AVX512BW))
17185 : return -1;
17186 : return 9324; /* avx512bw_vec_dupv32bf */
17187 :
17188 : case E_V32BFmode:
17189 : if (!nonimmediate_operand (operands[1], E_V32BFmode)
17190 : || !(
17191 : #line 28641 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17192 : (TARGET_AVX512F) &&
17193 : #line 965 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17194 : (TARGET_AVX512BW)))
17195 : return -1;
17196 : return 9281; /* avx512bw_vec_dupv32bf_1 */
17197 :
17198 : default:
17199 : return -1;
17200 : }
17201 :
17202 : case E_V16BFmode:
17203 : if (!register_operand (operands[0], E_V16BFmode)
17204 : || GET_MODE (x2) != E_V16BFmode
17205 : || GET_MODE (x3) != E_BFmode)
17206 : return -1;
17207 : switch (GET_MODE (operands[1]))
17208 : {
17209 : case E_V8BFmode:
17210 : if (!nonimmediate_operand (operands[1], E_V8BFmode))
17211 : return -1;
17212 : if ((
17213 : #line 28219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17214 : (TARGET_AVX2) &&
17215 : #line 569 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17216 : (TARGET_AVX)))
17217 : return 9191; /* avx2_pbroadcastv16bf */
17218 : if (!(
17219 : #line 28674 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17220 : (TARGET_AVX512BW) &&
17221 : #line 335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17222 : (TARGET_AVX512VL)))
17223 : return -1;
17224 : return 9326; /* avx512vl_vec_dupv16bf */
17225 :
17226 : case E_V16BFmode:
17227 : if (!nonimmediate_operand (operands[1], E_V16BFmode)
17228 : || !
17229 : #line 28233 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17230 : (TARGET_AVX2))
17231 : return -1;
17232 : return 9198; /* avx2_pbroadcastv16bf_1 */
17233 :
17234 : default:
17235 : return -1;
17236 : }
17237 :
17238 : case E_V8BFmode:
17239 : if (pattern935 (x2,
17240 : E_V8BFmode,
17241 : E_BFmode) != 0)
17242 : return -1;
17243 : if (
17244 : #line 28219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17245 : (TARGET_AVX2))
17246 : return 9192; /* avx2_pbroadcastv8bf */
17247 : if (!(
17248 : #line 28674 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17249 : (TARGET_AVX512BW) &&
17250 : #line 335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17251 : (TARGET_AVX512VL)))
17252 : return -1;
17253 : return 9328; /* avx512vl_vec_dupv8bf */
17254 :
17255 : case E_V4DFmode:
17256 : if (!register_operand (operands[0], E_V4DFmode)
17257 : || GET_MODE (x2) != E_V4DFmode
17258 : || GET_MODE (x3) != E_DFmode)
17259 : return -1;
17260 : if (register_operand (operands[1], E_V2DFmode)
17261 : &&
17262 : #line 28629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17263 : (TARGET_AVX2))
17264 : return 9275; /* avx2_vec_dupv4df */
17265 : if (!nonimmediate_operand (operands[1], E_V2DFmode)
17266 : || !(
17267 : #line 28655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17268 : (TARGET_AVX512F) &&
17269 : #line 302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17270 : (TARGET_AVX512VL)))
17271 : return -1;
17272 : return 9302; /* avx512vl_vec_dupv4df */
17273 :
17274 : case E_V2DFmode:
17275 : if (pattern935 (x2,
17276 : E_V2DFmode,
17277 : E_DFmode) != 0
17278 : || !(
17279 : #line 28655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17280 : (TARGET_AVX512F) &&
17281 : #line 302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17282 : (TARGET_AVX512VL)))
17283 : return -1;
17284 : return 9304; /* avx512vl_vec_dupv2df */
17285 :
17286 : default:
17287 : return -1;
17288 : }
17289 :
17290 : case 2:
17291 : x6 = XVECEXP (x4, 0, 0);
17292 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
17293 : return -1;
17294 : x7 = XVECEXP (x4, 0, 1);
17295 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
17296 : return -1;
17297 : switch (GET_MODE (operands[0]))
17298 : {
17299 : case E_V16SImode:
17300 : if (pattern931 (x2,
17301 : E_V4SImode,
17302 : E_V2SImode,
17303 : E_V16SImode) != 0
17304 : || !
17305 : #line 28998 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17306 : (TARGET_AVX512DQ))
17307 : return -1;
17308 : return 9424; /* *avx512dq_broadcastv16si */
17309 :
17310 : case E_V8SImode:
17311 : if (pattern931 (x2,
17312 : E_V4SImode,
17313 : E_V2SImode,
17314 : E_V8SImode) != 0
17315 : || !(
17316 : #line 28998 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17317 : (TARGET_AVX512DQ) &&
17318 : #line 28982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17319 : (TARGET_AVX512VL)))
17320 : return -1;
17321 : return 9426; /* *avx512dq_broadcastv8si */
17322 :
17323 : case E_V4SImode:
17324 : if (pattern935 (x2,
17325 : E_V4SImode,
17326 : E_V2SImode) != 0
17327 : || !(
17328 : #line 28998 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17329 : (TARGET_AVX512DQ) &&
17330 : #line 28982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17331 : (TARGET_AVX512VL)))
17332 : return -1;
17333 : return 9428; /* *avx512dq_broadcastv4si */
17334 :
17335 : case E_V16SFmode:
17336 : if (pattern931 (x2,
17337 : E_V4SFmode,
17338 : E_V2SFmode,
17339 : E_V16SFmode) != 0
17340 : || !
17341 : #line 28998 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17342 : (TARGET_AVX512DQ))
17343 : return -1;
17344 : return 9430; /* *avx512dq_broadcastv16sf */
17345 :
17346 : case E_V8SFmode:
17347 : if (pattern931 (x2,
17348 : E_V4SFmode,
17349 : E_V2SFmode,
17350 : E_V8SFmode) != 0
17351 : || !(
17352 : #line 28998 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17353 : (TARGET_AVX512DQ) &&
17354 : #line 28983 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17355 : (TARGET_AVX512VL)))
17356 : return -1;
17357 : return 9432; /* *avx512dq_broadcastv8sf */
17358 :
17359 : default:
17360 : return -1;
17361 : }
17362 :
17363 : default:
17364 : return -1;
17365 : }
17366 : }
17367 :
17368 : int
17369 : recog_315 (rtx x1 ATTRIBUTE_UNUSED,
17370 : rtx_insn *insn ATTRIBUTE_UNUSED,
17371 : int *pnum_clobbers ATTRIBUTE_UNUSED)
17372 : {
17373 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
17374 : rtx x2, x3, x4;
17375 : int res ATTRIBUTE_UNUSED;
17376 : x2 = XEXP (x1, 1);
17377 : x3 = XEXP (x2, 0);
17378 : x4 = XEXP (x3, 0);
17379 : switch (GET_CODE (x4))
17380 : {
17381 : case REG:
17382 : case SUBREG:
17383 : case MEM:
17384 : case NOT:
17385 : switch (pattern543 (x2))
17386 : {
17387 : case 0:
17388 : if (!(
17389 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17390 : ((64 == 64 || TARGET_AVX512VL
17391 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17392 : && ix86_pre_reload_split ()
17393 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17394 : STRIP_UNARY (operands[4]))
17395 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17396 : STRIP_UNARY (operands[4]))
17397 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17398 : STRIP_UNARY (operands[3]))
17399 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17400 : STRIP_UNARY (operands[3])))) &&
17401 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17402 : (TARGET_AVX512F)))
17403 : return -1;
17404 : return 5887; /* *avx512bw_vpternlogv32hf_1 */
17405 :
17406 : case 1:
17407 : if (!(
17408 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17409 : ((32 == 64 || TARGET_AVX512VL
17410 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17411 : && ix86_pre_reload_split ()
17412 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17413 : STRIP_UNARY (operands[4]))
17414 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17415 : STRIP_UNARY (operands[4]))
17416 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17417 : STRIP_UNARY (operands[3]))
17418 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17419 : STRIP_UNARY (operands[3])))) &&
17420 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17421 : (TARGET_AVX)))
17422 : return -1;
17423 : return 5914; /* *avx512vl_vpternlogv16hf_1 */
17424 :
17425 : case 2:
17426 : if (!
17427 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17428 : ((16 == 64 || TARGET_AVX512VL
17429 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17430 : && ix86_pre_reload_split ()
17431 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17432 : STRIP_UNARY (operands[4]))
17433 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17434 : STRIP_UNARY (operands[4]))
17435 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17436 : STRIP_UNARY (operands[3]))
17437 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17438 : STRIP_UNARY (operands[3])))))
17439 : return -1;
17440 : return 5941; /* *avx512fp16_vpternlogv8hf_1 */
17441 :
17442 : case 3:
17443 : if (!(
17444 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17445 : ((64 == 64 || TARGET_AVX512VL
17446 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17447 : && ix86_pre_reload_split ()
17448 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17449 : STRIP_UNARY (operands[4]))
17450 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17451 : STRIP_UNARY (operands[4]))
17452 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17453 : STRIP_UNARY (operands[3]))
17454 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17455 : STRIP_UNARY (operands[3])))) &&
17456 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17457 : (TARGET_AVX512F)))
17458 : return -1;
17459 : return 5968; /* *avx512bw_vpternlogv32bf_1 */
17460 :
17461 : case 4:
17462 : if (!(
17463 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17464 : ((32 == 64 || TARGET_AVX512VL
17465 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17466 : && ix86_pre_reload_split ()
17467 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17468 : STRIP_UNARY (operands[4]))
17469 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17470 : STRIP_UNARY (operands[4]))
17471 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17472 : STRIP_UNARY (operands[3]))
17473 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17474 : STRIP_UNARY (operands[3])))) &&
17475 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17476 : (TARGET_AVX)))
17477 : return -1;
17478 : return 5995; /* *avx512vl_vpternlogv16bf_1 */
17479 :
17480 : case 5:
17481 : if (!
17482 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17483 : ((16 == 64 || TARGET_AVX512VL
17484 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17485 : && ix86_pre_reload_split ()
17486 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17487 : STRIP_UNARY (operands[4]))
17488 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17489 : STRIP_UNARY (operands[4]))
17490 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17491 : STRIP_UNARY (operands[3]))
17492 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17493 : STRIP_UNARY (operands[3])))))
17494 : return -1;
17495 : return 6022; /* *avx512vl_vpternlogv8bf_1 */
17496 :
17497 : case 6:
17498 : if (!(
17499 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17500 : ((64 == 64 || TARGET_AVX512VL
17501 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17502 : && ix86_pre_reload_split ()
17503 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17504 : STRIP_UNARY (operands[4]))
17505 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17506 : STRIP_UNARY (operands[4]))
17507 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17508 : STRIP_UNARY (operands[3]))
17509 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17510 : STRIP_UNARY (operands[3])))) &&
17511 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17512 : (TARGET_AVX512F)))
17513 : return -1;
17514 : return 6049; /* *avx512f_vpternlogv16sf_1 */
17515 :
17516 : case 7:
17517 : if (!(
17518 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17519 : ((32 == 64 || TARGET_AVX512VL
17520 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17521 : && ix86_pre_reload_split ()
17522 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17523 : STRIP_UNARY (operands[4]))
17524 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17525 : STRIP_UNARY (operands[4]))
17526 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17527 : STRIP_UNARY (operands[3]))
17528 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17529 : STRIP_UNARY (operands[3])))) &&
17530 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17531 : (TARGET_AVX)))
17532 : return -1;
17533 : return 6076; /* *avx512vl_vpternlogv8sf_1 */
17534 :
17535 : case 8:
17536 : if (!
17537 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17538 : ((16 == 64 || TARGET_AVX512VL
17539 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17540 : && ix86_pre_reload_split ()
17541 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17542 : STRIP_UNARY (operands[4]))
17543 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17544 : STRIP_UNARY (operands[4]))
17545 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17546 : STRIP_UNARY (operands[3]))
17547 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17548 : STRIP_UNARY (operands[3])))))
17549 : return -1;
17550 : return 6103; /* *avx512vl_vpternlogv4sf_1 */
17551 :
17552 : case 9:
17553 : if (!(
17554 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17555 : ((64 == 64 || TARGET_AVX512VL
17556 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17557 : && ix86_pre_reload_split ()
17558 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17559 : STRIP_UNARY (operands[4]))
17560 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17561 : STRIP_UNARY (operands[4]))
17562 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17563 : STRIP_UNARY (operands[3]))
17564 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17565 : STRIP_UNARY (operands[3])))) &&
17566 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17567 : (TARGET_AVX512F)))
17568 : return -1;
17569 : return 6130; /* *avx512f_vpternlogv8df_1 */
17570 :
17571 : case 10:
17572 : if (!(
17573 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17574 : ((32 == 64 || TARGET_AVX512VL
17575 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17576 : && ix86_pre_reload_split ()
17577 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17578 : STRIP_UNARY (operands[4]))
17579 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17580 : STRIP_UNARY (operands[4]))
17581 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17582 : STRIP_UNARY (operands[3]))
17583 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17584 : STRIP_UNARY (operands[3])))) &&
17585 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17586 : (TARGET_AVX)))
17587 : return -1;
17588 : return 6157; /* *avx512vl_vpternlogv4df_1 */
17589 :
17590 : case 11:
17591 : if (!(
17592 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17593 : ((16 == 64 || TARGET_AVX512VL
17594 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17595 : && ix86_pre_reload_split ()
17596 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17597 : STRIP_UNARY (operands[4]))
17598 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17599 : STRIP_UNARY (operands[4]))
17600 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17601 : STRIP_UNARY (operands[3]))
17602 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17603 : STRIP_UNARY (operands[3])))) &&
17604 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17605 : (TARGET_SSE2)))
17606 : return -1;
17607 : return 6184; /* *avx512vl_vpternlogv2df_1 */
17608 :
17609 : case 12:
17610 : if (!(
17611 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17612 : ((64 == 64 || TARGET_AVX512VL
17613 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17614 : && ix86_pre_reload_split ()
17615 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17616 : STRIP_UNARY (operands[4]))
17617 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17618 : STRIP_UNARY (operands[4]))
17619 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17620 : STRIP_UNARY (operands[3]))
17621 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17622 : STRIP_UNARY (operands[3])))) &&
17623 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17624 : (TARGET_AVX512F)))
17625 : return -1;
17626 : return 5890; /* *avx512bw_vpternlogv32hf_1 */
17627 :
17628 : case 13:
17629 : if (!(
17630 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17631 : ((32 == 64 || TARGET_AVX512VL
17632 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17633 : && ix86_pre_reload_split ()
17634 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17635 : STRIP_UNARY (operands[4]))
17636 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17637 : STRIP_UNARY (operands[4]))
17638 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17639 : STRIP_UNARY (operands[3]))
17640 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17641 : STRIP_UNARY (operands[3])))) &&
17642 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17643 : (TARGET_AVX)))
17644 : return -1;
17645 : return 5917; /* *avx512vl_vpternlogv16hf_1 */
17646 :
17647 : case 14:
17648 : if (!
17649 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17650 : ((16 == 64 || TARGET_AVX512VL
17651 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17652 : && ix86_pre_reload_split ()
17653 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17654 : STRIP_UNARY (operands[4]))
17655 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17656 : STRIP_UNARY (operands[4]))
17657 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17658 : STRIP_UNARY (operands[3]))
17659 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17660 : STRIP_UNARY (operands[3])))))
17661 : return -1;
17662 : return 5944; /* *avx512fp16_vpternlogv8hf_1 */
17663 :
17664 : case 15:
17665 : if (!(
17666 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17667 : ((64 == 64 || TARGET_AVX512VL
17668 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17669 : && ix86_pre_reload_split ()
17670 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17671 : STRIP_UNARY (operands[4]))
17672 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17673 : STRIP_UNARY (operands[4]))
17674 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17675 : STRIP_UNARY (operands[3]))
17676 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17677 : STRIP_UNARY (operands[3])))) &&
17678 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17679 : (TARGET_AVX512F)))
17680 : return -1;
17681 : return 5971; /* *avx512bw_vpternlogv32bf_1 */
17682 :
17683 : case 16:
17684 : if (!(
17685 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17686 : ((32 == 64 || TARGET_AVX512VL
17687 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17688 : && ix86_pre_reload_split ()
17689 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17690 : STRIP_UNARY (operands[4]))
17691 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17692 : STRIP_UNARY (operands[4]))
17693 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17694 : STRIP_UNARY (operands[3]))
17695 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17696 : STRIP_UNARY (operands[3])))) &&
17697 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17698 : (TARGET_AVX)))
17699 : return -1;
17700 : return 5998; /* *avx512vl_vpternlogv16bf_1 */
17701 :
17702 : case 17:
17703 : if (!
17704 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17705 : ((16 == 64 || TARGET_AVX512VL
17706 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17707 : && ix86_pre_reload_split ()
17708 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17709 : STRIP_UNARY (operands[4]))
17710 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17711 : STRIP_UNARY (operands[4]))
17712 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17713 : STRIP_UNARY (operands[3]))
17714 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17715 : STRIP_UNARY (operands[3])))))
17716 : return -1;
17717 : return 6025; /* *avx512vl_vpternlogv8bf_1 */
17718 :
17719 : case 18:
17720 : if (!(
17721 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17722 : ((64 == 64 || TARGET_AVX512VL
17723 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17724 : && ix86_pre_reload_split ()
17725 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17726 : STRIP_UNARY (operands[4]))
17727 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17728 : STRIP_UNARY (operands[4]))
17729 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17730 : STRIP_UNARY (operands[3]))
17731 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17732 : STRIP_UNARY (operands[3])))) &&
17733 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17734 : (TARGET_AVX512F)))
17735 : return -1;
17736 : return 6052; /* *avx512f_vpternlogv16sf_1 */
17737 :
17738 : case 19:
17739 : if (!(
17740 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17741 : ((32 == 64 || TARGET_AVX512VL
17742 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17743 : && ix86_pre_reload_split ()
17744 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17745 : STRIP_UNARY (operands[4]))
17746 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17747 : STRIP_UNARY (operands[4]))
17748 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17749 : STRIP_UNARY (operands[3]))
17750 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17751 : STRIP_UNARY (operands[3])))) &&
17752 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17753 : (TARGET_AVX)))
17754 : return -1;
17755 : return 6079; /* *avx512vl_vpternlogv8sf_1 */
17756 :
17757 : case 20:
17758 : if (!
17759 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17760 : ((16 == 64 || TARGET_AVX512VL
17761 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17762 : && ix86_pre_reload_split ()
17763 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17764 : STRIP_UNARY (operands[4]))
17765 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17766 : STRIP_UNARY (operands[4]))
17767 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17768 : STRIP_UNARY (operands[3]))
17769 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17770 : STRIP_UNARY (operands[3])))))
17771 : return -1;
17772 : return 6106; /* *avx512vl_vpternlogv4sf_1 */
17773 :
17774 : case 21:
17775 : if (!(
17776 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17777 : ((64 == 64 || TARGET_AVX512VL
17778 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17779 : && ix86_pre_reload_split ()
17780 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17781 : STRIP_UNARY (operands[4]))
17782 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17783 : STRIP_UNARY (operands[4]))
17784 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17785 : STRIP_UNARY (operands[3]))
17786 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17787 : STRIP_UNARY (operands[3])))) &&
17788 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17789 : (TARGET_AVX512F)))
17790 : return -1;
17791 : return 6133; /* *avx512f_vpternlogv8df_1 */
17792 :
17793 : case 22:
17794 : if (!(
17795 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17796 : ((32 == 64 || TARGET_AVX512VL
17797 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17798 : && ix86_pre_reload_split ()
17799 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17800 : STRIP_UNARY (operands[4]))
17801 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17802 : STRIP_UNARY (operands[4]))
17803 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17804 : STRIP_UNARY (operands[3]))
17805 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17806 : STRIP_UNARY (operands[3])))) &&
17807 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17808 : (TARGET_AVX)))
17809 : return -1;
17810 : return 6160; /* *avx512vl_vpternlogv4df_1 */
17811 :
17812 : case 23:
17813 : if (!(
17814 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17815 : ((16 == 64 || TARGET_AVX512VL
17816 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17817 : && ix86_pre_reload_split ()
17818 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17819 : STRIP_UNARY (operands[4]))
17820 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17821 : STRIP_UNARY (operands[4]))
17822 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17823 : STRIP_UNARY (operands[3]))
17824 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17825 : STRIP_UNARY (operands[3])))) &&
17826 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17827 : (TARGET_SSE2)))
17828 : return -1;
17829 : return 6187; /* *avx512vl_vpternlogv2df_1 */
17830 :
17831 : case 24:
17832 : if (!(
17833 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17834 : ((64 == 64 || TARGET_AVX512VL
17835 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17836 : && ix86_pre_reload_split ()
17837 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17838 : STRIP_UNARY (operands[4]))
17839 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17840 : STRIP_UNARY (operands[4]))
17841 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17842 : STRIP_UNARY (operands[3]))
17843 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17844 : STRIP_UNARY (operands[3])))) &&
17845 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17846 : (TARGET_AVX512F)))
17847 : return -1;
17848 : return 5893; /* *avx512bw_vpternlogv32hf_1 */
17849 :
17850 : case 25:
17851 : if (!(
17852 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17853 : ((32 == 64 || TARGET_AVX512VL
17854 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17855 : && ix86_pre_reload_split ()
17856 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17857 : STRIP_UNARY (operands[4]))
17858 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17859 : STRIP_UNARY (operands[4]))
17860 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17861 : STRIP_UNARY (operands[3]))
17862 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17863 : STRIP_UNARY (operands[3])))) &&
17864 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17865 : (TARGET_AVX)))
17866 : return -1;
17867 : return 5920; /* *avx512vl_vpternlogv16hf_1 */
17868 :
17869 : case 26:
17870 : if (!
17871 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17872 : ((16 == 64 || TARGET_AVX512VL
17873 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17874 : && ix86_pre_reload_split ()
17875 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17876 : STRIP_UNARY (operands[4]))
17877 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17878 : STRIP_UNARY (operands[4]))
17879 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17880 : STRIP_UNARY (operands[3]))
17881 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17882 : STRIP_UNARY (operands[3])))))
17883 : return -1;
17884 : return 5947; /* *avx512fp16_vpternlogv8hf_1 */
17885 :
17886 : case 27:
17887 : if (!(
17888 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17889 : ((64 == 64 || TARGET_AVX512VL
17890 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17891 : && ix86_pre_reload_split ()
17892 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17893 : STRIP_UNARY (operands[4]))
17894 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17895 : STRIP_UNARY (operands[4]))
17896 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17897 : STRIP_UNARY (operands[3]))
17898 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17899 : STRIP_UNARY (operands[3])))) &&
17900 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17901 : (TARGET_AVX512F)))
17902 : return -1;
17903 : return 5974; /* *avx512bw_vpternlogv32bf_1 */
17904 :
17905 : case 28:
17906 : if (!(
17907 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17908 : ((32 == 64 || TARGET_AVX512VL
17909 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17910 : && ix86_pre_reload_split ()
17911 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17912 : STRIP_UNARY (operands[4]))
17913 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17914 : STRIP_UNARY (operands[4]))
17915 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17916 : STRIP_UNARY (operands[3]))
17917 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17918 : STRIP_UNARY (operands[3])))) &&
17919 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17920 : (TARGET_AVX)))
17921 : return -1;
17922 : return 6001; /* *avx512vl_vpternlogv16bf_1 */
17923 :
17924 : case 29:
17925 : if (!
17926 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17927 : ((16 == 64 || TARGET_AVX512VL
17928 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17929 : && ix86_pre_reload_split ()
17930 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17931 : STRIP_UNARY (operands[4]))
17932 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17933 : STRIP_UNARY (operands[4]))
17934 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17935 : STRIP_UNARY (operands[3]))
17936 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17937 : STRIP_UNARY (operands[3])))))
17938 : return -1;
17939 : return 6028; /* *avx512vl_vpternlogv8bf_1 */
17940 :
17941 : case 30:
17942 : if (!(
17943 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17944 : ((64 == 64 || TARGET_AVX512VL
17945 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17946 : && ix86_pre_reload_split ()
17947 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17948 : STRIP_UNARY (operands[4]))
17949 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17950 : STRIP_UNARY (operands[4]))
17951 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17952 : STRIP_UNARY (operands[3]))
17953 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17954 : STRIP_UNARY (operands[3])))) &&
17955 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17956 : (TARGET_AVX512F)))
17957 : return -1;
17958 : return 6055; /* *avx512f_vpternlogv16sf_1 */
17959 :
17960 : case 31:
17961 : if (!(
17962 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17963 : ((32 == 64 || TARGET_AVX512VL
17964 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17965 : && ix86_pre_reload_split ()
17966 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17967 : STRIP_UNARY (operands[4]))
17968 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17969 : STRIP_UNARY (operands[4]))
17970 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17971 : STRIP_UNARY (operands[3]))
17972 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17973 : STRIP_UNARY (operands[3])))) &&
17974 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17975 : (TARGET_AVX)))
17976 : return -1;
17977 : return 6082; /* *avx512vl_vpternlogv8sf_1 */
17978 :
17979 : case 32:
17980 : if (!
17981 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17982 : ((16 == 64 || TARGET_AVX512VL
17983 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17984 : && ix86_pre_reload_split ()
17985 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17986 : STRIP_UNARY (operands[4]))
17987 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17988 : STRIP_UNARY (operands[4]))
17989 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17990 : STRIP_UNARY (operands[3]))
17991 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17992 : STRIP_UNARY (operands[3])))))
17993 : return -1;
17994 : return 6109; /* *avx512vl_vpternlogv4sf_1 */
17995 :
17996 : case 33:
17997 : if (!(
17998 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17999 : ((64 == 64 || TARGET_AVX512VL
18000 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18001 : && ix86_pre_reload_split ()
18002 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18003 : STRIP_UNARY (operands[4]))
18004 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18005 : STRIP_UNARY (operands[4]))
18006 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18007 : STRIP_UNARY (operands[3]))
18008 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18009 : STRIP_UNARY (operands[3])))) &&
18010 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18011 : (TARGET_AVX512F)))
18012 : return -1;
18013 : return 6136; /* *avx512f_vpternlogv8df_1 */
18014 :
18015 : case 34:
18016 : if (!(
18017 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18018 : ((32 == 64 || TARGET_AVX512VL
18019 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18020 : && ix86_pre_reload_split ()
18021 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18022 : STRIP_UNARY (operands[4]))
18023 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18024 : STRIP_UNARY (operands[4]))
18025 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18026 : STRIP_UNARY (operands[3]))
18027 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18028 : STRIP_UNARY (operands[3])))) &&
18029 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18030 : (TARGET_AVX)))
18031 : return -1;
18032 : return 6163; /* *avx512vl_vpternlogv4df_1 */
18033 :
18034 : case 35:
18035 : if (!(
18036 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18037 : ((16 == 64 || TARGET_AVX512VL
18038 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18039 : && ix86_pre_reload_split ()
18040 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18041 : STRIP_UNARY (operands[4]))
18042 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18043 : STRIP_UNARY (operands[4]))
18044 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18045 : STRIP_UNARY (operands[3]))
18046 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18047 : STRIP_UNARY (operands[3])))) &&
18048 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18049 : (TARGET_SSE2)))
18050 : return -1;
18051 : return 6190; /* *avx512vl_vpternlogv2df_1 */
18052 :
18053 : case 36:
18054 : if (!(
18055 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18056 : ((64 == 64 || TARGET_AVX512VL
18057 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18058 : && ix86_pre_reload_split ()) &&
18059 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18060 : (TARGET_AVX512F)))
18061 : return -1;
18062 : return 6955; /* *avx512bw_vpternlogv32hf_3 */
18063 :
18064 : case 37:
18065 : if (!(
18066 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18067 : ((32 == 64 || TARGET_AVX512VL
18068 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18069 : && ix86_pre_reload_split ()) &&
18070 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18071 : (TARGET_AVX)))
18072 : return -1;
18073 : return 6964; /* *avx512vl_vpternlogv16hf_3 */
18074 :
18075 : case 38:
18076 : if (!
18077 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18078 : ((16 == 64 || TARGET_AVX512VL
18079 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18080 : && ix86_pre_reload_split ()))
18081 : return -1;
18082 : return 6973; /* *avx512fp16_vpternlogv8hf_3 */
18083 :
18084 : case 39:
18085 : if (!(
18086 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18087 : ((64 == 64 || TARGET_AVX512VL
18088 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18089 : && ix86_pre_reload_split ()) &&
18090 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18091 : (TARGET_AVX512F)))
18092 : return -1;
18093 : return 6982; /* *avx512bw_vpternlogv32bf_3 */
18094 :
18095 : case 40:
18096 : if (!(
18097 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18098 : ((32 == 64 || TARGET_AVX512VL
18099 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18100 : && ix86_pre_reload_split ()) &&
18101 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18102 : (TARGET_AVX)))
18103 : return -1;
18104 : return 6991; /* *avx512vl_vpternlogv16bf_3 */
18105 :
18106 : case 41:
18107 : if (!
18108 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18109 : ((16 == 64 || TARGET_AVX512VL
18110 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18111 : && ix86_pre_reload_split ()))
18112 : return -1;
18113 : return 7000; /* *avx512vl_vpternlogv8bf_3 */
18114 :
18115 : case 42:
18116 : if (!(
18117 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18118 : ((64 == 64 || TARGET_AVX512VL
18119 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18120 : && ix86_pre_reload_split ()) &&
18121 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18122 : (TARGET_AVX512F)))
18123 : return -1;
18124 : return 7009; /* *avx512f_vpternlogv16sf_3 */
18125 :
18126 : case 43:
18127 : if (!(
18128 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18129 : ((32 == 64 || TARGET_AVX512VL
18130 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18131 : && ix86_pre_reload_split ()) &&
18132 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18133 : (TARGET_AVX)))
18134 : return -1;
18135 : return 7018; /* *avx512vl_vpternlogv8sf_3 */
18136 :
18137 : case 44:
18138 : if (!
18139 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18140 : ((16 == 64 || TARGET_AVX512VL
18141 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18142 : && ix86_pre_reload_split ()))
18143 : return -1;
18144 : return 7027; /* *avx512vl_vpternlogv4sf_3 */
18145 :
18146 : case 45:
18147 : if (!(
18148 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18149 : ((64 == 64 || TARGET_AVX512VL
18150 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18151 : && ix86_pre_reload_split ()) &&
18152 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18153 : (TARGET_AVX512F)))
18154 : return -1;
18155 : return 7036; /* *avx512f_vpternlogv8df_3 */
18156 :
18157 : case 46:
18158 : if (!(
18159 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18160 : ((32 == 64 || TARGET_AVX512VL
18161 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18162 : && ix86_pre_reload_split ()) &&
18163 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18164 : (TARGET_AVX)))
18165 : return -1;
18166 : return 7045; /* *avx512vl_vpternlogv4df_3 */
18167 :
18168 : case 47:
18169 : if (!(
18170 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18171 : ((16 == 64 || TARGET_AVX512VL
18172 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18173 : && ix86_pre_reload_split ()) &&
18174 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18175 : (TARGET_SSE2)))
18176 : return -1;
18177 : return 7054; /* *avx512vl_vpternlogv2df_3 */
18178 :
18179 : default:
18180 : return -1;
18181 : }
18182 :
18183 : case AND:
18184 : switch (pattern544 (x2))
18185 : {
18186 : case 0:
18187 : if (!(
18188 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18189 : ((64 == 64 || TARGET_AVX512VL
18190 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18191 : && ix86_pre_reload_split ()
18192 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18193 : STRIP_UNARY (operands[4]))
18194 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18195 : STRIP_UNARY (operands[4]))
18196 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18197 : STRIP_UNARY (operands[3]))
18198 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18199 : STRIP_UNARY (operands[3])))) &&
18200 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18201 : (TARGET_AVX512F)))
18202 : return -1;
18203 : return 6535; /* *avx512bw_vpternlogv32hf_2 */
18204 :
18205 : case 1:
18206 : if (!(
18207 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18208 : ((32 == 64 || TARGET_AVX512VL
18209 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18210 : && ix86_pre_reload_split ()
18211 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18212 : STRIP_UNARY (operands[4]))
18213 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18214 : STRIP_UNARY (operands[4]))
18215 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18216 : STRIP_UNARY (operands[3]))
18217 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18218 : STRIP_UNARY (operands[3])))) &&
18219 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18220 : (TARGET_AVX)))
18221 : return -1;
18222 : return 6562; /* *avx512vl_vpternlogv16hf_2 */
18223 :
18224 : case 2:
18225 : if (!
18226 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18227 : ((16 == 64 || TARGET_AVX512VL
18228 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18229 : && ix86_pre_reload_split ()
18230 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18231 : STRIP_UNARY (operands[4]))
18232 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18233 : STRIP_UNARY (operands[4]))
18234 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18235 : STRIP_UNARY (operands[3]))
18236 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18237 : STRIP_UNARY (operands[3])))))
18238 : return -1;
18239 : return 6589; /* *avx512fp16_vpternlogv8hf_2 */
18240 :
18241 : case 3:
18242 : if (!(
18243 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18244 : ((64 == 64 || TARGET_AVX512VL
18245 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18246 : && ix86_pre_reload_split ()
18247 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18248 : STRIP_UNARY (operands[4]))
18249 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18250 : STRIP_UNARY (operands[4]))
18251 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18252 : STRIP_UNARY (operands[3]))
18253 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18254 : STRIP_UNARY (operands[3])))) &&
18255 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18256 : (TARGET_AVX512F)))
18257 : return -1;
18258 : return 6616; /* *avx512bw_vpternlogv32bf_2 */
18259 :
18260 : case 4:
18261 : if (!(
18262 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18263 : ((32 == 64 || TARGET_AVX512VL
18264 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18265 : && ix86_pre_reload_split ()
18266 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18267 : STRIP_UNARY (operands[4]))
18268 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18269 : STRIP_UNARY (operands[4]))
18270 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18271 : STRIP_UNARY (operands[3]))
18272 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18273 : STRIP_UNARY (operands[3])))) &&
18274 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18275 : (TARGET_AVX)))
18276 : return -1;
18277 : return 6643; /* *avx512vl_vpternlogv16bf_2 */
18278 :
18279 : case 5:
18280 : if (!
18281 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18282 : ((16 == 64 || TARGET_AVX512VL
18283 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18284 : && ix86_pre_reload_split ()
18285 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18286 : STRIP_UNARY (operands[4]))
18287 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18288 : STRIP_UNARY (operands[4]))
18289 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18290 : STRIP_UNARY (operands[3]))
18291 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18292 : STRIP_UNARY (operands[3])))))
18293 : return -1;
18294 : return 6670; /* *avx512vl_vpternlogv8bf_2 */
18295 :
18296 : case 6:
18297 : if (!(
18298 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18299 : ((64 == 64 || TARGET_AVX512VL
18300 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18301 : && ix86_pre_reload_split ()
18302 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18303 : STRIP_UNARY (operands[4]))
18304 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18305 : STRIP_UNARY (operands[4]))
18306 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18307 : STRIP_UNARY (operands[3]))
18308 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18309 : STRIP_UNARY (operands[3])))) &&
18310 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18311 : (TARGET_AVX512F)))
18312 : return -1;
18313 : return 6697; /* *avx512f_vpternlogv16sf_2 */
18314 :
18315 : case 7:
18316 : if (!(
18317 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18318 : ((32 == 64 || TARGET_AVX512VL
18319 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18320 : && ix86_pre_reload_split ()
18321 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18322 : STRIP_UNARY (operands[4]))
18323 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18324 : STRIP_UNARY (operands[4]))
18325 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18326 : STRIP_UNARY (operands[3]))
18327 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18328 : STRIP_UNARY (operands[3])))) &&
18329 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18330 : (TARGET_AVX)))
18331 : return -1;
18332 : return 6724; /* *avx512vl_vpternlogv8sf_2 */
18333 :
18334 : case 8:
18335 : if (!
18336 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18337 : ((16 == 64 || TARGET_AVX512VL
18338 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18339 : && ix86_pre_reload_split ()
18340 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18341 : STRIP_UNARY (operands[4]))
18342 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18343 : STRIP_UNARY (operands[4]))
18344 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18345 : STRIP_UNARY (operands[3]))
18346 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18347 : STRIP_UNARY (operands[3])))))
18348 : return -1;
18349 : return 6751; /* *avx512vl_vpternlogv4sf_2 */
18350 :
18351 : case 9:
18352 : if (!(
18353 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18354 : ((64 == 64 || TARGET_AVX512VL
18355 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18356 : && ix86_pre_reload_split ()
18357 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18358 : STRIP_UNARY (operands[4]))
18359 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18360 : STRIP_UNARY (operands[4]))
18361 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18362 : STRIP_UNARY (operands[3]))
18363 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18364 : STRIP_UNARY (operands[3])))) &&
18365 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18366 : (TARGET_AVX512F)))
18367 : return -1;
18368 : return 6778; /* *avx512f_vpternlogv8df_2 */
18369 :
18370 : case 10:
18371 : if (!(
18372 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18373 : ((32 == 64 || TARGET_AVX512VL
18374 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18375 : && ix86_pre_reload_split ()
18376 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18377 : STRIP_UNARY (operands[4]))
18378 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18379 : STRIP_UNARY (operands[4]))
18380 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18381 : STRIP_UNARY (operands[3]))
18382 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18383 : STRIP_UNARY (operands[3])))) &&
18384 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18385 : (TARGET_AVX)))
18386 : return -1;
18387 : return 6805; /* *avx512vl_vpternlogv4df_2 */
18388 :
18389 : case 11:
18390 : if (!(
18391 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18392 : ((16 == 64 || TARGET_AVX512VL
18393 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18394 : && ix86_pre_reload_split ()
18395 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18396 : STRIP_UNARY (operands[4]))
18397 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18398 : STRIP_UNARY (operands[4]))
18399 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18400 : STRIP_UNARY (operands[3]))
18401 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18402 : STRIP_UNARY (operands[3])))) &&
18403 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18404 : (TARGET_SSE2)))
18405 : return -1;
18406 : return 6832; /* *avx512vl_vpternlogv2df_2 */
18407 :
18408 : default:
18409 : return -1;
18410 : }
18411 :
18412 : case IOR:
18413 : switch (pattern544 (x2))
18414 : {
18415 : case 0:
18416 : if (!(
18417 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18418 : ((64 == 64 || TARGET_AVX512VL
18419 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18420 : && ix86_pre_reload_split ()
18421 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18422 : STRIP_UNARY (operands[4]))
18423 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18424 : STRIP_UNARY (operands[4]))
18425 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18426 : STRIP_UNARY (operands[3]))
18427 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18428 : STRIP_UNARY (operands[3])))) &&
18429 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18430 : (TARGET_AVX512F)))
18431 : return -1;
18432 : return 6538; /* *avx512bw_vpternlogv32hf_2 */
18433 :
18434 : case 1:
18435 : if (!(
18436 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18437 : ((32 == 64 || TARGET_AVX512VL
18438 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18439 : && ix86_pre_reload_split ()
18440 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18441 : STRIP_UNARY (operands[4]))
18442 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18443 : STRIP_UNARY (operands[4]))
18444 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18445 : STRIP_UNARY (operands[3]))
18446 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18447 : STRIP_UNARY (operands[3])))) &&
18448 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18449 : (TARGET_AVX)))
18450 : return -1;
18451 : return 6565; /* *avx512vl_vpternlogv16hf_2 */
18452 :
18453 : case 2:
18454 : if (!
18455 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18456 : ((16 == 64 || TARGET_AVX512VL
18457 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18458 : && ix86_pre_reload_split ()
18459 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18460 : STRIP_UNARY (operands[4]))
18461 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18462 : STRIP_UNARY (operands[4]))
18463 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18464 : STRIP_UNARY (operands[3]))
18465 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18466 : STRIP_UNARY (operands[3])))))
18467 : return -1;
18468 : return 6592; /* *avx512fp16_vpternlogv8hf_2 */
18469 :
18470 : case 3:
18471 : if (!(
18472 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18473 : ((64 == 64 || TARGET_AVX512VL
18474 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18475 : && ix86_pre_reload_split ()
18476 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18477 : STRIP_UNARY (operands[4]))
18478 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18479 : STRIP_UNARY (operands[4]))
18480 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18481 : STRIP_UNARY (operands[3]))
18482 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18483 : STRIP_UNARY (operands[3])))) &&
18484 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18485 : (TARGET_AVX512F)))
18486 : return -1;
18487 : return 6619; /* *avx512bw_vpternlogv32bf_2 */
18488 :
18489 : case 4:
18490 : if (!(
18491 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18492 : ((32 == 64 || TARGET_AVX512VL
18493 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18494 : && ix86_pre_reload_split ()
18495 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18496 : STRIP_UNARY (operands[4]))
18497 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18498 : STRIP_UNARY (operands[4]))
18499 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18500 : STRIP_UNARY (operands[3]))
18501 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18502 : STRIP_UNARY (operands[3])))) &&
18503 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18504 : (TARGET_AVX)))
18505 : return -1;
18506 : return 6646; /* *avx512vl_vpternlogv16bf_2 */
18507 :
18508 : case 5:
18509 : if (!
18510 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18511 : ((16 == 64 || TARGET_AVX512VL
18512 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18513 : && ix86_pre_reload_split ()
18514 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18515 : STRIP_UNARY (operands[4]))
18516 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18517 : STRIP_UNARY (operands[4]))
18518 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18519 : STRIP_UNARY (operands[3]))
18520 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18521 : STRIP_UNARY (operands[3])))))
18522 : return -1;
18523 : return 6673; /* *avx512vl_vpternlogv8bf_2 */
18524 :
18525 : case 6:
18526 : if (!(
18527 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18528 : ((64 == 64 || TARGET_AVX512VL
18529 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18530 : && ix86_pre_reload_split ()
18531 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18532 : STRIP_UNARY (operands[4]))
18533 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18534 : STRIP_UNARY (operands[4]))
18535 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18536 : STRIP_UNARY (operands[3]))
18537 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18538 : STRIP_UNARY (operands[3])))) &&
18539 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18540 : (TARGET_AVX512F)))
18541 : return -1;
18542 : return 6700; /* *avx512f_vpternlogv16sf_2 */
18543 :
18544 : case 7:
18545 : if (!(
18546 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18547 : ((32 == 64 || TARGET_AVX512VL
18548 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18549 : && ix86_pre_reload_split ()
18550 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18551 : STRIP_UNARY (operands[4]))
18552 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18553 : STRIP_UNARY (operands[4]))
18554 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18555 : STRIP_UNARY (operands[3]))
18556 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18557 : STRIP_UNARY (operands[3])))) &&
18558 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18559 : (TARGET_AVX)))
18560 : return -1;
18561 : return 6727; /* *avx512vl_vpternlogv8sf_2 */
18562 :
18563 : case 8:
18564 : if (!
18565 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18566 : ((16 == 64 || TARGET_AVX512VL
18567 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18568 : && ix86_pre_reload_split ()
18569 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18570 : STRIP_UNARY (operands[4]))
18571 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18572 : STRIP_UNARY (operands[4]))
18573 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18574 : STRIP_UNARY (operands[3]))
18575 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18576 : STRIP_UNARY (operands[3])))))
18577 : return -1;
18578 : return 6754; /* *avx512vl_vpternlogv4sf_2 */
18579 :
18580 : case 9:
18581 : if (!(
18582 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18583 : ((64 == 64 || TARGET_AVX512VL
18584 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18585 : && ix86_pre_reload_split ()
18586 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18587 : STRIP_UNARY (operands[4]))
18588 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18589 : STRIP_UNARY (operands[4]))
18590 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18591 : STRIP_UNARY (operands[3]))
18592 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18593 : STRIP_UNARY (operands[3])))) &&
18594 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18595 : (TARGET_AVX512F)))
18596 : return -1;
18597 : return 6781; /* *avx512f_vpternlogv8df_2 */
18598 :
18599 : case 10:
18600 : if (!(
18601 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18602 : ((32 == 64 || TARGET_AVX512VL
18603 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18604 : && ix86_pre_reload_split ()
18605 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18606 : STRIP_UNARY (operands[4]))
18607 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18608 : STRIP_UNARY (operands[4]))
18609 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18610 : STRIP_UNARY (operands[3]))
18611 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18612 : STRIP_UNARY (operands[3])))) &&
18613 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18614 : (TARGET_AVX)))
18615 : return -1;
18616 : return 6808; /* *avx512vl_vpternlogv4df_2 */
18617 :
18618 : case 11:
18619 : if (!(
18620 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18621 : ((16 == 64 || TARGET_AVX512VL
18622 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18623 : && ix86_pre_reload_split ()
18624 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18625 : STRIP_UNARY (operands[4]))
18626 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18627 : STRIP_UNARY (operands[4]))
18628 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18629 : STRIP_UNARY (operands[3]))
18630 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18631 : STRIP_UNARY (operands[3])))) &&
18632 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18633 : (TARGET_SSE2)))
18634 : return -1;
18635 : return 6835; /* *avx512vl_vpternlogv2df_2 */
18636 :
18637 : default:
18638 : return -1;
18639 : }
18640 :
18641 : case XOR:
18642 : switch (pattern544 (x2))
18643 : {
18644 : case 0:
18645 : if (!(
18646 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18647 : ((64 == 64 || TARGET_AVX512VL
18648 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18649 : && ix86_pre_reload_split ()
18650 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18651 : STRIP_UNARY (operands[4]))
18652 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18653 : STRIP_UNARY (operands[4]))
18654 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18655 : STRIP_UNARY (operands[3]))
18656 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18657 : STRIP_UNARY (operands[3])))) &&
18658 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18659 : (TARGET_AVX512F)))
18660 : return -1;
18661 : return 6541; /* *avx512bw_vpternlogv32hf_2 */
18662 :
18663 : case 1:
18664 : if (!(
18665 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18666 : ((32 == 64 || TARGET_AVX512VL
18667 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18668 : && ix86_pre_reload_split ()
18669 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18670 : STRIP_UNARY (operands[4]))
18671 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18672 : STRIP_UNARY (operands[4]))
18673 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18674 : STRIP_UNARY (operands[3]))
18675 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18676 : STRIP_UNARY (operands[3])))) &&
18677 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18678 : (TARGET_AVX)))
18679 : return -1;
18680 : return 6568; /* *avx512vl_vpternlogv16hf_2 */
18681 :
18682 : case 2:
18683 : if (!
18684 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18685 : ((16 == 64 || TARGET_AVX512VL
18686 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18687 : && ix86_pre_reload_split ()
18688 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18689 : STRIP_UNARY (operands[4]))
18690 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18691 : STRIP_UNARY (operands[4]))
18692 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18693 : STRIP_UNARY (operands[3]))
18694 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18695 : STRIP_UNARY (operands[3])))))
18696 : return -1;
18697 : return 6595; /* *avx512fp16_vpternlogv8hf_2 */
18698 :
18699 : case 3:
18700 : if (!(
18701 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18702 : ((64 == 64 || TARGET_AVX512VL
18703 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18704 : && ix86_pre_reload_split ()
18705 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18706 : STRIP_UNARY (operands[4]))
18707 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18708 : STRIP_UNARY (operands[4]))
18709 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18710 : STRIP_UNARY (operands[3]))
18711 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18712 : STRIP_UNARY (operands[3])))) &&
18713 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18714 : (TARGET_AVX512F)))
18715 : return -1;
18716 : return 6622; /* *avx512bw_vpternlogv32bf_2 */
18717 :
18718 : case 4:
18719 : if (!(
18720 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18721 : ((32 == 64 || TARGET_AVX512VL
18722 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18723 : && ix86_pre_reload_split ()
18724 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18725 : STRIP_UNARY (operands[4]))
18726 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18727 : STRIP_UNARY (operands[4]))
18728 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18729 : STRIP_UNARY (operands[3]))
18730 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18731 : STRIP_UNARY (operands[3])))) &&
18732 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18733 : (TARGET_AVX)))
18734 : return -1;
18735 : return 6649; /* *avx512vl_vpternlogv16bf_2 */
18736 :
18737 : case 5:
18738 : if (!
18739 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18740 : ((16 == 64 || TARGET_AVX512VL
18741 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18742 : && ix86_pre_reload_split ()
18743 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18744 : STRIP_UNARY (operands[4]))
18745 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18746 : STRIP_UNARY (operands[4]))
18747 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18748 : STRIP_UNARY (operands[3]))
18749 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18750 : STRIP_UNARY (operands[3])))))
18751 : return -1;
18752 : return 6676; /* *avx512vl_vpternlogv8bf_2 */
18753 :
18754 : case 6:
18755 : if (!(
18756 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18757 : ((64 == 64 || TARGET_AVX512VL
18758 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18759 : && ix86_pre_reload_split ()
18760 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18761 : STRIP_UNARY (operands[4]))
18762 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18763 : STRIP_UNARY (operands[4]))
18764 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18765 : STRIP_UNARY (operands[3]))
18766 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18767 : STRIP_UNARY (operands[3])))) &&
18768 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18769 : (TARGET_AVX512F)))
18770 : return -1;
18771 : return 6703; /* *avx512f_vpternlogv16sf_2 */
18772 :
18773 : case 7:
18774 : if (!(
18775 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18776 : ((32 == 64 || TARGET_AVX512VL
18777 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18778 : && ix86_pre_reload_split ()
18779 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18780 : STRIP_UNARY (operands[4]))
18781 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18782 : STRIP_UNARY (operands[4]))
18783 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18784 : STRIP_UNARY (operands[3]))
18785 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18786 : STRIP_UNARY (operands[3])))) &&
18787 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18788 : (TARGET_AVX)))
18789 : return -1;
18790 : return 6730; /* *avx512vl_vpternlogv8sf_2 */
18791 :
18792 : case 8:
18793 : if (!
18794 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18795 : ((16 == 64 || TARGET_AVX512VL
18796 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18797 : && ix86_pre_reload_split ()
18798 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18799 : STRIP_UNARY (operands[4]))
18800 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18801 : STRIP_UNARY (operands[4]))
18802 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18803 : STRIP_UNARY (operands[3]))
18804 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18805 : STRIP_UNARY (operands[3])))))
18806 : return -1;
18807 : return 6757; /* *avx512vl_vpternlogv4sf_2 */
18808 :
18809 : case 9:
18810 : if (!(
18811 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18812 : ((64 == 64 || TARGET_AVX512VL
18813 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18814 : && ix86_pre_reload_split ()
18815 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18816 : STRIP_UNARY (operands[4]))
18817 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18818 : STRIP_UNARY (operands[4]))
18819 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18820 : STRIP_UNARY (operands[3]))
18821 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18822 : STRIP_UNARY (operands[3])))) &&
18823 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18824 : (TARGET_AVX512F)))
18825 : return -1;
18826 : return 6784; /* *avx512f_vpternlogv8df_2 */
18827 :
18828 : case 10:
18829 : if (!(
18830 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18831 : ((32 == 64 || TARGET_AVX512VL
18832 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18833 : && ix86_pre_reload_split ()
18834 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18835 : STRIP_UNARY (operands[4]))
18836 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18837 : STRIP_UNARY (operands[4]))
18838 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18839 : STRIP_UNARY (operands[3]))
18840 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18841 : STRIP_UNARY (operands[3])))) &&
18842 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18843 : (TARGET_AVX)))
18844 : return -1;
18845 : return 6811; /* *avx512vl_vpternlogv4df_2 */
18846 :
18847 : case 11:
18848 : if (!(
18849 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18850 : ((16 == 64 || TARGET_AVX512VL
18851 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18852 : && ix86_pre_reload_split ()
18853 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18854 : STRIP_UNARY (operands[4]))
18855 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18856 : STRIP_UNARY (operands[4]))
18857 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18858 : STRIP_UNARY (operands[3]))
18859 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18860 : STRIP_UNARY (operands[3])))) &&
18861 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18862 : (TARGET_SSE2)))
18863 : return -1;
18864 : return 6838; /* *avx512vl_vpternlogv2df_2 */
18865 :
18866 : default:
18867 : return -1;
18868 : }
18869 :
18870 : default:
18871 : return -1;
18872 : }
18873 : }
18874 :
18875 : int
18876 : recog_325 (rtx x1 ATTRIBUTE_UNUSED,
18877 : rtx_insn *insn ATTRIBUTE_UNUSED,
18878 : int *pnum_clobbers ATTRIBUTE_UNUSED)
18879 : {
18880 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
18881 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
18882 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
18883 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
18884 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
18885 : rtx x34, x35, x36, x37, x38, x39, x40, x41;
18886 : rtx x42, x43, x44, x45, x46, x47, x48, x49;
18887 : rtx x50, x51, x52, x53, x54, x55, x56, x57;
18888 : rtx x58, x59, x60, x61, x62, x63, x64, x65;
18889 : rtx x66, x67, x68, x69;
18890 : int res ATTRIBUTE_UNUSED;
18891 : x2 = XEXP (x1, 1);
18892 : x3 = XEXP (x2, 1);
18893 : if (GET_CODE (x3) != PARALLEL)
18894 : return -1;
18895 : x4 = XEXP (x1, 0);
18896 : operands[0] = x4;
18897 : x5 = XEXP (x2, 0);
18898 : switch (GET_CODE (x5))
18899 : {
18900 : case VEC_CONCAT:
18901 : x6 = XEXP (x5, 0);
18902 : switch (GET_CODE (x6))
18903 : {
18904 : case REG:
18905 : case SUBREG:
18906 : case MEM:
18907 : operands[1] = x6;
18908 : res = recog_289 (x1, insn, pnum_clobbers);
18909 : if (res >= 0)
18910 : return res;
18911 : if (XVECLEN (x3, 0) < 1)
18912 : return -1;
18913 : operands[4] = x3;
18914 : switch (pattern816 (x2))
18915 : {
18916 : case 0:
18917 : if (
18918 : #line 24697 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18919 : (TARGET_AVX2))
18920 : return 8833; /* *avx2_zero_extendv16qiv16hi2_2 */
18921 : break;
18922 :
18923 : case 1:
18924 : if (
18925 : #line 24697 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18926 : (TARGET_AVX2))
18927 : return 8834; /* *avx2_zero_extendv16qiv16hi2_2 */
18928 : break;
18929 :
18930 : case 2:
18931 : if (
18932 : #line 24697 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18933 : (TARGET_AVX2))
18934 : return 8835; /* *avx2_zero_extendv16qiv16hi2_2 */
18935 : break;
18936 :
18937 : case 3:
18938 : if (
18939 : #line 24751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18940 : (TARGET_AVX512BW))
18941 : return 8841; /* *avx512bw_zero_extendv32qiv32hi2_2 */
18942 : break;
18943 :
18944 : case 4:
18945 : if (
18946 : #line 24751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18947 : (TARGET_AVX512BW))
18948 : return 8842; /* *avx512bw_zero_extendv32qiv32hi2_2 */
18949 : break;
18950 :
18951 : case 5:
18952 : if (
18953 : #line 24751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18954 : (TARGET_AVX512BW))
18955 : return 8843; /* *avx512bw_zero_extendv32qiv32hi2_2 */
18956 : break;
18957 :
18958 : case 6:
18959 : if (
18960 : #line 24890 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18961 : (TARGET_SSE4_1))
18962 : return 8857; /* *sse4_1_zero_extendv8qiv8hi2_4 */
18963 : break;
18964 :
18965 : case 7:
18966 : if (
18967 : #line 24890 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18968 : (TARGET_SSE4_1))
18969 : return 8858; /* *sse4_1_zero_extendv8qiv8hi2_4 */
18970 : break;
18971 :
18972 : case 8:
18973 : if (
18974 : #line 24890 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18975 : (TARGET_SSE4_1))
18976 : return 8859; /* *sse4_1_zero_extendv8qiv8hi2_4 */
18977 : break;
18978 :
18979 : case 9:
18980 : if (
18981 : #line 25185 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18982 : (TARGET_AVX512F))
18983 : return 8895; /* *avx512f_zero_extendv16hiv16si2_2 */
18984 : break;
18985 :
18986 : case 10:
18987 : if (
18988 : #line 25185 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18989 : (TARGET_AVX512F))
18990 : return 8896; /* *avx512f_zero_extendv16hiv16si2_2 */
18991 : break;
18992 :
18993 : case 11:
18994 : if (
18995 : #line 25185 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18996 : (TARGET_AVX512F))
18997 : return 8897; /* *avx512f_zero_extendv16hiv16si2_2 */
18998 : break;
18999 :
19000 : case 12:
19001 : if (
19002 : #line 25240 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19003 : (TARGET_AVX2))
19004 : return 8903; /* *avx2_zero_extendv8hiv8si2_2 */
19005 : break;
19006 :
19007 : case 13:
19008 : if (
19009 : #line 25240 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19010 : (TARGET_AVX2))
19011 : return 8904; /* *avx2_zero_extendv8hiv8si2_2 */
19012 : break;
19013 :
19014 : case 14:
19015 : if (
19016 : #line 25240 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19017 : (TARGET_AVX2))
19018 : return 8905; /* *avx2_zero_extendv8hiv8si2_2 */
19019 : break;
19020 :
19021 : case 15:
19022 : if (
19023 : #line 25385 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19024 : (TARGET_SSE4_1))
19025 : return 8919; /* *sse4_1_zero_extendv4hiv4si2_4 */
19026 : break;
19027 :
19028 : case 16:
19029 : if (
19030 : #line 25385 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19031 : (TARGET_SSE4_1))
19032 : return 8920; /* *sse4_1_zero_extendv4hiv4si2_4 */
19033 : break;
19034 :
19035 : case 17:
19036 : if (
19037 : #line 25385 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19038 : (TARGET_SSE4_1))
19039 : return 8921; /* *sse4_1_zero_extendv4hiv4si2_4 */
19040 : break;
19041 :
19042 : default:
19043 : break;
19044 : }
19045 : operands[3] = x3;
19046 : switch (pattern817 (x2))
19047 : {
19048 : case 0:
19049 : if (!(
19050 : #line 30107 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19051 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
19052 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19053 : (TARGET_AVX512F)))
19054 : return -1;
19055 : return 9727; /* *vec_concatv64qi_0_1 */
19056 :
19057 : case 1:
19058 : if (!(
19059 : #line 30107 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19060 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
19061 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19062 : (TARGET_AVX)))
19063 : return -1;
19064 : return 9728; /* *vec_concatv32qi_0_1 */
19065 :
19066 : case 2:
19067 : if (!
19068 : #line 30107 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19069 : (TARGET_SSE2 && ix86_pre_reload_split ()))
19070 : return -1;
19071 : return 9729; /* *vec_concatv16qi_0_1 */
19072 :
19073 : case 3:
19074 : if (!(
19075 : #line 30107 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19076 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
19077 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19078 : (TARGET_AVX512F)))
19079 : return -1;
19080 : return 9730; /* *vec_concatv32hi_0_1 */
19081 :
19082 : case 4:
19083 : if (!(
19084 : #line 30107 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19085 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
19086 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19087 : (TARGET_AVX)))
19088 : return -1;
19089 : return 9731; /* *vec_concatv16hi_0_1 */
19090 :
19091 : case 5:
19092 : if (!
19093 : #line 30107 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19094 : (TARGET_SSE2 && ix86_pre_reload_split ()))
19095 : return -1;
19096 : return 9732; /* *vec_concatv8hi_0_1 */
19097 :
19098 : default:
19099 : return -1;
19100 : }
19101 :
19102 : case SS_TRUNCATE:
19103 : x7 = XEXP (x5, 1);
19104 : if (GET_CODE (x7) != SS_TRUNCATE)
19105 : return -1;
19106 : x8 = XEXP (x6, 0);
19107 : operands[1] = x8;
19108 : x9 = XEXP (x7, 0);
19109 : operands[2] = x9;
19110 : switch (XVECLEN (x3, 0))
19111 : {
19112 : case 32:
19113 : if (pattern848 (x3) != 0)
19114 : return -1;
19115 : x10 = XVECEXP (x3, 0, 4);
19116 : if (GET_CODE (x10) != CONST_INT)
19117 : return -1;
19118 : x11 = XVECEXP (x3, 0, 5);
19119 : if (GET_CODE (x11) != CONST_INT)
19120 : return -1;
19121 : x12 = XVECEXP (x3, 0, 6);
19122 : if (GET_CODE (x12) != CONST_INT)
19123 : return -1;
19124 : x13 = XVECEXP (x3, 0, 7);
19125 : if (GET_CODE (x13) != CONST_INT)
19126 : return -1;
19127 : x14 = XVECEXP (x3, 0, 8);
19128 : if (GET_CODE (x14) != CONST_INT)
19129 : return -1;
19130 : x15 = XVECEXP (x3, 0, 9);
19131 : if (GET_CODE (x15) != CONST_INT)
19132 : return -1;
19133 : x16 = XVECEXP (x3, 0, 10);
19134 : if (GET_CODE (x16) != CONST_INT)
19135 : return -1;
19136 : x17 = XVECEXP (x3, 0, 11);
19137 : if (GET_CODE (x17) != CONST_INT
19138 : || pattern1713 (x3,
19139 : 23,
19140 : 22,
19141 : 21,
19142 : 20,
19143 : 8) != 0)
19144 : return -1;
19145 : x18 = XVECEXP (x3, 0, 17);
19146 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
19147 : return -1;
19148 : x19 = XVECEXP (x3, 0, 18);
19149 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
19150 : return -1;
19151 : x20 = XVECEXP (x3, 0, 19);
19152 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 11])
19153 : return -1;
19154 : x21 = XVECEXP (x3, 0, 20);
19155 : if (GET_CODE (x21) != CONST_INT)
19156 : return -1;
19157 : x22 = XVECEXP (x3, 0, 21);
19158 : if (GET_CODE (x22) != CONST_INT)
19159 : return -1;
19160 : x23 = XVECEXP (x3, 0, 22);
19161 : if (GET_CODE (x23) != CONST_INT)
19162 : return -1;
19163 : x24 = XVECEXP (x3, 0, 23);
19164 : if (GET_CODE (x24) != CONST_INT)
19165 : return -1;
19166 : x25 = XVECEXP (x3, 0, 24);
19167 : if (GET_CODE (x25) != CONST_INT)
19168 : return -1;
19169 : x26 = XVECEXP (x3, 0, 25);
19170 : if (GET_CODE (x26) != CONST_INT)
19171 : return -1;
19172 : x27 = XVECEXP (x3, 0, 26);
19173 : if (GET_CODE (x27) != CONST_INT)
19174 : return -1;
19175 : x28 = XVECEXP (x3, 0, 27);
19176 : if (GET_CODE (x28) != CONST_INT
19177 : || pattern1892 (x3,
19178 : 31,
19179 : 30,
19180 : 29,
19181 : 28) != 0)
19182 : return -1;
19183 : switch (XWINT (x10, 0))
19184 : {
19185 : case 4L:
19186 : if (XWINT (x11, 0) != 5L
19187 : || XWINT (x12, 0) != 6L
19188 : || XWINT (x13, 0) != 7L
19189 : || XWINT (x14, 0) != 16L
19190 : || XWINT (x15, 0) != 17L
19191 : || XWINT (x16, 0) != 18L
19192 : || XWINT (x17, 0) != 19L
19193 : || XWINT (x21, 0) != 12L
19194 : || XWINT (x22, 0) != 13L
19195 : || XWINT (x23, 0) != 14L
19196 : || XWINT (x24, 0) != 15L
19197 : || pattern1917 (x3) != 0
19198 : || pattern1847 (x2,
19199 : E_V16HImode,
19200 : E_V16QImode,
19201 : E_V32QImode) != 0
19202 : || !
19203 : #line 19713 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19204 : (TARGET_AVX2 && 1 && 1))
19205 : return -1;
19206 : return 8378; /* avx2_packsswb */
19207 :
19208 : case 16L:
19209 : if (XWINT (x11, 0) != 17L
19210 : || XWINT (x12, 0) != 18L
19211 : || XWINT (x13, 0) != 19L
19212 : || XWINT (x14, 0) != 4L
19213 : || XWINT (x15, 0) != 5L
19214 : || XWINT (x16, 0) != 6L
19215 : || XWINT (x17, 0) != 7L
19216 : || XWINT (x21, 0) != 24L
19217 : || XWINT (x22, 0) != 25L
19218 : || XWINT (x23, 0) != 26L
19219 : || XWINT (x24, 0) != 27L
19220 : || XWINT (x25, 0) != 12L
19221 : || XWINT (x26, 0) != 13L
19222 : || XWINT (x27, 0) != 14L
19223 : || XWINT (x28, 0) != 15L
19224 : || pattern1847 (x2,
19225 : E_V16SImode,
19226 : E_V16HImode,
19227 : E_V32HImode) != 0
19228 : || !
19229 : #line 19829 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19230 : (TARGET_AVX512BW))
19231 : return -1;
19232 : return 8386; /* avx512bw_packssdw */
19233 :
19234 : default:
19235 : return -1;
19236 : }
19237 :
19238 : case 64:
19239 : if (pattern851 (x3,
19240 : 35,
19241 : 34,
19242 : 33,
19243 : 32) != 0
19244 : || pattern1713 (x3,
19245 : 39,
19246 : 38,
19247 : 37,
19248 : 36,
19249 : 8) != 0
19250 : || pattern1832 (x3,
19251 : 13,
19252 : 12,
19253 : 11,
19254 : 10,
19255 : 9) != 0
19256 : || pattern1874 (x3,
19257 : 42,
19258 : 41,
19259 : 40,
19260 : 15,
19261 : 14) != 0)
19262 : return -1;
19263 : x28 = XVECEXP (x3, 0, 27);
19264 : if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 43]
19265 : || pattern1892 (x3,
19266 : 47,
19267 : 46,
19268 : 45,
19269 : 44) != 0)
19270 : return -1;
19271 : x29 = XVECEXP (x3, 0, 32);
19272 : if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
19273 : return -1;
19274 : x30 = XVECEXP (x3, 0, 33);
19275 : if (x30 != const_int_rtx[MAX_SAVED_CONST_INT + 17])
19276 : return -1;
19277 : x31 = XVECEXP (x3, 0, 34);
19278 : if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 18])
19279 : return -1;
19280 : x32 = XVECEXP (x3, 0, 35);
19281 : if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 19])
19282 : return -1;
19283 : x33 = XVECEXP (x3, 0, 36);
19284 : if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 20])
19285 : return -1;
19286 : x34 = XVECEXP (x3, 0, 37);
19287 : if (x34 != const_int_rtx[MAX_SAVED_CONST_INT + 21])
19288 : return -1;
19289 : x35 = XVECEXP (x3, 0, 38);
19290 : if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + 22])
19291 : return -1;
19292 : x36 = XVECEXP (x3, 0, 39);
19293 : if (x36 != const_int_rtx[MAX_SAVED_CONST_INT + 23])
19294 : return -1;
19295 : x37 = XVECEXP (x3, 0, 40);
19296 : if (x37 != const_int_rtx[MAX_SAVED_CONST_INT + 48])
19297 : return -1;
19298 : x38 = XVECEXP (x3, 0, 41);
19299 : if (x38 != const_int_rtx[MAX_SAVED_CONST_INT + 49])
19300 : return -1;
19301 : x39 = XVECEXP (x3, 0, 42);
19302 : if (x39 != const_int_rtx[MAX_SAVED_CONST_INT + 50])
19303 : return -1;
19304 : x40 = XVECEXP (x3, 0, 43);
19305 : if (x40 != const_int_rtx[MAX_SAVED_CONST_INT + 51])
19306 : return -1;
19307 : x41 = XVECEXP (x3, 0, 44);
19308 : if (x41 != const_int_rtx[MAX_SAVED_CONST_INT + 52])
19309 : return -1;
19310 : x42 = XVECEXP (x3, 0, 45);
19311 : if (x42 != const_int_rtx[MAX_SAVED_CONST_INT + 53])
19312 : return -1;
19313 : x43 = XVECEXP (x3, 0, 46);
19314 : if (x43 != const_int_rtx[MAX_SAVED_CONST_INT + 54])
19315 : return -1;
19316 : x44 = XVECEXP (x3, 0, 47);
19317 : if (x44 != const_int_rtx[MAX_SAVED_CONST_INT + 55])
19318 : return -1;
19319 : x45 = XVECEXP (x3, 0, 48);
19320 : if (x45 != const_int_rtx[MAX_SAVED_CONST_INT + 24])
19321 : return -1;
19322 : x46 = XVECEXP (x3, 0, 49);
19323 : if (x46 != const_int_rtx[MAX_SAVED_CONST_INT + 25])
19324 : return -1;
19325 : x47 = XVECEXP (x3, 0, 50);
19326 : if (x47 != const_int_rtx[MAX_SAVED_CONST_INT + 26])
19327 : return -1;
19328 : x48 = XVECEXP (x3, 0, 51);
19329 : if (x48 != const_int_rtx[MAX_SAVED_CONST_INT + 27])
19330 : return -1;
19331 : x49 = XVECEXP (x3, 0, 52);
19332 : if (x49 != const_int_rtx[MAX_SAVED_CONST_INT + 28])
19333 : return -1;
19334 : x50 = XVECEXP (x3, 0, 53);
19335 : if (x50 != const_int_rtx[MAX_SAVED_CONST_INT + 29])
19336 : return -1;
19337 : x51 = XVECEXP (x3, 0, 54);
19338 : if (x51 != const_int_rtx[MAX_SAVED_CONST_INT + 30])
19339 : return -1;
19340 : x52 = XVECEXP (x3, 0, 55);
19341 : if (x52 != const_int_rtx[MAX_SAVED_CONST_INT + 31])
19342 : return -1;
19343 : x53 = XVECEXP (x3, 0, 56);
19344 : if (x53 != const_int_rtx[MAX_SAVED_CONST_INT + 56])
19345 : return -1;
19346 : x54 = XVECEXP (x3, 0, 57);
19347 : if (x54 != const_int_rtx[MAX_SAVED_CONST_INT + 57])
19348 : return -1;
19349 : x55 = XVECEXP (x3, 0, 58);
19350 : if (x55 != const_int_rtx[MAX_SAVED_CONST_INT + 58])
19351 : return -1;
19352 : x56 = XVECEXP (x3, 0, 59);
19353 : if (x56 != const_int_rtx[MAX_SAVED_CONST_INT + 59])
19354 : return -1;
19355 : x57 = XVECEXP (x3, 0, 60);
19356 : if (x57 != const_int_rtx[MAX_SAVED_CONST_INT + 60])
19357 : return -1;
19358 : x58 = XVECEXP (x3, 0, 61);
19359 : if (x58 != const_int_rtx[MAX_SAVED_CONST_INT + 61])
19360 : return -1;
19361 : x59 = XVECEXP (x3, 0, 62);
19362 : if (x59 != const_int_rtx[MAX_SAVED_CONST_INT + 62])
19363 : return -1;
19364 : x60 = XVECEXP (x3, 0, 63);
19365 : if (x60 != const_int_rtx[MAX_SAVED_CONST_INT + 63]
19366 : || pattern1847 (x2,
19367 : E_V32HImode,
19368 : E_V32QImode,
19369 : E_V64QImode) != 0
19370 : || !
19371 : #line 19760 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19372 : (TARGET_AVX512BW))
19373 : return -1;
19374 : return 8380; /* avx512bw_packsswb */
19375 :
19376 : case 16:
19377 : if (pattern849 (x3,
19378 : 10,
19379 : 9,
19380 : 8) != 0
19381 : || pattern1514 (x3,
19382 : 7,
19383 : 6,
19384 : 5,
19385 : 4,
19386 : 11) != 0
19387 : || pattern1847 (x2,
19388 : E_V8SImode,
19389 : E_V8HImode,
19390 : E_V16HImode) != 0
19391 : || !
19392 : #line 19799 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19393 : (TARGET_AVX2 && 1 && 1))
19394 : return -1;
19395 : return 8384; /* avx2_packssdw */
19396 :
19397 : default:
19398 : return -1;
19399 : }
19400 :
19401 : case VEC_CONCAT:
19402 : switch (pattern525 (x2))
19403 : {
19404 : case 0:
19405 : if (!
19406 : #line 25888 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19407 : (TARGET_AVX512F))
19408 : return -1;
19409 : return 8990; /* *avx512f_zero_extendv8siv8di2_2 */
19410 :
19411 : case 1:
19412 : if (!
19413 : #line 25941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19414 : (TARGET_AVX2))
19415 : return -1;
19416 : return 8996; /* *avx2_zero_extendv4siv4di2_2 */
19417 :
19418 : case 2:
19419 : if (!
19420 : #line 26062 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19421 : (TARGET_SSE4_1))
19422 : return -1;
19423 : return 9010; /* *sse4_1_zero_extendv2siv2di2_4 */
19424 :
19425 : default:
19426 : return -1;
19427 : }
19428 :
19429 : default:
19430 : return -1;
19431 : }
19432 :
19433 : case REG:
19434 : case SUBREG:
19435 : case MEM:
19436 : operands[1] = x5;
19437 : res = recog_303 (x1, insn, pnum_clobbers);
19438 : if (res >= 0)
19439 : return res;
19440 : if (GET_CODE (x5) != SUBREG)
19441 : return -1;
19442 : switch (pattern527 (x2))
19443 : {
19444 : case 0:
19445 : if (!
19446 : #line 15437 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19447 : (TARGET_AVX512BW && ix86_pre_reload_split ()))
19448 : return -1;
19449 : return 7279; /* *avx512bw_permvar_truncv16siv16hi_1_hf */
19450 :
19451 : case 1:
19452 : if (!
19453 : #line 15490 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19454 : (TARGET_AVX512VL && TARGET_AVX512BW && ix86_pre_reload_split ()))
19455 : return -1;
19456 : return 7281; /* *avx512f_permvar_truncv8siv8hi_1_hf */
19457 :
19458 : default:
19459 : return -1;
19460 : }
19461 :
19462 : case UNSPEC:
19463 : switch (XVECLEN (x5, 0))
19464 : {
19465 : case 2:
19466 : switch (pattern529 (x2))
19467 : {
19468 : case 0:
19469 : if (!
19470 : #line 15412 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19471 : (TARGET_AVX512BW && ix86_pre_reload_split ()))
19472 : return -1;
19473 : return 7278; /* *avx512bw_permvar_truncv16siv16hi_1 */
19474 :
19475 : case 1:
19476 : if (!
19477 : #line 15674 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19478 : (TARGET_AVX512VL && TARGET_AVX512VBMI
19479 : && ix86_pre_reload_split ()))
19480 : return -1;
19481 : return 7311; /* *avx512f_permvar_truncv16hiv16qi_1 */
19482 :
19483 : case 2:
19484 : if (!
19485 : #line 15469 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19486 : (TARGET_AVX512VL && TARGET_AVX512BW && ix86_pre_reload_split ()))
19487 : return -1;
19488 : return 7280; /* *avx512f_permvar_truncv8siv8hi_1 */
19489 :
19490 : case 3:
19491 : if (!
19492 : #line 15521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19493 : (TARGET_AVX512F && ix86_pre_reload_split ()))
19494 : return -1;
19495 : return 7282; /* *avx512f_vpermvar_truncv8div8si_1 */
19496 :
19497 : case 4:
19498 : if (!
19499 : #line 15593 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19500 : (TARGET_AVX512VBMI && ix86_pre_reload_split ()))
19501 : return -1;
19502 : return 7298; /* *avx512f_permvar_truncv32hiv32qi_1 */
19503 :
19504 : case 5:
19505 : if (!
19506 : #line 15693 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19507 : (TARGET_AVX512VL && ix86_pre_reload_split ()))
19508 : return -1;
19509 : return 7312; /* *avx512f_permvar_truncv4div4si_1 */
19510 :
19511 : default:
19512 : return -1;
19513 : }
19514 :
19515 : case 1:
19516 : if (XINT (x5, 1) != 150
19517 : || GET_MODE (x5) != E_V8SFmode
19518 : || XVECLEN (x3, 0) != 4
19519 : || pattern848 (x3) != 0
19520 : || !register_operand (operands[0], E_V4SFmode)
19521 : || GET_MODE (x2) != E_V4SFmode)
19522 : return -1;
19523 : x61 = XVECEXP (x5, 0, 0);
19524 : operands[1] = x61;
19525 : if (!register_operand (operands[1], E_V8HImode)
19526 : || !
19527 : #line 30124 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19528 : (TARGET_F16C || TARGET_AVX512VL))
19529 : return -1;
19530 : return 9751; /* vcvtph2ps */
19531 :
19532 : case 4:
19533 : if (pnum_clobbers == NULL
19534 : || XINT (x5, 1) != 154)
19535 : return -1;
19536 : x62 = XVECEXP (x5, 0, 1);
19537 : if (GET_CODE (x62) != MEM)
19538 : return -1;
19539 : x63 = XEXP (x62, 0);
19540 : if (GET_CODE (x63) != UNSPEC
19541 : || XVECLEN (x63, 0) != 3
19542 : || XINT (x63, 1) != 155)
19543 : return -1;
19544 : x64 = XVECEXP (x5, 0, 2);
19545 : if (GET_CODE (x64) != MEM
19546 : || GET_MODE (x64) != E_BLKmode)
19547 : return -1;
19548 : x65 = XEXP (x64, 0);
19549 : if (GET_CODE (x65) != SCRATCH
19550 : || XVECLEN (x3, 0) != 4
19551 : || pattern848 (x3) != 0)
19552 : return -1;
19553 : x66 = XVECEXP (x63, 0, 1);
19554 : if (!register_operand (x66, E_V4DImode))
19555 : return -1;
19556 : x67 = XVECEXP (x63, 0, 2);
19557 : if (!const1248_operand (x67, E_SImode))
19558 : return -1;
19559 : x61 = XVECEXP (x5, 0, 0);
19560 : switch (GET_CODE (x61))
19561 : {
19562 : case REG:
19563 : case SUBREG:
19564 : operands[2] = x61;
19565 : operands[7] = x62;
19566 : x68 = XVECEXP (x63, 0, 0);
19567 : operands[3] = x68;
19568 : operands[4] = x66;
19569 : operands[6] = x67;
19570 : x69 = XVECEXP (x5, 0, 3);
19571 : operands[5] = x69;
19572 : switch (GET_MODE (operands[0]))
19573 : {
19574 : case E_V4SImode:
19575 : switch (pattern1869 (x2,
19576 : E_V4SImode,
19577 : E_SImode,
19578 : E_V8SImode))
19579 : {
19580 : case 0:
19581 : if (!(
19582 : #line 30451 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19583 : (TARGET_AVX2) &&
19584 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
19585 : (Pmode == SImode)))
19586 : return -1;
19587 : *pnum_clobbers = 1;
19588 : return 9838; /* *avx2_gatherdiv8si_3 */
19589 :
19590 : case 1:
19591 : if (!(
19592 : #line 30451 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19593 : (TARGET_AVX2) &&
19594 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
19595 : (Pmode == DImode)))
19596 : return -1;
19597 : *pnum_clobbers = 1;
19598 : return 9840; /* *avx2_gatherdiv8si_3 */
19599 :
19600 : default:
19601 : return -1;
19602 : }
19603 :
19604 : case E_V4SFmode:
19605 : switch (pattern1869 (x2,
19606 : E_V4SFmode,
19607 : E_SFmode,
19608 : E_V8SFmode))
19609 : {
19610 : case 0:
19611 : if (!(
19612 : #line 30451 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19613 : (TARGET_AVX2) &&
19614 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
19615 : (Pmode == SImode)))
19616 : return -1;
19617 : *pnum_clobbers = 1;
19618 : return 9839; /* *avx2_gatherdiv8sf_3 */
19619 :
19620 : case 1:
19621 : if (!(
19622 : #line 30451 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19623 : (TARGET_AVX2) &&
19624 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
19625 : (Pmode == DImode)))
19626 : return -1;
19627 : *pnum_clobbers = 1;
19628 : return 9841; /* *avx2_gatherdiv8sf_3 */
19629 :
19630 : default:
19631 : return -1;
19632 : }
19633 :
19634 : default:
19635 : return -1;
19636 : }
19637 :
19638 : case PC:
19639 : operands[6] = x62;
19640 : x68 = XVECEXP (x63, 0, 0);
19641 : operands[2] = x68;
19642 : operands[3] = x66;
19643 : operands[5] = x67;
19644 : x69 = XVECEXP (x5, 0, 3);
19645 : operands[4] = x69;
19646 : switch (GET_MODE (operands[0]))
19647 : {
19648 : case E_V4SImode:
19649 : switch (pattern1863 (x2,
19650 : E_V4SImode,
19651 : E_SImode,
19652 : E_V8SImode))
19653 : {
19654 : case 0:
19655 : if (!(
19656 : #line 30475 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19657 : (TARGET_AVX2) &&
19658 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
19659 : (Pmode == SImode)))
19660 : return -1;
19661 : *pnum_clobbers = 1;
19662 : return 9842; /* *avx2_gatherdiv8si_4 */
19663 :
19664 : case 1:
19665 : if (!(
19666 : #line 30475 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19667 : (TARGET_AVX2) &&
19668 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
19669 : (Pmode == DImode)))
19670 : return -1;
19671 : *pnum_clobbers = 1;
19672 : return 9844; /* *avx2_gatherdiv8si_4 */
19673 :
19674 : default:
19675 : return -1;
19676 : }
19677 :
19678 : case E_V4SFmode:
19679 : switch (pattern1863 (x2,
19680 : E_V4SFmode,
19681 : E_SFmode,
19682 : E_V8SFmode))
19683 : {
19684 : case 0:
19685 : if (!(
19686 : #line 30475 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19687 : (TARGET_AVX2) &&
19688 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
19689 : (Pmode == SImode)))
19690 : return -1;
19691 : *pnum_clobbers = 1;
19692 : return 9843; /* *avx2_gatherdiv8sf_4 */
19693 :
19694 : case 1:
19695 : if (!(
19696 : #line 30475 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19697 : (TARGET_AVX2) &&
19698 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
19699 : (Pmode == DImode)))
19700 : return -1;
19701 : *pnum_clobbers = 1;
19702 : return 9845; /* *avx2_gatherdiv8sf_4 */
19703 :
19704 : default:
19705 : return -1;
19706 : }
19707 :
19708 : default:
19709 : return -1;
19710 : }
19711 :
19712 : default:
19713 : return -1;
19714 : }
19715 :
19716 : default:
19717 : return -1;
19718 : }
19719 :
19720 : default:
19721 : return -1;
19722 : }
19723 : }
19724 :
19725 : int
19726 : recog_329 (rtx x1 ATTRIBUTE_UNUSED,
19727 : rtx_insn *insn ATTRIBUTE_UNUSED,
19728 : int *pnum_clobbers ATTRIBUTE_UNUSED)
19729 : {
19730 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
19731 : rtx x2;
19732 : int res ATTRIBUTE_UNUSED;
19733 : x2 = XEXP (x1, 1);
19734 : operands[1] = x2;
19735 : switch (GET_MODE (operands[0]))
19736 : {
19737 : case E_V64QImode:
19738 : if (nonimmediate_operand (operands[0], E_V64QImode)
19739 : && nonimmediate_or_sse_const_operand (operands[1], E_V64QImode)
19740 : && (
19741 : #line 1489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19742 : (TARGET_SSE
19743 : && (register_operand (operands[0], V64QImode)
19744 : || register_operand (operands[1], V64QImode))
19745 : && ix86_hardreg_mov_ok (operands[0], operands[1])) &&
19746 : #line 287 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19747 : (TARGET_AVX512F)))
19748 : return 2449; /* movv64qi_internal */
19749 : if (!register_operand (operands[0], E_V64QImode)
19750 : || !ternlog_operand (operands[1], E_V64QImode)
19751 : || !(
19752 : #line 14148 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19753 : ((64 == 64 || TARGET_AVX512VL
19754 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19755 : && ix86_pre_reload_split ()) &&
19756 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19757 : (TARGET_AVX512F)))
19758 : return -1;
19759 : return 5520; /* *avx512bw_vpternlogv64qi_0 */
19760 :
19761 : case E_V32QImode:
19762 : if (nonimmediate_operand (operands[0], E_V32QImode)
19763 : && nonimmediate_or_sse_const_operand (operands[1], E_V32QImode)
19764 : && (
19765 : #line 1489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19766 : (TARGET_SSE
19767 : && (register_operand (operands[0], V32QImode)
19768 : || register_operand (operands[1], V32QImode))
19769 : && ix86_hardreg_mov_ok (operands[0], operands[1])) &&
19770 : #line 287 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19771 : (TARGET_AVX)))
19772 : return 2450; /* movv32qi_internal */
19773 : if (!register_operand (operands[0], E_V32QImode)
19774 : || !ternlog_operand (operands[1], E_V32QImode)
19775 : || !(
19776 : #line 14148 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19777 : ((32 == 64 || TARGET_AVX512VL
19778 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19779 : && ix86_pre_reload_split ()) &&
19780 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19781 : (TARGET_AVX)))
19782 : return -1;
19783 : return 5521; /* *avx512vl_vpternlogv32qi_0 */
19784 :
19785 : case E_V16QImode:
19786 : if (nonimmediate_operand (operands[0], E_V16QImode)
19787 : && nonimmediate_or_sse_const_operand (operands[1], E_V16QImode)
19788 : &&
19789 : #line 1489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19790 : (TARGET_SSE
19791 : && (register_operand (operands[0], V16QImode)
19792 : || register_operand (operands[1], V16QImode))
19793 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
19794 : return 2451; /* movv16qi_internal */
19795 : if (!register_operand (operands[0], E_V16QImode)
19796 : || !ternlog_operand (operands[1], E_V16QImode)
19797 : || !
19798 : #line 14148 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19799 : ((16 == 64 || TARGET_AVX512VL
19800 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19801 : && ix86_pre_reload_split ()))
19802 : return -1;
19803 : return 5522; /* *avx512vl_vpternlogv16qi_0 */
19804 :
19805 : case E_V32HImode:
19806 : if (nonimmediate_operand (operands[0], E_V32HImode)
19807 : && nonimmediate_or_sse_const_operand (operands[1], E_V32HImode)
19808 : && (
19809 : #line 1489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19810 : (TARGET_SSE
19811 : && (register_operand (operands[0], V32HImode)
19812 : || register_operand (operands[1], V32HImode))
19813 : && ix86_hardreg_mov_ok (operands[0], operands[1])) &&
19814 : #line 288 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19815 : (TARGET_AVX512F)))
19816 : return 2452; /* movv32hi_internal */
19817 : if (!register_operand (operands[0], E_V32HImode)
19818 : || !ternlog_operand (operands[1], E_V32HImode)
19819 : || !(
19820 : #line 14148 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19821 : ((64 == 64 || TARGET_AVX512VL
19822 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19823 : && ix86_pre_reload_split ()) &&
19824 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19825 : (TARGET_AVX512F)))
19826 : return -1;
19827 : return 5523; /* *avx512bw_vpternlogv32hi_0 */
19828 :
19829 : case E_V16HImode:
19830 : if (nonimmediate_operand (operands[0], E_V16HImode)
19831 : && nonimmediate_or_sse_const_operand (operands[1], E_V16HImode)
19832 : && (
19833 : #line 1489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19834 : (TARGET_SSE
19835 : && (register_operand (operands[0], V16HImode)
19836 : || register_operand (operands[1], V16HImode))
19837 : && ix86_hardreg_mov_ok (operands[0], operands[1])) &&
19838 : #line 288 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19839 : (TARGET_AVX)))
19840 : return 2453; /* movv16hi_internal */
19841 : if (!register_operand (operands[0], E_V16HImode)
19842 : || !ternlog_operand (operands[1], E_V16HImode)
19843 : || !(
19844 : #line 14148 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19845 : ((32 == 64 || TARGET_AVX512VL
19846 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19847 : && ix86_pre_reload_split ()) &&
19848 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19849 : (TARGET_AVX)))
19850 : return -1;
19851 : return 5524; /* *avx512vl_vpternlogv16hi_0 */
19852 :
19853 : case E_V8HImode:
19854 : if (nonimmediate_operand (operands[0], E_V8HImode)
19855 : && nonimmediate_or_sse_const_operand (operands[1], E_V8HImode)
19856 : &&
19857 : #line 1489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19858 : (TARGET_SSE
19859 : && (register_operand (operands[0], V8HImode)
19860 : || register_operand (operands[1], V8HImode))
19861 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
19862 : return 2454; /* movv8hi_internal */
19863 : if (!register_operand (operands[0], E_V8HImode)
19864 : || !ternlog_operand (operands[1], E_V8HImode)
19865 : || !
19866 : #line 14148 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19867 : ((16 == 64 || TARGET_AVX512VL
19868 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19869 : && ix86_pre_reload_split ()))
19870 : return -1;
19871 : return 5525; /* *avx512vl_vpternlogv8hi_0 */
19872 :
19873 : case E_V16SImode:
19874 : if (nonimmediate_operand (operands[0], E_V16SImode)
19875 : && nonimmediate_or_sse_const_operand (operands[1], E_V16SImode)
19876 : && (
19877 : #line 1489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19878 : (TARGET_SSE
19879 : && (register_operand (operands[0], V16SImode)
19880 : || register_operand (operands[1], V16SImode))
19881 : && ix86_hardreg_mov_ok (operands[0], operands[1])) &&
19882 : #line 289 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19883 : (TARGET_AVX512F)))
19884 : return 2455; /* movv16si_internal */
19885 : if (!register_operand (operands[0], E_V16SImode)
19886 : || !ternlog_operand (operands[1], E_V16SImode)
19887 : || !(
19888 : #line 14148 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19889 : ((64 == 64 || TARGET_AVX512VL
19890 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19891 : && ix86_pre_reload_split ()) &&
19892 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19893 : (TARGET_AVX512F)))
19894 : return -1;
19895 : return 5526; /* *avx512f_vpternlogv16si_0 */
19896 :
19897 : case E_V8SImode:
19898 : if (nonimmediate_operand (operands[0], E_V8SImode)
19899 : && nonimmediate_or_sse_const_operand (operands[1], E_V8SImode)
19900 : && (
19901 : #line 1489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19902 : (TARGET_SSE
19903 : && (register_operand (operands[0], V8SImode)
19904 : || register_operand (operands[1], V8SImode))
19905 : && ix86_hardreg_mov_ok (operands[0], operands[1])) &&
19906 : #line 289 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19907 : (TARGET_AVX)))
19908 : return 2456; /* movv8si_internal */
19909 : if (!register_operand (operands[0], E_V8SImode)
19910 : || !ternlog_operand (operands[1], E_V8SImode)
19911 : || !(
19912 : #line 14148 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19913 : ((32 == 64 || TARGET_AVX512VL
19914 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19915 : && ix86_pre_reload_split ()) &&
19916 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19917 : (TARGET_AVX)))
19918 : return -1;
19919 : return 5527; /* *avx512vl_vpternlogv8si_0 */
19920 :
19921 : case E_V4SImode:
19922 : if (nonimmediate_operand (operands[0], E_V4SImode)
19923 : && nonimmediate_or_sse_const_operand (operands[1], E_V4SImode)
19924 : &&
19925 : #line 1489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19926 : (TARGET_SSE
19927 : && (register_operand (operands[0], V4SImode)
19928 : || register_operand (operands[1], V4SImode))
19929 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
19930 : return 2457; /* movv4si_internal */
19931 : if (!register_operand (operands[0], E_V4SImode)
19932 : || !ternlog_operand (operands[1], E_V4SImode)
19933 : || !
19934 : #line 14148 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19935 : ((16 == 64 || TARGET_AVX512VL
19936 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19937 : && ix86_pre_reload_split ()))
19938 : return -1;
19939 : return 5528; /* *avx512vl_vpternlogv4si_0 */
19940 :
19941 : case E_V8DImode:
19942 : if (nonimmediate_operand (operands[0], E_V8DImode)
19943 : && nonimmediate_or_sse_const_operand (operands[1], E_V8DImode)
19944 : && (
19945 : #line 1489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19946 : (TARGET_SSE
19947 : && (register_operand (operands[0], V8DImode)
19948 : || register_operand (operands[1], V8DImode))
19949 : && ix86_hardreg_mov_ok (operands[0], operands[1])) &&
19950 : #line 290 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19951 : (TARGET_AVX512F)))
19952 : return 2458; /* movv8di_internal */
19953 : if (!register_operand (operands[0], E_V8DImode)
19954 : || !ternlog_operand (operands[1], E_V8DImode)
19955 : || !(
19956 : #line 14148 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19957 : ((64 == 64 || TARGET_AVX512VL
19958 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19959 : && ix86_pre_reload_split ()) &&
19960 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19961 : (TARGET_AVX512F)))
19962 : return -1;
19963 : return 5529; /* *avx512f_vpternlogv8di_0 */
19964 :
19965 : case E_V4DImode:
19966 : if (nonimmediate_operand (operands[0], E_V4DImode)
19967 : && nonimmediate_or_sse_const_operand (operands[1], E_V4DImode)
19968 : && (
19969 : #line 1489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19970 : (TARGET_SSE
19971 : && (register_operand (operands[0], V4DImode)
19972 : || register_operand (operands[1], V4DImode))
19973 : && ix86_hardreg_mov_ok (operands[0], operands[1])) &&
19974 : #line 290 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19975 : (TARGET_AVX)))
19976 : return 2459; /* movv4di_internal */
19977 : if (!register_operand (operands[0], E_V4DImode)
19978 : || !ternlog_operand (operands[1], E_V4DImode)
19979 : || !(
19980 : #line 14148 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19981 : ((32 == 64 || TARGET_AVX512VL
19982 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19983 : && ix86_pre_reload_split ()) &&
19984 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19985 : (TARGET_AVX)))
19986 : return -1;
19987 : return 5530; /* *avx512vl_vpternlogv4di_0 */
19988 :
19989 : case E_V2DImode:
19990 : if (nonimmediate_operand (operands[0], E_V2DImode)
19991 : && nonimmediate_or_sse_const_operand (operands[1], E_V2DImode)
19992 : &&
19993 : #line 1489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19994 : (TARGET_SSE
19995 : && (register_operand (operands[0], V2DImode)
19996 : || register_operand (operands[1], V2DImode))
19997 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
19998 : return 2460; /* movv2di_internal */
19999 : if (!register_operand (operands[0], E_V2DImode)
20000 : || !ternlog_operand (operands[1], E_V2DImode)
20001 : || !
20002 : #line 14148 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20003 : ((16 == 64 || TARGET_AVX512VL
20004 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20005 : && ix86_pre_reload_split ()))
20006 : return -1;
20007 : return 5531; /* *avx512vl_vpternlogv2di_0 */
20008 :
20009 : case E_V4TImode:
20010 : if (!nonimmediate_operand (operands[0], E_V4TImode)
20011 : || !nonimmediate_or_sse_const_operand (operands[1], E_V4TImode)
20012 : || !(
20013 : #line 1489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20014 : (TARGET_SSE
20015 : && (register_operand (operands[0], V4TImode)
20016 : || register_operand (operands[1], V4TImode))
20017 : && ix86_hardreg_mov_ok (operands[0], operands[1])) &&
20018 : #line 291 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20019 : (TARGET_AVX512F)))
20020 : return -1;
20021 : return 2461; /* movv4ti_internal */
20022 :
20023 : case E_V2TImode:
20024 : if (!nonimmediate_operand (operands[0], E_V2TImode)
20025 : || !nonimmediate_or_sse_const_operand (operands[1], E_V2TImode)
20026 : || !(
20027 : #line 1489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20028 : (TARGET_SSE
20029 : && (register_operand (operands[0], V2TImode)
20030 : || register_operand (operands[1], V2TImode))
20031 : && ix86_hardreg_mov_ok (operands[0], operands[1])) &&
20032 : #line 291 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20033 : (TARGET_AVX)))
20034 : return -1;
20035 : return 2462; /* movv2ti_internal */
20036 :
20037 : case E_V1TImode:
20038 : if (!nonimmediate_operand (operands[0], E_V1TImode)
20039 : || !nonimmediate_or_sse_const_operand (operands[1], E_V1TImode)
20040 : || !
20041 : #line 1489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20042 : (TARGET_SSE
20043 : && (register_operand (operands[0], V1TImode)
20044 : || register_operand (operands[1], V1TImode))
20045 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
20046 : return -1;
20047 : return 2463; /* movv1ti_internal */
20048 :
20049 : case E_V32HFmode:
20050 : if (!nonimmediate_operand (operands[0], E_V32HFmode)
20051 : || !nonimmediate_or_sse_const_operand (operands[1], E_V32HFmode)
20052 : || !(
20053 : #line 1489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20054 : (TARGET_SSE
20055 : && (register_operand (operands[0], V32HFmode)
20056 : || register_operand (operands[1], V32HFmode))
20057 : && ix86_hardreg_mov_ok (operands[0], operands[1])) &&
20058 : #line 292 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20059 : (TARGET_AVX512F)))
20060 : return -1;
20061 : return 2464; /* movv32hf_internal */
20062 :
20063 : case E_V16HFmode:
20064 : if (!nonimmediate_operand (operands[0], E_V16HFmode)
20065 : || !nonimmediate_or_sse_const_operand (operands[1], E_V16HFmode)
20066 : || !(
20067 : #line 1489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20068 : (TARGET_SSE
20069 : && (register_operand (operands[0], V16HFmode)
20070 : || register_operand (operands[1], V16HFmode))
20071 : && ix86_hardreg_mov_ok (operands[0], operands[1])) &&
20072 : #line 292 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20073 : (TARGET_AVX)))
20074 : return -1;
20075 : return 2465; /* movv16hf_internal */
20076 :
20077 : case E_V8HFmode:
20078 : if (!nonimmediate_operand (operands[0], E_V8HFmode)
20079 : || !nonimmediate_or_sse_const_operand (operands[1], E_V8HFmode)
20080 : || !
20081 : #line 1489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20082 : (TARGET_SSE
20083 : && (register_operand (operands[0], V8HFmode)
20084 : || register_operand (operands[1], V8HFmode))
20085 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
20086 : return -1;
20087 : return 2466; /* movv8hf_internal */
20088 :
20089 : case E_V32BFmode:
20090 : if (!nonimmediate_operand (operands[0], E_V32BFmode)
20091 : || !nonimmediate_or_sse_const_operand (operands[1], E_V32BFmode)
20092 : || !(
20093 : #line 1489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20094 : (TARGET_SSE
20095 : && (register_operand (operands[0], V32BFmode)
20096 : || register_operand (operands[1], V32BFmode))
20097 : && ix86_hardreg_mov_ok (operands[0], operands[1])) &&
20098 : #line 293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20099 : (TARGET_AVX512F)))
20100 : return -1;
20101 : return 2467; /* movv32bf_internal */
20102 :
20103 : case E_V16BFmode:
20104 : if (!nonimmediate_operand (operands[0], E_V16BFmode)
20105 : || !nonimmediate_or_sse_const_operand (operands[1], E_V16BFmode)
20106 : || !(
20107 : #line 1489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20108 : (TARGET_SSE
20109 : && (register_operand (operands[0], V16BFmode)
20110 : || register_operand (operands[1], V16BFmode))
20111 : && ix86_hardreg_mov_ok (operands[0], operands[1])) &&
20112 : #line 293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20113 : (TARGET_AVX)))
20114 : return -1;
20115 : return 2468; /* movv16bf_internal */
20116 :
20117 : case E_V8BFmode:
20118 : if (!nonimmediate_operand (operands[0], E_V8BFmode)
20119 : || !nonimmediate_or_sse_const_operand (operands[1], E_V8BFmode)
20120 : || !
20121 : #line 1489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20122 : (TARGET_SSE
20123 : && (register_operand (operands[0], V8BFmode)
20124 : || register_operand (operands[1], V8BFmode))
20125 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
20126 : return -1;
20127 : return 2469; /* movv8bf_internal */
20128 :
20129 : case E_V16SFmode:
20130 : if (!nonimmediate_operand (operands[0], E_V16SFmode)
20131 : || !nonimmediate_or_sse_const_operand (operands[1], E_V16SFmode)
20132 : || !(
20133 : #line 1489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20134 : (TARGET_SSE
20135 : && (register_operand (operands[0], V16SFmode)
20136 : || register_operand (operands[1], V16SFmode))
20137 : && ix86_hardreg_mov_ok (operands[0], operands[1])) &&
20138 : #line 294 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20139 : (TARGET_AVX512F)))
20140 : return -1;
20141 : return 2470; /* movv16sf_internal */
20142 :
20143 : case E_V8SFmode:
20144 : if (!nonimmediate_operand (operands[0], E_V8SFmode)
20145 : || !nonimmediate_or_sse_const_operand (operands[1], E_V8SFmode)
20146 : || !(
20147 : #line 1489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20148 : (TARGET_SSE
20149 : && (register_operand (operands[0], V8SFmode)
20150 : || register_operand (operands[1], V8SFmode))
20151 : && ix86_hardreg_mov_ok (operands[0], operands[1])) &&
20152 : #line 294 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20153 : (TARGET_AVX)))
20154 : return -1;
20155 : return 2471; /* movv8sf_internal */
20156 :
20157 : case E_V4SFmode:
20158 : if (!nonimmediate_operand (operands[0], E_V4SFmode)
20159 : || !nonimmediate_or_sse_const_operand (operands[1], E_V4SFmode)
20160 : || !
20161 : #line 1489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20162 : (TARGET_SSE
20163 : && (register_operand (operands[0], V4SFmode)
20164 : || register_operand (operands[1], V4SFmode))
20165 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
20166 : return -1;
20167 : return 2472; /* movv4sf_internal */
20168 :
20169 : case E_V8DFmode:
20170 : if (!nonimmediate_operand (operands[0], E_V8DFmode)
20171 : || !nonimmediate_or_sse_const_operand (operands[1], E_V8DFmode)
20172 : || !(
20173 : #line 1489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20174 : (TARGET_SSE
20175 : && (register_operand (operands[0], V8DFmode)
20176 : || register_operand (operands[1], V8DFmode))
20177 : && ix86_hardreg_mov_ok (operands[0], operands[1])) &&
20178 : #line 295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20179 : (TARGET_AVX512F)))
20180 : return -1;
20181 : return 2473; /* movv8df_internal */
20182 :
20183 : case E_V4DFmode:
20184 : if (!nonimmediate_operand (operands[0], E_V4DFmode)
20185 : || !nonimmediate_or_sse_const_operand (operands[1], E_V4DFmode)
20186 : || !(
20187 : #line 1489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20188 : (TARGET_SSE
20189 : && (register_operand (operands[0], V4DFmode)
20190 : || register_operand (operands[1], V4DFmode))
20191 : && ix86_hardreg_mov_ok (operands[0], operands[1])) &&
20192 : #line 295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20193 : (TARGET_AVX)))
20194 : return -1;
20195 : return 2474; /* movv4df_internal */
20196 :
20197 : case E_V2DFmode:
20198 : if (!nonimmediate_operand (operands[0], E_V2DFmode)
20199 : || !nonimmediate_or_sse_const_operand (operands[1], E_V2DFmode)
20200 : || !
20201 : #line 1489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20202 : (TARGET_SSE
20203 : && (register_operand (operands[0], V2DFmode)
20204 : || register_operand (operands[1], V2DFmode))
20205 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
20206 : return -1;
20207 : return 2475; /* movv2df_internal */
20208 :
20209 : default:
20210 : return -1;
20211 : }
20212 : }
20213 :
20214 : int
20215 : recog_338 (rtx x1 ATTRIBUTE_UNUSED,
20216 : rtx_insn *insn ATTRIBUTE_UNUSED,
20217 : int *pnum_clobbers ATTRIBUTE_UNUSED)
20218 : {
20219 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
20220 : rtx x2, x3, x4, x5, x6, x7;
20221 : int res ATTRIBUTE_UNUSED;
20222 : switch (pattern35 (x1))
20223 : {
20224 : case 0:
20225 : if (!
20226 : #line 24661 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20227 : (TARGET_AVX2 && 1 && 1))
20228 : return -1;
20229 : return 8830; /* avx2_zero_extendv16qiv16hi2 */
20230 :
20231 : case 1:
20232 : if (!
20233 : #line 24716 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20234 : (TARGET_AVX512BW))
20235 : return -1;
20236 : return 8838; /* avx512bw_zero_extendv32qiv32hi2 */
20237 :
20238 : case 2:
20239 : if (!
20240 : #line 24788 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20241 : (TARGET_SSE4_1 && 1 && 1))
20242 : return -1;
20243 : return 8850; /* *sse4_1_zero_extendv8qiv8hi2_1 */
20244 :
20245 : case 3:
20246 : if (!
20247 : #line 24940 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20248 : (TARGET_AVX512F))
20249 : return -1;
20250 : return 8862; /* *avx512f_zero_extendv16qiv16si2 */
20251 :
20252 : case 4:
20253 : if (!
20254 : #line 25144 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20255 : (TARGET_AVX512F))
20256 : return -1;
20257 : return 8892; /* avx512f_zero_extendv16hiv16si2 */
20258 :
20259 : case 5:
20260 : if (!
20261 : #line 24974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20262 : (TARGET_AVX2 && 1))
20263 : return -1;
20264 : return 8870; /* *avx2_zero_extendv8qiv8si2_1 */
20265 :
20266 : case 6:
20267 : if (!
20268 : #line 25198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20269 : (TARGET_AVX2 && 1))
20270 : return -1;
20271 : return 8900; /* avx2_zero_extendv8hiv8si2 */
20272 :
20273 : case 7:
20274 : if (!
20275 : #line 25064 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20276 : (TARGET_SSE4_1 && 1))
20277 : return -1;
20278 : return 8882; /* *sse4_1_zero_extendv4qiv4si2_1 */
20279 :
20280 : case 8:
20281 : if (!
20282 : #line 25270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20283 : (TARGET_SSE4_1 && 1))
20284 : return -1;
20285 : return 8912; /* *sse4_1_zero_extendv4hiv4si2_1 */
20286 :
20287 : case 9:
20288 : if (!
20289 : #line 25428 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20290 : (TARGET_AVX512F))
20291 : return -1;
20292 : return 8928; /* *avx512f_zero_extendv8qiv8di2_1 */
20293 :
20294 : case 10:
20295 : if (!
20296 : #line 25659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20297 : (TARGET_AVX512F))
20298 : return -1;
20299 : return 8959; /* avx512f_zero_extendv8hiv8di2 */
20300 :
20301 : case 11:
20302 : if (!
20303 : #line 25854 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20304 : (TARGET_AVX512F))
20305 : return -1;
20306 : return 8987; /* avx512f_zero_extendv8siv8di2 */
20307 :
20308 : case 12:
20309 : if (!
20310 : #line 25514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20311 : (TARGET_AVX2 && 1))
20312 : return -1;
20313 : return 8940; /* *avx2_zero_extendv4qiv4di2_1 */
20314 :
20315 : case 13:
20316 : if (!
20317 : #line 25691 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20318 : (TARGET_AVX2 && 1))
20319 : return -1;
20320 : return 8967; /* *avx2_zero_extendv4hiv4di2_1 */
20321 :
20322 : case 14:
20323 : if (!
20324 : #line 25906 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20325 : (TARGET_AVX2 && 1))
20326 : return -1;
20327 : return 8993; /* avx2_zero_extendv4siv4di2 */
20328 :
20329 : case 15:
20330 : if (!
20331 : #line 25607 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20332 : (TARGET_SSE4_1 && 1))
20333 : return -1;
20334 : return 8952; /* *sse4_1_zero_extendv2qiv2di2_1 */
20335 :
20336 : case 16:
20337 : if (!
20338 : #line 25776 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20339 : (TARGET_SSE4_1 && 1))
20340 : return -1;
20341 : return 8979; /* *sse4_1_zero_extendv2hiv2di2_1 */
20342 :
20343 : case 17:
20344 : if (!
20345 : #line 25974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20346 : (TARGET_SSE4_1 && 1))
20347 : return -1;
20348 : return 9003; /* *sse4_1_zero_extendv2siv2di2_1 */
20349 :
20350 : case 18:
20351 : x2 = XEXP (x1, 1);
20352 : x3 = XEXP (x2, 0);
20353 : x4 = XEXP (x3, 0);
20354 : operands[1] = x4;
20355 : switch (pattern547 (x2))
20356 : {
20357 : case 0:
20358 : if (
20359 : #line 24775 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20360 : (TARGET_SSE4_1 && 1 && 1))
20361 : return 8846; /* sse4_1_zero_extendv8qiv8hi2 */
20362 : break;
20363 :
20364 : case 1:
20365 : if (
20366 : #line 24962 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20367 : (TARGET_AVX2 && 1))
20368 : return 8866; /* avx2_zero_extendv8qiv8si2 */
20369 : break;
20370 :
20371 : case 2:
20372 : if (
20373 : #line 25417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20374 : (TARGET_AVX512F))
20375 : return 8924; /* avx512f_zero_extendv8qiv8di2 */
20376 : break;
20377 :
20378 : case 3:
20379 : if (
20380 : #line 25051 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20381 : (TARGET_SSE4_1 && 1))
20382 : return 8878; /* sse4_1_zero_extendv4qiv4si2 */
20383 : break;
20384 :
20385 : case 4:
20386 : if (
20387 : #line 25257 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20388 : (TARGET_SSE4_1 && 1))
20389 : return 8908; /* sse4_1_zero_extendv4hiv4si2 */
20390 : break;
20391 :
20392 : case 5:
20393 : if (
20394 : #line 25502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20395 : (TARGET_AVX2 && 1))
20396 : return 8936; /* avx2_zero_extendv4qiv4di2 */
20397 : break;
20398 :
20399 : case 6:
20400 : if (
20401 : #line 25679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20402 : (TARGET_AVX2 && 1))
20403 : return 8963; /* avx2_zero_extendv4hiv4di2 */
20404 : break;
20405 :
20406 : case 7:
20407 : if (
20408 : #line 25594 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20409 : (TARGET_SSE4_1 && 1))
20410 : return 8948; /* sse4_1_zero_extendv2qiv2di2 */
20411 : break;
20412 :
20413 : case 8:
20414 : if (
20415 : #line 25763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20416 : (TARGET_SSE4_1 && 1))
20417 : return 8975; /* sse4_1_zero_extendv2hiv2di2 */
20418 : break;
20419 :
20420 : case 9:
20421 : if (
20422 : #line 25961 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20423 : (TARGET_SSE4_1 && 1))
20424 : return 8999; /* sse4_1_zero_extendv2siv2di2 */
20425 : break;
20426 :
20427 : default:
20428 : break;
20429 : }
20430 : if (GET_CODE (x4) != SUBREG
20431 : || maybe_ne (SUBREG_BYTE (x4), 0))
20432 : return -1;
20433 : x5 = XEXP (x4, 0);
20434 : switch (GET_CODE (x5))
20435 : {
20436 : case VEC_CONCAT:
20437 : switch (pattern691 (x2))
20438 : {
20439 : case 0:
20440 : if (!
20441 : #line 24813 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20442 : (TARGET_SSE4_1
20443 : && ix86_pre_reload_split ()))
20444 : return -1;
20445 : return 8853; /* *sse4_1_zero_extendv8qiv8hi2_2 */
20446 :
20447 : case 1:
20448 : if (!
20449 : #line 24994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20450 : (TARGET_AVX2
20451 : && ix86_pre_reload_split ()))
20452 : return -1;
20453 : return 8873; /* *avx2_zero_extendv8qiv8si2_2 */
20454 :
20455 : case 2:
20456 : if (!
20457 : #line 25447 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20458 : (TARGET_AVX512F && ix86_pre_reload_split ()))
20459 : return -1;
20460 : return 8931; /* *avx512f_zero_extendv8qiv8di2_2 */
20461 :
20462 : case 3:
20463 : if (!
20464 : #line 25290 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20465 : (TARGET_SSE4_1
20466 : && ix86_pre_reload_split ()))
20467 : return -1;
20468 : return 8915; /* *sse4_1_zero_extendv4hiv4si2_2 */
20469 :
20470 : case 4:
20471 : if (!
20472 : #line 25709 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20473 : (TARGET_AVX2
20474 : && ix86_pre_reload_split ()))
20475 : return -1;
20476 : return 8970; /* *avx2_zero_extendv4hiv4di2_2 */
20477 :
20478 : case 5:
20479 : if (!
20480 : #line 25993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20481 : (TARGET_SSE4_1
20482 : && ix86_pre_reload_split ()))
20483 : return -1;
20484 : return 9006; /* *sse4_1_zero_extendv2siv2di2_2 */
20485 :
20486 : default:
20487 : return -1;
20488 : }
20489 :
20490 : case VEC_MERGE:
20491 : x6 = XEXP (x5, 0);
20492 : if (GET_CODE (x6) != VEC_DUPLICATE)
20493 : return -1;
20494 : if (GET_MODE (x6) == E_V4SImode)
20495 : {
20496 : switch (pattern1045 (x2))
20497 : {
20498 : case 0:
20499 : if (
20500 : #line 25088 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20501 : (TARGET_SSE4_1 && 1
20502 : && ix86_pre_reload_split ()))
20503 : return 8886; /* *sse4_1_zero_extendv4qiv4si2_2 */
20504 : break;
20505 :
20506 : case 1:
20507 : if (
20508 : #line 25536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20509 : (TARGET_AVX2
20510 : && ix86_pre_reload_split ()))
20511 : return 8943; /* *avx2_zero_extendv4qiv4di2_2 */
20512 : break;
20513 :
20514 : case 2:
20515 : if (
20516 : #line 25799 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20517 : (TARGET_SSE4_1
20518 : && ix86_pre_reload_split ()))
20519 : return 8982; /* *sse4_1_zero_extendv2hiv2di2_2 */
20520 : break;
20521 :
20522 : default:
20523 : break;
20524 : }
20525 : }
20526 : x7 = XEXP (x5, 2);
20527 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
20528 : return -1;
20529 : switch (pattern1046 (x2))
20530 : {
20531 : case 0:
20532 : if (!
20533 : #line 25643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20534 : (TARGET_SSE4_1 && ix86_pre_reload_split ()))
20535 : return -1;
20536 : return 8954; /* *sse4_1_zero_extendv2qiv2di2_2 */
20537 :
20538 : case 1:
20539 : if (!
20540 : #line 25643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20541 : (TARGET_SSE4_1 && ix86_pre_reload_split ()))
20542 : return -1;
20543 : return 8955; /* *sse4_1_zero_extendv2qiv2di2_2 */
20544 :
20545 : case 2:
20546 : if (!
20547 : #line 25643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20548 : (TARGET_SSE4_1 && ix86_pre_reload_split ()))
20549 : return -1;
20550 : return 8956; /* *sse4_1_zero_extendv2qiv2di2_2 */
20551 :
20552 : default:
20553 : return -1;
20554 : }
20555 :
20556 : default:
20557 : return -1;
20558 : }
20559 :
20560 : default:
20561 : return -1;
20562 : }
20563 : }
20564 :
20565 : int
20566 : recog_345 (rtx x1 ATTRIBUTE_UNUSED,
20567 : rtx_insn *insn ATTRIBUTE_UNUSED,
20568 : int *pnum_clobbers ATTRIBUTE_UNUSED)
20569 : {
20570 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
20571 : rtx x2, x3, x4, x5;
20572 : int res ATTRIBUTE_UNUSED;
20573 : x2 = XEXP (x1, 0);
20574 : operands[0] = x2;
20575 : x3 = XEXP (x1, 1);
20576 : switch (GET_CODE (x3))
20577 : {
20578 : case NE:
20579 : case EQ:
20580 : case GE:
20581 : case GT:
20582 : case LE:
20583 : case LT:
20584 : case LTGT:
20585 : case UNORDERED:
20586 : case ORDERED:
20587 : case UNEQ:
20588 : case UNGE:
20589 : case UNGT:
20590 : case UNLE:
20591 : case UNLT:
20592 : res = recog_276 (x1, insn, pnum_clobbers);
20593 : if (res >= 0)
20594 : return res;
20595 : break;
20596 :
20597 : default:
20598 : break;
20599 : }
20600 : switch (GET_CODE (x3))
20601 : {
20602 : case LT:
20603 : switch (pattern204 (x3))
20604 : {
20605 : case 0:
20606 : if ((
20607 : #line 17569 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20608 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
20609 : #line 732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20610 : (TARGET_AVX2)))
20611 : return 7689; /* *ashrv16hi3_1 */
20612 : break;
20613 :
20614 : case 1:
20615 : if (
20616 : #line 17569 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20617 : (TARGET_SSE2 && ix86_pre_reload_split ()))
20618 : return 7690; /* *ashrv8hi3_1 */
20619 : break;
20620 :
20621 : case 2:
20622 : if ((
20623 : #line 17569 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20624 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
20625 : #line 733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20626 : (TARGET_AVX2)))
20627 : return 7691; /* *ashrv8si3_1 */
20628 : break;
20629 :
20630 : case 3:
20631 : if (
20632 : #line 17569 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20633 : (TARGET_SSE2 && ix86_pre_reload_split ()))
20634 : return 7692; /* *ashrv4si3_1 */
20635 : break;
20636 :
20637 : default:
20638 : break;
20639 : }
20640 : break;
20641 :
20642 : case EQ:
20643 : res = recog_277 (x1, insn, pnum_clobbers);
20644 : if (res >= 0)
20645 : return res;
20646 : break;
20647 :
20648 : case GT:
20649 : x4 = XEXP (x3, 0);
20650 : operands[1] = x4;
20651 : x5 = XEXP (x3, 1);
20652 : operands[2] = x5;
20653 : switch (GET_MODE (operands[0]))
20654 : {
20655 : case E_V2DImode:
20656 : if (pattern682 (x3,
20657 : E_V2DImode) == 0
20658 : &&
20659 : #line 18718 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20660 : (TARGET_SSE4_2))
20661 : return 8023; /* sse4_2_gtv2di3 */
20662 : break;
20663 :
20664 : case E_V32QImode:
20665 : if (pattern12 (x3,
20666 : E_V32QImode) == 0
20667 : &&
20668 : #line 18735 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20669 : (TARGET_AVX2))
20670 : return 8024; /* avx2_gtv32qi3 */
20671 : break;
20672 :
20673 : case E_V16HImode:
20674 : if (pattern12 (x3,
20675 : E_V16HImode) == 0
20676 : &&
20677 : #line 18735 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20678 : (TARGET_AVX2))
20679 : return 8025; /* avx2_gtv16hi3 */
20680 : break;
20681 :
20682 : case E_V8SImode:
20683 : if (pattern12 (x3,
20684 : E_V8SImode) == 0
20685 : &&
20686 : #line 18735 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20687 : (TARGET_AVX2))
20688 : return 8026; /* avx2_gtv8si3 */
20689 : break;
20690 :
20691 : case E_V4DImode:
20692 : if (pattern12 (x3,
20693 : E_V4DImode) == 0
20694 : &&
20695 : #line 18735 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20696 : (TARGET_AVX2))
20697 : return 8027; /* avx2_gtv4di3 */
20698 : break;
20699 :
20700 : case E_V16QImode:
20701 : if (pattern682 (x3,
20702 : E_V16QImode) == 0
20703 : &&
20704 : #line 18767 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20705 : (TARGET_SSE2))
20706 : return 8028; /* *sse2_gtv16qi3 */
20707 : break;
20708 :
20709 : case E_V8HImode:
20710 : if (pattern682 (x3,
20711 : E_V8HImode) == 0
20712 : &&
20713 : #line 18767 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20714 : (TARGET_SSE2))
20715 : return 8029; /* *sse2_gtv8hi3 */
20716 : break;
20717 :
20718 : case E_V4SImode:
20719 : if (pattern682 (x3,
20720 : E_V4SImode) == 0
20721 : &&
20722 : #line 18767 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20723 : (TARGET_SSE2))
20724 : return 8030; /* *sse2_gtv4si3 */
20725 : break;
20726 :
20727 : default:
20728 : break;
20729 : }
20730 : break;
20731 :
20732 : default:
20733 : break;
20734 : }
20735 : operands[1] = x3;
20736 : x4 = XEXP (x3, 0);
20737 : operands[2] = x4;
20738 : x5 = XEXP (x3, 1);
20739 : operands[3] = x5;
20740 : switch (GET_CODE (operands[1]))
20741 : {
20742 : case NE:
20743 : case EQ:
20744 : case GE:
20745 : case GT:
20746 : case LE:
20747 : case LT:
20748 : switch (GET_MODE (operands[0]))
20749 : {
20750 : case E_V16QImode:
20751 : if (pattern807 (
20752 : E_V16QImode) == 0
20753 : &&
20754 : #line 27959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20755 : (TARGET_XOP))
20756 : return 9146; /* xop_maskcmpv16qi3 */
20757 : break;
20758 :
20759 : case E_V8HImode:
20760 : if (pattern807 (
20761 : E_V8HImode) == 0
20762 : &&
20763 : #line 27959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20764 : (TARGET_XOP))
20765 : return 9147; /* xop_maskcmpv8hi3 */
20766 : break;
20767 :
20768 : case E_V4SImode:
20769 : if (pattern807 (
20770 : E_V4SImode) == 0
20771 : &&
20772 : #line 27959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20773 : (TARGET_XOP))
20774 : return 9148; /* xop_maskcmpv4si3 */
20775 : break;
20776 :
20777 : case E_V2DImode:
20778 : if (pattern807 (
20779 : E_V2DImode) == 0
20780 : &&
20781 : #line 27959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20782 : (TARGET_XOP))
20783 : return 9149; /* xop_maskcmpv2di3 */
20784 : break;
20785 :
20786 : default:
20787 : break;
20788 : }
20789 : break;
20790 :
20791 : default:
20792 : break;
20793 : }
20794 : switch (GET_CODE (operands[1]))
20795 : {
20796 : case NE:
20797 : case EQ:
20798 : case GEU:
20799 : case GTU:
20800 : case LEU:
20801 : case LTU:
20802 : switch (GET_MODE (operands[0]))
20803 : {
20804 : case E_V16QImode:
20805 : if (pattern808 (
20806 : E_V16QImode) != 0
20807 : || !
20808 : #line 27969 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20809 : (TARGET_XOP))
20810 : return -1;
20811 : return 9150; /* xop_maskcmp_unsv16qi3 */
20812 :
20813 : case E_V8HImode:
20814 : if (pattern808 (
20815 : E_V8HImode) != 0
20816 : || !
20817 : #line 27969 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20818 : (TARGET_XOP))
20819 : return -1;
20820 : return 9151; /* xop_maskcmp_unsv8hi3 */
20821 :
20822 : case E_V4SImode:
20823 : if (pattern808 (
20824 : E_V4SImode) != 0
20825 : || !
20826 : #line 27969 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20827 : (TARGET_XOP))
20828 : return -1;
20829 : return 9152; /* xop_maskcmp_unsv4si3 */
20830 :
20831 : case E_V2DImode:
20832 : if (pattern808 (
20833 : E_V2DImode) != 0
20834 : || !
20835 : #line 27969 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20836 : (TARGET_XOP))
20837 : return -1;
20838 : return 9153; /* xop_maskcmp_unsv2di3 */
20839 :
20840 : default:
20841 : return -1;
20842 : }
20843 :
20844 : default:
20845 : return -1;
20846 : }
20847 : }
20848 :
20849 : int
20850 : recog_350 (rtx x1 ATTRIBUTE_UNUSED,
20851 : rtx_insn *insn ATTRIBUTE_UNUSED,
20852 : int *pnum_clobbers ATTRIBUTE_UNUSED)
20853 : {
20854 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
20855 : int res ATTRIBUTE_UNUSED;
20856 : switch (pattern29 (x1))
20857 : {
20858 : case 0:
20859 : if (!(
20860 : #line 8269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20861 : (TARGET_AVX512FP16) &&
20862 : #line 683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20863 : (TARGET_AVX512VL)))
20864 : return -1;
20865 : return 4658; /* avx512fp16_fix_truncv8hi2 */
20866 :
20867 : case 1:
20868 : if (!(
20869 : #line 8269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20870 : (TARGET_AVX512FP16) &&
20871 : #line 683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20872 : (TARGET_AVX512VL)))
20873 : return -1;
20874 : return 4666; /* avx512fp16_fix_truncv16hi2 */
20875 :
20876 : case 2:
20877 : if (!
20878 : #line 8269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20879 : (TARGET_AVX512FP16))
20880 : return -1;
20881 : return 4674; /* avx512fp16_fix_truncv32hi2 */
20882 :
20883 : case 3:
20884 : switch (GET_MODE (operands[1]))
20885 : {
20886 : case E_V8HFmode:
20887 : if (!vector_operand (operands[1], E_V8HFmode)
20888 : || !(
20889 : #line 8269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20890 : (TARGET_AVX512FP16) &&
20891 : #line 684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20892 : (TARGET_AVX512VL)))
20893 : return -1;
20894 : return 4682; /* avx512fp16_fix_truncv8si2 */
20895 :
20896 : case E_V8SFmode:
20897 : if (!nonimmediate_operand (operands[1], E_V8SFmode)
20898 : || !
20899 : #line 9184 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20900 : (TARGET_AVX && 1))
20901 : return -1;
20902 : return 4934; /* fix_truncv8sfv8si2 */
20903 :
20904 : case E_V8DFmode:
20905 : if (!vector_operand (operands[1], E_V8DFmode)
20906 : || !
20907 : #line 9959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20908 : (TARGET_AVX512F))
20909 : return -1;
20910 : return 5073; /* fix_truncv8dfv8si2 */
20911 :
20912 : default:
20913 : return -1;
20914 : }
20915 :
20916 : case 4:
20917 : if (!
20918 : #line 8269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20919 : (TARGET_AVX512FP16))
20920 : return -1;
20921 : return 4690; /* avx512fp16_fix_truncv16si2 */
20922 :
20923 : case 5:
20924 : if (!
20925 : #line 9165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20926 : (TARGET_AVX512F))
20927 : return -1;
20928 : return 4924; /* fix_truncv16sfv16si2 */
20929 :
20930 : case 6:
20931 : if (!
20932 : #line 8269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20933 : (TARGET_AVX512FP16))
20934 : return -1;
20935 : return 4698; /* avx512fp16_fix_truncv8di2 */
20936 :
20937 : case 7:
20938 : if (!
20939 : #line 10088 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20940 : (TARGET_AVX512DQ && 1))
20941 : return -1;
20942 : return 5110; /* fix_truncv8dfv8di2 */
20943 :
20944 : case 8:
20945 : if (!
20946 : #line 10131 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20947 : (TARGET_AVX512DQ && 1))
20948 : return -1;
20949 : return 5154; /* fix_truncv8sfv8di2 */
20950 :
20951 : case 9:
20952 : switch (GET_MODE (operands[1]))
20953 : {
20954 : case E_V4HFmode:
20955 : if (!memory_operand (operands[1], E_V4HFmode)
20956 : || !
20957 : #line 8319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20958 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
20959 : return -1;
20960 : return 4722; /* *avx512fp16_fix_truncv4si2_load */
20961 :
20962 : case E_V4SFmode:
20963 : if (!vector_operand (operands[1], E_V4SFmode)
20964 : || !
20965 : #line 9214 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20966 : (TARGET_SSE2 && 1))
20967 : return -1;
20968 : return 4938; /* fix_truncv4sfv4si2 */
20969 :
20970 : case E_V4DFmode:
20971 : if (!nonimmediate_operand (operands[1], E_V4DFmode)
20972 : || !
20973 : #line 10048 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20974 : (TARGET_AVX || (TARGET_AVX512VL && TARGET_AVX512F)))
20975 : return -1;
20976 : return 5088; /* fix_truncv4dfv4si2 */
20977 :
20978 : default:
20979 : return -1;
20980 : }
20981 :
20982 : case 10:
20983 : if (!
20984 : #line 8319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20985 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
20986 : return -1;
20987 : return 4726; /* *avx512fp16_fix_truncv4di2_load */
20988 :
20989 : case 11:
20990 : if (!(
20991 : #line 10088 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20992 : (TARGET_AVX512DQ && 1) &&
20993 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20994 : (TARGET_AVX512VL)))
20995 : return -1;
20996 : return 5118; /* fix_truncv4dfv4di2 */
20997 :
20998 : case 12:
20999 : if (!(
21000 : #line 10131 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21001 : (TARGET_AVX512DQ && 1) &&
21002 : #line 620 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21003 : (TARGET_AVX512VL)))
21004 : return -1;
21005 : return 5162; /* fix_truncv4sfv4di2 */
21006 :
21007 : case 13:
21008 : if (!
21009 : #line 8369 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21010 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
21011 : return -1;
21012 : return 4738; /* *avx512fp16_fix_truncv2di2_load */
21013 :
21014 : case 14:
21015 : if (!(
21016 : #line 10088 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21017 : (TARGET_AVX512DQ && 1) &&
21018 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21019 : (TARGET_AVX512VL)))
21020 : return -1;
21021 : return 5122; /* fix_truncv2dfv2di2 */
21022 :
21023 : case 15:
21024 : if (!
21025 : #line 8309 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21026 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
21027 : return -1;
21028 : return 4714; /* avx512fp16_fix_truncv4si2 */
21029 :
21030 : case 16:
21031 : if (!
21032 : #line 8309 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21033 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
21034 : return -1;
21035 : return 4718; /* avx512fp16_fix_truncv4di2 */
21036 :
21037 : case 17:
21038 : if (!
21039 : #line 8359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21040 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
21041 : return -1;
21042 : return 4734; /* avx512fp16_fix_truncv2di2 */
21043 :
21044 : case 18:
21045 : if (!
21046 : #line 10154 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21047 : (TARGET_AVX512DQ && TARGET_AVX512VL))
21048 : return -1;
21049 : return 5170; /* avx512dq_fix_truncv2sfv2di2 */
21050 :
21051 : default:
21052 : return -1;
21053 : }
21054 : }
21055 :
21056 : int
21057 : recog_355 (rtx x1 ATTRIBUTE_UNUSED,
21058 : rtx_insn *insn ATTRIBUTE_UNUSED,
21059 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21060 : {
21061 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21062 : rtx x2, x3, x4;
21063 : int res ATTRIBUTE_UNUSED;
21064 : x2 = XEXP (x1, 0);
21065 : operands[0] = x2;
21066 : x3 = XEXP (x1, 1);
21067 : x4 = XEXP (x3, 0);
21068 : operands[1] = x4;
21069 : switch (GET_MODE (operands[0]))
21070 : {
21071 : case E_V16SImode:
21072 : if (!register_operand (operands[0], E_V16SImode)
21073 : || GET_MODE (x3) != E_V16SImode
21074 : || !nonimmediate_operand (operands[1], E_V16SImode)
21075 : || !
21076 : #line 30989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21077 : (TARGET_AVX512CD))
21078 : return -1;
21079 : return 10164; /* clzv16si2 */
21080 :
21081 : case E_V8SImode:
21082 : if (!register_operand (operands[0], E_V8SImode)
21083 : || GET_MODE (x3) != E_V8SImode
21084 : || !nonimmediate_operand (operands[1], E_V8SImode)
21085 : || !(
21086 : #line 30989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21087 : (TARGET_AVX512CD) &&
21088 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21089 : (TARGET_AVX512VL)))
21090 : return -1;
21091 : return 10166; /* clzv8si2 */
21092 :
21093 : case E_V4SImode:
21094 : if (!register_operand (operands[0], E_V4SImode)
21095 : || GET_MODE (x3) != E_V4SImode
21096 : || !nonimmediate_operand (operands[1], E_V4SImode)
21097 : || !(
21098 : #line 30989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21099 : (TARGET_AVX512CD) &&
21100 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21101 : (TARGET_AVX512VL)))
21102 : return -1;
21103 : return 10168; /* clzv4si2 */
21104 :
21105 : case E_V8DImode:
21106 : if (!register_operand (operands[0], E_V8DImode)
21107 : || GET_MODE (x3) != E_V8DImode
21108 : || !nonimmediate_operand (operands[1], E_V8DImode)
21109 : || !
21110 : #line 30989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21111 : (TARGET_AVX512CD))
21112 : return -1;
21113 : return 10170; /* clzv8di2 */
21114 :
21115 : case E_V4DImode:
21116 : if (!register_operand (operands[0], E_V4DImode)
21117 : || GET_MODE (x3) != E_V4DImode
21118 : || !nonimmediate_operand (operands[1], E_V4DImode)
21119 : || !(
21120 : #line 30989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21121 : (TARGET_AVX512CD) &&
21122 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21123 : (TARGET_AVX512VL)))
21124 : return -1;
21125 : return 10172; /* clzv4di2 */
21126 :
21127 : case E_V2DImode:
21128 : if (!register_operand (operands[0], E_V2DImode)
21129 : || GET_MODE (x3) != E_V2DImode
21130 : || !nonimmediate_operand (operands[1], E_V2DImode)
21131 : || !(
21132 : #line 30989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21133 : (TARGET_AVX512CD) &&
21134 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21135 : (TARGET_AVX512VL)))
21136 : return -1;
21137 : return 10174; /* clzv2di2 */
21138 :
21139 : default:
21140 : return -1;
21141 : }
21142 : }
21143 :
21144 : int
21145 : recog_358 (rtx x1 ATTRIBUTE_UNUSED,
21146 : rtx_insn *insn ATTRIBUTE_UNUSED,
21147 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21148 : {
21149 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21150 : int res ATTRIBUTE_UNUSED;
21151 : switch (pattern33 (x1))
21152 : {
21153 : case 0:
21154 : if (!
21155 : #line 17995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21156 : (TARGET_SSE2 && TARGET_64BIT
21157 : && ix86_pre_reload_split ()))
21158 : return -1;
21159 : return 7765; /* *rotlv1ti3_internal */
21160 :
21161 : case 1:
21162 : if (!
21163 : #line 18091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21164 : (TARGET_AVX512F))
21165 : return -1;
21166 : return 7801; /* avx512f_rolv16si */
21167 :
21168 : case 2:
21169 : if (!(
21170 : #line 18091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21171 : (TARGET_AVX512F) &&
21172 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21173 : (TARGET_AVX512VL)))
21174 : return -1;
21175 : return 7805; /* avx512vl_rolv8si */
21176 :
21177 : case 3:
21178 : if (const_0_to_255_operand (operands[2], E_SImode)
21179 : && (
21180 : #line 18091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21181 : (TARGET_AVX512F) &&
21182 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21183 : (TARGET_AVX512VL)))
21184 : return 7809; /* avx512vl_rolv4si */
21185 : if (!const_0_to_31_operand (operands[2], E_SImode)
21186 : || !
21187 : #line 27455 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21188 : (TARGET_XOP))
21189 : return -1;
21190 : return 9119; /* xop_rotlv4si3 */
21191 :
21192 : case 4:
21193 : if (!
21194 : #line 18091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21195 : (TARGET_AVX512F))
21196 : return -1;
21197 : return 7813; /* avx512f_rolv8di */
21198 :
21199 : case 5:
21200 : if (!(
21201 : #line 18091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21202 : (TARGET_AVX512F) &&
21203 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21204 : (TARGET_AVX512VL)))
21205 : return -1;
21206 : return 7817; /* avx512vl_rolv4di */
21207 :
21208 : case 6:
21209 : if (const_0_to_255_operand (operands[2], E_SImode)
21210 : && (
21211 : #line 18091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21212 : (TARGET_AVX512F) &&
21213 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21214 : (TARGET_AVX512VL)))
21215 : return 7821; /* avx512vl_rolv2di */
21216 : if (!const_0_to_63_operand (operands[2], E_SImode)
21217 : || !
21218 : #line 27455 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21219 : (TARGET_XOP))
21220 : return -1;
21221 : return 9120; /* xop_rotlv2di3 */
21222 :
21223 : case 7:
21224 : if (!
21225 : #line 27455 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21226 : (TARGET_XOP))
21227 : return -1;
21228 : return 9117; /* xop_rotlv16qi3 */
21229 :
21230 : case 8:
21231 : if (!
21232 : #line 27455 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21233 : (TARGET_XOP))
21234 : return -1;
21235 : return 9118; /* xop_rotlv8hi3 */
21236 :
21237 : case 9:
21238 : if (!
21239 : #line 18081 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21240 : (TARGET_AVX512F))
21241 : return -1;
21242 : return 7777; /* avx512f_rolvv16si */
21243 :
21244 : case 10:
21245 : if (!(
21246 : #line 18081 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21247 : (TARGET_AVX512F) &&
21248 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21249 : (TARGET_AVX512VL)))
21250 : return -1;
21251 : return 7781; /* avx512vl_rolvv8si */
21252 :
21253 : case 11:
21254 : if (!(
21255 : #line 18081 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21256 : (TARGET_AVX512F) &&
21257 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21258 : (TARGET_AVX512VL)))
21259 : return -1;
21260 : return 7785; /* avx512vl_rolvv4si */
21261 :
21262 : case 12:
21263 : if (!
21264 : #line 18081 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21265 : (TARGET_AVX512F))
21266 : return -1;
21267 : return 7789; /* avx512f_rolvv8di */
21268 :
21269 : case 13:
21270 : if (!(
21271 : #line 18081 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21272 : (TARGET_AVX512F) &&
21273 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21274 : (TARGET_AVX512VL)))
21275 : return -1;
21276 : return 7793; /* avx512vl_rolvv4di */
21277 :
21278 : case 14:
21279 : if (!(
21280 : #line 18081 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21281 : (TARGET_AVX512F) &&
21282 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21283 : (TARGET_AVX512VL)))
21284 : return -1;
21285 : return 7797; /* avx512vl_rolvv2di */
21286 :
21287 : default:
21288 : return -1;
21289 : }
21290 : }
21291 :
21292 : int
21293 : recog_369 (rtx x1 ATTRIBUTE_UNUSED,
21294 : rtx_insn *insn ATTRIBUTE_UNUSED,
21295 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21296 : {
21297 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21298 : rtx x2, x3, x4, x5, x6;
21299 : int res ATTRIBUTE_UNUSED;
21300 : x2 = XVECEXP (x1, 0, 1);
21301 : if (pattern237 (x2,
21302 : E_CCmode,
21303 : 17) != 0)
21304 : return -1;
21305 : x3 = XVECEXP (x1, 0, 0);
21306 : switch (pattern940 (x3))
21307 : {
21308 : case 0:
21309 : x4 = XEXP (x3, 0);
21310 : operands[0] = x4;
21311 : x5 = XEXP (x3, 1);
21312 : x6 = XEXP (x5, 1);
21313 : switch (GET_CODE (x6))
21314 : {
21315 : case SUBREG:
21316 : switch (pattern1428 (x5))
21317 : {
21318 : case 0:
21319 : if ((
21320 : #line 17523 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21321 : (((INTVAL (operands[3]) & (4 * BITS_PER_UNIT)) == 0
21322 : || ((INTVAL (operands[3]) & (2 * 4 * BITS_PER_UNIT - 1))
21323 : == (2 * 4 * BITS_PER_UNIT - 1)))
21324 : && ix86_pre_reload_split ()) &&
21325 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21326 : (!TARGET_64BIT)))
21327 : return 1155; /* *ashrdi3_doubleword_mask */
21328 : break;
21329 :
21330 : case 1:
21331 : if ((
21332 : #line 17523 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21333 : (((INTVAL (operands[3]) & (8 * BITS_PER_UNIT)) == 0
21334 : || ((INTVAL (operands[3]) & (2 * 8 * BITS_PER_UNIT - 1))
21335 : == (2 * 8 * BITS_PER_UNIT - 1)))
21336 : && ix86_pre_reload_split ()) &&
21337 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21338 : (TARGET_64BIT)))
21339 : return 1157; /* *ashrti3_doubleword_mask */
21340 : break;
21341 :
21342 : default:
21343 : break;
21344 : }
21345 : break;
21346 :
21347 : case CONST_INT:
21348 : operands[2] = x6;
21349 : if (const_int_operand (operands[2], E_QImode)
21350 : && nonimmediate_operand (operands[0], E_SImode)
21351 : && GET_MODE (x5) == E_SImode
21352 : && nonimmediate_operand (operands[1], E_SImode)
21353 : &&
21354 : #line 18201 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21355 : (INTVAL (operands[2]) == GET_MODE_BITSIZE (SImode)-1
21356 : && (TARGET_USE_CLTD || optimize_function_for_size_p (cfun))
21357 : && ix86_binary_operator_ok (ASHIFTRT, SImode, operands, TARGET_APX_NDD)
21358 : && true))
21359 : return 1199; /* ashrsi3_cvt */
21360 : break;
21361 :
21362 : default:
21363 : break;
21364 : }
21365 : operands[2] = x6;
21366 : res = recog_368 (x1, insn, pnum_clobbers);
21367 : if (res >= 0)
21368 : return res;
21369 : if (GET_CODE (x6) != SUBREG
21370 : || maybe_ne (SUBREG_BYTE (x6), 0)
21371 : || GET_MODE (x6) != E_QImode)
21372 : return -1;
21373 : switch (pattern1446 (x3))
21374 : {
21375 : case 0:
21376 : if (!
21377 : #line 18773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21378 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
21379 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
21380 : == 4 * BITS_PER_UNIT - 1
21381 : && ix86_pre_reload_split ()))
21382 : return -1;
21383 : return 1278; /* *ashrsi3_mask */
21384 :
21385 : case 1:
21386 : if (!(
21387 : #line 18773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21388 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
21389 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
21390 : == 8 * BITS_PER_UNIT - 1
21391 : && ix86_pre_reload_split ()) &&
21392 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21393 : (TARGET_64BIT)))
21394 : return -1;
21395 : return 1281; /* *ashrdi3_mask */
21396 :
21397 : case 2:
21398 : if (!
21399 : #line 18821 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21400 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
21401 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
21402 : && ix86_pre_reload_split ()))
21403 : return -1;
21404 : return 1290; /* *ashrsi3_add */
21405 :
21406 : case 3:
21407 : if (!(
21408 : #line 18821 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21409 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
21410 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
21411 : && ix86_pre_reload_split ()) &&
21412 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21413 : (TARGET_64BIT)))
21414 : return -1;
21415 : return 1293; /* *ashrdi3_add */
21416 :
21417 : case 4:
21418 : if (!
21419 : #line 18867 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21420 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
21421 : && ((INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
21422 : || (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
21423 : == 4 * BITS_PER_UNIT - 1)
21424 : && ix86_pre_reload_split ()))
21425 : return -1;
21426 : return 1302; /* *ashrsi3_sub */
21427 :
21428 : case 5:
21429 : if (!(
21430 : #line 18867 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21431 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
21432 : && ((INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
21433 : || (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
21434 : == 8 * BITS_PER_UNIT - 1)
21435 : && ix86_pre_reload_split ()) &&
21436 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21437 : (TARGET_64BIT)))
21438 : return -1;
21439 : return 1305; /* *ashrdi3_sub */
21440 :
21441 : default:
21442 : return -1;
21443 : }
21444 :
21445 : case 1:
21446 : if (register_operand (operands[0], E_DImode)
21447 : && register_operand (operands[1], E_DImode)
21448 : && (
21449 : #line 17584 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21450 : (((INTVAL (operands[3]) & (4 * BITS_PER_UNIT)) == 0
21451 : || ((INTVAL (operands[3]) & (2 * 4 * BITS_PER_UNIT - 1))
21452 : == (2 * 4 * BITS_PER_UNIT - 1)))
21453 : && ix86_pre_reload_split ()) &&
21454 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21455 : (!TARGET_64BIT)))
21456 : return 1159; /* *ashrdi3_doubleword_mask_1 */
21457 : if (!nonimmediate_operand (operands[0], E_DImode)
21458 : || !nonimmediate_operand (operands[1], E_DImode)
21459 : || !(
21460 : #line 18798 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21461 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
21462 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
21463 : == 8 * BITS_PER_UNIT - 1
21464 : && ix86_pre_reload_split ()) &&
21465 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21466 : (TARGET_64BIT)))
21467 : return -1;
21468 : return 1287; /* *ashrdi3_mask_1 */
21469 :
21470 : case 2:
21471 : if (!(
21472 : #line 17584 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21473 : (((INTVAL (operands[3]) & (8 * BITS_PER_UNIT)) == 0
21474 : || ((INTVAL (operands[3]) & (2 * 8 * BITS_PER_UNIT - 1))
21475 : == (2 * 8 * BITS_PER_UNIT - 1)))
21476 : && ix86_pre_reload_split ()) &&
21477 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21478 : (TARGET_64BIT)))
21479 : return -1;
21480 : return 1161; /* *ashrti3_doubleword_mask_1 */
21481 :
21482 : case 3:
21483 : if (!
21484 : #line 18798 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21485 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
21486 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
21487 : == 4 * BITS_PER_UNIT - 1
21488 : && ix86_pre_reload_split ()))
21489 : return -1;
21490 : return 1284; /* *ashrsi3_mask_1 */
21491 :
21492 : case 4:
21493 : if (!
21494 : #line 18845 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21495 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
21496 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
21497 : && ix86_pre_reload_split ()))
21498 : return -1;
21499 : return 1296; /* *ashrsi3_add_1 */
21500 :
21501 : case 5:
21502 : if (!(
21503 : #line 18845 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21504 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
21505 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
21506 : && ix86_pre_reload_split ()) &&
21507 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21508 : (TARGET_64BIT)))
21509 : return -1;
21510 : return 1299; /* *ashrdi3_add_1 */
21511 :
21512 : case 6:
21513 : if (!
21514 : #line 18900 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21515 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
21516 : && ((INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
21517 : || (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
21518 : == 4 * BITS_PER_UNIT - 1)
21519 : && ix86_pre_reload_split ()))
21520 : return -1;
21521 : return 1308; /* *ashrsi3_sub_1 */
21522 :
21523 : case 7:
21524 : if (!(
21525 : #line 18900 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21526 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
21527 : && ((INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
21528 : || (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
21529 : == 8 * BITS_PER_UNIT - 1)
21530 : && ix86_pre_reload_split ()) &&
21531 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21532 : (TARGET_64BIT)))
21533 : return -1;
21534 : return 1311; /* *ashrdi3_sub_1 */
21535 :
21536 : case 8:
21537 : if (!(
21538 : #line 18929 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21539 : (INTVAL (operands[2]) == INTVAL (operands[3])
21540 : && UINTVAL (operands[2]) < 4 * BITS_PER_UNIT) &&
21541 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21542 : (!TARGET_64BIT)))
21543 : return -1;
21544 : return 1312; /* *extenddi2_doubleword_highpart */
21545 :
21546 : case 9:
21547 : if (!(
21548 : #line 18929 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21549 : (INTVAL (operands[2]) == INTVAL (operands[3])
21550 : && UINTVAL (operands[2]) < 8 * BITS_PER_UNIT) &&
21551 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21552 : (TARGET_64BIT)))
21553 : return -1;
21554 : return 1313; /* *extendti2_doubleword_highpart */
21555 :
21556 : default:
21557 : return -1;
21558 : }
21559 : }
21560 :
21561 : int
21562 : recog_378 (rtx x1 ATTRIBUTE_UNUSED,
21563 : rtx_insn *insn ATTRIBUTE_UNUSED,
21564 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21565 : {
21566 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21567 : rtx x2, x3;
21568 : int res ATTRIBUTE_UNUSED;
21569 : if (pattern356 (x1) != 0)
21570 : return -1;
21571 : x2 = XVECEXP (x1, 0, 0);
21572 : x3 = XEXP (x2, 0);
21573 : operands[0] = x3;
21574 : switch (pattern1055 (x1))
21575 : {
21576 : case 0:
21577 : if (!
21578 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21579 : (TARGET_AVX512F
21580 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
21581 : && (GET_MODE_NUNITS (V16SImode)
21582 : < GET_MODE_PRECISION (HImode))
21583 : && ix86_pre_reload_split ()))
21584 : return -1;
21585 : return 3401; /* *avx512f_cmpv16si3_zero_extendhi_2 */
21586 :
21587 : case 1:
21588 : if (!(
21589 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21590 : (TARGET_AVX512F
21591 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
21592 : && (GET_MODE_NUNITS (V16HFmode)
21593 : < GET_MODE_PRECISION (HImode))
21594 : && ix86_pre_reload_split ()) &&
21595 : #line 321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21596 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
21597 : return -1;
21598 : return 3422; /* *avx512vl_cmpv16hf3_zero_extendhi_2 */
21599 :
21600 : case 2:
21601 : if (!
21602 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21603 : (TARGET_AVX512F
21604 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
21605 : && (GET_MODE_NUNITS (V16SFmode)
21606 : < GET_MODE_PRECISION (HImode))
21607 : && ix86_pre_reload_split ()))
21608 : return -1;
21609 : return 3428; /* *avx512f_cmpv16sf3_zero_extendhi_2 */
21610 :
21611 : case 3:
21612 : if (!(
21613 : #line 4914 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21614 : (TARGET_AVX512BW
21615 : && (GET_MODE_NUNITS (V16QImode)
21616 : < GET_MODE_PRECISION (HImode))
21617 : && ix86_pre_reload_split ()) &&
21618 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21619 : (TARGET_AVX512VL)))
21620 : return -1;
21621 : return 3521; /* *avx512vl_cmpv16qi3_zero_extendhi_2 */
21622 :
21623 : case 4:
21624 : if (!(
21625 : #line 4914 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21626 : (TARGET_AVX512BW
21627 : && (GET_MODE_NUNITS (V16HImode)
21628 : < GET_MODE_PRECISION (HImode))
21629 : && ix86_pre_reload_split ()) &&
21630 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21631 : (TARGET_AVX512VL)))
21632 : return -1;
21633 : return 3530; /* *avx512vl_cmpv16hi3_zero_extendhi_2 */
21634 :
21635 : case 5:
21636 : if (!(
21637 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21638 : (TARGET_AVX512F
21639 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
21640 : && (GET_MODE_NUNITS (V8SImode)
21641 : < GET_MODE_PRECISION (HImode))
21642 : && ix86_pre_reload_split ()) &&
21643 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21644 : (TARGET_AVX512VL)))
21645 : return -1;
21646 : return 3404; /* *avx512vl_cmpv8si3_zero_extendhi_2 */
21647 :
21648 : case 6:
21649 : if (!(
21650 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21651 : (TARGET_AVX512F
21652 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
21653 : && (GET_MODE_NUNITS (V4SImode)
21654 : < GET_MODE_PRECISION (HImode))
21655 : && ix86_pre_reload_split ()) &&
21656 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21657 : (TARGET_AVX512VL)))
21658 : return -1;
21659 : return 3407; /* *avx512vl_cmpv4si3_zero_extendhi_2 */
21660 :
21661 : case 7:
21662 : if (!
21663 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21664 : (TARGET_AVX512F
21665 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
21666 : && (GET_MODE_NUNITS (V8DImode)
21667 : < GET_MODE_PRECISION (HImode))
21668 : && ix86_pre_reload_split ()))
21669 : return -1;
21670 : return 3410; /* *avx512f_cmpv8di3_zero_extendhi_2 */
21671 :
21672 : case 8:
21673 : if (!(
21674 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21675 : (TARGET_AVX512F
21676 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
21677 : && (GET_MODE_NUNITS (V4DImode)
21678 : < GET_MODE_PRECISION (HImode))
21679 : && ix86_pre_reload_split ()) &&
21680 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21681 : (TARGET_AVX512VL)))
21682 : return -1;
21683 : return 3413; /* *avx512vl_cmpv4di3_zero_extendhi_2 */
21684 :
21685 : case 9:
21686 : if (!(
21687 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21688 : (TARGET_AVX512F
21689 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
21690 : && (GET_MODE_NUNITS (V2DImode)
21691 : < GET_MODE_PRECISION (HImode))
21692 : && ix86_pre_reload_split ()) &&
21693 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21694 : (TARGET_AVX512VL)))
21695 : return -1;
21696 : return 3416; /* *avx512vl_cmpv2di3_zero_extendhi_2 */
21697 :
21698 : case 10:
21699 : if (!(
21700 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21701 : (TARGET_AVX512F
21702 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
21703 : && (GET_MODE_NUNITS (V8HFmode)
21704 : < GET_MODE_PRECISION (HImode))
21705 : && ix86_pre_reload_split ()) &&
21706 : #line 322 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21707 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
21708 : return -1;
21709 : return 3425; /* *avx512fp16_cmpv8hf3_zero_extendhi_2 */
21710 :
21711 : case 11:
21712 : if (!(
21713 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21714 : (TARGET_AVX512F
21715 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
21716 : && (GET_MODE_NUNITS (V8SFmode)
21717 : < GET_MODE_PRECISION (HImode))
21718 : && ix86_pre_reload_split ()) &&
21719 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21720 : (TARGET_AVX512VL)))
21721 : return -1;
21722 : return 3431; /* *avx512vl_cmpv8sf3_zero_extendhi_2 */
21723 :
21724 : case 12:
21725 : if (!(
21726 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21727 : (TARGET_AVX512F
21728 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
21729 : && (GET_MODE_NUNITS (V4SFmode)
21730 : < GET_MODE_PRECISION (HImode))
21731 : && ix86_pre_reload_split ()) &&
21732 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21733 : (TARGET_AVX512VL)))
21734 : return -1;
21735 : return 3434; /* *avx512vl_cmpv4sf3_zero_extendhi_2 */
21736 :
21737 : case 13:
21738 : if (!
21739 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21740 : (TARGET_AVX512F
21741 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
21742 : && (GET_MODE_NUNITS (V8DFmode)
21743 : < GET_MODE_PRECISION (HImode))
21744 : && ix86_pre_reload_split ()))
21745 : return -1;
21746 : return 3437; /* *avx512f_cmpv8df3_zero_extendhi_2 */
21747 :
21748 : case 14:
21749 : if (!(
21750 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21751 : (TARGET_AVX512F
21752 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
21753 : && (GET_MODE_NUNITS (V4DFmode)
21754 : < GET_MODE_PRECISION (HImode))
21755 : && ix86_pre_reload_split ()) &&
21756 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21757 : (TARGET_AVX512VL)))
21758 : return -1;
21759 : return 3440; /* *avx512vl_cmpv4df3_zero_extendhi_2 */
21760 :
21761 : case 15:
21762 : if (!(
21763 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21764 : (TARGET_AVX512F
21765 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
21766 : && (GET_MODE_NUNITS (V2DFmode)
21767 : < GET_MODE_PRECISION (HImode))
21768 : && ix86_pre_reload_split ()) &&
21769 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21770 : (TARGET_AVX512VL)))
21771 : return -1;
21772 : return 3443; /* *avx512vl_cmpv2df3_zero_extendhi_2 */
21773 :
21774 : case 16:
21775 : if (!(
21776 : #line 4914 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21777 : (TARGET_AVX512BW
21778 : && (GET_MODE_NUNITS (V8HImode)
21779 : < GET_MODE_PRECISION (HImode))
21780 : && ix86_pre_reload_split ()) &&
21781 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21782 : (TARGET_AVX512VL)))
21783 : return -1;
21784 : return 3533; /* *avx512vl_cmpv8hi3_zero_extendhi_2 */
21785 :
21786 : case 17:
21787 : if (!(
21788 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21789 : (TARGET_AVX512F
21790 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
21791 : && (GET_MODE_NUNITS (V32HFmode)
21792 : < GET_MODE_PRECISION (HImode))
21793 : && ix86_pre_reload_split ()) &&
21794 : #line 320 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21795 : (TARGET_AVX512FP16)))
21796 : return -1;
21797 : return 3419; /* *avx512bw_cmpv32hf3_zero_extendhi_2 */
21798 :
21799 : case 18:
21800 : if (!(
21801 : #line 4914 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21802 : (TARGET_AVX512BW
21803 : && (GET_MODE_NUNITS (V32QImode)
21804 : < GET_MODE_PRECISION (HImode))
21805 : && ix86_pre_reload_split ()) &&
21806 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21807 : (TARGET_AVX512VL)))
21808 : return -1;
21809 : return 3524; /* *avx512vl_cmpv32qi3_zero_extendhi_2 */
21810 :
21811 : case 19:
21812 : if (!
21813 : #line 4914 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21814 : (TARGET_AVX512BW
21815 : && (GET_MODE_NUNITS (V32HImode)
21816 : < GET_MODE_PRECISION (HImode))
21817 : && ix86_pre_reload_split ()))
21818 : return -1;
21819 : return 3527; /* *avx512bw_cmpv32hi3_zero_extendhi_2 */
21820 :
21821 : case 20:
21822 : if (!
21823 : #line 4914 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21824 : (TARGET_AVX512BW
21825 : && (GET_MODE_NUNITS (V64QImode)
21826 : < GET_MODE_PRECISION (HImode))
21827 : && ix86_pre_reload_split ()))
21828 : return -1;
21829 : return 3518; /* *avx512bw_cmpv64qi3_zero_extendhi_2 */
21830 :
21831 : case 21:
21832 : if (!
21833 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21834 : (TARGET_AVX512F
21835 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
21836 : && (GET_MODE_NUNITS (V16SImode)
21837 : < GET_MODE_PRECISION (SImode))
21838 : && ix86_pre_reload_split ()))
21839 : return -1;
21840 : return 3402; /* *avx512f_cmpv16si3_zero_extendsi_2 */
21841 :
21842 : case 22:
21843 : if (!(
21844 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21845 : (TARGET_AVX512F
21846 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
21847 : && (GET_MODE_NUNITS (V16HFmode)
21848 : < GET_MODE_PRECISION (SImode))
21849 : && ix86_pre_reload_split ()) &&
21850 : #line 321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21851 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
21852 : return -1;
21853 : return 3423; /* *avx512vl_cmpv16hf3_zero_extendsi_2 */
21854 :
21855 : case 23:
21856 : if (!
21857 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21858 : (TARGET_AVX512F
21859 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
21860 : && (GET_MODE_NUNITS (V16SFmode)
21861 : < GET_MODE_PRECISION (SImode))
21862 : && ix86_pre_reload_split ()))
21863 : return -1;
21864 : return 3429; /* *avx512f_cmpv16sf3_zero_extendsi_2 */
21865 :
21866 : case 24:
21867 : if (!(
21868 : #line 4914 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21869 : (TARGET_AVX512BW
21870 : && (GET_MODE_NUNITS (V16QImode)
21871 : < GET_MODE_PRECISION (SImode))
21872 : && ix86_pre_reload_split ()) &&
21873 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21874 : (TARGET_AVX512VL)))
21875 : return -1;
21876 : return 3522; /* *avx512vl_cmpv16qi3_zero_extendsi_2 */
21877 :
21878 : case 25:
21879 : if (!(
21880 : #line 4914 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21881 : (TARGET_AVX512BW
21882 : && (GET_MODE_NUNITS (V16HImode)
21883 : < GET_MODE_PRECISION (SImode))
21884 : && ix86_pre_reload_split ()) &&
21885 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21886 : (TARGET_AVX512VL)))
21887 : return -1;
21888 : return 3531; /* *avx512vl_cmpv16hi3_zero_extendsi_2 */
21889 :
21890 : case 26:
21891 : if (!(
21892 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21893 : (TARGET_AVX512F
21894 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
21895 : && (GET_MODE_NUNITS (V8SImode)
21896 : < GET_MODE_PRECISION (SImode))
21897 : && ix86_pre_reload_split ()) &&
21898 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21899 : (TARGET_AVX512VL)))
21900 : return -1;
21901 : return 3405; /* *avx512vl_cmpv8si3_zero_extendsi_2 */
21902 :
21903 : case 27:
21904 : if (!(
21905 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21906 : (TARGET_AVX512F
21907 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
21908 : && (GET_MODE_NUNITS (V4SImode)
21909 : < GET_MODE_PRECISION (SImode))
21910 : && ix86_pre_reload_split ()) &&
21911 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21912 : (TARGET_AVX512VL)))
21913 : return -1;
21914 : return 3408; /* *avx512vl_cmpv4si3_zero_extendsi_2 */
21915 :
21916 : case 28:
21917 : if (!
21918 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21919 : (TARGET_AVX512F
21920 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
21921 : && (GET_MODE_NUNITS (V8DImode)
21922 : < GET_MODE_PRECISION (SImode))
21923 : && ix86_pre_reload_split ()))
21924 : return -1;
21925 : return 3411; /* *avx512f_cmpv8di3_zero_extendsi_2 */
21926 :
21927 : case 29:
21928 : if (!(
21929 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21930 : (TARGET_AVX512F
21931 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
21932 : && (GET_MODE_NUNITS (V4DImode)
21933 : < GET_MODE_PRECISION (SImode))
21934 : && ix86_pre_reload_split ()) &&
21935 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21936 : (TARGET_AVX512VL)))
21937 : return -1;
21938 : return 3414; /* *avx512vl_cmpv4di3_zero_extendsi_2 */
21939 :
21940 : case 30:
21941 : if (!(
21942 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21943 : (TARGET_AVX512F
21944 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
21945 : && (GET_MODE_NUNITS (V2DImode)
21946 : < GET_MODE_PRECISION (SImode))
21947 : && ix86_pre_reload_split ()) &&
21948 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21949 : (TARGET_AVX512VL)))
21950 : return -1;
21951 : return 3417; /* *avx512vl_cmpv2di3_zero_extendsi_2 */
21952 :
21953 : case 31:
21954 : if (!(
21955 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21956 : (TARGET_AVX512F
21957 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
21958 : && (GET_MODE_NUNITS (V8HFmode)
21959 : < GET_MODE_PRECISION (SImode))
21960 : && ix86_pre_reload_split ()) &&
21961 : #line 322 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21962 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
21963 : return -1;
21964 : return 3426; /* *avx512fp16_cmpv8hf3_zero_extendsi_2 */
21965 :
21966 : case 32:
21967 : if (!(
21968 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21969 : (TARGET_AVX512F
21970 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
21971 : && (GET_MODE_NUNITS (V8SFmode)
21972 : < GET_MODE_PRECISION (SImode))
21973 : && ix86_pre_reload_split ()) &&
21974 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21975 : (TARGET_AVX512VL)))
21976 : return -1;
21977 : return 3432; /* *avx512vl_cmpv8sf3_zero_extendsi_2 */
21978 :
21979 : case 33:
21980 : if (!(
21981 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21982 : (TARGET_AVX512F
21983 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
21984 : && (GET_MODE_NUNITS (V4SFmode)
21985 : < GET_MODE_PRECISION (SImode))
21986 : && ix86_pre_reload_split ()) &&
21987 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21988 : (TARGET_AVX512VL)))
21989 : return -1;
21990 : return 3435; /* *avx512vl_cmpv4sf3_zero_extendsi_2 */
21991 :
21992 : case 34:
21993 : if (!
21994 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21995 : (TARGET_AVX512F
21996 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
21997 : && (GET_MODE_NUNITS (V8DFmode)
21998 : < GET_MODE_PRECISION (SImode))
21999 : && ix86_pre_reload_split ()))
22000 : return -1;
22001 : return 3438; /* *avx512f_cmpv8df3_zero_extendsi_2 */
22002 :
22003 : case 35:
22004 : if (!(
22005 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22006 : (TARGET_AVX512F
22007 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
22008 : && (GET_MODE_NUNITS (V4DFmode)
22009 : < GET_MODE_PRECISION (SImode))
22010 : && ix86_pre_reload_split ()) &&
22011 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22012 : (TARGET_AVX512VL)))
22013 : return -1;
22014 : return 3441; /* *avx512vl_cmpv4df3_zero_extendsi_2 */
22015 :
22016 : case 36:
22017 : if (!(
22018 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22019 : (TARGET_AVX512F
22020 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
22021 : && (GET_MODE_NUNITS (V2DFmode)
22022 : < GET_MODE_PRECISION (SImode))
22023 : && ix86_pre_reload_split ()) &&
22024 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22025 : (TARGET_AVX512VL)))
22026 : return -1;
22027 : return 3444; /* *avx512vl_cmpv2df3_zero_extendsi_2 */
22028 :
22029 : case 37:
22030 : if (!(
22031 : #line 4914 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22032 : (TARGET_AVX512BW
22033 : && (GET_MODE_NUNITS (V8HImode)
22034 : < GET_MODE_PRECISION (SImode))
22035 : && ix86_pre_reload_split ()) &&
22036 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22037 : (TARGET_AVX512VL)))
22038 : return -1;
22039 : return 3534; /* *avx512vl_cmpv8hi3_zero_extendsi_2 */
22040 :
22041 : case 38:
22042 : if (!(
22043 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22044 : (TARGET_AVX512F
22045 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
22046 : && (GET_MODE_NUNITS (V32HFmode)
22047 : < GET_MODE_PRECISION (SImode))
22048 : && ix86_pre_reload_split ()) &&
22049 : #line 320 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22050 : (TARGET_AVX512FP16)))
22051 : return -1;
22052 : return 3420; /* *avx512bw_cmpv32hf3_zero_extendsi_2 */
22053 :
22054 : case 39:
22055 : if (!(
22056 : #line 4914 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22057 : (TARGET_AVX512BW
22058 : && (GET_MODE_NUNITS (V32QImode)
22059 : < GET_MODE_PRECISION (SImode))
22060 : && ix86_pre_reload_split ()) &&
22061 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22062 : (TARGET_AVX512VL)))
22063 : return -1;
22064 : return 3525; /* *avx512vl_cmpv32qi3_zero_extendsi_2 */
22065 :
22066 : case 40:
22067 : if (!
22068 : #line 4914 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22069 : (TARGET_AVX512BW
22070 : && (GET_MODE_NUNITS (V32HImode)
22071 : < GET_MODE_PRECISION (SImode))
22072 : && ix86_pre_reload_split ()))
22073 : return -1;
22074 : return 3528; /* *avx512bw_cmpv32hi3_zero_extendsi_2 */
22075 :
22076 : case 41:
22077 : if (!
22078 : #line 4914 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22079 : (TARGET_AVX512BW
22080 : && (GET_MODE_NUNITS (V64QImode)
22081 : < GET_MODE_PRECISION (SImode))
22082 : && ix86_pre_reload_split ()))
22083 : return -1;
22084 : return 3519; /* *avx512bw_cmpv64qi3_zero_extendsi_2 */
22085 :
22086 : case 42:
22087 : if (!
22088 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22089 : (TARGET_AVX512F
22090 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22091 : && (GET_MODE_NUNITS (V16SImode)
22092 : < GET_MODE_PRECISION (DImode))
22093 : && ix86_pre_reload_split ()))
22094 : return -1;
22095 : return 3403; /* *avx512f_cmpv16si3_zero_extenddi_2 */
22096 :
22097 : case 43:
22098 : if (!(
22099 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22100 : (TARGET_AVX512F
22101 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22102 : && (GET_MODE_NUNITS (V16HFmode)
22103 : < GET_MODE_PRECISION (DImode))
22104 : && ix86_pre_reload_split ()) &&
22105 : #line 321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22106 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
22107 : return -1;
22108 : return 3424; /* *avx512vl_cmpv16hf3_zero_extenddi_2 */
22109 :
22110 : case 44:
22111 : if (!
22112 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22113 : (TARGET_AVX512F
22114 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22115 : && (GET_MODE_NUNITS (V16SFmode)
22116 : < GET_MODE_PRECISION (DImode))
22117 : && ix86_pre_reload_split ()))
22118 : return -1;
22119 : return 3430; /* *avx512f_cmpv16sf3_zero_extenddi_2 */
22120 :
22121 : case 45:
22122 : if (!(
22123 : #line 4914 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22124 : (TARGET_AVX512BW
22125 : && (GET_MODE_NUNITS (V16QImode)
22126 : < GET_MODE_PRECISION (DImode))
22127 : && ix86_pre_reload_split ()) &&
22128 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22129 : (TARGET_AVX512VL)))
22130 : return -1;
22131 : return 3523; /* *avx512vl_cmpv16qi3_zero_extenddi_2 */
22132 :
22133 : case 46:
22134 : if (!(
22135 : #line 4914 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22136 : (TARGET_AVX512BW
22137 : && (GET_MODE_NUNITS (V16HImode)
22138 : < GET_MODE_PRECISION (DImode))
22139 : && ix86_pre_reload_split ()) &&
22140 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22141 : (TARGET_AVX512VL)))
22142 : return -1;
22143 : return 3532; /* *avx512vl_cmpv16hi3_zero_extenddi_2 */
22144 :
22145 : case 47:
22146 : if (!(
22147 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22148 : (TARGET_AVX512F
22149 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22150 : && (GET_MODE_NUNITS (V8SImode)
22151 : < GET_MODE_PRECISION (DImode))
22152 : && ix86_pre_reload_split ()) &&
22153 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22154 : (TARGET_AVX512VL)))
22155 : return -1;
22156 : return 3406; /* *avx512vl_cmpv8si3_zero_extenddi_2 */
22157 :
22158 : case 48:
22159 : if (!(
22160 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22161 : (TARGET_AVX512F
22162 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22163 : && (GET_MODE_NUNITS (V4SImode)
22164 : < GET_MODE_PRECISION (DImode))
22165 : && ix86_pre_reload_split ()) &&
22166 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22167 : (TARGET_AVX512VL)))
22168 : return -1;
22169 : return 3409; /* *avx512vl_cmpv4si3_zero_extenddi_2 */
22170 :
22171 : case 49:
22172 : if (!
22173 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22174 : (TARGET_AVX512F
22175 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22176 : && (GET_MODE_NUNITS (V8DImode)
22177 : < GET_MODE_PRECISION (DImode))
22178 : && ix86_pre_reload_split ()))
22179 : return -1;
22180 : return 3412; /* *avx512f_cmpv8di3_zero_extenddi_2 */
22181 :
22182 : case 50:
22183 : if (!(
22184 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22185 : (TARGET_AVX512F
22186 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22187 : && (GET_MODE_NUNITS (V4DImode)
22188 : < GET_MODE_PRECISION (DImode))
22189 : && ix86_pre_reload_split ()) &&
22190 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22191 : (TARGET_AVX512VL)))
22192 : return -1;
22193 : return 3415; /* *avx512vl_cmpv4di3_zero_extenddi_2 */
22194 :
22195 : case 51:
22196 : if (!(
22197 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22198 : (TARGET_AVX512F
22199 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22200 : && (GET_MODE_NUNITS (V2DImode)
22201 : < GET_MODE_PRECISION (DImode))
22202 : && ix86_pre_reload_split ()) &&
22203 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22204 : (TARGET_AVX512VL)))
22205 : return -1;
22206 : return 3418; /* *avx512vl_cmpv2di3_zero_extenddi_2 */
22207 :
22208 : case 52:
22209 : if (!(
22210 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22211 : (TARGET_AVX512F
22212 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22213 : && (GET_MODE_NUNITS (V8HFmode)
22214 : < GET_MODE_PRECISION (DImode))
22215 : && ix86_pre_reload_split ()) &&
22216 : #line 322 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22217 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
22218 : return -1;
22219 : return 3427; /* *avx512fp16_cmpv8hf3_zero_extenddi_2 */
22220 :
22221 : case 53:
22222 : if (!(
22223 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22224 : (TARGET_AVX512F
22225 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22226 : && (GET_MODE_NUNITS (V8SFmode)
22227 : < GET_MODE_PRECISION (DImode))
22228 : && ix86_pre_reload_split ()) &&
22229 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22230 : (TARGET_AVX512VL)))
22231 : return -1;
22232 : return 3433; /* *avx512vl_cmpv8sf3_zero_extenddi_2 */
22233 :
22234 : case 54:
22235 : if (!(
22236 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22237 : (TARGET_AVX512F
22238 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22239 : && (GET_MODE_NUNITS (V4SFmode)
22240 : < GET_MODE_PRECISION (DImode))
22241 : && ix86_pre_reload_split ()) &&
22242 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22243 : (TARGET_AVX512VL)))
22244 : return -1;
22245 : return 3436; /* *avx512vl_cmpv4sf3_zero_extenddi_2 */
22246 :
22247 : case 55:
22248 : if (!
22249 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22250 : (TARGET_AVX512F
22251 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22252 : && (GET_MODE_NUNITS (V8DFmode)
22253 : < GET_MODE_PRECISION (DImode))
22254 : && ix86_pre_reload_split ()))
22255 : return -1;
22256 : return 3439; /* *avx512f_cmpv8df3_zero_extenddi_2 */
22257 :
22258 : case 56:
22259 : if (!(
22260 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22261 : (TARGET_AVX512F
22262 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22263 : && (GET_MODE_NUNITS (V4DFmode)
22264 : < GET_MODE_PRECISION (DImode))
22265 : && ix86_pre_reload_split ()) &&
22266 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22267 : (TARGET_AVX512VL)))
22268 : return -1;
22269 : return 3442; /* *avx512vl_cmpv4df3_zero_extenddi_2 */
22270 :
22271 : case 57:
22272 : if (!(
22273 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22274 : (TARGET_AVX512F
22275 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22276 : && (GET_MODE_NUNITS (V2DFmode)
22277 : < GET_MODE_PRECISION (DImode))
22278 : && ix86_pre_reload_split ()) &&
22279 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22280 : (TARGET_AVX512VL)))
22281 : return -1;
22282 : return 3445; /* *avx512vl_cmpv2df3_zero_extenddi_2 */
22283 :
22284 : case 58:
22285 : if (!(
22286 : #line 4914 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22287 : (TARGET_AVX512BW
22288 : && (GET_MODE_NUNITS (V8HImode)
22289 : < GET_MODE_PRECISION (DImode))
22290 : && ix86_pre_reload_split ()) &&
22291 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22292 : (TARGET_AVX512VL)))
22293 : return -1;
22294 : return 3535; /* *avx512vl_cmpv8hi3_zero_extenddi_2 */
22295 :
22296 : case 59:
22297 : if (!(
22298 : #line 4722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22299 : (TARGET_AVX512F
22300 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22301 : && (GET_MODE_NUNITS (V32HFmode)
22302 : < GET_MODE_PRECISION (DImode))
22303 : && ix86_pre_reload_split ()) &&
22304 : #line 320 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22305 : (TARGET_AVX512FP16)))
22306 : return -1;
22307 : return 3421; /* *avx512bw_cmpv32hf3_zero_extenddi_2 */
22308 :
22309 : case 60:
22310 : if (!(
22311 : #line 4914 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22312 : (TARGET_AVX512BW
22313 : && (GET_MODE_NUNITS (V32QImode)
22314 : < GET_MODE_PRECISION (DImode))
22315 : && ix86_pre_reload_split ()) &&
22316 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22317 : (TARGET_AVX512VL)))
22318 : return -1;
22319 : return 3526; /* *avx512vl_cmpv32qi3_zero_extenddi_2 */
22320 :
22321 : case 61:
22322 : if (!
22323 : #line 4914 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22324 : (TARGET_AVX512BW
22325 : && (GET_MODE_NUNITS (V32HImode)
22326 : < GET_MODE_PRECISION (DImode))
22327 : && ix86_pre_reload_split ()))
22328 : return -1;
22329 : return 3529; /* *avx512bw_cmpv32hi3_zero_extenddi_2 */
22330 :
22331 : case 62:
22332 : if (!
22333 : #line 4914 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22334 : (TARGET_AVX512BW
22335 : && (GET_MODE_NUNITS (V64QImode)
22336 : < GET_MODE_PRECISION (DImode))
22337 : && ix86_pre_reload_split ()))
22338 : return -1;
22339 : return 3520; /* *avx512bw_cmpv64qi3_zero_extenddi_2 */
22340 :
22341 : case 63:
22342 : if (!
22343 : #line 5036 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22344 : (TARGET_AVX512BW
22345 : && ix86_pre_reload_split ()
22346 : && (GET_MODE_NUNITS (V64QImode)
22347 : < GET_MODE_PRECISION (HImode))
22348 : && ix86_pre_reload_split ()))
22349 : return -1;
22350 : return 3614; /* *avx512bw_ucmpv64qi3_zero_extendhi_2 */
22351 :
22352 : case 64:
22353 : if (!(
22354 : #line 5036 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22355 : (TARGET_AVX512BW
22356 : && ix86_pre_reload_split ()
22357 : && (GET_MODE_NUNITS (V16QImode)
22358 : < GET_MODE_PRECISION (HImode))
22359 : && ix86_pre_reload_split ()) &&
22360 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22361 : (TARGET_AVX512VL)))
22362 : return -1;
22363 : return 3617; /* *avx512vl_ucmpv16qi3_zero_extendhi_2 */
22364 :
22365 : case 65:
22366 : if (!(
22367 : #line 5036 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22368 : (TARGET_AVX512BW
22369 : && ix86_pre_reload_split ()
22370 : && (GET_MODE_NUNITS (V16HImode)
22371 : < GET_MODE_PRECISION (HImode))
22372 : && ix86_pre_reload_split ()) &&
22373 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22374 : (TARGET_AVX512VL)))
22375 : return -1;
22376 : return 3626; /* *avx512vl_ucmpv16hi3_zero_extendhi_2 */
22377 :
22378 : case 66:
22379 : if (!
22380 : #line 5128 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22381 : (TARGET_AVX512F
22382 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
22383 : && (GET_MODE_NUNITS (V16SImode)
22384 : < GET_MODE_PRECISION (HImode))
22385 : && ix86_pre_reload_split ()))
22386 : return -1;
22387 : return 3698; /* *avx512f_ucmpv16si3_zero_extendhi_2 */
22388 :
22389 : case 67:
22390 : if (!(
22391 : #line 5036 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22392 : (TARGET_AVX512BW
22393 : && ix86_pre_reload_split ()
22394 : && (GET_MODE_NUNITS (V32QImode)
22395 : < GET_MODE_PRECISION (HImode))
22396 : && ix86_pre_reload_split ()) &&
22397 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22398 : (TARGET_AVX512VL)))
22399 : return -1;
22400 : return 3620; /* *avx512vl_ucmpv32qi3_zero_extendhi_2 */
22401 :
22402 : case 68:
22403 : if (!
22404 : #line 5036 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22405 : (TARGET_AVX512BW
22406 : && ix86_pre_reload_split ()
22407 : && (GET_MODE_NUNITS (V32HImode)
22408 : < GET_MODE_PRECISION (HImode))
22409 : && ix86_pre_reload_split ()))
22410 : return -1;
22411 : return 3623; /* *avx512bw_ucmpv32hi3_zero_extendhi_2 */
22412 :
22413 : case 69:
22414 : if (!(
22415 : #line 5036 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22416 : (TARGET_AVX512BW
22417 : && ix86_pre_reload_split ()
22418 : && (GET_MODE_NUNITS (V8HImode)
22419 : < GET_MODE_PRECISION (HImode))
22420 : && ix86_pre_reload_split ()) &&
22421 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22422 : (TARGET_AVX512VL)))
22423 : return -1;
22424 : return 3629; /* *avx512vl_ucmpv8hi3_zero_extendhi_2 */
22425 :
22426 : case 70:
22427 : if (!(
22428 : #line 5128 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22429 : (TARGET_AVX512F
22430 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
22431 : && (GET_MODE_NUNITS (V8SImode)
22432 : < GET_MODE_PRECISION (HImode))
22433 : && ix86_pre_reload_split ()) &&
22434 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22435 : (TARGET_AVX512VL)))
22436 : return -1;
22437 : return 3699; /* *avx512vl_ucmpv8si3_zero_extendhi_2 */
22438 :
22439 : case 71:
22440 : if (!(
22441 : #line 5128 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22442 : (TARGET_AVX512F
22443 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
22444 : && (GET_MODE_NUNITS (V4SImode)
22445 : < GET_MODE_PRECISION (HImode))
22446 : && ix86_pre_reload_split ()) &&
22447 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22448 : (TARGET_AVX512VL)))
22449 : return -1;
22450 : return 3700; /* *avx512vl_ucmpv4si3_zero_extendhi_2 */
22451 :
22452 : case 72:
22453 : if (!
22454 : #line 5128 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22455 : (TARGET_AVX512F
22456 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
22457 : && (GET_MODE_NUNITS (V8DImode)
22458 : < GET_MODE_PRECISION (HImode))
22459 : && ix86_pre_reload_split ()))
22460 : return -1;
22461 : return 3701; /* *avx512f_ucmpv8di3_zero_extendhi_2 */
22462 :
22463 : case 73:
22464 : if (!(
22465 : #line 5128 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22466 : (TARGET_AVX512F
22467 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
22468 : && (GET_MODE_NUNITS (V4DImode)
22469 : < GET_MODE_PRECISION (HImode))
22470 : && ix86_pre_reload_split ()) &&
22471 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22472 : (TARGET_AVX512VL)))
22473 : return -1;
22474 : return 3702; /* *avx512vl_ucmpv4di3_zero_extendhi_2 */
22475 :
22476 : case 74:
22477 : if (!(
22478 : #line 5128 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22479 : (TARGET_AVX512F
22480 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
22481 : && (GET_MODE_NUNITS (V2DImode)
22482 : < GET_MODE_PRECISION (HImode))
22483 : && ix86_pre_reload_split ()) &&
22484 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22485 : (TARGET_AVX512VL)))
22486 : return -1;
22487 : return 3703; /* *avx512vl_ucmpv2di3_zero_extendhi_2 */
22488 :
22489 : case 75:
22490 : if (!
22491 : #line 5036 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22492 : (TARGET_AVX512BW
22493 : && ix86_pre_reload_split ()
22494 : && (GET_MODE_NUNITS (V64QImode)
22495 : < GET_MODE_PRECISION (SImode))
22496 : && ix86_pre_reload_split ()))
22497 : return -1;
22498 : return 3615; /* *avx512bw_ucmpv64qi3_zero_extendsi_2 */
22499 :
22500 : case 76:
22501 : if (!(
22502 : #line 5036 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22503 : (TARGET_AVX512BW
22504 : && ix86_pre_reload_split ()
22505 : && (GET_MODE_NUNITS (V16QImode)
22506 : < GET_MODE_PRECISION (SImode))
22507 : && ix86_pre_reload_split ()) &&
22508 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22509 : (TARGET_AVX512VL)))
22510 : return -1;
22511 : return 3618; /* *avx512vl_ucmpv16qi3_zero_extendsi_2 */
22512 :
22513 : case 77:
22514 : if (!(
22515 : #line 5036 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22516 : (TARGET_AVX512BW
22517 : && ix86_pre_reload_split ()
22518 : && (GET_MODE_NUNITS (V16HImode)
22519 : < GET_MODE_PRECISION (SImode))
22520 : && ix86_pre_reload_split ()) &&
22521 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22522 : (TARGET_AVX512VL)))
22523 : return -1;
22524 : return 3627; /* *avx512vl_ucmpv16hi3_zero_extendsi_2 */
22525 :
22526 : case 78:
22527 : if (!
22528 : #line 5128 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22529 : (TARGET_AVX512F
22530 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
22531 : && (GET_MODE_NUNITS (V16SImode)
22532 : < GET_MODE_PRECISION (SImode))
22533 : && ix86_pre_reload_split ()))
22534 : return -1;
22535 : return 3704; /* *avx512f_ucmpv16si3_zero_extendsi_2 */
22536 :
22537 : case 79:
22538 : if (!(
22539 : #line 5036 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22540 : (TARGET_AVX512BW
22541 : && ix86_pre_reload_split ()
22542 : && (GET_MODE_NUNITS (V32QImode)
22543 : < GET_MODE_PRECISION (SImode))
22544 : && ix86_pre_reload_split ()) &&
22545 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22546 : (TARGET_AVX512VL)))
22547 : return -1;
22548 : return 3621; /* *avx512vl_ucmpv32qi3_zero_extendsi_2 */
22549 :
22550 : case 80:
22551 : if (!
22552 : #line 5036 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22553 : (TARGET_AVX512BW
22554 : && ix86_pre_reload_split ()
22555 : && (GET_MODE_NUNITS (V32HImode)
22556 : < GET_MODE_PRECISION (SImode))
22557 : && ix86_pre_reload_split ()))
22558 : return -1;
22559 : return 3624; /* *avx512bw_ucmpv32hi3_zero_extendsi_2 */
22560 :
22561 : case 81:
22562 : if (!(
22563 : #line 5036 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22564 : (TARGET_AVX512BW
22565 : && ix86_pre_reload_split ()
22566 : && (GET_MODE_NUNITS (V8HImode)
22567 : < GET_MODE_PRECISION (SImode))
22568 : && ix86_pre_reload_split ()) &&
22569 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22570 : (TARGET_AVX512VL)))
22571 : return -1;
22572 : return 3630; /* *avx512vl_ucmpv8hi3_zero_extendsi_2 */
22573 :
22574 : case 82:
22575 : if (!(
22576 : #line 5128 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22577 : (TARGET_AVX512F
22578 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
22579 : && (GET_MODE_NUNITS (V8SImode)
22580 : < GET_MODE_PRECISION (SImode))
22581 : && ix86_pre_reload_split ()) &&
22582 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22583 : (TARGET_AVX512VL)))
22584 : return -1;
22585 : return 3705; /* *avx512vl_ucmpv8si3_zero_extendsi_2 */
22586 :
22587 : case 83:
22588 : if (!(
22589 : #line 5128 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22590 : (TARGET_AVX512F
22591 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
22592 : && (GET_MODE_NUNITS (V4SImode)
22593 : < GET_MODE_PRECISION (SImode))
22594 : && ix86_pre_reload_split ()) &&
22595 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22596 : (TARGET_AVX512VL)))
22597 : return -1;
22598 : return 3706; /* *avx512vl_ucmpv4si3_zero_extendsi_2 */
22599 :
22600 : case 84:
22601 : if (!
22602 : #line 5128 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22603 : (TARGET_AVX512F
22604 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
22605 : && (GET_MODE_NUNITS (V8DImode)
22606 : < GET_MODE_PRECISION (SImode))
22607 : && ix86_pre_reload_split ()))
22608 : return -1;
22609 : return 3707; /* *avx512f_ucmpv8di3_zero_extendsi_2 */
22610 :
22611 : case 85:
22612 : if (!(
22613 : #line 5128 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22614 : (TARGET_AVX512F
22615 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
22616 : && (GET_MODE_NUNITS (V4DImode)
22617 : < GET_MODE_PRECISION (SImode))
22618 : && ix86_pre_reload_split ()) &&
22619 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22620 : (TARGET_AVX512VL)))
22621 : return -1;
22622 : return 3708; /* *avx512vl_ucmpv4di3_zero_extendsi_2 */
22623 :
22624 : case 86:
22625 : if (!(
22626 : #line 5128 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22627 : (TARGET_AVX512F
22628 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
22629 : && (GET_MODE_NUNITS (V2DImode)
22630 : < GET_MODE_PRECISION (SImode))
22631 : && ix86_pre_reload_split ()) &&
22632 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22633 : (TARGET_AVX512VL)))
22634 : return -1;
22635 : return 3709; /* *avx512vl_ucmpv2di3_zero_extendsi_2 */
22636 :
22637 : case 87:
22638 : if (!
22639 : #line 5036 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22640 : (TARGET_AVX512BW
22641 : && ix86_pre_reload_split ()
22642 : && (GET_MODE_NUNITS (V64QImode)
22643 : < GET_MODE_PRECISION (DImode))
22644 : && ix86_pre_reload_split ()))
22645 : return -1;
22646 : return 3616; /* *avx512bw_ucmpv64qi3_zero_extenddi_2 */
22647 :
22648 : case 88:
22649 : if (!(
22650 : #line 5036 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22651 : (TARGET_AVX512BW
22652 : && ix86_pre_reload_split ()
22653 : && (GET_MODE_NUNITS (V16QImode)
22654 : < GET_MODE_PRECISION (DImode))
22655 : && ix86_pre_reload_split ()) &&
22656 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22657 : (TARGET_AVX512VL)))
22658 : return -1;
22659 : return 3619; /* *avx512vl_ucmpv16qi3_zero_extenddi_2 */
22660 :
22661 : case 89:
22662 : if (!(
22663 : #line 5036 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22664 : (TARGET_AVX512BW
22665 : && ix86_pre_reload_split ()
22666 : && (GET_MODE_NUNITS (V16HImode)
22667 : < GET_MODE_PRECISION (DImode))
22668 : && ix86_pre_reload_split ()) &&
22669 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22670 : (TARGET_AVX512VL)))
22671 : return -1;
22672 : return 3628; /* *avx512vl_ucmpv16hi3_zero_extenddi_2 */
22673 :
22674 : case 90:
22675 : if (!
22676 : #line 5128 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22677 : (TARGET_AVX512F
22678 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22679 : && (GET_MODE_NUNITS (V16SImode)
22680 : < GET_MODE_PRECISION (DImode))
22681 : && ix86_pre_reload_split ()))
22682 : return -1;
22683 : return 3710; /* *avx512f_ucmpv16si3_zero_extenddi_2 */
22684 :
22685 : case 91:
22686 : if (!(
22687 : #line 5036 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22688 : (TARGET_AVX512BW
22689 : && ix86_pre_reload_split ()
22690 : && (GET_MODE_NUNITS (V32QImode)
22691 : < GET_MODE_PRECISION (DImode))
22692 : && ix86_pre_reload_split ()) &&
22693 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22694 : (TARGET_AVX512VL)))
22695 : return -1;
22696 : return 3622; /* *avx512vl_ucmpv32qi3_zero_extenddi_2 */
22697 :
22698 : case 92:
22699 : if (!
22700 : #line 5036 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22701 : (TARGET_AVX512BW
22702 : && ix86_pre_reload_split ()
22703 : && (GET_MODE_NUNITS (V32HImode)
22704 : < GET_MODE_PRECISION (DImode))
22705 : && ix86_pre_reload_split ()))
22706 : return -1;
22707 : return 3625; /* *avx512bw_ucmpv32hi3_zero_extenddi_2 */
22708 :
22709 : case 93:
22710 : if (!(
22711 : #line 5036 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22712 : (TARGET_AVX512BW
22713 : && ix86_pre_reload_split ()
22714 : && (GET_MODE_NUNITS (V8HImode)
22715 : < GET_MODE_PRECISION (DImode))
22716 : && ix86_pre_reload_split ()) &&
22717 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22718 : (TARGET_AVX512VL)))
22719 : return -1;
22720 : return 3631; /* *avx512vl_ucmpv8hi3_zero_extenddi_2 */
22721 :
22722 : case 94:
22723 : if (!(
22724 : #line 5128 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22725 : (TARGET_AVX512F
22726 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22727 : && (GET_MODE_NUNITS (V8SImode)
22728 : < GET_MODE_PRECISION (DImode))
22729 : && ix86_pre_reload_split ()) &&
22730 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22731 : (TARGET_AVX512VL)))
22732 : return -1;
22733 : return 3711; /* *avx512vl_ucmpv8si3_zero_extenddi_2 */
22734 :
22735 : case 95:
22736 : if (!(
22737 : #line 5128 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22738 : (TARGET_AVX512F
22739 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22740 : && (GET_MODE_NUNITS (V4SImode)
22741 : < GET_MODE_PRECISION (DImode))
22742 : && ix86_pre_reload_split ()) &&
22743 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22744 : (TARGET_AVX512VL)))
22745 : return -1;
22746 : return 3712; /* *avx512vl_ucmpv4si3_zero_extenddi_2 */
22747 :
22748 : case 96:
22749 : if (!
22750 : #line 5128 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22751 : (TARGET_AVX512F
22752 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22753 : && (GET_MODE_NUNITS (V8DImode)
22754 : < GET_MODE_PRECISION (DImode))
22755 : && ix86_pre_reload_split ()))
22756 : return -1;
22757 : return 3713; /* *avx512f_ucmpv8di3_zero_extenddi_2 */
22758 :
22759 : case 97:
22760 : if (!(
22761 : #line 5128 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22762 : (TARGET_AVX512F
22763 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22764 : && (GET_MODE_NUNITS (V4DImode)
22765 : < GET_MODE_PRECISION (DImode))
22766 : && ix86_pre_reload_split ()) &&
22767 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22768 : (TARGET_AVX512VL)))
22769 : return -1;
22770 : return 3714; /* *avx512vl_ucmpv4di3_zero_extenddi_2 */
22771 :
22772 : case 98:
22773 : if (!(
22774 : #line 5128 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22775 : (TARGET_AVX512F
22776 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22777 : && (GET_MODE_NUNITS (V2DImode)
22778 : < GET_MODE_PRECISION (DImode))
22779 : && ix86_pre_reload_split ()) &&
22780 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22781 : (TARGET_AVX512VL)))
22782 : return -1;
22783 : return 3715; /* *avx512vl_ucmpv2di3_zero_extenddi_2 */
22784 :
22785 : default:
22786 : return -1;
22787 : }
22788 : }
22789 :
22790 : int
22791 : recog_411 (rtx x1 ATTRIBUTE_UNUSED,
22792 : rtx_insn *insn ATTRIBUTE_UNUSED,
22793 : int *pnum_clobbers ATTRIBUTE_UNUSED)
22794 : {
22795 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
22796 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
22797 : rtx x10, x11;
22798 : int res ATTRIBUTE_UNUSED;
22799 : x2 = XVECEXP (x1, 0, 0);
22800 : x3 = XEXP (x2, 1);
22801 : x4 = XEXP (x3, 0);
22802 : switch (GET_CODE (x4))
22803 : {
22804 : case REG:
22805 : case SUBREG:
22806 : case MEM:
22807 : operands[1] = x4;
22808 : res = recog_409 (x1, insn, pnum_clobbers);
22809 : if (res >= 0)
22810 : return res;
22811 : if (GET_CODE (x4) != SUBREG
22812 : || maybe_ne (SUBREG_BYTE (x4), 0))
22813 : return -1;
22814 : x5 = XEXP (x4, 0);
22815 : switch (GET_CODE (x5))
22816 : {
22817 : case ASHIFTRT:
22818 : case LSHIFTRT:
22819 : case SIGN_EXTRACT:
22820 : case ZERO_EXTRACT:
22821 : operands[3] = x5;
22822 : x6 = XVECEXP (x1, 0, 1);
22823 : if (pattern237 (x6,
22824 : E_CCmode,
22825 : 17) != 0
22826 : || GET_MODE (x3) != E_QImode
22827 : || GET_MODE (x4) != E_QImode)
22828 : return -1;
22829 : x7 = XEXP (x5, 0);
22830 : operands[2] = x7;
22831 : switch (pattern1534 (x2))
22832 : {
22833 : case 0:
22834 : if (
22835 : #line 13578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22836 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
22837 : return 759; /* *andqi_exthi_1_slp */
22838 : break;
22839 :
22840 : case 1:
22841 : if (
22842 : #line 13578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22843 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
22844 : return 762; /* *andqi_extsi_1_slp */
22845 : break;
22846 :
22847 : case 2:
22848 : if ((
22849 : #line 13578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22850 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
22851 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22852 : (TARGET_64BIT)))
22853 : return 765; /* *andqi_extdi_1_slp */
22854 : break;
22855 :
22856 : case 3:
22857 : return 783; /* *andqi_exthi_0 */
22858 :
22859 : case 4:
22860 : return 786; /* *andqi_extsi_0 */
22861 :
22862 : case 5:
22863 : if (
22864 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22865 : (TARGET_64BIT))
22866 : return 789; /* *andqi_extdi_0 */
22867 : break;
22868 :
22869 : default:
22870 : break;
22871 : }
22872 : x8 = XEXP (x3, 1);
22873 : if (GET_CODE (x8) != SUBREG)
22874 : return -1;
22875 : switch (pattern1535 (x2))
22876 : {
22877 : case 0:
22878 : if (!
22879 : #line 13607 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22880 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
22881 : return -1;
22882 : return 768; /* *andqi_exthi_2_slp */
22883 :
22884 : case 1:
22885 : if (!
22886 : #line 13607 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22887 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
22888 : return -1;
22889 : return 771; /* *andqi_extsi_2_slp */
22890 :
22891 : case 2:
22892 : if (!(
22893 : #line 13607 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22894 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
22895 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22896 : (TARGET_64BIT)))
22897 : return -1;
22898 : return 774; /* *andqi_extdi_2_slp */
22899 :
22900 : case 3:
22901 : return 792; /* *andqi_ext2hi_0 */
22902 :
22903 : case 4:
22904 : return 795; /* *andqi_ext2si_0 */
22905 :
22906 : case 5:
22907 : if (!
22908 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22909 : (TARGET_64BIT))
22910 : return -1;
22911 : return 798; /* *andqi_ext2di_0 */
22912 :
22913 : default:
22914 : return -1;
22915 : }
22916 :
22917 : case ROTATE:
22918 : if (GET_MODE (x5) != E_SImode)
22919 : return -1;
22920 : x7 = XEXP (x5, 0);
22921 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + -2])
22922 : return -1;
22923 : x6 = XVECEXP (x1, 0, 1);
22924 : if (pattern377 (x6) != 0)
22925 : return -1;
22926 : switch (pattern1442 (x2))
22927 : {
22928 : case 0:
22929 : if (!
22930 : #line 19902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22931 : (TARGET_USE_BT && ix86_pre_reload_split ()))
22932 : return -1;
22933 : return 1441; /* *btrqi_1 */
22934 :
22935 : case 1:
22936 : if (!
22937 : #line 19902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22938 : (TARGET_USE_BT && ix86_pre_reload_split ()))
22939 : return -1;
22940 : return 1442; /* *btrhi_1 */
22941 :
22942 : default:
22943 : return -1;
22944 : }
22945 :
22946 : case CTZ:
22947 : switch (pattern833 (x1, pnum_clobbers))
22948 : {
22949 : case 0:
22950 : if (!
22951 : #line 22133 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22952 : (TARGET_BMI && TARGET_64BIT))
22953 : return -1;
22954 : return 1548; /* *ctzsi2_zext */
22955 :
22956 : case 1:
22957 : if (!
22958 : #line 22164 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22959 : (TARGET_BMI && TARGET_64BIT))
22960 : return -1;
22961 : *pnum_clobbers = 1;
22962 : return 1549; /* *ctzsi2_zext_falsedep */
22963 :
22964 : default:
22965 : return -1;
22966 : }
22967 :
22968 : case CLZ:
22969 : if (GET_MODE (x5) != E_SImode)
22970 : return -1;
22971 : x8 = XEXP (x3, 1);
22972 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 63])
22973 : return -1;
22974 : x9 = XEXP (x2, 0);
22975 : operands[0] = x9;
22976 : if (!register_operand (operands[0], E_DImode)
22977 : || GET_MODE (x3) != E_DImode
22978 : || GET_MODE (x4) != E_DImode)
22979 : return -1;
22980 : x7 = XEXP (x5, 0);
22981 : operands[1] = x7;
22982 : x6 = XVECEXP (x1, 0, 1);
22983 : switch (pattern832 (x6, pnum_clobbers))
22984 : {
22985 : case 0:
22986 : if (!nonimmediate_operand (operands[1], E_SImode)
22987 : || !
22988 : #line 22582 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22989 : (TARGET_LZCNT && TARGET_64BIT))
22990 : return -1;
22991 : return 1572; /* *clzsi2_lzcnt_zext */
22992 :
22993 : case 1:
22994 : switch (GET_MODE (operands[1]))
22995 : {
22996 : case E_SImode:
22997 : if (!nonimmediate_operand (operands[1], E_SImode)
22998 : || !
22999 : #line 22610 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23000 : (TARGET_LZCNT))
23001 : return -1;
23002 : *pnum_clobbers = 1;
23003 : return 1573; /* *clzsi2_lzcnt_zext_falsedep */
23004 :
23005 : case E_DImode:
23006 : if (!nonimmediate_operand (operands[1], E_DImode)
23007 : || !(
23008 : #line 22610 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23009 : (TARGET_LZCNT) &&
23010 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23011 : (TARGET_64BIT)))
23012 : return -1;
23013 : *pnum_clobbers = 1;
23014 : return 1574; /* *clzsi2_lzcnt_zext_falsedep */
23015 :
23016 : default:
23017 : return -1;
23018 : }
23019 :
23020 : default:
23021 : return -1;
23022 : }
23023 :
23024 : case POPCOUNT:
23025 : switch (pattern833 (x1, pnum_clobbers))
23026 : {
23027 : case 0:
23028 : if (!
23029 : #line 23409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23030 : (TARGET_POPCNT && TARGET_64BIT))
23031 : return -1;
23032 : return 1664; /* *popcountsi2_zext */
23033 :
23034 : case 1:
23035 : if (!
23036 : #line 23443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23037 : (TARGET_POPCNT && TARGET_64BIT))
23038 : return -1;
23039 : *pnum_clobbers = 1;
23040 : return 1665; /* *popcountsi2_zext_falsedep */
23041 :
23042 : default:
23043 : return -1;
23044 : }
23045 :
23046 : default:
23047 : return -1;
23048 : }
23049 :
23050 : case NOT:
23051 : x9 = XEXP (x2, 0);
23052 : operands[0] = x9;
23053 : x5 = XEXP (x4, 0);
23054 : switch (GET_CODE (x5))
23055 : {
23056 : case REG:
23057 : case SUBREG:
23058 : operands[1] = x5;
23059 : res = recog_410 (x1, insn, pnum_clobbers);
23060 : if (res >= 0)
23061 : return res;
23062 : if (GET_CODE (x5) != SUBREG
23063 : || maybe_ne (SUBREG_BYTE (x5), 0)
23064 : || GET_MODE (x5) != E_QImode)
23065 : return -1;
23066 : x7 = XEXP (x5, 0);
23067 : if (GET_CODE (x7) != LSHIFTRT)
23068 : return -1;
23069 : x8 = XEXP (x3, 1);
23070 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
23071 : return -1;
23072 : x6 = XVECEXP (x1, 0, 1);
23073 : if (pattern237 (x6,
23074 : E_CCmode,
23075 : 17) != 0)
23076 : return -1;
23077 : switch (pattern1538 (x3))
23078 : {
23079 : case 0:
23080 : if (!
23081 : #line 20342 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23082 : (TARGET_USE_BT && ix86_pre_reload_split ()))
23083 : return -1;
23084 : return 1466; /* *btsi_setncqi */
23085 :
23086 : case 1:
23087 : if (!(
23088 : #line 20342 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23089 : (TARGET_USE_BT && ix86_pre_reload_split ()) &&
23090 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23091 : (TARGET_64BIT)))
23092 : return -1;
23093 : return 1467; /* *btdi_setncqi */
23094 :
23095 : default:
23096 : return -1;
23097 : }
23098 :
23099 : case LSHIFTRT:
23100 : x8 = XEXP (x3, 1);
23101 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
23102 : return -1;
23103 : x6 = XVECEXP (x1, 0, 1);
23104 : if (pattern237 (x6,
23105 : E_CCmode,
23106 : 17) != 0)
23107 : return -1;
23108 : switch (pattern1257 (x3))
23109 : {
23110 : case 0:
23111 : if (!
23112 : #line 20360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23113 : (TARGET_USE_BT && ix86_pre_reload_split ()))
23114 : return -1;
23115 : return 1468; /* *btsi_setncsi */
23116 :
23117 : case 1:
23118 : if (!(
23119 : #line 20360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23120 : (TARGET_USE_BT && ix86_pre_reload_split ()) &&
23121 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23122 : (TARGET_64BIT)))
23123 : return -1;
23124 : return 1469; /* *btdi_setncdi */
23125 :
23126 : default:
23127 : return -1;
23128 : }
23129 :
23130 : case ASHIFT:
23131 : x7 = XEXP (x5, 0);
23132 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + -1])
23133 : return -1;
23134 : x6 = XVECEXP (x1, 0, 1);
23135 : if (pattern237 (x6,
23136 : E_CCmode,
23137 : 17) != 0)
23138 : return -1;
23139 : switch (pattern1259 (x3))
23140 : {
23141 : case 0:
23142 : if (!
23143 : #line 23110 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23144 : (TARGET_BMI2))
23145 : return -1;
23146 : return 1628; /* *bmi2_bzhi_si3_3 */
23147 :
23148 : case 1:
23149 : if (!(
23150 : #line 23110 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23151 : (TARGET_BMI2) &&
23152 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23153 : (TARGET_64BIT)))
23154 : return -1;
23155 : return 1629; /* *bmi2_bzhi_di3_3 */
23156 :
23157 : default:
23158 : return -1;
23159 : }
23160 :
23161 : default:
23162 : return -1;
23163 : }
23164 :
23165 : case ROTATE:
23166 : switch (pattern376 (x1,
23167 : -2))
23168 : {
23169 : case 0:
23170 : x10 = XEXP (x4, 1);
23171 : operands[2] = x10;
23172 : if (register_operand (operands[2], E_QImode))
23173 : {
23174 : switch (pattern951 (x3))
23175 : {
23176 : case 0:
23177 : if (
23178 : #line 19832 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23179 : (TARGET_USE_BT))
23180 : return 1435; /* *btrsi */
23181 : break;
23182 :
23183 : case 1:
23184 : if ((
23185 : #line 19832 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23186 : (TARGET_USE_BT) &&
23187 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23188 : (TARGET_64BIT)))
23189 : return 1436; /* *btrdi */
23190 : break;
23191 :
23192 : default:
23193 : break;
23194 : }
23195 : }
23196 : if (GET_CODE (x10) != SUBREG)
23197 : return -1;
23198 : switch (pattern1339 (x3))
23199 : {
23200 : case 0:
23201 : if (!
23202 : #line 19852 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23203 : (TARGET_USE_BT
23204 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (SImode)-1))
23205 : == GET_MODE_BITSIZE (SImode)-1
23206 : && ix86_pre_reload_split ()))
23207 : return -1;
23208 : return 1437; /* *btrsi_mask */
23209 :
23210 : case 1:
23211 : if (!(
23212 : #line 19852 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23213 : (TARGET_USE_BT
23214 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (DImode)-1))
23215 : == GET_MODE_BITSIZE (DImode)-1
23216 : && ix86_pre_reload_split ()) &&
23217 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23218 : (TARGET_64BIT)))
23219 : return -1;
23220 : return 1438; /* *btrdi_mask */
23221 :
23222 : default:
23223 : return -1;
23224 : }
23225 :
23226 : case 1:
23227 : if (!
23228 : #line 19880 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23229 : (TARGET_USE_BT
23230 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (SImode)-1))
23231 : == GET_MODE_BITSIZE (SImode)-1
23232 : && ix86_pre_reload_split ()))
23233 : return -1;
23234 : return 1439; /* *btrsi_mask_1 */
23235 :
23236 : case 2:
23237 : if (!(
23238 : #line 19880 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23239 : (TARGET_USE_BT
23240 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (DImode)-1))
23241 : == GET_MODE_BITSIZE (DImode)-1
23242 : && ix86_pre_reload_split ()) &&
23243 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23244 : (TARGET_64BIT)))
23245 : return -1;
23246 : return 1440; /* *btrdi_mask_1 */
23247 :
23248 : default:
23249 : return -1;
23250 : }
23251 :
23252 : case NEG:
23253 : x6 = XVECEXP (x1, 0, 1);
23254 : if (pattern377 (x6) != 0)
23255 : return -1;
23256 : switch (pattern955 (x2))
23257 : {
23258 : case 0:
23259 : if (!
23260 : #line 22787 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23261 : (TARGET_BMI))
23262 : return -1;
23263 : return 1602; /* *bmi_blsi_si */
23264 :
23265 : case 1:
23266 : if (!(
23267 : #line 22787 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23268 : (TARGET_BMI) &&
23269 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23270 : (TARGET_64BIT)))
23271 : return -1;
23272 : return 1603; /* *bmi_blsi_di */
23273 :
23274 : default:
23275 : return -1;
23276 : }
23277 :
23278 : case PLUS:
23279 : x10 = XEXP (x4, 1);
23280 : if (GET_CODE (x10) != CONST_INT
23281 : || pattern346 (x1) != 0)
23282 : return -1;
23283 : x5 = XEXP (x4, 0);
23284 : switch (GET_CODE (x5))
23285 : {
23286 : case REG:
23287 : case SUBREG:
23288 : case MEM:
23289 : operands[1] = x5;
23290 : switch (XWINT (x10, 0))
23291 : {
23292 : case -1L:
23293 : switch (pattern1338 (x3))
23294 : {
23295 : case 0:
23296 : if (!
23297 : #line 22932 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23298 : (TARGET_BMI))
23299 : return -1;
23300 : return 1614; /* *bmi_blsr_si */
23301 :
23302 : case 1:
23303 : if (!(
23304 : #line 22932 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23305 : (TARGET_BMI) &&
23306 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23307 : (TARGET_64BIT)))
23308 : return -1;
23309 : return 1615; /* *bmi_blsr_di */
23310 :
23311 : case 2:
23312 : if (!
23313 : #line 23303 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23314 : (TARGET_TBM))
23315 : return -1;
23316 : return 1654; /* *tbm_tzmsk_si */
23317 :
23318 : case 3:
23319 : if (!(
23320 : #line 23303 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23321 : (TARGET_TBM) &&
23322 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23323 : (TARGET_64BIT)))
23324 : return -1;
23325 : return 1655; /* *tbm_tzmsk_di */
23326 :
23327 : default:
23328 : return -1;
23329 : }
23330 :
23331 : case 1L:
23332 : switch (pattern1338 (x3))
23333 : {
23334 : case 0:
23335 : if (!
23336 : #line 23194 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23337 : (TARGET_TBM))
23338 : return -1;
23339 : return 1638; /* *tbm_blcfill_si */
23340 :
23341 : case 1:
23342 : if (!(
23343 : #line 23194 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23344 : (TARGET_TBM) &&
23345 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23346 : (TARGET_64BIT)))
23347 : return -1;
23348 : return 1639; /* *tbm_blcfill_di */
23349 :
23350 : case 2:
23351 : if (!
23352 : #line 23222 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23353 : (TARGET_TBM))
23354 : return -1;
23355 : return 1642; /* *tbm_blcic_si */
23356 :
23357 : case 3:
23358 : if (!(
23359 : #line 23222 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23360 : (TARGET_TBM) &&
23361 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23362 : (TARGET_64BIT)))
23363 : return -1;
23364 : return 1643; /* *tbm_blcic_di */
23365 :
23366 : default:
23367 : return -1;
23368 : }
23369 :
23370 : default:
23371 : return -1;
23372 : }
23373 :
23374 : case ASHIFT:
23375 : x7 = XEXP (x5, 0);
23376 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
23377 : || XWINT (x10, 0) != -1L)
23378 : return -1;
23379 : switch (pattern1259 (x3))
23380 : {
23381 : case 0:
23382 : if (!
23383 : #line 23096 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23384 : (TARGET_BMI2))
23385 : return -1;
23386 : return 1626; /* *bmi2_bzhi_si3_2 */
23387 :
23388 : case 1:
23389 : if (!(
23390 : #line 23096 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23391 : (TARGET_BMI2) &&
23392 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23393 : (TARGET_64BIT)))
23394 : return -1;
23395 : return 1627; /* *bmi2_bzhi_di3_2 */
23396 :
23397 : default:
23398 : return -1;
23399 : }
23400 :
23401 : default:
23402 : return -1;
23403 : }
23404 :
23405 : case ZERO_EXTEND:
23406 : if (GET_MODE (x4) != E_DImode)
23407 : return -1;
23408 : x5 = XEXP (x4, 0);
23409 : if (GET_CODE (x5) != PLUS
23410 : || pattern706 (x5) != 0
23411 : || pattern576 (x1) != 0)
23412 : return -1;
23413 : x7 = XEXP (x5, 0);
23414 : x11 = XEXP (x7, 1);
23415 : operands[2] = x11;
23416 : if (!register_operand (operands[2], E_QImode))
23417 : return -1;
23418 : x8 = XEXP (x3, 1);
23419 : operands[1] = x8;
23420 : if (!nonimmediate_operand (operands[1], E_DImode)
23421 : || !
23422 : #line 23142 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23423 : (TARGET_64BIT && TARGET_BMI2))
23424 : return -1;
23425 : return 1631; /* *bmi2_bzhi_zero_extendsidi_5 */
23426 :
23427 : default:
23428 : return -1;
23429 : }
23430 : }
23431 :
23432 : int
23433 : recog_428 (rtx x1 ATTRIBUTE_UNUSED,
23434 : rtx_insn *insn ATTRIBUTE_UNUSED,
23435 : int *pnum_clobbers ATTRIBUTE_UNUSED)
23436 : {
23437 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
23438 : rtx x2, x3, x4, x5;
23439 : int res ATTRIBUTE_UNUSED;
23440 : x2 = XVECEXP (x1, 0, 0);
23441 : x3 = XEXP (x2, 1);
23442 : switch (GET_CODE (x3))
23443 : {
23444 : case CONST_INT:
23445 : case CONST_WIDE_INT:
23446 : case CONST_POLY_INT:
23447 : case CONST_FIXED:
23448 : case CONST_DOUBLE:
23449 : case CONST_VECTOR:
23450 : case CONST:
23451 : case REG:
23452 : case SUBREG:
23453 : case MEM:
23454 : case LABEL_REF:
23455 : case SYMBOL_REF:
23456 : case HIGH:
23457 : res = recog_365 (x1, insn, pnum_clobbers);
23458 : if (res >= 0)
23459 : return res;
23460 : break;
23461 :
23462 : case ASHIFTRT:
23463 : case LSHIFTRT:
23464 : case SIGN_EXTRACT:
23465 : case ZERO_EXTRACT:
23466 : res = recog_371 (x1, insn, pnum_clobbers);
23467 : if (res >= 0)
23468 : return res;
23469 : break;
23470 :
23471 : case UNSPEC:
23472 : res = recog_377 (x1, insn, pnum_clobbers);
23473 : if (res >= 0)
23474 : return res;
23475 : break;
23476 :
23477 : case ZERO_EXTEND:
23478 : res = recog_381 (x1, insn, pnum_clobbers);
23479 : if (res >= 0)
23480 : return res;
23481 : break;
23482 :
23483 : case UNSIGNED_FIX:
23484 : res = recog_382 (x1, insn, pnum_clobbers);
23485 : if (res >= 0)
23486 : return res;
23487 : break;
23488 :
23489 : case FIX:
23490 : res = recog_383 (x1, insn, pnum_clobbers);
23491 : if (res >= 0)
23492 : return res;
23493 : break;
23494 :
23495 : case FLOAT:
23496 : res = recog_384 (x1, insn, pnum_clobbers);
23497 : if (res >= 0)
23498 : return res;
23499 : break;
23500 :
23501 : case UNSIGNED_FLOAT:
23502 : res = recog_385 (x1, insn, pnum_clobbers);
23503 : if (res >= 0)
23504 : return res;
23505 : break;
23506 :
23507 : case PLUS:
23508 : res = recog_387 (x1, insn, pnum_clobbers);
23509 : if (res >= 0)
23510 : return res;
23511 : break;
23512 :
23513 : case COMPARE:
23514 : res = recog_399 (x1, insn, pnum_clobbers);
23515 : if (res >= 0)
23516 : return res;
23517 : break;
23518 :
23519 : case NE:
23520 : case EQ:
23521 : case GE:
23522 : case GT:
23523 : case LE:
23524 : case LT:
23525 : case LTGT:
23526 : case GEU:
23527 : case GTU:
23528 : case LEU:
23529 : case LTU:
23530 : case UNORDERED:
23531 : case ORDERED:
23532 : case UNEQ:
23533 : case UNGE:
23534 : case UNGT:
23535 : case UNLE:
23536 : case UNLT:
23537 : switch (GET_CODE (x3))
23538 : {
23539 : case NE:
23540 : case EQ:
23541 : if (GET_CODE (x3) == EQ)
23542 : {
23543 : res = recog_400 (x1, insn, pnum_clobbers);
23544 : if (res >= 0)
23545 : return res;
23546 : }
23547 : operands[1] = x3;
23548 : switch (pattern564 (x1))
23549 : {
23550 : case 0:
23551 : if ((
23552 : #line 2420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23553 : (TARGET_AVX512BW) &&
23554 : #line 1588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23555 : (TARGET_AVX512DQ)))
23556 : return 2695; /* *kortest_cmpqi_setcc */
23557 : break;
23558 :
23559 : case 1:
23560 : if (
23561 : #line 2420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23562 : (TARGET_AVX512BW))
23563 : return 2696; /* *kortest_cmphi_setcc */
23564 : break;
23565 :
23566 : case 2:
23567 : if (
23568 : #line 2420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23569 : (TARGET_AVX512BW))
23570 : return 2697; /* *kortest_cmpsi_setcc */
23571 : break;
23572 :
23573 : case 3:
23574 : if ((
23575 : #line 2420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23576 : (TARGET_AVX512BW) &&
23577 : #line 1589 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23578 : (TARGET_AVX512BW && TARGET_64BIT)))
23579 : return 2698; /* *kortest_cmpdi_setcc */
23580 : break;
23581 :
23582 : default:
23583 : break;
23584 : }
23585 : break;
23586 :
23587 : case GT:
23588 : if (pattern372 (x1) == 0
23589 : &&
23590 : #line 1238 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23591 : (TARGET_3DNOW))
23592 : return 2124; /* mmx_gtv2sf3 */
23593 : break;
23594 :
23595 : case GE:
23596 : if (pattern372 (x1) == 0
23597 : &&
23598 : #line 1249 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23599 : (TARGET_3DNOW))
23600 : return 2125; /* mmx_gev2sf3 */
23601 : break;
23602 :
23603 : default:
23604 : break;
23605 : }
23606 : operands[1] = x3;
23607 : switch (pattern373 (x1))
23608 : {
23609 : case 0:
23610 : if (
23611 : #line 20496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23612 : (!TARGET_PARTIAL_REG_STALL
23613 : && TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)))
23614 : return 1478; /* *setcc_hi_1_and */
23615 : break;
23616 :
23617 : case 1:
23618 : if (
23619 : #line 20496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23620 : (!TARGET_PARTIAL_REG_STALL
23621 : && TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)))
23622 : return 1479; /* *setcc_si_1_and */
23623 : break;
23624 :
23625 : default:
23626 : break;
23627 : }
23628 : break;
23629 :
23630 : case MINUS:
23631 : res = recog_403 (x1, insn, pnum_clobbers);
23632 : if (res >= 0)
23633 : return res;
23634 : break;
23635 :
23636 : case IF_THEN_ELSE:
23637 : res = recog_405 (x1, insn, pnum_clobbers);
23638 : if (res >= 0)
23639 : return res;
23640 : break;
23641 :
23642 : case MULT:
23643 : res = recog_406 (x1, insn, pnum_clobbers);
23644 : if (res >= 0)
23645 : return res;
23646 : break;
23647 :
23648 : case DIV:
23649 : if (pnum_clobbers != NULL)
23650 : {
23651 : switch (pattern225 (x1))
23652 : {
23653 : case 0:
23654 : switch (GET_MODE (operands[0]))
23655 : {
23656 : case E_HImode:
23657 : if (pattern393 (x1,
23658 : E_HImode) == 0
23659 : &&
23660 : #line 1222 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23661 : (TARGET_HIMODE_MATH))
23662 : {
23663 : *pnum_clobbers = 1;
23664 : return 675; /* *divmodhi4 */
23665 : }
23666 : break;
23667 :
23668 : case E_SImode:
23669 : if (pattern393 (x1,
23670 : E_SImode) == 0)
23671 : {
23672 : *pnum_clobbers = 1;
23673 : return 676; /* *divmodsi4 */
23674 : }
23675 : break;
23676 :
23677 : case E_DImode:
23678 : if (pattern393 (x1,
23679 : E_DImode) == 0
23680 : &&
23681 : #line 1223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23682 : (TARGET_64BIT))
23683 : {
23684 : *pnum_clobbers = 1;
23685 : return 677; /* *divmoddi4 */
23686 : }
23687 : break;
23688 :
23689 : default:
23690 : break;
23691 : }
23692 : break;
23693 :
23694 : case 1:
23695 : if (const_int_operand (operands[2], E_SImode)
23696 : && pattern1503 (x1) == 0
23697 : &&
23698 : #line 12683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23699 : (!optimize_function_for_size_p (cfun)))
23700 : {
23701 : *pnum_clobbers = 1;
23702 : return 705; /* *divmodsi4_const */
23703 : }
23704 : break;
23705 :
23706 : default:
23707 : break;
23708 : }
23709 : }
23710 : break;
23711 :
23712 : case UDIV:
23713 : if (pnum_clobbers != NULL)
23714 : {
23715 : switch (pattern226 (x1))
23716 : {
23717 : case 0:
23718 : switch (GET_MODE (operands[0]))
23719 : {
23720 : case E_HImode:
23721 : if (pattern393 (x1,
23722 : E_HImode) == 0
23723 : &&
23724 : #line 1222 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23725 : (TARGET_HIMODE_MATH))
23726 : {
23727 : *pnum_clobbers = 1;
23728 : return 678; /* *udivmodhi4 */
23729 : }
23730 : break;
23731 :
23732 : case E_SImode:
23733 : if (pattern393 (x1,
23734 : E_SImode) == 0)
23735 : {
23736 : *pnum_clobbers = 1;
23737 : return 679; /* *udivmodsi4 */
23738 : }
23739 : break;
23740 :
23741 : case E_DImode:
23742 : if (pattern393 (x1,
23743 : E_DImode) == 0
23744 : &&
23745 : #line 1223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23746 : (TARGET_64BIT))
23747 : {
23748 : *pnum_clobbers = 1;
23749 : return 680; /* *udivmoddi4 */
23750 : }
23751 : break;
23752 :
23753 : default:
23754 : break;
23755 : }
23756 : break;
23757 :
23758 : case 1:
23759 : switch (GET_MODE (operands[0]))
23760 : {
23761 : case E_SImode:
23762 : if (pattern1504 (x1,
23763 : E_SImode) == 0
23764 : &&
23765 : #line 12436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23766 : (IN_RANGE (exact_log2 (UINTVAL (operands[3])), 1, 31)))
23767 : {
23768 : *pnum_clobbers = 1;
23769 : return 681; /* *udivmodsi4_pow2 */
23770 : }
23771 : break;
23772 :
23773 : case E_DImode:
23774 : if (pattern1504 (x1,
23775 : E_DImode) == 0
23776 : && (
23777 : #line 12436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23778 : (IN_RANGE (exact_log2 (UINTVAL (operands[3])), 1, 31)) &&
23779 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23780 : (TARGET_64BIT)))
23781 : {
23782 : *pnum_clobbers = 1;
23783 : return 682; /* *udivmoddi4_pow2 */
23784 : }
23785 : break;
23786 :
23787 : default:
23788 : break;
23789 : }
23790 : break;
23791 :
23792 : default:
23793 : break;
23794 : }
23795 : }
23796 : break;
23797 :
23798 : case IOR:
23799 : res = recog_408 (x1, insn, pnum_clobbers);
23800 : if (res >= 0)
23801 : return res;
23802 : break;
23803 :
23804 : case AND:
23805 : res = recog_411 (x1, insn, pnum_clobbers);
23806 : if (res >= 0)
23807 : return res;
23808 : break;
23809 :
23810 : case XOR:
23811 : res = recog_413 (x1, insn, pnum_clobbers);
23812 : if (res >= 0)
23813 : return res;
23814 : break;
23815 :
23816 : case NOT:
23817 : res = recog_414 (x1, insn, pnum_clobbers);
23818 : if (res >= 0)
23819 : return res;
23820 : break;
23821 :
23822 : case NEG:
23823 : res = recog_415 (x1, insn, pnum_clobbers);
23824 : if (res >= 0)
23825 : return res;
23826 : break;
23827 :
23828 : case ABS:
23829 : res = recog_416 (x1, insn, pnum_clobbers);
23830 : if (res >= 0)
23831 : return res;
23832 : break;
23833 :
23834 : case ASHIFT:
23835 : res = recog_417 (x1, insn, pnum_clobbers);
23836 : if (res >= 0)
23837 : return res;
23838 : break;
23839 :
23840 : case ROTATE:
23841 : switch (pattern212 (x1))
23842 : {
23843 : case 0:
23844 : x4 = XEXP (x3, 1);
23845 : if (GET_CODE (x4) == SUBREG)
23846 : {
23847 : switch (pattern1180 (x2))
23848 : {
23849 : case 0:
23850 : if (
23851 : #line 19083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23852 : (ix86_binary_operator_ok (ROTATE, QImode, operands)
23853 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (QImode)-1))
23854 : == GET_MODE_BITSIZE (QImode)-1
23855 : && ix86_pre_reload_split ()))
23856 : return 1316; /* *rotlqi3_mask */
23857 : break;
23858 :
23859 : case 1:
23860 : if (
23861 : #line 19083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23862 : (ix86_binary_operator_ok (ROTATE, HImode, operands)
23863 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (HImode)-1))
23864 : == GET_MODE_BITSIZE (HImode)-1
23865 : && ix86_pre_reload_split ()))
23866 : return 1318; /* *rotlhi3_mask */
23867 : break;
23868 :
23869 : case 2:
23870 : if (
23871 : #line 19083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23872 : (ix86_binary_operator_ok (ROTATE, SImode, operands)
23873 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
23874 : == GET_MODE_BITSIZE (SImode)-1
23875 : && ix86_pre_reload_split ()))
23876 : return 1320; /* *rotlsi3_mask */
23877 : break;
23878 :
23879 : case 3:
23880 : if ((
23881 : #line 19083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23882 : (ix86_binary_operator_ok (ROTATE, DImode, operands)
23883 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
23884 : == GET_MODE_BITSIZE (DImode)-1
23885 : && ix86_pre_reload_split ()) &&
23886 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23887 : (TARGET_64BIT)))
23888 : return 1322; /* *rotldi3_mask */
23889 : break;
23890 :
23891 : case 4:
23892 : if (
23893 : #line 19176 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23894 : (ix86_binary_operator_ok (ROTATE, QImode, operands)
23895 : && (INTVAL (operands[3]) & (1 * BITS_PER_UNIT - 1)) == 0
23896 : && ix86_pre_reload_split ()))
23897 : return 1332; /* *rotlqi3_add */
23898 : break;
23899 :
23900 : case 5:
23901 : if (
23902 : #line 19176 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23903 : (ix86_binary_operator_ok (ROTATE, HImode, operands)
23904 : && (INTVAL (operands[3]) & (2 * BITS_PER_UNIT - 1)) == 0
23905 : && ix86_pre_reload_split ()))
23906 : return 1334; /* *rotlhi3_add */
23907 : break;
23908 :
23909 : case 6:
23910 : if (
23911 : #line 19176 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23912 : (ix86_binary_operator_ok (ROTATE, SImode, operands)
23913 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
23914 : && ix86_pre_reload_split ()))
23915 : return 1336; /* *rotlsi3_add */
23916 : break;
23917 :
23918 : case 7:
23919 : if ((
23920 : #line 19176 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23921 : (ix86_binary_operator_ok (ROTATE, DImode, operands)
23922 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
23923 : && ix86_pre_reload_split ()) &&
23924 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23925 : (TARGET_64BIT)))
23926 : return 1338; /* *rotldi3_add */
23927 : break;
23928 :
23929 : case 8:
23930 : if (
23931 : #line 19245 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23932 : (ix86_binary_operator_ok (ROTATE, QImode, operands)
23933 : && (INTVAL (operands[3]) & (1 * BITS_PER_UNIT - 1)) == 0
23934 : && ix86_pre_reload_split ()))
23935 : return 1348; /* *rotlqi3_sub */
23936 : break;
23937 :
23938 : case 9:
23939 : if (
23940 : #line 19245 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23941 : (ix86_binary_operator_ok (ROTATE, HImode, operands)
23942 : && (INTVAL (operands[3]) & (2 * BITS_PER_UNIT - 1)) == 0
23943 : && ix86_pre_reload_split ()))
23944 : return 1350; /* *rotlhi3_sub */
23945 : break;
23946 :
23947 : case 10:
23948 : if (
23949 : #line 19245 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23950 : (ix86_binary_operator_ok (ROTATE, SImode, operands)
23951 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
23952 : && ix86_pre_reload_split ()))
23953 : return 1352; /* *rotlsi3_sub */
23954 : break;
23955 :
23956 : case 11:
23957 : if ((
23958 : #line 19245 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23959 : (ix86_binary_operator_ok (ROTATE, DImode, operands)
23960 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
23961 : && ix86_pre_reload_split ()) &&
23962 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23963 : (TARGET_64BIT)))
23964 : return 1354; /* *rotldi3_sub */
23965 : break;
23966 :
23967 : default:
23968 : break;
23969 : }
23970 : }
23971 : operands[2] = x4;
23972 : switch (pattern1181 (x2))
23973 : {
23974 : case 0:
23975 : if (
23976 : #line 19437 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23977 : (ix86_binary_operator_ok (ROTATE, SImode, operands, TARGET_APX_NDD)
23978 : && true))
23979 : return 1375; /* *rotlsi3_1 */
23980 : break;
23981 :
23982 : case 1:
23983 : if ((
23984 : #line 19437 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23985 : (ix86_binary_operator_ok (ROTATE, DImode, operands, TARGET_APX_NDD)
23986 : && true) &&
23987 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23988 : (TARGET_64BIT)))
23989 : return 1379; /* *rotldi3_1 */
23990 : break;
23991 :
23992 : case 2:
23993 : if (
23994 : #line 19620 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23995 : (ix86_binary_operator_ok (ROTATE, QImode, operands, TARGET_APX_NDD)
23996 : && true))
23997 : return 1406; /* *rotlqi3_1 */
23998 : break;
23999 :
24000 : case 3:
24001 : if (
24002 : #line 19620 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24003 : (ix86_binary_operator_ok (ROTATE, HImode, operands, TARGET_APX_NDD)
24004 : && true))
24005 : return 1410; /* *rotlhi3_1 */
24006 : break;
24007 :
24008 : case 4:
24009 : if (
24010 : #line 19648 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24011 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
24012 : return 1413; /* *rotlqi3_1_slp */
24013 : break;
24014 :
24015 : case 5:
24016 : if (
24017 : #line 19648 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24018 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
24019 : return 1415; /* *rotlhi3_1_slp */
24020 : break;
24021 :
24022 : default:
24023 : break;
24024 : }
24025 : break;
24026 :
24027 : case 1:
24028 : if (
24029 : #line 19131 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24030 : (ix86_binary_operator_ok (ROTATE, QImode, operands)
24031 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (QImode)-1))
24032 : == GET_MODE_BITSIZE (QImode)-1
24033 : && ix86_pre_reload_split ()))
24034 : return 1324; /* *rotlqi3_mask_1 */
24035 : break;
24036 :
24037 : case 2:
24038 : if (
24039 : #line 19131 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24040 : (ix86_binary_operator_ok (ROTATE, HImode, operands)
24041 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (HImode)-1))
24042 : == GET_MODE_BITSIZE (HImode)-1
24043 : && ix86_pre_reload_split ()))
24044 : return 1326; /* *rotlhi3_mask_1 */
24045 : break;
24046 :
24047 : case 3:
24048 : if (
24049 : #line 19131 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24050 : (ix86_binary_operator_ok (ROTATE, SImode, operands)
24051 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
24052 : == GET_MODE_BITSIZE (SImode)-1
24053 : && ix86_pre_reload_split ()))
24054 : return 1328; /* *rotlsi3_mask_1 */
24055 : break;
24056 :
24057 : case 4:
24058 : if ((
24059 : #line 19131 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24060 : (ix86_binary_operator_ok (ROTATE, DImode, operands)
24061 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
24062 : == GET_MODE_BITSIZE (DImode)-1
24063 : && ix86_pre_reload_split ()) &&
24064 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24065 : (TARGET_64BIT)))
24066 : return 1330; /* *rotldi3_mask_1 */
24067 : break;
24068 :
24069 : case 5:
24070 : if (
24071 : #line 19212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24072 : (ix86_binary_operator_ok (ROTATE, QImode, operands)
24073 : && (INTVAL (operands[3]) & (1 * BITS_PER_UNIT - 1)) == 0
24074 : && ix86_pre_reload_split ()))
24075 : return 1340; /* *rotlqi3_add_1 */
24076 : break;
24077 :
24078 : case 6:
24079 : if (
24080 : #line 19212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24081 : (ix86_binary_operator_ok (ROTATE, HImode, operands)
24082 : && (INTVAL (operands[3]) & (2 * BITS_PER_UNIT - 1)) == 0
24083 : && ix86_pre_reload_split ()))
24084 : return 1342; /* *rotlhi3_add_1 */
24085 : break;
24086 :
24087 : case 7:
24088 : if (
24089 : #line 19212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24090 : (ix86_binary_operator_ok (ROTATE, SImode, operands)
24091 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
24092 : && ix86_pre_reload_split ()))
24093 : return 1344; /* *rotlsi3_add_1 */
24094 : break;
24095 :
24096 : case 8:
24097 : if ((
24098 : #line 19212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24099 : (ix86_binary_operator_ok (ROTATE, DImode, operands)
24100 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
24101 : && ix86_pre_reload_split ()) &&
24102 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24103 : (TARGET_64BIT)))
24104 : return 1346; /* *rotldi3_add_1 */
24105 : break;
24106 :
24107 : case 9:
24108 : if (
24109 : #line 19281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24110 : (ix86_binary_operator_ok (ROTATE, QImode, operands)
24111 : && (INTVAL (operands[3]) & (1 * BITS_PER_UNIT - 1)) == 0
24112 : && ix86_pre_reload_split ()))
24113 : return 1356; /* *rotlqi3_sub_1 */
24114 : break;
24115 :
24116 : case 10:
24117 : if (
24118 : #line 19281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24119 : (ix86_binary_operator_ok (ROTATE, HImode, operands)
24120 : && (INTVAL (operands[3]) & (2 * BITS_PER_UNIT - 1)) == 0
24121 : && ix86_pre_reload_split ()))
24122 : return 1358; /* *rotlhi3_sub_1 */
24123 : break;
24124 :
24125 : case 11:
24126 : if (
24127 : #line 19281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24128 : (ix86_binary_operator_ok (ROTATE, SImode, operands)
24129 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
24130 : && ix86_pre_reload_split ()))
24131 : return 1360; /* *rotlsi3_sub_1 */
24132 : break;
24133 :
24134 : case 12:
24135 : if ((
24136 : #line 19281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24137 : (ix86_binary_operator_ok (ROTATE, DImode, operands)
24138 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
24139 : && ix86_pre_reload_split ()) &&
24140 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24141 : (TARGET_64BIT)))
24142 : return 1362; /* *rotldi3_sub_1 */
24143 : break;
24144 :
24145 : default:
24146 : break;
24147 : }
24148 : break;
24149 :
24150 : case ROTATERT:
24151 : switch (pattern212 (x1))
24152 : {
24153 : case 0:
24154 : x4 = XEXP (x3, 1);
24155 : if (GET_CODE (x4) == SUBREG)
24156 : {
24157 : switch (pattern1180 (x2))
24158 : {
24159 : case 0:
24160 : if (
24161 : #line 19083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24162 : (ix86_binary_operator_ok (ROTATERT, QImode, operands)
24163 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (QImode)-1))
24164 : == GET_MODE_BITSIZE (QImode)-1
24165 : && ix86_pre_reload_split ()))
24166 : return 1317; /* *rotrqi3_mask */
24167 : break;
24168 :
24169 : case 1:
24170 : if (
24171 : #line 19083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24172 : (ix86_binary_operator_ok (ROTATERT, HImode, operands)
24173 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (HImode)-1))
24174 : == GET_MODE_BITSIZE (HImode)-1
24175 : && ix86_pre_reload_split ()))
24176 : return 1319; /* *rotrhi3_mask */
24177 : break;
24178 :
24179 : case 2:
24180 : if (
24181 : #line 19083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24182 : (ix86_binary_operator_ok (ROTATERT, SImode, operands)
24183 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
24184 : == GET_MODE_BITSIZE (SImode)-1
24185 : && ix86_pre_reload_split ()))
24186 : return 1321; /* *rotrsi3_mask */
24187 : break;
24188 :
24189 : case 3:
24190 : if ((
24191 : #line 19083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24192 : (ix86_binary_operator_ok (ROTATERT, DImode, operands)
24193 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
24194 : == GET_MODE_BITSIZE (DImode)-1
24195 : && ix86_pre_reload_split ()) &&
24196 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24197 : (TARGET_64BIT)))
24198 : return 1323; /* *rotrdi3_mask */
24199 : break;
24200 :
24201 : case 4:
24202 : if (
24203 : #line 19176 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24204 : (ix86_binary_operator_ok (ROTATERT, QImode, operands)
24205 : && (INTVAL (operands[3]) & (1 * BITS_PER_UNIT - 1)) == 0
24206 : && ix86_pre_reload_split ()))
24207 : return 1333; /* *rotrqi3_add */
24208 : break;
24209 :
24210 : case 5:
24211 : if (
24212 : #line 19176 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24213 : (ix86_binary_operator_ok (ROTATERT, HImode, operands)
24214 : && (INTVAL (operands[3]) & (2 * BITS_PER_UNIT - 1)) == 0
24215 : && ix86_pre_reload_split ()))
24216 : return 1335; /* *rotrhi3_add */
24217 : break;
24218 :
24219 : case 6:
24220 : if (
24221 : #line 19176 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24222 : (ix86_binary_operator_ok (ROTATERT, SImode, operands)
24223 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
24224 : && ix86_pre_reload_split ()))
24225 : return 1337; /* *rotrsi3_add */
24226 : break;
24227 :
24228 : case 7:
24229 : if ((
24230 : #line 19176 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24231 : (ix86_binary_operator_ok (ROTATERT, DImode, operands)
24232 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
24233 : && ix86_pre_reload_split ()) &&
24234 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24235 : (TARGET_64BIT)))
24236 : return 1339; /* *rotrdi3_add */
24237 : break;
24238 :
24239 : case 8:
24240 : if (
24241 : #line 19245 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24242 : (ix86_binary_operator_ok (ROTATERT, QImode, operands)
24243 : && (INTVAL (operands[3]) & (1 * BITS_PER_UNIT - 1)) == 0
24244 : && ix86_pre_reload_split ()))
24245 : return 1349; /* *rotrqi3_sub */
24246 : break;
24247 :
24248 : case 9:
24249 : if (
24250 : #line 19245 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24251 : (ix86_binary_operator_ok (ROTATERT, HImode, operands)
24252 : && (INTVAL (operands[3]) & (2 * BITS_PER_UNIT - 1)) == 0
24253 : && ix86_pre_reload_split ()))
24254 : return 1351; /* *rotrhi3_sub */
24255 : break;
24256 :
24257 : case 10:
24258 : if (
24259 : #line 19245 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24260 : (ix86_binary_operator_ok (ROTATERT, SImode, operands)
24261 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
24262 : && ix86_pre_reload_split ()))
24263 : return 1353; /* *rotrsi3_sub */
24264 : break;
24265 :
24266 : case 11:
24267 : if ((
24268 : #line 19245 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24269 : (ix86_binary_operator_ok (ROTATERT, DImode, operands)
24270 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
24271 : && ix86_pre_reload_split ()) &&
24272 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24273 : (TARGET_64BIT)))
24274 : return 1355; /* *rotrdi3_sub */
24275 : break;
24276 :
24277 : default:
24278 : break;
24279 : }
24280 : }
24281 : operands[2] = x4;
24282 : switch (pattern1181 (x2))
24283 : {
24284 : case 0:
24285 : if (
24286 : #line 19437 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24287 : (ix86_binary_operator_ok (ROTATERT, SImode, operands, TARGET_APX_NDD)
24288 : && true))
24289 : return 1377; /* *rotrsi3_1 */
24290 : break;
24291 :
24292 : case 1:
24293 : if ((
24294 : #line 19437 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24295 : (ix86_binary_operator_ok (ROTATERT, DImode, operands, TARGET_APX_NDD)
24296 : && true) &&
24297 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24298 : (TARGET_64BIT)))
24299 : return 1381; /* *rotrdi3_1 */
24300 : break;
24301 :
24302 : case 2:
24303 : if (
24304 : #line 19620 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24305 : (ix86_binary_operator_ok (ROTATERT, QImode, operands, TARGET_APX_NDD)
24306 : && true))
24307 : return 1408; /* *rotrqi3_1 */
24308 : break;
24309 :
24310 : case 3:
24311 : if (
24312 : #line 19620 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24313 : (ix86_binary_operator_ok (ROTATERT, HImode, operands, TARGET_APX_NDD)
24314 : && true))
24315 : return 1412; /* *rotrhi3_1 */
24316 : break;
24317 :
24318 : case 4:
24319 : if (
24320 : #line 19648 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24321 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
24322 : return 1414; /* *rotrqi3_1_slp */
24323 : break;
24324 :
24325 : case 5:
24326 : if (
24327 : #line 19648 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24328 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
24329 : return 1416; /* *rotrhi3_1_slp */
24330 : break;
24331 :
24332 : default:
24333 : break;
24334 : }
24335 : break;
24336 :
24337 : case 1:
24338 : if (
24339 : #line 19131 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24340 : (ix86_binary_operator_ok (ROTATERT, QImode, operands)
24341 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (QImode)-1))
24342 : == GET_MODE_BITSIZE (QImode)-1
24343 : && ix86_pre_reload_split ()))
24344 : return 1325; /* *rotrqi3_mask_1 */
24345 : break;
24346 :
24347 : case 2:
24348 : if (
24349 : #line 19131 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24350 : (ix86_binary_operator_ok (ROTATERT, HImode, operands)
24351 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (HImode)-1))
24352 : == GET_MODE_BITSIZE (HImode)-1
24353 : && ix86_pre_reload_split ()))
24354 : return 1327; /* *rotrhi3_mask_1 */
24355 : break;
24356 :
24357 : case 3:
24358 : if (
24359 : #line 19131 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24360 : (ix86_binary_operator_ok (ROTATERT, SImode, operands)
24361 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
24362 : == GET_MODE_BITSIZE (SImode)-1
24363 : && ix86_pre_reload_split ()))
24364 : return 1329; /* *rotrsi3_mask_1 */
24365 : break;
24366 :
24367 : case 4:
24368 : if ((
24369 : #line 19131 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24370 : (ix86_binary_operator_ok (ROTATERT, DImode, operands)
24371 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
24372 : == GET_MODE_BITSIZE (DImode)-1
24373 : && ix86_pre_reload_split ()) &&
24374 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24375 : (TARGET_64BIT)))
24376 : return 1331; /* *rotrdi3_mask_1 */
24377 : break;
24378 :
24379 : case 5:
24380 : if (
24381 : #line 19212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24382 : (ix86_binary_operator_ok (ROTATERT, QImode, operands)
24383 : && (INTVAL (operands[3]) & (1 * BITS_PER_UNIT - 1)) == 0
24384 : && ix86_pre_reload_split ()))
24385 : return 1341; /* *rotrqi3_add_1 */
24386 : break;
24387 :
24388 : case 6:
24389 : if (
24390 : #line 19212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24391 : (ix86_binary_operator_ok (ROTATERT, HImode, operands)
24392 : && (INTVAL (operands[3]) & (2 * BITS_PER_UNIT - 1)) == 0
24393 : && ix86_pre_reload_split ()))
24394 : return 1343; /* *rotrhi3_add_1 */
24395 : break;
24396 :
24397 : case 7:
24398 : if (
24399 : #line 19212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24400 : (ix86_binary_operator_ok (ROTATERT, SImode, operands)
24401 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
24402 : && ix86_pre_reload_split ()))
24403 : return 1345; /* *rotrsi3_add_1 */
24404 : break;
24405 :
24406 : case 8:
24407 : if ((
24408 : #line 19212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24409 : (ix86_binary_operator_ok (ROTATERT, DImode, operands)
24410 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
24411 : && ix86_pre_reload_split ()) &&
24412 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24413 : (TARGET_64BIT)))
24414 : return 1347; /* *rotrdi3_add_1 */
24415 : break;
24416 :
24417 : case 9:
24418 : if (
24419 : #line 19281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24420 : (ix86_binary_operator_ok (ROTATERT, QImode, operands)
24421 : && (INTVAL (operands[3]) & (1 * BITS_PER_UNIT - 1)) == 0
24422 : && ix86_pre_reload_split ()))
24423 : return 1357; /* *rotrqi3_sub_1 */
24424 : break;
24425 :
24426 : case 10:
24427 : if (
24428 : #line 19281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24429 : (ix86_binary_operator_ok (ROTATERT, HImode, operands)
24430 : && (INTVAL (operands[3]) & (2 * BITS_PER_UNIT - 1)) == 0
24431 : && ix86_pre_reload_split ()))
24432 : return 1359; /* *rotrhi3_sub_1 */
24433 : break;
24434 :
24435 : case 11:
24436 : if (
24437 : #line 19281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24438 : (ix86_binary_operator_ok (ROTATERT, SImode, operands)
24439 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
24440 : && ix86_pre_reload_split ()))
24441 : return 1361; /* *rotrsi3_sub_1 */
24442 : break;
24443 :
24444 : case 12:
24445 : if ((
24446 : #line 19281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24447 : (ix86_binary_operator_ok (ROTATERT, DImode, operands)
24448 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
24449 : && ix86_pre_reload_split ()) &&
24450 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24451 : (TARGET_64BIT)))
24452 : return 1363; /* *rotrdi3_sub_1 */
24453 : break;
24454 :
24455 : default:
24456 : break;
24457 : }
24458 : break;
24459 :
24460 : case CALL:
24461 : res = recog_418 (x1, insn, pnum_clobbers);
24462 : if (res >= 0)
24463 : return res;
24464 : break;
24465 :
24466 : case CTZ:
24467 : res = recog_419 (x1, insn, pnum_clobbers);
24468 : if (res >= 0)
24469 : return res;
24470 : break;
24471 :
24472 : case SIGN_EXTEND:
24473 : res = recog_420 (x1, insn, pnum_clobbers);
24474 : if (res >= 0)
24475 : return res;
24476 : break;
24477 :
24478 : case CLZ:
24479 : res = recog_421 (x1, insn, pnum_clobbers);
24480 : if (res >= 0)
24481 : return res;
24482 : break;
24483 :
24484 : case POPCOUNT:
24485 : res = recog_422 (x1, insn, pnum_clobbers);
24486 : if (res >= 0)
24487 : return res;
24488 : break;
24489 :
24490 : case SMAX:
24491 : switch (pattern216 (x1))
24492 : {
24493 : case 0:
24494 : if ((
24495 : #line 28056 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24496 : (TARGET_CMOVE
24497 : && ix86_pre_reload_split ()) &&
24498 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24499 : (!TARGET_64BIT)))
24500 : return 1863; /* *smaxdi3_doubleword */
24501 : if ((
24502 : #line 28114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24503 : (TARGET_CMOVE
24504 : && (DImode != QImode || !TARGET_PARTIAL_REG_STALL)
24505 : && ix86_pre_reload_split ()) &&
24506 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24507 : (TARGET_64BIT)))
24508 : return 1883; /* *smaxdi3_1 */
24509 : break;
24510 :
24511 : case 1:
24512 : if ((
24513 : #line 28056 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24514 : (TARGET_CMOVE
24515 : && ix86_pre_reload_split ()) &&
24516 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24517 : (TARGET_64BIT)))
24518 : return 1867; /* *smaxti3_doubleword */
24519 : break;
24520 :
24521 : case 2:
24522 : if (
24523 : #line 28114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24524 : (TARGET_CMOVE
24525 : && (QImode != QImode || !TARGET_PARTIAL_REG_STALL)
24526 : && ix86_pre_reload_split ()))
24527 : return 1871; /* *smaxqi3_1 */
24528 : break;
24529 :
24530 : case 3:
24531 : if (
24532 : #line 28114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24533 : (TARGET_CMOVE
24534 : && (HImode != QImode || !TARGET_PARTIAL_REG_STALL)
24535 : && ix86_pre_reload_split ()))
24536 : return 1875; /* *smaxhi3_1 */
24537 : break;
24538 :
24539 : case 4:
24540 : if (
24541 : #line 28114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24542 : (TARGET_CMOVE
24543 : && (SImode != QImode || !TARGET_PARTIAL_REG_STALL)
24544 : && ix86_pre_reload_split ()))
24545 : return 1879; /* *smaxsi3_1 */
24546 : break;
24547 :
24548 : case 5:
24549 : if (
24550 : #line 895 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24551 : (TARGET_3DNOW && ix86_binary_operator_ok (SMAX, V2SFmode, operands)))
24552 : return 2109; /* *mmx_smaxv2sf3 */
24553 : break;
24554 :
24555 : default:
24556 : break;
24557 : }
24558 : break;
24559 :
24560 : case SMIN:
24561 : switch (pattern216 (x1))
24562 : {
24563 : case 0:
24564 : if ((
24565 : #line 28056 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24566 : (TARGET_CMOVE
24567 : && ix86_pre_reload_split ()) &&
24568 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24569 : (!TARGET_64BIT)))
24570 : return 1864; /* *smindi3_doubleword */
24571 : if ((
24572 : #line 28114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24573 : (TARGET_CMOVE
24574 : && (DImode != QImode || !TARGET_PARTIAL_REG_STALL)
24575 : && ix86_pre_reload_split ()) &&
24576 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24577 : (TARGET_64BIT)))
24578 : return 1884; /* *smindi3_1 */
24579 : break;
24580 :
24581 : case 1:
24582 : if ((
24583 : #line 28056 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24584 : (TARGET_CMOVE
24585 : && ix86_pre_reload_split ()) &&
24586 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24587 : (TARGET_64BIT)))
24588 : return 1868; /* *sminti3_doubleword */
24589 : break;
24590 :
24591 : case 2:
24592 : if (
24593 : #line 28114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24594 : (TARGET_CMOVE
24595 : && (QImode != QImode || !TARGET_PARTIAL_REG_STALL)
24596 : && ix86_pre_reload_split ()))
24597 : return 1872; /* *sminqi3_1 */
24598 : break;
24599 :
24600 : case 3:
24601 : if (
24602 : #line 28114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24603 : (TARGET_CMOVE
24604 : && (HImode != QImode || !TARGET_PARTIAL_REG_STALL)
24605 : && ix86_pre_reload_split ()))
24606 : return 1876; /* *sminhi3_1 */
24607 : break;
24608 :
24609 : case 4:
24610 : if (
24611 : #line 28114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24612 : (TARGET_CMOVE
24613 : && (SImode != QImode || !TARGET_PARTIAL_REG_STALL)
24614 : && ix86_pre_reload_split ()))
24615 : return 1880; /* *sminsi3_1 */
24616 : break;
24617 :
24618 : case 5:
24619 : if (
24620 : #line 895 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24621 : (TARGET_3DNOW && ix86_binary_operator_ok (SMIN, V2SFmode, operands)))
24622 : return 2110; /* *mmx_sminv2sf3 */
24623 : break;
24624 :
24625 : default:
24626 : break;
24627 : }
24628 : break;
24629 :
24630 : case UMAX:
24631 : switch (pattern221 (x1))
24632 : {
24633 : case 0:
24634 : if ((
24635 : #line 28056 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24636 : (TARGET_CMOVE
24637 : && ix86_pre_reload_split ()) &&
24638 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24639 : (!TARGET_64BIT)))
24640 : return 1865; /* *umaxdi3_doubleword */
24641 : if ((
24642 : #line 28114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24643 : (TARGET_CMOVE
24644 : && (DImode != QImode || !TARGET_PARTIAL_REG_STALL)
24645 : && ix86_pre_reload_split ()) &&
24646 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24647 : (TARGET_64BIT)))
24648 : return 1885; /* *umaxdi3_1 */
24649 : break;
24650 :
24651 : case 1:
24652 : if ((
24653 : #line 28056 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24654 : (TARGET_CMOVE
24655 : && ix86_pre_reload_split ()) &&
24656 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24657 : (TARGET_64BIT)))
24658 : return 1869; /* *umaxti3_doubleword */
24659 : break;
24660 :
24661 : case 2:
24662 : if (
24663 : #line 28114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24664 : (TARGET_CMOVE
24665 : && (QImode != QImode || !TARGET_PARTIAL_REG_STALL)
24666 : && ix86_pre_reload_split ()))
24667 : return 1873; /* *umaxqi3_1 */
24668 : break;
24669 :
24670 : case 3:
24671 : if (
24672 : #line 28114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24673 : (TARGET_CMOVE
24674 : && (HImode != QImode || !TARGET_PARTIAL_REG_STALL)
24675 : && ix86_pre_reload_split ()))
24676 : return 1877; /* *umaxhi3_1 */
24677 : break;
24678 :
24679 : case 4:
24680 : if (
24681 : #line 28114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24682 : (TARGET_CMOVE
24683 : && (SImode != QImode || !TARGET_PARTIAL_REG_STALL)
24684 : && ix86_pre_reload_split ()))
24685 : return 1881; /* *umaxsi3_1 */
24686 : break;
24687 :
24688 : case 5:
24689 : x4 = XEXP (x3, 1);
24690 : if (rtx_equal_p (x4, operands[1])
24691 : &&
24692 : #line 28295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24693 : (TARGET_CMOVE
24694 : && ix86_pre_reload_split ()))
24695 : return 1887; /* *plus_within_umaxhi3_1 */
24696 : if (rtx_equal_p (x4, operands[2])
24697 : &&
24698 : #line 28295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24699 : (TARGET_CMOVE
24700 : && ix86_pre_reload_split ()))
24701 : return 1888; /* *plus_within_umaxhi3_2 */
24702 : break;
24703 :
24704 : case 6:
24705 : x4 = XEXP (x3, 1);
24706 : if (rtx_equal_p (x4, operands[1])
24707 : &&
24708 : #line 28295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24709 : (TARGET_CMOVE
24710 : && ix86_pre_reload_split ()))
24711 : return 1891; /* *plus_within_umaxsi3_1 */
24712 : if (rtx_equal_p (x4, operands[2])
24713 : &&
24714 : #line 28295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24715 : (TARGET_CMOVE
24716 : && ix86_pre_reload_split ()))
24717 : return 1892; /* *plus_within_umaxsi3_2 */
24718 : break;
24719 :
24720 : case 7:
24721 : x4 = XEXP (x3, 1);
24722 : if (rtx_equal_p (x4, operands[1])
24723 : && (
24724 : #line 28295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24725 : (TARGET_CMOVE
24726 : && ix86_pre_reload_split ()) &&
24727 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24728 : (TARGET_64BIT)))
24729 : return 1895; /* *plus_within_umaxdi3_1 */
24730 : if (rtx_equal_p (x4, operands[2])
24731 : && (
24732 : #line 28295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24733 : (TARGET_CMOVE
24734 : && ix86_pre_reload_split ()) &&
24735 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24736 : (TARGET_64BIT)))
24737 : return 1896; /* *plus_within_umaxdi3_2 */
24738 : break;
24739 :
24740 : case 8:
24741 : if (
24742 : #line 28328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24743 : (TARGET_CMOVE
24744 : && ix86_pre_reload_split ()))
24745 : return 1899; /* *minus_within_umaxhi3 */
24746 : break;
24747 :
24748 : case 9:
24749 : if (
24750 : #line 28328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24751 : (TARGET_CMOVE
24752 : && ix86_pre_reload_split ()))
24753 : return 1901; /* *minus_within_umaxsi3 */
24754 : break;
24755 :
24756 : case 10:
24757 : if ((
24758 : #line 28328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24759 : (TARGET_CMOVE
24760 : && ix86_pre_reload_split ()) &&
24761 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24762 : (TARGET_64BIT)))
24763 : return 1903; /* *minus_within_umaxdi3 */
24764 : break;
24765 :
24766 : default:
24767 : break;
24768 : }
24769 : break;
24770 :
24771 : case UMIN:
24772 : switch (pattern221 (x1))
24773 : {
24774 : case 0:
24775 : if ((
24776 : #line 28056 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24777 : (TARGET_CMOVE
24778 : && ix86_pre_reload_split ()) &&
24779 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24780 : (!TARGET_64BIT)))
24781 : return 1866; /* *umindi3_doubleword */
24782 : if ((
24783 : #line 28114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24784 : (TARGET_CMOVE
24785 : && (DImode != QImode || !TARGET_PARTIAL_REG_STALL)
24786 : && ix86_pre_reload_split ()) &&
24787 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24788 : (TARGET_64BIT)))
24789 : return 1886; /* *umindi3_1 */
24790 : break;
24791 :
24792 : case 1:
24793 : if ((
24794 : #line 28056 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24795 : (TARGET_CMOVE
24796 : && ix86_pre_reload_split ()) &&
24797 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24798 : (TARGET_64BIT)))
24799 : return 1870; /* *uminti3_doubleword */
24800 : break;
24801 :
24802 : case 2:
24803 : if (
24804 : #line 28114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24805 : (TARGET_CMOVE
24806 : && (QImode != QImode || !TARGET_PARTIAL_REG_STALL)
24807 : && ix86_pre_reload_split ()))
24808 : return 1874; /* *uminqi3_1 */
24809 : break;
24810 :
24811 : case 3:
24812 : if (
24813 : #line 28114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24814 : (TARGET_CMOVE
24815 : && (HImode != QImode || !TARGET_PARTIAL_REG_STALL)
24816 : && ix86_pre_reload_split ()))
24817 : return 1878; /* *uminhi3_1 */
24818 : break;
24819 :
24820 : case 4:
24821 : if (
24822 : #line 28114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24823 : (TARGET_CMOVE
24824 : && (SImode != QImode || !TARGET_PARTIAL_REG_STALL)
24825 : && ix86_pre_reload_split ()))
24826 : return 1882; /* *uminsi3_1 */
24827 : break;
24828 :
24829 : case 5:
24830 : x4 = XEXP (x3, 1);
24831 : if (rtx_equal_p (x4, operands[1])
24832 : &&
24833 : #line 28295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24834 : (TARGET_CMOVE
24835 : && ix86_pre_reload_split ()))
24836 : return 1889; /* *plus_within_uminhi3_1 */
24837 : if (rtx_equal_p (x4, operands[2])
24838 : &&
24839 : #line 28295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24840 : (TARGET_CMOVE
24841 : && ix86_pre_reload_split ()))
24842 : return 1890; /* *plus_within_uminhi3_2 */
24843 : break;
24844 :
24845 : case 6:
24846 : x4 = XEXP (x3, 1);
24847 : if (rtx_equal_p (x4, operands[1])
24848 : &&
24849 : #line 28295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24850 : (TARGET_CMOVE
24851 : && ix86_pre_reload_split ()))
24852 : return 1893; /* *plus_within_uminsi3_1 */
24853 : if (rtx_equal_p (x4, operands[2])
24854 : &&
24855 : #line 28295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24856 : (TARGET_CMOVE
24857 : && ix86_pre_reload_split ()))
24858 : return 1894; /* *plus_within_uminsi3_2 */
24859 : break;
24860 :
24861 : case 7:
24862 : x4 = XEXP (x3, 1);
24863 : if (rtx_equal_p (x4, operands[1])
24864 : && (
24865 : #line 28295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24866 : (TARGET_CMOVE
24867 : && ix86_pre_reload_split ()) &&
24868 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24869 : (TARGET_64BIT)))
24870 : return 1897; /* *plus_within_umindi3_1 */
24871 : if (rtx_equal_p (x4, operands[2])
24872 : && (
24873 : #line 28295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24874 : (TARGET_CMOVE
24875 : && ix86_pre_reload_split ()) &&
24876 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24877 : (TARGET_64BIT)))
24878 : return 1898; /* *plus_within_umindi3_2 */
24879 : break;
24880 :
24881 : case 8:
24882 : if (
24883 : #line 28328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24884 : (TARGET_CMOVE
24885 : && ix86_pre_reload_split ()))
24886 : return 1900; /* *minus_within_uminhi3 */
24887 : break;
24888 :
24889 : case 9:
24890 : if (
24891 : #line 28328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24892 : (TARGET_CMOVE
24893 : && ix86_pre_reload_split ()))
24894 : return 1902; /* *minus_within_uminsi3 */
24895 : break;
24896 :
24897 : case 10:
24898 : if ((
24899 : #line 28328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24900 : (TARGET_CMOVE
24901 : && ix86_pre_reload_split ()) &&
24902 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24903 : (TARGET_64BIT)))
24904 : return 1904; /* *minus_within_umindi3 */
24905 : break;
24906 :
24907 : default:
24908 : break;
24909 : }
24910 : break;
24911 :
24912 : case UNSPEC_VOLATILE:
24913 : res = recog_423 (x1, insn, pnum_clobbers);
24914 : if (res >= 0)
24915 : return res;
24916 : break;
24917 :
24918 : case VEC_MERGE:
24919 : if (pattern222 (x1) == 0
24920 : &&
24921 : #line 8753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24922 : ((TARGET_MMX || TARGET_MMX_WITH_SSE) && TARGET_SSE))
24923 : return 4831; /* sse_cvtpi2ps */
24924 : break;
24925 :
24926 : case VEC_CONCAT:
24927 : res = recog_424 (x1, insn, pnum_clobbers);
24928 : if (res >= 0)
24929 : return res;
24930 : break;
24931 :
24932 : case VEC_DUPLICATE:
24933 : res = recog_425 (x1, insn, pnum_clobbers);
24934 : if (res >= 0)
24935 : return res;
24936 : break;
24937 :
24938 : case VEC_SELECT:
24939 : res = recog_426 (x1, insn, pnum_clobbers);
24940 : if (res >= 0)
24941 : return res;
24942 : break;
24943 :
24944 : default:
24945 : break;
24946 : }
24947 : x5 = XVECEXP (x1, 0, 1);
24948 : if (GET_CODE (x5) != UNSPEC
24949 : || XVECLEN (x5, 0) != 1
24950 : || XINT (x5, 1) != 39)
24951 : return -1;
24952 : return recog_427 (x1, insn, pnum_clobbers);
24953 : }
24954 :
24955 : rtx_insn *
24956 : split_24 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
24957 : {
24958 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
24959 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
24960 : rtx x10, x11;
24961 : rtx_insn *res ATTRIBUTE_UNUSED;
24962 : x2 = XVECEXP (x1, 0, 1);
24963 : if (pattern237 (x2,
24964 : E_CCmode,
24965 : 17) != 0)
24966 : return NULL;
24967 : x3 = XVECEXP (x1, 0, 0);
24968 : x4 = XEXP (x3, 1);
24969 : x5 = XEXP (x4, 0);
24970 : switch (GET_CODE (x5))
24971 : {
24972 : case CONST_INT:
24973 : case CONST_WIDE_INT:
24974 : case CONST_POLY_INT:
24975 : case CONST_FIXED:
24976 : case CONST_DOUBLE:
24977 : case CONST_VECTOR:
24978 : case CONST:
24979 : case REG:
24980 : case SUBREG:
24981 : case MEM:
24982 : case LABEL_REF:
24983 : case SYMBOL_REF:
24984 : case HIGH:
24985 : operands[1] = x5;
24986 : switch (pattern1190 (x3))
24987 : {
24988 : case 0:
24989 : if ((
24990 : #line 13553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24991 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
24992 : #line 13557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24993 : ( reload_completed
24994 : && !(rtx_equal_p (operands[0], operands[1])
24995 : || rtx_equal_p (operands[0], operands[2])))))
24996 : return gen_split_295 (insn, operands);
24997 : break;
24998 :
24999 : case 1:
25000 : if ((
25001 : #line 13553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25002 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25003 : #line 13557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25004 : ( reload_completed
25005 : && !(rtx_equal_p (operands[0], operands[1])
25006 : || rtx_equal_p (operands[0], operands[2])))))
25007 : return gen_split_298 (insn, operands);
25008 : break;
25009 :
25010 : case 2:
25011 : if (nonimmediate_operand (operands[0], E_DImode)
25012 : && nonimmediate_operand (operands[1], E_DImode))
25013 : {
25014 : if (x86_64_hilo_general_operand (operands[2], E_DImode)
25015 : && ((
25016 : #line 14336 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25017 : (ix86_binary_operator_ok (XOR, DImode, operands, TARGET_APX_NDD)) &&
25018 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25019 : (!TARGET_64BIT)) &&
25020 : #line 14338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25021 : ( reload_completed)))
25022 : return gen_split_394 (insn, operands);
25023 : if (const_int_operand (operands[2], E_DImode)
25024 : && (
25025 : #line 14478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25026 : (TARGET_64BIT && TARGET_USE_BT
25027 : && ix86_binary_operator_ok (XOR, DImode, operands)
25028 : && IN_RANGE (exact_log2 (INTVAL (operands[2])), 31, 63)) &&
25029 : #line 14482 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25030 : ( reload_completed)))
25031 : return gen_split_401 (insn, operands);
25032 : }
25033 : if (const_int_operand (operands[2], E_DImode))
25034 : {
25035 : if (QIreg_operand (operands[0], E_DImode)
25036 : && register_operand (operands[1], E_DImode)
25037 : && (
25038 : #line 14836 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25039 : (reload_completed
25040 : && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
25041 : && !(INTVAL (operands[2]) & ~(255 << 8))
25042 : && !(TARGET_APX_NDD && REGNO (operands[0]) != REGNO (operands[1]))) &&
25043 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25044 : (TARGET_64BIT)))
25045 : return gen_split_429 (insn, operands);
25046 : if (any_QIreg_operand (operands[0], E_DImode)
25047 : && general_operand (operands[1], E_DImode)
25048 : && (
25049 : #line 14874 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25050 : (reload_completed
25051 : && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
25052 : && !(INTVAL (operands[2]) & ~255)
25053 : && (INTVAL (operands[2]) & 128)
25054 : && !(TARGET_APX_NDD
25055 : && !rtx_equal_p (operands[0], operands[1]))) &&
25056 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25057 : (TARGET_64BIT)))
25058 : return gen_split_435 (insn, operands);
25059 : }
25060 : break;
25061 :
25062 : case 3:
25063 : if (((
25064 : #line 14336 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25065 : (ix86_binary_operator_ok (XOR, TImode, operands, TARGET_APX_NDD)) &&
25066 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25067 : (TARGET_64BIT)) &&
25068 : #line 14338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25069 : ( reload_completed)))
25070 : return gen_split_396 (insn, operands);
25071 : break;
25072 :
25073 : case 4:
25074 : if (QIreg_operand (operands[0], E_HImode)
25075 : && register_operand (operands[1], E_HImode)
25076 : &&
25077 : #line 14836 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25078 : (reload_completed
25079 : && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
25080 : && !(INTVAL (operands[2]) & ~(255 << 8))
25081 : && !(TARGET_APX_NDD && REGNO (operands[0]) != REGNO (operands[1]))))
25082 : return gen_split_425 (insn, operands);
25083 : if (any_QIreg_operand (operands[0], E_HImode)
25084 : && general_operand (operands[1], E_HImode)
25085 : &&
25086 : #line 14874 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25087 : (reload_completed
25088 : && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
25089 : && !(INTVAL (operands[2]) & ~255)
25090 : && (INTVAL (operands[2]) & 128)
25091 : && !(TARGET_APX_NDD
25092 : && !rtx_equal_p (operands[0], operands[1]))))
25093 : return gen_split_431 (insn, operands);
25094 : break;
25095 :
25096 : case 5:
25097 : if (QIreg_operand (operands[0], E_SImode)
25098 : && register_operand (operands[1], E_SImode)
25099 : &&
25100 : #line 14836 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25101 : (reload_completed
25102 : && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
25103 : && !(INTVAL (operands[2]) & ~(255 << 8))
25104 : && !(TARGET_APX_NDD && REGNO (operands[0]) != REGNO (operands[1]))))
25105 : return gen_split_427 (insn, operands);
25106 : if (any_QIreg_operand (operands[0], E_SImode)
25107 : && general_operand (operands[1], E_SImode)
25108 : &&
25109 : #line 14874 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25110 : (reload_completed
25111 : && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
25112 : && !(INTVAL (operands[2]) & ~255)
25113 : && (INTVAL (operands[2]) & 128)
25114 : && !(TARGET_APX_NDD
25115 : && !rtx_equal_p (operands[0], operands[1]))))
25116 : return gen_split_433 (insn, operands);
25117 : break;
25118 :
25119 : default:
25120 : break;
25121 : }
25122 : if (GET_CODE (x5) != SUBREG
25123 : || pattern1189 (x4) != 0)
25124 : return NULL;
25125 : x6 = XEXP (x5, 0);
25126 : x7 = XEXP (x6, 0);
25127 : operands[2] = x7;
25128 : switch (pattern1649 (x3))
25129 : {
25130 : case 0:
25131 : if ((
25132 : #line 13578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25133 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25134 : #line 13582 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25135 : ( reload_completed
25136 : && !rtx_equal_p (operands[0], operands[1]))))
25137 : return gen_split_301 (insn, operands);
25138 : break;
25139 :
25140 : case 1:
25141 : if ((
25142 : #line 13578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25143 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25144 : #line 13582 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25145 : ( reload_completed
25146 : && !rtx_equal_p (operands[0], operands[1]))))
25147 : return gen_split_304 (insn, operands);
25148 : break;
25149 :
25150 : case 2:
25151 : if (((
25152 : #line 13578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25153 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25154 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25155 : (TARGET_64BIT)) &&
25156 : #line 13582 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25157 : ( reload_completed
25158 : && !rtx_equal_p (operands[0], operands[1]))))
25159 : return gen_split_307 (insn, operands);
25160 : break;
25161 :
25162 : default:
25163 : break;
25164 : }
25165 : operands[1] = x7;
25166 : switch (pattern1650 (x3))
25167 : {
25168 : case 0:
25169 : if (!(
25170 : #line 13607 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25171 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25172 : #line 13609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25173 : ( reload_completed)))
25174 : return NULL;
25175 : return gen_split_310 (insn, operands);
25176 :
25177 : case 1:
25178 : if (!(
25179 : #line 13607 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25180 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25181 : #line 13609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25182 : ( reload_completed)))
25183 : return NULL;
25184 : return gen_split_313 (insn, operands);
25185 :
25186 : case 2:
25187 : if (!((
25188 : #line 13607 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25189 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25190 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25191 : (TARGET_64BIT)) &&
25192 : #line 13609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25193 : ( reload_completed)))
25194 : return NULL;
25195 : return gen_split_316 (insn, operands);
25196 :
25197 : case 3:
25198 : if (!
25199 : #line 13863 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25200 : ( reload_completed))
25201 : return NULL;
25202 : return gen_split_330 (insn, operands);
25203 :
25204 : case 4:
25205 : if (!
25206 : #line 13863 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25207 : ( reload_completed))
25208 : return NULL;
25209 : return gen_split_333 (insn, operands);
25210 :
25211 : case 5:
25212 : if (!(
25213 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25214 : (TARGET_64BIT) &&
25215 : #line 13863 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25216 : ( reload_completed)))
25217 : return NULL;
25218 : return gen_split_336 (insn, operands);
25219 :
25220 : default:
25221 : return NULL;
25222 : }
25223 :
25224 : case XOR:
25225 : x6 = XEXP (x5, 0);
25226 : if (GET_CODE (x6) != IOR)
25227 : return NULL;
25228 : x8 = XEXP (x3, 0);
25229 : operands[0] = x8;
25230 : x7 = XEXP (x6, 0);
25231 : operands[1] = x7;
25232 : x9 = XEXP (x6, 1);
25233 : operands[2] = x9;
25234 : switch (GET_MODE (operands[0]))
25235 : {
25236 : case E_SImode:
25237 : if (pattern1512 (x4,
25238 : E_SImode) != 0)
25239 : return NULL;
25240 : x10 = XEXP (x4, 1);
25241 : operands[3] = x10;
25242 : if (nonimmediate_operand (operands[3], E_SImode))
25243 : {
25244 : if (nonimmediate_operand (operands[2], E_SImode))
25245 : {
25246 : x11 = XEXP (x5, 1);
25247 : if (rtx_equal_p (x11, operands[1])
25248 : &&
25249 : #line 14245 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25250 : (TARGET_BMI))
25251 : return gen_split_385 (insn, operands);
25252 : }
25253 : if (register_operand (operands[2], E_SImode))
25254 : {
25255 : x11 = XEXP (x5, 1);
25256 : if (rtx_equal_p (x11, operands[2])
25257 : &&
25258 : #line 14264 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25259 : (TARGET_BMI))
25260 : return gen_split_387 (insn, operands);
25261 : }
25262 : }
25263 : x11 = XEXP (x5, 1);
25264 : operands[3] = x11;
25265 : if (!nonimmediate_operand (operands[3], E_SImode))
25266 : return NULL;
25267 : if (nonimmediate_operand (operands[2], E_SImode)
25268 : && rtx_equal_p (x10, operands[1])
25269 : &&
25270 : #line 14283 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25271 : (TARGET_BMI))
25272 : return gen_split_389 (insn, operands);
25273 : if (!register_operand (operands[2], E_SImode)
25274 : || !rtx_equal_p (x10, operands[2])
25275 : || !
25276 : #line 14302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25277 : (TARGET_BMI))
25278 : return NULL;
25279 : return gen_split_391 (insn, operands);
25280 :
25281 : case E_DImode:
25282 : if (pattern1512 (x4,
25283 : E_DImode) != 0)
25284 : return NULL;
25285 : x10 = XEXP (x4, 1);
25286 : operands[3] = x10;
25287 : if (nonimmediate_operand (operands[3], E_DImode))
25288 : {
25289 : if (nonimmediate_operand (operands[2], E_DImode))
25290 : {
25291 : x11 = XEXP (x5, 1);
25292 : if (rtx_equal_p (x11, operands[1])
25293 : && (
25294 : #line 14245 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25295 : (TARGET_BMI) &&
25296 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25297 : (TARGET_64BIT)))
25298 : return gen_split_386 (insn, operands);
25299 : }
25300 : if (register_operand (operands[2], E_DImode))
25301 : {
25302 : x11 = XEXP (x5, 1);
25303 : if (rtx_equal_p (x11, operands[2])
25304 : && (
25305 : #line 14264 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25306 : (TARGET_BMI) &&
25307 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25308 : (TARGET_64BIT)))
25309 : return gen_split_388 (insn, operands);
25310 : }
25311 : }
25312 : x11 = XEXP (x5, 1);
25313 : operands[3] = x11;
25314 : if (!nonimmediate_operand (operands[3], E_DImode))
25315 : return NULL;
25316 : if (nonimmediate_operand (operands[2], E_DImode)
25317 : && rtx_equal_p (x10, operands[1])
25318 : && (
25319 : #line 14283 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25320 : (TARGET_BMI) &&
25321 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25322 : (TARGET_64BIT)))
25323 : return gen_split_390 (insn, operands);
25324 : if (!register_operand (operands[2], E_DImode)
25325 : || !rtx_equal_p (x10, operands[2])
25326 : || !(
25327 : #line 14302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25328 : (TARGET_BMI) &&
25329 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25330 : (TARGET_64BIT)))
25331 : return NULL;
25332 : return gen_split_392 (insn, operands);
25333 :
25334 : default:
25335 : return NULL;
25336 : }
25337 :
25338 : case AND:
25339 : x6 = XEXP (x5, 0);
25340 : if (GET_CODE (x6) != XOR)
25341 : return NULL;
25342 : switch (pattern1063 (x3))
25343 : {
25344 : case 0:
25345 : if (!(
25346 : #line 14508 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25347 : (TARGET_BMI && ix86_pre_reload_split ()) &&
25348 : #line 14510 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25349 : ( 1)))
25350 : return NULL;
25351 : return gen_split_402 (insn, operands);
25352 :
25353 : case 1:
25354 : if (!(
25355 : #line 14508 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25356 : (TARGET_BMI && ix86_pre_reload_split ()) &&
25357 : #line 14510 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25358 : ( 1)))
25359 : return NULL;
25360 : return gen_split_403 (insn, operands);
25361 :
25362 : case 2:
25363 : if (!((
25364 : #line 14508 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25365 : (TARGET_BMI && ix86_pre_reload_split ()) &&
25366 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25367 : (TARGET_64BIT)) &&
25368 : #line 14510 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25369 : ( 1)))
25370 : return NULL;
25371 : return gen_split_404 (insn, operands);
25372 :
25373 : default:
25374 : return NULL;
25375 : }
25376 :
25377 : case ASHIFT:
25378 : switch (pattern1071 (x3,
25379 : 1))
25380 : {
25381 : case 0:
25382 : if (!(
25383 : #line 19783 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25384 : (TARGET_USE_BT
25385 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (SImode)-1))
25386 : == GET_MODE_BITSIZE (SImode)-1
25387 : && ix86_pre_reload_split ()) &&
25388 : #line 19788 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25389 : ( 1)))
25390 : return NULL;
25391 : return gen_split_803 (insn, operands);
25392 :
25393 : case 1:
25394 : if (!((
25395 : #line 19783 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25396 : (TARGET_USE_BT
25397 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (DImode)-1))
25398 : == GET_MODE_BITSIZE (DImode)-1
25399 : && ix86_pre_reload_split ()) &&
25400 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25401 : (TARGET_64BIT)) &&
25402 : #line 19788 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25403 : ( 1)))
25404 : return NULL;
25405 : return gen_split_805 (insn, operands);
25406 :
25407 : case 2:
25408 : if (!(
25409 : #line 19811 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25410 : (TARGET_USE_BT
25411 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (SImode)-1))
25412 : == GET_MODE_BITSIZE (SImode)-1
25413 : && ix86_pre_reload_split ()) &&
25414 : #line 19816 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25415 : ( 1)))
25416 : return NULL;
25417 : return gen_split_807 (insn, operands);
25418 :
25419 : case 3:
25420 : if (!((
25421 : #line 19811 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25422 : (TARGET_USE_BT
25423 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (DImode)-1))
25424 : == GET_MODE_BITSIZE (DImode)-1
25425 : && ix86_pre_reload_split ()) &&
25426 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25427 : (TARGET_64BIT)) &&
25428 : #line 19816 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25429 : ( 1)))
25430 : return NULL;
25431 : return gen_split_809 (insn, operands);
25432 :
25433 : default:
25434 : return NULL;
25435 : }
25436 :
25437 : case SIGN_EXTEND:
25438 : if (pattern1072 (x3) != 0
25439 : || !(
25440 : #line 22333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25441 : (!TARGET_LZCNT && TARGET_64BIT && ix86_pre_reload_split ()) &&
25442 : #line 22335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25443 : ( 1)))
25444 : return NULL;
25445 : return gen_split_882 (insn, operands);
25446 :
25447 : case ZERO_EXTEND:
25448 : if (pattern1072 (x3) != 0
25449 : || !(
25450 : #line 22333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25451 : (!TARGET_LZCNT && TARGET_64BIT && ix86_pre_reload_split ()) &&
25452 : #line 22335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25453 : ( 1)))
25454 : return NULL;
25455 : return gen_split_883 (insn, operands);
25456 :
25457 : case PLUS:
25458 : x11 = XEXP (x5, 1);
25459 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + -1])
25460 : return NULL;
25461 : switch (pattern955 (x3))
25462 : {
25463 : case 0:
25464 : if (!
25465 : #line 22891 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25466 : (TARGET_AVOID_FALSE_DEP_FOR_BLS
25467 : && epilogue_completed
25468 : && optimize_function_for_speed_p (cfun)
25469 : && !reg_mentioned_p (operands[0], operands[1])))
25470 : return NULL;
25471 : return gen_split_910 (insn, operands);
25472 :
25473 : case 1:
25474 : if (!(
25475 : #line 22891 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25476 : (TARGET_AVOID_FALSE_DEP_FOR_BLS
25477 : && epilogue_completed
25478 : && optimize_function_for_speed_p (cfun)
25479 : && !reg_mentioned_p (operands[0], operands[1])) &&
25480 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25481 : (TARGET_64BIT)))
25482 : return NULL;
25483 : return gen_split_911 (insn, operands);
25484 :
25485 : default:
25486 : return NULL;
25487 : }
25488 :
25489 : default:
25490 : return NULL;
25491 : }
25492 : }
25493 :
25494 : rtx_insn *
25495 : split_33 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
25496 : {
25497 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
25498 : rtx x2, x3, x4, x5, x6, x7;
25499 : rtx_insn *res ATTRIBUTE_UNUSED;
25500 : x2 = XVECEXP (x1, 0, 0);
25501 : x3 = XEXP (x2, 0);
25502 : operands[0] = x3;
25503 : x4 = XEXP (x2, 1);
25504 : x5 = XEXP (x4, 0);
25505 : operands[1] = x5;
25506 : x6 = XVECEXP (x1, 0, 1);
25507 : switch (GET_CODE (x6))
25508 : {
25509 : case CLOBBER:
25510 : x7 = XEXP (x6, 0);
25511 : switch (pattern707 (x7))
25512 : {
25513 : case 0:
25514 : if (!register_operand (operands[0], E_DImode)
25515 : || GET_MODE (x4) != E_DImode
25516 : || !general_operand (operands[1], E_DImode))
25517 : return NULL;
25518 : if (((
25519 : #line 15535 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25520 : (TARGET_CMOVE
25521 : && ix86_pre_reload_split ()) &&
25522 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25523 : (!TARGET_64BIT)) &&
25524 : #line 15538 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25525 : ( 1)))
25526 : return gen_split_503 (insn, operands);
25527 : if (!((
25528 : #line 15622 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25529 : (TARGET_CMOVE
25530 : && (DImode != QImode || !TARGET_PARTIAL_REG_STALL)
25531 : && ix86_pre_reload_split ()) &&
25532 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25533 : (TARGET_64BIT)) &&
25534 : #line 15626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25535 : ( 1)))
25536 : return NULL;
25537 : return gen_split_510 (insn, operands);
25538 :
25539 : case 1:
25540 : if (!register_operand (operands[0], E_TImode)
25541 : || GET_MODE (x4) != E_TImode
25542 : || !general_operand (operands[1], E_TImode)
25543 : || !((
25544 : #line 15535 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25545 : (TARGET_CMOVE
25546 : && ix86_pre_reload_split ()) &&
25547 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25548 : (TARGET_64BIT)) &&
25549 : #line 15538 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25550 : ( 1)))
25551 : return NULL;
25552 : return gen_split_504 (insn, operands);
25553 :
25554 : case 2:
25555 : if (!register_operand (operands[0], E_QImode)
25556 : || GET_MODE (x4) != E_QImode
25557 : || !general_operand (operands[1], E_QImode)
25558 : || !(
25559 : #line 15622 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25560 : (TARGET_CMOVE
25561 : && (QImode != QImode || !TARGET_PARTIAL_REG_STALL)
25562 : && ix86_pre_reload_split ()) &&
25563 : #line 15626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25564 : ( 1)))
25565 : return NULL;
25566 : return gen_split_507 (insn, operands);
25567 :
25568 : case 3:
25569 : if (!register_operand (operands[0], E_HImode)
25570 : || GET_MODE (x4) != E_HImode
25571 : || !general_operand (operands[1], E_HImode)
25572 : || !(
25573 : #line 15622 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25574 : (TARGET_CMOVE
25575 : && (HImode != QImode || !TARGET_PARTIAL_REG_STALL)
25576 : && ix86_pre_reload_split ()) &&
25577 : #line 15626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25578 : ( 1)))
25579 : return NULL;
25580 : return gen_split_508 (insn, operands);
25581 :
25582 : case 4:
25583 : if (!register_operand (operands[0], E_SImode)
25584 : || GET_MODE (x4) != E_SImode
25585 : || !general_operand (operands[1], E_SImode)
25586 : || !(
25587 : #line 15622 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25588 : (TARGET_CMOVE
25589 : && (SImode != QImode || !TARGET_PARTIAL_REG_STALL)
25590 : && ix86_pre_reload_split ()) &&
25591 : #line 15626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25592 : ( 1)))
25593 : return NULL;
25594 : return gen_split_509 (insn, operands);
25595 :
25596 : case 5:
25597 : if (GET_MODE (x4) != E_SFmode)
25598 : return NULL;
25599 : if (fp_register_operand (operands[0], E_SFmode)
25600 : && fp_register_operand (operands[1], E_SFmode)
25601 : &&
25602 : #line 15752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25603 : (TARGET_80387 && reload_completed))
25604 : return gen_split_518 (insn, operands);
25605 : if (!general_reg_operand (operands[0], E_SFmode)
25606 : || !general_reg_operand (operands[1], E_SFmode)
25607 : || !
25608 : #line 15759 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25609 : (TARGET_80387 && reload_completed))
25610 : return NULL;
25611 : return gen_split_524 (insn, operands);
25612 :
25613 : case 6:
25614 : if (GET_MODE (x4) != E_DFmode)
25615 : return NULL;
25616 : if (fp_register_operand (operands[0], E_DFmode)
25617 : && fp_register_operand (operands[1], E_DFmode)
25618 : &&
25619 : #line 15752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25620 : (TARGET_80387 && reload_completed))
25621 : return gen_split_520 (insn, operands);
25622 : if (!general_reg_operand (operands[0], E_DFmode)
25623 : || !general_reg_operand (operands[1], E_DFmode)
25624 : || !
25625 : #line 15759 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25626 : (TARGET_80387 && reload_completed))
25627 : return NULL;
25628 : return gen_split_526 (insn, operands);
25629 :
25630 : case 7:
25631 : if (GET_MODE (x4) != E_XFmode)
25632 : return NULL;
25633 : if (fp_register_operand (operands[0], E_XFmode)
25634 : && fp_register_operand (operands[1], E_XFmode)
25635 : &&
25636 : #line 15752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25637 : (TARGET_80387 && reload_completed))
25638 : return gen_split_522 (insn, operands);
25639 : if (!general_reg_operand (operands[0], E_XFmode)
25640 : || !general_reg_operand (operands[1], E_XFmode)
25641 : || !
25642 : #line 15759 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25643 : (TARGET_80387 && reload_completed))
25644 : return NULL;
25645 : return gen_split_528 (insn, operands);
25646 :
25647 : default:
25648 : return NULL;
25649 : }
25650 :
25651 : case USE:
25652 : if (pattern846 (x1) != 0
25653 : || !(
25654 : #line 15683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25655 : (TARGET_SSE) &&
25656 : #line 15685 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25657 : ( reload_completed)))
25658 : return NULL;
25659 : return gen_split_515 (insn, operands);
25660 :
25661 : default:
25662 : return NULL;
25663 : }
25664 : }
25665 :
25666 : rtx_insn *
25667 : split_40 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
25668 : {
25669 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
25670 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
25671 : rtx_insn *res ATTRIBUTE_UNUSED;
25672 : x2 = XVECEXP (x1, 0, 0);
25673 : x3 = XEXP (x2, 0);
25674 : operands[0] = x3;
25675 : x4 = XEXP (x2, 1);
25676 : x5 = XEXP (x4, 0);
25677 : switch (GET_CODE (x5))
25678 : {
25679 : case REG:
25680 : case SUBREG:
25681 : case MEM:
25682 : operands[1] = x5;
25683 : x6 = XVECEXP (x1, 0, 1);
25684 : switch (GET_CODE (x6))
25685 : {
25686 : case CLOBBER:
25687 : x7 = XEXP (x6, 0);
25688 : if (GET_CODE (x7) != REG
25689 : || REGNO (x7) != 17
25690 : || GET_MODE (x7) != E_CCmode)
25691 : return NULL;
25692 : if (register_operand (operands[0], E_VOIDmode)
25693 : && register_operand (operands[1], E_VOIDmode)
25694 : &&
25695 : #line 28992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25696 : (! TARGET_PARTIAL_REG_STALL && reload_completed
25697 : && (GET_MODE (operands[0]) == HImode
25698 : || (GET_MODE (operands[0]) == QImode && TARGET_PROMOTE_QImode))))
25699 : return gen_split_1012 (insn, operands);
25700 : if (GET_MODE (x4) != E_V2QImode)
25701 : return NULL;
25702 : if (general_reg_operand (operands[0], E_V2QImode)
25703 : && general_reg_operand (operands[1], E_V2QImode)
25704 : &&
25705 : #line 3183 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
25706 : ((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
25707 : && reload_completed))
25708 : return gen_split_1088 (insn, operands);
25709 : if (!sse_reg_operand (operands[0], E_V2QImode)
25710 : || !sse_reg_operand (operands[1], E_V2QImode)
25711 : || !
25712 : #line 3210 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
25713 : (TARGET_SSE2 && reload_completed))
25714 : return NULL;
25715 : return gen_split_1089 (insn, operands);
25716 :
25717 : case USE:
25718 : switch (pattern847 (x1))
25719 : {
25720 : case 0:
25721 : if (!(
25722 : #line 707 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
25723 : (TARGET_MMX_WITH_SSE) &&
25724 : #line 709 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
25725 : ( reload_completed)))
25726 : return NULL;
25727 : return gen_split_1068 (insn, operands);
25728 :
25729 : case 1:
25730 : if (!(
25731 : #line 2266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
25732 : (TARGET_SSE) &&
25733 : #line 2268 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
25734 : ( reload_completed)))
25735 : return NULL;
25736 : return gen_split_1077 (insn, operands);
25737 :
25738 : case 2:
25739 : if (!((
25740 : #line 2266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
25741 : (TARGET_SSE) &&
25742 : #line 2251 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
25743 : (TARGET_MMX_WITH_SSE)) &&
25744 : #line 2268 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
25745 : ( reload_completed)))
25746 : return NULL;
25747 : return gen_split_1079 (insn, operands);
25748 :
25749 : case 3:
25750 : if (!(
25751 : #line 2266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
25752 : (TARGET_SSE) &&
25753 : #line 2268 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
25754 : ( reload_completed)))
25755 : return NULL;
25756 : return gen_split_1081 (insn, operands);
25757 :
25758 : case 4:
25759 : if (!((
25760 : #line 2266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
25761 : (TARGET_SSE) &&
25762 : #line 2252 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
25763 : (TARGET_MMX_WITH_SSE)) &&
25764 : #line 2268 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
25765 : ( reload_completed)))
25766 : return NULL;
25767 : return gen_split_1083 (insn, operands);
25768 :
25769 : case 5:
25770 : if (!((
25771 : #line 2626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25772 : (TARGET_SSE) &&
25773 : #line 415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25774 : (TARGET_AVX512F)) &&
25775 : #line 2628 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25776 : ( reload_completed)))
25777 : return NULL;
25778 : return gen_split_1306 (insn, operands);
25779 :
25780 : case 6:
25781 : if (!((
25782 : #line 2626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25783 : (TARGET_SSE) &&
25784 : #line 416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25785 : (TARGET_AVX)) &&
25786 : #line 2628 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25787 : ( reload_completed)))
25788 : return NULL;
25789 : return gen_split_1308 (insn, operands);
25790 :
25791 : case 7:
25792 : if (!((
25793 : #line 2626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25794 : (TARGET_SSE) &&
25795 : #line 416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25796 : (TARGET_SSE2)) &&
25797 : #line 2628 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25798 : ( reload_completed)))
25799 : return NULL;
25800 : return gen_split_1310 (insn, operands);
25801 :
25802 : case 8:
25803 : if (!((
25804 : #line 2626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25805 : (TARGET_SSE) &&
25806 : #line 417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25807 : (TARGET_AVX512F)) &&
25808 : #line 2628 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25809 : ( reload_completed)))
25810 : return NULL;
25811 : return gen_split_1312 (insn, operands);
25812 :
25813 : case 9:
25814 : if (!((
25815 : #line 2626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25816 : (TARGET_SSE) &&
25817 : #line 418 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25818 : (TARGET_AVX)) &&
25819 : #line 2628 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25820 : ( reload_completed)))
25821 : return NULL;
25822 : return gen_split_1314 (insn, operands);
25823 :
25824 : case 10:
25825 : if (!((
25826 : #line 2626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25827 : (TARGET_SSE) &&
25828 : #line 418 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25829 : (TARGET_SSE2)) &&
25830 : #line 2628 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25831 : ( reload_completed)))
25832 : return NULL;
25833 : return gen_split_1316 (insn, operands);
25834 :
25835 : case 11:
25836 : if (!((
25837 : #line 2626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25838 : (TARGET_SSE) &&
25839 : #line 419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25840 : (TARGET_AVX512F)) &&
25841 : #line 2628 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25842 : ( reload_completed)))
25843 : return NULL;
25844 : return gen_split_1318 (insn, operands);
25845 :
25846 : case 12:
25847 : if (!((
25848 : #line 2626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25849 : (TARGET_SSE) &&
25850 : #line 419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25851 : (TARGET_AVX)) &&
25852 : #line 2628 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25853 : ( reload_completed)))
25854 : return NULL;
25855 : return gen_split_1320 (insn, operands);
25856 :
25857 : case 13:
25858 : if (!(
25859 : #line 2626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25860 : (TARGET_SSE) &&
25861 : #line 2628 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25862 : ( reload_completed)))
25863 : return NULL;
25864 : return gen_split_1322 (insn, operands);
25865 :
25866 : case 14:
25867 : if (!((
25868 : #line 2626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25869 : (TARGET_SSE) &&
25870 : #line 420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25871 : (TARGET_AVX512F)) &&
25872 : #line 2628 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25873 : ( reload_completed)))
25874 : return NULL;
25875 : return gen_split_1324 (insn, operands);
25876 :
25877 : case 15:
25878 : if (!((
25879 : #line 2626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25880 : (TARGET_SSE) &&
25881 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25882 : (TARGET_AVX)) &&
25883 : #line 2628 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25884 : ( reload_completed)))
25885 : return NULL;
25886 : return gen_split_1326 (insn, operands);
25887 :
25888 : case 16:
25889 : if (!((
25890 : #line 2626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25891 : (TARGET_SSE) &&
25892 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25893 : (TARGET_SSE2)) &&
25894 : #line 2628 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25895 : ( reload_completed)))
25896 : return NULL;
25897 : return gen_split_1328 (insn, operands);
25898 :
25899 : default:
25900 : return NULL;
25901 : }
25902 :
25903 : default:
25904 : return NULL;
25905 : }
25906 :
25907 : case LTU:
25908 : case UNLT:
25909 : operands[1] = x5;
25910 : if (!ix86_carry_flag_operator (operands[1], E_VOIDmode))
25911 : return NULL;
25912 : x8 = XEXP (x5, 0);
25913 : if (GET_CODE (x8) != REG
25914 : || REGNO (x8) != 17)
25915 : return NULL;
25916 : x9 = XEXP (x5, 1);
25917 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
25918 : return NULL;
25919 : x6 = XVECEXP (x1, 0, 1);
25920 : if (pattern237 (x6,
25921 : E_CCmode,
25922 : 17) != 0
25923 : || !general_reg_operand (operands[0], E_VOIDmode)
25924 : || !
25925 : #line 29022 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25926 : (! TARGET_PARTIAL_REG_STALL && reload_completed
25927 : && (GET_MODE (operands[0]) == HImode
25928 : || (GET_MODE (operands[0]) == QImode && TARGET_PROMOTE_QImode))))
25929 : return NULL;
25930 : return gen_split_1014 (insn, operands);
25931 :
25932 : case ABS:
25933 : x6 = XVECEXP (x1, 0, 1);
25934 : if (GET_CODE (x6) != USE)
25935 : return NULL;
25936 : x8 = XEXP (x5, 0);
25937 : operands[1] = x8;
25938 : x7 = XEXP (x6, 0);
25939 : operands[2] = x7;
25940 : switch (GET_MODE (operands[0]))
25941 : {
25942 : case E_V2SFmode:
25943 : if (pattern1066 (x4) != 0
25944 : || !(
25945 : #line 724 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
25946 : (TARGET_MMX_WITH_SSE) &&
25947 : #line 726 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
25948 : ( reload_completed)))
25949 : return NULL;
25950 : return gen_split_1069 (insn, operands);
25951 :
25952 : case E_V2BFmode:
25953 : if (pattern1067 (x4,
25954 : E_V2BFmode) != 0
25955 : || !(
25956 : #line 2283 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
25957 : (TARGET_SSE) &&
25958 : #line 2285 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
25959 : ( reload_completed)))
25960 : return NULL;
25961 : return gen_split_1084 (insn, operands);
25962 :
25963 : case E_V4BFmode:
25964 : if (pattern1067 (x4,
25965 : E_V4BFmode) != 0
25966 : || !((
25967 : #line 2283 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
25968 : (TARGET_SSE) &&
25969 : #line 2251 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
25970 : (TARGET_MMX_WITH_SSE)) &&
25971 : #line 2285 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
25972 : ( reload_completed)))
25973 : return NULL;
25974 : return gen_split_1085 (insn, operands);
25975 :
25976 : case E_V2HFmode:
25977 : if (pattern1067 (x4,
25978 : E_V2HFmode) != 0
25979 : || !(
25980 : #line 2283 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
25981 : (TARGET_SSE) &&
25982 : #line 2285 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
25983 : ( reload_completed)))
25984 : return NULL;
25985 : return gen_split_1086 (insn, operands);
25986 :
25987 : case E_V4HFmode:
25988 : if (pattern1067 (x4,
25989 : E_V4HFmode) != 0
25990 : || !((
25991 : #line 2283 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
25992 : (TARGET_SSE) &&
25993 : #line 2252 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
25994 : (TARGET_MMX_WITH_SSE)) &&
25995 : #line 2285 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
25996 : ( reload_completed)))
25997 : return NULL;
25998 : return gen_split_1087 (insn, operands);
25999 :
26000 : case E_V16SFmode:
26001 : if (pattern1064 (x4,
26002 : E_V16SFmode) != 0
26003 : || !((
26004 : #line 2651 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26005 : (TARGET_SSE) &&
26006 : #line 382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26007 : (TARGET_AVX512F)) &&
26008 : #line 2653 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26009 : ( reload_completed)))
26010 : return NULL;
26011 : return gen_split_1329 (insn, operands);
26012 :
26013 : case E_V8SFmode:
26014 : if (pattern1064 (x4,
26015 : E_V8SFmode) != 0
26016 : || !((
26017 : #line 2651 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26018 : (TARGET_SSE) &&
26019 : #line 382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26020 : (TARGET_AVX)) &&
26021 : #line 2653 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26022 : ( reload_completed)))
26023 : return NULL;
26024 : return gen_split_1330 (insn, operands);
26025 :
26026 : case E_V4SFmode:
26027 : if (pattern1064 (x4,
26028 : E_V4SFmode) != 0
26029 : || !(
26030 : #line 2651 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26031 : (TARGET_SSE) &&
26032 : #line 2653 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26033 : ( reload_completed)))
26034 : return NULL;
26035 : return gen_split_1331 (insn, operands);
26036 :
26037 : case E_V8DFmode:
26038 : if (pattern1064 (x4,
26039 : E_V8DFmode) != 0
26040 : || !((
26041 : #line 2651 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26042 : (TARGET_SSE) &&
26043 : #line 383 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26044 : (TARGET_AVX512F)) &&
26045 : #line 2653 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26046 : ( reload_completed)))
26047 : return NULL;
26048 : return gen_split_1332 (insn, operands);
26049 :
26050 : case E_V4DFmode:
26051 : if (pattern1064 (x4,
26052 : E_V4DFmode) != 0
26053 : || !((
26054 : #line 2651 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26055 : (TARGET_SSE) &&
26056 : #line 383 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26057 : (TARGET_AVX)) &&
26058 : #line 2653 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26059 : ( reload_completed)))
26060 : return NULL;
26061 : return gen_split_1333 (insn, operands);
26062 :
26063 : case E_V2DFmode:
26064 : if (pattern1064 (x4,
26065 : E_V2DFmode) != 0
26066 : || !((
26067 : #line 2651 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26068 : (TARGET_SSE) &&
26069 : #line 384 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26070 : (TARGET_SSE2)) &&
26071 : #line 2653 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26072 : ( reload_completed)))
26073 : return NULL;
26074 : return gen_split_1334 (insn, operands);
26075 :
26076 : default:
26077 : return NULL;
26078 : }
26079 :
26080 : default:
26081 : return NULL;
26082 : }
26083 : }
26084 :
26085 : rtx_insn *
26086 : split_52 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
26087 : {
26088 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
26089 : rtx x2, x3, x4, x5, x6, x7;
26090 : rtx_insn *res ATTRIBUTE_UNUSED;
26091 : x2 = XEXP (x1, 0);
26092 : operands[0] = x2;
26093 : x3 = XEXP (x1, 1);
26094 : x4 = XEXP (x3, 0);
26095 : switch (GET_CODE (x4))
26096 : {
26097 : case LT:
26098 : x5 = XEXP (x4, 0);
26099 : operands[1] = x5;
26100 : x6 = XEXP (x4, 1);
26101 : operands[2] = x6;
26102 : x7 = XEXP (x3, 1);
26103 : operands[3] = x7;
26104 : switch (GET_MODE (operands[0]))
26105 : {
26106 : case E_V4HImode:
26107 : if (pattern959 (x3,
26108 : E_V4HImode) != 0
26109 : || !
26110 : #line 3944 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26111 : (TARGET_MMX_WITH_SSE && ix86_pre_reload_split ()))
26112 : return NULL;
26113 : return gen_split_1096 (insn, operands);
26114 :
26115 : case E_V2SImode:
26116 : if (pattern959 (x3,
26117 : E_V2SImode) != 0
26118 : || !
26119 : #line 3944 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26120 : (TARGET_MMX_WITH_SSE && ix86_pre_reload_split ()))
26121 : return NULL;
26122 : return gen_split_1097 (insn, operands);
26123 :
26124 : case E_V1DImode:
26125 : if (pattern959 (x3,
26126 : E_V1DImode) != 0
26127 : || !
26128 : #line 3944 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26129 : (TARGET_MMX_WITH_SSE && ix86_pre_reload_split ()))
26130 : return NULL;
26131 : return gen_split_1098 (insn, operands);
26132 :
26133 : case E_V2HImode:
26134 : if (pattern959 (x3,
26135 : E_V2HImode) != 0
26136 : || !
26137 : #line 4007 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26138 : (TARGET_SSE2 && ix86_pre_reload_split ()))
26139 : return NULL;
26140 : return gen_split_1100 (insn, operands);
26141 :
26142 : default:
26143 : return NULL;
26144 : }
26145 :
26146 : case REG:
26147 : switch (pattern243 (x3))
26148 : {
26149 : case 0:
26150 : if (!
26151 : #line 2149 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26152 : (TARGET_AVX512F && reload_completed))
26153 : return NULL;
26154 : return gen_split_1231 (insn, operands);
26155 :
26156 : case 1:
26157 : if (!
26158 : #line 2149 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26159 : (TARGET_AVX512F && reload_completed))
26160 : return NULL;
26161 : return gen_split_1234 (insn, operands);
26162 :
26163 : case 2:
26164 : if (!(
26165 : #line 2149 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26166 : (TARGET_AVX512F && reload_completed) &&
26167 : #line 2109 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26168 : (TARGET_AVX512BW)))
26169 : return NULL;
26170 : return gen_split_1237 (insn, operands);
26171 :
26172 : case 3:
26173 : if (!(
26174 : #line 2149 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26175 : (TARGET_AVX512F && reload_completed) &&
26176 : #line 2109 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26177 : (TARGET_AVX512BW)))
26178 : return NULL;
26179 : return gen_split_1240 (insn, operands);
26180 :
26181 : default:
26182 : return NULL;
26183 : }
26184 :
26185 : default:
26186 : return NULL;
26187 : }
26188 : }
26189 :
26190 : rtx_insn *
26191 : split_53 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
26192 : {
26193 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
26194 : rtx x2, x3, x4, x5;
26195 : rtx_insn *res ATTRIBUTE_UNUSED;
26196 : x2 = XEXP (x1, 1);
26197 : x3 = XEXP (x2, 0);
26198 : if (GET_CODE (x3) != SS_TRUNCATE)
26199 : return NULL;
26200 : x4 = XEXP (x2, 1);
26201 : if (GET_CODE (x4) != SS_TRUNCATE)
26202 : return NULL;
26203 : x5 = XEXP (x1, 0);
26204 : operands[0] = x5;
26205 : switch (pattern273 (x2))
26206 : {
26207 : case 0:
26208 : if (!(
26209 : #line 4805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26210 : (TARGET_MMX || TARGET_MMX_WITH_SSE) &&
26211 : #line 4810 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26212 : ( reload_completed
26213 : && SSE_REGNO_P (REGNO (operands[0])))))
26214 : return NULL;
26215 : return gen_split_1144 (insn, operands);
26216 :
26217 : case 1:
26218 : if (!(
26219 : #line 4846 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26220 : (TARGET_MMX || TARGET_MMX_WITH_SSE) &&
26221 : #line 4851 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26222 : ( reload_completed
26223 : && SSE_REGNO_P (REGNO (operands[0])))))
26224 : return NULL;
26225 : return gen_split_1146 (insn, operands);
26226 :
26227 : default:
26228 : return NULL;
26229 : }
26230 : }
26231 :
26232 : rtx_insn *
26233 : split_54 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
26234 : {
26235 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
26236 : rtx x2, x3, x4, x5, x6, x7;
26237 : rtx_insn *res ATTRIBUTE_UNUSED;
26238 : x2 = XEXP (x1, 1);
26239 : x3 = XEXP (x2, 0);
26240 : if (GET_CODE (x3) != VEC_DUPLICATE)
26241 : return NULL;
26242 : x4 = XEXP (x1, 0);
26243 : operands[0] = x4;
26244 : x5 = XEXP (x3, 0);
26245 : operands[2] = x5;
26246 : x6 = XEXP (x2, 1);
26247 : operands[1] = x6;
26248 : x7 = XEXP (x2, 2);
26249 : operands[3] = x7;
26250 : if (!const_int_operand (operands[3], E_SImode))
26251 : return NULL;
26252 : switch (GET_MODE (operands[0]))
26253 : {
26254 : case E_V4HFmode:
26255 : if (pattern1075 (x2,
26256 : E_V4HFmode,
26257 : E_HFmode) != 0
26258 : || !
26259 : #line 5371 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26260 : (TARGET_MMX_WITH_SSE && TARGET_SSE4_1 && reload_completed
26261 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
26262 : < GET_MODE_NUNITS (V4HFmode))))
26263 : return NULL;
26264 : return gen_split_1156 (insn, operands);
26265 :
26266 : case E_V4BFmode:
26267 : if (pattern1075 (x2,
26268 : E_V4BFmode,
26269 : E_BFmode) != 0
26270 : || !
26271 : #line 5371 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26272 : (TARGET_MMX_WITH_SSE && TARGET_SSE4_1 && reload_completed
26273 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
26274 : < GET_MODE_NUNITS (V4BFmode))))
26275 : return NULL;
26276 : return gen_split_1157 (insn, operands);
26277 :
26278 : case E_V4HImode:
26279 : if (pattern1075 (x2,
26280 : E_V4HImode,
26281 : E_HImode) != 0
26282 : || !
26283 : #line 5371 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26284 : (TARGET_MMX_WITH_SSE && TARGET_SSE4_1 && reload_completed
26285 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
26286 : < GET_MODE_NUNITS (V4HImode))))
26287 : return NULL;
26288 : return gen_split_1158 (insn, operands);
26289 :
26290 : case E_V2HFmode:
26291 : if (pattern1075 (x2,
26292 : E_V2HFmode,
26293 : E_HFmode) != 0
26294 : || !
26295 : #line 6047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26296 : (TARGET_SSE4_1 && reload_completed
26297 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
26298 : < GET_MODE_NUNITS (V2HFmode))))
26299 : return NULL;
26300 : return gen_split_1164 (insn, operands);
26301 :
26302 : case E_V2BFmode:
26303 : if (pattern1075 (x2,
26304 : E_V2BFmode,
26305 : E_BFmode) != 0
26306 : || !
26307 : #line 6047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26308 : (TARGET_SSE4_1 && reload_completed
26309 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
26310 : < GET_MODE_NUNITS (V2BFmode))))
26311 : return NULL;
26312 : return gen_split_1165 (insn, operands);
26313 :
26314 : case E_V2HImode:
26315 : if (pattern1075 (x2,
26316 : E_V2HImode,
26317 : E_HImode) != 0
26318 : || !
26319 : #line 6047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26320 : (TARGET_SSE4_1 && reload_completed
26321 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
26322 : < GET_MODE_NUNITS (V2HImode))))
26323 : return NULL;
26324 : return gen_split_1166 (insn, operands);
26325 :
26326 : default:
26327 : return NULL;
26328 : }
26329 : }
26330 :
26331 : rtx_insn *
26332 : split_56 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
26333 : {
26334 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
26335 : rtx x2, x3, x4, x5;
26336 : rtx_insn *res ATTRIBUTE_UNUSED;
26337 : x2 = XEXP (x1, 1);
26338 : if (GET_MODE (x2) != E_DImode)
26339 : return NULL;
26340 : x3 = XEXP (x2, 0);
26341 : if (GET_CODE (x3) != UNSPEC
26342 : || XVECLEN (x3, 0) != 1
26343 : || XINT (x3, 1) != 50
26344 : || GET_MODE (x3) != E_SImode)
26345 : return NULL;
26346 : x4 = XEXP (x1, 0);
26347 : operands[0] = x4;
26348 : if (!register_operand (operands[0], E_DImode))
26349 : return NULL;
26350 : x5 = XVECEXP (x3, 0, 0);
26351 : switch (GET_CODE (x5))
26352 : {
26353 : case LT:
26354 : switch (pattern998 (x5))
26355 : {
26356 : case 0:
26357 : if (!((
26358 : #line 22519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26359 : (TARGET_64BIT && TARGET_SSE) &&
26360 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26361 : (TARGET_AVX)) &&
26362 : #line 22521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26363 : ( reload_completed)))
26364 : return NULL;
26365 : return gen_split_3525 (insn, operands);
26366 :
26367 : case 1:
26368 : if (!(
26369 : #line 22519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26370 : (TARGET_64BIT && TARGET_SSE) &&
26371 : #line 22521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26372 : ( reload_completed)))
26373 : return NULL;
26374 : return gen_split_3527 (insn, operands);
26375 :
26376 : case 2:
26377 : if (!((
26378 : #line 22519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26379 : (TARGET_64BIT && TARGET_SSE) &&
26380 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26381 : (TARGET_AVX)) &&
26382 : #line 22521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26383 : ( reload_completed)))
26384 : return NULL;
26385 : return gen_split_3529 (insn, operands);
26386 :
26387 : case 3:
26388 : if (!((
26389 : #line 22519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26390 : (TARGET_64BIT && TARGET_SSE) &&
26391 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26392 : (TARGET_SSE2)) &&
26393 : #line 22521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26394 : ( reload_completed)))
26395 : return NULL;
26396 : return gen_split_3531 (insn, operands);
26397 :
26398 : case 4:
26399 : if (!(
26400 : #line 22834 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26401 : (TARGET_64BIT && TARGET_SSE2) &&
26402 : #line 22836 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26403 : ( 1)))
26404 : return NULL;
26405 : return gen_split_3567 (insn, operands);
26406 :
26407 : default:
26408 : return NULL;
26409 : }
26410 :
26411 : case SUBREG:
26412 : switch (pattern1101 (x5))
26413 : {
26414 : case 0:
26415 : if (!((
26416 : #line 22544 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26417 : (TARGET_64BIT && TARGET_SSE) &&
26418 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26419 : (TARGET_AVX)) &&
26420 : #line 22546 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26421 : ( reload_completed)))
26422 : return NULL;
26423 : return gen_split_3533 (insn, operands);
26424 :
26425 : case 1:
26426 : if (!(
26427 : #line 22544 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26428 : (TARGET_64BIT && TARGET_SSE) &&
26429 : #line 22546 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26430 : ( reload_completed)))
26431 : return NULL;
26432 : return gen_split_3535 (insn, operands);
26433 :
26434 : case 2:
26435 : if (!((
26436 : #line 22544 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26437 : (TARGET_64BIT && TARGET_SSE) &&
26438 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26439 : (TARGET_AVX)) &&
26440 : #line 22546 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26441 : ( reload_completed)))
26442 : return NULL;
26443 : return gen_split_3537 (insn, operands);
26444 :
26445 : case 3:
26446 : if (!((
26447 : #line 22544 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26448 : (TARGET_64BIT && TARGET_SSE) &&
26449 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26450 : (TARGET_SSE2)) &&
26451 : #line 22546 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26452 : ( reload_completed)))
26453 : return NULL;
26454 : return gen_split_3539 (insn, operands);
26455 :
26456 : case 4:
26457 : if (!((
26458 : #line 22583 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26459 : (TARGET_64BIT && TARGET_SSE) &&
26460 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26461 : (TARGET_AVX)) &&
26462 : #line 22585 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26463 : ( reload_completed)))
26464 : return NULL;
26465 : return gen_split_3545 (insn, operands);
26466 :
26467 : case 5:
26468 : if (!(
26469 : #line 22583 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26470 : (TARGET_64BIT && TARGET_SSE) &&
26471 : #line 22585 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26472 : ( reload_completed)))
26473 : return NULL;
26474 : return gen_split_3547 (insn, operands);
26475 :
26476 : case 6:
26477 : if (!((
26478 : #line 22583 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26479 : (TARGET_64BIT && TARGET_SSE) &&
26480 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26481 : (TARGET_AVX)) &&
26482 : #line 22585 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26483 : ( reload_completed)))
26484 : return NULL;
26485 : return gen_split_3549 (insn, operands);
26486 :
26487 : case 7:
26488 : if (!((
26489 : #line 22583 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26490 : (TARGET_64BIT && TARGET_SSE) &&
26491 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26492 : (TARGET_SSE2)) &&
26493 : #line 22585 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26494 : ( reload_completed)))
26495 : return NULL;
26496 : return gen_split_3551 (insn, operands);
26497 :
26498 : default:
26499 : return NULL;
26500 : }
26501 :
26502 : case VEC_MERGE:
26503 : switch (pattern988 (x5))
26504 : {
26505 : case 0:
26506 : if (!((
26507 : #line 22863 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26508 : (TARGET_64BIT && TARGET_SSE2) &&
26509 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26510 : (TARGET_AVX2)) &&
26511 : #line 22865 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26512 : ( 1)))
26513 : return NULL;
26514 : return gen_split_3568 (insn, operands);
26515 :
26516 : case 1:
26517 : if (!(
26518 : #line 22863 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26519 : (TARGET_64BIT && TARGET_SSE2) &&
26520 : #line 22865 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26521 : ( 1)))
26522 : return NULL;
26523 : return gen_split_3569 (insn, operands);
26524 :
26525 : default:
26526 : return NULL;
26527 : }
26528 :
26529 : default:
26530 : return NULL;
26531 : }
26532 : }
26533 :
26534 : rtx_insn *
26535 : split_59 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
26536 : {
26537 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
26538 : rtx x2, x3, x4, x5;
26539 : rtx_insn *res ATTRIBUTE_UNUSED;
26540 : x2 = XEXP (x1, 1);
26541 : x3 = XEXP (x2, 0);
26542 : operands[1] = x3;
26543 : x4 = XEXP (x2, 2);
26544 : if (GET_CODE (x4) != UNSPEC
26545 : || XVECLEN (x4, 0) != 3
26546 : || XINT (x4, 1) != 60)
26547 : return NULL;
26548 : switch (pattern1020 (x2))
26549 : {
26550 : case 0:
26551 : x5 = XVECEXP (x4, 0, 0);
26552 : operands[3] = x5;
26553 : switch (pattern1475 (x2))
26554 : {
26555 : case 0:
26556 : if (((
26557 : #line 3382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26558 : (TARGET_SSE && ix86_pre_reload_split ()
26559 : && ((rtx_equal_p (operands[1], operands[3])
26560 : && rtx_equal_p (operands[2], operands[4]))
26561 : || (rtx_equal_p (operands[1], operands[4])
26562 : && rtx_equal_p (operands[2], operands[3])))
26563 : && (INTVAL (operands[5]) == 1 || INTVAL (operands[5]) == 14)) &&
26564 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26565 : (TARGET_AVX512FP16)) &&
26566 : #line 3389 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26567 : ( 1)))
26568 : return gen_split_1335 (insn, operands);
26569 : break;
26570 :
26571 : case 1:
26572 : if (((
26573 : #line 3382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26574 : (TARGET_SSE && ix86_pre_reload_split ()
26575 : && ((rtx_equal_p (operands[1], operands[3])
26576 : && rtx_equal_p (operands[2], operands[4]))
26577 : || (rtx_equal_p (operands[1], operands[4])
26578 : && rtx_equal_p (operands[2], operands[3])))
26579 : && (INTVAL (operands[5]) == 1 || INTVAL (operands[5]) == 14)) &&
26580 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26581 : (TARGET_AVX512FP16 && TARGET_AVX512VL)) &&
26582 : #line 3389 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26583 : ( 1)))
26584 : return gen_split_1336 (insn, operands);
26585 : break;
26586 :
26587 : case 2:
26588 : if (((
26589 : #line 3382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26590 : (TARGET_SSE && ix86_pre_reload_split ()
26591 : && ((rtx_equal_p (operands[1], operands[3])
26592 : && rtx_equal_p (operands[2], operands[4]))
26593 : || (rtx_equal_p (operands[1], operands[4])
26594 : && rtx_equal_p (operands[2], operands[3])))
26595 : && (INTVAL (operands[5]) == 1 || INTVAL (operands[5]) == 14)) &&
26596 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26597 : (TARGET_AVX512FP16 && TARGET_AVX512VL)) &&
26598 : #line 3389 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26599 : ( 1)))
26600 : return gen_split_1337 (insn, operands);
26601 : break;
26602 :
26603 : case 3:
26604 : if (((
26605 : #line 3382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26606 : (TARGET_SSE && ix86_pre_reload_split ()
26607 : && ((rtx_equal_p (operands[1], operands[3])
26608 : && rtx_equal_p (operands[2], operands[4]))
26609 : || (rtx_equal_p (operands[1], operands[4])
26610 : && rtx_equal_p (operands[2], operands[3])))
26611 : && (INTVAL (operands[5]) == 1 || INTVAL (operands[5]) == 14)) &&
26612 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26613 : (TARGET_AVX512F)) &&
26614 : #line 3389 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26615 : ( 1)))
26616 : return gen_split_1338 (insn, operands);
26617 : break;
26618 :
26619 : case 4:
26620 : if (nonimmediate_operand (operands[1], E_V8SFmode)
26621 : && pattern1691 (
26622 : E_V8SFmode) == 0
26623 : && ((
26624 : #line 3382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26625 : (TARGET_SSE && ix86_pre_reload_split ()
26626 : && ((rtx_equal_p (operands[1], operands[3])
26627 : && rtx_equal_p (operands[2], operands[4]))
26628 : || (rtx_equal_p (operands[1], operands[4])
26629 : && rtx_equal_p (operands[2], operands[3])))
26630 : && (INTVAL (operands[5]) == 1 || INTVAL (operands[5]) == 14)) &&
26631 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26632 : (TARGET_AVX)) &&
26633 : #line 3389 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26634 : ( 1)))
26635 : return gen_split_1339 (insn, operands);
26636 : if (vector_operand (operands[1], E_V8SFmode)
26637 : && pattern1692 (
26638 : E_V8SImode,
26639 : E_V8SFmode) == 0
26640 : && ((
26641 : #line 4482 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26642 : (TARGET_AVX512VL && ix86_pre_reload_split ()
26643 : /* LT or GE 0 */
26644 : && ((INTVAL (operands[5]) == 1) || (INTVAL (operands[5]) == 5))) &&
26645 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26646 : (TARGET_AVX)) &&
26647 : #line 4486 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26648 : ( 1)))
26649 : return gen_split_1388 (insn, operands);
26650 : break;
26651 :
26652 : case 5:
26653 : if (nonimmediate_operand (operands[1], E_V4SFmode)
26654 : && pattern1691 (
26655 : E_V4SFmode) == 0
26656 : && (
26657 : #line 3382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26658 : (TARGET_SSE && ix86_pre_reload_split ()
26659 : && ((rtx_equal_p (operands[1], operands[3])
26660 : && rtx_equal_p (operands[2], operands[4]))
26661 : || (rtx_equal_p (operands[1], operands[4])
26662 : && rtx_equal_p (operands[2], operands[3])))
26663 : && (INTVAL (operands[5]) == 1 || INTVAL (operands[5]) == 14)) &&
26664 : #line 3389 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26665 : ( 1)))
26666 : return gen_split_1340 (insn, operands);
26667 : if (vector_operand (operands[1], E_V4SFmode)
26668 : && pattern1692 (
26669 : E_V4SImode,
26670 : E_V4SFmode) == 0
26671 : && (
26672 : #line 4482 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26673 : (TARGET_AVX512VL && ix86_pre_reload_split ()
26674 : /* LT or GE 0 */
26675 : && ((INTVAL (operands[5]) == 1) || (INTVAL (operands[5]) == 5))) &&
26676 : #line 4486 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26677 : ( 1)))
26678 : return gen_split_1389 (insn, operands);
26679 : break;
26680 :
26681 : case 6:
26682 : if (((
26683 : #line 3382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26684 : (TARGET_SSE && ix86_pre_reload_split ()
26685 : && ((rtx_equal_p (operands[1], operands[3])
26686 : && rtx_equal_p (operands[2], operands[4]))
26687 : || (rtx_equal_p (operands[1], operands[4])
26688 : && rtx_equal_p (operands[2], operands[3])))
26689 : && (INTVAL (operands[5]) == 1 || INTVAL (operands[5]) == 14)) &&
26690 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26691 : (TARGET_AVX512F)) &&
26692 : #line 3389 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26693 : ( 1)))
26694 : return gen_split_1341 (insn, operands);
26695 : break;
26696 :
26697 : case 7:
26698 : if (nonimmediate_operand (operands[1], E_V4DFmode)
26699 : && pattern1691 (
26700 : E_V4DFmode) == 0
26701 : && ((
26702 : #line 3382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26703 : (TARGET_SSE && ix86_pre_reload_split ()
26704 : && ((rtx_equal_p (operands[1], operands[3])
26705 : && rtx_equal_p (operands[2], operands[4]))
26706 : || (rtx_equal_p (operands[1], operands[4])
26707 : && rtx_equal_p (operands[2], operands[3])))
26708 : && (INTVAL (operands[5]) == 1 || INTVAL (operands[5]) == 14)) &&
26709 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26710 : (TARGET_AVX)) &&
26711 : #line 3389 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26712 : ( 1)))
26713 : return gen_split_1342 (insn, operands);
26714 : if (vector_operand (operands[1], E_V4DFmode)
26715 : && pattern1692 (
26716 : E_V4DImode,
26717 : E_V4DFmode) == 0
26718 : && ((
26719 : #line 4482 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26720 : (TARGET_AVX512VL && ix86_pre_reload_split ()
26721 : /* LT or GE 0 */
26722 : && ((INTVAL (operands[5]) == 1) || (INTVAL (operands[5]) == 5))) &&
26723 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26724 : (TARGET_AVX)) &&
26725 : #line 4486 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26726 : ( 1)))
26727 : return gen_split_1390 (insn, operands);
26728 : break;
26729 :
26730 : case 8:
26731 : if (nonimmediate_operand (operands[1], E_V2DFmode)
26732 : && pattern1691 (
26733 : E_V2DFmode) == 0
26734 : && ((
26735 : #line 3382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26736 : (TARGET_SSE && ix86_pre_reload_split ()
26737 : && ((rtx_equal_p (operands[1], operands[3])
26738 : && rtx_equal_p (operands[2], operands[4]))
26739 : || (rtx_equal_p (operands[1], operands[4])
26740 : && rtx_equal_p (operands[2], operands[3])))
26741 : && (INTVAL (operands[5]) == 1 || INTVAL (operands[5]) == 14)) &&
26742 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26743 : (TARGET_SSE2)) &&
26744 : #line 3389 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26745 : ( 1)))
26746 : return gen_split_1343 (insn, operands);
26747 : if (vector_operand (operands[1], E_V2DFmode)
26748 : && pattern1692 (
26749 : E_V2DImode,
26750 : E_V2DFmode) == 0
26751 : && ((
26752 : #line 4482 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26753 : (TARGET_AVX512VL && ix86_pre_reload_split ()
26754 : /* LT or GE 0 */
26755 : && ((INTVAL (operands[5]) == 1) || (INTVAL (operands[5]) == 5))) &&
26756 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26757 : (TARGET_SSE2)) &&
26758 : #line 4486 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26759 : ( 1)))
26760 : return gen_split_1391 (insn, operands);
26761 : break;
26762 :
26763 : case 9:
26764 : if ((
26765 : #line 4511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26766 : (TARGET_AVX512VL && ix86_pre_reload_split ()
26767 : /* LT or GE 0 */
26768 : && ((INTVAL (operands[5]) == 1) || (INTVAL (operands[5]) == 5))) &&
26769 : #line 4515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26770 : ( 1)))
26771 : return gen_split_1392 (insn, operands);
26772 : break;
26773 :
26774 : case 10:
26775 : if ((
26776 : #line 4511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26777 : (TARGET_AVX512VL && ix86_pre_reload_split ()
26778 : /* LT or GE 0 */
26779 : && ((INTVAL (operands[5]) == 1) || (INTVAL (operands[5]) == 5))) &&
26780 : #line 4515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26781 : ( 1)))
26782 : return gen_split_1393 (insn, operands);
26783 : break;
26784 :
26785 : case 11:
26786 : if (((
26787 : #line 4511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26788 : (TARGET_AVX512VL && ix86_pre_reload_split ()
26789 : /* LT or GE 0 */
26790 : && ((INTVAL (operands[5]) == 1) || (INTVAL (operands[5]) == 5))) &&
26791 : #line 608 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26792 : (TARGET_AVX)) &&
26793 : #line 4515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26794 : ( 1)))
26795 : return gen_split_1394 (insn, operands);
26796 : break;
26797 :
26798 : case 12:
26799 : if (((
26800 : #line 4511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26801 : (TARGET_AVX512VL && ix86_pre_reload_split ()
26802 : /* LT or GE 0 */
26803 : && ((INTVAL (operands[5]) == 1) || (INTVAL (operands[5]) == 5))) &&
26804 : #line 608 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26805 : (TARGET_AVX)) &&
26806 : #line 4515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26807 : ( 1)))
26808 : return gen_split_1395 (insn, operands);
26809 : break;
26810 :
26811 : case 13:
26812 : if (((
26813 : #line 18494 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26814 : (TARGET_AVX512VL && ix86_pre_reload_split ()
26815 : /* LT or GE 0 */
26816 : && ((INTVAL (operands[5]) == 1 && !MEM_P (operands[2]))
26817 : || (INTVAL (operands[5]) == 5 && !MEM_P (operands[1])))) &&
26818 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26819 : (TARGET_AVX2)) &&
26820 : #line 18499 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26821 : ( 1)))
26822 : return gen_split_3402 (insn, operands);
26823 : break;
26824 :
26825 : case 14:
26826 : if ((
26827 : #line 18494 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26828 : (TARGET_AVX512VL && ix86_pre_reload_split ()
26829 : /* LT or GE 0 */
26830 : && ((INTVAL (operands[5]) == 1 && !MEM_P (operands[2]))
26831 : || (INTVAL (operands[5]) == 5 && !MEM_P (operands[1])))) &&
26832 : #line 18499 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26833 : ( 1)))
26834 : return gen_split_3403 (insn, operands);
26835 : break;
26836 :
26837 : default:
26838 : break;
26839 : }
26840 : if (GET_CODE (x5) != SUBREG)
26841 : return NULL;
26842 : switch (pattern1478 (x2))
26843 : {
26844 : case 0:
26845 : if (!(
26846 : #line 4546 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26847 : (TARGET_AVX512VL && ix86_pre_reload_split ()
26848 : /* not LT or GE 0 */
26849 : && ((INTVAL (operands[5]) == 1) || (INTVAL (operands[5]) == 5))) &&
26850 : #line 4550 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26851 : ( 1)))
26852 : return NULL;
26853 : return gen_split_1396 (insn, operands);
26854 :
26855 : case 1:
26856 : if (!(
26857 : #line 4546 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26858 : (TARGET_AVX512VL && ix86_pre_reload_split ()
26859 : /* not LT or GE 0 */
26860 : && ((INTVAL (operands[5]) == 1) || (INTVAL (operands[5]) == 5))) &&
26861 : #line 4550 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26862 : ( 1)))
26863 : return NULL;
26864 : return gen_split_1397 (insn, operands);
26865 :
26866 : case 2:
26867 : if (!((
26868 : #line 4546 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26869 : (TARGET_AVX512VL && ix86_pre_reload_split ()
26870 : /* not LT or GE 0 */
26871 : && ((INTVAL (operands[5]) == 1) || (INTVAL (operands[5]) == 5))) &&
26872 : #line 608 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26873 : (TARGET_AVX)) &&
26874 : #line 4550 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26875 : ( 1)))
26876 : return NULL;
26877 : return gen_split_1398 (insn, operands);
26878 :
26879 : case 3:
26880 : if (!((
26881 : #line 4546 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26882 : (TARGET_AVX512VL && ix86_pre_reload_split ()
26883 : /* not LT or GE 0 */
26884 : && ((INTVAL (operands[5]) == 1) || (INTVAL (operands[5]) == 5))) &&
26885 : #line 608 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26886 : (TARGET_AVX)) &&
26887 : #line 4550 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26888 : ( 1)))
26889 : return NULL;
26890 : return gen_split_1399 (insn, operands);
26891 :
26892 : case 4:
26893 : if (!((
26894 : #line 18523 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26895 : (TARGET_AVX512VL && ix86_pre_reload_split ()
26896 : && GET_MODE_CLASS (GET_MODE (operands[3])) == MODE_VECTOR_INT
26897 : && GET_MODE_SIZE (GET_MODE (operands[3])) == 32
26898 : /* LT or GE 0 */
26899 : && ((INTVAL (operands[5]) == 1 && !MEM_P (operands[1]))
26900 : || (INTVAL (operands[5]) == 5 && !MEM_P (operands[2])))) &&
26901 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26902 : (TARGET_AVX2)) &&
26903 : #line 18530 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26904 : ( 1)))
26905 : return NULL;
26906 : return gen_split_3404 (insn, operands);
26907 :
26908 : case 5:
26909 : if (!(
26910 : #line 18523 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26911 : (TARGET_AVX512VL && ix86_pre_reload_split ()
26912 : && GET_MODE_CLASS (GET_MODE (operands[3])) == MODE_VECTOR_INT
26913 : && GET_MODE_SIZE (GET_MODE (operands[3])) == 16
26914 : /* LT or GE 0 */
26915 : && ((INTVAL (operands[5]) == 1 && !MEM_P (operands[1]))
26916 : || (INTVAL (operands[5]) == 5 && !MEM_P (operands[2])))) &&
26917 : #line 18530 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26918 : ( 1)))
26919 : return NULL;
26920 : return gen_split_3405 (insn, operands);
26921 :
26922 : default:
26923 : return NULL;
26924 : }
26925 :
26926 : case 1:
26927 : if (!((
26928 : #line 18555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26929 : (TARGET_AVX512VL && ix86_pre_reload_split ()
26930 : /* LT or GE 0 */
26931 : && ((INTVAL (operands[5]) == 1 && !MEM_P (operands[1]))
26932 : || (INTVAL (operands[5]) == 5 && !MEM_P (operands[2])))) &&
26933 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26934 : (TARGET_AVX2)) &&
26935 : #line 18560 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26936 : ( 1)))
26937 : return NULL;
26938 : return gen_split_3406 (insn, operands);
26939 :
26940 : case 2:
26941 : if (!(
26942 : #line 18555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26943 : (TARGET_AVX512VL && ix86_pre_reload_split ()
26944 : /* LT or GE 0 */
26945 : && ((INTVAL (operands[5]) == 1 && !MEM_P (operands[1]))
26946 : || (INTVAL (operands[5]) == 5 && !MEM_P (operands[2])))) &&
26947 : #line 18560 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26948 : ( 1)))
26949 : return NULL;
26950 : return gen_split_3407 (insn, operands);
26951 :
26952 : default:
26953 : return NULL;
26954 : }
26955 : }
26956 :
26957 : rtx_insn *
26958 : split_64 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
26959 : {
26960 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
26961 : rtx x2, x3, x4, x5, x6;
26962 : rtx_insn *res ATTRIBUTE_UNUSED;
26963 : x2 = XEXP (x1, 1);
26964 : x3 = XEXP (x2, 0);
26965 : switch (GET_CODE (x3))
26966 : {
26967 : case NOT:
26968 : x4 = XEXP (x3, 0);
26969 : switch (GET_CODE (x4))
26970 : {
26971 : case GT:
26972 : case LT:
26973 : operands[1] = x4;
26974 : switch (pattern688 (x2))
26975 : {
26976 : case 0:
26977 : if (!((
26978 : #line 3444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26979 : (TARGET_SSE && ix86_pre_reload_split ()
26980 : && rtx_equal_p (operands[2], operands[4])) &&
26981 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26982 : (TARGET_AVX)) &&
26983 : #line 3447 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26984 : ( 1)))
26985 : return NULL;
26986 : return gen_split_1348 (insn, operands);
26987 :
26988 : case 1:
26989 : if (!(
26990 : #line 3444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26991 : (TARGET_SSE && ix86_pre_reload_split ()
26992 : && rtx_equal_p (operands[2], operands[4])) &&
26993 : #line 3447 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26994 : ( 1)))
26995 : return NULL;
26996 : return gen_split_1349 (insn, operands);
26997 :
26998 : case 2:
26999 : if (!((
27000 : #line 3444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27001 : (TARGET_SSE && ix86_pre_reload_split ()
27002 : && rtx_equal_p (operands[2], operands[4])) &&
27003 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27004 : (TARGET_AVX)) &&
27005 : #line 3447 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27006 : ( 1)))
27007 : return NULL;
27008 : return gen_split_1350 (insn, operands);
27009 :
27010 : case 3:
27011 : if (!((
27012 : #line 3444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27013 : (TARGET_SSE && ix86_pre_reload_split ()
27014 : && rtx_equal_p (operands[2], operands[4])) &&
27015 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27016 : (TARGET_SSE2)) &&
27017 : #line 3447 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27018 : ( 1)))
27019 : return NULL;
27020 : return gen_split_1351 (insn, operands);
27021 :
27022 : default:
27023 : return NULL;
27024 : }
27025 :
27026 : default:
27027 : return NULL;
27028 : }
27029 :
27030 : case GT:
27031 : case LT:
27032 : operands[1] = x3;
27033 : switch (pattern531 (x2))
27034 : {
27035 : case 0:
27036 : if (((
27037 : #line 3466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27038 : (TARGET_SSE && ix86_pre_reload_split ()
27039 : && rtx_equal_p (operands[2], operands[4])) &&
27040 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27041 : (TARGET_AVX)) &&
27042 : #line 3469 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27043 : ( 1)))
27044 : return gen_split_1352 (insn, operands);
27045 : break;
27046 :
27047 : case 1:
27048 : if ((
27049 : #line 3466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27050 : (TARGET_SSE && ix86_pre_reload_split ()
27051 : && rtx_equal_p (operands[2], operands[4])) &&
27052 : #line 3469 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27053 : ( 1)))
27054 : return gen_split_1353 (insn, operands);
27055 : break;
27056 :
27057 : case 2:
27058 : if (((
27059 : #line 3466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27060 : (TARGET_SSE && ix86_pre_reload_split ()
27061 : && rtx_equal_p (operands[2], operands[4])) &&
27062 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27063 : (TARGET_AVX)) &&
27064 : #line 3469 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27065 : ( 1)))
27066 : return gen_split_1354 (insn, operands);
27067 : break;
27068 :
27069 : case 3:
27070 : if (((
27071 : #line 3466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27072 : (TARGET_SSE && ix86_pre_reload_split ()
27073 : && rtx_equal_p (operands[2], operands[4])) &&
27074 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27075 : (TARGET_SSE2)) &&
27076 : #line 3469 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27077 : ( 1)))
27078 : return gen_split_1355 (insn, operands);
27079 : break;
27080 :
27081 : default:
27082 : break;
27083 : }
27084 : x4 = XEXP (x3, 0);
27085 : operands[1] = x4;
27086 : switch (pattern533 (x2))
27087 : {
27088 : case 0:
27089 : if (!((
27090 : #line 17767 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27091 : (TARGET_SSE4_2 && ix86_pre_reload_split ()) &&
27092 : #line 693 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27093 : (TARGET_AVX2)) &&
27094 : #line 17769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27095 : ( 1)))
27096 : return NULL;
27097 : return gen_split_3339 (insn, operands);
27098 :
27099 : case 1:
27100 : if (!(
27101 : #line 17767 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27102 : (TARGET_SSE4_2 && ix86_pre_reload_split ()) &&
27103 : #line 17769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27104 : ( 1)))
27105 : return NULL;
27106 : return gen_split_3340 (insn, operands);
27107 :
27108 : case 2:
27109 : switch (GET_MODE (operands[0]))
27110 : {
27111 : case E_V4DImode:
27112 : if (pattern959 (x2,
27113 : E_V4DImode) != 0)
27114 : return NULL;
27115 : if (((
27116 : #line 17784 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27117 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
27118 : #line 693 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27119 : (TARGET_AVX2)) &&
27120 : #line 17786 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27121 : ( 1)))
27122 : return gen_split_3341 (insn, operands);
27123 : if (!(
27124 : #line 17796 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27125 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
27126 : #line 765 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27127 : (TARGET_AVX2)))
27128 : return NULL;
27129 : return gen_split_3347 (insn, operands);
27130 :
27131 : case E_V2DImode:
27132 : if (pattern959 (x2,
27133 : E_V2DImode) != 0)
27134 : return NULL;
27135 : if ((
27136 : #line 17784 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27137 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
27138 : #line 17786 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27139 : ( 1)))
27140 : return gen_split_3342 (insn, operands);
27141 : if (!
27142 : #line 17796 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27143 : (TARGET_SSE2 && ix86_pre_reload_split ()))
27144 : return NULL;
27145 : return gen_split_3348 (insn, operands);
27146 :
27147 : case E_V16HImode:
27148 : if (pattern959 (x2,
27149 : E_V16HImode) != 0
27150 : || !(
27151 : #line 17796 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27152 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
27153 : #line 763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27154 : (TARGET_AVX2)))
27155 : return NULL;
27156 : return gen_split_3343 (insn, operands);
27157 :
27158 : case E_V8HImode:
27159 : if (pattern959 (x2,
27160 : E_V8HImode) != 0
27161 : || !
27162 : #line 17796 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27163 : (TARGET_SSE2 && ix86_pre_reload_split ()))
27164 : return NULL;
27165 : return gen_split_3344 (insn, operands);
27166 :
27167 : case E_V8SImode:
27168 : if (pattern959 (x2,
27169 : E_V8SImode) != 0
27170 : || !(
27171 : #line 17796 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27172 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
27173 : #line 764 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27174 : (TARGET_AVX2)))
27175 : return NULL;
27176 : return gen_split_3345 (insn, operands);
27177 :
27178 : case E_V4SImode:
27179 : if (pattern959 (x2,
27180 : E_V4SImode) != 0
27181 : || !
27182 : #line 17796 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27183 : (TARGET_SSE2 && ix86_pre_reload_split ()))
27184 : return NULL;
27185 : return gen_split_3346 (insn, operands);
27186 :
27187 : default:
27188 : return NULL;
27189 : }
27190 :
27191 : default:
27192 : return NULL;
27193 : }
27194 :
27195 : case REG:
27196 : case SUBREG:
27197 : case MEM:
27198 : operands[1] = x3;
27199 : x5 = XEXP (x2, 1);
27200 : operands[2] = x5;
27201 : switch (GET_MODE (operands[0]))
27202 : {
27203 : case E_V32BFmode:
27204 : if (pattern960 (x2,
27205 : E_V32BFmode) != 0
27206 : || !((
27207 : #line 5879 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27208 : (TARGET_SSE && ix86_pre_reload_split ()) &&
27209 : #line 415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27210 : (TARGET_AVX512F)) &&
27211 : #line 5881 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27212 : ( 1)))
27213 : return NULL;
27214 : return gen_split_1568 (insn, operands);
27215 :
27216 : case E_V16BFmode:
27217 : if (pattern960 (x2,
27218 : E_V16BFmode) != 0
27219 : || !((
27220 : #line 5879 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27221 : (TARGET_SSE && ix86_pre_reload_split ()) &&
27222 : #line 416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27223 : (TARGET_AVX)) &&
27224 : #line 5881 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27225 : ( 1)))
27226 : return NULL;
27227 : return gen_split_1569 (insn, operands);
27228 :
27229 : case E_V8BFmode:
27230 : if (pattern960 (x2,
27231 : E_V8BFmode) != 0
27232 : || !((
27233 : #line 5879 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27234 : (TARGET_SSE && ix86_pre_reload_split ()) &&
27235 : #line 416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27236 : (TARGET_SSE2)) &&
27237 : #line 5881 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27238 : ( 1)))
27239 : return NULL;
27240 : return gen_split_1570 (insn, operands);
27241 :
27242 : case E_V32HFmode:
27243 : if (pattern960 (x2,
27244 : E_V32HFmode) != 0
27245 : || !((
27246 : #line 5879 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27247 : (TARGET_SSE && ix86_pre_reload_split ()) &&
27248 : #line 417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27249 : (TARGET_AVX512F)) &&
27250 : #line 5881 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27251 : ( 1)))
27252 : return NULL;
27253 : return gen_split_1571 (insn, operands);
27254 :
27255 : case E_V16HFmode:
27256 : if (pattern960 (x2,
27257 : E_V16HFmode) != 0
27258 : || !((
27259 : #line 5879 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27260 : (TARGET_SSE && ix86_pre_reload_split ()) &&
27261 : #line 418 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27262 : (TARGET_AVX)) &&
27263 : #line 5881 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27264 : ( 1)))
27265 : return NULL;
27266 : return gen_split_1572 (insn, operands);
27267 :
27268 : case E_V8HFmode:
27269 : if (pattern960 (x2,
27270 : E_V8HFmode) != 0
27271 : || !((
27272 : #line 5879 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27273 : (TARGET_SSE && ix86_pre_reload_split ()) &&
27274 : #line 418 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27275 : (TARGET_SSE2)) &&
27276 : #line 5881 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27277 : ( 1)))
27278 : return NULL;
27279 : return gen_split_1573 (insn, operands);
27280 :
27281 : case E_V16SFmode:
27282 : if (pattern960 (x2,
27283 : E_V16SFmode) != 0
27284 : || !((
27285 : #line 5879 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27286 : (TARGET_SSE && ix86_pre_reload_split ()) &&
27287 : #line 419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27288 : (TARGET_AVX512F)) &&
27289 : #line 5881 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27290 : ( 1)))
27291 : return NULL;
27292 : return gen_split_1574 (insn, operands);
27293 :
27294 : case E_V8SFmode:
27295 : if (pattern960 (x2,
27296 : E_V8SFmode) != 0
27297 : || !((
27298 : #line 5879 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27299 : (TARGET_SSE && ix86_pre_reload_split ()) &&
27300 : #line 419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27301 : (TARGET_AVX)) &&
27302 : #line 5881 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27303 : ( 1)))
27304 : return NULL;
27305 : return gen_split_1575 (insn, operands);
27306 :
27307 : case E_V4SFmode:
27308 : if (pattern960 (x2,
27309 : E_V4SFmode) != 0
27310 : || !(
27311 : #line 5879 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27312 : (TARGET_SSE && ix86_pre_reload_split ()) &&
27313 : #line 5881 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27314 : ( 1)))
27315 : return NULL;
27316 : return gen_split_1576 (insn, operands);
27317 :
27318 : case E_V8DFmode:
27319 : if (pattern960 (x2,
27320 : E_V8DFmode) != 0
27321 : || !((
27322 : #line 5879 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27323 : (TARGET_SSE && ix86_pre_reload_split ()) &&
27324 : #line 420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27325 : (TARGET_AVX512F)) &&
27326 : #line 5881 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27327 : ( 1)))
27328 : return NULL;
27329 : return gen_split_1577 (insn, operands);
27330 :
27331 : case E_V4DFmode:
27332 : if (pattern960 (x2,
27333 : E_V4DFmode) != 0
27334 : || !((
27335 : #line 5879 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27336 : (TARGET_SSE && ix86_pre_reload_split ()) &&
27337 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27338 : (TARGET_AVX)) &&
27339 : #line 5881 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27340 : ( 1)))
27341 : return NULL;
27342 : return gen_split_1578 (insn, operands);
27343 :
27344 : case E_V2DFmode:
27345 : if (pattern960 (x2,
27346 : E_V2DFmode) != 0
27347 : || !((
27348 : #line 5879 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27349 : (TARGET_SSE && ix86_pre_reload_split ()) &&
27350 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27351 : (TARGET_SSE2)) &&
27352 : #line 5881 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27353 : ( 1)))
27354 : return NULL;
27355 : return gen_split_1579 (insn, operands);
27356 :
27357 : default:
27358 : return NULL;
27359 : }
27360 :
27361 : case AND:
27362 : return split_63 (x1, insn);
27363 :
27364 : case IOR:
27365 : x4 = XEXP (x3, 0);
27366 : switch (GET_CODE (x4))
27367 : {
27368 : case REG:
27369 : case SUBREG:
27370 : case MEM:
27371 : case NOT:
27372 : switch (pattern537 (x2))
27373 : {
27374 : case 0:
27375 : if (!((
27376 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27377 : ((64 == 64 || TARGET_AVX512VL
27378 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27379 : && ix86_pre_reload_split ()
27380 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27381 : STRIP_UNARY (operands[4]))
27382 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27383 : STRIP_UNARY (operands[4]))
27384 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27385 : STRIP_UNARY (operands[3]))
27386 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27387 : STRIP_UNARY (operands[3])))) &&
27388 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27389 : (TARGET_AVX512F)) &&
27390 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27391 : ( 1)))
27392 : return NULL;
27393 : return gen_split_1748 (insn, operands);
27394 :
27395 : case 1:
27396 : if (!((
27397 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27398 : ((32 == 64 || TARGET_AVX512VL
27399 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27400 : && ix86_pre_reload_split ()
27401 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27402 : STRIP_UNARY (operands[4]))
27403 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27404 : STRIP_UNARY (operands[4]))
27405 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27406 : STRIP_UNARY (operands[3]))
27407 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27408 : STRIP_UNARY (operands[3])))) &&
27409 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27410 : (TARGET_AVX)) &&
27411 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27412 : ( 1)))
27413 : return NULL;
27414 : return gen_split_1775 (insn, operands);
27415 :
27416 : case 2:
27417 : if (!(
27418 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27419 : ((16 == 64 || TARGET_AVX512VL
27420 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27421 : && ix86_pre_reload_split ()
27422 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27423 : STRIP_UNARY (operands[4]))
27424 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27425 : STRIP_UNARY (operands[4]))
27426 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27427 : STRIP_UNARY (operands[3]))
27428 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27429 : STRIP_UNARY (operands[3])))) &&
27430 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27431 : ( 1)))
27432 : return NULL;
27433 : return gen_split_1802 (insn, operands);
27434 :
27435 : case 3:
27436 : if (!((
27437 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27438 : ((64 == 64 || TARGET_AVX512VL
27439 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27440 : && ix86_pre_reload_split ()
27441 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27442 : STRIP_UNARY (operands[4]))
27443 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27444 : STRIP_UNARY (operands[4]))
27445 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27446 : STRIP_UNARY (operands[3]))
27447 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27448 : STRIP_UNARY (operands[3])))) &&
27449 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27450 : (TARGET_AVX512F)) &&
27451 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27452 : ( 1)))
27453 : return NULL;
27454 : return gen_split_1829 (insn, operands);
27455 :
27456 : case 4:
27457 : if (!((
27458 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27459 : ((32 == 64 || TARGET_AVX512VL
27460 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27461 : && ix86_pre_reload_split ()
27462 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27463 : STRIP_UNARY (operands[4]))
27464 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27465 : STRIP_UNARY (operands[4]))
27466 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27467 : STRIP_UNARY (operands[3]))
27468 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27469 : STRIP_UNARY (operands[3])))) &&
27470 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27471 : (TARGET_AVX)) &&
27472 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27473 : ( 1)))
27474 : return NULL;
27475 : return gen_split_1856 (insn, operands);
27476 :
27477 : case 5:
27478 : if (!(
27479 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27480 : ((16 == 64 || TARGET_AVX512VL
27481 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27482 : && ix86_pre_reload_split ()
27483 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27484 : STRIP_UNARY (operands[4]))
27485 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27486 : STRIP_UNARY (operands[4]))
27487 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27488 : STRIP_UNARY (operands[3]))
27489 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27490 : STRIP_UNARY (operands[3])))) &&
27491 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27492 : ( 1)))
27493 : return NULL;
27494 : return gen_split_1883 (insn, operands);
27495 :
27496 : case 6:
27497 : if (!((
27498 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27499 : ((64 == 64 || TARGET_AVX512VL
27500 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27501 : && ix86_pre_reload_split ()
27502 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27503 : STRIP_UNARY (operands[4]))
27504 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27505 : STRIP_UNARY (operands[4]))
27506 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27507 : STRIP_UNARY (operands[3]))
27508 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27509 : STRIP_UNARY (operands[3])))) &&
27510 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27511 : (TARGET_AVX512F)) &&
27512 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27513 : ( 1)))
27514 : return NULL;
27515 : return gen_split_1910 (insn, operands);
27516 :
27517 : case 7:
27518 : if (!((
27519 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27520 : ((32 == 64 || TARGET_AVX512VL
27521 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27522 : && ix86_pre_reload_split ()
27523 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27524 : STRIP_UNARY (operands[4]))
27525 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27526 : STRIP_UNARY (operands[4]))
27527 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27528 : STRIP_UNARY (operands[3]))
27529 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27530 : STRIP_UNARY (operands[3])))) &&
27531 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27532 : (TARGET_AVX)) &&
27533 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27534 : ( 1)))
27535 : return NULL;
27536 : return gen_split_1937 (insn, operands);
27537 :
27538 : case 8:
27539 : if (!(
27540 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27541 : ((16 == 64 || TARGET_AVX512VL
27542 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27543 : && ix86_pre_reload_split ()
27544 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27545 : STRIP_UNARY (operands[4]))
27546 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27547 : STRIP_UNARY (operands[4]))
27548 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27549 : STRIP_UNARY (operands[3]))
27550 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27551 : STRIP_UNARY (operands[3])))) &&
27552 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27553 : ( 1)))
27554 : return NULL;
27555 : return gen_split_1964 (insn, operands);
27556 :
27557 : case 9:
27558 : if (!((
27559 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27560 : ((64 == 64 || TARGET_AVX512VL
27561 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27562 : && ix86_pre_reload_split ()
27563 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27564 : STRIP_UNARY (operands[4]))
27565 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27566 : STRIP_UNARY (operands[4]))
27567 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27568 : STRIP_UNARY (operands[3]))
27569 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27570 : STRIP_UNARY (operands[3])))) &&
27571 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27572 : (TARGET_AVX512F)) &&
27573 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27574 : ( 1)))
27575 : return NULL;
27576 : return gen_split_1991 (insn, operands);
27577 :
27578 : case 10:
27579 : if (!((
27580 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27581 : ((32 == 64 || TARGET_AVX512VL
27582 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27583 : && ix86_pre_reload_split ()
27584 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27585 : STRIP_UNARY (operands[4]))
27586 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27587 : STRIP_UNARY (operands[4]))
27588 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27589 : STRIP_UNARY (operands[3]))
27590 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27591 : STRIP_UNARY (operands[3])))) &&
27592 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27593 : (TARGET_AVX)) &&
27594 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27595 : ( 1)))
27596 : return NULL;
27597 : return gen_split_2018 (insn, operands);
27598 :
27599 : case 11:
27600 : if (!(
27601 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27602 : ((16 == 64 || TARGET_AVX512VL
27603 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27604 : && ix86_pre_reload_split ()
27605 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27606 : STRIP_UNARY (operands[4]))
27607 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27608 : STRIP_UNARY (operands[4]))
27609 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27610 : STRIP_UNARY (operands[3]))
27611 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27612 : STRIP_UNARY (operands[3])))) &&
27613 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27614 : ( 1)))
27615 : return NULL;
27616 : return gen_split_2045 (insn, operands);
27617 :
27618 : case 12:
27619 : if (!((
27620 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27621 : ((64 == 64 || TARGET_AVX512VL
27622 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27623 : && ix86_pre_reload_split ()
27624 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27625 : STRIP_UNARY (operands[4]))
27626 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27627 : STRIP_UNARY (operands[4]))
27628 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27629 : STRIP_UNARY (operands[3]))
27630 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27631 : STRIP_UNARY (operands[3])))) &&
27632 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27633 : (TARGET_AVX512F)) &&
27634 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27635 : ( 1)))
27636 : return NULL;
27637 : return gen_split_1751 (insn, operands);
27638 :
27639 : case 13:
27640 : if (!((
27641 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27642 : ((32 == 64 || TARGET_AVX512VL
27643 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27644 : && ix86_pre_reload_split ()
27645 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27646 : STRIP_UNARY (operands[4]))
27647 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27648 : STRIP_UNARY (operands[4]))
27649 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27650 : STRIP_UNARY (operands[3]))
27651 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27652 : STRIP_UNARY (operands[3])))) &&
27653 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27654 : (TARGET_AVX)) &&
27655 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27656 : ( 1)))
27657 : return NULL;
27658 : return gen_split_1778 (insn, operands);
27659 :
27660 : case 14:
27661 : if (!(
27662 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27663 : ((16 == 64 || TARGET_AVX512VL
27664 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27665 : && ix86_pre_reload_split ()
27666 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27667 : STRIP_UNARY (operands[4]))
27668 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27669 : STRIP_UNARY (operands[4]))
27670 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27671 : STRIP_UNARY (operands[3]))
27672 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27673 : STRIP_UNARY (operands[3])))) &&
27674 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27675 : ( 1)))
27676 : return NULL;
27677 : return gen_split_1805 (insn, operands);
27678 :
27679 : case 15:
27680 : if (!((
27681 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27682 : ((64 == 64 || TARGET_AVX512VL
27683 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27684 : && ix86_pre_reload_split ()
27685 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27686 : STRIP_UNARY (operands[4]))
27687 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27688 : STRIP_UNARY (operands[4]))
27689 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27690 : STRIP_UNARY (operands[3]))
27691 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27692 : STRIP_UNARY (operands[3])))) &&
27693 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27694 : (TARGET_AVX512F)) &&
27695 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27696 : ( 1)))
27697 : return NULL;
27698 : return gen_split_1832 (insn, operands);
27699 :
27700 : case 16:
27701 : if (!((
27702 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27703 : ((32 == 64 || TARGET_AVX512VL
27704 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27705 : && ix86_pre_reload_split ()
27706 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27707 : STRIP_UNARY (operands[4]))
27708 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27709 : STRIP_UNARY (operands[4]))
27710 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27711 : STRIP_UNARY (operands[3]))
27712 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27713 : STRIP_UNARY (operands[3])))) &&
27714 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27715 : (TARGET_AVX)) &&
27716 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27717 : ( 1)))
27718 : return NULL;
27719 : return gen_split_1859 (insn, operands);
27720 :
27721 : case 17:
27722 : if (!(
27723 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27724 : ((16 == 64 || TARGET_AVX512VL
27725 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27726 : && ix86_pre_reload_split ()
27727 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27728 : STRIP_UNARY (operands[4]))
27729 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27730 : STRIP_UNARY (operands[4]))
27731 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27732 : STRIP_UNARY (operands[3]))
27733 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27734 : STRIP_UNARY (operands[3])))) &&
27735 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27736 : ( 1)))
27737 : return NULL;
27738 : return gen_split_1886 (insn, operands);
27739 :
27740 : case 18:
27741 : if (!((
27742 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27743 : ((64 == 64 || TARGET_AVX512VL
27744 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27745 : && ix86_pre_reload_split ()
27746 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27747 : STRIP_UNARY (operands[4]))
27748 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27749 : STRIP_UNARY (operands[4]))
27750 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27751 : STRIP_UNARY (operands[3]))
27752 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27753 : STRIP_UNARY (operands[3])))) &&
27754 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27755 : (TARGET_AVX512F)) &&
27756 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27757 : ( 1)))
27758 : return NULL;
27759 : return gen_split_1913 (insn, operands);
27760 :
27761 : case 19:
27762 : if (!((
27763 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27764 : ((32 == 64 || TARGET_AVX512VL
27765 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27766 : && ix86_pre_reload_split ()
27767 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27768 : STRIP_UNARY (operands[4]))
27769 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27770 : STRIP_UNARY (operands[4]))
27771 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27772 : STRIP_UNARY (operands[3]))
27773 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27774 : STRIP_UNARY (operands[3])))) &&
27775 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27776 : (TARGET_AVX)) &&
27777 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27778 : ( 1)))
27779 : return NULL;
27780 : return gen_split_1940 (insn, operands);
27781 :
27782 : case 20:
27783 : if (!(
27784 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27785 : ((16 == 64 || TARGET_AVX512VL
27786 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27787 : && ix86_pre_reload_split ()
27788 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27789 : STRIP_UNARY (operands[4]))
27790 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27791 : STRIP_UNARY (operands[4]))
27792 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27793 : STRIP_UNARY (operands[3]))
27794 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27795 : STRIP_UNARY (operands[3])))) &&
27796 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27797 : ( 1)))
27798 : return NULL;
27799 : return gen_split_1967 (insn, operands);
27800 :
27801 : case 21:
27802 : if (!((
27803 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27804 : ((64 == 64 || TARGET_AVX512VL
27805 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27806 : && ix86_pre_reload_split ()
27807 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27808 : STRIP_UNARY (operands[4]))
27809 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27810 : STRIP_UNARY (operands[4]))
27811 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27812 : STRIP_UNARY (operands[3]))
27813 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27814 : STRIP_UNARY (operands[3])))) &&
27815 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27816 : (TARGET_AVX512F)) &&
27817 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27818 : ( 1)))
27819 : return NULL;
27820 : return gen_split_1994 (insn, operands);
27821 :
27822 : case 22:
27823 : if (!((
27824 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27825 : ((32 == 64 || TARGET_AVX512VL
27826 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27827 : && ix86_pre_reload_split ()
27828 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27829 : STRIP_UNARY (operands[4]))
27830 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27831 : STRIP_UNARY (operands[4]))
27832 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27833 : STRIP_UNARY (operands[3]))
27834 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27835 : STRIP_UNARY (operands[3])))) &&
27836 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27837 : (TARGET_AVX)) &&
27838 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27839 : ( 1)))
27840 : return NULL;
27841 : return gen_split_2021 (insn, operands);
27842 :
27843 : case 23:
27844 : if (!(
27845 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27846 : ((16 == 64 || TARGET_AVX512VL
27847 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27848 : && ix86_pre_reload_split ()
27849 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27850 : STRIP_UNARY (operands[4]))
27851 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27852 : STRIP_UNARY (operands[4]))
27853 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27854 : STRIP_UNARY (operands[3]))
27855 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27856 : STRIP_UNARY (operands[3])))) &&
27857 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27858 : ( 1)))
27859 : return NULL;
27860 : return gen_split_2048 (insn, operands);
27861 :
27862 : case 24:
27863 : if (!((
27864 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27865 : ((64 == 64 || TARGET_AVX512VL
27866 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27867 : && ix86_pre_reload_split ()
27868 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27869 : STRIP_UNARY (operands[4]))
27870 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27871 : STRIP_UNARY (operands[4]))
27872 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27873 : STRIP_UNARY (operands[3]))
27874 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27875 : STRIP_UNARY (operands[3])))) &&
27876 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27877 : (TARGET_AVX512F)) &&
27878 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27879 : ( 1)))
27880 : return NULL;
27881 : return gen_split_1754 (insn, operands);
27882 :
27883 : case 25:
27884 : if (!((
27885 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27886 : ((32 == 64 || TARGET_AVX512VL
27887 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27888 : && ix86_pre_reload_split ()
27889 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27890 : STRIP_UNARY (operands[4]))
27891 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27892 : STRIP_UNARY (operands[4]))
27893 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27894 : STRIP_UNARY (operands[3]))
27895 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27896 : STRIP_UNARY (operands[3])))) &&
27897 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27898 : (TARGET_AVX)) &&
27899 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27900 : ( 1)))
27901 : return NULL;
27902 : return gen_split_1781 (insn, operands);
27903 :
27904 : case 26:
27905 : if (!(
27906 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27907 : ((16 == 64 || TARGET_AVX512VL
27908 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27909 : && ix86_pre_reload_split ()
27910 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27911 : STRIP_UNARY (operands[4]))
27912 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27913 : STRIP_UNARY (operands[4]))
27914 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27915 : STRIP_UNARY (operands[3]))
27916 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27917 : STRIP_UNARY (operands[3])))) &&
27918 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27919 : ( 1)))
27920 : return NULL;
27921 : return gen_split_1808 (insn, operands);
27922 :
27923 : case 27:
27924 : if (!((
27925 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27926 : ((64 == 64 || TARGET_AVX512VL
27927 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27928 : && ix86_pre_reload_split ()
27929 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27930 : STRIP_UNARY (operands[4]))
27931 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27932 : STRIP_UNARY (operands[4]))
27933 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27934 : STRIP_UNARY (operands[3]))
27935 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27936 : STRIP_UNARY (operands[3])))) &&
27937 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27938 : (TARGET_AVX512F)) &&
27939 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27940 : ( 1)))
27941 : return NULL;
27942 : return gen_split_1835 (insn, operands);
27943 :
27944 : case 28:
27945 : if (!((
27946 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27947 : ((32 == 64 || TARGET_AVX512VL
27948 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27949 : && ix86_pre_reload_split ()
27950 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27951 : STRIP_UNARY (operands[4]))
27952 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27953 : STRIP_UNARY (operands[4]))
27954 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27955 : STRIP_UNARY (operands[3]))
27956 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27957 : STRIP_UNARY (operands[3])))) &&
27958 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27959 : (TARGET_AVX)) &&
27960 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27961 : ( 1)))
27962 : return NULL;
27963 : return gen_split_1862 (insn, operands);
27964 :
27965 : case 29:
27966 : if (!(
27967 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27968 : ((16 == 64 || TARGET_AVX512VL
27969 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27970 : && ix86_pre_reload_split ()
27971 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27972 : STRIP_UNARY (operands[4]))
27973 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27974 : STRIP_UNARY (operands[4]))
27975 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27976 : STRIP_UNARY (operands[3]))
27977 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27978 : STRIP_UNARY (operands[3])))) &&
27979 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27980 : ( 1)))
27981 : return NULL;
27982 : return gen_split_1889 (insn, operands);
27983 :
27984 : case 30:
27985 : if (!((
27986 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27987 : ((64 == 64 || TARGET_AVX512VL
27988 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27989 : && ix86_pre_reload_split ()
27990 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27991 : STRIP_UNARY (operands[4]))
27992 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27993 : STRIP_UNARY (operands[4]))
27994 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27995 : STRIP_UNARY (operands[3]))
27996 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27997 : STRIP_UNARY (operands[3])))) &&
27998 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27999 : (TARGET_AVX512F)) &&
28000 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28001 : ( 1)))
28002 : return NULL;
28003 : return gen_split_1916 (insn, operands);
28004 :
28005 : case 31:
28006 : if (!((
28007 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28008 : ((32 == 64 || TARGET_AVX512VL
28009 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28010 : && ix86_pre_reload_split ()
28011 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28012 : STRIP_UNARY (operands[4]))
28013 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28014 : STRIP_UNARY (operands[4]))
28015 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28016 : STRIP_UNARY (operands[3]))
28017 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28018 : STRIP_UNARY (operands[3])))) &&
28019 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28020 : (TARGET_AVX)) &&
28021 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28022 : ( 1)))
28023 : return NULL;
28024 : return gen_split_1943 (insn, operands);
28025 :
28026 : case 32:
28027 : if (!(
28028 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28029 : ((16 == 64 || TARGET_AVX512VL
28030 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28031 : && ix86_pre_reload_split ()
28032 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28033 : STRIP_UNARY (operands[4]))
28034 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28035 : STRIP_UNARY (operands[4]))
28036 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28037 : STRIP_UNARY (operands[3]))
28038 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28039 : STRIP_UNARY (operands[3])))) &&
28040 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28041 : ( 1)))
28042 : return NULL;
28043 : return gen_split_1970 (insn, operands);
28044 :
28045 : case 33:
28046 : if (!((
28047 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28048 : ((64 == 64 || TARGET_AVX512VL
28049 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28050 : && ix86_pre_reload_split ()
28051 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28052 : STRIP_UNARY (operands[4]))
28053 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28054 : STRIP_UNARY (operands[4]))
28055 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28056 : STRIP_UNARY (operands[3]))
28057 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28058 : STRIP_UNARY (operands[3])))) &&
28059 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28060 : (TARGET_AVX512F)) &&
28061 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28062 : ( 1)))
28063 : return NULL;
28064 : return gen_split_1997 (insn, operands);
28065 :
28066 : case 34:
28067 : if (!((
28068 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28069 : ((32 == 64 || TARGET_AVX512VL
28070 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28071 : && ix86_pre_reload_split ()
28072 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28073 : STRIP_UNARY (operands[4]))
28074 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28075 : STRIP_UNARY (operands[4]))
28076 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28077 : STRIP_UNARY (operands[3]))
28078 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28079 : STRIP_UNARY (operands[3])))) &&
28080 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28081 : (TARGET_AVX)) &&
28082 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28083 : ( 1)))
28084 : return NULL;
28085 : return gen_split_2024 (insn, operands);
28086 :
28087 : case 35:
28088 : if (!(
28089 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28090 : ((16 == 64 || TARGET_AVX512VL
28091 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28092 : && ix86_pre_reload_split ()
28093 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28094 : STRIP_UNARY (operands[4]))
28095 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28096 : STRIP_UNARY (operands[4]))
28097 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28098 : STRIP_UNARY (operands[3]))
28099 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28100 : STRIP_UNARY (operands[3])))) &&
28101 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28102 : ( 1)))
28103 : return NULL;
28104 : return gen_split_2051 (insn, operands);
28105 :
28106 : case 36:
28107 : if (!((
28108 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28109 : ((64 == 64 || TARGET_AVX512VL
28110 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28111 : && ix86_pre_reload_split ()) &&
28112 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28113 : (TARGET_AVX512F)) &&
28114 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28115 : ( 1)))
28116 : return NULL;
28117 : return gen_split_3038 (insn, operands);
28118 :
28119 : case 37:
28120 : if (!((
28121 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28122 : ((32 == 64 || TARGET_AVX512VL
28123 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28124 : && ix86_pre_reload_split ()) &&
28125 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28126 : (TARGET_AVX)) &&
28127 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28128 : ( 1)))
28129 : return NULL;
28130 : return gen_split_3047 (insn, operands);
28131 :
28132 : case 38:
28133 : if (!(
28134 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28135 : ((16 == 64 || TARGET_AVX512VL
28136 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28137 : && ix86_pre_reload_split ()) &&
28138 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28139 : ( 1)))
28140 : return NULL;
28141 : return gen_split_3056 (insn, operands);
28142 :
28143 : case 39:
28144 : if (!((
28145 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28146 : ((64 == 64 || TARGET_AVX512VL
28147 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28148 : && ix86_pre_reload_split ()) &&
28149 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28150 : (TARGET_AVX512F)) &&
28151 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28152 : ( 1)))
28153 : return NULL;
28154 : return gen_split_3065 (insn, operands);
28155 :
28156 : case 40:
28157 : if (!((
28158 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28159 : ((32 == 64 || TARGET_AVX512VL
28160 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28161 : && ix86_pre_reload_split ()) &&
28162 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28163 : (TARGET_AVX)) &&
28164 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28165 : ( 1)))
28166 : return NULL;
28167 : return gen_split_3074 (insn, operands);
28168 :
28169 : case 41:
28170 : if (!(
28171 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28172 : ((16 == 64 || TARGET_AVX512VL
28173 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28174 : && ix86_pre_reload_split ()) &&
28175 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28176 : ( 1)))
28177 : return NULL;
28178 : return gen_split_3083 (insn, operands);
28179 :
28180 : case 42:
28181 : if (!((
28182 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28183 : ((64 == 64 || TARGET_AVX512VL
28184 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28185 : && ix86_pre_reload_split ()) &&
28186 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28187 : (TARGET_AVX512F)) &&
28188 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28189 : ( 1)))
28190 : return NULL;
28191 : return gen_split_3092 (insn, operands);
28192 :
28193 : case 43:
28194 : if (!((
28195 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28196 : ((32 == 64 || TARGET_AVX512VL
28197 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28198 : && ix86_pre_reload_split ()) &&
28199 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28200 : (TARGET_AVX)) &&
28201 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28202 : ( 1)))
28203 : return NULL;
28204 : return gen_split_3101 (insn, operands);
28205 :
28206 : case 44:
28207 : if (!(
28208 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28209 : ((16 == 64 || TARGET_AVX512VL
28210 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28211 : && ix86_pre_reload_split ()) &&
28212 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28213 : ( 1)))
28214 : return NULL;
28215 : return gen_split_3110 (insn, operands);
28216 :
28217 : case 45:
28218 : if (!((
28219 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28220 : ((64 == 64 || TARGET_AVX512VL
28221 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28222 : && ix86_pre_reload_split ()) &&
28223 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28224 : (TARGET_AVX512F)) &&
28225 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28226 : ( 1)))
28227 : return NULL;
28228 : return gen_split_3119 (insn, operands);
28229 :
28230 : case 46:
28231 : if (!((
28232 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28233 : ((32 == 64 || TARGET_AVX512VL
28234 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28235 : && ix86_pre_reload_split ()) &&
28236 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28237 : (TARGET_AVX)) &&
28238 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28239 : ( 1)))
28240 : return NULL;
28241 : return gen_split_3128 (insn, operands);
28242 :
28243 : case 47:
28244 : if (!(
28245 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28246 : ((16 == 64 || TARGET_AVX512VL
28247 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28248 : && ix86_pre_reload_split ()) &&
28249 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28250 : ( 1)))
28251 : return NULL;
28252 : return gen_split_3137 (insn, operands);
28253 :
28254 : default:
28255 : return NULL;
28256 : }
28257 :
28258 : case AND:
28259 : switch (pattern539 (x2))
28260 : {
28261 : case 0:
28262 : if (!((
28263 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28264 : ((64 == 64 || TARGET_AVX512VL
28265 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28266 : && ix86_pre_reload_split ()
28267 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28268 : STRIP_UNARY (operands[4]))
28269 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28270 : STRIP_UNARY (operands[4]))
28271 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28272 : STRIP_UNARY (operands[3]))
28273 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28274 : STRIP_UNARY (operands[3])))) &&
28275 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28276 : (TARGET_AVX512F)) &&
28277 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28278 : ( 1)))
28279 : return NULL;
28280 : return gen_split_2396 (insn, operands);
28281 :
28282 : case 1:
28283 : if (!((
28284 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28285 : ((32 == 64 || TARGET_AVX512VL
28286 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28287 : && ix86_pre_reload_split ()
28288 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28289 : STRIP_UNARY (operands[4]))
28290 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28291 : STRIP_UNARY (operands[4]))
28292 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28293 : STRIP_UNARY (operands[3]))
28294 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28295 : STRIP_UNARY (operands[3])))) &&
28296 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28297 : (TARGET_AVX)) &&
28298 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28299 : ( 1)))
28300 : return NULL;
28301 : return gen_split_2423 (insn, operands);
28302 :
28303 : case 2:
28304 : if (!(
28305 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28306 : ((16 == 64 || TARGET_AVX512VL
28307 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28308 : && ix86_pre_reload_split ()
28309 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28310 : STRIP_UNARY (operands[4]))
28311 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28312 : STRIP_UNARY (operands[4]))
28313 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28314 : STRIP_UNARY (operands[3]))
28315 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28316 : STRIP_UNARY (operands[3])))) &&
28317 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28318 : ( 1)))
28319 : return NULL;
28320 : return gen_split_2450 (insn, operands);
28321 :
28322 : case 3:
28323 : if (!((
28324 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28325 : ((64 == 64 || TARGET_AVX512VL
28326 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28327 : && ix86_pre_reload_split ()
28328 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28329 : STRIP_UNARY (operands[4]))
28330 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28331 : STRIP_UNARY (operands[4]))
28332 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28333 : STRIP_UNARY (operands[3]))
28334 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28335 : STRIP_UNARY (operands[3])))) &&
28336 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28337 : (TARGET_AVX512F)) &&
28338 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28339 : ( 1)))
28340 : return NULL;
28341 : return gen_split_2477 (insn, operands);
28342 :
28343 : case 4:
28344 : if (!((
28345 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28346 : ((32 == 64 || TARGET_AVX512VL
28347 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28348 : && ix86_pre_reload_split ()
28349 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28350 : STRIP_UNARY (operands[4]))
28351 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28352 : STRIP_UNARY (operands[4]))
28353 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28354 : STRIP_UNARY (operands[3]))
28355 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28356 : STRIP_UNARY (operands[3])))) &&
28357 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28358 : (TARGET_AVX)) &&
28359 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28360 : ( 1)))
28361 : return NULL;
28362 : return gen_split_2504 (insn, operands);
28363 :
28364 : case 5:
28365 : if (!(
28366 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28367 : ((16 == 64 || TARGET_AVX512VL
28368 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28369 : && ix86_pre_reload_split ()
28370 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28371 : STRIP_UNARY (operands[4]))
28372 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28373 : STRIP_UNARY (operands[4]))
28374 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28375 : STRIP_UNARY (operands[3]))
28376 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28377 : STRIP_UNARY (operands[3])))) &&
28378 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28379 : ( 1)))
28380 : return NULL;
28381 : return gen_split_2531 (insn, operands);
28382 :
28383 : case 6:
28384 : if (!((
28385 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28386 : ((64 == 64 || TARGET_AVX512VL
28387 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28388 : && ix86_pre_reload_split ()
28389 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28390 : STRIP_UNARY (operands[4]))
28391 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28392 : STRIP_UNARY (operands[4]))
28393 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28394 : STRIP_UNARY (operands[3]))
28395 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28396 : STRIP_UNARY (operands[3])))) &&
28397 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28398 : (TARGET_AVX512F)) &&
28399 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28400 : ( 1)))
28401 : return NULL;
28402 : return gen_split_2558 (insn, operands);
28403 :
28404 : case 7:
28405 : if (!((
28406 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28407 : ((32 == 64 || TARGET_AVX512VL
28408 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28409 : && ix86_pre_reload_split ()
28410 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28411 : STRIP_UNARY (operands[4]))
28412 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28413 : STRIP_UNARY (operands[4]))
28414 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28415 : STRIP_UNARY (operands[3]))
28416 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28417 : STRIP_UNARY (operands[3])))) &&
28418 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28419 : (TARGET_AVX)) &&
28420 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28421 : ( 1)))
28422 : return NULL;
28423 : return gen_split_2585 (insn, operands);
28424 :
28425 : case 8:
28426 : if (!(
28427 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28428 : ((16 == 64 || TARGET_AVX512VL
28429 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28430 : && ix86_pre_reload_split ()
28431 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28432 : STRIP_UNARY (operands[4]))
28433 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28434 : STRIP_UNARY (operands[4]))
28435 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28436 : STRIP_UNARY (operands[3]))
28437 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28438 : STRIP_UNARY (operands[3])))) &&
28439 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28440 : ( 1)))
28441 : return NULL;
28442 : return gen_split_2612 (insn, operands);
28443 :
28444 : case 9:
28445 : if (!((
28446 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28447 : ((64 == 64 || TARGET_AVX512VL
28448 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28449 : && ix86_pre_reload_split ()
28450 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28451 : STRIP_UNARY (operands[4]))
28452 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28453 : STRIP_UNARY (operands[4]))
28454 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28455 : STRIP_UNARY (operands[3]))
28456 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28457 : STRIP_UNARY (operands[3])))) &&
28458 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28459 : (TARGET_AVX512F)) &&
28460 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28461 : ( 1)))
28462 : return NULL;
28463 : return gen_split_2639 (insn, operands);
28464 :
28465 : case 10:
28466 : if (!((
28467 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28468 : ((32 == 64 || TARGET_AVX512VL
28469 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28470 : && ix86_pre_reload_split ()
28471 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28472 : STRIP_UNARY (operands[4]))
28473 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28474 : STRIP_UNARY (operands[4]))
28475 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28476 : STRIP_UNARY (operands[3]))
28477 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28478 : STRIP_UNARY (operands[3])))) &&
28479 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28480 : (TARGET_AVX)) &&
28481 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28482 : ( 1)))
28483 : return NULL;
28484 : return gen_split_2666 (insn, operands);
28485 :
28486 : case 11:
28487 : if (!(
28488 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28489 : ((16 == 64 || TARGET_AVX512VL
28490 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28491 : && ix86_pre_reload_split ()
28492 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28493 : STRIP_UNARY (operands[4]))
28494 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28495 : STRIP_UNARY (operands[4]))
28496 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28497 : STRIP_UNARY (operands[3]))
28498 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28499 : STRIP_UNARY (operands[3])))) &&
28500 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28501 : ( 1)))
28502 : return NULL;
28503 : return gen_split_2693 (insn, operands);
28504 :
28505 : default:
28506 : return NULL;
28507 : }
28508 :
28509 : case IOR:
28510 : switch (pattern539 (x2))
28511 : {
28512 : case 0:
28513 : if (!((
28514 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28515 : ((64 == 64 || TARGET_AVX512VL
28516 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28517 : && ix86_pre_reload_split ()
28518 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28519 : STRIP_UNARY (operands[4]))
28520 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28521 : STRIP_UNARY (operands[4]))
28522 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28523 : STRIP_UNARY (operands[3]))
28524 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28525 : STRIP_UNARY (operands[3])))) &&
28526 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28527 : (TARGET_AVX512F)) &&
28528 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28529 : ( 1)))
28530 : return NULL;
28531 : return gen_split_2399 (insn, operands);
28532 :
28533 : case 1:
28534 : if (!((
28535 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28536 : ((32 == 64 || TARGET_AVX512VL
28537 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28538 : && ix86_pre_reload_split ()
28539 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28540 : STRIP_UNARY (operands[4]))
28541 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28542 : STRIP_UNARY (operands[4]))
28543 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28544 : STRIP_UNARY (operands[3]))
28545 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28546 : STRIP_UNARY (operands[3])))) &&
28547 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28548 : (TARGET_AVX)) &&
28549 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28550 : ( 1)))
28551 : return NULL;
28552 : return gen_split_2426 (insn, operands);
28553 :
28554 : case 2:
28555 : if (!(
28556 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28557 : ((16 == 64 || TARGET_AVX512VL
28558 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28559 : && ix86_pre_reload_split ()
28560 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28561 : STRIP_UNARY (operands[4]))
28562 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28563 : STRIP_UNARY (operands[4]))
28564 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28565 : STRIP_UNARY (operands[3]))
28566 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28567 : STRIP_UNARY (operands[3])))) &&
28568 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28569 : ( 1)))
28570 : return NULL;
28571 : return gen_split_2453 (insn, operands);
28572 :
28573 : case 3:
28574 : if (!((
28575 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28576 : ((64 == 64 || TARGET_AVX512VL
28577 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28578 : && ix86_pre_reload_split ()
28579 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28580 : STRIP_UNARY (operands[4]))
28581 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28582 : STRIP_UNARY (operands[4]))
28583 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28584 : STRIP_UNARY (operands[3]))
28585 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28586 : STRIP_UNARY (operands[3])))) &&
28587 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28588 : (TARGET_AVX512F)) &&
28589 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28590 : ( 1)))
28591 : return NULL;
28592 : return gen_split_2480 (insn, operands);
28593 :
28594 : case 4:
28595 : if (!((
28596 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28597 : ((32 == 64 || TARGET_AVX512VL
28598 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28599 : && ix86_pre_reload_split ()
28600 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28601 : STRIP_UNARY (operands[4]))
28602 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28603 : STRIP_UNARY (operands[4]))
28604 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28605 : STRIP_UNARY (operands[3]))
28606 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28607 : STRIP_UNARY (operands[3])))) &&
28608 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28609 : (TARGET_AVX)) &&
28610 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28611 : ( 1)))
28612 : return NULL;
28613 : return gen_split_2507 (insn, operands);
28614 :
28615 : case 5:
28616 : if (!(
28617 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28618 : ((16 == 64 || TARGET_AVX512VL
28619 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28620 : && ix86_pre_reload_split ()
28621 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28622 : STRIP_UNARY (operands[4]))
28623 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28624 : STRIP_UNARY (operands[4]))
28625 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28626 : STRIP_UNARY (operands[3]))
28627 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28628 : STRIP_UNARY (operands[3])))) &&
28629 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28630 : ( 1)))
28631 : return NULL;
28632 : return gen_split_2534 (insn, operands);
28633 :
28634 : case 6:
28635 : if (!((
28636 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28637 : ((64 == 64 || TARGET_AVX512VL
28638 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28639 : && ix86_pre_reload_split ()
28640 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28641 : STRIP_UNARY (operands[4]))
28642 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28643 : STRIP_UNARY (operands[4]))
28644 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28645 : STRIP_UNARY (operands[3]))
28646 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28647 : STRIP_UNARY (operands[3])))) &&
28648 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28649 : (TARGET_AVX512F)) &&
28650 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28651 : ( 1)))
28652 : return NULL;
28653 : return gen_split_2561 (insn, operands);
28654 :
28655 : case 7:
28656 : if (!((
28657 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28658 : ((32 == 64 || TARGET_AVX512VL
28659 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28660 : && ix86_pre_reload_split ()
28661 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28662 : STRIP_UNARY (operands[4]))
28663 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28664 : STRIP_UNARY (operands[4]))
28665 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28666 : STRIP_UNARY (operands[3]))
28667 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28668 : STRIP_UNARY (operands[3])))) &&
28669 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28670 : (TARGET_AVX)) &&
28671 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28672 : ( 1)))
28673 : return NULL;
28674 : return gen_split_2588 (insn, operands);
28675 :
28676 : case 8:
28677 : if (!(
28678 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28679 : ((16 == 64 || TARGET_AVX512VL
28680 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28681 : && ix86_pre_reload_split ()
28682 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28683 : STRIP_UNARY (operands[4]))
28684 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28685 : STRIP_UNARY (operands[4]))
28686 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28687 : STRIP_UNARY (operands[3]))
28688 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28689 : STRIP_UNARY (operands[3])))) &&
28690 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28691 : ( 1)))
28692 : return NULL;
28693 : return gen_split_2615 (insn, operands);
28694 :
28695 : case 9:
28696 : if (!((
28697 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28698 : ((64 == 64 || TARGET_AVX512VL
28699 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28700 : && ix86_pre_reload_split ()
28701 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28702 : STRIP_UNARY (operands[4]))
28703 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28704 : STRIP_UNARY (operands[4]))
28705 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28706 : STRIP_UNARY (operands[3]))
28707 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28708 : STRIP_UNARY (operands[3])))) &&
28709 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28710 : (TARGET_AVX512F)) &&
28711 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28712 : ( 1)))
28713 : return NULL;
28714 : return gen_split_2642 (insn, operands);
28715 :
28716 : case 10:
28717 : if (!((
28718 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28719 : ((32 == 64 || TARGET_AVX512VL
28720 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28721 : && ix86_pre_reload_split ()
28722 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28723 : STRIP_UNARY (operands[4]))
28724 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28725 : STRIP_UNARY (operands[4]))
28726 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28727 : STRIP_UNARY (operands[3]))
28728 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28729 : STRIP_UNARY (operands[3])))) &&
28730 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28731 : (TARGET_AVX)) &&
28732 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28733 : ( 1)))
28734 : return NULL;
28735 : return gen_split_2669 (insn, operands);
28736 :
28737 : case 11:
28738 : if (!(
28739 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28740 : ((16 == 64 || TARGET_AVX512VL
28741 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28742 : && ix86_pre_reload_split ()
28743 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28744 : STRIP_UNARY (operands[4]))
28745 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28746 : STRIP_UNARY (operands[4]))
28747 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28748 : STRIP_UNARY (operands[3]))
28749 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28750 : STRIP_UNARY (operands[3])))) &&
28751 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28752 : ( 1)))
28753 : return NULL;
28754 : return gen_split_2696 (insn, operands);
28755 :
28756 : default:
28757 : return NULL;
28758 : }
28759 :
28760 : case XOR:
28761 : switch (pattern539 (x2))
28762 : {
28763 : case 0:
28764 : if (!((
28765 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28766 : ((64 == 64 || TARGET_AVX512VL
28767 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28768 : && ix86_pre_reload_split ()
28769 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28770 : STRIP_UNARY (operands[4]))
28771 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28772 : STRIP_UNARY (operands[4]))
28773 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28774 : STRIP_UNARY (operands[3]))
28775 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28776 : STRIP_UNARY (operands[3])))) &&
28777 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28778 : (TARGET_AVX512F)) &&
28779 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28780 : ( 1)))
28781 : return NULL;
28782 : return gen_split_2402 (insn, operands);
28783 :
28784 : case 1:
28785 : if (!((
28786 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28787 : ((32 == 64 || TARGET_AVX512VL
28788 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28789 : && ix86_pre_reload_split ()
28790 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28791 : STRIP_UNARY (operands[4]))
28792 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28793 : STRIP_UNARY (operands[4]))
28794 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28795 : STRIP_UNARY (operands[3]))
28796 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28797 : STRIP_UNARY (operands[3])))) &&
28798 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28799 : (TARGET_AVX)) &&
28800 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28801 : ( 1)))
28802 : return NULL;
28803 : return gen_split_2429 (insn, operands);
28804 :
28805 : case 2:
28806 : if (!(
28807 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28808 : ((16 == 64 || TARGET_AVX512VL
28809 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28810 : && ix86_pre_reload_split ()
28811 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28812 : STRIP_UNARY (operands[4]))
28813 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28814 : STRIP_UNARY (operands[4]))
28815 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28816 : STRIP_UNARY (operands[3]))
28817 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28818 : STRIP_UNARY (operands[3])))) &&
28819 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28820 : ( 1)))
28821 : return NULL;
28822 : return gen_split_2456 (insn, operands);
28823 :
28824 : case 3:
28825 : if (!((
28826 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28827 : ((64 == 64 || TARGET_AVX512VL
28828 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28829 : && ix86_pre_reload_split ()
28830 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28831 : STRIP_UNARY (operands[4]))
28832 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28833 : STRIP_UNARY (operands[4]))
28834 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28835 : STRIP_UNARY (operands[3]))
28836 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28837 : STRIP_UNARY (operands[3])))) &&
28838 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28839 : (TARGET_AVX512F)) &&
28840 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28841 : ( 1)))
28842 : return NULL;
28843 : return gen_split_2483 (insn, operands);
28844 :
28845 : case 4:
28846 : if (!((
28847 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28848 : ((32 == 64 || TARGET_AVX512VL
28849 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28850 : && ix86_pre_reload_split ()
28851 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28852 : STRIP_UNARY (operands[4]))
28853 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28854 : STRIP_UNARY (operands[4]))
28855 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28856 : STRIP_UNARY (operands[3]))
28857 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28858 : STRIP_UNARY (operands[3])))) &&
28859 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28860 : (TARGET_AVX)) &&
28861 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28862 : ( 1)))
28863 : return NULL;
28864 : return gen_split_2510 (insn, operands);
28865 :
28866 : case 5:
28867 : if (!(
28868 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28869 : ((16 == 64 || TARGET_AVX512VL
28870 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28871 : && ix86_pre_reload_split ()
28872 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28873 : STRIP_UNARY (operands[4]))
28874 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28875 : STRIP_UNARY (operands[4]))
28876 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28877 : STRIP_UNARY (operands[3]))
28878 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28879 : STRIP_UNARY (operands[3])))) &&
28880 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28881 : ( 1)))
28882 : return NULL;
28883 : return gen_split_2537 (insn, operands);
28884 :
28885 : case 6:
28886 : if (!((
28887 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28888 : ((64 == 64 || TARGET_AVX512VL
28889 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28890 : && ix86_pre_reload_split ()
28891 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28892 : STRIP_UNARY (operands[4]))
28893 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28894 : STRIP_UNARY (operands[4]))
28895 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28896 : STRIP_UNARY (operands[3]))
28897 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28898 : STRIP_UNARY (operands[3])))) &&
28899 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28900 : (TARGET_AVX512F)) &&
28901 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28902 : ( 1)))
28903 : return NULL;
28904 : return gen_split_2564 (insn, operands);
28905 :
28906 : case 7:
28907 : if (!((
28908 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28909 : ((32 == 64 || TARGET_AVX512VL
28910 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28911 : && ix86_pre_reload_split ()
28912 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28913 : STRIP_UNARY (operands[4]))
28914 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28915 : STRIP_UNARY (operands[4]))
28916 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28917 : STRIP_UNARY (operands[3]))
28918 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28919 : STRIP_UNARY (operands[3])))) &&
28920 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28921 : (TARGET_AVX)) &&
28922 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28923 : ( 1)))
28924 : return NULL;
28925 : return gen_split_2591 (insn, operands);
28926 :
28927 : case 8:
28928 : if (!(
28929 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28930 : ((16 == 64 || TARGET_AVX512VL
28931 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28932 : && ix86_pre_reload_split ()
28933 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28934 : STRIP_UNARY (operands[4]))
28935 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28936 : STRIP_UNARY (operands[4]))
28937 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28938 : STRIP_UNARY (operands[3]))
28939 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28940 : STRIP_UNARY (operands[3])))) &&
28941 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28942 : ( 1)))
28943 : return NULL;
28944 : return gen_split_2618 (insn, operands);
28945 :
28946 : case 9:
28947 : if (!((
28948 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28949 : ((64 == 64 || TARGET_AVX512VL
28950 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28951 : && ix86_pre_reload_split ()
28952 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28953 : STRIP_UNARY (operands[4]))
28954 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28955 : STRIP_UNARY (operands[4]))
28956 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28957 : STRIP_UNARY (operands[3]))
28958 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28959 : STRIP_UNARY (operands[3])))) &&
28960 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28961 : (TARGET_AVX512F)) &&
28962 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28963 : ( 1)))
28964 : return NULL;
28965 : return gen_split_2645 (insn, operands);
28966 :
28967 : case 10:
28968 : if (!((
28969 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28970 : ((32 == 64 || TARGET_AVX512VL
28971 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28972 : && ix86_pre_reload_split ()
28973 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28974 : STRIP_UNARY (operands[4]))
28975 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28976 : STRIP_UNARY (operands[4]))
28977 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28978 : STRIP_UNARY (operands[3]))
28979 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28980 : STRIP_UNARY (operands[3])))) &&
28981 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28982 : (TARGET_AVX)) &&
28983 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28984 : ( 1)))
28985 : return NULL;
28986 : return gen_split_2672 (insn, operands);
28987 :
28988 : case 11:
28989 : if (!(
28990 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28991 : ((16 == 64 || TARGET_AVX512VL
28992 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28993 : && ix86_pre_reload_split ()
28994 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28995 : STRIP_UNARY (operands[4]))
28996 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28997 : STRIP_UNARY (operands[4]))
28998 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28999 : STRIP_UNARY (operands[3]))
29000 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29001 : STRIP_UNARY (operands[3])))) &&
29002 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29003 : ( 1)))
29004 : return NULL;
29005 : return gen_split_2699 (insn, operands);
29006 :
29007 : default:
29008 : return NULL;
29009 : }
29010 :
29011 : default:
29012 : return NULL;
29013 : }
29014 :
29015 : case XOR:
29016 : return split_62 (x1, insn);
29017 :
29018 : case VEC_DUPLICATE:
29019 : x4 = XEXP (x3, 0);
29020 : if (GET_CODE (x4) != NOT)
29021 : return NULL;
29022 : x6 = XEXP (x4, 0);
29023 : operands[1] = x6;
29024 : x5 = XEXP (x2, 1);
29025 : operands[2] = x5;
29026 : switch (GET_MODE (operands[0]))
29027 : {
29028 : case E_V4SImode:
29029 : if (pattern1076 (x2,
29030 : E_V4SImode,
29031 : E_SImode) != 0)
29032 : return NULL;
29033 : if (register_operand (operands[1], E_SImode)
29034 : &&
29035 : #line 19080 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29036 : (TARGET_SSE))
29037 : return gen_split_3458 (insn, operands);
29038 : if (!nonimmediate_operand (operands[1], E_SImode)
29039 : || !
29040 : #line 19096 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29041 : (TARGET_AVX2))
29042 : return NULL;
29043 : return gen_split_3468 (insn, operands);
29044 :
29045 : case E_V2DImode:
29046 : if (pattern1076 (x2,
29047 : E_V2DImode,
29048 : E_DImode) != 0)
29049 : return NULL;
29050 : if (register_operand (operands[1], E_DImode)
29051 : &&
29052 : #line 19080 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29053 : (TARGET_SSE))
29054 : return gen_split_3459 (insn, operands);
29055 : if (!nonimmediate_operand (operands[1], E_DImode)
29056 : || !
29057 : #line 19096 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29058 : (TARGET_AVX2))
29059 : return NULL;
29060 : return gen_split_3471 (insn, operands);
29061 :
29062 : case E_V64QImode:
29063 : if (pattern606 (x2,
29064 : E_V64QImode,
29065 : E_QImode) != 0
29066 : || !(
29067 : #line 19096 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29068 : (TARGET_AVX2) &&
29069 : #line 572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29070 : (TARGET_AVX512BW)))
29071 : return NULL;
29072 : return gen_split_3460 (insn, operands);
29073 :
29074 : case E_V32QImode:
29075 : if (pattern606 (x2,
29076 : E_V32QImode,
29077 : E_QImode) != 0
29078 : || !
29079 : #line 19096 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29080 : (TARGET_AVX2))
29081 : return NULL;
29082 : return gen_split_3461 (insn, operands);
29083 :
29084 : case E_V16QImode:
29085 : if (pattern606 (x2,
29086 : E_V16QImode,
29087 : E_QImode) != 0
29088 : || !
29089 : #line 19096 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29090 : (TARGET_AVX2))
29091 : return NULL;
29092 : return gen_split_3462 (insn, operands);
29093 :
29094 : case E_V32HImode:
29095 : if (pattern606 (x2,
29096 : E_V32HImode,
29097 : E_HImode) != 0
29098 : || !(
29099 : #line 19096 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29100 : (TARGET_AVX2) &&
29101 : #line 573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29102 : (TARGET_AVX512BW)))
29103 : return NULL;
29104 : return gen_split_3463 (insn, operands);
29105 :
29106 : case E_V16HImode:
29107 : if (pattern606 (x2,
29108 : E_V16HImode,
29109 : E_HImode) != 0
29110 : || !
29111 : #line 19096 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29112 : (TARGET_AVX2))
29113 : return NULL;
29114 : return gen_split_3464 (insn, operands);
29115 :
29116 : case E_V8HImode:
29117 : if (pattern606 (x2,
29118 : E_V8HImode,
29119 : E_HImode) != 0
29120 : || !
29121 : #line 19096 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29122 : (TARGET_AVX2))
29123 : return NULL;
29124 : return gen_split_3465 (insn, operands);
29125 :
29126 : case E_V16SImode:
29127 : if (pattern606 (x2,
29128 : E_V16SImode,
29129 : E_SImode) != 0
29130 : || !(
29131 : #line 19096 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29132 : (TARGET_AVX2) &&
29133 : #line 574 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29134 : (TARGET_AVX512F)))
29135 : return NULL;
29136 : return gen_split_3466 (insn, operands);
29137 :
29138 : case E_V8SImode:
29139 : if (pattern606 (x2,
29140 : E_V8SImode,
29141 : E_SImode) != 0
29142 : || !
29143 : #line 19096 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29144 : (TARGET_AVX2))
29145 : return NULL;
29146 : return gen_split_3467 (insn, operands);
29147 :
29148 : case E_V8DImode:
29149 : if (pattern606 (x2,
29150 : E_V8DImode,
29151 : E_DImode) != 0
29152 : || !(
29153 : #line 19096 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29154 : (TARGET_AVX2) &&
29155 : #line 575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29156 : (TARGET_AVX512F)))
29157 : return NULL;
29158 : return gen_split_3469 (insn, operands);
29159 :
29160 : case E_V4DImode:
29161 : if (pattern606 (x2,
29162 : E_V4DImode,
29163 : E_DImode) != 0
29164 : || !
29165 : #line 19096 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29166 : (TARGET_AVX2))
29167 : return NULL;
29168 : return gen_split_3470 (insn, operands);
29169 :
29170 : default:
29171 : return NULL;
29172 : }
29173 :
29174 : default:
29175 : return NULL;
29176 : }
29177 : }
29178 :
29179 : rtx_insn *
29180 : split_85 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
29181 : {
29182 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
29183 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
29184 : rtx x10, x11, x12, x13;
29185 : rtx_insn *res ATTRIBUTE_UNUSED;
29186 : x2 = XEXP (x1, 1);
29187 : x3 = XEXP (x2, 0);
29188 : switch (GET_CODE (x3))
29189 : {
29190 : case UNSPEC:
29191 : if (XVECLEN (x3, 0) != 1
29192 : || XINT (x3, 1) != 178)
29193 : return NULL;
29194 : x4 = XEXP (x2, 2);
29195 : if (GET_CODE (x4) != AND
29196 : || GET_MODE (x4) != E_QImode)
29197 : return NULL;
29198 : x5 = XEXP (x4, 1);
29199 : if (GET_CODE (x5) != CONST_INT)
29200 : return NULL;
29201 : x6 = XVECEXP (x3, 0, 0);
29202 : operands[1] = x6;
29203 : x7 = XEXP (x2, 1);
29204 : operands[2] = x7;
29205 : switch (pattern1113 (x2))
29206 : {
29207 : case 0:
29208 : if (!((
29209 : #line 1634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29210 : (TARGET_AVX512F) &&
29211 : #line 521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29212 : (TARGET_AVX512VL)) &&
29213 : #line 1636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29214 : ( 1)))
29215 : return NULL;
29216 : return gen_split_1210 (insn, operands);
29217 :
29218 : case 1:
29219 : if (!((
29220 : #line 1634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29221 : (TARGET_AVX512F) &&
29222 : #line 521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29223 : (TARGET_AVX512VL)) &&
29224 : #line 1636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29225 : ( 1)))
29226 : return NULL;
29227 : return gen_split_1211 (insn, operands);
29228 :
29229 : case 2:
29230 : if (!((
29231 : #line 1634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29232 : (TARGET_AVX512F) &&
29233 : #line 522 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29234 : (TARGET_AVX512VL)) &&
29235 : #line 1636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29236 : ( 1)))
29237 : return NULL;
29238 : return gen_split_1212 (insn, operands);
29239 :
29240 : case 3:
29241 : if (!((
29242 : #line 1634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29243 : (TARGET_AVX512F) &&
29244 : #line 522 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29245 : (TARGET_AVX512VL)) &&
29246 : #line 1636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29247 : ( 1)))
29248 : return NULL;
29249 : return gen_split_1213 (insn, operands);
29250 :
29251 : case 4:
29252 : if (!((
29253 : #line 1653 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29254 : (TARGET_AVX512F) &&
29255 : #line 528 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29256 : (TARGET_AVX512VL)) &&
29257 : #line 1655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29258 : ( 1)))
29259 : return NULL;
29260 : return gen_split_1214 (insn, operands);
29261 :
29262 : case 5:
29263 : if (!((
29264 : #line 1653 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29265 : (TARGET_AVX512F) &&
29266 : #line 528 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29267 : (TARGET_AVX512VL)) &&
29268 : #line 1655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29269 : ( 1)))
29270 : return NULL;
29271 : return gen_split_1215 (insn, operands);
29272 :
29273 : default:
29274 : return NULL;
29275 : }
29276 :
29277 : case MINUS:
29278 : x7 = XEXP (x2, 1);
29279 : if (GET_CODE (x7) != PLUS)
29280 : return NULL;
29281 : operands[6] = x2;
29282 : x8 = XEXP (x3, 0);
29283 : operands[1] = x8;
29284 : x9 = XEXP (x3, 1);
29285 : operands[2] = x9;
29286 : x10 = XEXP (x7, 0);
29287 : operands[3] = x10;
29288 : x11 = XEXP (x7, 1);
29289 : operands[4] = x11;
29290 : x4 = XEXP (x2, 2);
29291 : operands[5] = x4;
29292 : if (!const_int_operand (operands[5], E_VOIDmode))
29293 : return NULL;
29294 : switch (GET_MODE (operands[0]))
29295 : {
29296 : case E_V8SFmode:
29297 : if (pattern1455 (x2,
29298 : E_V8SFmode) != 0
29299 : || !(
29300 : #line 3640 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29301 : (TARGET_SSE3
29302 : && can_create_pseudo_p ()
29303 : && ((rtx_equal_p (operands[1], operands[3])
29304 : && rtx_equal_p (operands[2], operands[4]))
29305 : || (rtx_equal_p (operands[1], operands[4])
29306 : && rtx_equal_p (operands[2], operands[3])))) &&
29307 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29308 : (TARGET_AVX)))
29309 : return NULL;
29310 : return gen_split_1356 (insn, operands);
29311 :
29312 : case E_V4SFmode:
29313 : if (pattern1455 (x2,
29314 : E_V4SFmode) != 0
29315 : || !
29316 : #line 3640 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29317 : (TARGET_SSE3
29318 : && can_create_pseudo_p ()
29319 : && ((rtx_equal_p (operands[1], operands[3])
29320 : && rtx_equal_p (operands[2], operands[4]))
29321 : || (rtx_equal_p (operands[1], operands[4])
29322 : && rtx_equal_p (operands[2], operands[3])))))
29323 : return NULL;
29324 : return gen_split_1357 (insn, operands);
29325 :
29326 : case E_V4DFmode:
29327 : if (pattern1455 (x2,
29328 : E_V4DFmode) != 0
29329 : || !(
29330 : #line 3640 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29331 : (TARGET_SSE3
29332 : && can_create_pseudo_p ()
29333 : && ((rtx_equal_p (operands[1], operands[3])
29334 : && rtx_equal_p (operands[2], operands[4]))
29335 : || (rtx_equal_p (operands[1], operands[4])
29336 : && rtx_equal_p (operands[2], operands[3])))) &&
29337 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29338 : (TARGET_AVX)))
29339 : return NULL;
29340 : return gen_split_1358 (insn, operands);
29341 :
29342 : case E_V2DFmode:
29343 : if (pattern1455 (x2,
29344 : E_V2DFmode) != 0
29345 : || !(
29346 : #line 3640 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29347 : (TARGET_SSE3
29348 : && can_create_pseudo_p ()
29349 : && ((rtx_equal_p (operands[1], operands[3])
29350 : && rtx_equal_p (operands[2], operands[4]))
29351 : || (rtx_equal_p (operands[1], operands[4])
29352 : && rtx_equal_p (operands[2], operands[3])))) &&
29353 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29354 : (TARGET_SSE2)))
29355 : return NULL;
29356 : return gen_split_1359 (insn, operands);
29357 :
29358 : default:
29359 : return NULL;
29360 : }
29361 :
29362 : case PLUS:
29363 : x7 = XEXP (x2, 1);
29364 : if (GET_CODE (x7) != MINUS)
29365 : return NULL;
29366 : operands[6] = x2;
29367 : x8 = XEXP (x3, 0);
29368 : operands[1] = x8;
29369 : x9 = XEXP (x3, 1);
29370 : operands[2] = x9;
29371 : x10 = XEXP (x7, 0);
29372 : operands[3] = x10;
29373 : x11 = XEXP (x7, 1);
29374 : operands[4] = x11;
29375 : x4 = XEXP (x2, 2);
29376 : operands[5] = x4;
29377 : if (!const_int_operand (operands[5], E_VOIDmode))
29378 : return NULL;
29379 : switch (GET_MODE (operands[0]))
29380 : {
29381 : case E_V8SFmode:
29382 : if (pattern1456 (x2,
29383 : E_V8SFmode) != 0
29384 : || !(
29385 : #line 3662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29386 : (TARGET_SSE3
29387 : && can_create_pseudo_p ()
29388 : && ((rtx_equal_p (operands[1], operands[3])
29389 : && rtx_equal_p (operands[2], operands[4]))
29390 : || (rtx_equal_p (operands[1], operands[4])
29391 : && rtx_equal_p (operands[2], operands[3])))) &&
29392 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29393 : (TARGET_AVX)))
29394 : return NULL;
29395 : return gen_split_1360 (insn, operands);
29396 :
29397 : case E_V4SFmode:
29398 : if (pattern1456 (x2,
29399 : E_V4SFmode) != 0
29400 : || !
29401 : #line 3662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29402 : (TARGET_SSE3
29403 : && can_create_pseudo_p ()
29404 : && ((rtx_equal_p (operands[1], operands[3])
29405 : && rtx_equal_p (operands[2], operands[4]))
29406 : || (rtx_equal_p (operands[1], operands[4])
29407 : && rtx_equal_p (operands[2], operands[3])))))
29408 : return NULL;
29409 : return gen_split_1361 (insn, operands);
29410 :
29411 : case E_V4DFmode:
29412 : if (pattern1456 (x2,
29413 : E_V4DFmode) != 0
29414 : || !(
29415 : #line 3662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29416 : (TARGET_SSE3
29417 : && can_create_pseudo_p ()
29418 : && ((rtx_equal_p (operands[1], operands[3])
29419 : && rtx_equal_p (operands[2], operands[4]))
29420 : || (rtx_equal_p (operands[1], operands[4])
29421 : && rtx_equal_p (operands[2], operands[3])))) &&
29422 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29423 : (TARGET_AVX)))
29424 : return NULL;
29425 : return gen_split_1362 (insn, operands);
29426 :
29427 : case E_V2DFmode:
29428 : if (pattern1456 (x2,
29429 : E_V2DFmode) != 0
29430 : || !(
29431 : #line 3662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29432 : (TARGET_SSE3
29433 : && can_create_pseudo_p ()
29434 : && ((rtx_equal_p (operands[1], operands[3])
29435 : && rtx_equal_p (operands[2], operands[4]))
29436 : || (rtx_equal_p (operands[1], operands[4])
29437 : && rtx_equal_p (operands[2], operands[3])))) &&
29438 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29439 : (TARGET_SSE2)))
29440 : return NULL;
29441 : return gen_split_1363 (insn, operands);
29442 :
29443 : default:
29444 : return NULL;
29445 : }
29446 :
29447 : case CONST_INT:
29448 : case CONST_DOUBLE:
29449 : case CONST_VECTOR:
29450 : case REG:
29451 : case SUBREG:
29452 : case MEM:
29453 : return split_61 (x1, insn);
29454 :
29455 : case VEC_DUPLICATE:
29456 : x8 = XEXP (x3, 0);
29457 : switch (GET_CODE (x8))
29458 : {
29459 : case VEC_SELECT:
29460 : x12 = XEXP (x8, 1);
29461 : if (GET_CODE (x12) != PARALLEL
29462 : || XVECLEN (x12, 0) != 1)
29463 : return NULL;
29464 : x13 = XVECEXP (x12, 0, 0);
29465 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
29466 : return NULL;
29467 : x4 = XEXP (x2, 2);
29468 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
29469 : return NULL;
29470 : switch (pattern1017 (x2))
29471 : {
29472 : case 0:
29473 : if (!(
29474 : #line 12436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29475 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29476 : #line 12438 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29477 : ( 1)))
29478 : return NULL;
29479 : return gen_split_1620 (insn, operands);
29480 :
29481 : case 1:
29482 : if (!(
29483 : #line 12436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29484 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29485 : #line 12438 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29486 : ( 1)))
29487 : return NULL;
29488 : return gen_split_1621 (insn, operands);
29489 :
29490 : case 2:
29491 : if (!(
29492 : #line 12436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29493 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29494 : #line 12438 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29495 : ( 1)))
29496 : return NULL;
29497 : return gen_split_1622 (insn, operands);
29498 :
29499 : default:
29500 : return NULL;
29501 : }
29502 :
29503 : case ZERO_EXTEND:
29504 : switch (pattern317 (x2))
29505 : {
29506 : case 0:
29507 : if (!((
29508 : #line 12476 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29509 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()) &&
29510 : #line 791 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29511 : (TARGET_AVX512F)) &&
29512 : #line 12478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29513 : ( 1)))
29514 : return NULL;
29515 : return gen_split_1623 (insn, operands);
29516 :
29517 : case 1:
29518 : if (!(
29519 : #line 12476 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29520 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()) &&
29521 : #line 12478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29522 : ( 1)))
29523 : return NULL;
29524 : return gen_split_1624 (insn, operands);
29525 :
29526 : case 2:
29527 : if (!(
29528 : #line 12476 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29529 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()) &&
29530 : #line 12478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29531 : ( 1)))
29532 : return NULL;
29533 : return gen_split_1625 (insn, operands);
29534 :
29535 : case 3:
29536 : if (!((
29537 : #line 12476 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29538 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()) &&
29539 : #line 792 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29540 : (TARGET_AVX512F)) &&
29541 : #line 12478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29542 : ( 1)))
29543 : return NULL;
29544 : return gen_split_1626 (insn, operands);
29545 :
29546 : case 4:
29547 : if (!((
29548 : #line 12590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29549 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29550 : #line 611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29551 : (TARGET_AVX512F)) &&
29552 : #line 12592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29553 : ( 1)))
29554 : return NULL;
29555 : return gen_split_1630 (insn, operands);
29556 :
29557 : case 5:
29558 : if (!(
29559 : #line 12476 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29560 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()) &&
29561 : #line 12478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29562 : ( 1)))
29563 : return NULL;
29564 : return gen_split_1627 (insn, operands);
29565 :
29566 : case 6:
29567 : if (!((
29568 : #line 12590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29569 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29570 : #line 611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29571 : (TARGET_AVX)) &&
29572 : #line 12592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29573 : ( 1)))
29574 : return NULL;
29575 : return gen_split_1631 (insn, operands);
29576 :
29577 : case 7:
29578 : if (!(
29579 : #line 12476 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29580 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()) &&
29581 : #line 12478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29582 : ( 1)))
29583 : return NULL;
29584 : return gen_split_1628 (insn, operands);
29585 :
29586 : case 8:
29587 : if (!(
29588 : #line 12590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29589 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29590 : #line 12592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29591 : ( 1)))
29592 : return NULL;
29593 : return gen_split_1632 (insn, operands);
29594 :
29595 : default:
29596 : return NULL;
29597 : }
29598 :
29599 : case CONST_INT:
29600 : case CONST_WIDE_INT:
29601 : case CONST_POLY_INT:
29602 : case CONST_FIXED:
29603 : case CONST_DOUBLE:
29604 : case CONST_VECTOR:
29605 : case CONST:
29606 : case REG:
29607 : case SUBREG:
29608 : case LABEL_REF:
29609 : case SYMBOL_REF:
29610 : case HIGH:
29611 : x7 = XEXP (x2, 1);
29612 : switch (GET_CODE (x7))
29613 : {
29614 : case SUBREG:
29615 : case MEM:
29616 : if (!rtx_equal_p (x7, operands[0]))
29617 : return NULL;
29618 : x4 = XEXP (x2, 2);
29619 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
29620 : return NULL;
29621 : operands[1] = x8;
29622 : switch (GET_MODE (operands[0]))
29623 : {
29624 : case E_V4SImode:
29625 : if (pattern1198 (x2,
29626 : E_SImode,
29627 : E_V4SImode) != 0
29628 : || !
29629 : #line 12666 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29630 : (TARGET_SSE && reload_completed))
29631 : return NULL;
29632 : return gen_split_1634 (insn, operands);
29633 :
29634 : case E_V4SFmode:
29635 : if (pattern1198 (x2,
29636 : E_SFmode,
29637 : E_V4SFmode) != 0
29638 : || !
29639 : #line 12666 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29640 : (TARGET_SSE && reload_completed))
29641 : return NULL;
29642 : return gen_split_1635 (insn, operands);
29643 :
29644 : default:
29645 : return NULL;
29646 : }
29647 :
29648 : case REG:
29649 : operands[1] = x7;
29650 : operands[2] = x8;
29651 : x4 = XEXP (x2, 2);
29652 : operands[3] = x4;
29653 : if (!const_int_operand (operands[3], E_SImode))
29654 : return NULL;
29655 : switch (GET_MODE (operands[0]))
29656 : {
29657 : case E_V8HImode:
29658 : if (pattern1075 (x2,
29659 : E_V8HImode,
29660 : E_HImode) != 0
29661 : || !
29662 : #line 20417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29663 : (TARGET_AVX2 && reload_completed
29664 : && INTVAL (operands[3]) > 1
29665 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
29666 : < GET_MODE_NUNITS (V8HImode))))
29667 : return NULL;
29668 : return gen_split_3496 (insn, operands);
29669 :
29670 : case E_V8HFmode:
29671 : if (pattern1075 (x2,
29672 : E_V8HFmode,
29673 : E_HFmode) != 0
29674 : || !
29675 : #line 20417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29676 : (TARGET_AVX2 && reload_completed
29677 : && INTVAL (operands[3]) > 1
29678 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
29679 : < GET_MODE_NUNITS (V8HFmode))))
29680 : return NULL;
29681 : return gen_split_3497 (insn, operands);
29682 :
29683 : case E_V8BFmode:
29684 : if (pattern1075 (x2,
29685 : E_V8BFmode,
29686 : E_BFmode) != 0
29687 : || !
29688 : #line 20417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29689 : (TARGET_AVX2 && reload_completed
29690 : && INTVAL (operands[3]) > 1
29691 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
29692 : < GET_MODE_NUNITS (V8BFmode))))
29693 : return NULL;
29694 : return gen_split_3498 (insn, operands);
29695 :
29696 : default:
29697 : return NULL;
29698 : }
29699 :
29700 : default:
29701 : return NULL;
29702 : }
29703 :
29704 : default:
29705 : return NULL;
29706 : }
29707 :
29708 : case SIGN_EXTEND:
29709 : switch (pattern417 (x2))
29710 : {
29711 : case 0:
29712 : if (!(
29713 : #line 24836 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29714 : (TARGET_AVX512VL && TARGET_AVX512BW
29715 : && ix86_pre_reload_split ()) &&
29716 : #line 24839 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29717 : ( 1)))
29718 : return NULL;
29719 : return gen_split_3632 (insn, operands);
29720 :
29721 : case 1:
29722 : if (!(
29723 : #line 25017 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29724 : (TARGET_AVX512VL
29725 : && ix86_pre_reload_split ()) &&
29726 : #line 25020 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29727 : ( 1)))
29728 : return NULL;
29729 : return gen_split_3640 (insn, operands);
29730 :
29731 : case 2:
29732 : if (!(
29733 : #line 25469 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29734 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
29735 : #line 25471 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29736 : ( 1)))
29737 : return NULL;
29738 : return gen_split_3666 (insn, operands);
29739 :
29740 : case 3:
29741 : if (!(
29742 : #line 25311 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29743 : (TARGET_AVX512VL
29744 : && ix86_pre_reload_split ()) &&
29745 : #line 25314 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29746 : ( 1)))
29747 : return NULL;
29748 : return gen_split_3658 (insn, operands);
29749 :
29750 : case 4:
29751 : if (!(
29752 : #line 25730 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29753 : (TARGET_AVX512VL
29754 : && ix86_pre_reload_split ()) &&
29755 : #line 25733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29756 : ( 1)))
29757 : return NULL;
29758 : return gen_split_3677 (insn, operands);
29759 :
29760 : case 5:
29761 : if (!(
29762 : #line 26013 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29763 : (TARGET_AVX512VL
29764 : && ix86_pre_reload_split ()) &&
29765 : #line 26016 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29766 : ( 1)))
29767 : return NULL;
29768 : return gen_split_3689 (insn, operands);
29769 :
29770 : case 6:
29771 : if (!(
29772 : #line 25113 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29773 : (TARGET_AVX512VL
29774 : && ix86_pre_reload_split ()) &&
29775 : #line 25116 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29776 : ( 1)))
29777 : return NULL;
29778 : return gen_split_3646 (insn, operands);
29779 :
29780 : case 7:
29781 : if (!(
29782 : #line 25561 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29783 : (TARGET_AVX512VL
29784 : && ix86_pre_reload_split ()) &&
29785 : #line 25564 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29786 : ( 1)))
29787 : return NULL;
29788 : return gen_split_3670 (insn, operands);
29789 :
29790 : case 8:
29791 : if (!(
29792 : #line 25823 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29793 : (TARGET_AVX512VL
29794 : && ix86_pre_reload_split ()) &&
29795 : #line 25826 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29796 : ( 1)))
29797 : return NULL;
29798 : return gen_split_3681 (insn, operands);
29799 :
29800 : default:
29801 : return NULL;
29802 : }
29803 :
29804 : case ZERO_EXTEND:
29805 : switch (pattern417 (x2))
29806 : {
29807 : case 0:
29808 : if (!(
29809 : #line 24836 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29810 : (TARGET_AVX512VL && TARGET_AVX512BW
29811 : && ix86_pre_reload_split ()) &&
29812 : #line 24839 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29813 : ( 1)))
29814 : return NULL;
29815 : return gen_split_3633 (insn, operands);
29816 :
29817 : case 1:
29818 : if (!(
29819 : #line 25017 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29820 : (TARGET_AVX512VL
29821 : && ix86_pre_reload_split ()) &&
29822 : #line 25020 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29823 : ( 1)))
29824 : return NULL;
29825 : return gen_split_3641 (insn, operands);
29826 :
29827 : case 2:
29828 : if (!(
29829 : #line 25469 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29830 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
29831 : #line 25471 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29832 : ( 1)))
29833 : return NULL;
29834 : return gen_split_3667 (insn, operands);
29835 :
29836 : case 3:
29837 : if (!(
29838 : #line 25311 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29839 : (TARGET_AVX512VL
29840 : && ix86_pre_reload_split ()) &&
29841 : #line 25314 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29842 : ( 1)))
29843 : return NULL;
29844 : return gen_split_3659 (insn, operands);
29845 :
29846 : case 4:
29847 : if (!(
29848 : #line 25730 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29849 : (TARGET_AVX512VL
29850 : && ix86_pre_reload_split ()) &&
29851 : #line 25733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29852 : ( 1)))
29853 : return NULL;
29854 : return gen_split_3678 (insn, operands);
29855 :
29856 : case 5:
29857 : if (!(
29858 : #line 26013 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29859 : (TARGET_AVX512VL
29860 : && ix86_pre_reload_split ()) &&
29861 : #line 26016 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29862 : ( 1)))
29863 : return NULL;
29864 : return gen_split_3690 (insn, operands);
29865 :
29866 : case 6:
29867 : if (!(
29868 : #line 25113 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29869 : (TARGET_AVX512VL
29870 : && ix86_pre_reload_split ()) &&
29871 : #line 25116 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29872 : ( 1)))
29873 : return NULL;
29874 : return gen_split_3647 (insn, operands);
29875 :
29876 : case 7:
29877 : if (!(
29878 : #line 25561 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29879 : (TARGET_AVX512VL
29880 : && ix86_pre_reload_split ()) &&
29881 : #line 25564 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29882 : ( 1)))
29883 : return NULL;
29884 : return gen_split_3671 (insn, operands);
29885 :
29886 : case 8:
29887 : if (!(
29888 : #line 25823 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29889 : (TARGET_AVX512VL
29890 : && ix86_pre_reload_split ()) &&
29891 : #line 25826 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29892 : ( 1)))
29893 : return NULL;
29894 : return gen_split_3682 (insn, operands);
29895 :
29896 : default:
29897 : return NULL;
29898 : }
29899 :
29900 : default:
29901 : return NULL;
29902 : }
29903 : }
29904 :
29905 : rtx_insn *
29906 : split_insns (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
29907 : {
29908 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
29909 : rtx x2, x3;
29910 : rtx_insn *res ATTRIBUTE_UNUSED;
29911 : recog_data.insn = NULL;
29912 : switch (GET_CODE (x1))
29913 : {
29914 : case EH_RETURN:
29915 : if (!
29916 : #line 21857 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29917 : (epilogue_completed))
29918 : return NULL;
29919 : return gen_split_873 (insn, operands);
29920 :
29921 : case PARALLEL:
29922 : case UNSPEC:
29923 : case UNSPEC_VOLATILE:
29924 : case SET:
29925 : switch (GET_CODE (x1))
29926 : {
29927 : case SET:
29928 : res = split_14 (x1, insn);
29929 : if (res != NULL_RTX)
29930 : return res;
29931 : break;
29932 :
29933 : case PARALLEL:
29934 : res = split_37 (x1, insn);
29935 : if (res != NULL_RTX)
29936 : return res;
29937 : break;
29938 :
29939 : default:
29940 : break;
29941 : }
29942 : operands[0] = x1;
29943 : if (tls_address_pattern (operands[0], E_VOIDmode)
29944 : &&
29945 : #line 24428 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29946 : (TARGET_TLS_DIRECT_SEG_REFS))
29947 : return gen_split_934 (insn, operands);
29948 : switch (GET_CODE (x1))
29949 : {
29950 : case PARALLEL:
29951 : return split_88 (x1, insn);
29952 :
29953 : case SET:
29954 : x2 = XEXP (x1, 1);
29955 : switch (GET_CODE (x2))
29956 : {
29957 : case NEG:
29958 : res = split_41 (x1, insn);
29959 : if (res != NULL_RTX)
29960 : return res;
29961 : break;
29962 :
29963 : case IF_THEN_ELSE:
29964 : res = split_43 (x1, insn);
29965 : if (res != NULL_RTX)
29966 : return res;
29967 : break;
29968 :
29969 : case UNSPEC:
29970 : res = split_44 (x1, insn);
29971 : if (res != NULL_RTX)
29972 : return res;
29973 : break;
29974 :
29975 : case COMPARE:
29976 : res = split_45 (x1, insn);
29977 : if (res != NULL_RTX)
29978 : return res;
29979 : break;
29980 :
29981 : case NOT:
29982 : res = split_46 (x1, insn);
29983 : if (res != NULL_RTX)
29984 : return res;
29985 : break;
29986 :
29987 : case REG:
29988 : case SUBREG:
29989 : case MEM:
29990 : res = split_47 (x1, insn);
29991 : if (res != NULL_RTX)
29992 : return res;
29993 : break;
29994 :
29995 : case CONST_INT:
29996 : case CONST_DOUBLE:
29997 : case CONST_VECTOR:
29998 : operands[1] = x2;
29999 : x3 = XEXP (x1, 0);
30000 : operands[0] = x3;
30001 : switch (GET_MODE (operands[0]))
30002 : {
30003 : case E_V8QImode:
30004 : if (nonimmediate_gr_operand (operands[0], E_V8QImode)
30005 : && const0_operand (operands[1], E_V8QImode)
30006 : &&
30007 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30008 : (!TARGET_64BIT && reload_completed))
30009 : return gen_split_1022 (insn, operands);
30010 : if (memory_operand (operands[0], E_V8QImode)
30011 : && x86_64_const_vector_operand (operands[1], E_V8QImode)
30012 : && ((
30013 : #line 601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30014 : (!TARGET_LCP_STALL || V8QImode != V2QImode) &&
30015 : #line 87 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30016 : (TARGET_64BIT)) &&
30017 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30018 : ( reload_completed)))
30019 : return gen_split_1058 (insn, operands);
30020 : break;
30021 :
30022 : case E_V4HImode:
30023 : if (nonimmediate_gr_operand (operands[0], E_V4HImode)
30024 : && const0_operand (operands[1], E_V4HImode)
30025 : &&
30026 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30027 : (!TARGET_64BIT && reload_completed))
30028 : return gen_split_1023 (insn, operands);
30029 : if (memory_operand (operands[0], E_V4HImode)
30030 : && x86_64_const_vector_operand (operands[1], E_V4HImode)
30031 : && ((
30032 : #line 601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30033 : (!TARGET_LCP_STALL || V4HImode != V2QImode) &&
30034 : #line 87 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30035 : (TARGET_64BIT)) &&
30036 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30037 : ( reload_completed)))
30038 : return gen_split_1059 (insn, operands);
30039 : break;
30040 :
30041 : case E_V2SImode:
30042 : if (nonimmediate_gr_operand (operands[0], E_V2SImode)
30043 : && const0_operand (operands[1], E_V2SImode)
30044 : &&
30045 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30046 : (!TARGET_64BIT && reload_completed))
30047 : return gen_split_1024 (insn, operands);
30048 : if (memory_operand (operands[0], E_V2SImode)
30049 : && x86_64_const_vector_operand (operands[1], E_V2SImode)
30050 : && ((
30051 : #line 601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30052 : (!TARGET_LCP_STALL || V2SImode != V2QImode) &&
30053 : #line 89 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30054 : (TARGET_64BIT)) &&
30055 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30056 : ( reload_completed)))
30057 : return gen_split_1062 (insn, operands);
30058 : break;
30059 :
30060 : case E_V1DImode:
30061 : if (nonimmediate_gr_operand (operands[0], E_V1DImode)
30062 : && const0_operand (operands[1], E_V1DImode)
30063 : &&
30064 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30065 : (!TARGET_64BIT && reload_completed))
30066 : return gen_split_1025 (insn, operands);
30067 : if (memory_operand (operands[0], E_V1DImode)
30068 : && x86_64_const_vector_operand (operands[1], E_V1DImode)
30069 : && ((
30070 : #line 601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30071 : (!TARGET_LCP_STALL || V1DImode != V2QImode) &&
30072 : #line 90 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30073 : (TARGET_64BIT)) &&
30074 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30075 : ( reload_completed)))
30076 : return gen_split_1064 (insn, operands);
30077 : break;
30078 :
30079 : case E_V2SFmode:
30080 : if (nonimmediate_gr_operand (operands[0], E_V2SFmode)
30081 : && const0_operand (operands[1], E_V2SFmode)
30082 : &&
30083 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30084 : (!TARGET_64BIT && reload_completed))
30085 : return gen_split_1026 (insn, operands);
30086 : if (memory_operand (operands[0], E_V2SFmode)
30087 : && x86_64_const_vector_operand (operands[1], E_V2SFmode)
30088 : && ((
30089 : #line 601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30090 : (!TARGET_LCP_STALL || V2SFmode != V2QImode) &&
30091 : #line 89 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30092 : (TARGET_64BIT)) &&
30093 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30094 : ( reload_completed)))
30095 : return gen_split_1063 (insn, operands);
30096 : break;
30097 :
30098 : case E_V4HFmode:
30099 : if (nonimmediate_gr_operand (operands[0], E_V4HFmode)
30100 : && const0_operand (operands[1], E_V4HFmode)
30101 : &&
30102 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30103 : (!TARGET_64BIT && reload_completed))
30104 : return gen_split_1027 (insn, operands);
30105 : if (memory_operand (operands[0], E_V4HFmode)
30106 : && x86_64_const_vector_operand (operands[1], E_V4HFmode)
30107 : && ((
30108 : #line 601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30109 : (!TARGET_LCP_STALL || V4HFmode != V2QImode) &&
30110 : #line 88 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30111 : (TARGET_64BIT)) &&
30112 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30113 : ( reload_completed)))
30114 : return gen_split_1060 (insn, operands);
30115 : break;
30116 :
30117 : case E_V4BFmode:
30118 : if (nonimmediate_gr_operand (operands[0], E_V4BFmode)
30119 : && const0_operand (operands[1], E_V4BFmode)
30120 : &&
30121 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30122 : (!TARGET_64BIT && reload_completed))
30123 : return gen_split_1028 (insn, operands);
30124 : if (memory_operand (operands[0], E_V4BFmode)
30125 : && x86_64_const_vector_operand (operands[1], E_V4BFmode)
30126 : && ((
30127 : #line 601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30128 : (!TARGET_LCP_STALL || V4BFmode != V2QImode) &&
30129 : #line 88 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30130 : (TARGET_64BIT)) &&
30131 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30132 : ( reload_completed)))
30133 : return gen_split_1061 (insn, operands);
30134 : break;
30135 :
30136 : case E_V2QImode:
30137 : if (memory_operand (operands[0], E_V2QImode)
30138 : && x86_64_const_vector_operand (operands[1], E_V2QImode)
30139 : && (
30140 : #line 601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30141 : (!TARGET_LCP_STALL || V2QImode != V2QImode) &&
30142 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30143 : ( reload_completed)))
30144 : return gen_split_1052 (insn, operands);
30145 : break;
30146 :
30147 : case E_V4QImode:
30148 : if (memory_operand (operands[0], E_V4QImode)
30149 : && x86_64_const_vector_operand (operands[1], E_V4QImode)
30150 : && (
30151 : #line 601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30152 : (!TARGET_LCP_STALL || V4QImode != V2QImode) &&
30153 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30154 : ( reload_completed)))
30155 : return gen_split_1053 (insn, operands);
30156 : break;
30157 :
30158 : case E_V2HImode:
30159 : if (memory_operand (operands[0], E_V2HImode)
30160 : && x86_64_const_vector_operand (operands[1], E_V2HImode)
30161 : && (
30162 : #line 601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30163 : (!TARGET_LCP_STALL || V2HImode != V2QImode) &&
30164 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30165 : ( reload_completed)))
30166 : return gen_split_1054 (insn, operands);
30167 : break;
30168 :
30169 : case E_V1SImode:
30170 : if (memory_operand (operands[0], E_V1SImode)
30171 : && x86_64_const_vector_operand (operands[1], E_V1SImode)
30172 : && (
30173 : #line 601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30174 : (!TARGET_LCP_STALL || V1SImode != V2QImode) &&
30175 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30176 : ( reload_completed)))
30177 : return gen_split_1055 (insn, operands);
30178 : break;
30179 :
30180 : case E_V2HFmode:
30181 : if (memory_operand (operands[0], E_V2HFmode)
30182 : && x86_64_const_vector_operand (operands[1], E_V2HFmode)
30183 : && (
30184 : #line 601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30185 : (!TARGET_LCP_STALL || V2HFmode != V2QImode) &&
30186 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30187 : ( reload_completed)))
30188 : return gen_split_1056 (insn, operands);
30189 : break;
30190 :
30191 : case E_V2BFmode:
30192 : if (memory_operand (operands[0], E_V2BFmode)
30193 : && x86_64_const_vector_operand (operands[1], E_V2BFmode)
30194 : && (
30195 : #line 601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30196 : (!TARGET_LCP_STALL || V2BFmode != V2QImode) &&
30197 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30198 : ( reload_completed)))
30199 : return gen_split_1057 (insn, operands);
30200 : break;
30201 :
30202 : default:
30203 : break;
30204 : }
30205 : break;
30206 :
30207 : case PLUS:
30208 : res = split_48 (x1, insn);
30209 : if (res != NULL_RTX)
30210 : return res;
30211 : break;
30212 :
30213 : case MINUS:
30214 : res = split_49 (x1, insn);
30215 : if (res != NULL_RTX)
30216 : return res;
30217 : break;
30218 :
30219 : case VEC_SELECT:
30220 : res = split_51 (x1, insn);
30221 : if (res != NULL_RTX)
30222 : return res;
30223 : break;
30224 :
30225 : case LT:
30226 : x3 = XEXP (x1, 0);
30227 : operands[0] = x3;
30228 : switch (pattern241 (x2))
30229 : {
30230 : case 0:
30231 : if ((
30232 : #line 3905 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30233 : (TARGET_MMX_WITH_SSE && ix86_pre_reload_split ()) &&
30234 : #line 3907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30235 : ( 1)))
30236 : return gen_split_1094 (insn, operands);
30237 : break;
30238 :
30239 : case 1:
30240 : if ((
30241 : #line 3905 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30242 : (TARGET_MMX_WITH_SSE && ix86_pre_reload_split ()) &&
30243 : #line 3907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30244 : ( 1)))
30245 : return gen_split_1095 (insn, operands);
30246 : break;
30247 :
30248 : case 2:
30249 : if ((
30250 : #line 3994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30251 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30252 : #line 3996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30253 : ( 1)))
30254 : return gen_split_1099 (insn, operands);
30255 : break;
30256 :
30257 : default:
30258 : break;
30259 : }
30260 : break;
30261 :
30262 : case AND:
30263 : res = split_52 (x1, insn);
30264 : if (res != NULL_RTX)
30265 : return res;
30266 : break;
30267 :
30268 : case VEC_CONCAT:
30269 : res = split_53 (x1, insn);
30270 : if (res != NULL_RTX)
30271 : return res;
30272 : break;
30273 :
30274 : case VEC_MERGE:
30275 : res = split_54 (x1, insn);
30276 : if (res != NULL_RTX)
30277 : return res;
30278 : break;
30279 :
30280 : case ZERO_EXTEND:
30281 : res = split_55 (x1, insn);
30282 : if (res != NULL_RTX)
30283 : return res;
30284 : break;
30285 :
30286 : case IOR:
30287 : x3 = XEXP (x1, 0);
30288 : operands[0] = x3;
30289 : switch (pattern243 (x2))
30290 : {
30291 : case 0:
30292 : if (
30293 : #line 2149 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30294 : (TARGET_AVX512F && reload_completed))
30295 : return gen_split_1232 (insn, operands);
30296 : break;
30297 :
30298 : case 1:
30299 : if (
30300 : #line 2149 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30301 : (TARGET_AVX512F && reload_completed))
30302 : return gen_split_1235 (insn, operands);
30303 : break;
30304 :
30305 : case 2:
30306 : if ((
30307 : #line 2149 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30308 : (TARGET_AVX512F && reload_completed) &&
30309 : #line 2109 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30310 : (TARGET_AVX512BW)))
30311 : return gen_split_1238 (insn, operands);
30312 : break;
30313 :
30314 : case 3:
30315 : if ((
30316 : #line 2149 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30317 : (TARGET_AVX512F && reload_completed) &&
30318 : #line 2109 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30319 : (TARGET_AVX512BW)))
30320 : return gen_split_1241 (insn, operands);
30321 : break;
30322 :
30323 : default:
30324 : break;
30325 : }
30326 : break;
30327 :
30328 : case XOR:
30329 : x3 = XEXP (x1, 0);
30330 : operands[0] = x3;
30331 : switch (pattern243 (x2))
30332 : {
30333 : case 0:
30334 : if (
30335 : #line 2149 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30336 : (TARGET_AVX512F && reload_completed))
30337 : return gen_split_1233 (insn, operands);
30338 : break;
30339 :
30340 : case 1:
30341 : if (
30342 : #line 2149 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30343 : (TARGET_AVX512F && reload_completed))
30344 : return gen_split_1236 (insn, operands);
30345 : break;
30346 :
30347 : case 2:
30348 : if ((
30349 : #line 2149 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30350 : (TARGET_AVX512F && reload_completed) &&
30351 : #line 2109 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30352 : (TARGET_AVX512BW)))
30353 : return gen_split_1239 (insn, operands);
30354 : break;
30355 :
30356 : case 3:
30357 : if ((
30358 : #line 2149 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30359 : (TARGET_AVX512F && reload_completed) &&
30360 : #line 2109 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30361 : (TARGET_AVX512BW)))
30362 : return gen_split_1242 (insn, operands);
30363 : break;
30364 :
30365 : default:
30366 : break;
30367 : }
30368 : break;
30369 :
30370 : case ASHIFT:
30371 : switch (pattern55 (x1))
30372 : {
30373 : case 0:
30374 : if (
30375 : #line 2313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30376 : (TARGET_AVX512F && reload_completed))
30377 : return gen_split_1264 (insn, operands);
30378 : break;
30379 :
30380 : case 1:
30381 : if (
30382 : #line 2313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30383 : (TARGET_AVX512F && reload_completed))
30384 : return gen_split_1266 (insn, operands);
30385 : break;
30386 :
30387 : case 2:
30388 : if ((
30389 : #line 2313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30390 : (TARGET_AVX512F && reload_completed) &&
30391 : #line 2109 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30392 : (TARGET_AVX512BW)))
30393 : return gen_split_1268 (insn, operands);
30394 : break;
30395 :
30396 : case 3:
30397 : if ((
30398 : #line 2313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30399 : (TARGET_AVX512F && reload_completed) &&
30400 : #line 2109 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30401 : (TARGET_AVX512BW)))
30402 : return gen_split_1270 (insn, operands);
30403 : break;
30404 :
30405 : default:
30406 : break;
30407 : }
30408 : break;
30409 :
30410 : case LSHIFTRT:
30411 : switch (pattern55 (x1))
30412 : {
30413 : case 0:
30414 : if (
30415 : #line 2313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30416 : (TARGET_AVX512F && reload_completed))
30417 : return gen_split_1265 (insn, operands);
30418 : break;
30419 :
30420 : case 1:
30421 : if (
30422 : #line 2313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30423 : (TARGET_AVX512F && reload_completed))
30424 : return gen_split_1267 (insn, operands);
30425 : break;
30426 :
30427 : case 2:
30428 : if ((
30429 : #line 2313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30430 : (TARGET_AVX512F && reload_completed) &&
30431 : #line 2109 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30432 : (TARGET_AVX512BW)))
30433 : return gen_split_1269 (insn, operands);
30434 : break;
30435 :
30436 : case 3:
30437 : if ((
30438 : #line 2313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30439 : (TARGET_AVX512F && reload_completed) &&
30440 : #line 2109 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30441 : (TARGET_AVX512BW)))
30442 : return gen_split_1271 (insn, operands);
30443 : break;
30444 :
30445 : default:
30446 : break;
30447 : }
30448 : break;
30449 :
30450 : case SIGN_EXTEND:
30451 : res = split_56 (x1, insn);
30452 : if (res != NULL_RTX)
30453 : return res;
30454 : break;
30455 :
30456 : case SS_PLUS:
30457 : if (pattern57 (x1) == 0
30458 : &&
30459 : #line 23145 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30460 : (TARGET_SSSE3 && reload_completed
30461 : && SSE_REGNO_P (REGNO (operands[0]))))
30462 : return gen_split_3579 (insn, operands);
30463 : break;
30464 :
30465 : case SS_MINUS:
30466 : if (pattern57 (x1) == 0
30467 : &&
30468 : #line 23145 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30469 : (TARGET_SSSE3 && reload_completed
30470 : && SSE_REGNO_P (REGNO (operands[0]))))
30471 : return gen_split_3581 (insn, operands);
30472 : break;
30473 :
30474 : case NE:
30475 : case EQ:
30476 : res = split_57 (x1, insn);
30477 : if (res != NULL_RTX)
30478 : return res;
30479 : break;
30480 :
30481 : default:
30482 : break;
30483 : }
30484 : x3 = XEXP (x1, 0);
30485 : operands[0] = x3;
30486 : return split_87 (x1, insn);
30487 :
30488 : default:
30489 : return NULL;
30490 : }
30491 :
30492 : default:
30493 : return NULL;
30494 : }
30495 : }
30496 :
30497 : rtx_insn *
30498 : peephole2_6 (rtx x1 ATTRIBUTE_UNUSED,
30499 : rtx_insn *insn ATTRIBUTE_UNUSED,
30500 : int *pmatch_len_ ATTRIBUTE_UNUSED)
30501 : {
30502 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
30503 : rtx x2, x3;
30504 : rtx_insn *res ATTRIBUTE_UNUSED;
30505 : x2 = XEXP (x1, 1);
30506 : operands[1] = x2;
30507 : x3 = XEXP (x1, 0);
30508 : operands[0] = x3;
30509 : switch (GET_CODE (operands[0]))
30510 : {
30511 : case MEM:
30512 : if (push_operand (operands[0], E_DImode)
30513 : && immediate_operand (operands[1], E_DImode)
30514 : &&
30515 : #line 2262 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30516 : (TARGET_64BIT
30517 : && !symbolic_operand (operands[1], DImode)
30518 : && !x86_64_immediate_operand (operands[1], DImode)))
30519 : {
30520 : *pmatch_len_ = 0;
30521 : res = gen_peephole2_3 (insn, operands);
30522 : if (res != NULL_RTX)
30523 : return res;
30524 : }
30525 : break;
30526 :
30527 : case REG:
30528 : case SUBREG:
30529 : res = peephole2_4 (x1, insn, pmatch_len_);
30530 : if (res != NULL_RTX)
30531 : return res;
30532 : break;
30533 :
30534 : default:
30535 : break;
30536 : }
30537 : switch (GET_MODE (operands[0]))
30538 : {
30539 : case E_HImode:
30540 : if (memory_operand (operands[0], E_HImode)
30541 : && const_int_operand (operands[1], E_HImode)
30542 : &&
30543 : #line 3035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30544 : ((operands[1] == const0_rtx || operands[1] == constm1_rtx)
30545 : && optimize_insn_for_size_p () && optimize_size > 1
30546 : && peep2_regno_dead_p (0, FLAGS_REG)))
30547 : {
30548 : *pmatch_len_ = 0;
30549 : res = gen_peephole2_8 (insn, operands);
30550 : if (res != NULL_RTX)
30551 : return res;
30552 : }
30553 : break;
30554 :
30555 : case E_SImode:
30556 : if (memory_operand (operands[0], E_SImode)
30557 : && const_int_operand (operands[1], E_SImode)
30558 : &&
30559 : #line 3035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30560 : ((operands[1] == const0_rtx || operands[1] == constm1_rtx)
30561 : && optimize_insn_for_size_p () && optimize_size > 1
30562 : && peep2_regno_dead_p (0, FLAGS_REG)))
30563 : {
30564 : *pmatch_len_ = 0;
30565 : res = gen_peephole2_9 (insn, operands);
30566 : if (res != NULL_RTX)
30567 : return res;
30568 : }
30569 : break;
30570 :
30571 : case E_DImode:
30572 : if (memory_operand (operands[0], E_DImode)
30573 : && const_int_operand (operands[1], E_DImode)
30574 : && (
30575 : #line 3035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30576 : ((operands[1] == const0_rtx || operands[1] == constm1_rtx)
30577 : && optimize_insn_for_size_p () && optimize_size > 1
30578 : && peep2_regno_dead_p (0, FLAGS_REG)) &&
30579 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30580 : (TARGET_64BIT)))
30581 : {
30582 : *pmatch_len_ = 0;
30583 : res = gen_peephole2_10 (insn, operands);
30584 : if (res != NULL_RTX)
30585 : return res;
30586 : }
30587 : break;
30588 :
30589 : default:
30590 : break;
30591 : }
30592 : if (GET_CODE (x2) == CONST_INT)
30593 : {
30594 : if (XWINT (x2, 0) == 0L)
30595 : {
30596 : res = peephole2_5 (x1, insn, pmatch_len_);
30597 : if (res != NULL_RTX)
30598 : return res;
30599 : }
30600 : operands[1] = x2;
30601 : operands[0] = x3;
30602 : switch (GET_MODE (operands[0]))
30603 : {
30604 : case E_SImode:
30605 : if (const_int_operand (operands[1], E_SImode))
30606 : {
30607 : if (any_QIreg_operand (operands[0], E_SImode)
30608 : &&
30609 : #line 5038 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30610 : (optimize_insn_for_size_p () && optimize_size > 1
30611 : && IN_RANGE (INTVAL (operands[1]), 128, 255)
30612 : && peep2_regno_dead_p (0, FLAGS_REG)))
30613 : {
30614 : *pmatch_len_ = 0;
30615 : res = gen_peephole2_49 (insn, operands);
30616 : if (res != NULL_RTX)
30617 : return res;
30618 : }
30619 : if (QIreg_operand (operands[0], E_SImode)
30620 : &&
30621 : #line 5054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30622 : (optimize_insn_for_size_p () && optimize_size > 1
30623 : && (INTVAL (operands[1]) & ~0xff00) == 0
30624 : && peep2_regno_dead_p (0, FLAGS_REG)))
30625 : {
30626 : *pmatch_len_ = 0;
30627 : res = gen_peephole2_51 (insn, operands);
30628 : if (res != NULL_RTX)
30629 : return res;
30630 : }
30631 : }
30632 : break;
30633 :
30634 : case E_DImode:
30635 : if (const_int_operand (operands[1], E_DImode))
30636 : {
30637 : if (any_QIreg_operand (operands[0], E_DImode)
30638 : && (
30639 : #line 5038 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30640 : (optimize_insn_for_size_p () && optimize_size > 1
30641 : && IN_RANGE (INTVAL (operands[1]), 128, 255)
30642 : && peep2_regno_dead_p (0, FLAGS_REG)) &&
30643 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30644 : (TARGET_64BIT)))
30645 : {
30646 : *pmatch_len_ = 0;
30647 : res = gen_peephole2_50 (insn, operands);
30648 : if (res != NULL_RTX)
30649 : return res;
30650 : }
30651 : if (QIreg_operand (operands[0], E_DImode)
30652 : && (
30653 : #line 5054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30654 : (optimize_insn_for_size_p () && optimize_size > 1
30655 : && (INTVAL (operands[1]) & ~0xff00) == 0
30656 : && peep2_regno_dead_p (0, FLAGS_REG)) &&
30657 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30658 : (TARGET_64BIT)))
30659 : {
30660 : *pmatch_len_ = 0;
30661 : res = gen_peephole2_52 (insn, operands);
30662 : if (res != NULL_RTX)
30663 : return res;
30664 : }
30665 : }
30666 : break;
30667 :
30668 : default:
30669 : break;
30670 : }
30671 : }
30672 : operands[1] = x2;
30673 : operands[0] = x3;
30674 : switch (GET_MODE (operands[0]))
30675 : {
30676 : case E_QImode:
30677 : if (!memory_operand (operands[0], E_QImode)
30678 : || !immediate_operand (operands[1], E_QImode)
30679 : || !
30680 : #line 29081 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30681 : (optimize_insn_for_speed_p ()
30682 : && ((QImode == HImode
30683 : && TARGET_LCP_STALL)
30684 : || (TARGET_SPLIT_LONG_MOVES
30685 : && get_attr_length (insn) >= ix86_cur_cost ()->large_insn))))
30686 : return NULL;
30687 : *pmatch_len_ = 0;
30688 : return gen_peephole2_285 (insn, operands);
30689 :
30690 : case E_HImode:
30691 : if (!memory_operand (operands[0], E_HImode)
30692 : || !immediate_operand (operands[1], E_HImode)
30693 : || !
30694 : #line 29081 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30695 : (optimize_insn_for_speed_p ()
30696 : && ((HImode == HImode
30697 : && TARGET_LCP_STALL)
30698 : || (TARGET_SPLIT_LONG_MOVES
30699 : && get_attr_length (insn) >= ix86_cur_cost ()->large_insn))))
30700 : return NULL;
30701 : *pmatch_len_ = 0;
30702 : return gen_peephole2_286 (insn, operands);
30703 :
30704 : default:
30705 : return NULL;
30706 : }
30707 : }
30708 :
30709 : rtx_insn *
30710 : peephole2_9 (rtx x1 ATTRIBUTE_UNUSED,
30711 : rtx_insn *insn ATTRIBUTE_UNUSED,
30712 : int *pmatch_len_ ATTRIBUTE_UNUSED)
30713 : {
30714 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
30715 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
30716 : rtx_insn *res ATTRIBUTE_UNUSED;
30717 : x2 = XEXP (x1, 1);
30718 : switch (GET_CODE (x2))
30719 : {
30720 : case CONST_INT:
30721 : case CONST_WIDE_INT:
30722 : case CONST_POLY_INT:
30723 : case CONST_FIXED:
30724 : case CONST_DOUBLE:
30725 : case CONST_VECTOR:
30726 : case CONST:
30727 : case LABEL_REF:
30728 : case SYMBOL_REF:
30729 : case HIGH:
30730 : res = peephole2_6 (x1, insn, pmatch_len_);
30731 : if (res != NULL_RTX)
30732 : return res;
30733 : break;
30734 :
30735 : case REG:
30736 : res = peephole2_7 (x1, insn, pmatch_len_);
30737 : if (res != NULL_RTX)
30738 : return res;
30739 : break;
30740 :
30741 : case SUBREG:
30742 : case MEM:
30743 : res = peephole2_8 (x1, insn, pmatch_len_);
30744 : if (res != NULL_RTX)
30745 : return res;
30746 : break;
30747 :
30748 : default:
30749 : break;
30750 : }
30751 : if (peep2_current_count < 2)
30752 : return NULL;
30753 : x3 = PATTERN (peep2_next_insn (1));
30754 : if (GET_CODE (x3) != SET)
30755 : return NULL;
30756 : x4 = XEXP (x1, 0);
30757 : switch (GET_MODE (x4))
30758 : {
30759 : case E_HImode:
30760 : if (peep2_current_count >= 3
30761 : && peep2_current_count >= 4)
30762 : {
30763 : operands[2] = x4;
30764 : if (general_reg_operand (operands[2], E_HImode))
30765 : {
30766 : operands[3] = x2;
30767 : if (general_gr_operand (operands[3], E_HImode))
30768 : {
30769 : x5 = XEXP (x3, 0);
30770 : operands[0] = x5;
30771 : if (general_reg_operand (operands[0], E_HImode))
30772 : {
30773 : x6 = XEXP (x3, 1);
30774 : if (pattern967 (x6,
30775 : E_HImode) == 0
30776 : &&
30777 : #line 27679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30778 : (TARGET_CMOVE
30779 : && REGNO (operands[2]) != REGNO (operands[0])
30780 : && REGNO (operands[2]) != REGNO (operands[1])
30781 : && peep2_reg_dead_p (2, operands[1])
30782 : && peep2_reg_dead_p (4, operands[2])
30783 : && !reg_overlap_mentioned_p (operands[0], operands[3])
30784 : && !reg_mentioned_p (operands[2], operands[6])))
30785 : {
30786 : *pmatch_len_ = 3;
30787 : res = gen_peephole2_230 (insn, operands);
30788 : if (res != NULL_RTX)
30789 : return res;
30790 : }
30791 : }
30792 : }
30793 : }
30794 : }
30795 : operands[0] = x4;
30796 : operands[1] = x2;
30797 : if (x86_64_general_operand (operands[1], E_HImode)
30798 : && general_reg_operand (operands[0], E_HImode))
30799 : {
30800 : x5 = XEXP (x3, 0);
30801 : operands[2] = x5;
30802 : if (general_reg_operand (operands[2], E_HImode))
30803 : {
30804 : x6 = XEXP (x3, 1);
30805 : if (rtx_equal_p (x6, operands[0])
30806 : &&
30807 : #line 28278 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30808 : (peep2_reg_dead_p (2, operands[0])))
30809 : {
30810 : *pmatch_len_ = 1;
30811 : res = gen_peephole2_254 (insn, operands);
30812 : if (res != NULL_RTX)
30813 : return res;
30814 : }
30815 : }
30816 : }
30817 : if (peep2_current_count < 3
30818 : || pattern852 (x3,
30819 : E_HImode) != 0)
30820 : return NULL;
30821 : switch (GET_MODE (operands[4]))
30822 : {
30823 : case E_HImode:
30824 : x7 = PATTERN (peep2_next_insn (2));
30825 : x8 = XVECEXP (x7, 0, 0);
30826 : x9 = XEXP (x8, 1);
30827 : if (pattern1897 (x9,
30828 : E_HImode) != 0
30829 : || !
30830 : #line 29730 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30831 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
30832 : && (REGNO (operands[4]) == REGNO (operands[0])
30833 : || REGNO (operands[4]) == REGNO (operands[3]))
30834 : && (rtx_equal_p (operands[REGNO (operands[4]) == REGNO (operands[0])
30835 : ? 3 : 0], operands[5])
30836 : ? rtx_equal_p (operands[2], operands[6])
30837 : : rtx_equal_p (operands[2], operands[5])
30838 : && rtx_equal_p (operands[REGNO (operands[4]) == REGNO (operands[0])
30839 : ? 3 : 0], operands[6]))
30840 : && peep2_reg_dead_p (4, operands[4])
30841 : && peep2_reg_dead_p (5, operands[REGNO (operands[4]) == REGNO (operands[0])
30842 : ? 3 : 0])
30843 : && !reg_overlap_mentioned_p (operands[0], operands[1])
30844 : && !reg_overlap_mentioned_p (operands[0], operands[2])
30845 : && !reg_overlap_mentioned_p (operands[3], operands[0])
30846 : && !reg_overlap_mentioned_p (operands[3], operands[1])
30847 : && !reg_overlap_mentioned_p (operands[3], operands[2])
30848 : && (HImode != QImode
30849 : || immediate_operand (operands[2], QImode)
30850 : || any_QIreg_operand (operands[2], QImode))))
30851 : return NULL;
30852 : *pmatch_len_ = 4;
30853 : return gen_peephole2_360 (insn, operands);
30854 :
30855 : case E_SImode:
30856 : x7 = PATTERN (peep2_next_insn (2));
30857 : x8 = XVECEXP (x7, 0, 0);
30858 : x9 = XEXP (x8, 1);
30859 : if (pattern1898 (x9,
30860 : E_HImode) != 0
30861 : || !
30862 : #line 29774 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30863 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
30864 : && (REGNO (operands[5]) == REGNO (operands[0])
30865 : || REGNO (operands[5]) == REGNO (operands[3]))
30866 : && REGNO (operands[5]) == REGNO (operands[4])
30867 : && (rtx_equal_p (operands[REGNO (operands[5]) == REGNO (operands[0])
30868 : ? 3 : 0], operands[6])
30869 : ? (REG_P (operands[2])
30870 : ? REG_P (operands[7]) && REGNO (operands[2]) == REGNO (operands[7])
30871 : : rtx_equal_p (operands[2], operands[7]))
30872 : : (rtx_equal_p (operands[REGNO (operands[5]) == REGNO (operands[0])
30873 : ? 3 : 0], operands[7])
30874 : && REG_P (operands[2])
30875 : && REGNO (operands[2]) == REGNO (operands[6])))
30876 : && peep2_reg_dead_p (4, operands[5])
30877 : && peep2_reg_dead_p (5, operands[REGNO (operands[5]) == REGNO (operands[0])
30878 : ? 3 : 0])
30879 : && !reg_overlap_mentioned_p (operands[0], operands[1])
30880 : && !reg_overlap_mentioned_p (operands[0], operands[2])
30881 : && !reg_overlap_mentioned_p (operands[3], operands[0])
30882 : && !reg_overlap_mentioned_p (operands[3], operands[1])
30883 : && !reg_overlap_mentioned_p (operands[3], operands[2])
30884 : && (HImode != QImode
30885 : || immediate_operand (operands[2], SImode)
30886 : || any_QIreg_operand (operands[2], SImode))))
30887 : return NULL;
30888 : *pmatch_len_ = 4;
30889 : return gen_peephole2_364 (insn, operands);
30890 :
30891 : default:
30892 : return NULL;
30893 : }
30894 :
30895 : case E_QImode:
30896 : operands[0] = x4;
30897 : operands[1] = x2;
30898 : if (x86_64_general_operand (operands[1], E_QImode)
30899 : && general_reg_operand (operands[0], E_QImode))
30900 : {
30901 : x5 = XEXP (x3, 0);
30902 : operands[2] = x5;
30903 : if (general_reg_operand (operands[2], E_QImode))
30904 : {
30905 : x6 = XEXP (x3, 1);
30906 : if (rtx_equal_p (x6, operands[0])
30907 : &&
30908 : #line 28278 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30909 : (peep2_reg_dead_p (2, operands[0])))
30910 : {
30911 : *pmatch_len_ = 1;
30912 : res = gen_peephole2_253 (insn, operands);
30913 : if (res != NULL_RTX)
30914 : return res;
30915 : }
30916 : }
30917 : }
30918 : if (peep2_current_count < 3
30919 : || pattern852 (x3,
30920 : E_QImode) != 0)
30921 : return NULL;
30922 : switch (GET_MODE (operands[4]))
30923 : {
30924 : case E_QImode:
30925 : x7 = PATTERN (peep2_next_insn (2));
30926 : x8 = XVECEXP (x7, 0, 0);
30927 : x9 = XEXP (x8, 1);
30928 : if (pattern1897 (x9,
30929 : E_QImode) != 0
30930 : || !
30931 : #line 29730 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30932 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
30933 : && (REGNO (operands[4]) == REGNO (operands[0])
30934 : || REGNO (operands[4]) == REGNO (operands[3]))
30935 : && (rtx_equal_p (operands[REGNO (operands[4]) == REGNO (operands[0])
30936 : ? 3 : 0], operands[5])
30937 : ? rtx_equal_p (operands[2], operands[6])
30938 : : rtx_equal_p (operands[2], operands[5])
30939 : && rtx_equal_p (operands[REGNO (operands[4]) == REGNO (operands[0])
30940 : ? 3 : 0], operands[6]))
30941 : && peep2_reg_dead_p (4, operands[4])
30942 : && peep2_reg_dead_p (5, operands[REGNO (operands[4]) == REGNO (operands[0])
30943 : ? 3 : 0])
30944 : && !reg_overlap_mentioned_p (operands[0], operands[1])
30945 : && !reg_overlap_mentioned_p (operands[0], operands[2])
30946 : && !reg_overlap_mentioned_p (operands[3], operands[0])
30947 : && !reg_overlap_mentioned_p (operands[3], operands[1])
30948 : && !reg_overlap_mentioned_p (operands[3], operands[2])
30949 : && (QImode != QImode
30950 : || immediate_operand (operands[2], QImode)
30951 : || any_QIreg_operand (operands[2], QImode))))
30952 : return NULL;
30953 : *pmatch_len_ = 4;
30954 : return gen_peephole2_359 (insn, operands);
30955 :
30956 : case E_SImode:
30957 : x7 = PATTERN (peep2_next_insn (2));
30958 : x8 = XVECEXP (x7, 0, 0);
30959 : x9 = XEXP (x8, 1);
30960 : if (pattern1898 (x9,
30961 : E_QImode) != 0
30962 : || !
30963 : #line 29774 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30964 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
30965 : && (REGNO (operands[5]) == REGNO (operands[0])
30966 : || REGNO (operands[5]) == REGNO (operands[3]))
30967 : && REGNO (operands[5]) == REGNO (operands[4])
30968 : && (rtx_equal_p (operands[REGNO (operands[5]) == REGNO (operands[0])
30969 : ? 3 : 0], operands[6])
30970 : ? (REG_P (operands[2])
30971 : ? REG_P (operands[7]) && REGNO (operands[2]) == REGNO (operands[7])
30972 : : rtx_equal_p (operands[2], operands[7]))
30973 : : (rtx_equal_p (operands[REGNO (operands[5]) == REGNO (operands[0])
30974 : ? 3 : 0], operands[7])
30975 : && REG_P (operands[2])
30976 : && REGNO (operands[2]) == REGNO (operands[6])))
30977 : && peep2_reg_dead_p (4, operands[5])
30978 : && peep2_reg_dead_p (5, operands[REGNO (operands[5]) == REGNO (operands[0])
30979 : ? 3 : 0])
30980 : && !reg_overlap_mentioned_p (operands[0], operands[1])
30981 : && !reg_overlap_mentioned_p (operands[0], operands[2])
30982 : && !reg_overlap_mentioned_p (operands[3], operands[0])
30983 : && !reg_overlap_mentioned_p (operands[3], operands[1])
30984 : && !reg_overlap_mentioned_p (operands[3], operands[2])
30985 : && (QImode != QImode
30986 : || immediate_operand (operands[2], SImode)
30987 : || any_QIreg_operand (operands[2], SImode))))
30988 : return NULL;
30989 : *pmatch_len_ = 4;
30990 : return gen_peephole2_363 (insn, operands);
30991 :
30992 : default:
30993 : return NULL;
30994 : }
30995 :
30996 : default:
30997 : return NULL;
30998 : }
30999 : }
31000 :
31001 : rtx_insn *
31002 : peephole2_13 (rtx x1 ATTRIBUTE_UNUSED,
31003 : rtx_insn *insn ATTRIBUTE_UNUSED,
31004 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31005 : {
31006 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31007 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
31008 : rtx x10, x11, x12, x13, x14;
31009 : rtx_insn *res ATTRIBUTE_UNUSED;
31010 : x2 = XEXP (x1, 1);
31011 : operands[1] = x2;
31012 : if (register_operand (operands[0], E_SImode))
31013 : {
31014 : res = peephole2_11 (x1, insn, pmatch_len_);
31015 : if (res != NULL_RTX)
31016 : return res;
31017 : }
31018 : if (peep2_current_count < 2
31019 : || peep2_current_count < 3
31020 : || !general_reg_operand (operands[0], E_SImode))
31021 : return NULL;
31022 : x3 = PATTERN (peep2_next_insn (1));
31023 : if (GET_CODE (x3) == PARALLEL
31024 : && XVECLEN (x3, 0) == 2)
31025 : {
31026 : x4 = XVECEXP (x3, 0, 0);
31027 : if (GET_CODE (x4) == SET)
31028 : {
31029 : if (memory_operand (operands[1], E_SImode))
31030 : {
31031 : switch (pattern1207 (x3,
31032 : E_SImode,
31033 : E_DImode))
31034 : {
31035 : case 0:
31036 : if (
31037 : #line 8982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31038 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31039 : && peep2_reg_dead_p (3, operands[0])
31040 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31041 : && !reg_overlap_mentioned_p (operands[0], operands[2])))
31042 : {
31043 : *pmatch_len_ = 2;
31044 : res = gen_peephole2_80 (insn, operands);
31045 : if (res != NULL_RTX)
31046 : return res;
31047 : }
31048 : break;
31049 :
31050 : case 1:
31051 : if (
31052 : #line 9009 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31053 : (TARGET_APX_NDD
31054 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31055 : && peep2_reg_dead_p (3, operands[0])
31056 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31057 : && !reg_overlap_mentioned_p (operands[0], operands[2])))
31058 : {
31059 : *pmatch_len_ = 2;
31060 : res = gen_peephole2_84 (insn, operands);
31061 : if (res != NULL_RTX)
31062 : return res;
31063 : }
31064 : break;
31065 :
31066 : case 2:
31067 : if (
31068 : #line 9568 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31069 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31070 : && peep2_reg_dead_p (3, operands[0])
31071 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31072 : && !reg_overlap_mentioned_p (operands[0], operands[2])))
31073 : {
31074 : *pmatch_len_ = 2;
31075 : res = gen_peephole2_100 (insn, operands);
31076 : if (res != NULL_RTX)
31077 : return res;
31078 : }
31079 : break;
31080 :
31081 : case 3:
31082 : x5 = PATTERN (peep2_next_insn (2));
31083 : x6 = XEXP (x5, 0);
31084 : if (rtx_equal_p (x6, operands[1])
31085 : &&
31086 : #line 9624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31087 : (TARGET_APX_NDD
31088 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31089 : && peep2_reg_dead_p (3, operands[0])
31090 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31091 : && !reg_overlap_mentioned_p (operands[0], operands[2])))
31092 : {
31093 : *pmatch_len_ = 2;
31094 : res = gen_peephole2_102 (insn, operands);
31095 : if (res != NULL_RTX)
31096 : return res;
31097 : }
31098 : if (rtx_equal_p (x6, operands[2])
31099 : &&
31100 : #line 9679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31101 : (TARGET_APX_NDD
31102 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31103 : && peep2_reg_dead_p (3, operands[0])
31104 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31105 : && !reg_overlap_mentioned_p (operands[0], operands[2])))
31106 : {
31107 : *pmatch_len_ = 2;
31108 : res = gen_peephole2_104 (insn, operands);
31109 : if (res != NULL_RTX)
31110 : return res;
31111 : }
31112 : break;
31113 :
31114 : case 4:
31115 : if (
31116 : #line 10292 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31117 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31118 : && peep2_reg_dead_p (3, operands[0])
31119 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31120 : && !reg_overlap_mentioned_p (operands[0], operands[2])))
31121 : {
31122 : *pmatch_len_ = 2;
31123 : res = gen_peephole2_116 (insn, operands);
31124 : if (res != NULL_RTX)
31125 : return res;
31126 : }
31127 : break;
31128 :
31129 : case 5:
31130 : if (
31131 : #line 10337 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31132 : (TARGET_APX_NDD
31133 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31134 : && peep2_reg_dead_p (3, operands[0])
31135 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31136 : && !reg_overlap_mentioned_p (operands[0], operands[2])))
31137 : {
31138 : *pmatch_len_ = 2;
31139 : res = gen_peephole2_118 (insn, operands);
31140 : if (res != NULL_RTX)
31141 : return res;
31142 : }
31143 : break;
31144 :
31145 : case 6:
31146 : if (
31147 : #line 10717 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31148 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31149 : && peep2_reg_dead_p (3, operands[0])
31150 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31151 : && !reg_overlap_mentioned_p (operands[0], operands[2])))
31152 : {
31153 : *pmatch_len_ = 2;
31154 : res = gen_peephole2_130 (insn, operands);
31155 : if (res != NULL_RTX)
31156 : return res;
31157 : }
31158 : break;
31159 :
31160 : case 7:
31161 : if (
31162 : #line 9137 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31163 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31164 : && peep2_reg_dead_p (3, operands[0])
31165 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31166 : && !reg_overlap_mentioned_p (operands[0], operands[2])))
31167 : {
31168 : *pmatch_len_ = 2;
31169 : res = gen_peephole2_92 (insn, operands);
31170 : if (res != NULL_RTX)
31171 : return res;
31172 : }
31173 : break;
31174 :
31175 : case 8:
31176 : if (
31177 : #line 9163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31178 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31179 : && peep2_reg_dead_p (3, operands[0])
31180 : && peep2_reg_dead_p (4, operands[5])
31181 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31182 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31183 : && !reg_overlap_mentioned_p (operands[5], operands[1])))
31184 : {
31185 : *pmatch_len_ = 3;
31186 : res = gen_peephole2_96 (insn, operands);
31187 : if (res != NULL_RTX)
31188 : return res;
31189 : }
31190 : break;
31191 :
31192 : case 9:
31193 : if (
31194 : #line 9858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31195 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31196 : && peep2_reg_dead_p (3, operands[0])
31197 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31198 : && !reg_overlap_mentioned_p (operands[0], operands[2])))
31199 : {
31200 : *pmatch_len_ = 2;
31201 : res = gen_peephole2_110 (insn, operands);
31202 : if (res != NULL_RTX)
31203 : return res;
31204 : }
31205 : break;
31206 :
31207 : case 10:
31208 : if (
31209 : #line 9884 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31210 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31211 : && peep2_reg_dead_p (3, operands[0])
31212 : && peep2_reg_dead_p (4, operands[5])
31213 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31214 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31215 : && !reg_overlap_mentioned_p (operands[5], operands[1])))
31216 : {
31217 : *pmatch_len_ = 3;
31218 : res = gen_peephole2_114 (insn, operands);
31219 : if (res != NULL_RTX)
31220 : return res;
31221 : }
31222 : break;
31223 :
31224 : default:
31225 : break;
31226 : }
31227 : }
31228 : if (peep2_current_count >= 4
31229 : && pattern1209 (x3,
31230 : E_SImode) == 0
31231 : &&
31232 : #line 15174 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31233 : (REGNO (operands[0]) != REGNO (operands[2])
31234 : && !reg_mentioned_p (operands[0], operands[1])
31235 : && !reg_mentioned_p (operands[2], operands[1])))
31236 : {
31237 : *pmatch_len_ = 3;
31238 : res = gen_peephole2_171 (insn, operands);
31239 : if (res != NULL_RTX)
31240 : return res;
31241 : }
31242 : if (general_reg_operand (operands[1], E_SImode))
31243 : {
31244 : x7 = XEXP (x4, 1);
31245 : if (GET_CODE (x7) == NEG
31246 : && GET_MODE (x7) == E_SImode
31247 : && pattern1353 (x3) == 0)
31248 : {
31249 : x5 = PATTERN (peep2_next_insn (2));
31250 : if (GET_CODE (x5) == SET
31251 : && pattern1354 (x5) == 0)
31252 : {
31253 : *pmatch_len_ = 2;
31254 : res = gen_peephole2_177 (insn, operands);
31255 : if (res != NULL_RTX)
31256 : return res;
31257 : }
31258 : }
31259 : }
31260 : }
31261 : }
31262 : if (GET_CODE (x3) != SET)
31263 : return NULL;
31264 : if (register_operand (operands[1], E_SImode))
31265 : {
31266 : res = peephole2_12 (x1, insn, pmatch_len_);
31267 : if (res != NULL_RTX)
31268 : return res;
31269 : }
31270 : if (!immediate_operand (operands[1], E_SImode))
31271 : return NULL;
31272 : switch (pattern964 (x3,
31273 : E_DImode,
31274 : E_SImode))
31275 : {
31276 : case 0:
31277 : if (!(
31278 : #line 11861 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31279 : (REGNO (operands[3]) != AX_REG
31280 : && REGNO (operands[0]) != REGNO (operands[2])
31281 : && REGNO (operands[0]) != REGNO (operands[3])
31282 : && (REGNO (operands[0]) == REGNO (operands[4])
31283 : || REGNO (operands[0]) == DX_REG
31284 : || peep2_reg_dead_p (3, operands[0]))) &&
31285 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31286 : (!TARGET_64BIT)))
31287 : return NULL;
31288 : *pmatch_len_ = 2;
31289 : return gen_peephole2_134 (insn, operands);
31290 :
31291 : case 1:
31292 : if (!(
31293 : #line 11883 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31294 : (REGNO (operands[3]) != DX_REG
31295 : && REGNO (operands[0]) != REGNO (operands[2])
31296 : && REGNO (operands[0]) != REGNO (operands[3])
31297 : && (REGNO (operands[0]) == REGNO (operands[4])
31298 : || REGNO (operands[0]) == REGNO (operands[5])
31299 : || peep2_reg_dead_p (3, operands[0]))
31300 : && (REGNO (operands[2]) == REGNO (operands[4])
31301 : || REGNO (operands[2]) == REGNO (operands[5])
31302 : || peep2_reg_dead_p (3, operands[2]))) &&
31303 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31304 : (!TARGET_64BIT)))
31305 : return NULL;
31306 : *pmatch_len_ = 2;
31307 : return gen_peephole2_136 (insn, operands);
31308 :
31309 : case 2:
31310 : x5 = PATTERN (peep2_next_insn (2));
31311 : x8 = XVECEXP (x5, 0, 1);
31312 : x9 = XEXP (x8, 0);
31313 : if (!rtx_equal_p (x9, operands[2]))
31314 : return NULL;
31315 : x10 = XVECEXP (x5, 0, 0);
31316 : x11 = XEXP (x10, 1);
31317 : switch (GET_CODE (x11))
31318 : {
31319 : case SMUL_HIGHPART:
31320 : if (pattern1807 (x11) != 0
31321 : || !
31322 : #line 12022 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31323 : (REGNO (operands[3]) != AX_REG
31324 : && REGNO (operands[0]) != REGNO (operands[2])
31325 : && REGNO (operands[0]) != REGNO (operands[3])
31326 : && (REGNO (operands[0]) == REGNO (operands[4])
31327 : || peep2_reg_dead_p (3, operands[0]))))
31328 : return NULL;
31329 : *pmatch_len_ = 2;
31330 : return gen_peephole2_138 (insn, operands);
31331 :
31332 : case UMUL_HIGHPART:
31333 : if (pattern1807 (x11) != 0
31334 : || !
31335 : #line 12022 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31336 : (REGNO (operands[3]) != AX_REG
31337 : && REGNO (operands[0]) != REGNO (operands[2])
31338 : && REGNO (operands[0]) != REGNO (operands[3])
31339 : && (REGNO (operands[0]) == REGNO (operands[4])
31340 : || peep2_reg_dead_p (3, operands[0]))))
31341 : return NULL;
31342 : *pmatch_len_ = 2;
31343 : return gen_peephole2_139 (insn, operands);
31344 :
31345 : case ZERO_EXTEND:
31346 : if (GET_MODE (x11) != E_DImode
31347 : || !general_reg_operand (operands[4], E_DImode))
31348 : return NULL;
31349 : x12 = XEXP (x11, 0);
31350 : if (GET_MODE (x12) != E_SImode)
31351 : return NULL;
31352 : switch (GET_CODE (x12))
31353 : {
31354 : case SMUL_HIGHPART:
31355 : x13 = XEXP (x12, 0);
31356 : if (!rtx_equal_p (x13, operands[2]))
31357 : return NULL;
31358 : x14 = XEXP (x12, 1);
31359 : if (!rtx_equal_p (x14, operands[0])
31360 : || !
31361 : #line 12043 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31362 : (TARGET_64BIT
31363 : && REGNO (operands[3]) != AX_REG
31364 : && REGNO (operands[0]) != REGNO (operands[2])
31365 : && REGNO (operands[2]) != REGNO (operands[3])
31366 : && REGNO (operands[0]) != REGNO (operands[3])
31367 : && (REGNO (operands[0]) == REGNO (operands[4])
31368 : || peep2_reg_dead_p (3, operands[0]))))
31369 : return NULL;
31370 : *pmatch_len_ = 2;
31371 : return gen_peephole2_142 (insn, operands);
31372 :
31373 : case UMUL_HIGHPART:
31374 : x13 = XEXP (x12, 0);
31375 : if (!rtx_equal_p (x13, operands[2]))
31376 : return NULL;
31377 : x14 = XEXP (x12, 1);
31378 : if (!rtx_equal_p (x14, operands[0])
31379 : || !
31380 : #line 12043 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31381 : (TARGET_64BIT
31382 : && REGNO (operands[3]) != AX_REG
31383 : && REGNO (operands[0]) != REGNO (operands[2])
31384 : && REGNO (operands[2]) != REGNO (operands[3])
31385 : && REGNO (operands[0]) != REGNO (operands[3])
31386 : && (REGNO (operands[0]) == REGNO (operands[4])
31387 : || peep2_reg_dead_p (3, operands[0]))))
31388 : return NULL;
31389 : *pmatch_len_ = 2;
31390 : return gen_peephole2_143 (insn, operands);
31391 :
31392 : default:
31393 : return NULL;
31394 : }
31395 :
31396 : default:
31397 : return NULL;
31398 : }
31399 :
31400 : default:
31401 : return NULL;
31402 : }
31403 : }
31404 :
31405 : rtx_insn *
31406 : peephole2_27 (rtx x1 ATTRIBUTE_UNUSED,
31407 : rtx_insn *insn ATTRIBUTE_UNUSED,
31408 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31409 : {
31410 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31411 : rtx x2, x3, x4, x5, x6;
31412 : rtx_insn *res ATTRIBUTE_UNUSED;
31413 : if (!memory_operand (operands[1], E_SImode)
31414 : || !register_operand (operands[0], E_SImode))
31415 : return NULL;
31416 : x2 = PATTERN (peep2_next_insn (1));
31417 : switch (GET_CODE (x2))
31418 : {
31419 : case PARALLEL:
31420 : if (XVECLEN (x2, 0) != 2)
31421 : return NULL;
31422 : x3 = XVECEXP (x2, 0, 0);
31423 : if (GET_CODE (x3) != SET)
31424 : return NULL;
31425 : x4 = PATTERN (peep2_next_insn (2));
31426 : if (GET_CODE (x4) != SET)
31427 : return NULL;
31428 : x5 = XEXP (x3, 1);
31429 : switch (GET_CODE (x5))
31430 : {
31431 : case PLUS:
31432 : case MINUS:
31433 : case AND:
31434 : case IOR:
31435 : case XOR:
31436 : if (peep2_current_count < 4)
31437 : return NULL;
31438 : operands[3] = x5;
31439 : res = peephole2_26 (x1, insn, pmatch_len_);
31440 : if (res != NULL_RTX)
31441 : return res;
31442 : if (GET_CODE (x5) != XOR
31443 : || pattern1362 (x2,
31444 : E_SImode) != 0
31445 : || pattern1833 (x4,
31446 : E_SImode) != 0
31447 : || !
31448 : #line 29541 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31449 : (TARGET_APX_NDD
31450 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31451 : && REGNO (operands[3]) == REGNO (operands[0])
31452 : && (rtx_equal_p (operands[0], operands[5])
31453 : ? rtx_equal_p (operands[2], operands[6])
31454 : : rtx_equal_p (operands[2], operands[5])
31455 : && rtx_equal_p (operands[0], operands[6]))
31456 : && peep2_reg_dead_p (3, operands[4])
31457 : && peep2_reg_dead_p (4, operands[0])
31458 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31459 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31460 : && (SImode != QImode
31461 : || immediate_operand (operands[2], QImode)
31462 : || any_QIreg_operand (operands[2], QImode))))
31463 : return NULL;
31464 : *pmatch_len_ = 3;
31465 : return gen_peephole2_345 (insn, operands);
31466 :
31467 : case COMPARE:
31468 : if (pattern1269 (x2,
31469 : E_SImode) != 0
31470 : || pattern1516 (x2) != 0)
31471 : return NULL;
31472 : x6 = XEXP (x4, 0);
31473 : if (rtx_equal_p (x6, operands[1])
31474 : &&
31475 : #line 29371 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31476 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31477 : && peep2_reg_dead_p (3, operands[0])
31478 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31479 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31480 : && ix86_match_ccmode (peep2_next_insn (1),
31481 : (GET_CODE (operands[3]) == PLUS
31482 : || GET_CODE (operands[3]) == MINUS)
31483 : ? CCGOCmode : CCNOmode)))
31484 : {
31485 : *pmatch_len_ = 2;
31486 : res = gen_peephole2_325 (insn, operands);
31487 : if (res != NULL_RTX)
31488 : return res;
31489 : }
31490 : if (peep2_current_count < 4
31491 : || pattern1834 (x6,
31492 : E_SImode) != 0
31493 : || !
31494 : #line 29694 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31495 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31496 : && peep2_reg_dead_p (3, operands[0])
31497 : && peep2_reg_dead_p (4, operands[4])
31498 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31499 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31500 : && !reg_overlap_mentioned_p (operands[4], operands[1])
31501 : && ix86_match_ccmode (peep2_next_insn (1),
31502 : (GET_CODE (operands[3]) == PLUS
31503 : || GET_CODE (operands[3]) == MINUS)
31504 : ? CCGOCmode : CCNOmode)))
31505 : return NULL;
31506 : *pmatch_len_ = 3;
31507 : return gen_peephole2_357 (insn, operands);
31508 :
31509 : default:
31510 : return NULL;
31511 : }
31512 :
31513 : case SET:
31514 : if (pattern855 (x2,
31515 : E_SImode) != 0
31516 : || !
31517 : #line 29730 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31518 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31519 : && (REGNO (operands[4]) == REGNO (operands[0])
31520 : || REGNO (operands[4]) == REGNO (operands[3]))
31521 : && (rtx_equal_p (operands[REGNO (operands[4]) == REGNO (operands[0])
31522 : ? 3 : 0], operands[5])
31523 : ? rtx_equal_p (operands[2], operands[6])
31524 : : rtx_equal_p (operands[2], operands[5])
31525 : && rtx_equal_p (operands[REGNO (operands[4]) == REGNO (operands[0])
31526 : ? 3 : 0], operands[6]))
31527 : && peep2_reg_dead_p (4, operands[4])
31528 : && peep2_reg_dead_p (5, operands[REGNO (operands[4]) == REGNO (operands[0])
31529 : ? 3 : 0])
31530 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31531 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31532 : && !reg_overlap_mentioned_p (operands[3], operands[0])
31533 : && !reg_overlap_mentioned_p (operands[3], operands[1])
31534 : && !reg_overlap_mentioned_p (operands[3], operands[2])
31535 : && (SImode != QImode
31536 : || immediate_operand (operands[2], QImode)
31537 : || any_QIreg_operand (operands[2], QImode))))
31538 : return NULL;
31539 : *pmatch_len_ = 4;
31540 : return gen_peephole2_361 (insn, operands);
31541 :
31542 : default:
31543 : return NULL;
31544 : }
31545 : }
31546 :
31547 : rtx_insn *
31548 : peephole2_32 (rtx x1 ATTRIBUTE_UNUSED,
31549 : rtx_insn *insn ATTRIBUTE_UNUSED,
31550 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31551 : {
31552 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31553 : rtx x2, x3, x4, x5;
31554 : rtx_insn *res ATTRIBUTE_UNUSED;
31555 : if (peep2_current_count >= 2)
31556 : {
31557 : x2 = PATTERN (peep2_next_insn (1));
31558 : if (GET_CODE (x2) == SET)
31559 : {
31560 : x3 = XEXP (x2, 1);
31561 : if (x3 == const_int_rtx[MAX_SAVED_CONST_INT + 0])
31562 : {
31563 : x4 = XEXP (x2, 0);
31564 : operands[2] = x4;
31565 : if (memory_operand (operands[2], E_SImode))
31566 : {
31567 : if (peep2_current_count >= 3)
31568 : {
31569 : x5 = PATTERN (peep2_next_insn (2));
31570 : if (pattern1270 (x5,
31571 : E_SImode) == 0
31572 : &&
31573 : #line 28183 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31574 : (optimize_insn_for_size_p () && peep2_regno_dead_p (0, FLAGS_REG)))
31575 : {
31576 : *pmatch_len_ = 3;
31577 : res = gen_peephole2_241 (insn, operands);
31578 : if (res != NULL_RTX)
31579 : return res;
31580 : }
31581 : }
31582 : if (
31583 : #line 28199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31584 : (optimize_insn_for_size_p () && peep2_regno_dead_p (0, FLAGS_REG)))
31585 : {
31586 : *pmatch_len_ = 1;
31587 : res = gen_peephole2_243 (insn, operands);
31588 : if (res != NULL_RTX)
31589 : return res;
31590 : }
31591 : }
31592 : }
31593 : }
31594 : }
31595 : if (!
31596 : #line 28212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31597 : (optimize_insn_for_size_p () && peep2_regno_dead_p (0, FLAGS_REG)))
31598 : return NULL;
31599 : *pmatch_len_ = 0;
31600 : return gen_peephole2_245 (insn, operands);
31601 : }
31602 :
31603 : rtx_insn *
31604 : peephole2_36 (rtx x1 ATTRIBUTE_UNUSED,
31605 : rtx_insn *insn ATTRIBUTE_UNUSED,
31606 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31607 : {
31608 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31609 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
31610 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
31611 : rtx x18;
31612 : rtx_insn *res ATTRIBUTE_UNUSED;
31613 : x2 = XEXP (x1, 1);
31614 : operands[1] = x2;
31615 : if (!general_operand (operands[1], E_QImode))
31616 : return NULL;
31617 : x3 = PATTERN (peep2_next_insn (1));
31618 : x4 = XVECEXP (x3, 0, 1);
31619 : if (GET_CODE (x4) != SET)
31620 : return NULL;
31621 : x5 = XEXP (x4, 1);
31622 : if (GET_CODE (x5) != UNSPEC_VOLATILE
31623 : || XVECLEN (x5, 0) != 1
31624 : || XINT (x5, 1) != 109
31625 : || GET_MODE (x5) != E_QImode)
31626 : return NULL;
31627 : x6 = XVECEXP (x5, 0, 0);
31628 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
31629 : return NULL;
31630 : x7 = XVECEXP (x3, 0, 2);
31631 : if (GET_CODE (x7) != SET)
31632 : return NULL;
31633 : x8 = XEXP (x7, 1);
31634 : if (GET_CODE (x8) != UNSPEC_VOLATILE
31635 : || XVECLEN (x8, 0) != 1
31636 : || XINT (x8, 1) != 109
31637 : || GET_MODE (x8) != E_CCZmode)
31638 : return NULL;
31639 : x9 = XVECEXP (x8, 0, 0);
31640 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
31641 : return NULL;
31642 : x10 = XEXP (x7, 0);
31643 : if (GET_CODE (x10) != REG
31644 : || REGNO (x10) != 17
31645 : || GET_MODE (x10) != E_CCZmode)
31646 : return NULL;
31647 : x11 = XVECEXP (x3, 0, 0);
31648 : x12 = XEXP (x11, 1);
31649 : x13 = XVECEXP (x12, 0, 0);
31650 : operands[2] = x13;
31651 : if (!memory_operand (operands[2], E_QImode))
31652 : return NULL;
31653 : x14 = XVECEXP (x12, 0, 2);
31654 : operands[3] = x14;
31655 : if (!register_operand (operands[3], E_QImode)
31656 : || pattern1715 (x3) != 0)
31657 : return NULL;
31658 : x15 = PATTERN (peep2_next_insn (2));
31659 : if (pattern1548 (x15) != 0)
31660 : return NULL;
31661 : x16 = XEXP (x15, 1);
31662 : x17 = XEXP (x16, 0);
31663 : operands[5] = x17;
31664 : if (!register_operand (operands[5], E_QImode))
31665 : return NULL;
31666 : x18 = XEXP (x16, 1);
31667 : operands[6] = x18;
31668 : if (!general_operand (operands[6], E_QImode)
31669 : || !
31670 : #line 521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
31671 : ((rtx_equal_p (operands[0], operands[5])
31672 : && rtx_equal_p (operands[1], operands[6]))
31673 : || (rtx_equal_p (operands[0], operands[6])
31674 : && rtx_equal_p (operands[1], operands[5]))))
31675 : return NULL;
31676 : *pmatch_len_ = 2;
31677 : return gen_peephole2_439 (insn, operands);
31678 : }
31679 :
31680 : rtx_insn *
31681 : peephole2_42 (rtx x1 ATTRIBUTE_UNUSED,
31682 : rtx_insn *insn ATTRIBUTE_UNUSED,
31683 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31684 : {
31685 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31686 : rtx x2, x3, x4, x5, x6, x7, x8;
31687 : rtx_insn *res ATTRIBUTE_UNUSED;
31688 : x2 = XVECEXP (x1, 0, 1);
31689 : if (pattern237 (x2,
31690 : E_CCmode,
31691 : 17) != 0)
31692 : return NULL;
31693 : x3 = XVECEXP (x1, 0, 0);
31694 : x4 = XEXP (x3, 1);
31695 : switch (XWINT (x4, 0))
31696 : {
31697 : case 0L:
31698 : res = peephole2_41 (x1, insn, pmatch_len_);
31699 : if (res != NULL_RTX)
31700 : return res;
31701 : break;
31702 :
31703 : case 1L:
31704 : x5 = XEXP (x3, 0);
31705 : if (GET_CODE (x5) == ZERO_EXTRACT
31706 : && pattern1079 (x5) == 0
31707 : &&
31708 : #line 20020 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31709 : (TARGET_64BIT && !TARGET_USE_BT))
31710 : {
31711 : *pmatch_len_ = 0;
31712 : res = gen_peephole2_189 (insn, operands);
31713 : if (res != NULL_RTX)
31714 : return res;
31715 : }
31716 : break;
31717 :
31718 : default:
31719 : break;
31720 : }
31721 : if (peep2_current_count < 2
31722 : || peep2_current_count < 3)
31723 : return NULL;
31724 : x5 = XEXP (x3, 0);
31725 : operands[0] = x5;
31726 : x6 = PATTERN (peep2_next_insn (1));
31727 : if (pattern423 (x6,
31728 : UNSPEC_VOLATILE,
31729 : 3) != 0)
31730 : return NULL;
31731 : x7 = XVECEXP (x6, 0, 1);
31732 : if (GET_CODE (x7) != SET)
31733 : return NULL;
31734 : x8 = PATTERN (peep2_next_insn (2));
31735 : if (pattern1548 (x8) != 0)
31736 : return NULL;
31737 : switch (GET_MODE (operands[0]))
31738 : {
31739 : case E_SImode:
31740 : if (!register_operand (operands[0], E_SImode))
31741 : return NULL;
31742 : operands[1] = x4;
31743 : switch (pattern1836 (x6,
31744 : E_SImode))
31745 : {
31746 : case 0:
31747 : if (
31748 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
31749 : (REGNO (operands[0]) == REGNO (operands[2])))
31750 : {
31751 : *pmatch_len_ = 2;
31752 : res = gen_peephole2_443 (insn, operands);
31753 : if (res != NULL_RTX)
31754 : return res;
31755 : }
31756 : break;
31757 :
31758 : case 1:
31759 : if (
31760 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
31761 : (REGNO (operands[0]) == REGNO (operands[2])))
31762 : {
31763 : *pmatch_len_ = 2;
31764 : res = gen_peephole2_445 (insn, operands);
31765 : if (res != NULL_RTX)
31766 : return res;
31767 : }
31768 : break;
31769 :
31770 : case 2:
31771 : if (
31772 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
31773 : (REGNO (operands[0]) == REGNO (operands[2])))
31774 : {
31775 : *pmatch_len_ = 2;
31776 : res = gen_peephole2_447 (insn, operands);
31777 : if (res != NULL_RTX)
31778 : return res;
31779 : }
31780 : break;
31781 :
31782 : case 3:
31783 : if ((
31784 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
31785 : (REGNO (operands[0]) == REGNO (operands[2])) &&
31786 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31787 : (TARGET_64BIT)))
31788 : {
31789 : *pmatch_len_ = 2;
31790 : res = gen_peephole2_449 (insn, operands);
31791 : if (res != NULL_RTX)
31792 : return res;
31793 : }
31794 : break;
31795 :
31796 : default:
31797 : break;
31798 : }
31799 : operands[2] = x4;
31800 : if (pattern1788 (x6,
31801 : E_SImode) != 0
31802 : || !
31803 : #line 754 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
31804 : (peep2_reg_dead_p (3, operands[0])
31805 : && (unsigned HOST_WIDE_INT) INTVAL (operands[2])
31806 : == -(unsigned HOST_WIDE_INT) INTVAL (operands[3])
31807 : && !reg_overlap_mentioned_p (operands[0], operands[1])))
31808 : return NULL;
31809 : *pmatch_len_ = 2;
31810 : return gen_peephole2_457 (insn, operands);
31811 :
31812 : case E_DImode:
31813 : if (!register_operand (operands[0], E_DImode))
31814 : return NULL;
31815 : operands[1] = x4;
31816 : switch (pattern1836 (x6,
31817 : E_DImode))
31818 : {
31819 : case 0:
31820 : if ((
31821 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
31822 : (REGNO (operands[0]) == REGNO (operands[2])) &&
31823 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31824 : (TARGET_64BIT)))
31825 : {
31826 : *pmatch_len_ = 2;
31827 : res = gen_peephole2_444 (insn, operands);
31828 : if (res != NULL_RTX)
31829 : return res;
31830 : }
31831 : break;
31832 :
31833 : case 1:
31834 : if ((
31835 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
31836 : (REGNO (operands[0]) == REGNO (operands[2])) &&
31837 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31838 : (TARGET_64BIT)))
31839 : {
31840 : *pmatch_len_ = 2;
31841 : res = gen_peephole2_446 (insn, operands);
31842 : if (res != NULL_RTX)
31843 : return res;
31844 : }
31845 : break;
31846 :
31847 : case 2:
31848 : if ((
31849 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
31850 : (REGNO (operands[0]) == REGNO (operands[2])) &&
31851 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31852 : (TARGET_64BIT)))
31853 : {
31854 : *pmatch_len_ = 2;
31855 : res = gen_peephole2_448 (insn, operands);
31856 : if (res != NULL_RTX)
31857 : return res;
31858 : }
31859 : break;
31860 :
31861 : case 3:
31862 : if ((
31863 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
31864 : (REGNO (operands[0]) == REGNO (operands[2])) &&
31865 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31866 : (TARGET_64BIT)))
31867 : {
31868 : *pmatch_len_ = 2;
31869 : res = gen_peephole2_450 (insn, operands);
31870 : if (res != NULL_RTX)
31871 : return res;
31872 : }
31873 : break;
31874 :
31875 : default:
31876 : break;
31877 : }
31878 : operands[2] = x4;
31879 : if (pattern1788 (x6,
31880 : E_DImode) != 0
31881 : || !(
31882 : #line 754 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
31883 : (peep2_reg_dead_p (3, operands[0])
31884 : && (unsigned HOST_WIDE_INT) INTVAL (operands[2])
31885 : == -(unsigned HOST_WIDE_INT) INTVAL (operands[3])
31886 : && !reg_overlap_mentioned_p (operands[0], operands[1])) &&
31887 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31888 : (TARGET_64BIT)))
31889 : return NULL;
31890 : *pmatch_len_ = 2;
31891 : return gen_peephole2_458 (insn, operands);
31892 :
31893 : case E_QImode:
31894 : if (pattern1789 (x4,
31895 : E_QImode) != 0
31896 : || !
31897 : #line 754 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
31898 : (peep2_reg_dead_p (3, operands[0])
31899 : && (unsigned HOST_WIDE_INT) INTVAL (operands[2])
31900 : == -(unsigned HOST_WIDE_INT) INTVAL (operands[3])
31901 : && !reg_overlap_mentioned_p (operands[0], operands[1])))
31902 : return NULL;
31903 : *pmatch_len_ = 2;
31904 : return gen_peephole2_455 (insn, operands);
31905 :
31906 : case E_HImode:
31907 : if (pattern1789 (x4,
31908 : E_HImode) != 0
31909 : || !
31910 : #line 754 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
31911 : (peep2_reg_dead_p (3, operands[0])
31912 : && (unsigned HOST_WIDE_INT) INTVAL (operands[2])
31913 : == -(unsigned HOST_WIDE_INT) INTVAL (operands[3])
31914 : && !reg_overlap_mentioned_p (operands[0], operands[1])))
31915 : return NULL;
31916 : *pmatch_len_ = 2;
31917 : return gen_peephole2_456 (insn, operands);
31918 :
31919 : default:
31920 : return NULL;
31921 : }
31922 : }
31923 :
31924 : rtx_insn *
31925 : peephole2_50 (rtx x1 ATTRIBUTE_UNUSED,
31926 : rtx_insn *insn ATTRIBUTE_UNUSED,
31927 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31928 : {
31929 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31930 : rtx x2, x3, x4, x5, x6, x7, x8;
31931 : rtx_insn *res ATTRIBUTE_UNUSED;
31932 : x2 = XVECEXP (x1, 0, 1);
31933 : x3 = XEXP (x2, 0);
31934 : if (GET_CODE (x3) != MEM
31935 : || GET_MODE (x3) != E_BLKmode)
31936 : return NULL;
31937 : x4 = XEXP (x3, 0);
31938 : if (GET_CODE (x4) != SCRATCH)
31939 : return NULL;
31940 : x5 = XVECEXP (x1, 0, 0);
31941 : x6 = XEXP (x5, 1);
31942 : x7 = XEXP (x6, 1);
31943 : operands[1] = x7;
31944 : x8 = XEXP (x6, 0);
31945 : if (!rtx_equal_p (x8, operands[0]))
31946 : return NULL;
31947 : switch (GET_MODE (operands[0]))
31948 : {
31949 : case E_SImode:
31950 : if (!register_operand (operands[0], E_SImode)
31951 : || GET_MODE (x6) != E_SImode
31952 : || !x86_64_nonmemory_operand (operands[1], E_SImode)
31953 : || !(
31954 : #line 28435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31955 : (peep2_regno_dead_p (0, FLAGS_REG)) &&
31956 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31957 : (Pmode == SImode)))
31958 : return NULL;
31959 : *pmatch_len_ = 0;
31960 : return gen_peephole2_257 (insn, operands);
31961 :
31962 : case E_DImode:
31963 : if (!register_operand (operands[0], E_DImode)
31964 : || GET_MODE (x6) != E_DImode
31965 : || !x86_64_nonmemory_operand (operands[1], E_DImode)
31966 : || !(
31967 : #line 28435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31968 : (peep2_regno_dead_p (0, FLAGS_REG)) &&
31969 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31970 : (Pmode == DImode)))
31971 : return NULL;
31972 : *pmatch_len_ = 0;
31973 : return gen_peephole2_258 (insn, operands);
31974 :
31975 : default:
31976 : return NULL;
31977 : }
31978 : }
31979 :
31980 : rtx_insn *
31981 : peephole2_52 (rtx x1 ATTRIBUTE_UNUSED,
31982 : rtx_insn *insn ATTRIBUTE_UNUSED,
31983 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31984 : {
31985 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31986 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
31987 : rtx x10, x11, x12, x13, x14;
31988 : rtx_insn *res ATTRIBUTE_UNUSED;
31989 : if (peep2_current_count < 3)
31990 : return NULL;
31991 : x2 = XVECEXP (x1, 0, 0);
31992 : x3 = XEXP (x2, 1);
31993 : operands[2] = x3;
31994 : x4 = XEXP (x2, 0);
31995 : operands[0] = x4;
31996 : x5 = XEXP (x3, 1);
31997 : operands[1] = x5;
31998 : x6 = XEXP (x3, 0);
31999 : if (!rtx_equal_p (x6, operands[0]))
32000 : return NULL;
32001 : x7 = PATTERN (peep2_next_insn (1));
32002 : if (GET_CODE (x7) != SET)
32003 : return NULL;
32004 : x8 = XEXP (x7, 1);
32005 : if (!rtx_equal_p (x8, operands[0]))
32006 : return NULL;
32007 : x9 = XEXP (x7, 0);
32008 : if (!rtx_equal_p (x9, operands[1]))
32009 : return NULL;
32010 : x10 = PATTERN (peep2_next_insn (2));
32011 : if (GET_CODE (x10) != SET)
32012 : return NULL;
32013 : x11 = XEXP (x10, 1);
32014 : if (GET_CODE (x11) != COMPARE)
32015 : return NULL;
32016 : x12 = XEXP (x11, 1);
32017 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
32018 : return NULL;
32019 : x13 = XEXP (x10, 0);
32020 : if (GET_CODE (x13) != REG
32021 : || REGNO (x13) != 17)
32022 : return NULL;
32023 : x14 = XEXP (x11, 0);
32024 : if (!rtx_equal_p (x14, operands[0]))
32025 : return NULL;
32026 : switch (GET_MODE (operands[0]))
32027 : {
32028 : case E_QImode:
32029 : if (!register_operand (operands[0], E_QImode)
32030 : || !plusminuslogic_operator (operands[2], E_QImode)
32031 : || !memory_operand (operands[1], E_QImode)
32032 : || !
32033 : #line 29470 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32034 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32035 : && COMMUTATIVE_ARITH_P (operands[2])
32036 : && peep2_reg_dead_p (3, operands[0])
32037 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32038 : && ix86_match_ccmode (peep2_next_insn (2),
32039 : GET_CODE (operands[2]) == PLUS
32040 : ? CCGOCmode : CCNOmode)))
32041 : return NULL;
32042 : *pmatch_len_ = 2;
32043 : return gen_peephole2_335 (insn, operands);
32044 :
32045 : case E_HImode:
32046 : if (!register_operand (operands[0], E_HImode)
32047 : || !plusminuslogic_operator (operands[2], E_HImode)
32048 : || !memory_operand (operands[1], E_HImode)
32049 : || !
32050 : #line 29470 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32051 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32052 : && COMMUTATIVE_ARITH_P (operands[2])
32053 : && peep2_reg_dead_p (3, operands[0])
32054 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32055 : && ix86_match_ccmode (peep2_next_insn (2),
32056 : GET_CODE (operands[2]) == PLUS
32057 : ? CCGOCmode : CCNOmode)))
32058 : return NULL;
32059 : *pmatch_len_ = 2;
32060 : return gen_peephole2_336 (insn, operands);
32061 :
32062 : case E_SImode:
32063 : if (!register_operand (operands[0], E_SImode)
32064 : || !plusminuslogic_operator (operands[2], E_SImode)
32065 : || !memory_operand (operands[1], E_SImode)
32066 : || !
32067 : #line 29470 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32068 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32069 : && COMMUTATIVE_ARITH_P (operands[2])
32070 : && peep2_reg_dead_p (3, operands[0])
32071 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32072 : && ix86_match_ccmode (peep2_next_insn (2),
32073 : GET_CODE (operands[2]) == PLUS
32074 : ? CCGOCmode : CCNOmode)))
32075 : return NULL;
32076 : *pmatch_len_ = 2;
32077 : return gen_peephole2_337 (insn, operands);
32078 :
32079 : case E_DImode:
32080 : if (!register_operand (operands[0], E_DImode)
32081 : || !plusminuslogic_operator (operands[2], E_DImode)
32082 : || !memory_operand (operands[1], E_DImode)
32083 : || !(
32084 : #line 29470 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32085 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32086 : && COMMUTATIVE_ARITH_P (operands[2])
32087 : && peep2_reg_dead_p (3, operands[0])
32088 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32089 : && ix86_match_ccmode (peep2_next_insn (2),
32090 : GET_CODE (operands[2]) == PLUS
32091 : ? CCGOCmode : CCNOmode)) &&
32092 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32093 : (TARGET_64BIT)))
32094 : return NULL;
32095 : *pmatch_len_ = 2;
32096 : return gen_peephole2_338 (insn, operands);
32097 :
32098 : default:
32099 : return NULL;
32100 : }
32101 : }
|