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 255853 : pattern6 (rtx x1, machine_mode i1)
57 : {
58 255853 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
59 255853 : int res ATTRIBUTE_UNUSED;
60 255853 : if (!register_operand (operands[0], i1)
61 234385 : || GET_MODE (x1) != i1
62 234324 : || !register_mmxmem_operand (operands[1], i1)
63 463935 : || !register_mmxmem_operand (operands[2], i1))
64 78469 : return -1;
65 : return 0;
66 : }
67 :
68 : int
69 69759 : pattern14 (rtx x1)
70 : {
71 69759 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
72 69759 : int res ATTRIBUTE_UNUSED;
73 69759 : switch (GET_MODE (operands[0]))
74 : {
75 40351 : case E_SImode:
76 40351 : if (!nonimmediate_operand (operands[0], E_SImode)
77 40308 : || GET_MODE (x1) != E_SImode
78 80659 : || !nonimmediate_operand (operands[1], E_SImode))
79 12864 : return -1;
80 : return 0;
81 :
82 24059 : case E_DImode:
83 24059 : if (!nonimmediate_operand (operands[0], E_DImode)
84 24037 : || GET_MODE (x1) != E_DImode
85 48096 : || !nonimmediate_operand (operands[1], E_DImode))
86 6964 : return -1;
87 : return 1;
88 :
89 : default:
90 : return -1;
91 : }
92 : }
93 :
94 : int
95 236705 : pattern22 (rtx x1, int *pnum_clobbers)
96 : {
97 236705 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
98 236705 : rtx x2, x3, x4, x5, x6, x7;
99 236705 : int res ATTRIBUTE_UNUSED;
100 236705 : if (pnum_clobbers == NULL)
101 : return -1;
102 233976 : x2 = XEXP (x1, 0);
103 233976 : operands[0] = x2;
104 233976 : x3 = XEXP (x1, 1);
105 233976 : x4 = XEXP (x3, 0);
106 233976 : switch (GET_CODE (x4))
107 : {
108 104957 : case REG:
109 104957 : case SUBREG:
110 104957 : return pattern19 (x3); /* [-1, 1] */
111 :
112 22410 : case PLUS:
113 22410 : x5 = XEXP (x4, 0);
114 22410 : operands[1] = x5;
115 22410 : x6 = XEXP (x4, 1);
116 22410 : operands[2] = x6;
117 22410 : switch (GET_MODE (operands[0]))
118 : {
119 5025 : case E_SImode:
120 5025 : if (!register_operand (operands[0], E_SImode)
121 5025 : || pattern21 (x3,
122 : E_SImode) != 0)
123 170 : return -1;
124 : return 2;
125 :
126 17341 : case E_DImode:
127 17341 : if (!register_operand (operands[0], E_DImode)
128 17341 : || pattern21 (x3,
129 : E_DImode) != 0)
130 3034 : return -1;
131 : return 3;
132 :
133 : default:
134 : return -1;
135 : }
136 :
137 15350 : case MINUS:
138 15350 : x5 = XEXP (x4, 0);
139 15350 : operands[1] = x5;
140 15350 : x6 = XEXP (x4, 1);
141 15350 : operands[2] = x6;
142 15350 : x7 = XEXP (x3, 1);
143 15350 : if (!rtx_equal_p (x7, operands[1]))
144 : return -1;
145 0 : switch (GET_MODE (operands[0]))
146 : {
147 0 : case E_SImode:
148 0 : if (!register_operand (operands[0], E_SImode)
149 0 : || pattern21 (x3,
150 : E_SImode) != 0)
151 0 : return -1;
152 : return 4;
153 :
154 0 : case E_DImode:
155 0 : if (!register_operand (operands[0], E_DImode)
156 0 : || pattern21 (x3,
157 : E_DImode) != 0)
158 0 : return -1;
159 : return 5;
160 :
161 : default:
162 : return -1;
163 : }
164 :
165 : default:
166 : return -1;
167 : }
168 : }
169 :
170 : int
171 4260628 : pattern38 (rtx x1, int *pnum_clobbers)
172 : {
173 4260628 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
174 4260628 : rtx x2, x3, x4, x5, x6, x7;
175 4260628 : int res ATTRIBUTE_UNUSED;
176 4260628 : x2 = XEXP (x1, 1);
177 4260628 : x3 = XEXP (x2, 0);
178 4260628 : operands[1] = x3;
179 4260628 : x4 = XEXP (x2, 1);
180 4260628 : switch (GET_CODE (x4))
181 : {
182 : case CONST_INT:
183 : case CONST_WIDE_INT:
184 : case CONST_POLY_INT:
185 : case CONST_FIXED:
186 : case CONST_DOUBLE:
187 : case CONST_VECTOR:
188 : case CONST:
189 : case REG:
190 : case SUBREG:
191 : case LABEL_REF:
192 : case SYMBOL_REF:
193 : case HIGH:
194 : return 0;
195 :
196 3153 : case AND:
197 3153 : if (pnum_clobbers == NULL
198 3153 : || GET_MODE (x4) != E_QImode)
199 : return -1;
200 2552 : x5 = XEXP (x1, 0);
201 2552 : operands[0] = x5;
202 2552 : if (!register_operand (operands[0], E_TImode)
203 0 : || GET_MODE (x2) != E_TImode
204 2552 : || !register_operand (operands[1], E_TImode))
205 2552 : return -1;
206 0 : x6 = XEXP (x4, 0);
207 0 : operands[2] = x6;
208 0 : if (!register_operand (operands[2], E_QImode))
209 : return -1;
210 0 : x7 = XEXP (x4, 1);
211 0 : operands[3] = x7;
212 0 : if (!const_int_operand (operands[3], E_QImode))
213 : return -1;
214 : return 1;
215 :
216 : default:
217 : return -1;
218 : }
219 : }
220 :
221 : int
222 731518 : pattern42 (rtx x1)
223 : {
224 731518 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
225 731518 : rtx x2, x3, x4, x5;
226 731518 : int res ATTRIBUTE_UNUSED;
227 731518 : x2 = XEXP (x1, 1);
228 731518 : x3 = XEXP (x2, 0);
229 731518 : operands[1] = x3;
230 731518 : x4 = XEXP (x1, 0);
231 731518 : switch (GET_CODE (x4))
232 : {
233 731505 : case REG:
234 731505 : case SUBREG:
235 731505 : case MEM:
236 731505 : operands[0] = x4;
237 731505 : return 0;
238 :
239 13 : case STRICT_LOW_PART:
240 13 : x5 = XEXP (x4, 0);
241 13 : operands[0] = x5;
242 13 : res = pattern41 (x2);
243 13 : if (res >= 0)
244 13 : return res + 1; /* [1, 2] */
245 : return -1;
246 :
247 : default:
248 : return -1;
249 : }
250 : }
251 :
252 : int
253 268257 : pattern48 (rtx x1)
254 : {
255 268257 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
256 268257 : rtx x2, x3, x4, x5, x6, x7, x8;
257 268257 : int res ATTRIBUTE_UNUSED;
258 268257 : x2 = XEXP (x1, 1);
259 268257 : x3 = XEXP (x2, 1);
260 268257 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
261 : return -1;
262 266562 : x4 = XEXP (x1, 0);
263 266562 : operands[0] = x4;
264 266562 : if (!flags_reg_operand (operands[0], E_VOIDmode))
265 : return -1;
266 266562 : operands[1] = x2;
267 266562 : if (!compare_operator (operands[1], E_VOIDmode))
268 : return -1;
269 266562 : x5 = XEXP (x2, 0);
270 266562 : x6 = XEXP (x5, 0);
271 266562 : operands[2] = x6;
272 266562 : if (!int_nonimmediate_operand (operands[2], E_VOIDmode))
273 : return -1;
274 207560 : x7 = XEXP (x5, 1);
275 207560 : operands[3] = x7;
276 207560 : if (!const_int_operand (operands[3], E_QImode))
277 : return -1;
278 207560 : x8 = XEXP (x5, 2);
279 207560 : operands[4] = x8;
280 207560 : if (!const_int_operand (operands[4], E_QImode))
281 : return -1;
282 197771 : switch (GET_MODE (x5))
283 : {
284 : case E_HImode:
285 : return 0;
286 :
287 : case E_SImode:
288 : return 1;
289 :
290 : case E_DImode:
291 : return 2;
292 :
293 : default:
294 : return -1;
295 : }
296 : }
297 :
298 : int
299 11368236 : pattern59 (rtx x1, machine_mode i1)
300 : {
301 11368236 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
302 11368236 : rtx x2, x3;
303 11368236 : int res ATTRIBUTE_UNUSED;
304 11368236 : x2 = XEXP (x1, 1);
305 11368236 : if (GET_MODE (x2) != i1)
306 : return -1;
307 3920067 : x3 = XEXP (x1, 0);
308 3920067 : if (GET_CODE (x3) != REG
309 3482489 : || REGNO (x3) != 17
310 7371000 : || GET_MODE (x3) != i1)
311 469134 : return -1;
312 : return 0;
313 : }
314 :
315 : int
316 244 : pattern60 (rtx x1, machine_mode i1)
317 : {
318 244 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
319 244 : rtx x2, x3, x4;
320 244 : int res ATTRIBUTE_UNUSED;
321 244 : x2 = XEXP (x1, 1);
322 244 : if (GET_MODE (x2) != i1)
323 : return -1;
324 244 : x3 = XVECEXP (x2, 0, 0);
325 244 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
326 : return -1;
327 244 : x4 = XEXP (x1, 0);
328 244 : if (GET_CODE (x4) != REG
329 244 : || REGNO (x4) != 17
330 488 : || GET_MODE (x4) != i1)
331 0 : return -1;
332 : return 0;
333 : }
334 :
335 : int
336 48576 : pattern65 (rtx x1)
337 : {
338 48576 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
339 48576 : rtx x2, x3, x4, x5;
340 48576 : int res ATTRIBUTE_UNUSED;
341 48576 : x2 = XEXP (x1, 0);
342 48576 : operands[0] = x2;
343 48576 : x3 = XEXP (x1, 1);
344 48576 : x4 = XVECEXP (x3, 0, 0);
345 48576 : operands[1] = x4;
346 48576 : x5 = XVECEXP (x3, 0, 1);
347 48576 : operands[2] = x5;
348 48576 : switch (GET_MODE (operands[0]))
349 : {
350 402 : case E_HFmode:
351 402 : return pattern64 (x3,
352 402 : E_HFmode); /* [-1, 0] */
353 :
354 31644 : case E_SFmode:
355 31644 : if (pattern64 (x3,
356 : E_SFmode) != 0)
357 : return -1;
358 : return 1;
359 :
360 5750 : case E_DFmode:
361 5750 : if (pattern64 (x3,
362 : E_DFmode) != 0)
363 : return -1;
364 : return 2;
365 :
366 : default:
367 : return -1;
368 : }
369 : }
370 :
371 : int
372 163090 : pattern74 (rtx x1)
373 : {
374 163090 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
375 163090 : rtx x2, x3, x4, x5, x6, x7, x8;
376 163090 : int res ATTRIBUTE_UNUSED;
377 163090 : x2 = XEXP (x1, 0);
378 163090 : operands[0] = x2;
379 163090 : x3 = XEXP (x1, 1);
380 163090 : x4 = XVECEXP (x3, 0, 0);
381 163090 : switch (GET_CODE (x4))
382 : {
383 150514 : case CONST_INT:
384 150514 : case CONST_WIDE_INT:
385 150514 : case CONST_POLY_INT:
386 150514 : case CONST_FIXED:
387 150514 : case CONST_DOUBLE:
388 150514 : case CONST_VECTOR:
389 150514 : case CONST:
390 150514 : case REG:
391 150514 : case SUBREG:
392 150514 : case MEM:
393 150514 : case LABEL_REF:
394 150514 : case SYMBOL_REF:
395 150514 : case HIGH:
396 150514 : operands[1] = x4;
397 150514 : x5 = XVECEXP (x3, 0, 2);
398 150514 : if (GET_CODE (x5) != CONST_INT)
399 : return -1;
400 : return 0;
401 :
402 132 : case US_MINUS:
403 132 : x6 = XEXP (x4, 0);
404 132 : operands[1] = x6;
405 132 : x7 = XEXP (x4, 1);
406 132 : operands[2] = x7;
407 132 : x8 = XVECEXP (x3, 0, 1);
408 132 : operands[3] = x8;
409 132 : x5 = XVECEXP (x3, 0, 2);
410 132 : operands[4] = x5;
411 132 : if (!const_0_to_7_operand (operands[4], E_SImode))
412 : return -1;
413 132 : switch (GET_MODE (operands[0]))
414 : {
415 44 : case E_HImode:
416 44 : res = pattern72 (x3);
417 44 : if (res >= 0)
418 16 : return res + 1; /* [1, 2] */
419 : return -1;
420 :
421 22 : case E_QImode:
422 22 : if (pattern73 (x3,
423 : E_V8HImode,
424 : E_QImode) != 0)
425 : return -1;
426 : return 3;
427 :
428 : default:
429 : return -1;
430 : }
431 :
432 : default:
433 : return -1;
434 : }
435 : }
436 :
437 : int
438 39811 : pattern93 (rtx x1, int *pnum_clobbers)
439 : {
440 39811 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
441 39811 : rtx x2, x3, x4, x5, x6, x7;
442 39811 : int res ATTRIBUTE_UNUSED;
443 39811 : if (pnum_clobbers == NULL)
444 : return -1;
445 39811 : x2 = XEXP (x1, 1);
446 39811 : x3 = XEXP (x2, 0);
447 39811 : if (GET_MODE (x3) != E_TImode)
448 : return -1;
449 14239 : x4 = XEXP (x3, 0);
450 14239 : if (GET_CODE (x4) != ASHIFT
451 11212 : || GET_MODE (x4) != E_TImode)
452 : return -1;
453 11212 : x5 = XEXP (x4, 0);
454 11212 : if (GET_CODE (x5) != ZERO_EXTEND
455 11187 : || GET_MODE (x5) != E_TImode)
456 : return -1;
457 11187 : x6 = XEXP (x3, 1);
458 11187 : if (GET_CODE (x6) != ZERO_EXTEND
459 11036 : || GET_MODE (x6) != E_TImode)
460 : return -1;
461 11036 : x7 = XEXP (x1, 0);
462 11036 : operands[0] = x7;
463 11036 : return pattern92 (x2,
464 : E_TImode,
465 11036 : E_DImode); /* [-1, 1] */
466 : }
467 :
468 : int
469 0 : pattern101 (rtx x1)
470 : {
471 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
472 0 : rtx x2, x3, x4, x5;
473 0 : int res ATTRIBUTE_UNUSED;
474 0 : x2 = XEXP (x1, 1);
475 0 : if (GET_MODE (x2) != E_CCCmode)
476 : return -1;
477 0 : x3 = XEXP (x1, 0);
478 0 : if (GET_CODE (x3) != REG
479 0 : || REGNO (x3) != 17
480 0 : || GET_MODE (x3) != E_CCCmode)
481 : return -1;
482 0 : x4 = XVECEXP (x2, 0, 0);
483 0 : operands[0] = x4;
484 0 : if (!register_operand (operands[0], E_SImode))
485 : return -1;
486 0 : x5 = XVECEXP (x2, 0, 1);
487 0 : operands[1] = x5;
488 0 : if (!register_operand (operands[1], E_DImode))
489 : return -1;
490 : return 0;
491 : }
492 :
493 : int
494 11096 : pattern110 (rtx x1, int *pnum_clobbers)
495 : {
496 11096 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
497 11096 : rtx x2, x3, x4, x5;
498 11096 : int res ATTRIBUTE_UNUSED;
499 11096 : if (pnum_clobbers == NULL)
500 : return -1;
501 11096 : x2 = XEXP (x1, 0);
502 11096 : operands[2] = x2;
503 11096 : x3 = XEXP (x2, 0);
504 11096 : if (GET_CODE (x3) != REG
505 11096 : || REGNO (x3) != 17)
506 : return -1;
507 7354 : x4 = XEXP (x2, 1);
508 7354 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
509 : return -1;
510 7354 : x5 = XEXP (x1, 1);
511 7354 : operands[1] = x5;
512 7354 : switch (GET_MODE (operands[0]))
513 : {
514 : case E_SImode:
515 : return 0;
516 :
517 3542 : case E_DImode:
518 3542 : return 1;
519 :
520 : default:
521 : return -1;
522 : }
523 : }
524 :
525 : int
526 429 : pattern117 (rtx x1, int *pnum_clobbers, machine_mode i1, machine_mode i2)
527 : {
528 429 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
529 429 : rtx x2, x3;
530 429 : int res ATTRIBUTE_UNUSED;
531 429 : if (pnum_clobbers == NULL)
532 : return -1;
533 429 : x2 = XEXP (x1, 0);
534 429 : if (GET_MODE (x2) != E_SImode
535 428 : || !register_operand (operands[0], i2)
536 855 : || GET_MODE (x1) != i2)
537 3 : return -1;
538 426 : x3 = XEXP (x2, 0);
539 426 : operands[1] = x3;
540 426 : if (!nonimmediate_operand (operands[1], i1))
541 : return -1;
542 : return 0;
543 : }
544 :
545 : int
546 14229 : pattern123 (rtx x1)
547 : {
548 14229 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
549 14229 : rtx x2, x3, x4;
550 14229 : int res ATTRIBUTE_UNUSED;
551 14229 : x2 = XEXP (x1, 1);
552 14229 : x3 = XEXP (x2, 0);
553 14229 : operands[3] = x3;
554 14229 : if (!const_int_operand (operands[3], E_QImode))
555 : return -1;
556 3781 : x4 = XEXP (x2, 1);
557 3781 : operands[2] = x4;
558 3781 : if (!register_operand (operands[2], E_QImode))
559 : return -1;
560 3258 : return pattern14 (x1); /* [-1, 1] */
561 : }
562 :
563 : int
564 1234 : pattern127 (rtx x1)
565 : {
566 1234 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
567 1234 : rtx x2, x3, x4;
568 1234 : int res ATTRIBUTE_UNUSED;
569 1234 : x2 = XEXP (x1, 0);
570 1234 : operands[0] = x2;
571 1234 : x3 = XEXP (x1, 1);
572 1234 : x4 = XVECEXP (x3, 0, 0);
573 1234 : operands[1] = x4;
574 1234 : switch (GET_MODE (operands[0]))
575 : {
576 463 : case E_SImode:
577 463 : if (!memory_operand (operands[0], E_SImode)
578 440 : || GET_MODE (x3) != E_SImode
579 903 : || !register_operand (operands[1], E_SImode))
580 85 : return -1;
581 : return 0;
582 :
583 146 : case E_DImode:
584 146 : if (!memory_operand (operands[0], E_DImode)
585 140 : || GET_MODE (x3) != E_DImode
586 286 : || !register_operand (operands[1], E_DImode))
587 15 : return -1;
588 : return 1;
589 :
590 : default:
591 : return -1;
592 : }
593 : }
594 :
595 : int
596 37740 : pattern138 (rtx x1)
597 : {
598 37740 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
599 37740 : rtx x2, x3;
600 37740 : int res ATTRIBUTE_UNUSED;
601 37740 : x2 = XEXP (x1, 2);
602 37740 : if (XWINT (x2, 0) != 1L)
603 : return -1;
604 7884 : x3 = XEXP (x1, 1);
605 7884 : if (!rtx_equal_p (x3, operands[1]))
606 : return -1;
607 1650 : switch (GET_MODE (operands[0]))
608 : {
609 128 : case E_V8HFmode:
610 128 : return pattern137 (x1,
611 128 : E_V8HFmode); /* [-1, 0] */
612 :
613 386 : case E_V4SFmode:
614 386 : if (pattern137 (x1,
615 : E_V4SFmode) != 0)
616 : return -1;
617 : return 1;
618 :
619 386 : case E_V2DFmode:
620 386 : if (pattern137 (x1,
621 : E_V2DFmode) != 0)
622 : return -1;
623 : return 2;
624 :
625 : default:
626 : return -1;
627 : }
628 : }
629 :
630 : int
631 16816 : pattern148 (rtx x1)
632 : {
633 16816 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
634 16816 : rtx x2, x3, x4, x5, x6;
635 16816 : int res ATTRIBUTE_UNUSED;
636 16816 : x2 = XEXP (x1, 0);
637 16816 : x3 = XEXP (x2, 0);
638 16816 : operands[1] = x3;
639 16816 : x4 = XEXP (x2, 1);
640 16816 : operands[2] = x4;
641 16816 : x5 = XEXP (x1, 1);
642 16816 : operands[3] = x5;
643 16816 : x6 = XEXP (x1, 2);
644 16816 : operands[4] = x6;
645 16816 : switch (GET_MODE (operands[0]))
646 : {
647 1432 : case E_V16HImode:
648 1432 : return pattern135 (x1,
649 : E_HImode,
650 1432 : E_V16HImode); /* [-1, 0] */
651 :
652 1167 : case E_V8HImode:
653 1167 : if (pattern135 (x1,
654 : E_QImode,
655 : E_V8HImode) != 0)
656 : return -1;
657 : return 1;
658 :
659 2841 : case E_V8SImode:
660 2841 : if (pattern135 (x1,
661 : E_QImode,
662 : E_V8SImode) != 0)
663 : return -1;
664 : return 2;
665 :
666 2775 : case E_V4SImode:
667 2775 : if (pattern135 (x1,
668 : E_QImode,
669 : E_V4SImode) != 0)
670 : return -1;
671 : return 3;
672 :
673 1663 : case E_V4DImode:
674 1663 : if (pattern135 (x1,
675 : E_QImode,
676 : E_V4DImode) != 0)
677 : return -1;
678 : return 4;
679 :
680 1162 : case E_V2DImode:
681 1162 : if (pattern135 (x1,
682 : E_QImode,
683 : E_V2DImode) != 0)
684 : return -1;
685 : return 5;
686 :
687 1585 : case E_V32HImode:
688 1585 : if (pattern135 (x1,
689 : E_SImode,
690 : E_V32HImode) != 0)
691 : return -1;
692 : return 6;
693 :
694 2763 : case E_V16SImode:
695 2763 : if (pattern135 (x1,
696 : E_HImode,
697 : E_V16SImode) != 0)
698 : return -1;
699 : return 7;
700 :
701 1402 : case E_V8DImode:
702 1402 : if (pattern135 (x1,
703 : E_QImode,
704 : E_V8DImode) != 0)
705 : return -1;
706 : return 8;
707 :
708 : default:
709 : return -1;
710 : }
711 : }
712 :
713 : int
714 17442 : pattern159 (rtx x1)
715 : {
716 17442 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
717 17442 : rtx x2, x3, x4, x5;
718 17442 : int res ATTRIBUTE_UNUSED;
719 17442 : x2 = XEXP (x1, 0);
720 17442 : operands[0] = x2;
721 17442 : x3 = XEXP (x1, 1);
722 17442 : x4 = XVECEXP (x3, 0, 0);
723 17442 : operands[1] = x4;
724 17442 : x5 = XVECEXP (x3, 0, 1);
725 17442 : operands[2] = x5;
726 17442 : switch (GET_MODE (operands[0]))
727 : {
728 74 : case E_V32HFmode:
729 74 : return pattern158 (x3,
730 74 : E_V32HFmode); /* [-1, 0] */
731 :
732 146 : case E_V16HFmode:
733 146 : if (pattern158 (x3,
734 : E_V16HFmode) != 0)
735 : return -1;
736 : return 1;
737 :
738 192 : case E_V8HFmode:
739 192 : if (pattern158 (x3,
740 : E_V8HFmode) != 0)
741 : return -1;
742 : return 2;
743 :
744 233 : case E_V16SFmode:
745 233 : if (pattern158 (x3,
746 : E_V16SFmode) != 0)
747 : return -1;
748 : return 3;
749 :
750 976 : case E_V8SFmode:
751 976 : if (pattern158 (x3,
752 : E_V8SFmode) != 0)
753 : return -1;
754 : return 4;
755 :
756 5955 : case E_V4SFmode:
757 5955 : if (pattern158 (x3,
758 : E_V4SFmode) != 0)
759 : return -1;
760 : return 5;
761 :
762 18 : case E_V8DFmode:
763 18 : if (pattern158 (x3,
764 : E_V8DFmode) != 0)
765 : return -1;
766 : return 6;
767 :
768 152 : case E_V4DFmode:
769 152 : if (pattern158 (x3,
770 : E_V4DFmode) != 0)
771 : return -1;
772 : return 7;
773 :
774 3018 : case E_V2DFmode:
775 3018 : if (pattern158 (x3,
776 : E_V2DFmode) != 0)
777 : return -1;
778 : return 8;
779 :
780 : default:
781 : return -1;
782 : }
783 : }
784 :
785 : int
786 520 : pattern171 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
787 : {
788 520 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
789 520 : int res ATTRIBUTE_UNUSED;
790 520 : if (!register_operand (operands[0], i3)
791 510 : || GET_MODE (x1) != i3
792 510 : || !register_operand (operands[1], i2)
793 1014 : || !nonimmediate_operand (operands[2], i1))
794 26 : return -1;
795 : return 0;
796 : }
797 :
798 : int
799 295 : pattern176 (rtx x1)
800 : {
801 295 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
802 295 : rtx x2, x3, x4;
803 295 : int res ATTRIBUTE_UNUSED;
804 295 : if (!register_operand (operands[0], E_V4SImode))
805 : return -1;
806 292 : x2 = XVECEXP (x1, 0, 0);
807 292 : operands[1] = x2;
808 292 : if (!register_operand (operands[1], E_V4SImode))
809 : return -1;
810 265 : x3 = XVECEXP (x1, 0, 1);
811 265 : operands[2] = x3;
812 265 : if (!register_operand (operands[2], E_V4SImode))
813 : return -1;
814 244 : x4 = XVECEXP (x1, 0, 2);
815 244 : operands[3] = x4;
816 244 : if (!vector_operand (operands[3], E_V4SImode))
817 : return -1;
818 : return 0;
819 : }
820 :
821 : int
822 5577 : pattern184 (rtx x1)
823 : {
824 5577 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
825 5577 : rtx x2, x3, x4, x5, x6;
826 5577 : int res ATTRIBUTE_UNUSED;
827 5577 : x2 = XEXP (x1, 0);
828 5577 : operands[0] = x2;
829 5577 : x3 = XEXP (x1, 1);
830 5577 : x4 = XVECEXP (x3, 0, 0);
831 5577 : operands[1] = x4;
832 5577 : x5 = XVECEXP (x3, 0, 1);
833 5577 : operands[2] = x5;
834 5577 : x6 = XVECEXP (x3, 0, 2);
835 5577 : operands[3] = x6;
836 5577 : switch (GET_MODE (operands[0]))
837 : {
838 2132 : case E_V8SImode:
839 2132 : return pattern178 (x3,
840 2132 : E_V8SImode); /* [-1, 0] */
841 :
842 1813 : case E_V4SImode:
843 1813 : if (pattern178 (x3,
844 : E_V4SImode) != 0)
845 : return -1;
846 : return 1;
847 :
848 1632 : case E_V16SImode:
849 1632 : if (pattern178 (x3,
850 : E_V16SImode) != 0)
851 : return -1;
852 : return 2;
853 :
854 : default:
855 : return -1;
856 : }
857 : }
858 :
859 : int
860 415156 : pattern190 (rtx x1, machine_mode i1)
861 : {
862 415156 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
863 415156 : int res ATTRIBUTE_UNUSED;
864 415156 : if (!register_operand (operands[0], i1)
865 397518 : || GET_MODE (x1) != i1
866 397518 : || !nonimmediate_operand (operands[1], i1)
867 796089 : || !const1_operand (operands[2], i1))
868 407906 : return -1;
869 : return 0;
870 : }
871 :
872 : int
873 20473 : pattern194 (rtx x1)
874 : {
875 20473 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
876 20473 : rtx x2, x3, x4, x5, x6;
877 20473 : int res ATTRIBUTE_UNUSED;
878 20473 : x2 = XEXP (x1, 0);
879 20473 : switch (XVECLEN (x2, 0))
880 : {
881 11971 : case 2:
882 11971 : x3 = XVECEXP (x2, 0, 0);
883 11971 : operands[1] = x3;
884 11971 : x4 = XVECEXP (x2, 0, 1);
885 11971 : operands[2] = x4;
886 11971 : x5 = XEXP (x1, 1);
887 11971 : operands[3] = x5;
888 11971 : switch (XINT (x2, 1))
889 : {
890 7 : case 222:
891 7 : switch (GET_MODE (operands[0]))
892 : {
893 7 : case E_V32HFmode:
894 7 : return pattern192 (x1,
895 7 : E_V32HFmode); /* [-1, 0] */
896 :
897 0 : case E_V16HFmode:
898 0 : if (pattern192 (x1,
899 : E_V16HFmode) != 0)
900 : return -1;
901 : return 1;
902 :
903 0 : case E_V8HFmode:
904 0 : if (pattern192 (x1,
905 : E_V8HFmode) != 0)
906 : return -1;
907 : return 2;
908 :
909 : default:
910 : return -1;
911 : }
912 :
913 7 : case 223:
914 7 : switch (GET_MODE (operands[0]))
915 : {
916 7 : case E_V32HFmode:
917 7 : if (pattern192 (x1,
918 : E_V32HFmode) != 0)
919 : return -1;
920 : return 3;
921 :
922 0 : case E_V16HFmode:
923 0 : if (pattern192 (x1,
924 : E_V16HFmode) != 0)
925 : return -1;
926 : return 4;
927 :
928 0 : case E_V8HFmode:
929 0 : if (pattern192 (x1,
930 : E_V8HFmode) != 0)
931 : return -1;
932 : return 5;
933 :
934 : default:
935 : return -1;
936 : }
937 :
938 : default:
939 : return -1;
940 : }
941 :
942 1591 : case 3:
943 1591 : x3 = XVECEXP (x2, 0, 0);
944 1591 : operands[1] = x3;
945 1591 : x4 = XVECEXP (x2, 0, 1);
946 1591 : operands[2] = x4;
947 1591 : x6 = XVECEXP (x2, 0, 2);
948 1591 : operands[3] = x6;
949 1591 : x5 = XEXP (x1, 1);
950 1591 : operands[4] = x5;
951 1591 : switch (XINT (x2, 1))
952 : {
953 8 : case 218:
954 8 : switch (GET_MODE (operands[0]))
955 : {
956 8 : case E_V32HFmode:
957 8 : if (pattern193 (x1,
958 : E_V32HFmode) != 0)
959 : return -1;
960 : return 6;
961 :
962 0 : case E_V16HFmode:
963 0 : if (pattern193 (x1,
964 : E_V16HFmode) != 0)
965 : return -1;
966 : return 7;
967 :
968 0 : case E_V8HFmode:
969 0 : if (pattern193 (x1,
970 : E_V8HFmode) != 0)
971 : return -1;
972 : return 8;
973 :
974 : default:
975 : return -1;
976 : }
977 :
978 8 : case 220:
979 8 : switch (GET_MODE (operands[0]))
980 : {
981 8 : case E_V32HFmode:
982 8 : if (pattern193 (x1,
983 : E_V32HFmode) != 0)
984 : return -1;
985 : return 9;
986 :
987 0 : case E_V16HFmode:
988 0 : if (pattern193 (x1,
989 : E_V16HFmode) != 0)
990 : return -1;
991 : return 10;
992 :
993 0 : case E_V8HFmode:
994 0 : if (pattern193 (x1,
995 : E_V8HFmode) != 0)
996 : return -1;
997 : return 11;
998 :
999 : default:
1000 : return -1;
1001 : }
1002 :
1003 : default:
1004 : return -1;
1005 : }
1006 :
1007 : default:
1008 : return -1;
1009 : }
1010 : }
1011 :
1012 : int
1013 30 : pattern211 (rtx x1)
1014 : {
1015 30 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1016 30 : rtx x2, x3, x4;
1017 30 : int res ATTRIBUTE_UNUSED;
1018 30 : x2 = XEXP (x1, 1);
1019 30 : x3 = XEXP (x2, 0);
1020 30 : operands[3] = x3;
1021 30 : if (!const_int_operand (operands[3], E_QImode))
1022 : return -1;
1023 17 : x4 = XEXP (x2, 1);
1024 17 : operands[2] = x4;
1025 17 : if (!nonimmediate_operand (operands[2], E_QImode))
1026 : return -1;
1027 17 : return pattern207 (x1); /* [-1, 3] */
1028 : }
1029 :
1030 : int
1031 43709 : pattern214 (rtx x1, machine_mode i1)
1032 : {
1033 43709 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1034 43709 : int res ATTRIBUTE_UNUSED;
1035 43709 : if (!register_operand (operands[0], i1)
1036 43601 : || GET_MODE (x1) != i1
1037 43601 : || !nonimmediate_operand (operands[1], i1)
1038 86904 : || !nonimmediate_operand (operands[2], i1))
1039 4110 : return -1;
1040 : return 0;
1041 : }
1042 :
1043 : int
1044 657146 : pattern217 (rtx x1)
1045 : {
1046 657146 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1047 657146 : rtx x2, x3;
1048 657146 : int res ATTRIBUTE_UNUSED;
1049 657146 : x2 = XEXP (x1, 0);
1050 657146 : operands[1] = x2;
1051 657146 : x3 = XEXP (x1, 1);
1052 657146 : operands[2] = x3;
1053 657146 : switch (GET_MODE (operands[0]))
1054 : {
1055 572658 : case E_DImode:
1056 572658 : return pattern213 (x1,
1057 572658 : E_DImode); /* [-1, 0] */
1058 :
1059 164 : case E_TImode:
1060 164 : if (pattern213 (x1,
1061 : E_TImode) != 0)
1062 : return -1;
1063 : return 1;
1064 :
1065 9578 : case E_QImode:
1066 9578 : if (pattern213 (x1,
1067 : E_QImode) != 0)
1068 : return -1;
1069 : return 2;
1070 :
1071 1283 : case E_HImode:
1072 1283 : if (pattern213 (x1,
1073 : E_HImode) != 0)
1074 : return -1;
1075 : return 3;
1076 :
1077 73463 : case E_SImode:
1078 73463 : if (pattern213 (x1,
1079 : E_SImode) != 0)
1080 : return -1;
1081 : return 4;
1082 :
1083 : default:
1084 : return -1;
1085 : }
1086 : }
1087 :
1088 : int
1089 84303 : pattern222 (rtx x1)
1090 : {
1091 84303 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1092 84303 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1093 84303 : rtx x10, x11;
1094 84303 : int res ATTRIBUTE_UNUSED;
1095 84303 : x2 = XVECEXP (x1, 0, 0);
1096 84303 : x3 = XEXP (x2, 1);
1097 84303 : if (GET_MODE (x3) != E_V4SFmode)
1098 : return -1;
1099 5788 : x4 = XEXP (x3, 0);
1100 5788 : if (GET_CODE (x4) != VEC_DUPLICATE
1101 1556 : || GET_MODE (x4) != E_V4SFmode)
1102 : return -1;
1103 1556 : x5 = XEXP (x4, 0);
1104 1556 : if (GET_CODE (x5) != FLOAT
1105 1395 : || GET_MODE (x5) != E_V2SFmode)
1106 : return -1;
1107 1293 : x6 = XEXP (x3, 2);
1108 1293 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
1109 : return -1;
1110 1293 : x7 = XVECEXP (x1, 0, 1);
1111 1293 : if (GET_CODE (x7) != CLOBBER)
1112 : return -1;
1113 1195 : x8 = XEXP (x2, 0);
1114 1195 : operands[0] = x8;
1115 1195 : if (!register_operand (operands[0], E_V4SFmode))
1116 : return -1;
1117 1192 : x9 = XEXP (x5, 0);
1118 1192 : operands[2] = x9;
1119 1192 : if (!register_mmxmem_operand (operands[2], E_V2SImode))
1120 : return -1;
1121 969 : x10 = XEXP (x3, 1);
1122 969 : operands[1] = x10;
1123 969 : if (!register_operand (operands[1], E_V4SFmode))
1124 : return -1;
1125 798 : x11 = XEXP (x7, 0);
1126 798 : operands[3] = x11;
1127 798 : if (!scratch_operand (operands[3], E_V4SFmode))
1128 : return -1;
1129 : return 0;
1130 : }
1131 :
1132 : int
1133 335759 : pattern239 (rtx x1)
1134 : {
1135 335759 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1136 335759 : rtx x2, x3;
1137 335759 : int res ATTRIBUTE_UNUSED;
1138 335759 : x2 = XEXP (x1, 0);
1139 335759 : operands[1] = x2;
1140 335759 : x3 = XEXP (x1, 1);
1141 335759 : operands[2] = x3;
1142 335759 : if (!register_operand (operands[2], E_QImode))
1143 : return -1;
1144 1610 : return pattern132 (x1); /* [-1, 1] */
1145 : }
1146 :
1147 : int
1148 8066139 : pattern244 (rtx x1)
1149 : {
1150 8066139 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1151 8066139 : rtx x2, x3;
1152 8066139 : int res ATTRIBUTE_UNUSED;
1153 8066139 : x2 = XEXP (x1, 0);
1154 8066139 : operands[1] = x2;
1155 8066139 : x3 = XEXP (x1, 1);
1156 8066139 : operands[2] = x3;
1157 8066139 : switch (GET_MODE (operands[0]))
1158 : {
1159 254 : case E_V64QImode:
1160 254 : return pattern190 (x1,
1161 254 : E_V64QImode); /* [-1, 0] */
1162 :
1163 727 : case E_V32QImode:
1164 727 : if (pattern190 (x1,
1165 : E_V32QImode) != 0)
1166 : return -1;
1167 : return 1;
1168 :
1169 13537 : case E_V16QImode:
1170 13537 : if (pattern190 (x1,
1171 : E_V16QImode) != 0)
1172 : return -1;
1173 : return 2;
1174 :
1175 304 : case E_V32HImode:
1176 304 : if (pattern190 (x1,
1177 : E_V32HImode) != 0)
1178 : return -1;
1179 : return 3;
1180 :
1181 2977 : case E_V16HImode:
1182 2977 : if (pattern190 (x1,
1183 : E_V16HImode) != 0)
1184 : return -1;
1185 : return 4;
1186 :
1187 24270 : case E_V8HImode:
1188 24270 : if (pattern190 (x1,
1189 : E_V8HImode) != 0)
1190 : return -1;
1191 : return 5;
1192 :
1193 3322 : case E_V16SImode:
1194 3322 : if (pattern190 (x1,
1195 : E_V16SImode) != 0)
1196 : return -1;
1197 : return 6;
1198 :
1199 8412 : case E_V8SImode:
1200 8412 : if (pattern190 (x1,
1201 : E_V8SImode) != 0)
1202 : return -1;
1203 : return 7;
1204 :
1205 196955 : case E_V4SImode:
1206 196955 : if (pattern190 (x1,
1207 : E_V4SImode) != 0)
1208 : return -1;
1209 : return 8;
1210 :
1211 1585 : case E_V8DImode:
1212 1585 : if (pattern190 (x1,
1213 : E_V8DImode) != 0)
1214 : return -1;
1215 : return 9;
1216 :
1217 3452 : case E_V4DImode:
1218 3452 : if (pattern190 (x1,
1219 : E_V4DImode) != 0)
1220 : return -1;
1221 : return 10;
1222 :
1223 94217 : case E_V2DImode:
1224 94217 : if (pattern190 (x1,
1225 : E_V2DImode) != 0)
1226 : return -1;
1227 : return 11;
1228 :
1229 : default:
1230 : return -1;
1231 : }
1232 : }
1233 :
1234 : int
1235 5 : pattern267 (rtx x1, int *pnum_clobbers)
1236 : {
1237 5 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1238 5 : rtx x2, x3, x4;
1239 5 : int res ATTRIBUTE_UNUSED;
1240 5 : if (pnum_clobbers == NULL)
1241 : return -1;
1242 5 : x2 = XEXP (x1, 0);
1243 5 : x3 = XEXP (x2, 0);
1244 5 : operands[0] = x3;
1245 5 : x4 = XEXP (x1, 1);
1246 5 : return pattern41 (x4); /* [-1, 1] */
1247 : }
1248 :
1249 : int
1250 79185 : pattern275 (rtx x1, machine_mode i1, machine_mode i2)
1251 : {
1252 79185 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1253 79185 : rtx x2;
1254 79185 : int res ATTRIBUTE_UNUSED;
1255 79185 : if (!register_operand (operands[0], i1)
1256 79185 : || GET_MODE (x1) != i1)
1257 : return -1;
1258 78087 : x2 = XEXP (x1, 0);
1259 78087 : if (GET_MODE (x2) != i2
1260 78087 : || !register_operand (operands[1], i1)
1261 148786 : || !register_mmxmem_operand (operands[2], i1))
1262 20150 : return -1;
1263 : return 0;
1264 : }
1265 :
1266 : int
1267 51697 : pattern281 (rtx x1)
1268 : {
1269 51697 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1270 51697 : rtx x2;
1271 51697 : int res ATTRIBUTE_UNUSED;
1272 51697 : switch (GET_MODE (operands[0]))
1273 : {
1274 9722 : case E_SImode:
1275 9722 : if (!register_operand (operands[0], E_SImode)
1276 9722 : || GET_MODE (x1) != E_SImode)
1277 : return -1;
1278 9492 : x2 = XEXP (x1, 0);
1279 9492 : switch (GET_MODE (x2))
1280 : {
1281 : case E_QImode:
1282 : return 0;
1283 :
1284 3793 : case E_HImode:
1285 3793 : return 1;
1286 :
1287 : default:
1288 : return -1;
1289 : }
1290 :
1291 18674 : case E_DImode:
1292 18674 : if (!register_operand (operands[0], E_DImode)
1293 18674 : || GET_MODE (x1) != E_DImode)
1294 : return -1;
1295 17267 : x2 = XEXP (x1, 0);
1296 17267 : switch (GET_MODE (x2))
1297 : {
1298 : case E_QImode:
1299 : return 2;
1300 :
1301 : case E_HImode:
1302 : return 3;
1303 :
1304 : case E_SImode:
1305 : return 4;
1306 :
1307 : default:
1308 : return -1;
1309 : }
1310 :
1311 : default:
1312 : return -1;
1313 : }
1314 : }
1315 :
1316 : int
1317 28346 : pattern295 (rtx x1, machine_mode i1)
1318 : {
1319 28346 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1320 28346 : rtx x2, x3, x4, x5;
1321 28346 : int res ATTRIBUTE_UNUSED;
1322 28346 : x2 = XEXP (x1, 0);
1323 28346 : if (GET_MODE (x2) != i1
1324 12406 : || !register_operand (operands[0], i1)
1325 40715 : || GET_MODE (x1) != i1)
1326 15977 : return -1;
1327 12369 : x3 = XEXP (x2, 0);
1328 12369 : operands[1] = x3;
1329 12369 : if (!nonimmediate_operand (operands[1], i1))
1330 : return -1;
1331 12356 : x4 = XEXP (x2, 1);
1332 12356 : operands[2] = x4;
1333 12356 : if (!const_int_operand (operands[2], E_QImode))
1334 : return -1;
1335 12153 : x5 = XEXP (x1, 1);
1336 12153 : operands[3] = x5;
1337 12153 : if (!const_int_operand (operands[3], E_QImode))
1338 : return -1;
1339 : return 0;
1340 : }
1341 :
1342 : int
1343 4592 : pattern303 (rtx x1)
1344 : {
1345 4592 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1346 4592 : int res ATTRIBUTE_UNUSED;
1347 4592 : switch (GET_MODE (operands[0]))
1348 : {
1349 1134 : case E_DImode:
1350 1134 : return pattern169 (x1,
1351 : E_DImode,
1352 1134 : E_V64QImode); /* [-1, 0] */
1353 :
1354 2233 : case E_SImode:
1355 2233 : if (!register_operand (operands[0], E_SImode)
1356 2233 : || GET_MODE (x1) != E_SImode)
1357 : return -1;
1358 2197 : switch (GET_MODE (operands[1]))
1359 : {
1360 994 : case E_V32QImode:
1361 994 : if (!register_operand (operands[1], E_V32QImode)
1362 994 : || !nonimmediate_operand (operands[2], E_V32QImode))
1363 89 : return -1;
1364 : return 1;
1365 :
1366 1203 : case E_V32HImode:
1367 1203 : if (!register_operand (operands[1], E_V32HImode)
1368 1203 : || !nonimmediate_operand (operands[2], E_V32HImode))
1369 132 : return -1;
1370 : return 2;
1371 :
1372 : default:
1373 : return -1;
1374 : }
1375 :
1376 : default:
1377 : return -1;
1378 : }
1379 : }
1380 :
1381 : int
1382 3347 : pattern314 (rtx x1)
1383 : {
1384 3347 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1385 3347 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1386 3347 : rtx x10;
1387 3347 : int res ATTRIBUTE_UNUSED;
1388 3347 : x2 = XEXP (x1, 0);
1389 3347 : x3 = XEXP (x2, 0);
1390 3347 : x4 = XEXP (x3, 0);
1391 3347 : if (GET_CODE (x4) != VEC_SELECT)
1392 : return -1;
1393 263 : x5 = XEXP (x4, 1);
1394 263 : if (GET_CODE (x5) != PARALLEL
1395 263 : || XVECLEN (x5, 0) != 1)
1396 : return -1;
1397 263 : x6 = XVECEXP (x5, 0, 0);
1398 263 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1399 : return -1;
1400 263 : x7 = XEXP (x1, 2);
1401 263 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
1402 : return -1;
1403 262 : x8 = XEXP (x4, 0);
1404 262 : operands[1] = x8;
1405 262 : x9 = XEXP (x3, 1);
1406 262 : operands[2] = x9;
1407 262 : x10 = XEXP (x1, 1);
1408 262 : if (!rtx_equal_p (x10, operands[1]))
1409 : return -1;
1410 261 : switch (GET_MODE (operands[0]))
1411 : {
1412 197 : case E_V8HFmode:
1413 197 : return pattern313 (x1,
1414 : E_HFmode,
1415 197 : E_V8HFmode); /* [-1, 0] */
1416 :
1417 8 : case E_V4SFmode:
1418 8 : if (pattern313 (x1,
1419 : E_SFmode,
1420 : E_V4SFmode) != 0)
1421 : return -1;
1422 : return 1;
1423 :
1424 56 : case E_V2DFmode:
1425 56 : if (pattern313 (x1,
1426 : E_DFmode,
1427 : E_V2DFmode) != 0)
1428 : return -1;
1429 : return 2;
1430 :
1431 : default:
1432 : return -1;
1433 : }
1434 : }
1435 :
1436 : int
1437 2383 : pattern328 (rtx x1)
1438 : {
1439 2383 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1440 2383 : rtx x2, x3, x4, x5, x6;
1441 2383 : int res ATTRIBUTE_UNUSED;
1442 2383 : x2 = XVECEXP (x1, 0, 0);
1443 2383 : switch (GET_CODE (x2))
1444 : {
1445 2109 : case REG:
1446 2109 : case SUBREG:
1447 2109 : case MEM:
1448 2109 : operands[1] = x2;
1449 2109 : switch (GET_MODE (operands[0]))
1450 : {
1451 : case E_V32HImode:
1452 : return 0;
1453 :
1454 114 : case E_V16SImode:
1455 114 : return 1;
1456 :
1457 160 : case E_V8DImode:
1458 160 : return 2;
1459 :
1460 114 : case E_V16HImode:
1461 114 : return 3;
1462 :
1463 365 : case E_V8SImode:
1464 365 : return 4;
1465 :
1466 374 : case E_V4DImode:
1467 374 : return 5;
1468 :
1469 114 : case E_V8HImode:
1470 114 : return 6;
1471 :
1472 553 : case E_V4SImode:
1473 553 : return 7;
1474 :
1475 244 : case E_V2DImode:
1476 244 : return 8;
1477 :
1478 : default:
1479 : return -1;
1480 : }
1481 :
1482 186 : case VEC_SELECT:
1483 186 : if (GET_MODE (x2) != E_V2SFmode)
1484 : return -1;
1485 126 : x3 = XEXP (x2, 1);
1486 126 : if (GET_CODE (x3) != PARALLEL
1487 126 : || XVECLEN (x3, 0) != 2)
1488 : return -1;
1489 126 : x4 = XVECEXP (x3, 0, 0);
1490 126 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1491 : return -1;
1492 126 : x5 = XVECEXP (x3, 0, 1);
1493 126 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
1494 126 : || !register_operand (operands[0], E_V2DImode)
1495 240 : || GET_MODE (x1) != E_V2DImode)
1496 12 : return -1;
1497 114 : x6 = XEXP (x2, 0);
1498 114 : operands[1] = x6;
1499 114 : if (!nonimmediate_operand (operands[1], E_V4SFmode))
1500 : return -1;
1501 : return 9;
1502 :
1503 : default:
1504 : return -1;
1505 : }
1506 : }
1507 :
1508 : int
1509 398 : pattern338 (rtx x1, machine_mode i1, machine_mode i2)
1510 : {
1511 398 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1512 398 : rtx x2, x3, x4, x5;
1513 398 : int res ATTRIBUTE_UNUSED;
1514 398 : if (GET_MODE (x1) != i2)
1515 : return -1;
1516 398 : x2 = XEXP (x1, 0);
1517 398 : if (GET_MODE (x2) != i2)
1518 : return -1;
1519 398 : x3 = XEXP (x2, 0);
1520 398 : if (GET_MODE (x3) != i1)
1521 : return -1;
1522 398 : x4 = XEXP (x1, 1);
1523 398 : if (GET_MODE (x4) != i2)
1524 : return -1;
1525 398 : x5 = XEXP (x4, 0);
1526 398 : if (GET_MODE (x5) != i1)
1527 0 : return -1;
1528 : return 0;
1529 : }
1530 :
1531 : int
1532 5661 : pattern341 (rtx x1)
1533 : {
1534 5661 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1535 5661 : rtx x2, x3, x4, x5, x6;
1536 5661 : int res ATTRIBUTE_UNUSED;
1537 5661 : x2 = XEXP (x1, 0);
1538 5661 : operands[0] = x2;
1539 5661 : x3 = XEXP (x1, 1);
1540 5661 : x4 = XEXP (x3, 1);
1541 5661 : x5 = XEXP (x4, 0);
1542 5661 : operands[2] = x5;
1543 5661 : if (!register_operand (operands[2], E_QImode))
1544 : return -1;
1545 4591 : x6 = XEXP (x4, 1);
1546 4591 : operands[3] = x6;
1547 4591 : if (!const_int_operand (operands[3], E_QImode))
1548 : return -1;
1549 4591 : switch (GET_MODE (operands[0]))
1550 : {
1551 3450 : case E_DImode:
1552 3450 : if (GET_MODE (x3) != E_DImode)
1553 : return -1;
1554 : return 0;
1555 :
1556 6 : case E_TImode:
1557 6 : if (!register_operand (operands[0], E_TImode)
1558 6 : || GET_MODE (x3) != E_TImode
1559 12 : || !register_operand (operands[1], E_TImode))
1560 0 : return -1;
1561 : return 1;
1562 :
1563 1005 : case E_SImode:
1564 1005 : if (!nonimmediate_operand (operands[0], E_SImode)
1565 1005 : || GET_MODE (x3) != E_SImode
1566 2010 : || !nonimmediate_operand (operands[1], E_SImode))
1567 264 : return -1;
1568 : return 2;
1569 :
1570 : default:
1571 : return -1;
1572 : }
1573 : }
1574 :
1575 : int
1576 618 : pattern348 (rtx x1, int *pnum_clobbers, rtx_code i1)
1577 : {
1578 618 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1579 618 : rtx x2, x3, x4, x5, x6, x7;
1580 618 : int res ATTRIBUTE_UNUSED;
1581 618 : if (pnum_clobbers == NULL)
1582 : return -1;
1583 617 : x2 = XVECEXP (x1, 0, 0);
1584 617 : x3 = XEXP (x2, 1);
1585 617 : x4 = XEXP (x3, 0);
1586 617 : if (GET_MODE (x4) != E_SImode)
1587 : return -1;
1588 427 : x5 = XVECEXP (x1, 0, 1);
1589 427 : if (GET_CODE (x5) != SET)
1590 : return -1;
1591 427 : x6 = XEXP (x5, 1);
1592 427 : if (GET_CODE (x6) != i1
1593 413 : || GET_MODE (x6) != E_SImode)
1594 : return -1;
1595 413 : x7 = XEXP (x2, 0);
1596 413 : operands[0] = x7;
1597 413 : if (!register_operand (operands[0], E_DImode)
1598 413 : || GET_MODE (x3) != E_DImode)
1599 : return -1;
1600 : return 0;
1601 : }
1602 :
1603 : int
1604 113 : pattern352 (rtx x1, machine_mode i1, machine_mode i2)
1605 : {
1606 113 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1607 113 : rtx x2;
1608 113 : int res ATTRIBUTE_UNUSED;
1609 113 : if (!register_operand (operands[0], i2)
1610 113 : || GET_MODE (x1) != i2)
1611 : return -1;
1612 113 : x2 = XEXP (x1, 0);
1613 113 : if (GET_MODE (x2) != i1
1614 113 : || !nonimmediate_operand (operands[1], i1))
1615 28 : return -1;
1616 : return 0;
1617 : }
1618 :
1619 : int
1620 789759 : pattern357 (rtx x1)
1621 : {
1622 789759 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1623 789759 : rtx x2;
1624 789759 : int res ATTRIBUTE_UNUSED;
1625 789759 : if (GET_CODE (x1) != CLOBBER)
1626 : return -1;
1627 669404 : x2 = XEXP (x1, 0);
1628 669404 : if (GET_CODE (x2) != REG
1629 669403 : || REGNO (x2) != 17
1630 1303292 : || GET_MODE (x2) != E_CCmode)
1631 35516 : return -1;
1632 : return 0;
1633 : }
1634 :
1635 : int
1636 39 : pattern359 (rtx x1, machine_mode i1, machine_mode i2)
1637 : {
1638 39 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1639 39 : rtx x2, x3, x4, x5, x6;
1640 39 : int res ATTRIBUTE_UNUSED;
1641 39 : if (!register_operand (operands[0], i2)
1642 39 : || GET_MODE (x1) != i2)
1643 : return -1;
1644 36 : x2 = XEXP (x1, 0);
1645 36 : if (GET_MODE (x2) != i2)
1646 : return -1;
1647 36 : x3 = XEXP (x2, 0);
1648 36 : if (GET_MODE (x3) != i2)
1649 : return -1;
1650 36 : x4 = XEXP (x3, 0);
1651 36 : if (GET_MODE (x4) != i2
1652 36 : || !nonimmediate_operand (operands[2], i1))
1653 0 : return -1;
1654 36 : x5 = XEXP (x2, 1);
1655 36 : if (GET_MODE (x5) != i2
1656 36 : || !nonimmediate_operand (operands[4], i1))
1657 0 : return -1;
1658 36 : x6 = XEXP (x1, 1);
1659 36 : if (GET_MODE (x6) != i2
1660 36 : || !nonimmediate_operand (operands[1], i1))
1661 10 : return -1;
1662 : return 0;
1663 : }
1664 :
1665 : int
1666 4719 : pattern364 (rtx x1, machine_mode i1)
1667 : {
1668 4719 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1669 4719 : rtx x2;
1670 4719 : int res ATTRIBUTE_UNUSED;
1671 4719 : if (!nonimmediate_operand (operands[0], i1)
1672 4719 : || GET_MODE (x1) != i1)
1673 : return -1;
1674 4719 : x2 = XEXP (x1, 0);
1675 4719 : if (GET_MODE (x2) != i1
1676 4719 : || !x86_64_general_operand (operands[1], i1))
1677 196 : return -1;
1678 : return 0;
1679 : }
1680 :
1681 : int
1682 267737 : pattern370 (rtx x1, rtx_code i1)
1683 : {
1684 267737 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1685 267737 : rtx x2, x3, x4, x5, x6, x7;
1686 267737 : int res ATTRIBUTE_UNUSED;
1687 267737 : x2 = XVECEXP (x1, 0, 0);
1688 267737 : x3 = XEXP (x2, 1);
1689 267737 : x4 = XEXP (x3, 1);
1690 267737 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1691 : return -1;
1692 255493 : x5 = XEXP (x3, 0);
1693 255493 : x6 = XEXP (x5, 0);
1694 255493 : switch (GET_CODE (x6))
1695 : {
1696 146569 : case REG:
1697 146569 : case SUBREG:
1698 146569 : case MEM:
1699 146569 : x7 = XEXP (x5, 1);
1700 146569 : operands[2] = x7;
1701 146569 : return 0;
1702 :
1703 2704 : case UNSPEC_VOLATILE:
1704 2704 : res = pattern369 (x1,
1705 : i1);
1706 2704 : if (res >= 0)
1707 2480 : return res + 1; /* [1, 4] */
1708 : return -1;
1709 :
1710 : default:
1711 : return -1;
1712 : }
1713 : }
1714 :
1715 : int
1716 12341 : pattern376 (rtx x1, int i1)
1717 : {
1718 12341 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1719 12341 : rtx x2, x3, x4, x5, x6, x7, x8;
1720 12341 : int res ATTRIBUTE_UNUSED;
1721 12341 : x2 = XVECEXP (x1, 0, 0);
1722 12341 : x3 = XEXP (x2, 1);
1723 12341 : x4 = XEXP (x3, 0);
1724 12341 : x5 = XEXP (x4, 0);
1725 12341 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
1726 : return -1;
1727 657 : x6 = XVECEXP (x1, 0, 1);
1728 657 : if (GET_CODE (x6) != CLOBBER)
1729 : return -1;
1730 496 : x7 = XEXP (x6, 0);
1731 496 : if (GET_CODE (x7) != REG
1732 496 : || REGNO (x7) != 17
1733 992 : || GET_MODE (x7) != E_CCmode)
1734 : return -1;
1735 496 : x8 = XEXP (x2, 0);
1736 496 : operands[0] = x8;
1737 496 : return pattern375 (x3); /* [-1, 2] */
1738 : }
1739 :
1740 : int
1741 146109 : pattern383 (rtx x1, machine_mode i1, machine_mode i2)
1742 : {
1743 146109 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1744 146109 : rtx x2;
1745 146109 : int res ATTRIBUTE_UNUSED;
1746 146109 : if (!register_operand (operands[0], i2)
1747 146109 : || GET_MODE (x1) != i2)
1748 : return -1;
1749 146109 : x2 = XEXP (x1, 0);
1750 146109 : if (GET_MODE (x2) != i2
1751 146109 : || !nonimmediate_operand (operands[1], i1))
1752 27477 : return -1;
1753 : return 0;
1754 : }
1755 :
1756 : int
1757 0 : pattern389 (machine_mode i1, machine_mode i2)
1758 : {
1759 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1760 0 : int res ATTRIBUTE_UNUSED;
1761 0 : if (!nonimmediate_operand (operands[3], i2)
1762 0 : || !nonimmediate_operand (operands[4], i1)
1763 0 : || !scratch_operand (operands[1], i1)
1764 0 : || !scratch_operand (operands[2], i1))
1765 0 : return -1;
1766 : return 0;
1767 : }
1768 :
1769 : int
1770 106593 : pattern396 (rtx x1)
1771 : {
1772 106593 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1773 106593 : rtx x2, x3;
1774 106593 : int res ATTRIBUTE_UNUSED;
1775 106593 : x2 = XVECEXP (x1, 0, 2);
1776 106593 : x3 = XEXP (x2, 0);
1777 106593 : operands[4] = x3;
1778 106593 : switch (GET_MODE (operands[0]))
1779 : {
1780 806 : case E_HImode:
1781 806 : return pattern395 (x1,
1782 806 : E_HImode); /* [-1, 0] */
1783 :
1784 27729 : case E_SImode:
1785 27729 : if (pattern395 (x1,
1786 : E_SImode) != 0)
1787 : return -1;
1788 : return 1;
1789 :
1790 78058 : case E_DImode:
1791 78058 : if (pattern395 (x1,
1792 : E_DImode) != 0)
1793 : return -1;
1794 : return 2;
1795 :
1796 : default:
1797 : return -1;
1798 : }
1799 : }
1800 :
1801 : int
1802 849405 : pattern402 (rtx x1)
1803 : {
1804 849405 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1805 849405 : rtx x2, x3, x4, x5;
1806 849405 : int res ATTRIBUTE_UNUSED;
1807 849405 : x2 = XEXP (x1, 0);
1808 849405 : x3 = XEXP (x2, 0);
1809 849405 : operands[1] = x3;
1810 849405 : x4 = XEXP (x2, 1);
1811 849405 : operands[2] = x4;
1812 849405 : if (!const248_operand (operands[2], E_VOIDmode))
1813 : return -1;
1814 14241 : x5 = XEXP (x1, 1);
1815 14241 : operands[3] = x5;
1816 14241 : switch (GET_MODE (operands[0]))
1817 : {
1818 765 : case E_QImode:
1819 765 : return pattern401 (x1,
1820 765 : E_QImode); /* [-1, 0] */
1821 :
1822 0 : case E_HImode:
1823 0 : if (pattern401 (x1,
1824 : E_HImode) != 0)
1825 : return -1;
1826 : return 1;
1827 :
1828 : default:
1829 : return -1;
1830 : }
1831 : }
1832 :
1833 : int
1834 3110 : pattern411 (rtx x1)
1835 : {
1836 3110 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1837 3110 : rtx x2, x3, x4, x5, x6, x7;
1838 3110 : int res ATTRIBUTE_UNUSED;
1839 3110 : x2 = XVECEXP (x1, 0, 1);
1840 3110 : if (GET_CODE (x2) != CLOBBER)
1841 : return -1;
1842 3109 : x3 = XEXP (x2, 0);
1843 3109 : if (GET_CODE (x3) != REG
1844 3109 : || REGNO (x3) != 17
1845 6145 : || GET_MODE (x3) != E_CCmode)
1846 : return -1;
1847 3036 : x4 = XVECEXP (x1, 0, 0);
1848 3036 : x5 = XEXP (x4, 0);
1849 3036 : operands[0] = x5;
1850 3036 : x6 = XEXP (x4, 1);
1851 3036 : x7 = XEXP (x6, 0);
1852 3036 : operands[1] = x7;
1853 3036 : return pattern410 (x6); /* [-1, 1] */
1854 : }
1855 :
1856 : int
1857 77952 : pattern418 (rtx x1)
1858 : {
1859 77952 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1860 77952 : rtx x2, x3, x4, x5, x6;
1861 77952 : int res ATTRIBUTE_UNUSED;
1862 77952 : x2 = XEXP (x1, 0);
1863 77952 : x3 = XEXP (x2, 1);
1864 77952 : if (GET_CODE (x3) != UNSPEC
1865 303 : || XVECLEN (x3, 0) != 1
1866 303 : || XINT (x3, 1) != 148)
1867 : return -1;
1868 295 : x4 = XVECEXP (x3, 0, 0);
1869 295 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1870 : return -1;
1871 295 : x5 = XEXP (x1, 1);
1872 295 : if (GET_CODE (x5) != UNSPEC
1873 295 : || XVECLEN (x5, 0) != 1
1874 295 : || XINT (x5, 1) != 148)
1875 : return -1;
1876 295 : x6 = XVECEXP (x5, 0, 0);
1877 295 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1878 0 : return -1;
1879 : return 0;
1880 : }
1881 :
1882 : int
1883 3939881 : pattern423 (rtx x1, rtx_code i1, int i2)
1884 : {
1885 3939881 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1886 3939881 : rtx x2, x3;
1887 3939881 : int res ATTRIBUTE_UNUSED;
1888 3939881 : if (GET_CODE (x1) != PARALLEL
1889 493275 : || XVECLEN (x1, 0) != i2)
1890 : return -1;
1891 297223 : x2 = XVECEXP (x1, 0, 0);
1892 297223 : if (GET_CODE (x2) != SET)
1893 : return -1;
1894 295037 : x3 = XEXP (x2, 1);
1895 295037 : if (GET_CODE (x3) != i1)
1896 266495 : return -1;
1897 : return 0;
1898 : }
1899 :
1900 : int
1901 4195758 : pattern428 (rtx x1, int *pnum_clobbers)
1902 : {
1903 4195758 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1904 4195758 : rtx x2, x3, x4;
1905 4195758 : int res ATTRIBUTE_UNUSED;
1906 4195758 : x2 = XEXP (x1, 0);
1907 4195758 : switch (GET_CODE (x2))
1908 : {
1909 4192746 : case REG:
1910 4192746 : case SUBREG:
1911 4192746 : case MEM:
1912 4192746 : operands[0] = x2;
1913 4192746 : return 0;
1914 :
1915 166 : case STRICT_LOW_PART:
1916 166 : if (pnum_clobbers == NULL)
1917 : return -1;
1918 166 : x3 = XEXP (x2, 0);
1919 166 : operands[0] = x3;
1920 166 : if (!nonmemory_operand (operands[2], E_QImode))
1921 : return -1;
1922 145 : x4 = XEXP (x1, 1);
1923 145 : res = pattern41 (x4);
1924 145 : if (res >= 0)
1925 101 : return res + 1; /* [1, 2] */
1926 : return -1;
1927 :
1928 : default:
1929 : return -1;
1930 : }
1931 : }
1932 :
1933 : int
1934 1508 : pattern437 (rtx x1, int *pnum_clobbers)
1935 : {
1936 1508 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1937 1508 : rtx x2, x3, x4, x5, x6, x7;
1938 1508 : int res ATTRIBUTE_UNUSED;
1939 1508 : if (pnum_clobbers == NULL)
1940 : return -1;
1941 1508 : x2 = XEXP (x1, 0);
1942 1508 : x3 = XEXP (x2, 0);
1943 1508 : x4 = XEXP (x3, 1);
1944 1508 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1945 : return -1;
1946 1390 : x5 = XEXP (x3, 0);
1947 1390 : operands[3] = x5;
1948 1390 : if (!int_nonimmediate_operand (operands[3], E_VOIDmode))
1949 : return -1;
1950 813 : x6 = XEXP (x2, 1);
1951 813 : operands[1] = x6;
1952 813 : x7 = XEXP (x1, 1);
1953 813 : operands[2] = x7;
1954 813 : switch (GET_MODE (operands[0]))
1955 : {
1956 : case E_QImode:
1957 : return 0;
1958 :
1959 0 : case E_HImode:
1960 0 : return 1;
1961 :
1962 : default:
1963 : return -1;
1964 : }
1965 : }
1966 :
1967 : int
1968 113 : pattern448 (rtx x1, machine_mode i1)
1969 : {
1970 113 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1971 113 : rtx x2, x3, x4;
1972 113 : int res ATTRIBUTE_UNUSED;
1973 113 : if (GET_MODE (x1) != i1)
1974 : return -1;
1975 113 : x2 = XEXP (x1, 0);
1976 113 : if (GET_MODE (x2) != i1)
1977 : return -1;
1978 113 : x3 = XEXP (x1, 1);
1979 113 : if (GET_MODE (x3) != i1)
1980 : return -1;
1981 113 : x4 = XEXP (x3, 0);
1982 113 : if (!register_operand (x4, i1))
1983 : return -1;
1984 : return 0;
1985 : }
1986 :
1987 : int
1988 15522 : pattern454 (rtx x1)
1989 : {
1990 15522 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1991 15522 : rtx x2, x3, x4;
1992 15522 : int res ATTRIBUTE_UNUSED;
1993 15522 : x2 = XEXP (x1, 1);
1994 15522 : x3 = XEXP (x2, 0);
1995 15522 : x4 = XEXP (x3, 1);
1996 15522 : operands[3] = x4;
1997 15522 : if (!const_int_operand (operands[3], E_VOIDmode))
1998 : return -1;
1999 15506 : return pattern14 (x1); /* [-1, 1] */
2000 : }
2001 :
2002 : int
2003 0 : pattern458 (rtx x1)
2004 : {
2005 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2006 0 : rtx x2, x3, x4, x5, x6, x7;
2007 0 : int res ATTRIBUTE_UNUSED;
2008 0 : x2 = XVECEXP (x1, 0, 0);
2009 0 : x3 = XEXP (x2, 0);
2010 0 : if (GET_CODE (x3) != VEC_SELECT)
2011 : return -1;
2012 0 : x4 = XEXP (x3, 1);
2013 0 : if (GET_CODE (x4) != PARALLEL
2014 0 : || XVECLEN (x4, 0) != 1)
2015 : return -1;
2016 0 : x5 = XVECEXP (x4, 0, 0);
2017 0 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2018 : return -1;
2019 0 : x6 = XEXP (x3, 0);
2020 0 : operands[1] = x6;
2021 0 : x7 = XVECEXP (x1, 0, 1);
2022 0 : operands[2] = x7;
2023 0 : if (!const48_operand (operands[2], E_SImode))
2024 : return -1;
2025 0 : switch (GET_MODE (operands[0]))
2026 : {
2027 0 : case E_SImode:
2028 0 : return pattern457 (x1,
2029 0 : E_SImode); /* [-1, 2] */
2030 :
2031 0 : case E_DImode:
2032 0 : res = pattern457 (x1,
2033 : E_DImode);
2034 0 : if (res >= 0)
2035 0 : return res + 3; /* [3, 5] */
2036 : return -1;
2037 :
2038 : default:
2039 : return -1;
2040 : }
2041 : }
2042 :
2043 : int
2044 2956 : pattern469 (rtx x1)
2045 : {
2046 2956 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2047 2956 : rtx x2, x3, x4, x5, x6;
2048 2956 : int res ATTRIBUTE_UNUSED;
2049 2956 : x2 = XEXP (x1, 0);
2050 2956 : x3 = XVECEXP (x2, 0, 0);
2051 2956 : operands[1] = x3;
2052 2956 : x4 = XVECEXP (x2, 0, 1);
2053 2956 : operands[2] = x4;
2054 2956 : x5 = XEXP (x1, 1);
2055 2956 : operands[3] = x5;
2056 2956 : x6 = XEXP (x1, 2);
2057 2956 : operands[4] = x6;
2058 2956 : switch (GET_MODE (operands[0]))
2059 : {
2060 1008 : case E_V64QImode:
2061 1008 : return pattern468 (x1,
2062 : E_DImode,
2063 : E_V64QImode,
2064 1008 : E_V32HFmode); /* [-1, 0] */
2065 :
2066 992 : case E_V32QImode:
2067 992 : if (pattern468 (x1,
2068 : E_SImode,
2069 : E_V32QImode,
2070 : E_V16HFmode) != 0)
2071 : return -1;
2072 : return 1;
2073 :
2074 956 : case E_V16QImode:
2075 956 : if (pattern468 (x1,
2076 : E_HImode,
2077 : E_V16QImode,
2078 : E_V8HFmode) != 0)
2079 : return -1;
2080 : return 2;
2081 :
2082 : default:
2083 : return -1;
2084 : }
2085 : }
2086 :
2087 : int
2088 761 : pattern480 (rtx x1, machine_mode i1)
2089 : {
2090 761 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2091 761 : rtx x2;
2092 761 : int res ATTRIBUTE_UNUSED;
2093 761 : if (!register_operand (operands[0], i1)
2094 761 : || GET_MODE (x1) != i1)
2095 : return -1;
2096 711 : x2 = XEXP (x1, 0);
2097 711 : if (GET_MODE (x2) != i1
2098 711 : || !register_operand (operands[1], i1)
2099 711 : || !register_operand (operands[2], i1)
2100 1396 : || !nonimmediate_operand (operands[3], i1))
2101 26 : return -1;
2102 : return 0;
2103 : }
2104 :
2105 : int
2106 5220 : pattern485 (machine_mode i1, machine_mode i2)
2107 : {
2108 5220 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2109 5220 : int res ATTRIBUTE_UNUSED;
2110 5220 : if (!register_operand (operands[2], i1)
2111 5197 : || !nonimmediate_operand (operands[3], i1)
2112 5179 : || !const0_operand (operands[4], i1)
2113 10399 : || !register_operand (operands[5], i2))
2114 293 : return -1;
2115 : return 0;
2116 : }
2117 :
2118 : int
2119 7736 : pattern490 (rtx x1)
2120 : {
2121 7736 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2122 7736 : rtx x2, x3, x4, x5, x6, x7;
2123 7736 : int res ATTRIBUTE_UNUSED;
2124 7736 : x2 = XEXP (x1, 0);
2125 7736 : x3 = XVECEXP (x2, 0, 0);
2126 7736 : operands[1] = x3;
2127 7736 : x4 = XVECEXP (x2, 0, 1);
2128 7736 : operands[2] = x4;
2129 7736 : x5 = XVECEXP (x2, 0, 2);
2130 7736 : operands[3] = x5;
2131 7736 : x6 = XEXP (x1, 2);
2132 7736 : operands[4] = x6;
2133 7736 : x7 = XEXP (x1, 1);
2134 7736 : switch (GET_CODE (x7))
2135 : {
2136 3796 : case REG:
2137 3796 : case SUBREG:
2138 3796 : if (!rtx_equal_p (x7, operands[1]))
2139 : return -1;
2140 3796 : switch (GET_MODE (operands[0]))
2141 : {
2142 1288 : case E_V16SImode:
2143 1288 : return pattern484 (x1,
2144 : E_V16SImode,
2145 1288 : E_HImode); /* [-1, 0] */
2146 :
2147 1284 : case E_V8SImode:
2148 1284 : if (pattern484 (x1,
2149 : E_V8SImode,
2150 : E_QImode) != 0)
2151 : return -1;
2152 : return 1;
2153 :
2154 1224 : case E_V4SImode:
2155 1224 : if (pattern484 (x1,
2156 : E_V4SImode,
2157 : E_QImode) != 0)
2158 : return -1;
2159 : return 2;
2160 :
2161 : default:
2162 : return -1;
2163 : }
2164 :
2165 3880 : case CONST_INT:
2166 3880 : case CONST_DOUBLE:
2167 3880 : case CONST_VECTOR:
2168 3880 : operands[5] = x7;
2169 3880 : switch (GET_MODE (operands[0]))
2170 : {
2171 1324 : case E_V16SImode:
2172 1324 : if (pattern489 (x1,
2173 : E_V16SImode,
2174 : E_HImode) != 0)
2175 : return -1;
2176 : return 3;
2177 :
2178 1320 : case E_V8SImode:
2179 1320 : if (pattern489 (x1,
2180 : E_V8SImode,
2181 : E_QImode) != 0)
2182 : return -1;
2183 : return 4;
2184 :
2185 1236 : case E_V4SImode:
2186 1236 : if (pattern489 (x1,
2187 : E_V4SImode,
2188 : E_QImode) != 0)
2189 : return -1;
2190 : return 5;
2191 :
2192 : default:
2193 : return -1;
2194 : }
2195 :
2196 : default:
2197 : return -1;
2198 : }
2199 : }
2200 :
2201 : int
2202 971 : pattern502 (rtx x1, machine_mode i1)
2203 : {
2204 971 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2205 971 : rtx x2, x3, x4, x5, x6, x7;
2206 971 : int res ATTRIBUTE_UNUSED;
2207 971 : x2 = XEXP (x1, 0);
2208 971 : x3 = XEXP (x2, 1);
2209 971 : x4 = XEXP (x3, 1);
2210 971 : x5 = XVECEXP (x4, 0, 0);
2211 971 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2212 : return -1;
2213 971 : x6 = XVECEXP (x4, 0, 1);
2214 971 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
2215 : return -1;
2216 971 : switch (GET_MODE (operands[0]))
2217 : {
2218 495 : case E_V8HFmode:
2219 495 : if (!register_operand (operands[0], E_V8HFmode)
2220 483 : || GET_MODE (x1) != E_V8HFmode
2221 978 : || GET_MODE (x2) != E_V2HFmode)
2222 : return -1;
2223 483 : x7 = XEXP (x2, 0);
2224 483 : if (GET_MODE (x7) != E_V2HFmode
2225 483 : || !vector_operand (operands[1], i1)
2226 483 : || GET_MODE (x3) != E_V2HFmode
2227 483 : || !nonimm_or_0_operand (operands[2], E_V8HFmode)
2228 963 : || !const0_operand (operands[4], E_V6HFmode))
2229 3 : return -1;
2230 : return 0;
2231 :
2232 476 : case E_V4SFmode:
2233 476 : if (pattern501 (x1,
2234 : E_V2SFmode,
2235 : E_V4SFmode,
2236 : i1) != 0)
2237 : return -1;
2238 : return 1;
2239 :
2240 : default:
2241 : return -1;
2242 : }
2243 : }
2244 :
2245 : int
2246 1746 : pattern510 ()
2247 : {
2248 1746 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2249 1746 : int res ATTRIBUTE_UNUSED;
2250 1746 : switch (GET_MODE (operands[1]))
2251 : {
2252 576 : case E_V8HImode:
2253 576 : if (!register_operand (operands[1], E_V8HImode))
2254 : return -1;
2255 : return 0;
2256 :
2257 588 : case E_V8SImode:
2258 588 : if (!register_operand (operands[1], E_V8SImode))
2259 : return -1;
2260 : return 1;
2261 :
2262 582 : case E_V8DImode:
2263 582 : if (!register_operand (operands[1], E_V8DImode))
2264 : return -1;
2265 : return 2;
2266 :
2267 : default:
2268 : return -1;
2269 : }
2270 : }
2271 :
2272 : int
2273 755 : pattern515 (machine_mode i1)
2274 : {
2275 755 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2276 755 : int res ATTRIBUTE_UNUSED;
2277 755 : if (!const0_operand (operands[2], i1))
2278 : return -1;
2279 753 : switch (GET_MODE (operands[1]))
2280 : {
2281 357 : case E_V4DImode:
2282 357 : if (!register_operand (operands[1], E_V4DImode))
2283 : return -1;
2284 : return 0;
2285 :
2286 396 : case E_V4SImode:
2287 396 : if (!register_operand (operands[1], E_V4SImode))
2288 : return -1;
2289 : return 1;
2290 :
2291 : default:
2292 : return -1;
2293 : }
2294 : }
2295 :
2296 : int
2297 1263 : pattern521 (rtx x1)
2298 : {
2299 1263 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2300 1263 : int res ATTRIBUTE_UNUSED;
2301 1263 : if (!register_operand (operands[0], E_V2DFmode)
2302 1263 : || GET_MODE (x1) != E_V2DFmode)
2303 : return -1;
2304 1088 : switch (GET_MODE (operands[1]))
2305 : {
2306 880 : case E_V2SImode:
2307 880 : if (!nonimmediate_operand (operands[1], E_V2SImode))
2308 : return -1;
2309 : return 0;
2310 :
2311 200 : case E_V2DImode:
2312 200 : if (!nonimmediate_operand (operands[1], E_V2DImode))
2313 : return -1;
2314 : return 1;
2315 :
2316 : default:
2317 : return -1;
2318 : }
2319 : }
2320 :
2321 : int
2322 6 : pattern526 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
2323 : {
2324 6 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2325 6 : rtx x2, x3;
2326 6 : int res ATTRIBUTE_UNUSED;
2327 6 : if (!nonimmediate_operand (operands[0], i3)
2328 6 : || GET_MODE (x1) != i3)
2329 : return -1;
2330 6 : x2 = XEXP (x1, 0);
2331 6 : if (GET_MODE (x2) != i2)
2332 : return -1;
2333 6 : x3 = XEXP (x2, 0);
2334 6 : if (GET_MODE (x3) != i1
2335 6 : || !register_operand (operands[1], i1)
2336 12 : || !permvar_truncate_operand (operands[2], i1))
2337 2 : return -1;
2338 : return 0;
2339 : }
2340 :
2341 : int
2342 17076 : pattern534 (rtx x1, machine_mode i1)
2343 : {
2344 17076 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2345 17076 : rtx x2, x3;
2346 17076 : int res ATTRIBUTE_UNUSED;
2347 17076 : if (!register_operand (operands[0], i1)
2348 17076 : || GET_MODE (x1) != i1)
2349 : return -1;
2350 17067 : x2 = XEXP (x1, 0);
2351 17067 : if (GET_MODE (x2) != i1
2352 17067 : || !regmem_or_bitnot_regmem_operand (operands[1], i1)
2353 34087 : || !regmem_or_bitnot_regmem_operand (operands[2], i1))
2354 65 : return -1;
2355 17002 : x3 = XEXP (x1, 1);
2356 17002 : if (GET_MODE (x3) != i1
2357 17002 : || !regmem_or_bitnot_regmem_operand (operands[3], i1)
2358 34004 : || !regmem_or_bitnot_regmem_operand (operands[4], i1))
2359 12 : return -1;
2360 : return 0;
2361 : }
2362 :
2363 : int
2364 126425 : pattern539 (rtx x1)
2365 : {
2366 126425 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2367 126425 : rtx x2, x3, x4, x5, x6, x7;
2368 126425 : int res ATTRIBUTE_UNUSED;
2369 126425 : x2 = XEXP (x1, 0);
2370 126425 : x3 = XEXP (x2, 0);
2371 126425 : x4 = XEXP (x3, 0);
2372 126425 : operands[1] = x4;
2373 126425 : x5 = XEXP (x3, 1);
2374 126425 : operands[2] = x5;
2375 126425 : x6 = XEXP (x2, 1);
2376 126425 : operands[3] = x6;
2377 126425 : x7 = XEXP (x1, 1);
2378 126425 : operands[4] = x7;
2379 126425 : switch (GET_MODE (operands[0]))
2380 : {
2381 0 : case E_V64QImode:
2382 0 : return pattern538 (x1,
2383 0 : E_V64QImode); /* [-1, 0] */
2384 :
2385 224 : case E_V32QImode:
2386 224 : if (pattern538 (x1,
2387 : E_V32QImode) != 0)
2388 : return -1;
2389 : return 1;
2390 :
2391 874 : case E_V16QImode:
2392 874 : if (pattern538 (x1,
2393 : E_V16QImode) != 0)
2394 : return -1;
2395 : return 2;
2396 :
2397 0 : case E_V32HImode:
2398 0 : if (pattern538 (x1,
2399 : E_V32HImode) != 0)
2400 : return -1;
2401 : return 3;
2402 :
2403 12 : case E_V16HImode:
2404 12 : if (pattern538 (x1,
2405 : E_V16HImode) != 0)
2406 : return -1;
2407 : return 4;
2408 :
2409 809 : case E_V8HImode:
2410 809 : if (pattern538 (x1,
2411 : E_V8HImode) != 0)
2412 : return -1;
2413 : return 5;
2414 :
2415 125 : case E_V16SImode:
2416 125 : if (pattern538 (x1,
2417 : E_V16SImode) != 0)
2418 : return -1;
2419 : return 6;
2420 :
2421 1402 : case E_V8SImode:
2422 1402 : if (pattern538 (x1,
2423 : E_V8SImode) != 0)
2424 : return -1;
2425 : return 7;
2426 :
2427 5999 : case E_V4SImode:
2428 5999 : if (pattern538 (x1,
2429 : E_V4SImode) != 0)
2430 : return -1;
2431 : return 8;
2432 :
2433 0 : case E_V8DImode:
2434 0 : if (pattern538 (x1,
2435 : E_V8DImode) != 0)
2436 : return -1;
2437 : return 9;
2438 :
2439 14 : case E_V4DImode:
2440 14 : if (pattern538 (x1,
2441 : E_V4DImode) != 0)
2442 : return -1;
2443 : return 10;
2444 :
2445 1430 : case E_V2DImode:
2446 1430 : if (pattern538 (x1,
2447 : E_V2DImode) != 0)
2448 : return -1;
2449 : return 11;
2450 :
2451 : default:
2452 : return -1;
2453 : }
2454 : }
2455 :
2456 : int
2457 12068 : pattern546 (rtx x1, machine_mode i1)
2458 : {
2459 12068 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2460 12068 : rtx x2;
2461 12068 : int res ATTRIBUTE_UNUSED;
2462 12068 : if (!register_operand (operands[0], i1)
2463 12068 : || GET_MODE (x1) != i1)
2464 : return -1;
2465 11743 : x2 = XEXP (x1, 0);
2466 11743 : switch (GET_MODE (x2))
2467 : {
2468 551 : case E_V4QImode:
2469 551 : if (!register_operand (operands[1], E_V16QImode))
2470 : return -1;
2471 : return 0;
2472 :
2473 10263 : case E_V4HImode:
2474 10263 : if (!register_operand (operands[1], E_V8HImode))
2475 : return -1;
2476 : return 1;
2477 :
2478 : default:
2479 : return -1;
2480 : }
2481 : }
2482 :
2483 : int
2484 55 : pattern550 (rtx x1)
2485 : {
2486 55 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2487 55 : rtx x2, x3, x4, x5;
2488 55 : int res ATTRIBUTE_UNUSED;
2489 55 : x2 = XVECEXP (x1, 0, 1);
2490 55 : x3 = XVECEXP (x2, 0, 0);
2491 55 : operands[2] = x3;
2492 55 : switch (GET_MODE (operands[0]))
2493 : {
2494 28 : case E_SImode:
2495 28 : x4 = XVECEXP (x1, 0, 0);
2496 28 : x5 = XEXP (x4, 1);
2497 28 : return pattern549 (x5,
2498 28 : E_SImode); /* [-1, 0] */
2499 :
2500 27 : case E_DImode:
2501 27 : x4 = XVECEXP (x1, 0, 0);
2502 27 : x5 = XEXP (x4, 1);
2503 27 : if (pattern549 (x5,
2504 : E_DImode) != 0)
2505 : return -1;
2506 : return 1;
2507 :
2508 : default:
2509 : return -1;
2510 : }
2511 : }
2512 :
2513 : int
2514 1174 : pattern557 (rtx x1)
2515 : {
2516 1174 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2517 1174 : rtx x2, x3, x4, x5, x6, x7, x8;
2518 1174 : int res ATTRIBUTE_UNUSED;
2519 1174 : x2 = XVECEXP (x1, 0, 0);
2520 1174 : x3 = XEXP (x2, 1);
2521 1174 : if (GET_MODE (x3) != E_V2SFmode)
2522 : return -1;
2523 140 : x4 = XVECEXP (x1, 0, 1);
2524 140 : if (GET_CODE (x4) != UNSPEC
2525 140 : || XVECLEN (x4, 0) != 1
2526 140 : || XINT (x4, 1) != 111)
2527 : return -1;
2528 140 : x5 = XVECEXP (x4, 0, 0);
2529 140 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2530 : return -1;
2531 140 : x6 = XEXP (x2, 0);
2532 140 : operands[0] = x6;
2533 140 : if (!register_operand (operands[0], E_V2SFmode))
2534 : return -1;
2535 140 : x7 = XVECEXP (x3, 0, 0);
2536 140 : operands[1] = x7;
2537 140 : if (!register_operand (operands[1], E_V2SFmode))
2538 : return -1;
2539 126 : x8 = XVECEXP (x3, 0, 1);
2540 126 : operands[2] = x8;
2541 126 : if (!nonimmediate_operand (operands[2], E_V2SFmode))
2542 : return -1;
2543 : return 0;
2544 : }
2545 :
2546 : int
2547 305307 : pattern565 (rtx x1, machine_mode i1, machine_mode i2)
2548 : {
2549 305307 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2550 305307 : rtx x2, x3;
2551 305307 : int res ATTRIBUTE_UNUSED;
2552 305307 : x2 = XEXP (x1, 0);
2553 305307 : if (GET_MODE (x2) != i2
2554 305307 : || !register_operand (operands[1], i1))
2555 12796 : return -1;
2556 292511 : x3 = XEXP (x1, 1);
2557 292511 : if (GET_MODE (x3) != i2
2558 292511 : || !nonimmediate_operand (operands[2], i1))
2559 978 : return -1;
2560 : return 0;
2561 : }
2562 :
2563 : int
2564 3595 : pattern571 (rtx x1, machine_mode i1)
2565 : {
2566 3595 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2567 3595 : int res ATTRIBUTE_UNUSED;
2568 3595 : if (!nonimmediate_operand (operands[0], i1)
2569 3595 : || GET_MODE (x1) != i1
2570 3595 : || !nonimmediate_operand (operands[1], i1)
2571 7187 : || !nonimmediate_or_x86_64_const_vector_operand (operands[2], i1))
2572 3 : return -1;
2573 : return 0;
2574 : }
2575 :
2576 : int
2577 49649 : pattern576 (rtx x1)
2578 : {
2579 49649 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2580 49649 : rtx x2, x3, x4, x5, x6;
2581 49649 : int res ATTRIBUTE_UNUSED;
2582 49649 : x2 = XVECEXP (x1, 0, 1);
2583 49649 : if (GET_CODE (x2) != CLOBBER)
2584 : return -1;
2585 47560 : x3 = XEXP (x2, 0);
2586 47560 : if (GET_CODE (x3) != REG
2587 47560 : || REGNO (x3) != 17
2588 95120 : || GET_MODE (x3) != E_CCmode)
2589 : return -1;
2590 47560 : x4 = XVECEXP (x1, 0, 0);
2591 47560 : x5 = XEXP (x4, 0);
2592 47560 : operands[0] = x5;
2593 47560 : if (!register_operand (operands[0], E_DImode))
2594 : return -1;
2595 47558 : x6 = XEXP (x4, 1);
2596 47558 : if (GET_MODE (x6) != E_DImode)
2597 : return -1;
2598 : return 0;
2599 : }
2600 :
2601 : int
2602 119 : pattern583 (rtx x1)
2603 : {
2604 119 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2605 119 : int res ATTRIBUTE_UNUSED;
2606 119 : switch (GET_MODE (operands[0]))
2607 : {
2608 24 : case E_QImode:
2609 24 : if (!register_operand (operands[0], E_QImode)
2610 24 : || GET_MODE (x1) != E_QImode
2611 48 : || !const_int_operand (operands[1], E_QImode))
2612 0 : return -1;
2613 : return 0;
2614 :
2615 0 : case E_HImode:
2616 0 : if (!register_operand (operands[0], E_HImode)
2617 0 : || GET_MODE (x1) != E_HImode
2618 0 : || !const_int_operand (operands[1], E_HImode))
2619 0 : return -1;
2620 : return 1;
2621 :
2622 42 : case E_SImode:
2623 42 : if (!register_operand (operands[0], E_SImode)
2624 39 : || GET_MODE (x1) != E_SImode
2625 81 : || !const_int_operand (operands[1], E_SImode))
2626 3 : return -1;
2627 : return 2;
2628 :
2629 53 : case E_DImode:
2630 53 : if (!register_operand (operands[0], E_DImode)
2631 53 : || GET_MODE (x1) != E_DImode
2632 106 : || !const_int_operand (operands[1], E_DImode))
2633 0 : return -1;
2634 : return 3;
2635 :
2636 : default:
2637 : return -1;
2638 : }
2639 : }
2640 :
2641 : int
2642 60874 : pattern594 (rtx x1)
2643 : {
2644 60874 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2645 60874 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2646 60874 : int res ATTRIBUTE_UNUSED;
2647 60874 : x2 = XVECEXP (x1, 0, 1);
2648 60874 : if (GET_CODE (x2) != USE)
2649 : return -1;
2650 60872 : x3 = XVECEXP (x1, 0, 2);
2651 60872 : x4 = XEXP (x3, 0);
2652 60872 : if (GET_CODE (x4) != REG
2653 60872 : || REGNO (x4) != 17
2654 121744 : || GET_MODE (x4) != E_CCmode)
2655 : return -1;
2656 60872 : x5 = XVECEXP (x1, 0, 0);
2657 60872 : x6 = XEXP (x5, 0);
2658 60872 : operands[0] = x6;
2659 60872 : x7 = XEXP (x5, 1);
2660 60872 : x8 = XEXP (x7, 0);
2661 60872 : operands[1] = x8;
2662 60872 : x9 = XEXP (x2, 0);
2663 60872 : operands[2] = x9;
2664 60872 : switch (GET_MODE (operands[0]))
2665 : {
2666 258 : case E_HFmode:
2667 258 : return pattern227 (x7,
2668 : E_V8HFmode,
2669 258 : E_HFmode); /* [-1, 0] */
2670 :
2671 23832 : case E_SFmode:
2672 23832 : if (GET_MODE (x7) != E_SFmode)
2673 : return -1;
2674 : return 1;
2675 :
2676 36782 : case E_DFmode:
2677 36782 : if (GET_MODE (x7) != E_DFmode)
2678 : return -1;
2679 : return 2;
2680 :
2681 : default:
2682 : return -1;
2683 : }
2684 : }
2685 :
2686 : int
2687 32585 : pattern602 (rtx x1)
2688 : {
2689 32585 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2690 32585 : rtx x2, x3, x4, x5, x6;
2691 32585 : int res ATTRIBUTE_UNUSED;
2692 32585 : x2 = XVECEXP (x1, 0, 2);
2693 32585 : if (!const_0_to_7_operand (x2, E_SImode))
2694 : return -1;
2695 30809 : x3 = XVECEXP (x1, 0, 0);
2696 30809 : switch (GET_CODE (x3))
2697 : {
2698 28835 : case CONST_INT:
2699 28835 : case CONST_WIDE_INT:
2700 28835 : case CONST_POLY_INT:
2701 28835 : case CONST_FIXED:
2702 28835 : case CONST_DOUBLE:
2703 28835 : case CONST_VECTOR:
2704 28835 : case CONST:
2705 28835 : case REG:
2706 28835 : case SUBREG:
2707 28835 : case MEM:
2708 28835 : case LABEL_REF:
2709 28835 : case SYMBOL_REF:
2710 28835 : case HIGH:
2711 28835 : operands[1] = x3;
2712 28835 : x4 = XVECEXP (x1, 0, 1);
2713 28835 : operands[2] = x4;
2714 28835 : operands[3] = x2;
2715 28835 : switch (GET_MODE (operands[0]))
2716 : {
2717 1105 : case E_DImode:
2718 1105 : return pattern598 (x1); /* [-1, 0] */
2719 :
2720 2324 : case E_SImode:
2721 2324 : res = pattern599 (x1);
2722 2324 : if (res >= 0)
2723 2115 : return res + 1; /* [1, 2] */
2724 : return -1;
2725 :
2726 12726 : case E_HImode:
2727 12726 : res = pattern600 (x1);
2728 12726 : if (res >= 0)
2729 11787 : return res + 3; /* [3, 5] */
2730 : return -1;
2731 :
2732 12285 : case E_QImode:
2733 12285 : res = pattern601 (x1);
2734 12285 : if (res >= 0)
2735 10359 : return res + 6; /* [6, 11] */
2736 : return -1;
2737 :
2738 : default:
2739 : return -1;
2740 : }
2741 :
2742 36 : case US_MINUS:
2743 36 : x5 = XEXP (x3, 0);
2744 36 : operands[1] = x5;
2745 36 : x6 = XEXP (x3, 1);
2746 36 : operands[2] = x6;
2747 36 : x4 = XVECEXP (x1, 0, 1);
2748 36 : operands[3] = x4;
2749 36 : operands[4] = x2;
2750 36 : switch (GET_MODE (operands[0]))
2751 : {
2752 6 : case E_DImode:
2753 6 : if (pattern73 (x1,
2754 : E_V64QImode,
2755 : E_DImode) != 0)
2756 : return -1;
2757 : return 12;
2758 :
2759 12 : case E_HImode:
2760 12 : res = pattern72 (x1);
2761 12 : if (res >= 0)
2762 12 : return res + 13; /* [13, 14] */
2763 : return -1;
2764 :
2765 12 : case E_SImode:
2766 12 : res = pattern306 (x1);
2767 12 : if (res >= 0)
2768 12 : return res + 15; /* [15, 16] */
2769 : return -1;
2770 :
2771 6 : case E_QImode:
2772 6 : if (pattern73 (x1,
2773 : E_V8HImode,
2774 : E_QImode) != 0)
2775 : return -1;
2776 : return 17;
2777 :
2778 : default:
2779 : return -1;
2780 : }
2781 :
2782 : default:
2783 : return -1;
2784 : }
2785 : }
2786 :
2787 : int
2788 1769 : pattern626 (rtx x1, int *pnum_clobbers, machine_mode i1)
2789 : {
2790 1769 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2791 1769 : int res ATTRIBUTE_UNUSED;
2792 1769 : if (pnum_clobbers == NULL
2793 1747 : || !register_operand (operands[0], i1)
2794 1478 : || GET_MODE (x1) != i1
2795 3247 : || !register_operand (operands[1], i1))
2796 1189 : return -1;
2797 : return 0;
2798 : }
2799 :
2800 : int
2801 629581 : pattern632 (rtx x1, machine_mode i1)
2802 : {
2803 629581 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2804 629581 : int res ATTRIBUTE_UNUSED;
2805 629581 : if (!register_operand (operands[0], i1)
2806 592078 : || GET_MODE (x1) != i1
2807 592078 : || !nonimmediate_operand (operands[1], i1)
2808 1191635 : || !x86_64_general_operand (operands[2], i1))
2809 194943 : return -1;
2810 : return 0;
2811 : }
2812 :
2813 : int
2814 697757 : pattern636 (rtx x1)
2815 : {
2816 697757 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2817 697757 : rtx x2, x3, x4, x5;
2818 697757 : int res ATTRIBUTE_UNUSED;
2819 697757 : x2 = XEXP (x1, 1);
2820 697757 : if (GET_CODE (x2) != SUBREG
2821 265778 : || maybe_ne (SUBREG_BYTE (x2), 0)
2822 963535 : || GET_MODE (x2) != E_QImode)
2823 : return -1;
2824 263841 : x3 = XEXP (x2, 0);
2825 263841 : switch (GET_CODE (x3))
2826 : {
2827 18111 : case AND:
2828 18111 : return pattern455 (x1); /* [-1, 1] */
2829 :
2830 0 : case PLUS:
2831 0 : res = pattern455 (x1);
2832 0 : if (res >= 0)
2833 0 : return res + 2; /* [2, 3] */
2834 : return -1;
2835 :
2836 0 : case MINUS:
2837 0 : x4 = XEXP (x3, 0);
2838 0 : operands[3] = x4;
2839 0 : if (!const_int_operand (operands[3], E_VOIDmode))
2840 : return -1;
2841 0 : x5 = XEXP (x3, 1);
2842 0 : operands[2] = x5;
2843 0 : if (!int248_register_operand (operands[2], E_VOIDmode))
2844 : return -1;
2845 0 : res = pattern14 (x1);
2846 0 : if (res >= 0)
2847 0 : return res + 4; /* [4, 5] */
2848 : return -1;
2849 :
2850 : default:
2851 : return -1;
2852 : }
2853 : }
2854 :
2855 : int
2856 13576 : pattern650 (rtx x1)
2857 : {
2858 13576 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2859 13576 : rtx x2, x3;
2860 13576 : int res ATTRIBUTE_UNUSED;
2861 13576 : x2 = XEXP (x1, 2);
2862 13576 : switch (GET_CODE (x2))
2863 : {
2864 11184 : case REG:
2865 11184 : case SUBREG:
2866 11184 : operands[4] = x2;
2867 11184 : switch (GET_MODE (operands[0]))
2868 : {
2869 : case E_V32HFmode:
2870 : return 0;
2871 :
2872 1524 : case E_V16HFmode:
2873 1524 : return 1;
2874 :
2875 996 : case E_V8HFmode:
2876 996 : return 2;
2877 :
2878 671 : case E_V16SFmode:
2879 671 : return 3;
2880 :
2881 1086 : case E_V8SFmode:
2882 1086 : return 4;
2883 :
2884 868 : case E_V4SFmode:
2885 868 : return 5;
2886 :
2887 473 : case E_V8DFmode:
2888 473 : return 6;
2889 :
2890 1146 : case E_V4DFmode:
2891 1146 : return 7;
2892 :
2893 868 : case E_V2DFmode:
2894 868 : return 8;
2895 :
2896 1044 : case E_V32BFmode:
2897 1044 : return 9;
2898 :
2899 1060 : case E_V16BFmode:
2900 1060 : return 10;
2901 :
2902 1044 : case E_V8BFmode:
2903 1044 : return 11;
2904 :
2905 : default:
2906 : return -1;
2907 : }
2908 :
2909 1894 : case CONST_INT:
2910 1894 : if (XWINT (x2, 0) != 1L)
2911 : return -1;
2912 1362 : x3 = XEXP (x1, 1);
2913 1362 : if (!rtx_equal_p (x3, operands[1]))
2914 : return -1;
2915 1270 : switch (GET_MODE (operands[0]))
2916 : {
2917 : case E_V8HFmode:
2918 : return 12;
2919 :
2920 : case E_V4SFmode:
2921 : return 13;
2922 :
2923 : case E_V2DFmode:
2924 : return 14;
2925 :
2926 : default:
2927 : return -1;
2928 : }
2929 :
2930 : default:
2931 : return -1;
2932 : }
2933 : }
2934 :
2935 : int
2936 4811 : pattern662 (rtx x1)
2937 : {
2938 4811 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2939 4811 : rtx x2, x3, x4, x5, x6, x7, x8;
2940 4811 : int res ATTRIBUTE_UNUSED;
2941 4811 : x2 = XVECEXP (x1, 0, 0);
2942 4811 : x3 = XEXP (x2, 0);
2943 4811 : x4 = XEXP (x3, 0);
2944 4811 : operands[1] = x4;
2945 4811 : x5 = XEXP (x3, 1);
2946 4811 : operands[2] = x5;
2947 4811 : x6 = XVECEXP (x1, 0, 1);
2948 4811 : if (!const_4_or_8_to_11_operand (x6, E_SImode))
2949 : return -1;
2950 4811 : x7 = XEXP (x2, 2);
2951 4811 : switch (GET_CODE (x7))
2952 : {
2953 3023 : case REG:
2954 3023 : case SUBREG:
2955 3023 : operands[4] = x7;
2956 3023 : x8 = XEXP (x2, 1);
2957 3023 : operands[3] = x8;
2958 3023 : operands[5] = x6;
2959 3023 : switch (GET_MODE (operands[0]))
2960 : {
2961 881 : case E_V32HFmode:
2962 881 : return pattern659 (x1,
2963 : E_V32HFmode,
2964 881 : E_SImode); /* [-1, 0] */
2965 :
2966 0 : case E_V16HFmode:
2967 0 : if (pattern659 (x1,
2968 : E_V16HFmode,
2969 : E_HImode) != 0)
2970 : return -1;
2971 : return 1;
2972 :
2973 0 : case E_V8HFmode:
2974 0 : if (pattern659 (x1,
2975 : E_V8HFmode,
2976 : E_QImode) != 0)
2977 : return -1;
2978 : return 2;
2979 :
2980 1074 : case E_V16SFmode:
2981 1074 : if (pattern659 (x1,
2982 : E_V16SFmode,
2983 : E_HImode) != 0)
2984 : return -1;
2985 : return 3;
2986 :
2987 0 : case E_V8SFmode:
2988 0 : if (pattern659 (x1,
2989 : E_V8SFmode,
2990 : E_QImode) != 0)
2991 : return -1;
2992 : return 4;
2993 :
2994 0 : case E_V4SFmode:
2995 0 : if (pattern659 (x1,
2996 : E_V4SFmode,
2997 : E_QImode) != 0)
2998 : return -1;
2999 : return 5;
3000 :
3001 1068 : case E_V8DFmode:
3002 1068 : if (pattern659 (x1,
3003 : E_V8DFmode,
3004 : E_QImode) != 0)
3005 : return -1;
3006 : return 6;
3007 :
3008 0 : case E_V4DFmode:
3009 0 : if (pattern659 (x1,
3010 : E_V4DFmode,
3011 : E_QImode) != 0)
3012 : return -1;
3013 : return 7;
3014 :
3015 0 : case E_V2DFmode:
3016 0 : if (pattern659 (x1,
3017 : E_V2DFmode,
3018 : E_QImode) != 0)
3019 : return -1;
3020 : return 8;
3021 :
3022 : default:
3023 : return -1;
3024 : }
3025 :
3026 1760 : case CONST_INT:
3027 1760 : res = pattern661 (x1);
3028 1760 : if (res >= 0)
3029 1603 : return res + 9; /* [9, 11] */
3030 : return -1;
3031 :
3032 : default:
3033 : return -1;
3034 : }
3035 : }
3036 :
3037 : int
3038 187372 : pattern682 (rtx x1, machine_mode i1)
3039 : {
3040 187372 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3041 187372 : int res ATTRIBUTE_UNUSED;
3042 187372 : if (!register_operand (operands[0], i1)
3043 185972 : || GET_MODE (x1) != i1
3044 185966 : || !register_operand (operands[1], i1)
3045 328339 : || !vector_operand (operands[2], i1))
3046 76727 : return -1;
3047 : return 0;
3048 : }
3049 :
3050 : int
3051 305 : pattern687 (rtx x1, machine_mode i1)
3052 : {
3053 305 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3054 305 : rtx x2;
3055 305 : int res ATTRIBUTE_UNUSED;
3056 305 : if (!register_operand (operands[0], i1)
3057 305 : || GET_MODE (x1) != i1)
3058 : return -1;
3059 287 : x2 = XEXP (x1, 0);
3060 287 : if (GET_MODE (x2) != i1
3061 287 : || !ieee_maxmin_comparison_operator (operands[1], i1)
3062 287 : || !nonimmediate_operand (operands[2], i1)
3063 270 : || !const0_operand (operands[3], i1)
3064 329 : || !nonimmediate_operand (operands[4], i1))
3065 245 : return -1;
3066 : return 0;
3067 : }
3068 :
3069 : int
3070 5280 : pattern693 (rtx x1)
3071 : {
3072 5280 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3073 5280 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
3074 5280 : rtx x10, x11;
3075 5280 : int res ATTRIBUTE_UNUSED;
3076 5280 : x2 = XEXP (x1, 0);
3077 5280 : x3 = XEXP (x2, 0);
3078 5280 : x4 = XEXP (x3, 0);
3079 5280 : switch (GET_CODE (x4))
3080 : {
3081 20 : case VEC_CONCAT:
3082 20 : return pattern691 (x1); /* [-1, 5] */
3083 :
3084 0 : case VEC_MERGE:
3085 0 : if (GET_MODE (x4) != E_V4SImode)
3086 : return -1;
3087 0 : x5 = XEXP (x4, 0);
3088 0 : if (GET_CODE (x5) != VEC_DUPLICATE
3089 0 : || GET_MODE (x5) != E_V4SImode)
3090 : return -1;
3091 0 : x6 = XEXP (x4, 1);
3092 0 : if (GET_CODE (x6) != CONST_VECTOR
3093 0 : || XVECLEN (x6, 0) != 4
3094 0 : || GET_MODE (x6) != E_V4SImode)
3095 : return -1;
3096 0 : x7 = XVECEXP (x6, 0, 0);
3097 0 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3098 : return -1;
3099 0 : x8 = XVECEXP (x6, 0, 1);
3100 0 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3101 : return -1;
3102 0 : x9 = XVECEXP (x6, 0, 2);
3103 0 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3104 : return -1;
3105 0 : x10 = XVECEXP (x6, 0, 3);
3106 0 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3107 : return -1;
3108 0 : x11 = XEXP (x4, 2);
3109 0 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
3110 : return -1;
3111 0 : res = pattern692 (x1);
3112 0 : if (res >= 0)
3113 0 : return res + 6; /* [6, 8] */
3114 : return -1;
3115 :
3116 : default:
3117 : return -1;
3118 : }
3119 : }
3120 :
3121 : int
3122 102606 : pattern707 (rtx x1)
3123 : {
3124 102606 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3125 102606 : int res ATTRIBUTE_UNUSED;
3126 102606 : if (GET_CODE (x1) != REG
3127 102606 : || REGNO (x1) != 17
3128 203862 : || GET_MODE (x1) != E_CCmode)
3129 : return -1;
3130 101256 : switch (GET_MODE (operands[0]))
3131 : {
3132 : case E_DImode:
3133 : return 0;
3134 :
3135 1052 : case E_TImode:
3136 1052 : return 1;
3137 :
3138 490 : case E_QImode:
3139 490 : return 2;
3140 :
3141 3214 : case E_HImode:
3142 3214 : return 3;
3143 :
3144 18166 : case E_SImode:
3145 18166 : return 4;
3146 :
3147 2113 : case E_SFmode:
3148 2113 : return 5;
3149 :
3150 4670 : case E_DFmode:
3151 4670 : return 6;
3152 :
3153 44017 : case E_XFmode:
3154 44017 : return 7;
3155 :
3156 : default:
3157 : return -1;
3158 : }
3159 : }
3160 :
3161 : int
3162 801 : pattern716 (rtx x1, int i1)
3163 : {
3164 801 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3165 801 : rtx x2, x3, x4, x5, x6, x7, x8;
3166 801 : int res ATTRIBUTE_UNUSED;
3167 801 : x2 = XVECEXP (x1, 0, 0);
3168 801 : x3 = XEXP (x2, 1);
3169 801 : x4 = XVECEXP (x3, 0, 0);
3170 801 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3171 : return -1;
3172 801 : x5 = XVECEXP (x1, 0, 1);
3173 801 : if (GET_CODE (x5) != SET)
3174 : return -1;
3175 801 : x6 = XEXP (x5, 1);
3176 801 : if (GET_CODE (x6) != UNSPEC_VOLATILE
3177 801 : || XVECLEN (x6, 0) != 1
3178 801 : || XINT (x6, 1) != i1
3179 801 : || GET_MODE (x6) != E_CCCmode)
3180 : return -1;
3181 801 : x7 = XVECEXP (x6, 0, 0);
3182 801 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3183 : return -1;
3184 801 : x8 = XEXP (x5, 0);
3185 801 : if (GET_CODE (x8) != REG
3186 801 : || REGNO (x8) != 17
3187 1602 : || GET_MODE (x8) != E_CCCmode)
3188 : return -1;
3189 801 : switch (GET_MODE (operands[0]))
3190 : {
3191 180 : case E_HImode:
3192 180 : if (!register_operand (operands[0], E_HImode)
3193 180 : || GET_MODE (x3) != E_HImode)
3194 : return -1;
3195 : return 0;
3196 :
3197 442 : case E_SImode:
3198 442 : if (!register_operand (operands[0], E_SImode)
3199 442 : || GET_MODE (x3) != E_SImode)
3200 : return -1;
3201 : return 1;
3202 :
3203 179 : case E_DImode:
3204 179 : if (!register_operand (operands[0], E_DImode)
3205 179 : || GET_MODE (x3) != E_DImode)
3206 : return -1;
3207 : return 2;
3208 :
3209 : default:
3210 : return -1;
3211 : }
3212 : }
3213 :
3214 : int
3215 552 : pattern731 (rtx x1, machine_mode i1, unsigned int i2)
3216 : {
3217 552 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3218 552 : rtx x2, x3;
3219 552 : int res ATTRIBUTE_UNUSED;
3220 552 : x2 = XEXP (x1, 1);
3221 552 : if (GET_MODE (x2) != i1)
3222 : return -1;
3223 552 : x3 = XEXP (x1, 0);
3224 552 : if (GET_CODE (x3) != REG
3225 552 : || REGNO (x3) != i2
3226 1104 : || GET_MODE (x3) != i1)
3227 0 : return -1;
3228 : return 0;
3229 : }
3230 :
3231 : int
3232 2465813 : pattern736 (rtx x1, machine_mode i1)
3233 : {
3234 2465813 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3235 2465813 : rtx x2, x3;
3236 2465813 : int res ATTRIBUTE_UNUSED;
3237 2465813 : if (!register_operand (operands[0], i1)
3238 2445602 : || GET_CODE (x1) != PARALLEL
3239 2717477 : || XVECLEN (x1, 0) != 2)
3240 : return -1;
3241 250270 : x2 = XVECEXP (x1, 0, 0);
3242 250270 : if (GET_CODE (x2) != SET)
3243 : return -1;
3244 250220 : x3 = XEXP (x2, 1);
3245 250220 : switch (GET_CODE (x3))
3246 : {
3247 : case PLUS:
3248 : case MINUS:
3249 : case AND:
3250 : case IOR:
3251 : case XOR:
3252 : return 0;
3253 :
3254 : default:
3255 : return -1;
3256 : }
3257 : }
3258 :
3259 : int
3260 43 : pattern742 (rtx x1, machine_mode i1)
3261 : {
3262 43 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3263 43 : rtx x2;
3264 43 : int res ATTRIBUTE_UNUSED;
3265 43 : if (!register_operand (operands[0], i1)
3266 39 : || GET_MODE (x1) != i1
3267 39 : || !register_operand (operands[1], i1)
3268 75 : || !register_operand (operands[2], i1))
3269 15 : return -1;
3270 28 : x2 = XVECEXP (x1, 0, 2);
3271 28 : if (GET_MODE (x2) != i1
3272 28 : || !register_operand (operands[3], i1)
3273 56 : || !register_operand (operands[4], i1))
3274 2 : return -1;
3275 : return 0;
3276 : }
3277 :
3278 : int
3279 3374 : pattern748 ()
3280 : {
3281 3374 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3282 3374 : int res ATTRIBUTE_UNUSED;
3283 3374 : switch (GET_MODE (operands[1]))
3284 : {
3285 1116 : case E_V16QImode:
3286 1116 : if (!register_operand (operands[1], E_V16QImode)
3287 1116 : || !nonimmediate_operand (operands[2], E_V16QImode))
3288 0 : return -1;
3289 : return 0;
3290 :
3291 1130 : case E_V16HImode:
3292 1130 : if (!register_operand (operands[1], E_V16HImode)
3293 1130 : || !nonimmediate_operand (operands[2], E_V16HImode))
3294 0 : return -1;
3295 : return 1;
3296 :
3297 1128 : case E_V16SImode:
3298 1128 : if (!register_operand (operands[1], E_V16SImode)
3299 1128 : || !nonimmediate_operand (operands[2], E_V16SImode))
3300 0 : return -1;
3301 : return 2;
3302 :
3303 : default:
3304 : return -1;
3305 : }
3306 : }
3307 :
3308 : int
3309 469 : pattern758 (rtx x1, machine_mode i1)
3310 : {
3311 469 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3312 469 : rtx x2, x3;
3313 469 : int res ATTRIBUTE_UNUSED;
3314 469 : if (!nonimmediate_operand (operands[0], i1)
3315 469 : || GET_MODE (x1) != i1)
3316 : return -1;
3317 469 : x2 = XEXP (x1, 0);
3318 469 : if (GET_MODE (x2) != i1
3319 469 : || !nonimmediate_operand (operands[1], i1))
3320 279 : return -1;
3321 190 : x3 = XEXP (x2, 1);
3322 190 : if (GET_MODE (x3) != i1
3323 190 : || !x86_64_immediate_operand (operands[2], i1))
3324 58 : return -1;
3325 : return 0;
3326 : }
3327 :
3328 : int
3329 56254 : pattern766 (rtx x1)
3330 : {
3331 56254 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3332 56254 : rtx x2, x3;
3333 56254 : int res ATTRIBUTE_UNUSED;
3334 56254 : x2 = XEXP (x1, 1);
3335 56254 : switch (GET_CODE (x2))
3336 : {
3337 12356 : case REG:
3338 12356 : case SUBREG:
3339 12356 : case MEM:
3340 12356 : if (!rtx_equal_p (x2, operands[1]))
3341 : return -1;
3342 4051 : switch (GET_MODE (operands[0]))
3343 : {
3344 1529 : case E_SImode:
3345 1529 : return pattern764 (x1,
3346 1529 : E_SImode); /* [-1, 0] */
3347 :
3348 2001 : case E_DImode:
3349 2001 : if (pattern764 (x1,
3350 : E_DImode) != 0)
3351 : return -1;
3352 : return 1;
3353 :
3354 : default:
3355 : return -1;
3356 : }
3357 :
3358 99 : case NOT:
3359 99 : x3 = XEXP (x2, 0);
3360 99 : if (!rtx_equal_p (x3, operands[1]))
3361 : return -1;
3362 84 : switch (GET_MODE (operands[0]))
3363 : {
3364 0 : case E_SImode:
3365 0 : if (pattern765 (x1,
3366 : E_SImode) != 0)
3367 : return -1;
3368 : return 2;
3369 :
3370 84 : case E_DImode:
3371 84 : if (pattern765 (x1,
3372 : E_DImode) != 0)
3373 : return -1;
3374 : return 3;
3375 :
3376 : default:
3377 : return -1;
3378 : }
3379 :
3380 : default:
3381 : return -1;
3382 : }
3383 : }
3384 :
3385 : int
3386 360 : pattern782 (rtx x1, machine_mode i1)
3387 : {
3388 360 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3389 360 : int res ATTRIBUTE_UNUSED;
3390 360 : if (!register_operand (operands[0], i1)
3391 360 : || GET_MODE (x1) != i1)
3392 : return -1;
3393 338 : switch (GET_MODE (operands[1]))
3394 : {
3395 108 : case E_V8HFmode:
3396 108 : if (!vector_operand (operands[1], E_V8HFmode))
3397 : return -1;
3398 : return 0;
3399 :
3400 115 : case E_V4SFmode:
3401 115 : if (!nonimmediate_operand (operands[1], E_V4SFmode))
3402 : return -1;
3403 : return 1;
3404 :
3405 115 : case E_V4DFmode:
3406 115 : if (!nonimmediate_operand (operands[1], E_V4DFmode))
3407 : return -1;
3408 : return 2;
3409 :
3410 : default:
3411 : return -1;
3412 : }
3413 : }
3414 :
3415 : int
3416 800 : pattern790 (rtx x1, machine_mode i1, machine_mode i2)
3417 : {
3418 800 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3419 800 : int res ATTRIBUTE_UNUSED;
3420 800 : if (!register_operand (operands[0], i2)
3421 769 : || GET_MODE (x1) != i2
3422 769 : || !nonimmediate_operand (operands[1], i2)
3423 1515 : || !register_operand (operands[2], i1))
3424 221 : return -1;
3425 : return 0;
3426 : }
3427 :
3428 : int
3429 232 : pattern797 (rtx x1, int i1, int i2, int i3)
3430 : {
3431 232 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3432 232 : rtx x2, x3, x4, x5, x6, x7, x8;
3433 232 : int res ATTRIBUTE_UNUSED;
3434 232 : x2 = XVECEXP (x1, 0, 0);
3435 232 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3436 : return -1;
3437 232 : x3 = XVECEXP (x1, 0, 1);
3438 232 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
3439 : return -1;
3440 232 : x4 = XVECEXP (x1, 0, 2);
3441 232 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
3442 : return -1;
3443 232 : x5 = XVECEXP (x1, 0, 3);
3444 232 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
3445 : return -1;
3446 232 : x6 = XVECEXP (x1, 0, 4);
3447 232 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + i3])
3448 : return -1;
3449 232 : x7 = XVECEXP (x1, 0, 5);
3450 232 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + i2])
3451 : return -1;
3452 232 : x8 = XVECEXP (x1, 0, 6);
3453 232 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
3454 0 : return -1;
3455 : return 0;
3456 : }
3457 :
3458 : int
3459 87 : pattern814 (rtx x1, machine_mode i1, machine_mode i2)
3460 : {
3461 87 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3462 87 : rtx x2;
3463 87 : int res ATTRIBUTE_UNUSED;
3464 87 : if (!register_operand (operands[0], i2)
3465 87 : || GET_MODE (x1) != i2)
3466 : return -1;
3467 87 : x2 = XEXP (x1, 0);
3468 87 : if (GET_MODE (x2) != i2
3469 45 : || !memory_operand (operands[1], i1)
3470 125 : || !general_operand (operands[2], i1))
3471 49 : return -1;
3472 : return 0;
3473 : }
3474 :
3475 : int
3476 40537 : pattern822 (rtx x1)
3477 : {
3478 40537 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3479 40537 : rtx x2, x3, x4, x5;
3480 40537 : int res ATTRIBUTE_UNUSED;
3481 40537 : x2 = XEXP (x1, 1);
3482 40537 : x3 = XEXP (x2, 0);
3483 40537 : x4 = XEXP (x3, 0);
3484 40537 : operands[2] = x4;
3485 40537 : if (!int248_register_operand (operands[2], E_VOIDmode))
3486 : return -1;
3487 35855 : x5 = XEXP (x3, 1);
3488 35855 : operands[3] = x5;
3489 35855 : if (!const_int_operand (operands[3], E_VOIDmode))
3490 : return -1;
3491 35841 : return pattern251 (x1); /* [-1, 1] */
3492 : }
3493 :
3494 : int
3495 41066 : pattern826 (rtx x1, machine_mode i1)
3496 : {
3497 41066 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3498 41066 : rtx x2, x3, x4, x5;
3499 41066 : int res ATTRIBUTE_UNUSED;
3500 41066 : x2 = XVECEXP (x1, 0, 1);
3501 41066 : x3 = XEXP (x2, 0);
3502 41066 : if (GET_CODE (x3) != REG
3503 41066 : || REGNO (x3) != 17
3504 82132 : || GET_MODE (x3) != E_CCmode)
3505 : return -1;
3506 41066 : x4 = XVECEXP (x1, 0, 0);
3507 41066 : x5 = XEXP (x4, 0);
3508 41066 : operands[0] = x5;
3509 41066 : if (!register_operand (operands[0], i1))
3510 : return -1;
3511 : return 0;
3512 : }
3513 :
3514 : int
3515 337325 : pattern830 (rtx x1, machine_mode i1)
3516 : {
3517 337325 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3518 337325 : rtx x2, x3;
3519 337325 : int res ATTRIBUTE_UNUSED;
3520 337325 : x2 = XEXP (x1, 0);
3521 337325 : if (GET_CODE (x2) != REG
3522 337325 : || REGNO (x2) != 17
3523 674650 : || GET_MODE (x2) != i1)
3524 : return -1;
3525 337294 : x3 = XEXP (x1, 1);
3526 337294 : if (GET_MODE (x3) != i1)
3527 0 : return -1;
3528 : return 0;
3529 : }
3530 :
3531 : int
3532 57 : pattern835 (rtx x1)
3533 : {
3534 57 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3535 57 : rtx x2, x3, x4;
3536 57 : int res ATTRIBUTE_UNUSED;
3537 57 : x2 = XVECEXP (x1, 0, 1);
3538 57 : if (GET_CODE (x2) != UNSPEC
3539 55 : || XVECLEN (x2, 0) != 1
3540 55 : || XINT (x2, 1) != 39)
3541 : return -1;
3542 55 : x3 = XVECEXP (x1, 0, 2);
3543 55 : if (GET_CODE (x3) != CLOBBER)
3544 : return -1;
3545 55 : x4 = XEXP (x3, 0);
3546 55 : if (GET_CODE (x4) != REG
3547 55 : || REGNO (x4) != 17
3548 110 : || GET_MODE (x4) != E_CCmode)
3549 : return -1;
3550 55 : return pattern550 (x1); /* [-1, 1] */
3551 : }
3552 :
3553 : int
3554 161 : pattern840 (rtx x1)
3555 : {
3556 161 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3557 161 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
3558 161 : rtx x10;
3559 161 : int res ATTRIBUTE_UNUSED;
3560 161 : x2 = XVECEXP (x1, 0, 1);
3561 161 : if (GET_CODE (x2) != UNSPEC
3562 148 : || XVECLEN (x2, 0) != 1
3563 148 : || XINT (x2, 1) != 39)
3564 : return -1;
3565 148 : x3 = XVECEXP (x1, 0, 2);
3566 148 : if (GET_CODE (x3) != CLOBBER)
3567 : return -1;
3568 148 : x4 = XEXP (x3, 0);
3569 148 : if (GET_CODE (x4) != REG
3570 148 : || REGNO (x4) != 17
3571 296 : || GET_MODE (x4) != E_CCmode)
3572 : return -1;
3573 148 : x5 = XVECEXP (x1, 0, 0);
3574 148 : x6 = XEXP (x5, 0);
3575 148 : operands[0] = x6;
3576 148 : x7 = XEXP (x5, 1);
3577 148 : x8 = XEXP (x7, 0);
3578 148 : x9 = XEXP (x8, 0);
3579 148 : operands[1] = x9;
3580 148 : if (!nonimmediate_operand (operands[1], E_SImode))
3581 : return -1;
3582 148 : x10 = XVECEXP (x2, 0, 0);
3583 148 : operands[2] = x10;
3584 148 : if (!register_operand (operands[2], E_DImode))
3585 : return -1;
3586 : return 0;
3587 : }
3588 :
3589 : int
3590 1891 : pattern849 (rtx x1, int i1, int i2, int i3)
3591 : {
3592 1891 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3593 1891 : rtx x2, x3, x4, x5, x6, x7, x8;
3594 1891 : int res ATTRIBUTE_UNUSED;
3595 1891 : x2 = XVECEXP (x1, 0, 0);
3596 1891 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3597 : return -1;
3598 815 : x3 = XVECEXP (x1, 0, 1);
3599 815 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
3600 : return -1;
3601 779 : x4 = XVECEXP (x1, 0, 2);
3602 779 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
3603 : return -1;
3604 779 : x5 = XVECEXP (x1, 0, 3);
3605 779 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
3606 : return -1;
3607 779 : x6 = XVECEXP (x1, 0, 4);
3608 779 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + i3])
3609 : return -1;
3610 751 : x7 = XVECEXP (x1, 0, 5);
3611 751 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + i2])
3612 : return -1;
3613 742 : x8 = XVECEXP (x1, 0, 6);
3614 742 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
3615 0 : return -1;
3616 : return 0;
3617 : }
3618 :
3619 : int
3620 114 : pattern859 (rtx x1, machine_mode i1)
3621 : {
3622 114 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3623 114 : int res ATTRIBUTE_UNUSED;
3624 114 : if (GET_MODE (x1) != i1
3625 114 : || !register_operand (operands[3], i1)
3626 90 : || !nonmemory_operand (operands[4], i1)
3627 204 : || !const0_operand (operands[5], i1))
3628 60 : return -1;
3629 : return 0;
3630 : }
3631 :
3632 : int
3633 19088 : pattern862 (rtx x1, machine_mode i1)
3634 : {
3635 19088 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3636 19088 : int res ATTRIBUTE_UNUSED;
3637 19088 : if (!register_operand (operands[0], i1)
3638 19062 : || GET_MODE (x1) != i1
3639 19052 : || !register_operand (operands[1], i1)
3640 31832 : || !register_mmxmem_operand (operands[2], i1))
3641 8093 : return -1;
3642 : return 0;
3643 : }
3644 :
3645 : int
3646 1051 : pattern866 (rtx x1, machine_mode i1, machine_mode i2)
3647 : {
3648 1051 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3649 1051 : rtx x2, x3, x4, x5;
3650 1051 : int res ATTRIBUTE_UNUSED;
3651 1051 : if (!register_operand (operands[0], i2)
3652 1051 : || GET_MODE (x1) != i2)
3653 : return -1;
3654 674 : x2 = XEXP (x1, 0);
3655 674 : if (GET_MODE (x2) != i2)
3656 : return -1;
3657 674 : x3 = XEXP (x2, 0);
3658 674 : if (GET_MODE (x3) != i1
3659 674 : || !register_operand (operands[1], i2)
3660 1300 : || !register_mmxmem_operand (operands[2], i2))
3661 80 : return -1;
3662 594 : x4 = XEXP (x1, 1);
3663 594 : if (GET_MODE (x4) != i2)
3664 : return -1;
3665 594 : x5 = XEXP (x4, 0);
3666 594 : if (GET_MODE (x5) != i1)
3667 : return -1;
3668 : return 0;
3669 : }
3670 :
3671 : int
3672 5531 : pattern872 (rtx x1)
3673 : {
3674 5531 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3675 5531 : rtx x2, x3, x4;
3676 5531 : int res ATTRIBUTE_UNUSED;
3677 5531 : x2 = XVECEXP (x1, 0, 0);
3678 5531 : x3 = XEXP (x2, 1);
3679 5531 : operands[1] = x3;
3680 5531 : x4 = XEXP (x2, 0);
3681 5531 : if (!rtx_equal_p (x4, operands[0]))
3682 : return -1;
3683 3410 : switch (GET_MODE (operands[0]))
3684 : {
3685 405 : case E_QImode:
3686 405 : return pattern871 (x1,
3687 405 : E_QImode); /* [-1, 0] */
3688 :
3689 139 : case E_HImode:
3690 139 : if (pattern871 (x1,
3691 : E_HImode) != 0)
3692 : return -1;
3693 : return 1;
3694 :
3695 : default:
3696 : return -1;
3697 : }
3698 : }
3699 :
3700 : int
3701 5643 : pattern879 (rtx x1, machine_mode i1)
3702 : {
3703 5643 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3704 5643 : rtx x2;
3705 5643 : int res ATTRIBUTE_UNUSED;
3706 5643 : if (!register_operand (operands[0], i1)
3707 5643 : || GET_MODE (x1) != i1)
3708 : return -1;
3709 5473 : x2 = XEXP (x1, 0);
3710 5473 : if (GET_MODE (x2) != i1
3711 5473 : || !bcst_vector_operand (operands[1], i1)
3712 4842 : || !bcst_vector_operand (operands[2], i1)
3713 9781 : || !bcst_vector_operand (operands[3], i1))
3714 1183 : return -1;
3715 : return 0;
3716 : }
3717 :
3718 : int
3719 2300 : pattern888 (rtx x1)
3720 : {
3721 2300 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3722 2300 : rtx x2, x3, x4, x5, x6;
3723 2300 : int res ATTRIBUTE_UNUSED;
3724 2300 : x2 = XVECEXP (x1, 0, 0);
3725 2300 : x3 = XVECEXP (x2, 0, 0);
3726 2300 : if (GET_CODE (x3) != VEC_SELECT)
3727 : return -1;
3728 1392 : x4 = XEXP (x3, 1);
3729 1392 : if (GET_CODE (x4) != PARALLEL
3730 1392 : || XVECLEN (x4, 0) != 1)
3731 : return -1;
3732 1392 : x5 = XVECEXP (x4, 0, 0);
3733 1392 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3734 : return -1;
3735 1392 : x6 = XEXP (x3, 0);
3736 1392 : operands[1] = x6;
3737 1392 : if (!const_4_or_8_to_11_operand (operands[2], E_SImode))
3738 : return -1;
3739 1392 : switch (GET_MODE (operands[0]))
3740 : {
3741 702 : case E_SImode:
3742 702 : return pattern887 (x1,
3743 702 : E_SImode); /* [-1, 2] */
3744 :
3745 690 : case E_DImode:
3746 690 : res = pattern887 (x1,
3747 : E_DImode);
3748 690 : if (res >= 0)
3749 642 : return res + 3; /* [3, 5] */
3750 : return -1;
3751 :
3752 : default:
3753 : return -1;
3754 : }
3755 : }
3756 :
3757 : int
3758 264 : pattern902 (rtx x1, machine_mode i1)
3759 : {
3760 264 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3761 264 : rtx x2;
3762 264 : int res ATTRIBUTE_UNUSED;
3763 264 : if (!register_operand (operands[0], i1)
3764 264 : || GET_MODE (x1) != i1)
3765 : return -1;
3766 258 : x2 = XEXP (x1, 0);
3767 258 : if (GET_MODE (x2) != i1
3768 258 : || !nonimmediate_operand (operands[1], i1)
3769 490 : || !register_operand (operands[2], i1))
3770 46 : return -1;
3771 : return 0;
3772 : }
3773 :
3774 : int
3775 1358 : pattern908 (rtx x1)
3776 : {
3777 1358 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3778 1358 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
3779 1358 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
3780 1358 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
3781 1358 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
3782 1358 : int res ATTRIBUTE_UNUSED;
3783 1358 : x2 = XVECEXP (x1, 0, 0);
3784 1358 : if (GET_CODE (x2) != CONST_INT)
3785 : return -1;
3786 1358 : x3 = XVECEXP (x1, 0, 1);
3787 1358 : if (GET_CODE (x3) != CONST_INT)
3788 : return -1;
3789 1358 : x4 = XVECEXP (x1, 0, 2);
3790 1358 : if (GET_CODE (x4) != CONST_INT)
3791 : return -1;
3792 1358 : x5 = XVECEXP (x1, 0, 3);
3793 1358 : if (GET_CODE (x5) != CONST_INT)
3794 : return -1;
3795 1358 : x6 = XVECEXP (x1, 0, 4);
3796 1358 : if (GET_CODE (x6) != CONST_INT)
3797 : return -1;
3798 1358 : x7 = XVECEXP (x1, 0, 5);
3799 1358 : if (GET_CODE (x7) != CONST_INT)
3800 : return -1;
3801 1358 : x8 = XVECEXP (x1, 0, 6);
3802 1358 : if (GET_CODE (x8) != CONST_INT)
3803 : return -1;
3804 1358 : x9 = XVECEXP (x1, 0, 7);
3805 1358 : if (GET_CODE (x9) != CONST_INT)
3806 : return -1;
3807 1358 : x10 = XVECEXP (x1, 0, 8);
3808 1358 : if (GET_CODE (x10) != CONST_INT)
3809 : return -1;
3810 1358 : x11 = XVECEXP (x1, 0, 9);
3811 1358 : if (GET_CODE (x11) != CONST_INT)
3812 : return -1;
3813 1358 : x12 = XVECEXP (x1, 0, 10);
3814 1358 : if (GET_CODE (x12) != CONST_INT)
3815 : return -1;
3816 1358 : x13 = XVECEXP (x1, 0, 11);
3817 1358 : if (GET_CODE (x13) != CONST_INT)
3818 : return -1;
3819 1358 : x14 = XVECEXP (x1, 0, 12);
3820 1358 : if (GET_CODE (x14) != CONST_INT)
3821 : return -1;
3822 1358 : x15 = XVECEXP (x1, 0, 13);
3823 1358 : if (GET_CODE (x15) != CONST_INT)
3824 : return -1;
3825 1358 : x16 = XVECEXP (x1, 0, 14);
3826 1358 : if (GET_CODE (x16) != CONST_INT)
3827 : return -1;
3828 1358 : x17 = XVECEXP (x1, 0, 15);
3829 1358 : if (GET_CODE (x17) != CONST_INT)
3830 : return -1;
3831 1358 : x18 = XVECEXP (x1, 0, 16);
3832 1358 : if (GET_CODE (x18) != CONST_INT)
3833 : return -1;
3834 1358 : x19 = XVECEXP (x1, 0, 17);
3835 1358 : if (GET_CODE (x19) != CONST_INT)
3836 : return -1;
3837 1358 : x20 = XVECEXP (x1, 0, 18);
3838 1358 : if (GET_CODE (x20) != CONST_INT)
3839 : return -1;
3840 1358 : x21 = XVECEXP (x1, 0, 19);
3841 1358 : if (GET_CODE (x21) != CONST_INT)
3842 : return -1;
3843 1358 : x22 = XVECEXP (x1, 0, 20);
3844 1358 : if (GET_CODE (x22) != CONST_INT)
3845 : return -1;
3846 1358 : x23 = XVECEXP (x1, 0, 21);
3847 1358 : if (GET_CODE (x23) != CONST_INT)
3848 : return -1;
3849 1358 : x24 = XVECEXP (x1, 0, 22);
3850 1358 : if (GET_CODE (x24) != CONST_INT)
3851 : return -1;
3852 1358 : x25 = XVECEXP (x1, 0, 23);
3853 1358 : if (GET_CODE (x25) != CONST_INT)
3854 : return -1;
3855 1358 : x26 = XVECEXP (x1, 0, 24);
3856 1358 : if (GET_CODE (x26) != CONST_INT)
3857 : return -1;
3858 1358 : x27 = XVECEXP (x1, 0, 25);
3859 1358 : if (GET_CODE (x27) != CONST_INT)
3860 : return -1;
3861 1358 : x28 = XVECEXP (x1, 0, 26);
3862 1358 : if (GET_CODE (x28) != CONST_INT)
3863 : return -1;
3864 1358 : x29 = XVECEXP (x1, 0, 27);
3865 1358 : if (GET_CODE (x29) != CONST_INT)
3866 : return -1;
3867 1358 : x30 = XVECEXP (x1, 0, 28);
3868 1358 : if (GET_CODE (x30) != CONST_INT)
3869 : return -1;
3870 1358 : x31 = XVECEXP (x1, 0, 29);
3871 1358 : if (GET_CODE (x31) != CONST_INT)
3872 : return -1;
3873 1358 : x32 = XVECEXP (x1, 0, 30);
3874 1358 : if (GET_CODE (x32) != CONST_INT)
3875 : return -1;
3876 1358 : x33 = XVECEXP (x1, 0, 31);
3877 1358 : if (GET_CODE (x33) != CONST_INT)
3878 0 : return -1;
3879 : return 0;
3880 : }
3881 :
3882 : int
3883 66 : pattern942 (rtx x1, int *pnum_clobbers)
3884 : {
3885 66 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3886 66 : rtx x2, x3, x4, x5, x6;
3887 66 : int res ATTRIBUTE_UNUSED;
3888 66 : x2 = XVECEXP (x1, 0, 0);
3889 66 : x3 = XEXP (x2, 1);
3890 66 : x4 = XEXP (x3, 0);
3891 66 : x5 = XEXP (x4, 0);
3892 66 : operands[1] = x5;
3893 66 : if (!nonimmediate_operand (operands[1], E_SImode))
3894 : return -1;
3895 24 : x6 = XVECEXP (x1, 0, 1);
3896 24 : return pattern832 (x6, pnum_clobbers); /* [-1, 1] */
3897 : }
3898 :
3899 : int
3900 283 : pattern948 (rtx x1)
3901 : {
3902 283 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3903 283 : rtx x2, x3, x4, x5;
3904 283 : int res ATTRIBUTE_UNUSED;
3905 283 : x2 = XEXP (x1, 0);
3906 283 : x3 = XEXP (x2, 1);
3907 283 : x4 = XEXP (x3, 1);
3908 283 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3909 : return -1;
3910 277 : x5 = XEXP (x3, 0);
3911 277 : operands[3] = x5;
3912 277 : if (!int_nonimmediate_operand (operands[3], E_VOIDmode))
3913 : return -1;
3914 271 : switch (GET_MODE (operands[0]))
3915 : {
3916 0 : case E_QImode:
3917 0 : return pattern946 (x1,
3918 0 : E_QImode); /* [-1, 0] */
3919 :
3920 0 : case E_HImode:
3921 0 : if (pattern946 (x1,
3922 : E_HImode) != 0)
3923 : return -1;
3924 : return 1;
3925 :
3926 189 : case E_SImode:
3927 189 : if (pattern947 (x1,
3928 : E_SImode) != 0)
3929 : return -1;
3930 : return 2;
3931 :
3932 82 : case E_DImode:
3933 82 : if (pattern947 (x1,
3934 : E_DImode) != 0)
3935 : return -1;
3936 : return 3;
3937 :
3938 : default:
3939 : return -1;
3940 : }
3941 : }
3942 :
3943 : int
3944 4850374 : pattern962 (rtx x1, machine_mode i1)
3945 : {
3946 4850374 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3947 4850374 : rtx x2, x3;
3948 4850374 : int res ATTRIBUTE_UNUSED;
3949 4850374 : if (!immediate_operand (operands[1], i1)
3950 4850374 : || GET_CODE (x1) != SET)
3951 : return -1;
3952 3814279 : x2 = XEXP (x1, 0);
3953 3814279 : operands[2] = x2;
3954 3814279 : if (!mask_reg_operand (operands[2], i1))
3955 : return -1;
3956 2947 : x3 = XEXP (x1, 1);
3957 2947 : if (!rtx_equal_p (x3, operands[0]))
3958 : return -1;
3959 : return 0;
3960 : }
3961 :
3962 : int
3963 10318 : pattern969 ()
3964 : {
3965 10318 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3966 10318 : int res ATTRIBUTE_UNUSED;
3967 10318 : switch (GET_MODE (operands[0]))
3968 : {
3969 202 : case E_QImode:
3970 202 : if (!register_operand (operands[0], E_QImode)
3971 202 : || !register_operand (operands[1], E_QImode))
3972 1 : return -1;
3973 : return 0;
3974 :
3975 9674 : case E_HImode:
3976 9674 : if (!register_operand (operands[0], E_HImode)
3977 9674 : || !register_operand (operands[1], E_HImode))
3978 9473 : return -1;
3979 : return 1;
3980 :
3981 202 : case E_SImode:
3982 202 : if (!register_operand (operands[0], E_SImode)
3983 202 : || !register_operand (operands[1], E_SImode))
3984 1 : return -1;
3985 : return 2;
3986 :
3987 215 : case E_DImode:
3988 215 : if (!register_operand (operands[0], E_DImode)
3989 215 : || !register_operand (operands[1], E_DImode))
3990 12 : return -1;
3991 : return 3;
3992 :
3993 : default:
3994 : return -1;
3995 : }
3996 : }
3997 :
3998 : int
3999 0 : pattern975 (rtx x1)
4000 : {
4001 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4002 0 : rtx x2, x3;
4003 0 : int res ATTRIBUTE_UNUSED;
4004 0 : x2 = XEXP (x1, 0);
4005 0 : switch (GET_MODE (x2))
4006 : {
4007 0 : case E_HImode:
4008 0 : x3 = XEXP (x1, 1);
4009 0 : if (GET_MODE (x3) != E_HImode
4010 0 : || !register_operand (operands[1], E_HImode))
4011 0 : return -1;
4012 : return 0;
4013 :
4014 0 : case E_SImode:
4015 0 : x3 = XEXP (x1, 1);
4016 0 : if (GET_MODE (x3) != E_SImode
4017 0 : || !register_operand (operands[1], E_SImode))
4018 0 : return -1;
4019 : return 1;
4020 :
4021 0 : case E_DImode:
4022 0 : x3 = XEXP (x1, 1);
4023 0 : if (GET_MODE (x3) != E_DImode
4024 0 : || !register_operand (operands[1], E_DImode))
4025 0 : return -1;
4026 : return 2;
4027 :
4028 : default:
4029 : return -1;
4030 : }
4031 : }
4032 :
4033 : int
4034 114269 : pattern980 (rtx x1)
4035 : {
4036 114269 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4037 114269 : int res ATTRIBUTE_UNUSED;
4038 114269 : if (!nonimmediate_operand (operands[0], E_SFmode)
4039 114269 : || GET_MODE (x1) != E_SFmode)
4040 : return -1;
4041 114087 : switch (GET_MODE (operands[1]))
4042 : {
4043 17041 : case E_V2SFmode:
4044 17041 : if (!nonimmediate_operand (operands[1], E_V2SFmode))
4045 : return -1;
4046 : return 0;
4047 :
4048 96602 : case E_V4SFmode:
4049 96602 : if (!nonimmediate_operand (operands[1], E_V4SFmode))
4050 : return -1;
4051 : return 1;
4052 :
4053 : default:
4054 : return -1;
4055 : }
4056 : }
4057 :
4058 : int
4059 300199 : pattern983 (rtx x1)
4060 : {
4061 300199 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4062 300199 : rtx x2, x3, x4;
4063 300199 : int res ATTRIBUTE_UNUSED;
4064 300199 : x2 = XEXP (x1, 1);
4065 300199 : x3 = XVECEXP (x2, 0, 0);
4066 300199 : switch (XWINT (x3, 0))
4067 : {
4068 146112 : case 0L:
4069 146112 : x4 = XVECEXP (x2, 0, 1);
4070 146112 : if (XWINT (x4, 0) != 2L)
4071 : return -1;
4072 145458 : switch (GET_MODE (operands[0]))
4073 : {
4074 8335 : case E_V2SFmode:
4075 8335 : return pattern274 (x1,
4076 : E_V2SFmode,
4077 8335 : E_V4SFmode); /* [-1, 0] */
4078 :
4079 17121 : case E_V2SImode:
4080 17121 : if (pattern275 (x1,
4081 : E_V2SImode,
4082 : E_V4SImode) != 0)
4083 : return -1;
4084 : return 1;
4085 :
4086 : default:
4087 : return -1;
4088 : }
4089 :
4090 149588 : case 1L:
4091 149588 : x4 = XVECEXP (x2, 0, 1);
4092 149588 : if (XWINT (x4, 0) != 3L)
4093 : return -1;
4094 104428 : switch (GET_MODE (operands[0]))
4095 : {
4096 2917 : case E_V2SFmode:
4097 2917 : if (pattern274 (x1,
4098 : E_V2SFmode,
4099 : E_V4SFmode) != 0)
4100 : return -1;
4101 : return 2;
4102 :
4103 8919 : case E_V2SImode:
4104 8919 : if (pattern275 (x1,
4105 : E_V2SImode,
4106 : E_V4SImode) != 0)
4107 : return -1;
4108 : return 3;
4109 :
4110 : default:
4111 : return -1;
4112 : }
4113 :
4114 : default:
4115 : return -1;
4116 : }
4117 : }
4118 :
4119 : int
4120 1726 : pattern994 (rtx x1)
4121 : {
4122 1726 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4123 1726 : rtx x2, x3;
4124 1726 : int res ATTRIBUTE_UNUSED;
4125 1726 : x2 = XEXP (x1, 1);
4126 1726 : operands[3] = x2;
4127 1726 : switch (GET_MODE (operands[0]))
4128 : {
4129 177 : case E_DImode:
4130 177 : if (!register_operand (operands[0], E_DImode)
4131 177 : || GET_MODE (x1) != E_DImode)
4132 : return -1;
4133 169 : x3 = XEXP (x1, 0);
4134 169 : if (GET_MODE (x3) != E_DImode
4135 169 : || !nonimm_or_0_operand (operands[1], E_V64QImode)
4136 169 : || !nonimm_or_0_operand (operands[2], E_V64QImode)
4137 338 : || !register_operand (operands[3], E_DImode))
4138 73 : return -1;
4139 : return 0;
4140 :
4141 388 : case E_SImode:
4142 388 : if (!register_operand (operands[0], E_SImode)
4143 388 : || GET_MODE (x1) != E_SImode)
4144 : return -1;
4145 368 : x3 = XEXP (x1, 0);
4146 368 : if (GET_MODE (x3) != E_SImode
4147 368 : || !register_operand (operands[3], E_SImode))
4148 230 : return -1;
4149 138 : switch (GET_MODE (operands[1]))
4150 : {
4151 67 : case E_V32QImode:
4152 67 : if (!nonimm_or_0_operand (operands[1], E_V32QImode)
4153 67 : || !nonimm_or_0_operand (operands[2], E_V32QImode))
4154 0 : return -1;
4155 : return 1;
4156 :
4157 67 : case E_V32HImode:
4158 67 : if (!nonimm_or_0_operand (operands[1], E_V32HImode)
4159 67 : || !nonimm_or_0_operand (operands[2], E_V32HImode))
4160 0 : return -1;
4161 : return 2;
4162 :
4163 : default:
4164 : return -1;
4165 : }
4166 :
4167 : default:
4168 : return -1;
4169 : }
4170 : }
4171 :
4172 : int
4173 2661 : pattern1004 (rtx x1, machine_mode i1, machine_mode i2)
4174 : {
4175 2661 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4176 2661 : rtx x2;
4177 2661 : int res ATTRIBUTE_UNUSED;
4178 2661 : if (!register_operand (operands[0], i1)
4179 2661 : || GET_MODE (x1) != i1)
4180 : return -1;
4181 2494 : x2 = XEXP (x1, 0);
4182 2494 : if (GET_MODE (x2) != i1
4183 2494 : || !vector_operand (operands[1], i1)
4184 2494 : || !nonimm_or_0_operand (operands[2], i1)
4185 4955 : || !register_operand (operands[3], i2))
4186 146 : return -1;
4187 : return 0;
4188 : }
4189 :
4190 : int
4191 180 : pattern1011 (rtx x1, machine_mode i1)
4192 : {
4193 180 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4194 180 : rtx x2, x3, x4, x5, x6;
4195 180 : int res ATTRIBUTE_UNUSED;
4196 180 : if (!register_operand (operands[0], i1)
4197 180 : || GET_MODE (x1) != i1)
4198 : return -1;
4199 142 : x2 = XEXP (x1, 0);
4200 142 : if (GET_MODE (x2) != i1)
4201 : return -1;
4202 142 : x3 = XEXP (x2, 0);
4203 142 : if (GET_MODE (x3) != i1)
4204 : return -1;
4205 142 : x4 = XEXP (x3, 0);
4206 142 : if (GET_MODE (x4) != i1)
4207 : return -1;
4208 142 : x5 = XEXP (x4, 0);
4209 142 : if (!nonimmediate_operand (x5, i1))
4210 : return -1;
4211 142 : x6 = XEXP (x3, 1);
4212 142 : if (!nonimmediate_operand (x6, i1))
4213 : return -1;
4214 : return 0;
4215 : }
4216 :
4217 : int
4218 839 : pattern1022 (rtx x1, machine_mode i1)
4219 : {
4220 839 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4221 839 : rtx x2, x3;
4222 839 : int res ATTRIBUTE_UNUSED;
4223 839 : if (!register_operand (operands[0], i1)
4224 839 : || GET_MODE (x1) != i1)
4225 : return -1;
4226 805 : x2 = XEXP (x1, 0);
4227 805 : if (GET_MODE (x2) != i1)
4228 : return -1;
4229 805 : x3 = XEXP (x2, 0);
4230 805 : if (GET_MODE (x3) != i1
4231 805 : || !register_operand (operands[1], i1)
4232 805 : || !vector_operand (operands[2], i1)
4233 781 : || !nonimm_or_0_operand (operands[3], i1)
4234 1574 : || !register_operand (operands[4], E_QImode))
4235 81 : return -1;
4236 : return 0;
4237 : }
4238 :
4239 : int
4240 195 : pattern1029 (rtx x1)
4241 : {
4242 195 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4243 195 : rtx x2;
4244 195 : int res ATTRIBUTE_UNUSED;
4245 195 : if (!register_operand (operands[0], E_V8SImode)
4246 195 : || GET_MODE (x1) != E_V8SImode)
4247 : return -1;
4248 195 : x2 = XVECEXP (x1, 0, 0);
4249 195 : if (GET_MODE (x2) != E_V8SImode)
4250 : return -1;
4251 195 : switch (GET_MODE (operands[1]))
4252 : {
4253 0 : case E_V8HFmode:
4254 0 : if (!register_operand (operands[1], E_V8HFmode))
4255 : return -1;
4256 : return 0;
4257 :
4258 195 : case E_V8DFmode:
4259 195 : if (!register_operand (operands[1], E_V8DFmode))
4260 : return -1;
4261 : return 1;
4262 :
4263 : default:
4264 : return -1;
4265 : }
4266 : }
4267 :
4268 : int
4269 13943 : pattern1040 (rtx x1, machine_mode i1, machine_mode i2)
4270 : {
4271 13943 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4272 13943 : int res ATTRIBUTE_UNUSED;
4273 13943 : if (!register_operand (operands[0], i1)
4274 13888 : || GET_MODE (x1) != i1
4275 13888 : || !register_operand (operands[1], i2)
4276 13888 : || !register_operand (operands[2], i1)
4277 27742 : || !nonimmediate_operand (operands[3], i1))
4278 238 : return -1;
4279 : return 0;
4280 : }
4281 :
4282 : int
4283 111 : pattern1046 (rtx x1)
4284 : {
4285 111 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4286 111 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
4287 111 : rtx x10;
4288 111 : int res ATTRIBUTE_UNUSED;
4289 111 : x2 = XEXP (x1, 0);
4290 111 : x3 = XEXP (x2, 1);
4291 111 : if (XVECLEN (x3, 0) != 2)
4292 : return -1;
4293 16 : x4 = XVECEXP (x3, 0, 0);
4294 16 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
4295 : return -1;
4296 16 : x5 = XVECEXP (x3, 0, 1);
4297 16 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
4298 16 : || !register_operand (operands[0], E_V2DImode)
4299 15 : || GET_MODE (x1) != E_V2DImode
4300 31 : || GET_MODE (x2) != E_V2QImode)
4301 5 : return -1;
4302 11 : x6 = XEXP (x2, 0);
4303 11 : if (GET_MODE (x6) != E_V16QImode)
4304 : return -1;
4305 11 : x7 = XEXP (x6, 0);
4306 11 : x8 = XEXP (x7, 0);
4307 11 : x9 = XEXP (x8, 0);
4308 11 : operands[1] = x9;
4309 11 : x10 = XEXP (x7, 1);
4310 11 : operands[2] = x10;
4311 11 : switch (GET_MODE (x7))
4312 : {
4313 6 : case E_V8HImode:
4314 6 : if (GET_MODE (x8) != E_V8HImode
4315 6 : || !nonimmediate_operand (operands[1], E_HImode)
4316 12 : || !const0_operand (operands[2], E_V8HImode))
4317 0 : return -1;
4318 : return 0;
4319 :
4320 5 : case E_V8HFmode:
4321 5 : if (GET_MODE (x8) != E_V8HFmode
4322 5 : || !nonimmediate_operand (operands[1], E_HFmode)
4323 10 : || !const0_operand (operands[2], E_V8HFmode))
4324 0 : return -1;
4325 : return 1;
4326 :
4327 0 : case E_V8BFmode:
4328 0 : if (GET_MODE (x8) != E_V8BFmode
4329 0 : || !nonimmediate_operand (operands[1], E_BFmode)
4330 0 : || !const0_operand (operands[2], E_V8BFmode))
4331 0 : return -1;
4332 : return 2;
4333 :
4334 : default:
4335 : return -1;
4336 : }
4337 : }
4338 :
4339 : int
4340 57056 : pattern1059 (rtx x1)
4341 : {
4342 57056 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4343 57056 : rtx x2, x3, x4, x5, x6;
4344 57056 : int res ATTRIBUTE_UNUSED;
4345 57056 : x2 = XEXP (x1, 1);
4346 57056 : x3 = XEXP (x2, 0);
4347 57056 : if (maybe_ne (SUBREG_BYTE (x3), 0)
4348 57056 : || GET_MODE (x3) != E_QImode)
4349 : return -1;
4350 1223 : x4 = XEXP (x3, 0);
4351 1223 : switch (GET_CODE (x4))
4352 : {
4353 394 : case ASHIFTRT:
4354 394 : case LSHIFTRT:
4355 394 : case SIGN_EXTRACT:
4356 394 : case ZERO_EXTRACT:
4357 394 : operands[3] = x4;
4358 394 : x5 = XEXP (x2, 1);
4359 394 : if (GET_CODE (x5) != SUBREG
4360 135 : || maybe_ne (SUBREG_BYTE (x5), 0)
4361 529 : || GET_MODE (x5) != E_QImode)
4362 : return -1;
4363 135 : x6 = XEXP (x5, 0);
4364 135 : switch (GET_CODE (x6))
4365 : {
4366 60 : case ASHIFTRT:
4367 60 : case LSHIFTRT:
4368 60 : case SIGN_EXTRACT:
4369 60 : case ZERO_EXTRACT:
4370 60 : operands[4] = x6;
4371 60 : if (GET_MODE (x2) != E_QImode)
4372 : return -1;
4373 60 : return pattern1058 (x1); /* [-1, 5] */
4374 :
4375 : default:
4376 : return -1;
4377 : }
4378 :
4379 : default:
4380 : return -1;
4381 : }
4382 : }
4383 :
4384 : int
4385 0 : pattern1067 (rtx x1, machine_mode i1)
4386 : {
4387 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4388 0 : rtx x2;
4389 0 : int res ATTRIBUTE_UNUSED;
4390 0 : if (!register_operand (operands[0], i1)
4391 0 : || GET_MODE (x1) != i1)
4392 : return -1;
4393 0 : x2 = XEXP (x1, 0);
4394 0 : if (GET_MODE (x2) != i1
4395 0 : || !register_operand (operands[1], i1)
4396 0 : || !register_operand (operands[2], i1))
4397 0 : return -1;
4398 : return 0;
4399 : }
4400 :
4401 : int
4402 267 : pattern1073 (rtx x1)
4403 : {
4404 267 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4405 267 : rtx x2, x3, x4, x5;
4406 267 : int res ATTRIBUTE_UNUSED;
4407 267 : x2 = XVECEXP (x1, 0, 0);
4408 267 : x3 = XEXP (x2, 1);
4409 267 : if (GET_MODE (x3) != E_XFmode)
4410 : return -1;
4411 267 : x4 = XVECEXP (x1, 0, 1);
4412 267 : x5 = XEXP (x4, 0);
4413 267 : if (GET_CODE (x5) != REG
4414 267 : || REGNO (x5) != 17
4415 208 : || GET_MODE (x5) != E_CCmode
4416 208 : || !register_operand (operands[0], E_XFmode)
4417 475 : || !register_operand (operands[1], E_XFmode))
4418 115 : return -1;
4419 : return 0;
4420 : }
4421 :
4422 : int
4423 2764 : pattern1079 (rtx x1)
4424 : {
4425 2764 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4426 2764 : rtx x2, x3, x4;
4427 2764 : int res ATTRIBUTE_UNUSED;
4428 2764 : if (GET_MODE (x1) != E_DImode)
4429 : return -1;
4430 2764 : x2 = XEXP (x1, 1);
4431 2764 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
4432 : return -1;
4433 2764 : x3 = XEXP (x1, 0);
4434 2764 : operands[0] = x3;
4435 2764 : if (!nonimmediate_operand (operands[0], E_DImode))
4436 : return -1;
4437 2764 : x4 = XEXP (x1, 2);
4438 2764 : operands[1] = x4;
4439 2764 : if (!const_0_to_63_operand (operands[1], E_QImode))
4440 : return -1;
4441 : return 0;
4442 : }
4443 :
4444 : int
4445 344 : pattern1084 ()
4446 : {
4447 344 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4448 344 : int res ATTRIBUTE_UNUSED;
4449 344 : switch (GET_MODE (operands[3]))
4450 : {
4451 33 : case E_HImode:
4452 33 : if (!extract_high_operator (operands[3], E_HImode)
4453 33 : || !extract_high_operator (operands[4], E_HImode))
4454 2 : return -1;
4455 : return 0;
4456 :
4457 255 : case E_SImode:
4458 255 : if (!extract_high_operator (operands[3], E_SImode)
4459 255 : || !extract_high_operator (operands[4], E_SImode))
4460 210 : return -1;
4461 : return 1;
4462 :
4463 56 : case E_DImode:
4464 56 : if (!extract_high_operator (operands[3], E_DImode)
4465 56 : || !extract_high_operator (operands[4], E_DImode))
4466 36 : return -1;
4467 : return 2;
4468 :
4469 : default:
4470 : return -1;
4471 : }
4472 : }
4473 :
4474 : int
4475 17 : pattern1094 (rtx x1, machine_mode i1)
4476 : {
4477 17 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4478 17 : int res ATTRIBUTE_UNUSED;
4479 17 : if (!register_operand (operands[0], i1)
4480 17 : || GET_MODE (x1) != i1
4481 17 : || !register_operand (operands[1], i1)
4482 28 : || !general_operand (operands[2], i1))
4483 12 : return -1;
4484 : return 0;
4485 : }
4486 :
4487 : int
4488 189 : pattern1102 (rtx x1)
4489 : {
4490 189 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4491 189 : int res ATTRIBUTE_UNUSED;
4492 189 : switch (GET_MODE (x1))
4493 : {
4494 0 : case E_DImode:
4495 0 : if (!nonimmediate_operand (operands[1], E_V64QImode)
4496 0 : || !nonimmediate_operand (operands[2], E_V64QImode))
4497 0 : return -1;
4498 : return 0;
4499 :
4500 46 : case E_HImode:
4501 46 : switch (GET_MODE (operands[1]))
4502 : {
4503 14 : case E_V16QImode:
4504 14 : if (!nonimmediate_operand (operands[1], E_V16QImode)
4505 14 : || !nonimmediate_operand (operands[2], E_V16QImode))
4506 2 : return -1;
4507 : return 1;
4508 :
4509 16 : case E_V16HImode:
4510 16 : if (!nonimmediate_operand (operands[1], E_V16HImode)
4511 16 : || !nonimmediate_operand (operands[2], E_V16HImode))
4512 2 : return -1;
4513 : return 2;
4514 :
4515 16 : case E_V16SImode:
4516 16 : if (!nonimmediate_operand (operands[1], E_V16SImode)
4517 16 : || !nonimmediate_operand (operands[2], E_V16SImode))
4518 2 : return -1;
4519 : return 3;
4520 :
4521 : default:
4522 : return -1;
4523 : }
4524 :
4525 14 : case E_SImode:
4526 14 : switch (GET_MODE (operands[1]))
4527 : {
4528 7 : case E_V32QImode:
4529 7 : if (!nonimmediate_operand (operands[1], E_V32QImode)
4530 7 : || !nonimmediate_operand (operands[2], E_V32QImode))
4531 1 : return -1;
4532 : return 4;
4533 :
4534 7 : case E_V32HImode:
4535 7 : if (!nonimmediate_operand (operands[1], E_V32HImode)
4536 7 : || !nonimmediate_operand (operands[2], E_V32HImode))
4537 1 : return -1;
4538 : return 5;
4539 :
4540 : default:
4541 : return -1;
4542 : }
4543 :
4544 129 : case E_QImode:
4545 129 : switch (GET_MODE (operands[1]))
4546 : {
4547 24 : case E_V8HImode:
4548 24 : if (!nonimmediate_operand (operands[1], E_V8HImode)
4549 24 : || !nonimmediate_operand (operands[2], E_V8HImode))
4550 0 : return -1;
4551 : return 6;
4552 :
4553 21 : case E_V8SImode:
4554 21 : if (!nonimmediate_operand (operands[1], E_V8SImode)
4555 21 : || !nonimmediate_operand (operands[2], E_V8SImode))
4556 3 : return -1;
4557 : return 7;
4558 :
4559 21 : case E_V4SImode:
4560 21 : if (!nonimmediate_operand (operands[1], E_V4SImode)
4561 21 : || !nonimmediate_operand (operands[2], E_V4SImode))
4562 3 : return -1;
4563 : return 8;
4564 :
4565 21 : case E_V8DImode:
4566 21 : if (!nonimmediate_operand (operands[1], E_V8DImode)
4567 21 : || !nonimmediate_operand (operands[2], E_V8DImode))
4568 3 : return -1;
4569 : return 9;
4570 :
4571 21 : case E_V4DImode:
4572 21 : if (!nonimmediate_operand (operands[1], E_V4DImode)
4573 21 : || !nonimmediate_operand (operands[2], E_V4DImode))
4574 3 : return -1;
4575 : return 10;
4576 :
4577 21 : case E_V2DImode:
4578 21 : if (!nonimmediate_operand (operands[1], E_V2DImode)
4579 21 : || !nonimmediate_operand (operands[2], E_V2DImode))
4580 3 : return -1;
4581 : return 11;
4582 :
4583 : default:
4584 : return -1;
4585 : }
4586 :
4587 : default:
4588 : return -1;
4589 : }
4590 : }
4591 :
4592 : int
4593 1278 : pattern1135 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
4594 : {
4595 1278 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4596 1278 : rtx x2, x3, x4, x5, x6;
4597 1278 : int res ATTRIBUTE_UNUSED;
4598 1278 : if (!register_operand (operands[0], i2)
4599 1278 : || GET_MODE (x1) != i2)
4600 : return -1;
4601 1246 : x2 = XEXP (x1, 0);
4602 1246 : if (GET_MODE (x2) != i2)
4603 : return -1;
4604 1246 : x3 = XEXP (x2, 0);
4605 1246 : if (GET_MODE (x3) != i3)
4606 : return -1;
4607 1246 : x4 = XEXP (x3, 0);
4608 1246 : if (GET_MODE (x4) != i3)
4609 : return -1;
4610 1246 : x5 = XEXP (x4, 0);
4611 1246 : if (GET_MODE (x5) != i3
4612 1246 : || !vector_operand (operands[1], i2))
4613 0 : return -1;
4614 1246 : x6 = XEXP (x4, 1);
4615 1246 : if (GET_MODE (x6) != i3
4616 1246 : || !vector_operand (operands[2], i2)
4617 1246 : || !nonimm_or_0_operand (operands[3], i2)
4618 2462 : || !register_operand (operands[4], i1))
4619 118 : return -1;
4620 : return 0;
4621 : }
4622 :
4623 : int
4624 6293 : pattern1149 (rtx x1, machine_mode i1)
4625 : {
4626 6293 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4627 6293 : int res ATTRIBUTE_UNUSED;
4628 6293 : if (!register_operand (operands[0], i1)
4629 6279 : || GET_MODE (x1) != i1
4630 6279 : || !register_operand (operands[1], i1)
4631 6137 : || !register_operand (operands[2], i1)
4632 12285 : || !bcst_vector_operand (operands[3], i1))
4633 324 : return -1;
4634 : return 0;
4635 : }
4636 :
4637 : int
4638 8255 : pattern1153 (rtx x1, machine_mode i1, machine_mode i2)
4639 : {
4640 8255 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4641 8255 : rtx x2;
4642 8255 : int res ATTRIBUTE_UNUSED;
4643 8255 : if (!nonimmediate_operand (operands[0], i1)
4644 8255 : || GET_MODE (x1) != i1)
4645 : return -1;
4646 8254 : x2 = XEXP (x1, 0);
4647 8254 : if (GET_MODE (x2) != i2
4648 8254 : || !nonimmediate_operand (operands[1], i1))
4649 3054 : return -1;
4650 : return 0;
4651 : }
4652 :
4653 : int
4654 3636 : pattern1161 (rtx x1)
4655 : {
4656 3636 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4657 3636 : rtx x2, x3, x4, x5;
4658 3636 : int res ATTRIBUTE_UNUSED;
4659 3636 : x2 = XVECEXP (x1, 0, 1);
4660 3636 : x3 = XEXP (x2, 0);
4661 3636 : operands[2] = x3;
4662 3636 : switch (GET_MODE (operands[0]))
4663 : {
4664 16 : case E_SImode:
4665 16 : x4 = XVECEXP (x1, 0, 0);
4666 16 : x5 = XEXP (x4, 1);
4667 16 : return pattern1160 (x5,
4668 16 : E_SImode); /* [-1, 1] */
4669 :
4670 3620 : case E_DImode:
4671 3620 : x4 = XVECEXP (x1, 0, 0);
4672 3620 : x5 = XEXP (x4, 1);
4673 3620 : res = pattern1160 (x5,
4674 : E_DImode);
4675 3620 : if (res >= 0)
4676 3620 : return res + 2; /* [2, 3] */
4677 : return -1;
4678 :
4679 : default:
4680 : return -1;
4681 : }
4682 : }
4683 :
4684 : int
4685 6 : pattern1170 (rtx x1, machine_mode i1)
4686 : {
4687 6 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4688 6 : rtx x2, x3;
4689 6 : int res ATTRIBUTE_UNUSED;
4690 6 : if (!nonimmediate_operand (operands[0], i1)
4691 6 : || GET_MODE (x1) != i1)
4692 : return -1;
4693 6 : x2 = XEXP (x1, 0);
4694 6 : if (GET_MODE (x2) != i1)
4695 : return -1;
4696 6 : x3 = XEXP (x2, 0);
4697 6 : if (GET_MODE (x3) != i1
4698 6 : || !nonimmediate_operand (operands[1], i1)
4699 12 : || !general_operand (operands[2], i1))
4700 0 : return -1;
4701 : return 0;
4702 : }
4703 :
4704 : int
4705 5083 : pattern1178 (rtx x1)
4706 : {
4707 5083 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4708 5083 : rtx x2, x3, x4;
4709 5083 : int res ATTRIBUTE_UNUSED;
4710 5083 : x2 = XEXP (x1, 1);
4711 5083 : x3 = XEXP (x2, 0);
4712 5083 : x4 = XEXP (x3, 1);
4713 5083 : operands[3] = x4;
4714 5083 : if (!const_int_operand (operands[3], E_VOIDmode))
4715 : return -1;
4716 5082 : return pattern207 (x1); /* [-1, 3] */
4717 : }
4718 :
4719 : int
4720 23298 : pattern1184 (rtx x1, machine_mode i1, int i2)
4721 : {
4722 23298 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4723 23298 : rtx x2, x3, x4, x5, x6;
4724 23298 : int res ATTRIBUTE_UNUSED;
4725 23298 : x2 = XVECEXP (x1, 0, 1);
4726 23298 : x3 = XEXP (x2, 1);
4727 23298 : x4 = XVECEXP (x3, 0, 0);
4728 23298 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
4729 : return -1;
4730 23298 : x5 = XVECEXP (x1, 0, 2);
4731 23298 : if (GET_CODE (x5) != SET)
4732 : return -1;
4733 23298 : x6 = XEXP (x5, 1);
4734 23298 : return pattern1183 (x6,
4735 : i1,
4736 23298 : i2); /* [-1, 0] */
4737 : }
4738 :
4739 : int
4740 26886 : pattern1191 (rtx x1)
4741 : {
4742 26886 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4743 26886 : rtx x2, x3;
4744 26886 : int res ATTRIBUTE_UNUSED;
4745 26886 : x2 = XEXP (x1, 1);
4746 26886 : switch (GET_CODE (x2))
4747 : {
4748 4974 : case SUBREG:
4749 4974 : if (maybe_ne (SUBREG_BYTE (x2), 0)
4750 4974 : || GET_MODE (x2) != E_QImode)
4751 : return -1;
4752 4974 : x3 = XEXP (x1, 0);
4753 4974 : operands[1] = x3;
4754 4974 : return pattern1179 (x1); /* [-1, 11] */
4755 :
4756 : case CONST_INT:
4757 : return 12;
4758 :
4759 : default:
4760 : return -1;
4761 : }
4762 : }
4763 :
4764 : int
4765 6 : pattern1198 (rtx x1, machine_mode i1, machine_mode i2)
4766 : {
4767 6 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4768 6 : rtx x2;
4769 6 : int res ATTRIBUTE_UNUSED;
4770 6 : if (!memory_operand (operands[0], i2)
4771 6 : || GET_MODE (x1) != i2)
4772 : return -1;
4773 6 : x2 = XEXP (x1, 0);
4774 6 : if (GET_MODE (x2) != i2
4775 6 : || !nonmemory_operand (operands[1], i1))
4776 0 : return -1;
4777 : return 0;
4778 : }
4779 :
4780 : int
4781 14 : pattern1204 (rtx x1, machine_mode i1)
4782 : {
4783 14 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4784 14 : rtx x2, x3, x4, x5, x6;
4785 14 : int res ATTRIBUTE_UNUSED;
4786 14 : if (!rtx_equal_p (x1, operands[0]))
4787 : return -1;
4788 14 : x2 = PATTERN (peep2_next_insn (2));
4789 14 : x3 = XEXP (x2, 0);
4790 14 : switch (GET_CODE (x3))
4791 : {
4792 12 : case SUBREG:
4793 12 : case MEM:
4794 12 : if (!rtx_equal_p (x3, operands[1]))
4795 : return -1;
4796 : return 0;
4797 :
4798 2 : case REG:
4799 2 : if (peep2_current_count < 4)
4800 : return -1;
4801 2 : operands[5] = x3;
4802 2 : if (!general_reg_operand (operands[5], i1))
4803 : return -1;
4804 2 : x4 = PATTERN (peep2_next_insn (3));
4805 2 : if (GET_CODE (x4) != SET)
4806 : return -1;
4807 0 : x5 = XEXP (x4, 1);
4808 0 : if (!rtx_equal_p (x5, operands[5]))
4809 : return -1;
4810 0 : x6 = XEXP (x4, 0);
4811 0 : if (!rtx_equal_p (x6, operands[1]))
4812 : return -1;
4813 : return 1;
4814 :
4815 : default:
4816 : return -1;
4817 : }
4818 : }
4819 :
4820 : int
4821 47475 : pattern1212 ()
4822 : {
4823 47475 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4824 47475 : int res ATTRIBUTE_UNUSED;
4825 47475 : switch (GET_MODE (operands[2]))
4826 : {
4827 5160 : case E_HImode:
4828 5160 : if (!extract_high_operator (operands[2], E_HImode))
4829 : return -1;
4830 : return 0;
4831 :
4832 25008 : case E_SImode:
4833 25008 : if (!extract_high_operator (operands[2], E_SImode))
4834 : return -1;
4835 : return 1;
4836 :
4837 17307 : case E_DImode:
4838 17307 : if (!extract_high_operator (operands[2], E_DImode))
4839 : return -1;
4840 : return 2;
4841 :
4842 : default:
4843 : return -1;
4844 : }
4845 : }
4846 :
4847 : int
4848 12 : pattern1220 (rtx x1, machine_mode i1)
4849 : {
4850 12 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4851 12 : rtx x2, x3;
4852 12 : int res ATTRIBUTE_UNUSED;
4853 12 : if (!nonimmediate_operand (operands[0], i1)
4854 12 : || GET_MODE (x1) != i1)
4855 : return -1;
4856 12 : x2 = XEXP (x1, 0);
4857 12 : if (GET_MODE (x2) != i1
4858 12 : || !nonimmediate_operand (operands[1], i1))
4859 0 : return -1;
4860 12 : x3 = XEXP (x2, 1);
4861 12 : if (GET_MODE (x3) != i1
4862 12 : || !x86_64_general_operand (operands[2], i1))
4863 0 : return -1;
4864 : return 0;
4865 : }
4866 :
4867 : int
4868 715 : pattern1228 (rtx x1, machine_mode i1, machine_mode i2)
4869 : {
4870 715 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4871 715 : rtx x2, x3, x4;
4872 715 : int res ATTRIBUTE_UNUSED;
4873 715 : if (!register_operand (operands[0], i1)
4874 715 : || GET_MODE (x1) != i1)
4875 : return -1;
4876 623 : x2 = XEXP (x1, 0);
4877 623 : if (GET_MODE (x2) != i1)
4878 : return -1;
4879 623 : x3 = XEXP (x2, 0);
4880 623 : if (GET_MODE (x3) != i2
4881 623 : || !register_operand (operands[1], i1))
4882 0 : return -1;
4883 623 : x4 = XEXP (x3, 1);
4884 623 : operands[2] = x4;
4885 623 : if (!nonimmediate_operand (operands[2], i1))
4886 : return -1;
4887 : return 0;
4888 : }
4889 :
4890 : int
4891 575 : pattern1235 (rtx x1)
4892 : {
4893 575 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4894 575 : rtx x2, x3, x4;
4895 575 : int res ATTRIBUTE_UNUSED;
4896 575 : x2 = XVECEXP (x1, 0, 2);
4897 575 : x3 = XEXP (x2, 0);
4898 575 : x4 = XEXP (x3, 1);
4899 575 : operands[4] = x4;
4900 575 : switch (GET_MODE (operands[0]))
4901 : {
4902 451 : case E_V16QImode:
4903 451 : if (!register_operand (operands[0], E_V16QImode)
4904 451 : || GET_MODE (x1) != E_V16QImode
4905 451 : || !register_operand (operands[1], E_V16QImode)
4906 442 : || !vector_operand (operands[2], E_V16QImode)
4907 889 : || GET_MODE (x2) != E_V16QImode)
4908 13 : return -1;
4909 438 : switch (GET_MODE (x3))
4910 : {
4911 323 : case E_V4SImode:
4912 323 : if (!register_operand (operands[3], E_V4SImode)
4913 323 : || !const0_operand (operands[4], E_V4SImode))
4914 212 : return -1;
4915 : return 0;
4916 :
4917 111 : case E_V2DImode:
4918 111 : if (!register_operand (operands[3], E_V2DImode)
4919 111 : || !const0_operand (operands[4], E_V2DImode))
4920 45 : return -1;
4921 : return 1;
4922 :
4923 : default:
4924 : return -1;
4925 : }
4926 :
4927 119 : case E_V32QImode:
4928 119 : if (!register_operand (operands[0], E_V32QImode)
4929 119 : || GET_MODE (x1) != E_V32QImode
4930 119 : || !register_operand (operands[1], E_V32QImode)
4931 117 : || !vector_operand (operands[2], E_V32QImode)
4932 232 : || GET_MODE (x2) != E_V32QImode)
4933 6 : return -1;
4934 113 : switch (GET_MODE (x3))
4935 : {
4936 67 : case E_V8SImode:
4937 67 : if (!register_operand (operands[3], E_V8SImode)
4938 67 : || !const0_operand (operands[4], E_V8SImode))
4939 32 : return -1;
4940 : return 2;
4941 :
4942 43 : case E_V4DImode:
4943 43 : if (!register_operand (operands[3], E_V4DImode)
4944 43 : || !const0_operand (operands[4], E_V4DImode))
4945 1 : return -1;
4946 : return 3;
4947 :
4948 : default:
4949 : return -1;
4950 : }
4951 :
4952 : default:
4953 : return -1;
4954 : }
4955 : }
4956 :
4957 : int
4958 5860 : pattern1253 (rtx x1, rtx_code i1)
4959 : {
4960 5860 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4961 5860 : rtx x2, x3, x4, x5, x6;
4962 5860 : int res ATTRIBUTE_UNUSED;
4963 5860 : x2 = XEXP (x1, 1);
4964 5860 : if (maybe_ne (SUBREG_BYTE (x2), 0))
4965 : return -1;
4966 5860 : x3 = XEXP (x2, 0);
4967 5860 : if (GET_CODE (x3) != i1)
4968 : return -1;
4969 1792 : x4 = XEXP (x3, 0);
4970 1792 : if (GET_CODE (x4) != ZERO_EXTEND)
4971 : return -1;
4972 1765 : switch (GET_MODE (operands[0]))
4973 : {
4974 1502 : case E_DImode:
4975 1502 : if (GET_MODE (x1) != E_DImode)
4976 : return -1;
4977 1502 : x5 = XEXP (x1, 0);
4978 1502 : if (GET_MODE (x5) != E_DImode)
4979 : return -1;
4980 1502 : x6 = XEXP (x5, 1);
4981 1502 : if (!const_0_to_63_operand (x6, E_QImode))
4982 : return -1;
4983 : return 0;
4984 :
4985 263 : case E_SImode:
4986 263 : if (GET_MODE (x1) != E_SImode)
4987 : return -1;
4988 263 : x5 = XEXP (x1, 0);
4989 263 : if (GET_MODE (x5) != E_SImode)
4990 : return -1;
4991 263 : x6 = XEXP (x5, 1);
4992 263 : if (!const_0_to_31_operand (x6, E_QImode))
4993 : return -1;
4994 : return 1;
4995 :
4996 : default:
4997 : return -1;
4998 : }
4999 : }
5000 :
5001 : int
5002 30 : pattern1266 (rtx x1, machine_mode i1)
5003 : {
5004 30 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5005 30 : rtx x2, x3;
5006 30 : int res ATTRIBUTE_UNUSED;
5007 30 : if (!register_operand (operands[0], i1)
5008 30 : || GET_MODE (x1) != i1)
5009 : return -1;
5010 30 : x2 = XEXP (x1, 0);
5011 30 : if (GET_MODE (x2) != i1)
5012 : return -1;
5013 30 : x3 = XEXP (x2, 0);
5014 30 : if (GET_MODE (x3) != i1
5015 30 : || !register_operand (operands[1], i1)
5016 30 : || !const0_operand (operands[3], i1)
5017 33 : || !const0_operand (operands[4], i1))
5018 27 : return -1;
5019 : return 0;
5020 : }
5021 :
5022 : int
5023 0 : pattern1274 (rtx x1, machine_mode i1)
5024 : {
5025 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5026 0 : int res ATTRIBUTE_UNUSED;
5027 0 : if (!register_operand (operands[1], i1)
5028 0 : || GET_MODE (x1) != i1)
5029 : return -1;
5030 0 : switch (GET_MODE (operands[2]))
5031 : {
5032 0 : case E_HImode:
5033 0 : if (!nonimmediate_operand (operands[2], E_HImode))
5034 : return -1;
5035 : return 0;
5036 :
5037 0 : case E_SImode:
5038 0 : if (!nonimmediate_operand (operands[2], E_SImode))
5039 : return -1;
5040 : return 1;
5041 :
5042 : default:
5043 : return -1;
5044 : }
5045 : }
5046 :
5047 : int
5048 1813031 : pattern1281 (rtx x1, machine_mode i1)
5049 : {
5050 1813031 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5051 1813031 : int res ATTRIBUTE_UNUSED;
5052 1813031 : if (!register_operand (operands[0], i1)
5053 1782089 : || GET_MODE (x1) != i1
5054 1782089 : || !nonimmediate_operand (operands[2], i1)
5055 3594070 : || !nonimmediate_operand (operands[3], i1))
5056 715298 : return -1;
5057 : return 0;
5058 : }
5059 :
5060 : int
5061 1105 : pattern1289 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
5062 : {
5063 1105 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5064 1105 : rtx x2, x3;
5065 1105 : int res ATTRIBUTE_UNUSED;
5066 1105 : if (!register_operand (operands[0], i1)
5067 1105 : || GET_MODE (x1) != i1)
5068 : return -1;
5069 1075 : x2 = XEXP (x1, 0);
5070 1075 : if (GET_MODE (x2) != i1
5071 1075 : || !register_operand (operands[1], i1))
5072 0 : return -1;
5073 1075 : x3 = XEXP (x2, 1);
5074 1075 : if (GET_MODE (x3) != i1
5075 1075 : || !nonimmediate_operand (operands[2], i2)
5076 1075 : || !nonimm_or_0_operand (operands[4], i1)
5077 2136 : || !register_operand (operands[5], i3))
5078 74 : return -1;
5079 : return 0;
5080 : }
5081 :
5082 : int
5083 3440 : pattern1297 (rtx x1)
5084 : {
5085 3440 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5086 3440 : rtx x2;
5087 3440 : int res ATTRIBUTE_UNUSED;
5088 3440 : if (!const_0_to_7_operand (operands[5], E_SImode))
5089 : return -1;
5090 3285 : switch (GET_MODE (operands[0]))
5091 : {
5092 94 : case E_V16QImode:
5093 94 : if (!register_operand (operands[0], E_V16QImode)
5094 94 : || GET_MODE (x1) != E_V16QImode)
5095 : return -1;
5096 94 : x2 = XEXP (x1, 2);
5097 94 : if (GET_MODE (x2) != E_HImode)
5098 : return -1;
5099 : return 0;
5100 :
5101 119 : case E_V8HImode:
5102 119 : if (!register_operand (operands[0], E_V8HImode)
5103 119 : || GET_MODE (x1) != E_V8HImode)
5104 : return -1;
5105 119 : x2 = XEXP (x1, 2);
5106 119 : if (GET_MODE (x2) != E_QImode)
5107 : return -1;
5108 : return 1;
5109 :
5110 805 : case E_V4SImode:
5111 805 : if (!register_operand (operands[0], E_V4SImode)
5112 805 : || GET_MODE (x1) != E_V4SImode)
5113 : return -1;
5114 797 : x2 = XEXP (x1, 2);
5115 797 : if (GET_MODE (x2) != E_QImode)
5116 : return -1;
5117 : return 2;
5118 :
5119 73 : case E_V2DImode:
5120 73 : if (!register_operand (operands[0], E_V2DImode)
5121 73 : || GET_MODE (x1) != E_V2DImode)
5122 : return -1;
5123 73 : x2 = XEXP (x1, 2);
5124 73 : if (GET_MODE (x2) != E_QImode)
5125 : return -1;
5126 : return 3;
5127 :
5128 88 : case E_V32QImode:
5129 88 : if (!register_operand (operands[0], E_V32QImode)
5130 88 : || GET_MODE (x1) != E_V32QImode)
5131 : return -1;
5132 88 : x2 = XEXP (x1, 2);
5133 88 : if (GET_MODE (x2) != E_SImode)
5134 : return -1;
5135 : return 4;
5136 :
5137 105 : case E_V16HImode:
5138 105 : if (!register_operand (operands[0], E_V16HImode)
5139 105 : || GET_MODE (x1) != E_V16HImode)
5140 : return -1;
5141 105 : x2 = XEXP (x1, 2);
5142 105 : if (GET_MODE (x2) != E_HImode)
5143 : return -1;
5144 : return 5;
5145 :
5146 741 : case E_V8SImode:
5147 741 : if (!register_operand (operands[0], E_V8SImode)
5148 741 : || GET_MODE (x1) != E_V8SImode)
5149 : return -1;
5150 741 : x2 = XEXP (x1, 2);
5151 741 : if (GET_MODE (x2) != E_QImode)
5152 : return -1;
5153 : return 6;
5154 :
5155 75 : case E_V4DImode:
5156 75 : if (!register_operand (operands[0], E_V4DImode)
5157 75 : || GET_MODE (x1) != E_V4DImode)
5158 : return -1;
5159 75 : x2 = XEXP (x1, 2);
5160 75 : if (GET_MODE (x2) != E_QImode)
5161 : return -1;
5162 : return 7;
5163 :
5164 : default:
5165 : return -1;
5166 : }
5167 : }
5168 :
5169 : int
5170 16402 : pattern1326 (rtx x1)
5171 : {
5172 16402 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5173 16402 : rtx x2, x3, x4, x5;
5174 16402 : int res ATTRIBUTE_UNUSED;
5175 16402 : x2 = XEXP (x1, 0);
5176 16402 : if (maybe_ne (SUBREG_BYTE (x2), 0))
5177 : return -1;
5178 16402 : x3 = XEXP (x2, 0);
5179 16402 : operands[0] = x3;
5180 16402 : if (!register_operand (operands[0], E_QImode))
5181 : return -1;
5182 16180 : x4 = XEXP (x1, 1);
5183 16180 : x5 = XEXP (x4, 2);
5184 16180 : operands[2] = x5;
5185 16180 : if (!register_operand (operands[2], E_QImode))
5186 : return -1;
5187 5471 : switch (GET_MODE (x2))
5188 : {
5189 2585 : case E_SImode:
5190 2585 : if (GET_MODE (x4) != E_SImode
5191 2585 : || !nonimmediate_operand (operands[1], E_SImode))
5192 1054 : return -1;
5193 : return 0;
5194 :
5195 2674 : case E_DImode:
5196 2674 : if (GET_MODE (x4) != E_DImode
5197 2674 : || !nonimmediate_operand (operands[1], E_DImode))
5198 1143 : return -1;
5199 : return 1;
5200 :
5201 : default:
5202 : return -1;
5203 : }
5204 : }
5205 :
5206 : int
5207 33434 : pattern1338 (rtx x1)
5208 : {
5209 33434 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5210 33434 : rtx x2, x3;
5211 33434 : int res ATTRIBUTE_UNUSED;
5212 33434 : x2 = XEXP (x1, 1);
5213 33434 : switch (GET_CODE (x2))
5214 : {
5215 9389 : case REG:
5216 9389 : case SUBREG:
5217 9389 : case MEM:
5218 9389 : if (!rtx_equal_p (x2, operands[1]))
5219 : return -1;
5220 3175 : switch (GET_MODE (operands[0]))
5221 : {
5222 1277 : case E_SImode:
5223 1277 : return pattern939 (x1,
5224 1277 : E_SImode); /* [-1, 0] */
5225 :
5226 1525 : case E_DImode:
5227 1525 : if (pattern939 (x1,
5228 : E_DImode) != 0)
5229 : return -1;
5230 : return 1;
5231 :
5232 : default:
5233 : return -1;
5234 : }
5235 :
5236 232 : case NOT:
5237 232 : x3 = XEXP (x2, 0);
5238 232 : if (!rtx_equal_p (x3, operands[1]))
5239 : return -1;
5240 224 : switch (GET_MODE (operands[0]))
5241 : {
5242 80 : case E_SImode:
5243 80 : if (pattern1337 (x1,
5244 : E_SImode) != 0)
5245 : return -1;
5246 : return 2;
5247 :
5248 144 : case E_DImode:
5249 144 : if (pattern1337 (x1,
5250 : E_DImode) != 0)
5251 : return -1;
5252 : return 3;
5253 :
5254 : default:
5255 : return -1;
5256 : }
5257 :
5258 : default:
5259 : return -1;
5260 : }
5261 : }
5262 :
5263 : int
5264 5212 : pattern1355 (rtx x1, machine_mode i1)
5265 : {
5266 5212 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5267 5212 : rtx x2, x3, x4, x5, x6, x7, x8;
5268 5212 : int res ATTRIBUTE_UNUSED;
5269 5212 : x2 = XVECEXP (x1, 0, 0);
5270 5212 : x3 = XEXP (x2, 1);
5271 5212 : if (GET_MODE (x3) != i1)
5272 : return -1;
5273 4631 : x4 = XVECEXP (x1, 0, 1);
5274 4631 : if (GET_CODE (x4) != CLOBBER)
5275 : return -1;
5276 4631 : x5 = XEXP (x4, 0);
5277 4631 : if (GET_CODE (x5) != REG
5278 4631 : || REGNO (x5) != 17
5279 9262 : || GET_MODE (x5) != E_CCmode)
5280 : return -1;
5281 4631 : x6 = XEXP (x3, 0);
5282 4631 : if (!rtx_equal_p (x6, operands[0]))
5283 : return -1;
5284 4573 : x7 = XEXP (x2, 0);
5285 4573 : if (!rtx_equal_p (x7, operands[0]))
5286 : return -1;
5287 4573 : x8 = PATTERN (peep2_next_insn (2));
5288 4573 : return pattern1354 (x8); /* [-1, 0] */
5289 : }
5290 :
5291 : int
5292 0 : pattern1365 (rtx x1, machine_mode i1)
5293 : {
5294 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5295 0 : rtx x2, x3, x4, x5, x6, x7;
5296 0 : int res ATTRIBUTE_UNUSED;
5297 0 : if (!general_reg_operand (operands[0], i1)
5298 0 : || GET_CODE (x1) != PARALLEL
5299 0 : || XVECLEN (x1, 0) != 2)
5300 : return -1;
5301 0 : x2 = XVECEXP (x1, 0, 0);
5302 0 : if (GET_CODE (x2) != SET)
5303 : return -1;
5304 0 : x3 = XVECEXP (x1, 0, 1);
5305 0 : if (GET_CODE (x3) != CLOBBER)
5306 : return -1;
5307 0 : x4 = XEXP (x3, 0);
5308 0 : if (GET_CODE (x4) != REG
5309 0 : || REGNO (x4) != 17
5310 0 : || GET_MODE (x4) != E_CCmode)
5311 : return -1;
5312 0 : x5 = XEXP (x2, 1);
5313 0 : if (GET_MODE (x5) != i1)
5314 : return -1;
5315 0 : x6 = XEXP (x2, 0);
5316 0 : if (!rtx_equal_p (x6, operands[0]))
5317 : return -1;
5318 0 : switch (GET_CODE (x5))
5319 : {
5320 0 : case PLUS:
5321 0 : x7 = XEXP (x5, 0);
5322 0 : if (!rtx_equal_p (x7, operands[0]))
5323 : return -1;
5324 : return 0;
5325 :
5326 0 : case IOR:
5327 0 : x7 = XEXP (x5, 0);
5328 0 : if (!rtx_equal_p (x7, operands[0]))
5329 : return -1;
5330 : return 1;
5331 :
5332 0 : case XOR:
5333 0 : x7 = XEXP (x5, 0);
5334 0 : if (!rtx_equal_p (x7, operands[0]))
5335 : return -1;
5336 : return 2;
5337 :
5338 : default:
5339 : return -1;
5340 : }
5341 : }
5342 :
5343 : int
5344 258 : pattern1378 (rtx x1, machine_mode i1, machine_mode i2)
5345 : {
5346 258 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5347 258 : rtx x2;
5348 258 : int res ATTRIBUTE_UNUSED;
5349 258 : if (!register_operand (operands[0], i1)
5350 258 : || GET_MODE (x1) != i1)
5351 : return -1;
5352 249 : x2 = XEXP (x1, 0);
5353 249 : if (GET_MODE (x2) != i1
5354 249 : || !register_operand (operands[1], i1)
5355 249 : || !register_operand (operands[2], i2)
5356 249 : || !nonimmediate_operand (operands[3], i2)
5357 498 : || !const0_operand (operands[4], i1))
5358 0 : return -1;
5359 : return 0;
5360 : }
5361 :
5362 : int
5363 499 : pattern1387 (rtx x1, machine_mode i1)
5364 : {
5365 499 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5366 499 : rtx x2;
5367 499 : int res ATTRIBUTE_UNUSED;
5368 499 : if (!register_operand (operands[0], i1)
5369 499 : || GET_MODE (x1) != i1)
5370 : return -1;
5371 479 : x2 = XEXP (x1, 0);
5372 479 : if (GET_MODE (x2) != i1
5373 479 : || !nonimmediate_operand (operands[1], i1)
5374 479 : || !nonimmediate_operand (operands[2], i1)
5375 950 : || !nonimmediate_operand (operands[3], i1))
5376 8 : return -1;
5377 : return 0;
5378 : }
5379 :
5380 : int
5381 40 : pattern1397 (rtx x1, machine_mode i1)
5382 : {
5383 40 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5384 40 : rtx x2, x3;
5385 40 : int res ATTRIBUTE_UNUSED;
5386 40 : if (!register_operand (operands[0], i1)
5387 40 : || GET_MODE (x1) != i1)
5388 : return -1;
5389 40 : x2 = XEXP (x1, 0);
5390 40 : if (GET_MODE (x2) != i1)
5391 : return -1;
5392 40 : x3 = XEXP (x2, 0);
5393 40 : if (GET_MODE (x3) != i1
5394 40 : || !nonimmediate_operand (operands[1], i1)
5395 40 : || !nonimmediate_operand (operands[2], i1)
5396 40 : || !nonimmediate_operand (operands[3], i1)
5397 80 : || !const0_operand (operands[4], i1))
5398 0 : return -1;
5399 : return 0;
5400 : }
5401 :
5402 : int
5403 1188 : pattern1406 (rtx x1)
5404 : {
5405 1188 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5406 1188 : rtx x2, x3, x4, x5, x6, x7;
5407 1188 : int res ATTRIBUTE_UNUSED;
5408 1188 : x2 = XVECEXP (x1, 0, 0);
5409 1188 : x3 = XEXP (x2, 0);
5410 1188 : x4 = XEXP (x3, 1);
5411 1188 : operands[4] = x4;
5412 1188 : x5 = XEXP (x3, 2);
5413 1188 : operands[5] = x5;
5414 1188 : if (!register_operand (operands[5], E_QImode))
5415 : return -1;
5416 1141 : x6 = XVECEXP (x1, 0, 1);
5417 1141 : operands[6] = x6;
5418 1141 : if (!const48_operand (operands[6], E_SImode))
5419 : return -1;
5420 1141 : x7 = XEXP (x2, 1);
5421 1141 : if (!rtx_equal_p (x7, operands[1]))
5422 : return -1;
5423 1141 : switch (GET_MODE (operands[0]))
5424 : {
5425 519 : case E_V8HFmode:
5426 519 : return pattern1405 (x1,
5427 519 : E_V8HFmode); /* [-1, 0] */
5428 :
5429 311 : case E_V4SFmode:
5430 311 : if (pattern1405 (x1,
5431 : E_V4SFmode) != 0)
5432 : return -1;
5433 : return 1;
5434 :
5435 311 : case E_V2DFmode:
5436 311 : if (pattern1405 (x1,
5437 : E_V2DFmode) != 0)
5438 : return -1;
5439 : return 2;
5440 :
5441 : default:
5442 : return -1;
5443 : }
5444 : }
5445 :
5446 : int
5447 333 : pattern1421 (rtx x1, machine_mode i1)
5448 : {
5449 333 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5450 333 : rtx x2, x3;
5451 333 : int res ATTRIBUTE_UNUSED;
5452 333 : if (!register_operand (operands[0], i1)
5453 333 : || GET_MODE (x1) != i1)
5454 : return -1;
5455 320 : x2 = XVECEXP (x1, 0, 0);
5456 320 : if (GET_MODE (x2) != i1)
5457 : return -1;
5458 320 : x3 = XEXP (x2, 0);
5459 320 : if (GET_MODE (x3) != i1
5460 320 : || !register_operand (operands[1], i1)
5461 312 : || !register_operand (operands[2], i1)
5462 627 : || !register_operand (operands[3], i1))
5463 13 : return -1;
5464 : return 0;
5465 : }
5466 :
5467 : int
5468 612 : pattern1429 (rtx x1, machine_mode i1)
5469 : {
5470 612 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5471 612 : int res ATTRIBUTE_UNUSED;
5472 612 : if (!register_operand (operands[0], i1)
5473 612 : || GET_MODE (x1) != i1
5474 612 : || !nonimmediate_operand (operands[1], i1)
5475 1224 : || !register_operand (operands[2], i1))
5476 108 : return -1;
5477 : return 0;
5478 : }
5479 :
5480 : int
5481 614 : pattern1435 (rtx x1, rtx_code i1)
5482 : {
5483 614 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5484 614 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5485 614 : int res ATTRIBUTE_UNUSED;
5486 614 : x2 = XVECEXP (x1, 0, 1);
5487 614 : x3 = XEXP (x2, 1);
5488 614 : if (GET_MODE (x3) != E_DImode)
5489 : return -1;
5490 541 : x4 = XEXP (x3, 0);
5491 541 : if (GET_CODE (x4) != i1
5492 92 : || GET_MODE (x4) != E_SImode)
5493 : return -1;
5494 68 : x5 = XVECEXP (x1, 0, 0);
5495 68 : x6 = XEXP (x5, 1);
5496 68 : x7 = XEXP (x6, 0);
5497 68 : if (GET_MODE (x7) != E_SImode
5498 68 : || !nonimmediate_operand (operands[1], E_SImode)
5499 68 : || !x86_64_general_operand (operands[2], E_SImode)
5500 136 : || !register_operand (operands[0], E_DImode))
5501 0 : return -1;
5502 68 : x8 = XEXP (x4, 0);
5503 68 : if (!rtx_equal_p (x8, operands[1]))
5504 : return -1;
5505 68 : x9 = XEXP (x4, 1);
5506 68 : if (!rtx_equal_p (x9, operands[2]))
5507 : return -1;
5508 : return 0;
5509 : }
5510 :
5511 : int
5512 54563 : pattern1450 (rtx x1, machine_mode i1, machine_mode i2)
5513 : {
5514 54563 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5515 54563 : int res ATTRIBUTE_UNUSED;
5516 54563 : if (!nonimmediate_operand (operands[0], i2)
5517 54472 : || GET_MODE (x1) != i2
5518 54472 : || !register_operand (operands[1], i1)
5519 108538 : || !scratch_operand (operands[2], i1))
5520 588 : return -1;
5521 : return 0;
5522 : }
5523 :
5524 : int
5525 1192 : pattern1457 (rtx x1, int i1)
5526 : {
5527 1192 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5528 1192 : rtx x2, x3, x4;
5529 1192 : int res ATTRIBUTE_UNUSED;
5530 1192 : x2 = XEXP (x1, 1);
5531 1192 : x3 = XEXP (x2, 1);
5532 1192 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
5533 : return -1;
5534 726 : x4 = XEXP (x1, 0);
5535 726 : if (GET_CODE (x4) != REG
5536 726 : || REGNO (x4) != 17
5537 1452 : || GET_MODE (x4) != E_CCZmode)
5538 0 : return -1;
5539 : return 0;
5540 : }
5541 :
5542 : int
5543 0 : pattern1462 (rtx x1)
5544 : {
5545 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5546 0 : rtx x2, x3, x4, x5;
5547 0 : int res ATTRIBUTE_UNUSED;
5548 0 : x2 = XEXP (x1, 2);
5549 0 : x3 = XEXP (x2, 0);
5550 0 : x4 = XEXP (x3, 0);
5551 0 : operands[1] = x4;
5552 0 : if (!int248_register_operand (operands[1], E_VOIDmode))
5553 : return -1;
5554 0 : x5 = XEXP (x3, 1);
5555 0 : operands[2] = x5;
5556 0 : if (!const_int_operand (operands[2], E_VOIDmode))
5557 : return -1;
5558 0 : switch (GET_MODE (x1))
5559 : {
5560 0 : case E_SImode:
5561 0 : if (!nonimmediate_operand (operands[0], E_SImode))
5562 : return -1;
5563 : return 0;
5564 :
5565 0 : case E_DImode:
5566 0 : if (!nonimmediate_operand (operands[0], E_DImode))
5567 : return -1;
5568 : return 1;
5569 :
5570 : default:
5571 : return -1;
5572 : }
5573 : }
5574 :
5575 : int
5576 1942 : pattern1474 (rtx x1, machine_mode i1, machine_mode i2)
5577 : {
5578 1942 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5579 1942 : rtx x2;
5580 1942 : int res ATTRIBUTE_UNUSED;
5581 1942 : if (!register_operand (operands[0], i1)
5582 1761 : || GET_MODE (x1) != i1
5583 1761 : || !vector_operand (operands[1], i1)
5584 3701 : || !vector_operand (operands[2], i1))
5585 1088 : return -1;
5586 854 : x2 = XEXP (x1, 2);
5587 854 : if (GET_MODE (x2) != i2
5588 854 : || !register_operand (operands[3], i1)
5589 589 : || !const0_operand (operands[4], i1)
5590 981 : || !const_0_to_7_operand (operands[5], E_SImode))
5591 727 : return -1;
5592 : return 0;
5593 : }
5594 :
5595 : int
5596 1094 : pattern1483 (rtx x1, machine_mode i1, machine_mode i2)
5597 : {
5598 1094 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5599 1094 : rtx x2, x3, x4, x5;
5600 1094 : int res ATTRIBUTE_UNUSED;
5601 1094 : if (!register_operand (operands[0], i2)
5602 1094 : || GET_MODE (x1) != i2)
5603 : return -1;
5604 1067 : x2 = XVECEXP (x1, 0, 0);
5605 1067 : if (GET_MODE (x2) != i2)
5606 : return -1;
5607 1067 : x3 = XEXP (x2, 0);
5608 1067 : if (GET_MODE (x3) != i2)
5609 : return -1;
5610 1067 : x4 = XEXP (x3, 0);
5611 1067 : if (GET_MODE (x4) != i2)
5612 : return -1;
5613 1067 : x5 = XEXP (x4, 0);
5614 1067 : if (GET_MODE (x5) != i1)
5615 0 : return -1;
5616 : return 0;
5617 : }
5618 :
5619 : int
5620 295 : pattern1490 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
5621 : {
5622 295 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5623 295 : rtx x2, x3, x4;
5624 295 : int res ATTRIBUTE_UNUSED;
5625 295 : if (!nonimmediate_operand (operands[0], i3)
5626 295 : || GET_MODE (x1) != i3)
5627 : return -1;
5628 295 : x2 = XEXP (x1, 0);
5629 295 : if (GET_MODE (x2) != i1
5630 295 : || !nonimmediate_operand (operands[1], i2))
5631 0 : return -1;
5632 295 : x3 = XEXP (x2, 1);
5633 295 : if (GET_MODE (x3) != i2)
5634 : return -1;
5635 295 : x4 = XEXP (x1, 1);
5636 295 : if (GET_MODE (x4) != i1)
5637 : return -1;
5638 : return 0;
5639 : }
5640 :
5641 : int
5642 190780 : pattern1497 (rtx x1)
5643 : {
5644 190780 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5645 190780 : rtx x2, x3, x4, x5, x6, x7, x8;
5646 190780 : int res ATTRIBUTE_UNUSED;
5647 190780 : x2 = XVECEXP (x1, 0, 1);
5648 190780 : x3 = XEXP (x2, 1);
5649 190780 : x4 = XEXP (x3, 0);
5650 190780 : if (!rtx_equal_p (x4, operands[1]))
5651 : return -1;
5652 189347 : x5 = XEXP (x3, 1);
5653 189347 : if (!rtx_equal_p (x5, operands[2]))
5654 : return -1;
5655 189347 : x6 = XVECEXP (x1, 0, 0);
5656 189347 : x7 = XEXP (x6, 1);
5657 189347 : x8 = XEXP (x7, 0);
5658 189347 : switch (GET_MODE (x8))
5659 : {
5660 716 : case E_QImode:
5661 716 : return pattern1437 (x3,
5662 716 : E_QImode); /* [-1, 0] */
5663 :
5664 6065 : case E_HImode:
5665 6065 : if (pattern1437 (x3,
5666 : E_HImode) != 0)
5667 : return -1;
5668 : return 1;
5669 :
5670 42321 : case E_SImode:
5671 42321 : if (pattern1438 (x3,
5672 : E_SImode) != 0)
5673 : return -1;
5674 : return 2;
5675 :
5676 140215 : case E_DImode:
5677 140215 : if (pattern1438 (x3,
5678 : E_DImode) != 0)
5679 : return -1;
5680 : return 3;
5681 :
5682 : default:
5683 : return -1;
5684 : }
5685 : }
5686 :
5687 : int
5688 30 : pattern1512 (rtx x1, machine_mode i1)
5689 : {
5690 30 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5691 30 : rtx x2, x3;
5692 30 : int res ATTRIBUTE_UNUSED;
5693 30 : if (!register_operand (operands[0], i1)
5694 30 : || GET_MODE (x1) != i1)
5695 : return -1;
5696 30 : x2 = XEXP (x1, 0);
5697 30 : if (GET_MODE (x2) != i1)
5698 : return -1;
5699 30 : x3 = XEXP (x2, 0);
5700 30 : if (GET_MODE (x3) != i1
5701 30 : || !register_operand (operands[1], i1))
5702 0 : return -1;
5703 : return 0;
5704 : }
5705 :
5706 : int
5707 403746 : pattern1519 (rtx x1, machine_mode i1)
5708 : {
5709 403746 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5710 403746 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5711 403746 : rtx x10, x11;
5712 403746 : int res ATTRIBUTE_UNUSED;
5713 403746 : if (!register_operand (operands[0], i1)
5714 403746 : || GET_MODE (x1) != i1)
5715 : return -1;
5716 380926 : x2 = PATTERN (peep2_next_insn (1));
5717 380926 : switch (GET_CODE (x2))
5718 : {
5719 128100 : case PARALLEL:
5720 128100 : if (XVECLEN (x2, 0) != 2)
5721 : return -1;
5722 128079 : x3 = XVECEXP (x2, 0, 0);
5723 128079 : if (GET_CODE (x3) != SET)
5724 : return -1;
5725 128060 : x4 = XEXP (x3, 1);
5726 128060 : if (GET_CODE (x4) != PLUS
5727 86657 : || GET_MODE (x4) != i1)
5728 : return -1;
5729 82765 : x5 = XVECEXP (x2, 0, 1);
5730 82765 : if (GET_CODE (x5) != CLOBBER)
5731 : return -1;
5732 82765 : x6 = XEXP (x5, 0);
5733 82765 : if (GET_CODE (x6) != REG
5734 82765 : || REGNO (x6) != 17
5735 165530 : || GET_MODE (x6) != E_CCmode)
5736 : return -1;
5737 82765 : x7 = XEXP (x4, 1);
5738 82765 : operands[2] = x7;
5739 82765 : if (!x86_64_immediate_operand (operands[2], E_VOIDmode))
5740 : return -1;
5741 13928 : x8 = XEXP (x4, 0);
5742 13928 : if (!rtx_equal_p (x8, operands[0]))
5743 : return -1;
5744 : return 0;
5745 :
5746 246882 : case SET:
5747 246882 : x9 = XEXP (x2, 1);
5748 246882 : if (GET_CODE (x9) != PLUS
5749 23731 : || GET_MODE (x9) != i1)
5750 : return -1;
5751 22148 : x10 = XEXP (x9, 1);
5752 22148 : operands[2] = x10;
5753 22148 : if (!x86_64_immediate_operand (operands[2], E_VOIDmode))
5754 : return -1;
5755 11237 : x11 = XEXP (x9, 0);
5756 11237 : if (!rtx_equal_p (x11, operands[0]))
5757 : return -1;
5758 : return 1;
5759 :
5760 : default:
5761 : return -1;
5762 : }
5763 : }
5764 :
5765 : int
5766 15505 : pattern1542 (rtx x1)
5767 : {
5768 15505 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5769 15505 : rtx x2, x3, x4, x5, x6, x7, x8;
5770 15505 : int res ATTRIBUTE_UNUSED;
5771 15505 : x2 = XEXP (x1, 1);
5772 15505 : x3 = XEXP (x2, 1);
5773 15505 : switch (GET_CODE (x3))
5774 : {
5775 11524 : case LABEL_REF:
5776 11524 : x4 = XEXP (x2, 2);
5777 11524 : if (GET_CODE (x4) != PC)
5778 : return -1;
5779 11524 : x5 = XEXP (x1, 0);
5780 11524 : if (GET_CODE (x5) != PC)
5781 : return -1;
5782 11524 : x6 = XEXP (x2, 0);
5783 11524 : operands[0] = x6;
5784 11524 : if (!nonmemory_operand (operands[2], E_QImode))
5785 : return -1;
5786 11050 : x7 = XEXP (x3, 0);
5787 11050 : operands[3] = x7;
5788 11050 : x8 = XEXP (x6, 0);
5789 11050 : switch (GET_MODE (x8))
5790 : {
5791 4998 : case E_SImode:
5792 4998 : if (!nonimmediate_operand (operands[1], E_SImode))
5793 : return -1;
5794 : return 0;
5795 :
5796 6052 : case E_DImode:
5797 6052 : if (!nonimmediate_operand (operands[1], E_DImode))
5798 : return -1;
5799 : return 1;
5800 :
5801 : default:
5802 : return -1;
5803 : }
5804 :
5805 12 : case REG:
5806 12 : case SUBREG:
5807 12 : case MEM:
5808 12 : operands[3] = x3;
5809 12 : x5 = XEXP (x1, 0);
5810 12 : operands[0] = x5;
5811 12 : x6 = XEXP (x2, 0);
5812 12 : operands[5] = x6;
5813 12 : if (!register_operand (operands[2], E_QImode))
5814 : return -1;
5815 12 : x4 = XEXP (x2, 2);
5816 12 : operands[4] = x4;
5817 12 : switch (GET_MODE (operands[0]))
5818 : {
5819 0 : case E_HImode:
5820 0 : res = pattern1541 (x2,
5821 : E_HImode);
5822 0 : if (res >= 0)
5823 0 : return res + 2; /* [2, 3] */
5824 : return -1;
5825 :
5826 12 : case E_SImode:
5827 12 : res = pattern1541 (x2,
5828 : E_SImode);
5829 12 : if (res >= 0)
5830 8 : return res + 4; /* [4, 5] */
5831 : return -1;
5832 :
5833 0 : case E_DImode:
5834 0 : res = pattern1541 (x2,
5835 : E_DImode);
5836 0 : if (res >= 0)
5837 0 : return res + 6; /* [6, 7] */
5838 : return -1;
5839 :
5840 : default:
5841 : return -1;
5842 : }
5843 :
5844 : default:
5845 : return -1;
5846 : }
5847 : }
5848 :
5849 : int
5850 498 : pattern1569 (rtx x1)
5851 : {
5852 498 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5853 498 : rtx x2, x3, x4, x5, x6, x7;
5854 498 : int res ATTRIBUTE_UNUSED;
5855 498 : x2 = XVECEXP (x1, 0, 2);
5856 498 : if (XWINT (x2, 0) != 2L)
5857 : return -1;
5858 498 : x3 = XVECEXP (x1, 0, 3);
5859 498 : if (XWINT (x3, 0) != 3L)
5860 : return -1;
5861 498 : x4 = XVECEXP (x1, 0, 4);
5862 498 : if (XWINT (x4, 0) != 4L)
5863 : return -1;
5864 345 : x5 = XVECEXP (x1, 0, 5);
5865 345 : if (XWINT (x5, 0) != 5L)
5866 : return -1;
5867 334 : x6 = XVECEXP (x1, 0, 6);
5868 334 : if (XWINT (x6, 0) != 6L)
5869 : return -1;
5870 334 : x7 = XVECEXP (x1, 0, 7);
5871 334 : if (XWINT (x7, 0) != 7L)
5872 0 : return -1;
5873 : return 0;
5874 : }
5875 :
5876 : int
5877 34 : pattern1580 (rtx x1, machine_mode i1)
5878 : {
5879 34 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5880 34 : rtx x2, x3;
5881 34 : int res ATTRIBUTE_UNUSED;
5882 34 : if (!nonimmediate_operand (operands[0], i1)
5883 34 : || GET_MODE (x1) != i1)
5884 : return -1;
5885 34 : x2 = XEXP (x1, 0);
5886 34 : if (GET_MODE (x2) != i1
5887 34 : || !nonimmediate_operand (operands[1], i1))
5888 0 : return -1;
5889 34 : x3 = XEXP (x2, 1);
5890 34 : if (GET_MODE (x3) != i1
5891 34 : || !x86_64_general_operand (operands[2], i1))
5892 0 : return -1;
5893 : return 0;
5894 : }
5895 :
5896 : int
5897 0 : pattern1588 (rtx x1, machine_mode i1)
5898 : {
5899 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5900 0 : rtx x2, x3, x4, x5;
5901 0 : int res ATTRIBUTE_UNUSED;
5902 0 : x2 = XVECEXP (x1, 0, 0);
5903 0 : x3 = XEXP (x2, 0);
5904 0 : if (GET_MODE (x3) != i1
5905 0 : || !register_operand (operands[2], i1))
5906 0 : return -1;
5907 0 : switch (GET_MODE (operands[1]))
5908 : {
5909 0 : case E_SImode:
5910 0 : if (!register_operand (operands[1], E_SImode)
5911 0 : || !register_operand (operands[0], E_SImode))
5912 0 : return -1;
5913 0 : x4 = XVECEXP (x1, 0, 1);
5914 0 : x5 = XEXP (x4, 1);
5915 0 : if (GET_MODE (x5) != E_SImode)
5916 : return -1;
5917 : return 0;
5918 :
5919 0 : case E_DImode:
5920 0 : if (!register_operand (operands[1], E_DImode)
5921 0 : || !register_operand (operands[0], E_DImode))
5922 0 : return -1;
5923 0 : x4 = XVECEXP (x1, 0, 1);
5924 0 : x5 = XEXP (x4, 1);
5925 0 : if (GET_MODE (x5) != E_DImode)
5926 : return -1;
5927 : return 1;
5928 :
5929 : default:
5930 : return -1;
5931 : }
5932 : }
5933 :
5934 : int
5935 148 : pattern1602 (rtx x1, machine_mode i1)
5936 : {
5937 148 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5938 148 : rtx x2, x3;
5939 148 : int res ATTRIBUTE_UNUSED;
5940 148 : if (!register_operand (operands[0], i1)
5941 148 : || GET_MODE (x1) != i1)
5942 : return -1;
5943 127 : x2 = XVECEXP (x1, 0, 0);
5944 127 : if (GET_MODE (x2) != i1)
5945 : return -1;
5946 127 : x3 = XEXP (x2, 0);
5947 127 : if (GET_MODE (x3) != i1
5948 127 : || !register_operand (operands[2], i1)
5949 238 : || !register_operand (operands[1], i1))
5950 20 : return -1;
5951 : return 0;
5952 : }
5953 :
5954 : int
5955 976 : pattern1609 (rtx x1, machine_mode i1, machine_mode i2)
5956 : {
5957 976 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5958 976 : int res ATTRIBUTE_UNUSED;
5959 976 : if (!register_operand (operands[2], i2)
5960 968 : || GET_MODE (x1) != i2
5961 968 : || !register_operand (operands[3], i2)
5962 968 : || !const0_operand (operands[4], i2)
5963 1944 : || !register_operand (operands[5], i1))
5964 24 : return -1;
5965 : return 0;
5966 : }
5967 :
5968 : int
5969 507 : pattern1616 (rtx x1, machine_mode i1, machine_mode i2)
5970 : {
5971 507 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5972 507 : rtx x2, x3, x4, x5;
5973 507 : int res ATTRIBUTE_UNUSED;
5974 507 : if (!register_operand (operands[0], i2)
5975 507 : || GET_MODE (x1) != i2)
5976 : return -1;
5977 493 : x2 = XVECEXP (x1, 0, 0);
5978 493 : if (GET_MODE (x2) != i2)
5979 : return -1;
5980 493 : x3 = XEXP (x2, 0);
5981 493 : if (GET_MODE (x3) != i2)
5982 : return -1;
5983 493 : x4 = XEXP (x3, 0);
5984 493 : if (GET_MODE (x4) != i2
5985 493 : || !register_operand (operands[1], i2))
5986 5 : return -1;
5987 488 : x5 = XEXP (x3, 2);
5988 488 : return pattern1609 (x5,
5989 : i1,
5990 488 : i2); /* [-1, 0] */
5991 : }
5992 :
5993 : int
5994 638 : pattern1625 (rtx x1, machine_mode i1)
5995 : {
5996 638 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5997 638 : rtx x2, x3, x4;
5998 638 : int res ATTRIBUTE_UNUSED;
5999 638 : if (!vsib_mem_operator (operands[5], i1)
6000 638 : || !register_operand (operands[6], E_QImode))
6001 220 : return -1;
6002 418 : x2 = XEXP (x1, 1);
6003 418 : if (GET_MODE (x2) != i1
6004 418 : || !register_operand (operands[3], i1))
6005 74 : return -1;
6006 344 : x3 = XEXP (x1, 0);
6007 344 : x4 = XEXP (x3, 0);
6008 344 : switch (GET_MODE (x4))
6009 : {
6010 0 : case E_SImode:
6011 0 : return pattern1624 (
6012 0 : E_SImode); /* [-1, 1] */
6013 :
6014 344 : case E_DImode:
6015 344 : res = pattern1624 (
6016 : E_DImode);
6017 344 : if (res >= 0)
6018 204 : return res + 2; /* [2, 3] */
6019 : return -1;
6020 :
6021 : default:
6022 : return -1;
6023 : }
6024 : }
6025 :
6026 : int
6027 1436 : pattern1637 (rtx x1, machine_mode i1)
6028 : {
6029 1436 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6030 1436 : int res ATTRIBUTE_UNUSED;
6031 1436 : if (!register_operand (operands[0], i1)
6032 1423 : || GET_MODE (x1) != i1
6033 1423 : || !register_operand (operands[1], i1)
6034 1405 : || !const_0_to_7_operand (operands[2], E_VOIDmode)
6035 1405 : || !const_0_to_7_operand (operands[3], E_VOIDmode)
6036 1405 : || !const_0_to_7_operand (operands[4], E_VOIDmode)
6037 1405 : || !const_0_to_7_operand (operands[5], E_VOIDmode)
6038 1405 : || !const_0_to_7_operand (operands[6], E_VOIDmode)
6039 1405 : || !const_0_to_7_operand (operands[7], E_VOIDmode)
6040 1405 : || !const_0_to_7_operand (operands[8], E_VOIDmode)
6041 2841 : || !const_0_to_7_operand (operands[9], E_VOIDmode))
6042 31 : return -1;
6043 : return 0;
6044 : }
6045 :
6046 : int
6047 1 : pattern1648 (rtx x1, machine_mode i1)
6048 : {
6049 1 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6050 1 : rtx x2;
6051 1 : int res ATTRIBUTE_UNUSED;
6052 1 : if (!register_operand (operands[0], i1)
6053 1 : || GET_MODE (x1) != i1)
6054 : return -1;
6055 1 : x2 = XEXP (x1, 0);
6056 1 : if (GET_MODE (x2) != i1
6057 1 : || !nonimmediate_operand (operands[1], i1)
6058 2 : || !register_operand (operands[2], i1))
6059 0 : return -1;
6060 : return 0;
6061 : }
6062 :
6063 : int
6064 8 : pattern1658 (rtx x1, machine_mode i1)
6065 : {
6066 8 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6067 8 : rtx x2, x3, x4, x5;
6068 8 : int res ATTRIBUTE_UNUSED;
6069 8 : if (!register_operand (operands[0], i1)
6070 8 : || GET_MODE (x1) != i1)
6071 : return -1;
6072 8 : x2 = XEXP (x1, 0);
6073 8 : if (GET_MODE (x2) != i1)
6074 : return -1;
6075 8 : x3 = XVECEXP (x2, 0, 2);
6076 8 : if (GET_MODE (x3) != i1)
6077 : return -1;
6078 8 : x4 = XEXP (x1, 1);
6079 8 : if (GET_MODE (x4) != i1)
6080 : return -1;
6081 8 : x5 = XEXP (x4, 0);
6082 8 : if (GET_MODE (x5) != i1)
6083 0 : return -1;
6084 : return 0;
6085 : }
6086 :
6087 : int
6088 453 : pattern1665 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
6089 : {
6090 453 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6091 453 : rtx x2, x3, x4, x5, x6, x7, x8;
6092 453 : int res ATTRIBUTE_UNUSED;
6093 453 : if (!register_operand (operands[0], i2)
6094 453 : || GET_MODE (x1) != i2)
6095 : return -1;
6096 437 : x2 = XEXP (x1, 0);
6097 437 : if (GET_MODE (x2) != i2)
6098 : return -1;
6099 437 : x3 = XEXP (x2, 0);
6100 437 : if (GET_MODE (x3) != i3)
6101 : return -1;
6102 437 : x4 = XEXP (x3, 0);
6103 437 : if (GET_MODE (x4) != i3)
6104 : return -1;
6105 437 : x5 = XEXP (x4, 0);
6106 437 : if (GET_MODE (x5) != i3)
6107 : return -1;
6108 437 : x6 = XEXP (x5, 0);
6109 437 : if (GET_MODE (x6) != i3)
6110 : return -1;
6111 437 : x7 = XEXP (x6, 0);
6112 437 : if (GET_MODE (x7) != i3
6113 437 : || !vector_operand (operands[1], i2))
6114 0 : return -1;
6115 437 : x8 = XEXP (x6, 1);
6116 437 : if (GET_MODE (x8) != i3
6117 437 : || !vector_operand (operands[2], i2)
6118 437 : || !const1_operand (operands[3], i2)
6119 437 : || !nonimm_or_0_operand (operands[4], i2)
6120 859 : || !register_operand (operands[5], i1))
6121 61 : return -1;
6122 : return 0;
6123 : }
6124 :
6125 : int
6126 326 : pattern1680 (machine_mode i1)
6127 : {
6128 326 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6129 326 : int res ATTRIBUTE_UNUSED;
6130 326 : if (!vsib_address_operand (operands[4], i1))
6131 : return -1;
6132 326 : switch (GET_MODE (operands[3]))
6133 : {
6134 154 : case E_V4SImode:
6135 154 : if (!register_operand (operands[3], E_V4SImode))
6136 : return -1;
6137 : return 0;
6138 :
6139 172 : case E_V2DImode:
6140 172 : if (!register_operand (operands[3], E_V2DImode))
6141 : return -1;
6142 : return 1;
6143 :
6144 : default:
6145 : return -1;
6146 : }
6147 : }
6148 :
6149 : int
6150 0 : pattern1688 (rtx x1, machine_mode i1, machine_mode i2)
6151 : {
6152 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6153 0 : rtx x2, x3;
6154 0 : int res ATTRIBUTE_UNUSED;
6155 0 : if (!register_operand (operands[0], i1)
6156 0 : || !addsub_vs_operator (operands[7], i1)
6157 0 : || GET_MODE (x1) != i2)
6158 0 : return -1;
6159 0 : x2 = XEXP (x1, 0);
6160 0 : if (GET_MODE (x2) != i1
6161 0 : || !register_operand (operands[1], i1)
6162 0 : || !vector_operand (operands[2], i1))
6163 0 : return -1;
6164 0 : x3 = XEXP (x1, 1);
6165 0 : if (GET_MODE (x3) != i1
6166 0 : || !vector_operand (operands[3], i1)
6167 0 : || !vector_operand (operands[4], i1))
6168 0 : return -1;
6169 : return 0;
6170 : }
6171 :
6172 : int
6173 25423 : pattern1700 ()
6174 : {
6175 25423 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6176 25423 : int res ATTRIBUTE_UNUSED;
6177 25423 : if (!const_0_to_7_operand (operands[4], E_VOIDmode)
6178 18379 : || !const_0_to_7_operand (operands[5], E_VOIDmode)
6179 13275 : || !const_0_to_7_operand (operands[6], E_VOIDmode)
6180 13233 : || !const_8_to_15_operand (operands[7], E_VOIDmode)
6181 7471 : || !const_8_to_15_operand (operands[8], E_VOIDmode)
6182 7471 : || !const_8_to_15_operand (operands[9], E_VOIDmode)
6183 32894 : || !const_8_to_15_operand (operands[10], E_VOIDmode))
6184 17952 : return -1;
6185 : return 0;
6186 : }
6187 :
6188 : int
6189 11 : pattern1710 (rtx x1, machine_mode i1)
6190 : {
6191 11 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6192 11 : int res ATTRIBUTE_UNUSED;
6193 11 : if (!nonimmediate_operand (operands[1], i1)
6194 11 : || !register_operand (operands[0], i1)
6195 11 : || GET_MODE (x1) != i1
6196 22 : || !register_operand (operands[2], i1))
6197 0 : return -1;
6198 : return 0;
6199 : }
6200 :
6201 : int
6202 9936 : pattern1715 (rtx x1)
6203 : {
6204 9936 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6205 9936 : rtx x2, x3, x4, x5, x6, x7, x8;
6206 9936 : int res ATTRIBUTE_UNUSED;
6207 9936 : x2 = XVECEXP (x1, 0, 0);
6208 9936 : x3 = XEXP (x2, 1);
6209 9936 : x4 = XVECEXP (x3, 0, 3);
6210 9936 : operands[4] = x4;
6211 9936 : if (!const_int_operand (operands[4], E_SImode))
6212 : return -1;
6213 9936 : x5 = XVECEXP (x3, 0, 1);
6214 9936 : if (!rtx_equal_p (x5, operands[0]))
6215 : return -1;
6216 7067 : x6 = XEXP (x2, 0);
6217 7067 : if (!rtx_equal_p (x6, operands[0]))
6218 : return -1;
6219 7067 : x7 = XVECEXP (x1, 0, 1);
6220 7067 : x8 = XEXP (x7, 0);
6221 7067 : if (!rtx_equal_p (x8, operands[2]))
6222 : return -1;
6223 : return 0;
6224 : }
6225 :
6226 : int
6227 432 : pattern1723 (machine_mode i1)
6228 : {
6229 432 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6230 432 : int res ATTRIBUTE_UNUSED;
6231 432 : if (!vsib_address_operand (operands[0], i1))
6232 : return -1;
6233 409 : switch (GET_MODE (operands[2]))
6234 : {
6235 208 : case E_V16SImode:
6236 208 : if (!register_operand (operands[2], E_V16SImode)
6237 151 : || !register_operand (operands[6], E_HImode)
6238 270 : || !register_operand (operands[3], E_V16SFmode))
6239 167 : return -1;
6240 : return 0;
6241 :
6242 201 : case E_V8DImode:
6243 201 : if (!register_operand (operands[2], E_V8DImode)
6244 184 : || !register_operand (operands[6], E_QImode)
6245 291 : || !register_operand (operands[3], E_V8SFmode))
6246 165 : return -1;
6247 : return 1;
6248 :
6249 : default:
6250 : return -1;
6251 : }
6252 : }
6253 :
6254 : int
6255 688 : pattern1734 (machine_mode i1)
6256 : {
6257 688 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6258 688 : int res ATTRIBUTE_UNUSED;
6259 688 : if (!vsib_address_operand (operands[0], i1))
6260 : return -1;
6261 662 : switch (GET_MODE (operands[2]))
6262 : {
6263 358 : case E_V4SImode:
6264 358 : if (!register_operand (operands[2], E_V4SImode))
6265 : return -1;
6266 : return 0;
6267 :
6268 304 : case E_V4DImode:
6269 304 : if (!register_operand (operands[2], E_V4DImode))
6270 : return -1;
6271 : return 1;
6272 :
6273 : default:
6274 : return -1;
6275 : }
6276 : }
6277 :
6278 : int
6279 124 : pattern1742 (machine_mode i1)
6280 : {
6281 124 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6282 124 : int res ATTRIBUTE_UNUSED;
6283 124 : if (!vsib_address_operand (operands[3], i1))
6284 : return -1;
6285 120 : switch (GET_MODE (operands[2]))
6286 : {
6287 34 : case E_V8SImode:
6288 34 : if (!register_operand (operands[2], E_V8SImode))
6289 : return -1;
6290 : return 0;
6291 :
6292 86 : case E_V4DImode:
6293 86 : if (!register_operand (operands[2], E_V4DImode))
6294 : return -1;
6295 : return 1;
6296 :
6297 : default:
6298 : return -1;
6299 : }
6300 : }
6301 :
6302 : int
6303 3444 : pattern1751 (rtx x1)
6304 : {
6305 3444 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6306 3444 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6307 3444 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
6308 3444 : int res ATTRIBUTE_UNUSED;
6309 3444 : if (!register_operand (operands[0], E_SImode))
6310 : return -1;
6311 3436 : x2 = XVECEXP (x1, 0, 0);
6312 3436 : x3 = XEXP (x2, 1);
6313 3436 : x4 = XVECEXP (x3, 0, 0);
6314 3436 : operands[2] = x4;
6315 3436 : if (!register_operand (operands[2], E_V16QImode))
6316 : return -1;
6317 3344 : x5 = XVECEXP (x3, 0, 1);
6318 3344 : operands[3] = x5;
6319 3344 : if (!nonimmediate_operand (operands[3], E_V16QImode))
6320 : return -1;
6321 3324 : x6 = XVECEXP (x3, 0, 2);
6322 3324 : operands[4] = x6;
6323 3324 : if (!const_0_to_255_operand (operands[4], E_SImode))
6324 : return -1;
6325 3324 : x7 = XVECEXP (x1, 0, 1);
6326 3324 : x8 = XEXP (x7, 0);
6327 3324 : operands[1] = x8;
6328 3324 : if (!register_operand (operands[1], E_V16QImode))
6329 : return -1;
6330 3284 : x9 = XEXP (x7, 1);
6331 3284 : x10 = XVECEXP (x9, 0, 0);
6332 3284 : if (!rtx_equal_p (x10, operands[2]))
6333 : return -1;
6334 3284 : x11 = XVECEXP (x9, 0, 1);
6335 3284 : if (!rtx_equal_p (x11, operands[3]))
6336 : return -1;
6337 3284 : x12 = XVECEXP (x9, 0, 2);
6338 3284 : if (!rtx_equal_p (x12, operands[4]))
6339 : return -1;
6340 3284 : x13 = XVECEXP (x1, 0, 2);
6341 3284 : x14 = XEXP (x13, 1);
6342 3284 : x15 = XVECEXP (x14, 0, 0);
6343 3284 : if (!rtx_equal_p (x15, operands[2]))
6344 : return -1;
6345 3174 : x16 = XVECEXP (x14, 0, 1);
6346 3174 : if (!rtx_equal_p (x16, operands[3]))
6347 : return -1;
6348 3064 : x17 = XVECEXP (x14, 0, 2);
6349 3064 : if (!rtx_equal_p (x17, operands[4]))
6350 : return -1;
6351 : return 0;
6352 : }
6353 :
6354 : int
6355 526 : pattern1771 (rtx x1, machine_mode i1, machine_mode i2)
6356 : {
6357 526 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6358 526 : rtx x2, x3;
6359 526 : int res ATTRIBUTE_UNUSED;
6360 526 : if (!register_operand (operands[0], i2)
6361 526 : || GET_MODE (x1) != i2
6362 526 : || !register_operand (operands[1], i2)
6363 526 : || !register_operand (operands[7], E_QImode)
6364 519 : || !vsib_mem_operator (operands[6], i1)
6365 1045 : || !scratch_operand (operands[2], E_QImode))
6366 7 : return -1;
6367 519 : x2 = XVECEXP (x1, 0, 2);
6368 519 : x3 = XEXP (x2, 0);
6369 519 : switch (GET_MODE (x3))
6370 : {
6371 0 : case E_SImode:
6372 0 : return pattern1770 (
6373 0 : E_SImode); /* [-1, 1] */
6374 :
6375 519 : case E_DImode:
6376 519 : res = pattern1770 (
6377 : E_DImode);
6378 519 : if (res >= 0)
6379 488 : return res + 2; /* [2, 3] */
6380 : return -1;
6381 :
6382 : default:
6383 : return -1;
6384 : }
6385 : }
6386 :
6387 : int
6388 2614 : pattern1785 (rtx x1)
6389 : {
6390 2614 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6391 2614 : rtx x2, x3, x4, x5, x6;
6392 2614 : int res ATTRIBUTE_UNUSED;
6393 2614 : x2 = XVECEXP (x1, 0, 0);
6394 2614 : x3 = XEXP (x2, 1);
6395 2614 : x4 = XEXP (x3, 0);
6396 2614 : switch (GET_MODE (x4))
6397 : {
6398 354 : case E_HImode:
6399 354 : if (!memory_operand (operands[0], E_HImode))
6400 : return -1;
6401 354 : x5 = XVECEXP (x1, 0, 1);
6402 354 : x6 = XEXP (x5, 0);
6403 354 : if (GET_MODE (x6) != E_HImode
6404 354 : || !nonmemory_operand (operands[1], E_HImode))
6405 0 : return -1;
6406 : return 0;
6407 :
6408 1709 : case E_SImode:
6409 1709 : if (!memory_operand (operands[0], E_SImode))
6410 : return -1;
6411 1709 : x5 = XVECEXP (x1, 0, 1);
6412 1709 : x6 = XEXP (x5, 0);
6413 1709 : if (GET_MODE (x6) != E_SImode
6414 1709 : || !nonmemory_operand (operands[1], E_SImode))
6415 0 : return -1;
6416 : return 1;
6417 :
6418 551 : case E_DImode:
6419 551 : if (!memory_operand (operands[0], E_DImode))
6420 : return -1;
6421 551 : x5 = XVECEXP (x1, 0, 1);
6422 551 : x6 = XEXP (x5, 0);
6423 551 : if (GET_MODE (x6) != E_DImode
6424 551 : || !nonmemory_operand (operands[1], E_DImode))
6425 31 : return -1;
6426 : return 2;
6427 :
6428 : default:
6429 : return -1;
6430 : }
6431 : }
6432 :
6433 : int
6434 952 : pattern1802 (rtx x1, machine_mode i1, machine_mode i2)
6435 : {
6436 952 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6437 952 : rtx x2, x3;
6438 952 : int res ATTRIBUTE_UNUSED;
6439 952 : if (!register_operand (operands[0], i1)
6440 945 : || GET_MODE (x1) != i1
6441 945 : || !vsib_mem_operator (operands[6], i2)
6442 1897 : || !scratch_operand (operands[1], i1))
6443 7 : return -1;
6444 945 : x2 = XVECEXP (x1, 0, 1);
6445 945 : x3 = XEXP (x2, 0);
6446 945 : switch (GET_MODE (x3))
6447 : {
6448 : case E_SImode:
6449 : return 0;
6450 :
6451 754 : case E_DImode:
6452 754 : return 1;
6453 :
6454 : default:
6455 : return -1;
6456 : }
6457 : }
6458 :
6459 : int
6460 5087 : pattern1809 (rtx x1, machine_mode i1, machine_mode i2, rtx_code i3)
6461 : {
6462 5087 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6463 5087 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6464 5087 : rtx x10, x11, x12, x13, x14, x15;
6465 5087 : int res ATTRIBUTE_UNUSED;
6466 5087 : if (GET_CODE (x1) != MULT
6467 5087 : || GET_MODE (x1) != i2)
6468 : return -1;
6469 5087 : x2 = XEXP (x1, 0);
6470 5087 : if (GET_CODE (x2) != i3
6471 5087 : || GET_MODE (x2) != i2)
6472 : return -1;
6473 5087 : x3 = XEXP (x2, 0);
6474 5087 : if (GET_CODE (x3) != VEC_SELECT
6475 5087 : || GET_MODE (x3) != i1)
6476 : return -1;
6477 5087 : x4 = XEXP (x3, 1);
6478 5087 : if (GET_CODE (x4) != PARALLEL
6479 5087 : || XVECLEN (x4, 0) != 4)
6480 : return -1;
6481 5087 : x5 = XVECEXP (x4, 0, 0);
6482 5087 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
6483 : return -1;
6484 5087 : x6 = XVECEXP (x4, 0, 1);
6485 5087 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
6486 : return -1;
6487 5087 : x7 = XVECEXP (x4, 0, 2);
6488 5087 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
6489 : return -1;
6490 5087 : x8 = XVECEXP (x4, 0, 3);
6491 5087 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
6492 : return -1;
6493 5087 : x9 = XEXP (x1, 1);
6494 5087 : if (GET_CODE (x9) != SIGN_EXTEND
6495 5087 : || GET_MODE (x9) != i2)
6496 : return -1;
6497 5087 : x10 = XEXP (x9, 0);
6498 5087 : if (GET_CODE (x10) != VEC_SELECT
6499 5087 : || GET_MODE (x10) != i1)
6500 : return -1;
6501 5087 : x11 = XEXP (x10, 1);
6502 5087 : if (GET_CODE (x11) != PARALLEL
6503 5087 : || XVECLEN (x11, 0) != 4)
6504 : return -1;
6505 5087 : x12 = XVECEXP (x11, 0, 0);
6506 5087 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
6507 : return -1;
6508 5087 : x13 = XVECEXP (x11, 0, 1);
6509 5087 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
6510 : return -1;
6511 5087 : x14 = XVECEXP (x11, 0, 2);
6512 5087 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
6513 : return -1;
6514 5087 : x15 = XVECEXP (x11, 0, 3);
6515 5087 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
6516 0 : return -1;
6517 : return 0;
6518 : }
6519 :
6520 : int
6521 63 : pattern1836 (rtx x1, machine_mode i1)
6522 : {
6523 63 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6524 63 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6525 63 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
6526 63 : rtx x18, x19, x20;
6527 63 : int res ATTRIBUTE_UNUSED;
6528 63 : if (!const_int_operand (operands[1], i1))
6529 : return -1;
6530 63 : x2 = XVECEXP (x1, 0, 0);
6531 63 : x3 = XEXP (x2, 1);
6532 63 : if (XVECLEN (x3, 0) != 4
6533 10 : || XINT (x3, 1) != 109)
6534 : return -1;
6535 10 : x4 = XVECEXP (x1, 0, 1);
6536 10 : x5 = XEXP (x4, 1);
6537 10 : if (GET_CODE (x5) != UNSPEC_VOLATILE
6538 10 : || XVECLEN (x5, 0) != 1
6539 10 : || XINT (x5, 1) != 109)
6540 : return -1;
6541 10 : x6 = XVECEXP (x5, 0, 0);
6542 10 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6543 : return -1;
6544 10 : x7 = XVECEXP (x1, 0, 2);
6545 10 : if (GET_CODE (x7) != SET)
6546 : return -1;
6547 10 : x8 = XEXP (x7, 1);
6548 10 : if (GET_CODE (x8) != UNSPEC_VOLATILE
6549 10 : || XVECLEN (x8, 0) != 1
6550 10 : || XINT (x8, 1) != 109
6551 10 : || GET_MODE (x8) != E_CCZmode)
6552 : return -1;
6553 10 : x9 = XVECEXP (x8, 0, 0);
6554 10 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6555 : return -1;
6556 10 : x10 = XEXP (x7, 0);
6557 10 : if (GET_CODE (x10) != REG
6558 10 : || REGNO (x10) != 17
6559 20 : || GET_MODE (x10) != E_CCZmode)
6560 : return -1;
6561 10 : x11 = XEXP (x2, 0);
6562 10 : operands[2] = x11;
6563 10 : x12 = XVECEXP (x3, 0, 0);
6564 10 : operands[3] = x12;
6565 10 : x13 = XVECEXP (x3, 0, 2);
6566 10 : operands[4] = x13;
6567 10 : x14 = XVECEXP (x3, 0, 3);
6568 10 : operands[5] = x14;
6569 10 : if (!const_int_operand (operands[5], E_SImode))
6570 : return -1;
6571 10 : x15 = XVECEXP (x3, 0, 1);
6572 10 : if (!rtx_equal_p (x15, operands[2]))
6573 : return -1;
6574 10 : x16 = XEXP (x4, 0);
6575 10 : if (!rtx_equal_p (x16, operands[3]))
6576 : return -1;
6577 10 : x17 = PATTERN (peep2_next_insn (2));
6578 10 : x18 = XEXP (x17, 1);
6579 10 : x19 = XEXP (x18, 0);
6580 10 : if (!rtx_equal_p (x19, operands[2]))
6581 : return -1;
6582 10 : x20 = XEXP (x18, 1);
6583 10 : if (!rtx_equal_p (x20, operands[1]))
6584 : return -1;
6585 10 : switch (GET_MODE (operands[2]))
6586 : {
6587 0 : case E_QImode:
6588 0 : return pattern1835 (x1,
6589 0 : E_QImode); /* [-1, 0] */
6590 :
6591 2 : case E_HImode:
6592 2 : if (pattern1835 (x1,
6593 : E_HImode) != 0)
6594 : return -1;
6595 : return 1;
6596 :
6597 4 : case E_SImode:
6598 4 : if (pattern1835 (x1,
6599 : E_SImode) != 0)
6600 : return -1;
6601 : return 2;
6602 :
6603 4 : case E_DImode:
6604 4 : if (pattern1835 (x1,
6605 : E_DImode) != 0)
6606 : return -1;
6607 : return 3;
6608 :
6609 : default:
6610 : return -1;
6611 : }
6612 : }
6613 :
6614 : int
6615 751 : pattern1866 (machine_mode i1)
6616 : {
6617 751 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6618 751 : int res ATTRIBUTE_UNUSED;
6619 751 : if (!vsib_address_operand (operands[2], i1))
6620 : return -1;
6621 739 : switch (GET_MODE (operands[3]))
6622 : {
6623 500 : case E_V8SImode:
6624 500 : if (!register_operand (operands[3], E_V8SImode)
6625 500 : || !register_operand (operands[4], E_V8SFmode))
6626 121 : return -1;
6627 : return 0;
6628 :
6629 239 : case E_V4DImode:
6630 239 : if (!register_operand (operands[3], E_V4DImode)
6631 239 : || !register_operand (operands[4], E_V4SFmode))
6632 58 : return -1;
6633 : return 1;
6634 :
6635 : default:
6636 : return -1;
6637 : }
6638 : }
6639 :
6640 : int
6641 208 : pattern1874 (rtx x1, int i1, int i2, int i3, int i4, int i5)
6642 : {
6643 208 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6644 208 : rtx x2, x3, x4, x5, x6;
6645 208 : int res ATTRIBUTE_UNUSED;
6646 208 : x2 = XVECEXP (x1, 0, 22);
6647 208 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + i5])
6648 : return -1;
6649 208 : x3 = XVECEXP (x1, 0, 23);
6650 208 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + i4])
6651 : return -1;
6652 208 : x4 = XVECEXP (x1, 0, 24);
6653 208 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + i3])
6654 : return -1;
6655 208 : x5 = XVECEXP (x1, 0, 25);
6656 208 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + i2])
6657 : return -1;
6658 208 : x6 = XVECEXP (x1, 0, 26);
6659 208 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
6660 0 : return -1;
6661 : return 0;
6662 : }
6663 :
6664 : int
6665 400 : pattern1883 (rtx x1)
6666 : {
6667 400 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6668 400 : rtx x2, x3, x4, x5;
6669 400 : int res ATTRIBUTE_UNUSED;
6670 400 : x2 = XVECEXP (x1, 0, 8);
6671 400 : if (XWINT (x2, 0) != 12L)
6672 : return -1;
6673 400 : x3 = XVECEXP (x1, 0, 9);
6674 400 : if (XWINT (x3, 0) != 28L)
6675 : return -1;
6676 400 : x4 = XVECEXP (x1, 0, 10);
6677 400 : if (XWINT (x4, 0) != 13L)
6678 : return -1;
6679 400 : x5 = XVECEXP (x1, 0, 11);
6680 400 : if (XWINT (x5, 0) != 29L)
6681 0 : return -1;
6682 : return 0;
6683 : }
6684 :
6685 : int
6686 59917 : pattern1889 (rtx x1, machine_mode i1, machine_mode i2)
6687 : {
6688 59917 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6689 59917 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6690 59917 : rtx x10, x11;
6691 59917 : int res ATTRIBUTE_UNUSED;
6692 59917 : x2 = XVECEXP (x1, 0, 0);
6693 59917 : x3 = XEXP (x2, 1);
6694 59917 : x4 = XEXP (x3, 0);
6695 59917 : x5 = XEXP (x4, 0);
6696 59917 : if (GET_MODE (x5) != i1)
6697 : return -1;
6698 59917 : x6 = XEXP (x5, 0);
6699 59917 : if (GET_MODE (x6) != i1
6700 59917 : || !ix86_carry_flag_operator (operands[5], i1)
6701 59917 : || !nonimmediate_operand (operands[1], i1)
6702 119250 : || !nonimmediate_operand (operands[2], i1))
6703 584 : return -1;
6704 59333 : x7 = XEXP (x3, 1);
6705 59333 : if (GET_MODE (x7) != i2
6706 59333 : || !ix86_carry_flag_operator (operands[4], i2))
6707 0 : return -1;
6708 59333 : x8 = XEXP (x7, 1);
6709 59333 : if (GET_MODE (x8) != i2
6710 59333 : || !nonimmediate_operand (operands[0], i1))
6711 0 : return -1;
6712 59333 : x9 = XVECEXP (x1, 0, 1);
6713 59333 : x10 = XEXP (x9, 1);
6714 59333 : if (GET_MODE (x10) != i1)
6715 : return -1;
6716 59333 : x11 = XEXP (x10, 0);
6717 59333 : if (GET_MODE (x11) != i1)
6718 : return -1;
6719 : return 0;
6720 : }
6721 :
6722 : int
6723 351 : pattern1896 (rtx x1)
6724 : {
6725 351 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6726 351 : rtx x2, x3, x4, x5, x6, x7, x8;
6727 351 : int res ATTRIBUTE_UNUSED;
6728 351 : x2 = XEXP (x1, 1);
6729 351 : x3 = XVECEXP (x2, 0, 12);
6730 351 : if (XWINT (x3, 0) != 14L)
6731 : return -1;
6732 351 : x4 = XVECEXP (x2, 0, 13);
6733 351 : if (XWINT (x4, 0) != 30L)
6734 : return -1;
6735 351 : x5 = XVECEXP (x2, 0, 14);
6736 351 : if (XWINT (x5, 0) != 15L)
6737 : return -1;
6738 351 : x6 = XVECEXP (x2, 0, 15);
6739 351 : if (XWINT (x6, 0) != 31L)
6740 : return -1;
6741 351 : x7 = XEXP (x1, 0);
6742 351 : x8 = XEXP (x7, 1);
6743 351 : operands[2] = x8;
6744 351 : return 0;
6745 : }
6746 :
6747 : int
6748 666 : pattern1900 (rtx x1)
6749 : {
6750 666 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6751 666 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6752 666 : rtx x10, x11;
6753 666 : int res ATTRIBUTE_UNUSED;
6754 666 : x2 = XEXP (x1, 0);
6755 666 : x3 = XEXP (x2, 1);
6756 666 : x4 = XVECEXP (x3, 0, 12);
6757 666 : if (XWINT (x4, 0) != 14L)
6758 : return -1;
6759 666 : x5 = XVECEXP (x3, 0, 13);
6760 666 : if (XWINT (x5, 0) != 30L)
6761 : return -1;
6762 666 : x6 = XVECEXP (x3, 0, 14);
6763 666 : if (XWINT (x6, 0) != 15L)
6764 : return -1;
6765 666 : x7 = XVECEXP (x3, 0, 15);
6766 666 : if (XWINT (x7, 0) != 31L)
6767 : return -1;
6768 666 : x8 = XEXP (x2, 0);
6769 666 : x9 = XEXP (x8, 1);
6770 666 : operands[2] = x9;
6771 666 : x10 = XEXP (x1, 1);
6772 666 : operands[3] = x10;
6773 666 : x11 = XEXP (x1, 2);
6774 666 : operands[4] = x11;
6775 666 : return 0;
6776 : }
6777 :
6778 : int
6779 968 : pattern1909 (rtx x1, machine_mode i1, machine_mode i2)
6780 : {
6781 968 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6782 968 : rtx x2, x3, x4, x5, x6, x7;
6783 968 : int res ATTRIBUTE_UNUSED;
6784 968 : x2 = XVECEXP (x1, 0, 0);
6785 968 : x3 = XEXP (x2, 1);
6786 968 : x4 = XEXP (x3, 0);
6787 968 : x5 = XEXP (x4, 0);
6788 968 : if (GET_MODE (x5) != i2)
6789 : return -1;
6790 968 : x6 = XEXP (x5, 0);
6791 968 : if (GET_MODE (x6) != i2
6792 968 : || !nonimmediate_operand (operands[1], i1)
6793 1936 : || !ix86_carry_flag_operator (operands[4], i2))
6794 0 : return -1;
6795 968 : x7 = XEXP (x4, 1);
6796 968 : if (GET_MODE (x7) != i2
6797 968 : || !x86_64_sext_operand (operands[2], i1)
6798 1936 : || pattern1907 (x1,
6799 : i1,
6800 : i2) != 0)
6801 0 : return -1;
6802 : return 0;
6803 : }
6804 :
6805 : int
6806 1597 : pattern1917 (rtx x1)
6807 : {
6808 1597 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6809 1597 : rtx x2, x3, x4, x5;
6810 1597 : int res ATTRIBUTE_UNUSED;
6811 1597 : x2 = XVECEXP (x1, 0, 24);
6812 1597 : if (XWINT (x2, 0) != 24L)
6813 : return -1;
6814 1597 : x3 = XVECEXP (x1, 0, 25);
6815 1597 : if (XWINT (x3, 0) != 25L)
6816 : return -1;
6817 1597 : x4 = XVECEXP (x1, 0, 26);
6818 1597 : if (XWINT (x4, 0) != 26L)
6819 : return -1;
6820 1597 : x5 = XVECEXP (x1, 0, 27);
6821 1597 : if (XWINT (x5, 0) != 27L)
6822 0 : return -1;
6823 : return 0;
6824 : }
6825 :
6826 : int
6827 429 : pattern1919 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
6828 : {
6829 429 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6830 429 : rtx x2, x3, x4, x5;
6831 429 : int res ATTRIBUTE_UNUSED;
6832 429 : if (!register_operand (operands[0], i1)
6833 429 : || GET_MODE (x1) != i1)
6834 : return -1;
6835 411 : x2 = XEXP (x1, 0);
6836 411 : if (GET_MODE (x2) != i1)
6837 : return -1;
6838 411 : x3 = XEXP (x2, 0);
6839 411 : if (GET_MODE (x3) != i1)
6840 : return -1;
6841 411 : x4 = XEXP (x3, 0);
6842 411 : if (GET_MODE (x4) != i3
6843 411 : || !register_operand (operands[1], i2))
6844 0 : return -1;
6845 411 : x5 = XEXP (x3, 1);
6846 411 : if (GET_MODE (x5) != i3
6847 411 : || !vector_operand (operands[2], i2)
6848 822 : || !nonimm_or_0_operand (operands[3], i1))
6849 12 : return -1;
6850 : return 0;
6851 : }
6852 :
6853 : int
6854 59351798 : recog_6 (rtx x1 ATTRIBUTE_UNUSED,
6855 : rtx_insn *insn ATTRIBUTE_UNUSED,
6856 : int *pnum_clobbers ATTRIBUTE_UNUSED)
6857 : {
6858 59351798 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6859 59351798 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6860 59351798 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
6861 59351798 : rtx x18, x19, x20, x21, x22, x23;
6862 59351798 : int res ATTRIBUTE_UNUSED;
6863 59351798 : x2 = XEXP (x1, 0);
6864 59351798 : if (GET_CODE (x2) != REG
6865 59351798 : || REGNO (x2) != 17)
6866 : return -1;
6867 59233300 : x3 = XEXP (x1, 1);
6868 59233300 : x4 = XEXP (x3, 0);
6869 59233300 : switch (GET_CODE (x4))
6870 : {
6871 55359592 : case REG:
6872 55359592 : case SUBREG:
6873 55359592 : case MEM:
6874 55359592 : return recog_5 (x1, insn, pnum_clobbers);
6875 :
6876 229506 : case MINUS:
6877 229506 : x5 = XEXP (x3, 1);
6878 229506 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6879 : return -1;
6880 39004 : x6 = XEXP (x4, 0);
6881 39004 : operands[0] = x6;
6882 39004 : x7 = XEXP (x4, 1);
6883 39004 : operands[1] = x7;
6884 39004 : switch (GET_MODE (x4))
6885 : {
6886 98 : case E_QImode:
6887 98 : if (!nonimmediate_operand (operands[0], E_QImode)
6888 87 : || !general_operand (operands[1], E_QImode)
6889 159 : || !
6890 : #line 1633 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6891 : (ix86_match_ccmode (insn, CCGOCmode)))
6892 : return -1;
6893 : return 17; /* *cmpqi_minus_1 */
6894 :
6895 : case E_HImode:
6896 : if (!nonimmediate_operand (operands[0], E_HImode)
6897 : || !general_operand (operands[1], E_HImode)
6898 : || !
6899 : #line 1633 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6900 : (ix86_match_ccmode (insn, CCGOCmode)))
6901 : return -1;
6902 : return 18; /* *cmphi_minus_1 */
6903 :
6904 : case E_SImode:
6905 : if (!nonimmediate_operand (operands[0], E_SImode)
6906 : || !x86_64_general_operand (operands[1], E_SImode)
6907 : || !
6908 : #line 1633 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6909 : (ix86_match_ccmode (insn, CCGOCmode)))
6910 : return -1;
6911 : return 19; /* *cmpsi_minus_1 */
6912 :
6913 : case E_DImode:
6914 : if (!nonimmediate_operand (operands[0], E_DImode)
6915 : || !x86_64_general_operand (operands[1], E_DImode)
6916 : || !(
6917 : #line 1633 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6918 : (ix86_match_ccmode (insn, CCGOCmode)) &&
6919 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6920 : (TARGET_64BIT)))
6921 : return -1;
6922 : return 20; /* *cmpdi_minus_1 */
6923 :
6924 : default:
6925 : return -1;
6926 : }
6927 :
6928 : case PLUS:
6929 : x5 = XEXP (x3, 1);
6930 : switch (GET_CODE (x5))
6931 : {
6932 : case CONST_INT:
6933 : if (XWINT (x5, 0) != 0L)
6934 : return -1;
6935 : x6 = XEXP (x4, 0);
6936 : operands[0] = x6;
6937 : x7 = XEXP (x4, 1);
6938 : operands[1] = x7;
6939 : switch (GET_MODE (x4))
6940 : {
6941 : case E_QImode:
6942 : if (!nonimmediate_operand (operands[0], E_QImode)
6943 : || !x86_64_neg_const_int_operand (operands[1], E_QImode)
6944 : || !
6945 : #line 1644 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6946 : (ix86_match_ccmode (insn, CCGOCmode)))
6947 : return -1;
6948 : return 21; /* *cmpqi_plus_1 */
6949 :
6950 : case E_HImode:
6951 : if (!nonimmediate_operand (operands[0], E_HImode)
6952 : || !x86_64_neg_const_int_operand (operands[1], E_HImode)
6953 : || !
6954 : #line 1644 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6955 : (ix86_match_ccmode (insn, CCGOCmode)))
6956 : return -1;
6957 : return 22; /* *cmphi_plus_1 */
6958 :
6959 : case E_SImode:
6960 : if (!nonimmediate_operand (operands[0], E_SImode)
6961 : || !x86_64_neg_const_int_operand (operands[1], E_SImode)
6962 : || !
6963 : #line 1644 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6964 : (ix86_match_ccmode (insn, CCGOCmode)))
6965 : return -1;
6966 : return 23; /* *cmpsi_plus_1 */
6967 :
6968 : case E_DImode:
6969 : if (!nonimmediate_operand (operands[0], E_DImode)
6970 : || !x86_64_neg_const_int_operand (operands[1], E_DImode)
6971 : || !(
6972 : #line 1644 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6973 : (ix86_match_ccmode (insn, CCGOCmode)) &&
6974 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6975 : (TARGET_64BIT)))
6976 : return -1;
6977 : return 24; /* *cmpdi_plus_1 */
6978 :
6979 : default:
6980 : return -1;
6981 : }
6982 :
6983 : case REG:
6984 : case SUBREG:
6985 : case MEM:
6986 : if (pnum_clobbers == NULL
6987 : || GET_MODE (x2) != E_CCCmode
6988 : || GET_MODE (x3) != E_CCCmode)
6989 : return -1;
6990 : x6 = XEXP (x4, 0);
6991 : operands[1] = x6;
6992 : x7 = XEXP (x4, 1);
6993 : operands[2] = x7;
6994 : if (!rtx_equal_p (x5, operands[1]))
6995 : return -1;
6996 : switch (pattern49 (x4))
6997 : {
6998 : case 0:
6999 : if (!
7000 : #line 10651 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7001 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))))
7002 : return -1;
7003 : *pnum_clobbers = 1;
7004 : return 562; /* *addqi3_cconly_overflow_1 */
7005 :
7006 : case 1:
7007 : if (!
7008 : #line 10651 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7009 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))))
7010 : return -1;
7011 : *pnum_clobbers = 1;
7012 : return 563; /* *addhi3_cconly_overflow_1 */
7013 :
7014 : case 2:
7015 : if (!
7016 : #line 10651 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7017 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))))
7018 : return -1;
7019 : *pnum_clobbers = 1;
7020 : return 564; /* *addsi3_cconly_overflow_1 */
7021 :
7022 : case 3:
7023 : if (!(
7024 : #line 10651 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7025 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
7026 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7027 : (TARGET_64BIT)))
7028 : return -1;
7029 : *pnum_clobbers = 1;
7030 : return 565; /* *adddi3_cconly_overflow_1 */
7031 :
7032 : default:
7033 : return -1;
7034 : }
7035 :
7036 : default:
7037 : return -1;
7038 : }
7039 :
7040 : case NEG:
7041 : if (GET_MODE (x4) != E_QImode
7042 : || GET_MODE (x2) != E_CCCmode
7043 : || GET_MODE (x3) != E_CCCmode)
7044 : return -1;
7045 : x6 = XEXP (x4, 0);
7046 : if (GET_MODE (x6) != E_QImode)
7047 : return -1;
7048 : x5 = XEXP (x3, 1);
7049 : if (GET_MODE (x5) != E_QImode)
7050 : return -1;
7051 : switch (GET_CODE (x6))
7052 : {
7053 : case LTU:
7054 : x8 = XEXP (x6, 0);
7055 : if (GET_CODE (x8) != REG
7056 : || REGNO (x8) != 17
7057 : || GET_MODE (x8) != E_CCCmode)
7058 : return -1;
7059 : x9 = XEXP (x6, 1);
7060 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
7061 : || GET_CODE (x5) != GEU)
7062 : return -1;
7063 : x10 = XEXP (x5, 0);
7064 : if (GET_CODE (x10) != REG
7065 : || REGNO (x10) != 17
7066 : || GET_MODE (x10) != E_CCCmode)
7067 : return -1;
7068 : x11 = XEXP (x5, 1);
7069 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
7070 : return -1;
7071 : return 68; /* *x86_cmc */
7072 :
7073 : case GEU:
7074 : x8 = XEXP (x6, 0);
7075 : if (GET_CODE (x8) != REG
7076 : || REGNO (x8) != 17)
7077 : return -1;
7078 : x9 = XEXP (x6, 1);
7079 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
7080 : || GET_CODE (x5) != LTU)
7081 : return -1;
7082 : x10 = XEXP (x5, 0);
7083 : if (GET_CODE (x10) != REG
7084 : || REGNO (x10) != 17)
7085 : return -1;
7086 : x11 = XEXP (x5, 1);
7087 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
7088 : return -1;
7089 : switch (GET_MODE (x8))
7090 : {
7091 : case E_CCmode:
7092 : if (GET_MODE (x10) != E_CCmode
7093 : || !
7094 : #line 10593 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7095 : (ix86_pre_reload_split ()))
7096 : return -1;
7097 : return 555; /* *setcc_qi_addqi3_cconly_overflow_1_cc */
7098 :
7099 : case E_CCCmode:
7100 : if (GET_MODE (x10) != E_CCCmode
7101 : || !
7102 : #line 10593 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7103 : (ix86_pre_reload_split ()))
7104 : return -1;
7105 : return 556; /* *setcc_qi_addqi3_cconly_overflow_1_ccc */
7106 :
7107 : default:
7108 : return -1;
7109 : }
7110 :
7111 : default:
7112 : return -1;
7113 : }
7114 :
7115 : case ZERO_EXTEND:
7116 : if (pnum_clobbers == NULL)
7117 : return -1;
7118 : x5 = XEXP (x3, 1);
7119 : if (pattern425 (x5,
7120 : E_CCmode,
7121 : PLUS) != 0
7122 : || GET_MODE (x2) != E_CCCmode
7123 : || GET_MODE (x3) != E_CCCmode)
7124 : return -1;
7125 : x6 = XEXP (x4, 0);
7126 : operands[1] = x6;
7127 : x11 = XEXP (x5, 1);
7128 : switch (GET_CODE (x11))
7129 : {
7130 : case ZERO_EXTEND:
7131 : x12 = XEXP (x11, 0);
7132 : operands[2] = x12;
7133 : switch (GET_MODE (x4))
7134 : {
7135 : case E_DImode:
7136 : if (pattern1592 (x5,
7137 : E_SImode,
7138 : E_DImode) != 0
7139 : || !
7140 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7141 : (!TARGET_64BIT))
7142 : return -1;
7143 : *pnum_clobbers = 1;
7144 : return 545; /* subsi3_carry_ccc */
7145 :
7146 : case E_TImode:
7147 : if (pattern1592 (x5,
7148 : E_DImode,
7149 : E_TImode) != 0
7150 : || !
7151 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7152 : (TARGET_64BIT))
7153 : return -1;
7154 : *pnum_clobbers = 1;
7155 : return 546; /* subdi3_carry_ccc */
7156 :
7157 : default:
7158 : return -1;
7159 : }
7160 :
7161 : case CONST_INT:
7162 : case CONST_WIDE_INT:
7163 : operands[2] = x11;
7164 : switch (GET_MODE (x4))
7165 : {
7166 : case E_DImode:
7167 : if (pattern1593 (x5,
7168 : E_DImode,
7169 : E_SImode) != 0
7170 : || !
7171 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7172 : (!TARGET_64BIT))
7173 : return -1;
7174 : *pnum_clobbers = 1;
7175 : return 547; /* *subsi3_carry_ccc_1 */
7176 :
7177 : case E_TImode:
7178 : if (pattern1593 (x5,
7179 : E_TImode,
7180 : E_DImode) != 0
7181 : || !
7182 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7183 : (TARGET_64BIT))
7184 : return -1;
7185 : *pnum_clobbers = 1;
7186 : return 548; /* *subdi3_carry_ccc_1 */
7187 :
7188 : default:
7189 : return -1;
7190 : }
7191 :
7192 : default:
7193 : return -1;
7194 : }
7195 :
7196 : case AND:
7197 : x5 = XEXP (x3, 1);
7198 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
7199 : || GET_MODE (x2) != E_CCZmode
7200 : || GET_MODE (x3) != E_CCZmode)
7201 : return -1;
7202 : x6 = XEXP (x4, 0);
7203 : switch (GET_CODE (x6))
7204 : {
7205 : case REG:
7206 : case SUBREG:
7207 : operands[0] = x6;
7208 : if (!register_operand (operands[0], E_TImode)
7209 : || GET_MODE (x4) != E_TImode)
7210 : return -1;
7211 : x7 = XEXP (x4, 1);
7212 : operands[1] = x7;
7213 : if (!general_operand (operands[1], E_TImode)
7214 : || !
7215 : #line 12963 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7216 : (TARGET_64BIT
7217 : && ix86_pre_reload_split ()))
7218 : return -1;
7219 : return 721; /* *testti_doubleword */
7220 :
7221 : case NOT:
7222 : switch (pattern857 (x4))
7223 : {
7224 : case 0:
7225 : if (!
7226 : #line 13093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7227 : (ix86_pre_reload_split ()
7228 : && (!TARGET_BMI || !REG_P (operands[1]))))
7229 : return -1;
7230 : return 725; /* *testqi_not */
7231 :
7232 : case 1:
7233 : if (!
7234 : #line 13093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7235 : (ix86_pre_reload_split ()
7236 : && (!TARGET_BMI || !REG_P (operands[1]))))
7237 : return -1;
7238 : return 726; /* *testhi_not */
7239 :
7240 : case 2:
7241 : if (!
7242 : #line 13093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7243 : (ix86_pre_reload_split ()
7244 : && (!TARGET_BMI || !REG_P (operands[1]))))
7245 : return -1;
7246 : return 727; /* *testsi_not */
7247 :
7248 : case 3:
7249 : if (register_operand (operands[0], E_DImode)
7250 : && x86_64_szext_nonmemory_operand (operands[1], E_DImode)
7251 : && (
7252 : #line 13093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7253 : (ix86_pre_reload_split ()
7254 : && (!TARGET_BMI || !REG_P (operands[1]))) &&
7255 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7256 : (TARGET_64BIT)))
7257 : return 728; /* *testdi_not */
7258 : if (!nonimmediate_operand (operands[0], E_DImode)
7259 : || !nonimmediate_operand (operands[1], E_DImode)
7260 : || !(
7261 : #line 13111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7262 : (ix86_pre_reload_split ()) &&
7263 : #line 1226 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7264 : (!TARGET_64BIT)))
7265 : return -1;
7266 : return 729; /* *testdi_not_doubleword */
7267 :
7268 : case 4:
7269 : if (!(
7270 : #line 13111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7271 : (ix86_pre_reload_split ()) &&
7272 : #line 1227 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7273 : (TARGET_64BIT)))
7274 : return -1;
7275 : return 730; /* *testti_not_doubleword */
7276 :
7277 : default:
7278 : return -1;
7279 : }
7280 :
7281 : case PLUS:
7282 : if (pnum_clobbers == NULL)
7283 : return -1;
7284 : x9 = XEXP (x6, 1);
7285 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + -1])
7286 : return -1;
7287 : switch (pattern763 (x4))
7288 : {
7289 : case 0:
7290 : if (!
7291 : #line 23025 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7292 : (TARGET_BMI))
7293 : return -1;
7294 : *pnum_clobbers = 1;
7295 : return 1620; /* *bmi_blsr_si_ccz */
7296 :
7297 : case 1:
7298 : if (!(
7299 : #line 23025 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7300 : (TARGET_BMI) &&
7301 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7302 : (TARGET_64BIT)))
7303 : return -1;
7304 : *pnum_clobbers = 1;
7305 : return 1621; /* *bmi_blsr_di_ccz */
7306 :
7307 : default:
7308 : return -1;
7309 : }
7310 :
7311 : default:
7312 : return -1;
7313 : }
7314 :
7315 : case IOR:
7316 : if (pnum_clobbers == NULL)
7317 : return -1;
7318 : x5 = XEXP (x3, 1);
7319 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
7320 : || GET_MODE (x2) != E_CCZmode
7321 : || GET_MODE (x3) != E_CCZmode)
7322 : return -1;
7323 : switch (pattern50 (x4))
7324 : {
7325 : case 0:
7326 : if (!(
7327 : #line 14805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7328 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
7329 : #line 1588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7330 : (TARGET_AVX512DQ)))
7331 : return -1;
7332 : *pnum_clobbers = 1;
7333 : return 912; /* *iorqi_ccz_1 */
7334 :
7335 : case 1:
7336 : if (!
7337 : #line 14805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7338 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
7339 : return -1;
7340 : *pnum_clobbers = 1;
7341 : return 913; /* *iorhi_ccz_1 */
7342 :
7343 : case 2:
7344 : if (!(
7345 : #line 14805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7346 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
7347 : #line 1589 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7348 : (TARGET_AVX512BW)))
7349 : return -1;
7350 : *pnum_clobbers = 1;
7351 : return 914; /* *iorsi_ccz_1 */
7352 :
7353 : case 3:
7354 : if (!(
7355 : #line 14805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7356 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
7357 : #line 1589 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7358 : (TARGET_AVX512BW && TARGET_64BIT)))
7359 : return -1;
7360 : *pnum_clobbers = 1;
7361 : return 915; /* *iordi_ccz_1 */
7362 :
7363 : default:
7364 : return -1;
7365 : }
7366 :
7367 : case CONST_INT:
7368 : if (XWINT (x4, 0) != 0L)
7369 : return -1;
7370 : x5 = XEXP (x3, 1);
7371 : if (GET_CODE (x5) != ZERO_EXTRACT)
7372 : return -1;
7373 : x11 = XEXP (x5, 1);
7374 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
7375 : || GET_MODE (x2) != E_CCCmode
7376 : || GET_MODE (x3) != E_CCCmode)
7377 : return -1;
7378 : x10 = XEXP (x5, 0);
7379 : operands[0] = x10;
7380 : x13 = XEXP (x5, 2);
7381 : operands[1] = x13;
7382 : if (nonmemory_operand (operands[1], E_QImode))
7383 : {
7384 : switch (GET_MODE (x5))
7385 : {
7386 : case E_SImode:
7387 : if (nonimmediate_operand (operands[0], E_SImode))
7388 : return 1448; /* *btsi */
7389 : break;
7390 :
7391 : case E_DImode:
7392 : if (nonimmediate_operand (operands[0], E_DImode)
7393 : &&
7394 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7395 : (TARGET_64BIT))
7396 : return 1449; /* *btdi */
7397 : break;
7398 :
7399 : default:
7400 : break;
7401 : }
7402 : }
7403 : if (GET_CODE (x13) != SUBREG
7404 : || maybe_ne (SUBREG_BYTE (x13), 0)
7405 : || GET_MODE (x13) != E_QImode)
7406 : return -1;
7407 : x14 = XEXP (x13, 0);
7408 : if (GET_CODE (x14) != AND)
7409 : return -1;
7410 : switch (pattern1462 (x5))
7411 : {
7412 : case 0:
7413 : if (!
7414 : #line 20129 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7415 : (TARGET_USE_BT
7416 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (SImode)-1))
7417 : == GET_MODE_BITSIZE (SImode)-1
7418 : && ix86_pre_reload_split ()))
7419 : return -1;
7420 : return 1450; /* *btsi_mask */
7421 :
7422 : case 1:
7423 : if (!(
7424 : #line 20129 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7425 : (TARGET_USE_BT
7426 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (DImode)-1))
7427 : == GET_MODE_BITSIZE (DImode)-1
7428 : && ix86_pre_reload_split ()) &&
7429 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7430 : (TARGET_64BIT)))
7431 : return -1;
7432 : return 1451; /* *btdi_mask */
7433 :
7434 : default:
7435 : return -1;
7436 : }
7437 :
7438 : case UNSPEC:
7439 : if (GET_MODE (x2) != E_CCZmode
7440 : || GET_MODE (x3) != E_CCZmode)
7441 : return -1;
7442 : switch (XVECLEN (x4, 0))
7443 : {
7444 : case 2:
7445 : if (pnum_clobbers == NULL
7446 : || XINT (x4, 1) != 99)
7447 : return -1;
7448 : x5 = XEXP (x3, 1);
7449 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
7450 : return -1;
7451 : x15 = XVECEXP (x4, 0, 0);
7452 : operands[1] = x15;
7453 : x16 = XVECEXP (x4, 0, 1);
7454 : operands[2] = x16;
7455 : switch (GET_MODE (x4))
7456 : {
7457 : case E_SImode:
7458 : if (!nonimmediate_operand (operands[1], E_SImode)
7459 : || !register_operand (operands[2], E_SImode)
7460 : || !
7461 : #line 22774 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7462 : (TARGET_BMI))
7463 : return -1;
7464 : *pnum_clobbers = 1;
7465 : return 1600; /* *bmi_bextr_si_ccz */
7466 :
7467 : case E_DImode:
7468 : if (!nonimmediate_operand (operands[1], E_DImode)
7469 : || !register_operand (operands[2], E_DImode)
7470 : || !(
7471 : #line 22774 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7472 : (TARGET_BMI) &&
7473 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7474 : (TARGET_64BIT)))
7475 : return -1;
7476 : *pnum_clobbers = 1;
7477 : return 1601; /* *bmi_bextr_di_ccz */
7478 :
7479 : default:
7480 : return -1;
7481 : }
7482 :
7483 : case 1:
7484 : if (XINT (x4, 1) != 50
7485 : || GET_MODE (x4) != E_SImode)
7486 : return -1;
7487 : x15 = XVECEXP (x4, 0, 0);
7488 : if (GET_CODE (x15) != VEC_MERGE)
7489 : return -1;
7490 : x5 = XEXP (x3, 1);
7491 : operands[2] = x5;
7492 : if (!const_int_operand (operands[2], E_VOIDmode))
7493 : return -1;
7494 : switch (pattern1273 (x15))
7495 : {
7496 : case 0:
7497 : if (!(
7498 : #line 22936 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7499 : (TARGET_AVX512VL && UINTVAL (operands[2]) <= 0xffffffff) &&
7500 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7501 : (TARGET_AVX2)))
7502 : return -1;
7503 : return 8650; /* *pmovsk_mask_cmp_v32qi_avx512 */
7504 :
7505 : case 1:
7506 : if (!
7507 : #line 22936 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7508 : (TARGET_AVX512VL && UINTVAL (operands[2]) <= 0xffff))
7509 : return -1;
7510 : return 8651; /* *pmovsk_mask_cmp_v16qi_avx512 */
7511 :
7512 : case 2:
7513 : if (!(
7514 : #line 22959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7515 : (TARGET_AVX512VL && (INTVAL (operands[2]) == (int) (0xffffffff))) &&
7516 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7517 : (TARGET_AVX2)))
7518 : return -1;
7519 : return 8652; /* *pmovsk_ptest_v32qi_avx512 */
7520 :
7521 : case 3:
7522 : if (!
7523 : #line 22959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7524 : (TARGET_AVX512VL && (INTVAL (operands[2]) == (int) (0xffff))))
7525 : return -1;
7526 : return 8653; /* *pmovsk_ptest_v16qi_avx512 */
7527 :
7528 : default:
7529 : return -1;
7530 : }
7531 :
7532 : default:
7533 : return -1;
7534 : }
7535 :
7536 : case IF_THEN_ELSE:
7537 : if (pnum_clobbers == NULL)
7538 : return -1;
7539 : x6 = XEXP (x4, 0);
7540 : if (GET_CODE (x6) != NE
7541 : || GET_MODE (x6) != E_QImode)
7542 : return -1;
7543 : x9 = XEXP (x6, 1);
7544 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
7545 : return -1;
7546 : x7 = XEXP (x4, 1);
7547 : if (GET_CODE (x7) != ZERO_EXTRACT)
7548 : return -1;
7549 : x17 = XEXP (x7, 1);
7550 : if (GET_CODE (x17) != UMIN
7551 : || GET_MODE (x17) != E_QImode)
7552 : return -1;
7553 : x18 = XEXP (x7, 2);
7554 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
7555 : return -1;
7556 : x19 = XEXP (x4, 2);
7557 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
7558 : return -1;
7559 : x5 = XEXP (x3, 1);
7560 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
7561 : || GET_MODE (x2) != E_CCZmode
7562 : || GET_MODE (x3) != E_CCZmode)
7563 : return -1;
7564 : x8 = XEXP (x6, 0);
7565 : operands[2] = x8;
7566 : if (!register_operand (operands[2], E_QImode))
7567 : return -1;
7568 : x20 = XEXP (x7, 0);
7569 : operands[1] = x20;
7570 : x21 = XEXP (x17, 1);
7571 : operands[3] = x21;
7572 : if (!const_int_operand (operands[3], E_QImode))
7573 : return -1;
7574 : x22 = XEXP (x17, 0);
7575 : if (!rtx_equal_p (x22, operands[2]))
7576 : return -1;
7577 : switch (GET_MODE (x4))
7578 : {
7579 : case E_SImode:
7580 : if (GET_MODE (x7) != E_SImode
7581 : || !nonimmediate_operand (operands[1], E_SImode)
7582 : || !
7583 : #line 23081 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7584 : (TARGET_BMI2 && INTVAL (operands[3]) == 4 * BITS_PER_UNIT))
7585 : return -1;
7586 : *pnum_clobbers = 1;
7587 : return 1624; /* *bmi2_bzhi_si3_1_ccz */
7588 :
7589 : case E_DImode:
7590 : if (GET_MODE (x7) != E_DImode
7591 : || !nonimmediate_operand (operands[1], E_DImode)
7592 : || !(
7593 : #line 23081 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7594 : (TARGET_BMI2 && INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
7595 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7596 : (TARGET_64BIT)))
7597 : return -1;
7598 : *pnum_clobbers = 1;
7599 : return 1625; /* *bmi2_bzhi_di3_1_ccz */
7600 :
7601 : default:
7602 : return -1;
7603 : }
7604 :
7605 : case VEC_SELECT:
7606 : x7 = XEXP (x4, 1);
7607 : if (GET_CODE (x7) != PARALLEL
7608 : || XVECLEN (x7, 0) != 1)
7609 : return -1;
7610 : x23 = XVECEXP (x7, 0, 0);
7611 : if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
7612 : return -1;
7613 : x5 = XEXP (x3, 1);
7614 : if (pattern255 (x5) != 0
7615 : || GET_MODE (x2) != E_CCFPmode
7616 : || GET_MODE (x3) != E_CCFPmode)
7617 : return -1;
7618 : x6 = XEXP (x4, 0);
7619 : operands[0] = x6;
7620 : x10 = XEXP (x5, 0);
7621 : operands[1] = x10;
7622 : switch (GET_MODE (x4))
7623 : {
7624 : case E_HFmode:
7625 : if (!register_operand (operands[0], E_V8HFmode)
7626 : || GET_MODE (x5) != E_HFmode
7627 : || !nonimmediate_operand (operands[1], E_V8HFmode)
7628 : || !(
7629 : #line 5273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7630 : (SSE_FLOAT_MODE_P (HFmode) || HFmode == E_HFmode) &&
7631 : #line 1386 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7632 : (TARGET_AVX512FP16)))
7633 : return -1;
7634 : return 3758; /* avx512fp16_comi */
7635 :
7636 : case E_SFmode:
7637 : if (!register_operand (operands[0], E_V4SFmode)
7638 : || GET_MODE (x5) != E_SFmode
7639 : || !nonimmediate_operand (operands[1], E_V4SFmode)
7640 : || !
7641 : #line 5273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7642 : (SSE_FLOAT_MODE_P (SFmode) || SFmode == E_HFmode))
7643 : return -1;
7644 : return 3762; /* sse_comi */
7645 :
7646 : case E_DFmode:
7647 : if (!register_operand (operands[0], E_V2DFmode)
7648 : || GET_MODE (x5) != E_DFmode
7649 : || !nonimmediate_operand (operands[1], E_V2DFmode)
7650 : || !
7651 : #line 5273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7652 : (SSE_FLOAT_MODE_P (DFmode) || DFmode == E_HFmode))
7653 : return -1;
7654 : return 3766; /* sse2_comi */
7655 :
7656 : case E_BFmode:
7657 : if (!register_operand (operands[0], E_V8BFmode)
7658 : || GET_MODE (x5) != E_BFmode
7659 : || !nonimmediate_operand (operands[1], E_V8BFmode)
7660 : || !
7661 : #line 5293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7662 : (TARGET_AVX10_2))
7663 : return -1;
7664 : return 3770; /* avx10_2_comisbf16_v8bf */
7665 :
7666 : default:
7667 : return -1;
7668 : }
7669 :
7670 : default:
7671 : return -1;
7672 : }
7673 : }
7674 :
7675 : int
7676 : recog_30 (rtx x1 ATTRIBUTE_UNUSED,
7677 : rtx_insn *insn ATTRIBUTE_UNUSED,
7678 : int *pnum_clobbers ATTRIBUTE_UNUSED)
7679 : {
7680 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
7681 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
7682 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
7683 : int res ATTRIBUTE_UNUSED;
7684 : x2 = XEXP (x1, 0);
7685 : operands[0] = x2;
7686 : x3 = XEXP (x1, 1);
7687 : x4 = XEXP (x3, 0);
7688 : switch (GET_CODE (x4))
7689 : {
7690 : case CONST_INT:
7691 : case CONST:
7692 : case REG:
7693 : case SUBREG:
7694 : case MEM:
7695 : case LABEL_REF:
7696 : case SYMBOL_REF:
7697 : operands[1] = x4;
7698 : switch (GET_MODE (operands[0]))
7699 : {
7700 : case E_TImode:
7701 : if (!nonimmediate_operand (operands[0], E_TImode)
7702 : || GET_MODE (x3) != E_TImode
7703 : || !nonimmediate_operand (operands[1], E_DImode)
7704 : || !
7705 : #line 4734 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7706 : (TARGET_64BIT))
7707 : return -1;
7708 : return 178; /* zero_extendditi2 */
7709 :
7710 : case E_DImode:
7711 : if (GET_MODE (x3) != E_DImode)
7712 : return -1;
7713 : if (nonimmediate_operand (operands[0], E_DImode)
7714 : && x86_64_zext_operand (operands[1], E_SImode))
7715 : return 179; /* *zero_extendsidi2 */
7716 : if (!register_operand (operands[0], E_DImode))
7717 : return -1;
7718 : switch (GET_MODE (operands[1]))
7719 : {
7720 : case E_QImode:
7721 : if (!nonimmediate_operand (operands[1], E_QImode)
7722 : || !
7723 : #line 4890 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7724 : (TARGET_64BIT))
7725 : return -1;
7726 : return 180; /* zero_extendqidi2 */
7727 :
7728 : case E_HImode:
7729 : if (!nonimmediate_operand (operands[1], E_HImode)
7730 : || !
7731 : #line 4890 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7732 : (TARGET_64BIT))
7733 : return -1;
7734 : return 181; /* zero_extendhidi2 */
7735 :
7736 : default:
7737 : return -1;
7738 : }
7739 :
7740 : case E_SImode:
7741 : if (!register_operand (operands[0], E_SImode)
7742 : || GET_MODE (x3) != E_SImode)
7743 : return -1;
7744 : switch (GET_MODE (operands[1]))
7745 : {
7746 : case E_QImode:
7747 : if (!nonimmediate_operand (operands[1], E_QImode))
7748 : return -1;
7749 : if (pnum_clobbers != NULL
7750 : &&
7751 : #line 4917 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7752 : (TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)))
7753 : {
7754 : *pnum_clobbers = 1;
7755 : return 182; /* zero_extendqisi2_and */
7756 : }
7757 : if (!
7758 : #line 4945 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7759 : (!(TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun))))
7760 : return -1;
7761 : return 184; /* *zero_extendqisi2 */
7762 :
7763 : case E_HImode:
7764 : if (!nonimmediate_operand (operands[1], E_HImode))
7765 : return -1;
7766 : if (pnum_clobbers != NULL
7767 : &&
7768 : #line 4917 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7769 : (TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)))
7770 : {
7771 : *pnum_clobbers = 1;
7772 : return 183; /* zero_extendhisi2_and */
7773 : }
7774 : if (!
7775 : #line 4945 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7776 : (!(TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun))))
7777 : return -1;
7778 : return 185; /* *zero_extendhisi2 */
7779 :
7780 : default:
7781 : return -1;
7782 : }
7783 :
7784 : case E_HImode:
7785 : if (!register_operand (operands[0], E_HImode)
7786 : || GET_MODE (x3) != E_HImode
7787 : || !nonimmediate_operand (operands[1], E_QImode))
7788 : return -1;
7789 : if (pnum_clobbers != NULL
7790 : &&
7791 : #line 4971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7792 : (TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)))
7793 : {
7794 : *pnum_clobbers = 1;
7795 : return 186; /* zero_extendqihi2_and */
7796 : }
7797 : if (!
7798 : #line 4999 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7799 : (!(TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun))))
7800 : return -1;
7801 : return 187; /* *zero_extendqihi2 */
7802 :
7803 : default:
7804 : return -1;
7805 : }
7806 :
7807 : case SIGN_EXTEND:
7808 : if (GET_MODE (x4) != E_SImode
7809 : || !register_operand (operands[0], E_DImode)
7810 : || GET_MODE (x3) != E_DImode)
7811 : return -1;
7812 : x5 = XEXP (x4, 0);
7813 : operands[1] = x5;
7814 : switch (GET_MODE (operands[1]))
7815 : {
7816 : case E_HImode:
7817 : if (!nonimmediate_operand (operands[1], E_HImode)
7818 : || !
7819 : #line 5283 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7820 : (TARGET_64BIT))
7821 : return -1;
7822 : return 194; /* *extendhisi2_zext */
7823 :
7824 : case E_QImode:
7825 : if (!nonimmediate_operand (operands[1], E_QImode)
7826 : || !
7827 : #line 5318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7828 : (TARGET_64BIT))
7829 : return -1;
7830 : return 196; /* *extendqisi2_zext */
7831 :
7832 : default:
7833 : return -1;
7834 : }
7835 :
7836 : case UNSIGNED_FIX:
7837 : if (GET_MODE (x4) != E_SImode
7838 : || !register_operand (operands[0], E_DImode)
7839 : || GET_MODE (x3) != E_DImode)
7840 : return -1;
7841 : x5 = XEXP (x4, 0);
7842 : operands[1] = x5;
7843 : switch (GET_MODE (operands[1]))
7844 : {
7845 : case E_HFmode:
7846 : if (!nonimmediate_operand (operands[1], E_HFmode)
7847 : || !
7848 : #line 5998 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7849 : (TARGET_64BIT && TARGET_AVX512FP16))
7850 : return -1;
7851 : return 224; /* *fixuns_trunchfsi2zext */
7852 :
7853 : case E_SFmode:
7854 : if (!nonimmediate_operand (operands[1], E_SFmode)
7855 : || !
7856 : #line 6009 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7857 : (TARGET_64BIT && TARGET_AVX512F && TARGET_SSE_MATH))
7858 : return -1;
7859 : return 225; /* *fixuns_truncsfsi2_avx512f_zext */
7860 :
7861 : case E_DFmode:
7862 : if (!nonimmediate_operand (operands[1], E_DFmode)
7863 : || !
7864 : #line 6009 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7865 : (TARGET_64BIT && TARGET_AVX512F && TARGET_SSE_MATH))
7866 : return -1;
7867 : return 226; /* *fixuns_truncdfsi2_avx512f_zext */
7868 :
7869 : default:
7870 : return -1;
7871 : }
7872 :
7873 : case PLUS:
7874 : if (GET_MODE (x4) != E_QImode
7875 : || !register_operand (operands[0], E_HImode)
7876 : || GET_MODE (x3) != E_HImode)
7877 : return -1;
7878 : x5 = XEXP (x4, 0);
7879 : switch (GET_CODE (x5))
7880 : {
7881 : case REG:
7882 : case SUBREG:
7883 : case MEM:
7884 : operands[1] = x5;
7885 : if (!nonimmediate_operand (operands[1], E_QImode))
7886 : return -1;
7887 : x6 = XEXP (x4, 1);
7888 : operands[2] = x6;
7889 : if (!general_operand (operands[2], E_QImode))
7890 : return -1;
7891 : if (
7892 : #line 6846 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7893 : (TARGET_APX_NDD && TARGET_APX_NF
7894 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
7895 : return 290; /* *addqi_1_zexthi_nf */
7896 : if (pnum_clobbers == NULL
7897 : || !
7898 : #line 6846 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7899 : (TARGET_APX_NDD && true
7900 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
7901 : return -1;
7902 : *pnum_clobbers = 1;
7903 : return 291; /* *addqi_1_zexthi */
7904 :
7905 : case PLUS:
7906 : if (pnum_clobbers == NULL
7907 : || GET_MODE (x5) != E_QImode)
7908 : return -1;
7909 : x7 = XEXP (x5, 0);
7910 : if (!ix86_carry_flag_operator (x7, E_QImode))
7911 : return -1;
7912 : operands[3] = x7;
7913 : x8 = XEXP (x7, 0);
7914 : if (GET_CODE (x8) != REG
7915 : || REGNO (x8) != 17)
7916 : return -1;
7917 : x9 = XEXP (x7, 1);
7918 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
7919 : return -1;
7920 : x10 = XEXP (x5, 1);
7921 : operands[1] = x10;
7922 : if (!nonimmediate_operand (operands[1], E_QImode))
7923 : return -1;
7924 : x6 = XEXP (x4, 1);
7925 : operands[2] = x6;
7926 : if (!x86_64_general_operand (operands[2], E_QImode)
7927 : || !
7928 : #line 9283 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7929 : (TARGET_APX_NDD
7930 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
7931 : return -1;
7932 : *pnum_clobbers = 1;
7933 : return 481; /* *addqi3_carry_zexthi */
7934 :
7935 : case LTU:
7936 : case UNLT:
7937 : if (pnum_clobbers == NULL)
7938 : return -1;
7939 : operands[2] = x5;
7940 : if (!ix86_carry_flag_operator (operands[2], E_QImode)
7941 : || pattern1087 (x4) != 0
7942 : || !
7943 : #line 9355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7944 : (TARGET_APX_NDD))
7945 : return -1;
7946 : *pnum_clobbers = 1;
7947 : return 487; /* *addqi3_carry_zexthi_0 */
7948 :
7949 : case GE:
7950 : case GEU:
7951 : if (pnum_clobbers == NULL)
7952 : return -1;
7953 : operands[2] = x5;
7954 : if (!ix86_carry_flag_unset_operator (operands[2], E_QImode)
7955 : || pattern1087 (x4) != 0
7956 : || !
7957 : #line 9413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7958 : (TARGET_APX_NDD))
7959 : return -1;
7960 : *pnum_clobbers = 1;
7961 : return 493; /* *addqi3_carry_zexthi_0r */
7962 :
7963 : default:
7964 : return -1;
7965 : }
7966 :
7967 : case MINUS:
7968 : if (GET_MODE (x4) != E_QImode
7969 : || !register_operand (operands[0], E_HImode)
7970 : || GET_MODE (x3) != E_HImode)
7971 : return -1;
7972 : x6 = XEXP (x4, 1);
7973 : operands[2] = x6;
7974 : x5 = XEXP (x4, 0);
7975 : switch (GET_CODE (x5))
7976 : {
7977 : case REG:
7978 : case SUBREG:
7979 : case MEM:
7980 : operands[1] = x5;
7981 : if (!nonimmediate_operand (operands[1], E_QImode))
7982 : return -1;
7983 : switch (GET_CODE (operands[2]))
7984 : {
7985 : case CONST_INT:
7986 : case CONST_WIDE_INT:
7987 : case CONST_POLY_INT:
7988 : case CONST_FIXED:
7989 : case CONST_DOUBLE:
7990 : case CONST_VECTOR:
7991 : case CONST:
7992 : case REG:
7993 : case SUBREG:
7994 : case MEM:
7995 : case LABEL_REF:
7996 : case SYMBOL_REF:
7997 : case HIGH:
7998 : if (!x86_64_general_operand (operands[2], E_QImode))
7999 : return -1;
8000 : if (
8001 : #line 8381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8002 : (TARGET_APX_NDD && TARGET_APX_NF
8003 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8004 : return 396; /* *subqi_1_zexthi_nf */
8005 : if (pnum_clobbers == NULL
8006 : || !
8007 : #line 8381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8008 : (TARGET_APX_NDD && true
8009 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8010 : return -1;
8011 : *pnum_clobbers = 1;
8012 : return 397; /* *subqi_1_zexthi */
8013 :
8014 : case LTU:
8015 : case UNLT:
8016 : if (pnum_clobbers == NULL
8017 : || !ix86_carry_flag_operator (operands[2], E_QImode))
8018 : return -1;
8019 : x11 = XEXP (x6, 0);
8020 : if (GET_CODE (x11) != REG
8021 : || REGNO (x11) != 17)
8022 : return -1;
8023 : x12 = XEXP (x6, 1);
8024 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
8025 : || !
8026 : #line 10080 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8027 : (TARGET_APX_NDD))
8028 : return -1;
8029 : *pnum_clobbers = 1;
8030 : return 533; /* *subqi3_carry_zexthi_0 */
8031 :
8032 : case GE:
8033 : case GEU:
8034 : if (pnum_clobbers == NULL
8035 : || !ix86_carry_flag_unset_operator (operands[2], E_QImode))
8036 : return -1;
8037 : x11 = XEXP (x6, 0);
8038 : if (GET_CODE (x11) != REG
8039 : || REGNO (x11) != 17)
8040 : return -1;
8041 : x12 = XEXP (x6, 1);
8042 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
8043 : || !
8044 : #line 10141 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8045 : (TARGET_APX_NDD))
8046 : return -1;
8047 : *pnum_clobbers = 1;
8048 : return 539; /* *subqi3_carry_zexthi_0r */
8049 :
8050 : default:
8051 : return -1;
8052 : }
8053 :
8054 : case MINUS:
8055 : if (pnum_clobbers == NULL
8056 : || GET_MODE (x5) != E_QImode)
8057 : return -1;
8058 : x10 = XEXP (x5, 1);
8059 : if (!ix86_carry_flag_operator (x10, E_QImode))
8060 : return -1;
8061 : operands[3] = x10;
8062 : x13 = XEXP (x10, 0);
8063 : if (GET_CODE (x13) != REG
8064 : || REGNO (x13) != 17)
8065 : return -1;
8066 : x14 = XEXP (x10, 1);
8067 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
8068 : return -1;
8069 : x7 = XEXP (x5, 0);
8070 : operands[1] = x7;
8071 : if (!nonimmediate_operand (operands[1], E_QImode)
8072 : || !x86_64_general_operand (operands[2], E_QImode)
8073 : || !
8074 : #line 10005 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8075 : (TARGET_APX_NDD
8076 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8077 : return -1;
8078 : *pnum_clobbers = 1;
8079 : return 527; /* *subqi3_carry_zexthi */
8080 :
8081 : default:
8082 : return -1;
8083 : }
8084 :
8085 : case AND:
8086 : if (!register_operand (operands[0], E_HImode)
8087 : || GET_MODE (x3) != E_HImode)
8088 : return -1;
8089 : x5 = XEXP (x4, 0);
8090 : switch (GET_CODE (x5))
8091 : {
8092 : case REG:
8093 : case SUBREG:
8094 : case MEM:
8095 : operands[1] = x5;
8096 : if (!nonimmediate_operand (operands[1], E_QImode)
8097 : || GET_MODE (x4) != E_QImode)
8098 : return -1;
8099 : x6 = XEXP (x4, 1);
8100 : operands[2] = x6;
8101 : if (!x86_64_general_operand (operands[2], E_QImode))
8102 : return -1;
8103 : if (
8104 : #line 13412 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8105 : (TARGET_APX_NDD && TARGET_APX_NF
8106 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8107 : return 736; /* *andqi_1_zexthi_nf */
8108 : if (pnum_clobbers == NULL
8109 : || !
8110 : #line 13412 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8111 : (TARGET_APX_NDD && true
8112 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8113 : return -1;
8114 : *pnum_clobbers = 1;
8115 : return 737; /* *andqi_1_zexthi */
8116 :
8117 : case UNSPEC:
8118 : if (XVECLEN (x5, 0) != 2)
8119 : return -1;
8120 : x15 = XVECEXP (x5, 0, 0);
8121 : operands[1] = x15;
8122 : x16 = XVECEXP (x5, 0, 1);
8123 : operands[2] = x16;
8124 : x6 = XEXP (x4, 1);
8125 : operands[3] = x6;
8126 : switch (XINT (x5, 1))
8127 : {
8128 : case 159:
8129 : switch (pattern1098 (x4))
8130 : {
8131 : case 0:
8132 : if (!(
8133 : #line 19558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8134 : (TARGET_AVX512BW
8135 : && (2
8136 : > GET_MODE_SIZE (DImode))) &&
8137 : #line 500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8138 : (TARGET_AVX512BW)))
8139 : return -1;
8140 : return 8270; /* *avx512bw_testmv64qi3_zext_mask */
8141 :
8142 : case 1:
8143 : if (!(
8144 : #line 19558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8145 : (TARGET_AVX512BW
8146 : && (2
8147 : > GET_MODE_SIZE (SImode))) &&
8148 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8149 : (TARGET_AVX512VL && TARGET_AVX512BW)))
8150 : return -1;
8151 : return 8273; /* *avx512vl_testmv32qi3_zext_mask */
8152 :
8153 : case 2:
8154 : if (!(
8155 : #line 19558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8156 : (TARGET_AVX512BW
8157 : && (2
8158 : > GET_MODE_SIZE (SImode))) &&
8159 : #line 503 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8160 : (TARGET_AVX512BW)))
8161 : return -1;
8162 : return 8279; /* *avx512bw_testmv32hi3_zext_mask */
8163 :
8164 : case 3:
8165 : if (!(
8166 : #line 19558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8167 : (TARGET_AVX512BW
8168 : && (2
8169 : > GET_MODE_SIZE (HImode))) &&
8170 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8171 : (TARGET_AVX512VL && TARGET_AVX512BW)))
8172 : return -1;
8173 : return 8276; /* *avx512vl_testmv16qi3_zext_mask */
8174 :
8175 : case 4:
8176 : if (!(
8177 : #line 19558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8178 : (TARGET_AVX512BW
8179 : && (2
8180 : > GET_MODE_SIZE (HImode))) &&
8181 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8182 : (TARGET_AVX512VL && TARGET_AVX512BW)))
8183 : return -1;
8184 : return 8282; /* *avx512vl_testmv16hi3_zext_mask */
8185 :
8186 : case 5:
8187 : if (!
8188 : #line 19558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8189 : (TARGET_AVX512BW
8190 : && (2
8191 : > GET_MODE_SIZE (HImode))))
8192 : return -1;
8193 : return 8288; /* *avx512f_testmv16si3_zext_mask */
8194 :
8195 : case 6:
8196 : if (!(
8197 : #line 19558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8198 : (TARGET_AVX512BW
8199 : && (2
8200 : > GET_MODE_SIZE (QImode))) &&
8201 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8202 : (TARGET_AVX512VL && TARGET_AVX512BW)))
8203 : return -1;
8204 : return 8285; /* *avx512vl_testmv8hi3_zext_mask */
8205 :
8206 : case 7:
8207 : if (!(
8208 : #line 19558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8209 : (TARGET_AVX512BW
8210 : && (2
8211 : > GET_MODE_SIZE (QImode))) &&
8212 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8213 : (TARGET_AVX512VL)))
8214 : return -1;
8215 : return 8291; /* *avx512vl_testmv8si3_zext_mask */
8216 :
8217 : case 8:
8218 : if (!(
8219 : #line 19558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8220 : (TARGET_AVX512BW
8221 : && (2
8222 : > GET_MODE_SIZE (QImode))) &&
8223 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8224 : (TARGET_AVX512VL)))
8225 : return -1;
8226 : return 8294; /* *avx512vl_testmv4si3_zext_mask */
8227 :
8228 : case 9:
8229 : if (!
8230 : #line 19558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8231 : (TARGET_AVX512BW
8232 : && (2
8233 : > GET_MODE_SIZE (QImode))))
8234 : return -1;
8235 : return 8297; /* *avx512f_testmv8di3_zext_mask */
8236 :
8237 : case 10:
8238 : if (!(
8239 : #line 19558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8240 : (TARGET_AVX512BW
8241 : && (2
8242 : > GET_MODE_SIZE (QImode))) &&
8243 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8244 : (TARGET_AVX512VL)))
8245 : return -1;
8246 : return 8300; /* *avx512vl_testmv4di3_zext_mask */
8247 :
8248 : case 11:
8249 : if (!(
8250 : #line 19558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8251 : (TARGET_AVX512BW
8252 : && (2
8253 : > GET_MODE_SIZE (QImode))) &&
8254 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8255 : (TARGET_AVX512VL)))
8256 : return -1;
8257 : return 8303; /* *avx512vl_testmv2di3_zext_mask */
8258 :
8259 : default:
8260 : return -1;
8261 : }
8262 :
8263 : case 160:
8264 : switch (pattern1098 (x4))
8265 : {
8266 : case 0:
8267 : if (!(
8268 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8269 : (TARGET_AVX512BW
8270 : && (2
8271 : > GET_MODE_SIZE (DImode))) &&
8272 : #line 500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8273 : (TARGET_AVX512BW)))
8274 : return -1;
8275 : return 8342; /* *avx512bw_testnmv64qi3_zext_mask */
8276 :
8277 : case 1:
8278 : if (!(
8279 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8280 : (TARGET_AVX512BW
8281 : && (2
8282 : > GET_MODE_SIZE (SImode))) &&
8283 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8284 : (TARGET_AVX512VL && TARGET_AVX512BW)))
8285 : return -1;
8286 : return 8345; /* *avx512vl_testnmv32qi3_zext_mask */
8287 :
8288 : case 2:
8289 : if (!(
8290 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8291 : (TARGET_AVX512BW
8292 : && (2
8293 : > GET_MODE_SIZE (SImode))) &&
8294 : #line 503 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8295 : (TARGET_AVX512BW)))
8296 : return -1;
8297 : return 8351; /* *avx512bw_testnmv32hi3_zext_mask */
8298 :
8299 : case 3:
8300 : if (!(
8301 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8302 : (TARGET_AVX512BW
8303 : && (2
8304 : > GET_MODE_SIZE (HImode))) &&
8305 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8306 : (TARGET_AVX512VL && TARGET_AVX512BW)))
8307 : return -1;
8308 : return 8348; /* *avx512vl_testnmv16qi3_zext_mask */
8309 :
8310 : case 4:
8311 : if (!(
8312 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8313 : (TARGET_AVX512BW
8314 : && (2
8315 : > GET_MODE_SIZE (HImode))) &&
8316 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8317 : (TARGET_AVX512VL && TARGET_AVX512BW)))
8318 : return -1;
8319 : return 8354; /* *avx512vl_testnmv16hi3_zext_mask */
8320 :
8321 : case 5:
8322 : if (!
8323 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8324 : (TARGET_AVX512BW
8325 : && (2
8326 : > GET_MODE_SIZE (HImode))))
8327 : return -1;
8328 : return 8360; /* *avx512f_testnmv16si3_zext_mask */
8329 :
8330 : case 6:
8331 : if (!(
8332 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8333 : (TARGET_AVX512BW
8334 : && (2
8335 : > GET_MODE_SIZE (QImode))) &&
8336 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8337 : (TARGET_AVX512VL && TARGET_AVX512BW)))
8338 : return -1;
8339 : return 8357; /* *avx512vl_testnmv8hi3_zext_mask */
8340 :
8341 : case 7:
8342 : if (!(
8343 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8344 : (TARGET_AVX512BW
8345 : && (2
8346 : > GET_MODE_SIZE (QImode))) &&
8347 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8348 : (TARGET_AVX512VL)))
8349 : return -1;
8350 : return 8363; /* *avx512vl_testnmv8si3_zext_mask */
8351 :
8352 : case 8:
8353 : if (!(
8354 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8355 : (TARGET_AVX512BW
8356 : && (2
8357 : > GET_MODE_SIZE (QImode))) &&
8358 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8359 : (TARGET_AVX512VL)))
8360 : return -1;
8361 : return 8366; /* *avx512vl_testnmv4si3_zext_mask */
8362 :
8363 : case 9:
8364 : if (!
8365 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8366 : (TARGET_AVX512BW
8367 : && (2
8368 : > GET_MODE_SIZE (QImode))))
8369 : return -1;
8370 : return 8369; /* *avx512f_testnmv8di3_zext_mask */
8371 :
8372 : case 10:
8373 : if (!(
8374 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8375 : (TARGET_AVX512BW
8376 : && (2
8377 : > GET_MODE_SIZE (QImode))) &&
8378 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8379 : (TARGET_AVX512VL)))
8380 : return -1;
8381 : return 8372; /* *avx512vl_testnmv4di3_zext_mask */
8382 :
8383 : case 11:
8384 : if (!(
8385 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8386 : (TARGET_AVX512BW
8387 : && (2
8388 : > GET_MODE_SIZE (QImode))) &&
8389 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8390 : (TARGET_AVX512VL)))
8391 : return -1;
8392 : return 8375; /* *avx512vl_testnmv2di3_zext_mask */
8393 :
8394 : default:
8395 : return -1;
8396 : }
8397 :
8398 : default:
8399 : return -1;
8400 : }
8401 :
8402 : default:
8403 : return -1;
8404 : }
8405 :
8406 : case IOR:
8407 : if (pattern85 (x3) != 0)
8408 : return -1;
8409 : if (
8410 : #line 14539 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8411 : (TARGET_APX_NDD && TARGET_APX_NF
8412 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8413 : return 871; /* *iorqi_1_zexthi_nf */
8414 : if (pnum_clobbers == NULL
8415 : || !
8416 : #line 14539 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8417 : (TARGET_APX_NDD && true
8418 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8419 : return -1;
8420 : *pnum_clobbers = 1;
8421 : return 872; /* *iorqi_1_zexthi */
8422 :
8423 : case XOR:
8424 : if (pattern85 (x3) != 0)
8425 : return -1;
8426 : if (
8427 : #line 14539 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8428 : (TARGET_APX_NDD && TARGET_APX_NF
8429 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8430 : return 873; /* *xorqi_1_zexthi_nf */
8431 : if (pnum_clobbers == NULL
8432 : || !
8433 : #line 14539 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8434 : (TARGET_APX_NDD && true
8435 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8436 : return -1;
8437 : *pnum_clobbers = 1;
8438 : return 874; /* *xorqi_1_zexthi */
8439 :
8440 : case NEG:
8441 : if (pattern86 (x3) != 0)
8442 : return -1;
8443 : if (
8444 : #line 15253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8445 : (TARGET_APX_NDD && TARGET_APX_NF))
8446 : return 994; /* *negqi_1_zexthi_nf */
8447 : if (pnum_clobbers == NULL
8448 : || !
8449 : #line 15253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8450 : (TARGET_APX_NDD && true))
8451 : return -1;
8452 : *pnum_clobbers = 1;
8453 : return 995; /* *negqi_1_zexthi */
8454 :
8455 : case NOT:
8456 : if (pattern86 (x3) != 0
8457 : || !
8458 : #line 15946 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8459 : (TARGET_APX_NDD))
8460 : return -1;
8461 : return 1067; /* *one_cmplqi2_1_zexthi */
8462 :
8463 : case ASHIFT:
8464 : if (pattern87 (x3) != 0)
8465 : return -1;
8466 : if (
8467 : #line 16986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8468 : (TARGET_APX_NDD && TARGET_APX_NF))
8469 : return 1125; /* *ashlqi3_1_zexthi_nf */
8470 : if (pnum_clobbers == NULL
8471 : || !
8472 : #line 16986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8473 : (TARGET_APX_NDD && true))
8474 : return -1;
8475 : *pnum_clobbers = 1;
8476 : return 1126; /* *ashlqi3_1_zexthi */
8477 :
8478 : case LSHIFTRT:
8479 : if (pattern87 (x3) != 0)
8480 : return -1;
8481 : if (
8482 : #line 18420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8483 : (TARGET_APX_NDD && TARGET_APX_NF))
8484 : return 1218; /* *lshrqi3_1_zexthi_nf */
8485 : if (pnum_clobbers == NULL
8486 : || !
8487 : #line 18420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8488 : (TARGET_APX_NDD && true))
8489 : return -1;
8490 : *pnum_clobbers = 1;
8491 : return 1219; /* *lshrqi3_1_zexthi */
8492 :
8493 : case ASHIFTRT:
8494 : if (pattern87 (x3) != 0)
8495 : return -1;
8496 : if (
8497 : #line 18420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8498 : (TARGET_APX_NDD && TARGET_APX_NF))
8499 : return 1220; /* *ashrqi3_1_zexthi_nf */
8500 : if (pnum_clobbers == NULL
8501 : || !
8502 : #line 18420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8503 : (TARGET_APX_NDD && true))
8504 : return -1;
8505 : *pnum_clobbers = 1;
8506 : return 1221; /* *ashrqi3_1_zexthi */
8507 :
8508 : case ROTATE:
8509 : if (pattern87 (x3) != 0)
8510 : return -1;
8511 : if (
8512 : #line 19526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8513 : (TARGET_APX_NDD && TARGET_APX_NF))
8514 : return 1383; /* *rotlqi3_1_zexthi_nf */
8515 : if (pnum_clobbers == NULL
8516 : || !
8517 : #line 19526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8518 : (TARGET_APX_NDD && true))
8519 : return -1;
8520 : *pnum_clobbers = 1;
8521 : return 1384; /* *rotlqi3_1_zexthi */
8522 :
8523 : case ROTATERT:
8524 : if (pattern87 (x3) != 0)
8525 : return -1;
8526 : if (
8527 : #line 19526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8528 : (TARGET_APX_NDD && TARGET_APX_NF))
8529 : return 1385; /* *rotrqi3_1_zexthi_nf */
8530 : if (pnum_clobbers == NULL
8531 : || !
8532 : #line 19526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8533 : (TARGET_APX_NDD && true))
8534 : return -1;
8535 : *pnum_clobbers = 1;
8536 : return 1386; /* *rotrqi3_1_zexthi */
8537 :
8538 : case VEC_SELECT:
8539 : x6 = XEXP (x4, 1);
8540 : if (GET_CODE (x6) != PARALLEL)
8541 : return -1;
8542 : x5 = XEXP (x4, 0);
8543 : operands[1] = x5;
8544 : switch (XVECLEN (x6, 0))
8545 : {
8546 : case 4:
8547 : if (pattern621 (x3) != 0
8548 : || !
8549 : #line 5045 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8550 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
8551 : return -1;
8552 : return 2359; /* sse4_1_zero_extendv4qiv4hi2 */
8553 :
8554 : case 2:
8555 : switch (pattern622 (x3))
8556 : {
8557 : case 0:
8558 : if (!
8559 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8560 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
8561 : return -1;
8562 : return 2361; /* sse4_1_zero_extendv2hiv2si2 */
8563 :
8564 : case 1:
8565 : if (!
8566 : #line 5111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8567 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
8568 : return -1;
8569 : return 2363; /* sse4_1_zero_extendv2qiv2si2 */
8570 :
8571 : case 2:
8572 : if (!
8573 : #line 5138 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8574 : (TARGET_SSE4_1))
8575 : return -1;
8576 : return 2365; /* sse4_1_zero_extendv2qiv2hi2 */
8577 :
8578 : default:
8579 : return -1;
8580 : }
8581 :
8582 : case 1:
8583 : if (!register_operand (operands[0], E_HImode)
8584 : || GET_MODE (x3) != E_HImode
8585 : || GET_MODE (x4) != E_QImode)
8586 : return -1;
8587 : x17 = XVECEXP (x6, 0, 0);
8588 : operands[2] = x17;
8589 : switch (pattern991 ())
8590 : {
8591 : case 0:
8592 : if (!
8593 : #line 5519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8594 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
8595 : return -1;
8596 : return 2381; /* *mmx_pextrb_zext */
8597 :
8598 : case 1:
8599 : if (!
8600 : #line 6186 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8601 : (TARGET_SSE4_1))
8602 : return -1;
8603 : return 2419; /* *pextrb_zext */
8604 :
8605 : case 2:
8606 : if (!
8607 : #line 21618 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8608 : (TARGET_SSE4_1))
8609 : return -1;
8610 : return 8539; /* *vec_extractv16qi_zext */
8611 :
8612 : default:
8613 : return -1;
8614 : }
8615 :
8616 : default:
8617 : return -1;
8618 : }
8619 :
8620 : case UNSPEC:
8621 : return recog_29 (x1, insn, pnum_clobbers);
8622 :
8623 : default:
8624 : return -1;
8625 : }
8626 : }
8627 :
8628 : int
8629 : recog_65 (rtx x1 ATTRIBUTE_UNUSED,
8630 : rtx_insn *insn ATTRIBUTE_UNUSED,
8631 : int *pnum_clobbers ATTRIBUTE_UNUSED)
8632 : {
8633 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
8634 : rtx x2, x3, x4, x5, x6, x7;
8635 : int res ATTRIBUTE_UNUSED;
8636 : x2 = XEXP (x1, 0);
8637 : operands[0] = x2;
8638 : x3 = XEXP (x1, 1);
8639 : x4 = XEXP (x3, 0);
8640 : switch (GET_CODE (x4))
8641 : {
8642 : case REG:
8643 : case SUBREG:
8644 : operands[2] = x4;
8645 : x5 = XEXP (x3, 2);
8646 : if (GET_CODE (x5) != CONST_INT)
8647 : return -1;
8648 : operands[3] = x5;
8649 : x6 = XEXP (x3, 1);
8650 : operands[1] = x6;
8651 : switch (GET_MODE (operands[0]))
8652 : {
8653 : case E_V2SFmode:
8654 : if (register_operand (operands[0], E_V2SFmode)
8655 : && GET_MODE (x3) == E_V2SFmode
8656 : && register_operand (operands[2], E_V2SFmode)
8657 : && register_operand (operands[1], E_V2SFmode)
8658 : && const_0_to_3_operand (operands[3], E_SImode)
8659 : &&
8660 : #line 1321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8661 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
8662 : return 2128; /* *mmx_blendps */
8663 : break;
8664 :
8665 : case E_V4HFmode:
8666 : if (pattern873 (x3,
8667 : E_V4HFmode) == 0
8668 : &&
8669 : #line 5643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8670 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
8671 : return 2390; /* *mmx_pblendw64 */
8672 : break;
8673 :
8674 : case E_V4BFmode:
8675 : if (pattern873 (x3,
8676 : E_V4BFmode) == 0
8677 : &&
8678 : #line 5643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8679 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
8680 : return 2391; /* *mmx_pblendw64 */
8681 : break;
8682 :
8683 : case E_V4HImode:
8684 : if (pattern873 (x3,
8685 : E_V4HImode) == 0
8686 : &&
8687 : #line 5643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8688 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
8689 : return 2392; /* *mmx_pblendw64 */
8690 : break;
8691 :
8692 : case E_V2HFmode:
8693 : if (pattern874 (x3,
8694 : E_V2HFmode) == 0
8695 : &&
8696 : #line 5662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8697 : (TARGET_SSE4_1))
8698 : return 2393; /* *mmx_pblendw32 */
8699 : break;
8700 :
8701 : case E_V2BFmode:
8702 : if (pattern874 (x3,
8703 : E_V2BFmode) == 0
8704 : &&
8705 : #line 5662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8706 : (TARGET_SSE4_1))
8707 : return 2394; /* *mmx_pblendw32 */
8708 : break;
8709 :
8710 : case E_V2HImode:
8711 : if (pattern874 (x3,
8712 : E_V2HImode) == 0
8713 : &&
8714 : #line 5662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8715 : (TARGET_SSE4_1))
8716 : return 2395; /* *mmx_pblendw32 */
8717 : break;
8718 :
8719 : default:
8720 : break;
8721 : }
8722 : if (XWINT (x5, 0) != 1L)
8723 : return -1;
8724 : operands[1] = x6;
8725 : switch (GET_MODE (operands[0]))
8726 : {
8727 : case E_V2SFmode:
8728 : if (pattern875 (x3,
8729 : E_V2SFmode) != 0
8730 : || !
8731 : #line 1767 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8732 : (TARGET_MMX_WITH_SSE))
8733 : return -1;
8734 : return 2144; /* *mmx_movss_v2sf */
8735 :
8736 : case E_V2SImode:
8737 : if (pattern875 (x3,
8738 : E_V2SImode) != 0
8739 : || !
8740 : #line 1767 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8741 : (TARGET_MMX_WITH_SSE))
8742 : return -1;
8743 : return 2145; /* *mmx_movss_v2si */
8744 :
8745 : default:
8746 : return -1;
8747 : }
8748 :
8749 : case VEC_DUPLICATE:
8750 : x7 = XEXP (x4, 0);
8751 : operands[2] = x7;
8752 : x6 = XEXP (x3, 1);
8753 : operands[1] = x6;
8754 : x5 = XEXP (x3, 2);
8755 : operands[3] = x5;
8756 : if (!const_int_operand (operands[3], E_SImode))
8757 : return -1;
8758 : switch (GET_MODE (operands[0]))
8759 : {
8760 : case E_V2SImode:
8761 : if (pattern876 (x3,
8762 : E_V2SImode,
8763 : E_SImode) != 0
8764 : || !
8765 : #line 5300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8766 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE
8767 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
8768 : < GET_MODE_NUNITS (V2SImode))))
8769 : return -1;
8770 : return 2370; /* *mmx_pinsrd */
8771 :
8772 : case E_V4HFmode:
8773 : if (pattern876 (x3,
8774 : E_V4HFmode,
8775 : E_HFmode) != 0
8776 : || !
8777 : #line 5331 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8778 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8779 : && (TARGET_SSE || TARGET_3DNOW_A)
8780 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
8781 : < GET_MODE_NUNITS (V4HImode))))
8782 : return -1;
8783 : return 2371; /* *mmx_pinsrw */
8784 :
8785 : case E_V4BFmode:
8786 : if (pattern876 (x3,
8787 : E_V4BFmode,
8788 : E_BFmode) != 0
8789 : || !
8790 : #line 5331 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8791 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8792 : && (TARGET_SSE || TARGET_3DNOW_A)
8793 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
8794 : < GET_MODE_NUNITS (V4HImode))))
8795 : return -1;
8796 : return 2372; /* *mmx_pinsrw */
8797 :
8798 : case E_V4HImode:
8799 : if (pattern876 (x3,
8800 : E_V4HImode,
8801 : E_HImode) != 0
8802 : || !
8803 : #line 5331 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8804 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8805 : && (TARGET_SSE || TARGET_3DNOW_A)
8806 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
8807 : < GET_MODE_NUNITS (V4HImode))))
8808 : return -1;
8809 : return 2373; /* *mmx_pinsrw */
8810 :
8811 : case E_V8QImode:
8812 : if (pattern876 (x3,
8813 : E_V8QImode,
8814 : E_QImode) != 0
8815 : || !
8816 : #line 5387 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8817 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE
8818 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
8819 : < GET_MODE_NUNITS (V8QImode))))
8820 : return -1;
8821 : return 2374; /* *mmx_pinsrb */
8822 :
8823 : case E_V2HFmode:
8824 : if (pattern876 (x3,
8825 : E_V2HFmode,
8826 : E_HFmode) != 0
8827 : || !
8828 : #line 6010 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8829 : (TARGET_SSE2
8830 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
8831 : < GET_MODE_NUNITS (V2HImode))))
8832 : return -1;
8833 : return 2409; /* *pinsrw */
8834 :
8835 : case E_V2BFmode:
8836 : if (pattern876 (x3,
8837 : E_V2BFmode,
8838 : E_BFmode) != 0
8839 : || !
8840 : #line 6010 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8841 : (TARGET_SSE2
8842 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
8843 : < GET_MODE_NUNITS (V2HImode))))
8844 : return -1;
8845 : return 2410; /* *pinsrw */
8846 :
8847 : case E_V2HImode:
8848 : if (pattern876 (x3,
8849 : E_V2HImode,
8850 : E_HImode) != 0
8851 : || !
8852 : #line 6010 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8853 : (TARGET_SSE2
8854 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
8855 : < GET_MODE_NUNITS (V2HImode))))
8856 : return -1;
8857 : return 2411; /* *pinsrw */
8858 :
8859 : case E_V4QImode:
8860 : if (pattern876 (x3,
8861 : E_V4QImode,
8862 : E_QImode) != 0
8863 : || !
8864 : #line 6064 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8865 : (TARGET_SSE4_1
8866 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
8867 : < GET_MODE_NUNITS (V4QImode))))
8868 : return -1;
8869 : return 2412; /* *pinsrb */
8870 :
8871 : default:
8872 : return -1;
8873 : }
8874 :
8875 : case SS_TRUNCATE:
8876 : switch (pattern107 (x3))
8877 : {
8878 : case 0:
8879 : if (!
8880 : #line 15872 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8881 : (TARGET_AVX512VL))
8882 : return -1;
8883 : return 7350; /* avx512vl_ss_truncatev2div2qi2_mask_store_1 */
8884 :
8885 : case 1:
8886 : if (!
8887 : #line 15967 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8888 : (TARGET_AVX512VL))
8889 : return -1;
8890 : return 7377; /* avx512vl_ss_truncatev4siv4qi2_mask_store_1 */
8891 :
8892 : case 2:
8893 : if (!
8894 : #line 15967 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8895 : (TARGET_AVX512VL))
8896 : return -1;
8897 : return 7380; /* avx512vl_ss_truncatev4div4qi2_mask_store_1 */
8898 :
8899 : case 3:
8900 : if (!(
8901 : #line 16065 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8902 : (TARGET_AVX512VL) &&
8903 : #line 15989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8904 : (TARGET_AVX512BW)))
8905 : return -1;
8906 : return 7407; /* avx512vl_ss_truncatev8hiv8qi2_mask_store_1 */
8907 :
8908 : case 4:
8909 : if (!
8910 : #line 16065 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8911 : (TARGET_AVX512VL))
8912 : return -1;
8913 : return 7410; /* avx512vl_ss_truncatev8siv8qi2_mask_store_1 */
8914 :
8915 : case 5:
8916 : if (!
8917 : #line 16577 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8918 : (TARGET_AVX512F))
8919 : return -1;
8920 : return 7502; /* avx512f_ss_truncatev8div16qi2_mask_store_1 */
8921 :
8922 : case 6:
8923 : if (!
8924 : #line 16219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8925 : (TARGET_AVX512VL))
8926 : return -1;
8927 : return 7447; /* avx512vl_ss_truncatev4siv4hi2_mask_store_1 */
8928 :
8929 : case 7:
8930 : if (!
8931 : #line 16219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8932 : (TARGET_AVX512VL))
8933 : return -1;
8934 : return 7450; /* avx512vl_ss_truncatev4div4hi2_mask_store_1 */
8935 :
8936 : case 8:
8937 : if (!
8938 : #line 16306 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8939 : (TARGET_AVX512VL))
8940 : return -1;
8941 : return 7465; /* avx512vl_ss_truncatev2div2hi2_mask_store_1 */
8942 :
8943 : case 9:
8944 : if (!
8945 : #line 16452 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8946 : (TARGET_AVX512VL))
8947 : return -1;
8948 : return 7484; /* avx512vl_ss_truncatev2div2si2_mask_store_1 */
8949 :
8950 : default:
8951 : return -1;
8952 : }
8953 :
8954 : case TRUNCATE:
8955 : switch (pattern107 (x3))
8956 : {
8957 : case 0:
8958 : if (!
8959 : #line 15872 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8960 : (TARGET_AVX512VL))
8961 : return -1;
8962 : return 7351; /* avx512vl_truncatev2div2qi2_mask_store_1 */
8963 :
8964 : case 1:
8965 : if (!
8966 : #line 15967 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8967 : (TARGET_AVX512VL))
8968 : return -1;
8969 : return 7378; /* avx512vl_truncatev4siv4qi2_mask_store_1 */
8970 :
8971 : case 2:
8972 : if (!
8973 : #line 15967 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8974 : (TARGET_AVX512VL))
8975 : return -1;
8976 : return 7381; /* avx512vl_truncatev4div4qi2_mask_store_1 */
8977 :
8978 : case 3:
8979 : if (!(
8980 : #line 16065 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8981 : (TARGET_AVX512VL) &&
8982 : #line 15989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8983 : (TARGET_AVX512BW)))
8984 : return -1;
8985 : return 7408; /* avx512vl_truncatev8hiv8qi2_mask_store_1 */
8986 :
8987 : case 4:
8988 : if (!
8989 : #line 16065 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8990 : (TARGET_AVX512VL))
8991 : return -1;
8992 : return 7411; /* avx512vl_truncatev8siv8qi2_mask_store_1 */
8993 :
8994 : case 5:
8995 : if (!
8996 : #line 16577 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8997 : (TARGET_AVX512F))
8998 : return -1;
8999 : return 7503; /* avx512f_truncatev8div16qi2_mask_store_1 */
9000 :
9001 : case 6:
9002 : if (!
9003 : #line 16219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9004 : (TARGET_AVX512VL))
9005 : return -1;
9006 : return 7448; /* avx512vl_truncatev4siv4hi2_mask_store_1 */
9007 :
9008 : case 7:
9009 : if (!
9010 : #line 16219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9011 : (TARGET_AVX512VL))
9012 : return -1;
9013 : return 7451; /* avx512vl_truncatev4div4hi2_mask_store_1 */
9014 :
9015 : case 8:
9016 : if (!
9017 : #line 16306 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9018 : (TARGET_AVX512VL))
9019 : return -1;
9020 : return 7466; /* avx512vl_truncatev2div2hi2_mask_store_1 */
9021 :
9022 : case 9:
9023 : if (!
9024 : #line 16452 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9025 : (TARGET_AVX512VL))
9026 : return -1;
9027 : return 7485; /* avx512vl_truncatev2div2si2_mask_store_1 */
9028 :
9029 : default:
9030 : return -1;
9031 : }
9032 :
9033 : case US_TRUNCATE:
9034 : switch (pattern107 (x3))
9035 : {
9036 : case 0:
9037 : if (!
9038 : #line 15872 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9039 : (TARGET_AVX512VL))
9040 : return -1;
9041 : return 7352; /* avx512vl_us_truncatev2div2qi2_mask_store_1 */
9042 :
9043 : case 1:
9044 : if (!
9045 : #line 15967 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9046 : (TARGET_AVX512VL))
9047 : return -1;
9048 : return 7379; /* avx512vl_us_truncatev4siv4qi2_mask_store_1 */
9049 :
9050 : case 2:
9051 : if (!
9052 : #line 15967 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9053 : (TARGET_AVX512VL))
9054 : return -1;
9055 : return 7382; /* avx512vl_us_truncatev4div4qi2_mask_store_1 */
9056 :
9057 : case 3:
9058 : if (!(
9059 : #line 16065 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9060 : (TARGET_AVX512VL) &&
9061 : #line 15989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9062 : (TARGET_AVX512BW)))
9063 : return -1;
9064 : return 7409; /* avx512vl_us_truncatev8hiv8qi2_mask_store_1 */
9065 :
9066 : case 4:
9067 : if (!
9068 : #line 16065 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9069 : (TARGET_AVX512VL))
9070 : return -1;
9071 : return 7412; /* avx512vl_us_truncatev8siv8qi2_mask_store_1 */
9072 :
9073 : case 5:
9074 : if (!
9075 : #line 16577 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9076 : (TARGET_AVX512F))
9077 : return -1;
9078 : return 7504; /* avx512f_us_truncatev8div16qi2_mask_store_1 */
9079 :
9080 : case 6:
9081 : if (!
9082 : #line 16219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9083 : (TARGET_AVX512VL))
9084 : return -1;
9085 : return 7449; /* avx512vl_us_truncatev4siv4hi2_mask_store_1 */
9086 :
9087 : case 7:
9088 : if (!
9089 : #line 16219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9090 : (TARGET_AVX512VL))
9091 : return -1;
9092 : return 7452; /* avx512vl_us_truncatev4div4hi2_mask_store_1 */
9093 :
9094 : case 8:
9095 : if (!
9096 : #line 16306 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9097 : (TARGET_AVX512VL))
9098 : return -1;
9099 : return 7467; /* avx512vl_us_truncatev2div2hi2_mask_store_1 */
9100 :
9101 : case 9:
9102 : if (!
9103 : #line 16452 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9104 : (TARGET_AVX512VL))
9105 : return -1;
9106 : return 7486; /* avx512vl_us_truncatev2div2si2_mask_store_1 */
9107 :
9108 : default:
9109 : return -1;
9110 : }
9111 :
9112 : default:
9113 : return -1;
9114 : }
9115 : }
9116 :
9117 : int
9118 : recog_77 (rtx x1 ATTRIBUTE_UNUSED,
9119 : rtx_insn *insn ATTRIBUTE_UNUSED,
9120 : int *pnum_clobbers ATTRIBUTE_UNUSED)
9121 : {
9122 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
9123 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
9124 : rtx x10, x11;
9125 : int res ATTRIBUTE_UNUSED;
9126 : x2 = XEXP (x1, 1);
9127 : x3 = XEXP (x2, 0);
9128 : x4 = XEXP (x3, 0);
9129 : switch (GET_CODE (x4))
9130 : {
9131 : case REG:
9132 : case SUBREG:
9133 : case MEM:
9134 : operands[1] = x4;
9135 : x5 = XEXP (x3, 1);
9136 : operands[2] = x5;
9137 : switch (GET_CODE (operands[2]))
9138 : {
9139 : case CONST_INT:
9140 : case CONST_WIDE_INT:
9141 : case CONST_POLY_INT:
9142 : case CONST_FIXED:
9143 : case CONST_DOUBLE:
9144 : case CONST_VECTOR:
9145 : case CONST:
9146 : case REG:
9147 : case SUBREG:
9148 : case MEM:
9149 : case LABEL_REF:
9150 : case SYMBOL_REF:
9151 : case HIGH:
9152 : switch (pattern114 (x2, pnum_clobbers))
9153 : {
9154 : case 0:
9155 : if (
9156 : #line 8381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9157 : (TARGET_APX_NDD && TARGET_APX_NF
9158 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9159 : return 398; /* *subqi_1_zextsi_nf */
9160 : if (pnum_clobbers == NULL
9161 : || !
9162 : #line 8381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9163 : (TARGET_APX_NDD && true
9164 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9165 : return -1;
9166 : *pnum_clobbers = 1;
9167 : return 399; /* *subqi_1_zextsi */
9168 :
9169 : case 1:
9170 : if (
9171 : #line 8400 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9172 : (TARGET_APX_NDD && TARGET_APX_NF
9173 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9174 : return 402; /* *subhi_1_zextsi_nf */
9175 : if (pnum_clobbers == NULL
9176 : || !
9177 : #line 8400 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9178 : (TARGET_APX_NDD && true
9179 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9180 : return -1;
9181 : *pnum_clobbers = 1;
9182 : return 403; /* *subhi_1_zextsi */
9183 :
9184 : case 2:
9185 : if (
9186 : #line 8381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9187 : (TARGET_APX_NDD && TARGET_APX_NF
9188 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9189 : return 400; /* *subqi_1_zextdi_nf */
9190 : if (pnum_clobbers == NULL
9191 : || !
9192 : #line 8381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9193 : (TARGET_APX_NDD && true
9194 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9195 : return -1;
9196 : *pnum_clobbers = 1;
9197 : return 401; /* *subqi_1_zextdi */
9198 :
9199 : case 3:
9200 : if (
9201 : #line 8400 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9202 : (TARGET_APX_NDD && TARGET_APX_NF
9203 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9204 : return 404; /* *subhi_1_zextdi_nf */
9205 : if (pnum_clobbers == NULL
9206 : || !
9207 : #line 8400 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9208 : (TARGET_APX_NDD && true
9209 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9210 : return -1;
9211 : *pnum_clobbers = 1;
9212 : return 405; /* *subhi_1_zextdi */
9213 :
9214 : case 4:
9215 : if (!
9216 : #line 8420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9217 : (TARGET_64BIT
9218 : && ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)))
9219 : return -1;
9220 : *pnum_clobbers = 1;
9221 : return 406; /* *subsi_1_zext */
9222 :
9223 : default:
9224 : return -1;
9225 : }
9226 :
9227 : case LTU:
9228 : case UNLT:
9229 : switch (pattern762 (x2, pnum_clobbers))
9230 : {
9231 : case 0:
9232 : if (!nonimmediate_operand (operands[1], E_QImode)
9233 : || !ix86_carry_flag_operator (operands[2], E_QImode)
9234 : || !
9235 : #line 10080 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9236 : (TARGET_APX_NDD))
9237 : return -1;
9238 : *pnum_clobbers = 1;
9239 : return 534; /* *subqi3_carry_zextsi_0 */
9240 :
9241 : case 1:
9242 : if (!nonimmediate_operand (operands[1], E_HImode)
9243 : || !ix86_carry_flag_operator (operands[2], E_HImode)
9244 : || !
9245 : #line 10099 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9246 : (TARGET_APX_NDD))
9247 : return -1;
9248 : *pnum_clobbers = 1;
9249 : return 536; /* *subhi3_carry_zextsi_0 */
9250 :
9251 : case 2:
9252 : if (!nonimmediate_operand (operands[1], E_QImode)
9253 : || !ix86_carry_flag_operator (operands[2], E_QImode)
9254 : || !
9255 : #line 10080 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9256 : (TARGET_APX_NDD))
9257 : return -1;
9258 : *pnum_clobbers = 1;
9259 : return 535; /* *subqi3_carry_zextdi_0 */
9260 :
9261 : case 3:
9262 : if (!nonimmediate_operand (operands[1], E_HImode)
9263 : || !ix86_carry_flag_operator (operands[2], E_HImode)
9264 : || !
9265 : #line 10099 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9266 : (TARGET_APX_NDD))
9267 : return -1;
9268 : *pnum_clobbers = 1;
9269 : return 537; /* *subhi3_carry_zextdi_0 */
9270 :
9271 : case 4:
9272 : if (!nonimmediate_operand (operands[1], E_SImode)
9273 : || !ix86_carry_flag_operator (operands[2], E_SImode)
9274 : || !
9275 : #line 10118 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9276 : (TARGET_64BIT))
9277 : return -1;
9278 : *pnum_clobbers = 1;
9279 : return 538; /* *subsi3_carry_zext_0 */
9280 :
9281 : default:
9282 : return -1;
9283 : }
9284 :
9285 : case GE:
9286 : case GEU:
9287 : switch (pattern762 (x2, pnum_clobbers))
9288 : {
9289 : case 0:
9290 : if (!nonimmediate_operand (operands[1], E_QImode)
9291 : || !ix86_carry_flag_unset_operator (operands[2], E_QImode)
9292 : || !
9293 : #line 10141 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9294 : (TARGET_APX_NDD))
9295 : return -1;
9296 : *pnum_clobbers = 1;
9297 : return 540; /* *subqi3_carry_zextsi_0r */
9298 :
9299 : case 1:
9300 : if (!nonimmediate_operand (operands[1], E_HImode)
9301 : || !ix86_carry_flag_unset_operator (operands[2], E_HImode)
9302 : || !
9303 : #line 10160 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9304 : (TARGET_APX_NDD))
9305 : return -1;
9306 : *pnum_clobbers = 1;
9307 : return 542; /* *subhi3_carry_zextsi_0r */
9308 :
9309 : case 2:
9310 : if (!nonimmediate_operand (operands[1], E_QImode)
9311 : || !ix86_carry_flag_unset_operator (operands[2], E_QImode)
9312 : || !
9313 : #line 10141 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9314 : (TARGET_APX_NDD))
9315 : return -1;
9316 : *pnum_clobbers = 1;
9317 : return 541; /* *subqi3_carry_zextdi_0r */
9318 :
9319 : case 3:
9320 : if (!nonimmediate_operand (operands[1], E_HImode)
9321 : || !ix86_carry_flag_unset_operator (operands[2], E_HImode)
9322 : || !
9323 : #line 10160 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9324 : (TARGET_APX_NDD))
9325 : return -1;
9326 : *pnum_clobbers = 1;
9327 : return 543; /* *subhi3_carry_zextdi_0r */
9328 :
9329 : case 4:
9330 : if (!nonimmediate_operand (operands[1], E_SImode)
9331 : || !ix86_carry_flag_unset_operator (operands[2], E_SImode)
9332 : || !
9333 : #line 10179 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9334 : (TARGET_64BIT))
9335 : return -1;
9336 : *pnum_clobbers = 1;
9337 : return 544; /* *subsi3_carry_zext_0r */
9338 :
9339 : default:
9340 : return -1;
9341 : }
9342 :
9343 : default:
9344 : return -1;
9345 : }
9346 :
9347 : case MINUS:
9348 : if (pnum_clobbers == NULL)
9349 : return -1;
9350 : x6 = XEXP (x4, 1);
9351 : switch (GET_CODE (x6))
9352 : {
9353 : case LTU:
9354 : case UNLT:
9355 : operands[3] = x6;
9356 : x7 = XEXP (x6, 0);
9357 : if (GET_CODE (x7) != REG
9358 : || REGNO (x7) != 17)
9359 : return -1;
9360 : x8 = XEXP (x6, 1);
9361 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
9362 : return -1;
9363 : x9 = XEXP (x4, 0);
9364 : operands[1] = x9;
9365 : x5 = XEXP (x3, 1);
9366 : operands[2] = x5;
9367 : switch (pattern281 (x2))
9368 : {
9369 : case 0:
9370 : if (pattern1551 (x4,
9371 : E_QImode) != 0
9372 : || !
9373 : #line 10005 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9374 : (TARGET_APX_NDD
9375 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9376 : return -1;
9377 : *pnum_clobbers = 1;
9378 : return 528; /* *subqi3_carry_zextsi */
9379 :
9380 : case 1:
9381 : if (pattern1551 (x4,
9382 : E_HImode) != 0
9383 : || !
9384 : #line 10030 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9385 : (TARGET_APX_NDD
9386 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9387 : return -1;
9388 : *pnum_clobbers = 1;
9389 : return 530; /* *subhi3_carry_zextsi */
9390 :
9391 : case 2:
9392 : if (pattern1551 (x4,
9393 : E_QImode) != 0
9394 : || !
9395 : #line 10005 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9396 : (TARGET_APX_NDD
9397 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9398 : return -1;
9399 : *pnum_clobbers = 1;
9400 : return 529; /* *subqi3_carry_zextdi */
9401 :
9402 : case 3:
9403 : if (pattern1551 (x4,
9404 : E_HImode) != 0
9405 : || !
9406 : #line 10030 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9407 : (TARGET_APX_NDD
9408 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9409 : return -1;
9410 : *pnum_clobbers = 1;
9411 : return 531; /* *subhi3_carry_zextdi */
9412 :
9413 : case 4:
9414 : if (pattern1551 (x4,
9415 : E_SImode) != 0
9416 : || !
9417 : #line 10055 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9418 : (TARGET_64BIT
9419 : && ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)))
9420 : return -1;
9421 : *pnum_clobbers = 1;
9422 : return 532; /* *subsi3_carry_zext */
9423 :
9424 : default:
9425 : return -1;
9426 : }
9427 :
9428 : default:
9429 : return -1;
9430 : }
9431 :
9432 : case CONST_INT:
9433 : if (pnum_clobbers == NULL
9434 : || !register_operand (operands[0], E_DImode)
9435 : || GET_MODE (x2) != E_DImode
9436 : || GET_MODE (x3) != E_SImode)
9437 : return -1;
9438 : x5 = XEXP (x3, 1);
9439 : if (GET_MODE (x5) != E_SImode)
9440 : return -1;
9441 : switch (XWINT (x4, 0))
9442 : {
9443 : case 63L:
9444 : if (GET_CODE (x5) != SUBREG
9445 : || maybe_ne (SUBREG_BYTE (x5), 0))
9446 : return -1;
9447 : x10 = XEXP (x5, 0);
9448 : if (GET_CODE (x10) != CLZ
9449 : || GET_MODE (x10) != E_DImode)
9450 : return -1;
9451 : x11 = XEXP (x10, 0);
9452 : operands[1] = x11;
9453 : if (!nonimmediate_operand (operands[1], E_DImode)
9454 : || !
9455 : #line 22269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9456 : (!TARGET_LZCNT && TARGET_64BIT))
9457 : return -1;
9458 : *pnum_clobbers = 1;
9459 : return 1556; /* bsr_rex64_1_zext */
9460 :
9461 : case 31L:
9462 : if (GET_CODE (x5) != CLZ)
9463 : return -1;
9464 : x10 = XEXP (x5, 0);
9465 : operands[1] = x10;
9466 : if (!nonimmediate_operand (operands[1], E_SImode)
9467 : || !
9468 : #line 22312 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9469 : (!TARGET_LZCNT && TARGET_64BIT))
9470 : return -1;
9471 : *pnum_clobbers = 1;
9472 : return 1559; /* bsr_zext_1 */
9473 :
9474 : default:
9475 : return -1;
9476 : }
9477 :
9478 : default:
9479 : return -1;
9480 : }
9481 : }
9482 :
9483 : int
9484 : recog_87 (rtx x1 ATTRIBUTE_UNUSED,
9485 : rtx_insn *insn ATTRIBUTE_UNUSED,
9486 : int *pnum_clobbers ATTRIBUTE_UNUSED)
9487 : {
9488 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
9489 : rtx x2, x3;
9490 : int res ATTRIBUTE_UNUSED;
9491 : x2 = XEXP (x1, 1);
9492 : x3 = XEXP (x2, 1);
9493 : switch (GET_CODE (x3))
9494 : {
9495 : case CONST_INT:
9496 : case CONST_WIDE_INT:
9497 : case CONST_POLY_INT:
9498 : case CONST_FIXED:
9499 : case CONST_DOUBLE:
9500 : case CONST_VECTOR:
9501 : case CONST:
9502 : case REG:
9503 : case SUBREG:
9504 : case MEM:
9505 : case LABEL_REF:
9506 : case SYMBOL_REF:
9507 : case HIGH:
9508 : operands[2] = x3;
9509 : switch (pattern441 (x2))
9510 : {
9511 : case 0:
9512 : if (pnum_clobbers != NULL
9513 : && x86_64_hilo_general_operand (operands[2], E_DImode)
9514 : && (
9515 : #line 8293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9516 : (ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)) &&
9517 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9518 : (!TARGET_64BIT)))
9519 : {
9520 : *pnum_clobbers = 1;
9521 : return 384; /* *subdi3_doubleword */
9522 : }
9523 : if (!x86_64_general_operand (operands[2], E_DImode))
9524 : return -1;
9525 : if ((
9526 : #line 8357 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9527 : (ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)
9528 : && TARGET_APX_NF) &&
9529 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9530 : (TARGET_64BIT)))
9531 : return 394; /* *subdi_1_nf */
9532 : if (pnum_clobbers == NULL
9533 : || !(
9534 : #line 8357 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9535 : (ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)
9536 : && true) &&
9537 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9538 : (TARGET_64BIT)))
9539 : return -1;
9540 : *pnum_clobbers = 1;
9541 : return 395; /* *subdi_1 */
9542 :
9543 : case 1:
9544 : if (
9545 : #line 8357 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9546 : (ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)
9547 : && TARGET_APX_NF))
9548 : return 392; /* *subsi_1_nf */
9549 : if (pnum_clobbers == NULL
9550 : || !
9551 : #line 8357 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9552 : (ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)
9553 : && true))
9554 : return -1;
9555 : *pnum_clobbers = 1;
9556 : return 393; /* *subsi_1 */
9557 :
9558 : default:
9559 : return -1;
9560 : }
9561 :
9562 : case ZERO_EXTEND:
9563 : if (pnum_clobbers == NULL
9564 : || GET_MODE (x3) != E_DImode
9565 : || pattern767 (x2,
9566 : E_SImode,
9567 : E_DImode) != 0
9568 : || !(
9569 : #line 8331 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9570 : (ix86_binary_operator_ok (UNKNOWN, DImode, operands, TARGET_APX_NDD)) &&
9571 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9572 : (!TARGET_64BIT)))
9573 : return -1;
9574 : *pnum_clobbers = 1;
9575 : return 386; /* *subdi3_doubleword_zext */
9576 :
9577 : case LTU:
9578 : case UNLT:
9579 : switch (pattern450 (x3, pnum_clobbers))
9580 : {
9581 : case 0:
9582 : if (pattern1218 (x2,
9583 : E_SImode) != 0
9584 : || !
9585 : #line 9934 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9586 : (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1])))
9587 : return -1;
9588 : *pnum_clobbers = 1;
9589 : return 513; /* *subsi3_carry_0 */
9590 :
9591 : case 1:
9592 : if (pattern1218 (x2,
9593 : E_DImode) != 0
9594 : || !(
9595 : #line 9934 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9596 : (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1])) &&
9597 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9598 : (TARGET_64BIT)))
9599 : return -1;
9600 : *pnum_clobbers = 1;
9601 : return 514; /* *subdi3_carry_0 */
9602 :
9603 : default:
9604 : return -1;
9605 : }
9606 :
9607 : case GE:
9608 : case GEU:
9609 : switch (pattern450 (x3, pnum_clobbers))
9610 : {
9611 : case 0:
9612 : if (pattern1219 (x2,
9613 : E_SImode) != 0
9614 : || !
9615 : #line 9968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9616 : (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1])))
9617 : return -1;
9618 : *pnum_clobbers = 1;
9619 : return 521; /* *subsi3_carry_0r */
9620 :
9621 : case 1:
9622 : if (pattern1219 (x2,
9623 : E_DImode) != 0
9624 : || !(
9625 : #line 9968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9626 : (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1])) &&
9627 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9628 : (TARGET_64BIT)))
9629 : return -1;
9630 : *pnum_clobbers = 1;
9631 : return 522; /* *subdi3_carry_0r */
9632 :
9633 : default:
9634 : return -1;
9635 : }
9636 :
9637 : case EQ:
9638 : switch (pattern452 (x2, pnum_clobbers))
9639 : {
9640 : case 0:
9641 : if (!
9642 : #line 11063 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9643 : (ix86_unary_operator_ok (MINUS, SImode, operands)
9644 : && ix86_pre_reload_split ()))
9645 : return -1;
9646 : *pnum_clobbers = 1;
9647 : return 612; /* *subsi3_eq_0 */
9648 :
9649 : case 1:
9650 : if (!(
9651 : #line 11063 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9652 : (ix86_unary_operator_ok (MINUS, DImode, operands)
9653 : && ix86_pre_reload_split ()) &&
9654 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9655 : (TARGET_64BIT)))
9656 : return -1;
9657 : *pnum_clobbers = 1;
9658 : return 613; /* *subdi3_eq_0 */
9659 :
9660 : default:
9661 : return -1;
9662 : }
9663 :
9664 : case NE:
9665 : switch (pattern452 (x2, pnum_clobbers))
9666 : {
9667 : case 0:
9668 : if (!
9669 : #line 11084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9670 : (ix86_unary_operator_ok (MINUS, SImode, operands)
9671 : && ix86_pre_reload_split ()))
9672 : return -1;
9673 : *pnum_clobbers = 1;
9674 : return 616; /* *subsi3_ne_0 */
9675 :
9676 : case 1:
9677 : if (!(
9678 : #line 11084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9679 : (ix86_unary_operator_ok (MINUS, DImode, operands)
9680 : && ix86_pre_reload_split ()) &&
9681 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9682 : (TARGET_64BIT)))
9683 : return -1;
9684 : *pnum_clobbers = 1;
9685 : return 617; /* *subdi3_ne_0 */
9686 :
9687 : default:
9688 : return -1;
9689 : }
9690 :
9691 : default:
9692 : return -1;
9693 : }
9694 : }
9695 :
9696 : int
9697 : recog_90 (rtx x1 ATTRIBUTE_UNUSED,
9698 : rtx_insn *insn ATTRIBUTE_UNUSED,
9699 : int *pnum_clobbers ATTRIBUTE_UNUSED)
9700 : {
9701 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
9702 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
9703 : rtx x10, x11, x12, x13;
9704 : int res ATTRIBUTE_UNUSED;
9705 : x2 = XEXP (x1, 1);
9706 : x3 = XEXP (x2, 0);
9707 : x4 = XEXP (x3, 1);
9708 : if (GET_CODE (x4) != CONST_INT)
9709 : return -1;
9710 : x5 = XEXP (x1, 0);
9711 : operands[0] = x5;
9712 : switch (GET_CODE (x3))
9713 : {
9714 : case NE:
9715 : case EQ:
9716 : if (bt_comparison_operator (x3, E_VOIDmode))
9717 : {
9718 : res = recog_89 (x1, insn, pnum_clobbers);
9719 : if (res >= 0)
9720 : return res;
9721 : }
9722 : if (GET_CODE (x3) != NE
9723 : || GET_MODE (x3) != E_QImode
9724 : || XWINT (x4, 0) != 0L)
9725 : return -1;
9726 : x6 = XEXP (x2, 1);
9727 : if (GET_CODE (x6) != ZERO_EXTRACT)
9728 : return -1;
9729 : x7 = XEXP (x6, 1);
9730 : if (GET_CODE (x7) != UMIN
9731 : || GET_MODE (x7) != E_QImode)
9732 : return -1;
9733 : x8 = XEXP (x6, 2);
9734 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
9735 : return -1;
9736 : x9 = XEXP (x2, 2);
9737 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
9738 : return -1;
9739 : x10 = XEXP (x3, 0);
9740 : operands[2] = x10;
9741 : if (!register_operand (operands[2], E_QImode))
9742 : return -1;
9743 : x11 = XEXP (x6, 0);
9744 : operands[1] = x11;
9745 : x12 = XEXP (x7, 1);
9746 : operands[3] = x12;
9747 : if (!const_int_operand (operands[3], E_QImode))
9748 : return -1;
9749 : x13 = XEXP (x7, 0);
9750 : if (!rtx_equal_p (x13, operands[2]))
9751 : return -1;
9752 : switch (GET_MODE (operands[0]))
9753 : {
9754 : case E_SImode:
9755 : if (pattern884 (x2,
9756 : E_SImode) != 0
9757 : || !
9758 : #line 23062 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9759 : (TARGET_BMI2 && INTVAL (operands[3]) == 4 * BITS_PER_UNIT))
9760 : return -1;
9761 : *pnum_clobbers = 1;
9762 : return 1622; /* *bmi2_bzhi_si3 */
9763 :
9764 : case E_DImode:
9765 : if (pattern884 (x2,
9766 : E_DImode) != 0
9767 : || !(
9768 : #line 23062 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9769 : (TARGET_BMI2 && INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
9770 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9771 : (TARGET_64BIT)))
9772 : return -1;
9773 : *pnum_clobbers = 1;
9774 : return 1623; /* *bmi2_bzhi_di3 */
9775 :
9776 : default:
9777 : return -1;
9778 : }
9779 :
9780 : case LTU:
9781 : case UNLT:
9782 : operands[1] = x3;
9783 : if (!ix86_carry_flag_operator (operands[1], E_VOIDmode))
9784 : return -1;
9785 : x10 = XEXP (x3, 0);
9786 : if (GET_CODE (x10) != REG
9787 : || REGNO (x10) != 17
9788 : || XWINT (x4, 0) != 0L)
9789 : return -1;
9790 : x6 = XEXP (x2, 1);
9791 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + -1])
9792 : return -1;
9793 : x9 = XEXP (x2, 2);
9794 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
9795 : return -1;
9796 : switch (pattern24 (x2))
9797 : {
9798 : case 0:
9799 : *pnum_clobbers = 1;
9800 : return 1827; /* *x86_movsicc_0_m1 */
9801 :
9802 : case 1:
9803 : if (!
9804 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9805 : (TARGET_64BIT))
9806 : return -1;
9807 : *pnum_clobbers = 1;
9808 : return 1828; /* *x86_movdicc_0_m1 */
9809 :
9810 : default:
9811 : return -1;
9812 : }
9813 :
9814 : default:
9815 : return -1;
9816 : }
9817 : }
9818 :
9819 : int
9820 : recog_91 (rtx x1 ATTRIBUTE_UNUSED,
9821 : rtx_insn *insn ATTRIBUTE_UNUSED,
9822 : int *pnum_clobbers ATTRIBUTE_UNUSED)
9823 : {
9824 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
9825 : rtx x2, x3, x4, x5, x6, x7;
9826 : int res ATTRIBUTE_UNUSED;
9827 : x2 = XEXP (x1, 1);
9828 : x3 = XEXP (x2, 0);
9829 : switch (GET_CODE (x3))
9830 : {
9831 : case NE:
9832 : case EQ:
9833 : case GE:
9834 : case GT:
9835 : case LE:
9836 : case LT:
9837 : case LTGT:
9838 : case GEU:
9839 : case GTU:
9840 : case LEU:
9841 : case LTU:
9842 : case UNORDERED:
9843 : case ORDERED:
9844 : case UNEQ:
9845 : case UNGE:
9846 : case UNGT:
9847 : case UNLE:
9848 : case UNLT:
9849 : if (pnum_clobbers != NULL)
9850 : {
9851 : res = recog_90 (x1, insn, pnum_clobbers);
9852 : if (res >= 0)
9853 : return res;
9854 : }
9855 : operands[1] = x3;
9856 : if (!ix86_comparison_operator (operands[1], E_VOIDmode))
9857 : return -1;
9858 : switch (pattern249 (x1))
9859 : {
9860 : case 0:
9861 : switch (GET_MODE (operands[0]))
9862 : {
9863 : case E_SImode:
9864 : if (pattern1281 (x2,
9865 : E_SImode) != 0
9866 : || !
9867 : #line 27458 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9868 : (TARGET_CMOVE && !(MEM_P (operands[2]) && MEM_P (operands[3]))))
9869 : return -1;
9870 : return 1836; /* *movsicc_noc */
9871 :
9872 : case E_DImode:
9873 : if (pattern1281 (x2,
9874 : E_DImode) != 0
9875 : || !(
9876 : #line 27458 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9877 : (TARGET_CMOVE && !(MEM_P (operands[2]) && MEM_P (operands[3]))) &&
9878 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9879 : (TARGET_64BIT)))
9880 : return -1;
9881 : return 1837; /* *movdicc_noc */
9882 :
9883 : default:
9884 : return -1;
9885 : }
9886 :
9887 : case 1:
9888 : if (!register_operand (operands[0], E_DImode)
9889 : || GET_MODE (x2) != E_DImode)
9890 : return -1;
9891 : x4 = XEXP (x2, 1);
9892 : x5 = XEXP (x4, 0);
9893 : operands[2] = x5;
9894 : if (!nonimmediate_operand (operands[2], E_SImode))
9895 : return -1;
9896 : x6 = XEXP (x2, 2);
9897 : x7 = XEXP (x6, 0);
9898 : operands[3] = x7;
9899 : if (!nonimmediate_operand (operands[3], E_SImode)
9900 : || !
9901 : #line 27481 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9902 : (TARGET_64BIT
9903 : && TARGET_CMOVE && !(MEM_P (operands[2]) && MEM_P (operands[3]))))
9904 : return -1;
9905 : return 1838; /* *movsicc_noc_zext */
9906 :
9907 : default:
9908 : return -1;
9909 : }
9910 :
9911 : default:
9912 : return -1;
9913 : }
9914 : }
9915 :
9916 : int
9917 : recog_93 (rtx x1 ATTRIBUTE_UNUSED,
9918 : rtx_insn *insn ATTRIBUTE_UNUSED,
9919 : int *pnum_clobbers ATTRIBUTE_UNUSED)
9920 : {
9921 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
9922 : rtx x2, x3, x4, x5, x6, x7;
9923 : int res ATTRIBUTE_UNUSED;
9924 : if (pnum_clobbers == NULL)
9925 : return -1;
9926 : x2 = XEXP (x1, 1);
9927 : x3 = XEXP (x2, 0);
9928 : if (GET_CODE (x3) != LSHIFTRT)
9929 : return -1;
9930 : x4 = XEXP (x3, 0);
9931 : if (GET_CODE (x4) != MULT)
9932 : return -1;
9933 : x5 = XEXP (x3, 1);
9934 : if (GET_CODE (x5) != CONST_INT)
9935 : return -1;
9936 : x6 = XEXP (x1, 0);
9937 : operands[0] = x6;
9938 : x7 = XEXP (x4, 0);
9939 : switch (GET_CODE (x7))
9940 : {
9941 : case SIGN_EXTEND:
9942 : switch (pattern769 (x2,
9943 : SIGN_EXTEND))
9944 : {
9945 : case 0:
9946 : if (!
9947 : #line 11950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9948 : (TARGET_64BIT
9949 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9950 : return -1;
9951 : *pnum_clobbers = 2;
9952 : return 661; /* *smuldi3_highpart_1 */
9953 :
9954 : case 1:
9955 : if (!
9956 : #line 11999 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9957 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))))
9958 : return -1;
9959 : *pnum_clobbers = 2;
9960 : return 665; /* *smulsi3_highpart_1 */
9961 :
9962 : default:
9963 : return -1;
9964 : }
9965 :
9966 : case ZERO_EXTEND:
9967 : switch (pattern769 (x2,
9968 : ZERO_EXTEND))
9969 : {
9970 : case 0:
9971 : if (!
9972 : #line 11950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9973 : (TARGET_64BIT
9974 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9975 : return -1;
9976 : *pnum_clobbers = 2;
9977 : return 662; /* *umuldi3_highpart_1 */
9978 :
9979 : case 1:
9980 : if (!
9981 : #line 11999 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9982 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))))
9983 : return -1;
9984 : *pnum_clobbers = 2;
9985 : return 666; /* *umulsi3_highpart_1 */
9986 :
9987 : default:
9988 : return -1;
9989 : }
9990 :
9991 : default:
9992 : return -1;
9993 : }
9994 : }
9995 :
9996 : int
9997 : recog_96 (rtx x1 ATTRIBUTE_UNUSED,
9998 : rtx_insn *insn ATTRIBUTE_UNUSED,
9999 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10000 : {
10001 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10002 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
10003 : int res ATTRIBUTE_UNUSED;
10004 : x2 = XEXP (x1, 0);
10005 : operands[0] = x2;
10006 : x3 = XEXP (x1, 1);
10007 : x4 = XEXP (x3, 0);
10008 : switch (GET_CODE (x4))
10009 : {
10010 : case XOR:
10011 : if (pnum_clobbers == NULL)
10012 : return -1;
10013 : x5 = XEXP (x4, 0);
10014 : operands[1] = x5;
10015 : x6 = XEXP (x4, 1);
10016 : operands[2] = x6;
10017 : switch (GET_MODE (operands[0]))
10018 : {
10019 : case E_SImode:
10020 : if (!nonimmediate_operand (operands[0], E_SImode)
10021 : || pattern21 (x3,
10022 : E_SImode) != 0
10023 : || !
10024 : #line 14425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10025 : (ix86_binary_operator_ok (XOR, SImode, operands, TARGET_APX_NDD)))
10026 : return -1;
10027 : *pnum_clobbers = 1;
10028 : return 864; /* *notxorsi_1 */
10029 :
10030 : case E_DImode:
10031 : if (!nonimmediate_operand (operands[0], E_DImode)
10032 : || pattern21 (x3,
10033 : E_DImode) != 0
10034 : || !(
10035 : #line 14425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10036 : (ix86_binary_operator_ok (XOR, DImode, operands, TARGET_APX_NDD)) &&
10037 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10038 : (TARGET_64BIT)))
10039 : return -1;
10040 : *pnum_clobbers = 1;
10041 : return 865; /* *notxordi_1 */
10042 :
10043 : default:
10044 : return -1;
10045 : }
10046 :
10047 : case REG:
10048 : case SUBREG:
10049 : case MEM:
10050 : switch (pattern121 (x3))
10051 : {
10052 : case 0:
10053 : if ((
10054 : #line 15911 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10055 : (ix86_unary_operator_ok (NOT, DImode, operands, TARGET_APX_NDD)) &&
10056 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10057 : (!TARGET_64BIT)))
10058 : return 1062; /* *one_cmpldi2_doubleword */
10059 : if (!(
10060 : #line 15928 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10061 : (ix86_unary_operator_ok (NOT, DImode, operands, TARGET_APX_NDD)) &&
10062 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10063 : (TARGET_64BIT)))
10064 : return -1;
10065 : return 1066; /* *one_cmpldi2_1 */
10066 :
10067 : case 1:
10068 : if (!
10069 : #line 15928 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10070 : (ix86_unary_operator_ok (NOT, SImode, operands, TARGET_APX_NDD)))
10071 : return -1;
10072 : return 1065; /* *one_cmplsi2_1 */
10073 :
10074 : default:
10075 : return -1;
10076 : }
10077 :
10078 : case UNSPEC:
10079 : if (XVECLEN (x4, 0) != 3)
10080 : return -1;
10081 : x7 = XVECEXP (x4, 0, 0);
10082 : operands[1] = x7;
10083 : x8 = XVECEXP (x4, 0, 1);
10084 : operands[2] = x8;
10085 : x9 = XVECEXP (x4, 0, 2);
10086 : operands[3] = x9;
10087 : switch (XINT (x4, 1))
10088 : {
10089 : case 60:
10090 : switch (GET_MODE (operands[0]))
10091 : {
10092 : case E_SImode:
10093 : switch (pattern995 (x3))
10094 : {
10095 : case 0:
10096 : if (!(
10097 : #line 4755 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10098 : (TARGET_AVX512F && GET_MODE_NUNITS (V32HFmode) >= 8
10099 : && ix86_pre_reload_split ()) &&
10100 : #line 320 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10101 : (TARGET_AVX512FP16)))
10102 : return -1;
10103 : return 3452; /* *avx512bw_cmpv32hf3 */
10104 :
10105 : case 1:
10106 : if (!(
10107 : #line 4950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10108 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
10109 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10110 : (TARGET_AVX512VL)))
10111 : return -1;
10112 : return 3540; /* *avx512vl_cmpv32qi3 */
10113 :
10114 : case 2:
10115 : if (!
10116 : #line 4950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10117 : (TARGET_AVX512BW && ix86_pre_reload_split ()))
10118 : return -1;
10119 : return 3542; /* *avx512bw_cmpv32hi3 */
10120 :
10121 : default:
10122 : return -1;
10123 : }
10124 :
10125 : case E_DImode:
10126 : if (pattern996 (x3) != 0
10127 : || !
10128 : #line 4950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10129 : (TARGET_AVX512BW && ix86_pre_reload_split ()))
10130 : return -1;
10131 : return 3536; /* *avx512bw_cmpv64qi3 */
10132 :
10133 : default:
10134 : return -1;
10135 : }
10136 :
10137 : case 158:
10138 : if (!const_0_to_7_operand (operands[3], E_SImode))
10139 : return -1;
10140 : switch (GET_MODE (operands[0]))
10141 : {
10142 : case E_DImode:
10143 : if (pattern1105 (x3,
10144 : E_V64QImode,
10145 : E_DImode) != 0
10146 : || !
10147 : #line 4950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10148 : (TARGET_AVX512BW && ix86_pre_reload_split ()))
10149 : return -1;
10150 : return 3537; /* *avx512bw_cmpv64qi3 */
10151 :
10152 : case E_SImode:
10153 : switch (pattern1106 (x3))
10154 : {
10155 : case 0:
10156 : if (!(
10157 : #line 4950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10158 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
10159 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10160 : (TARGET_AVX512VL)))
10161 : return -1;
10162 : return 3541; /* *avx512vl_cmpv32qi3 */
10163 :
10164 : case 1:
10165 : if (!
10166 : #line 4950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10167 : (TARGET_AVX512BW && ix86_pre_reload_split ()))
10168 : return -1;
10169 : return 3543; /* *avx512bw_cmpv32hi3 */
10170 :
10171 : default:
10172 : return -1;
10173 : }
10174 :
10175 : default:
10176 : return -1;
10177 : }
10178 :
10179 : default:
10180 : return -1;
10181 : }
10182 :
10183 : default:
10184 : return -1;
10185 : }
10186 : }
10187 :
10188 : int
10189 : recog_100 (rtx x1 ATTRIBUTE_UNUSED,
10190 : rtx_insn *insn ATTRIBUTE_UNUSED,
10191 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10192 : {
10193 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10194 : rtx x2, x3, x4, x5;
10195 : int res ATTRIBUTE_UNUSED;
10196 : x2 = XEXP (x1, 0);
10197 : operands[0] = x2;
10198 : x3 = XEXP (x1, 1);
10199 : x4 = XEXP (x3, 0);
10200 : switch (GET_CODE (x4))
10201 : {
10202 : case CONST_INT:
10203 : case REG:
10204 : case SUBREG:
10205 : case MEM:
10206 : switch (pattern124 (x3, pnum_clobbers))
10207 : {
10208 : case 0:
10209 : if (pnum_clobbers != NULL
10210 : && pattern635 (x3) == 0
10211 : && (
10212 : #line 16166 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10213 : (((INTVAL (operands[3]) & (4 * BITS_PER_UNIT)) == 0
10214 : || ((INTVAL (operands[3]) & (2 * 4 * BITS_PER_UNIT - 1))
10215 : == (2 * 4 * BITS_PER_UNIT - 1)))
10216 : && ix86_pre_reload_split ()) &&
10217 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10218 : (!TARGET_64BIT)))
10219 : {
10220 : *pnum_clobbers = 1;
10221 : return 1084; /* *ashldi3_doubleword_mask */
10222 : }
10223 : x5 = XEXP (x3, 1);
10224 : operands[2] = x5;
10225 : res = recog_99 (x1, insn, pnum_clobbers);
10226 : if (res >= 0)
10227 : return res;
10228 : if (pnum_clobbers == NULL)
10229 : return -1;
10230 : switch (pattern636 (x3))
10231 : {
10232 : case 0:
10233 : if (!
10234 : #line 18773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10235 : (ix86_binary_operator_ok (ASHIFT, SImode, operands)
10236 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
10237 : == 4 * BITS_PER_UNIT - 1
10238 : && ix86_pre_reload_split ()))
10239 : return -1;
10240 : *pnum_clobbers = 1;
10241 : return 1276; /* *ashlsi3_mask */
10242 :
10243 : case 1:
10244 : if (!(
10245 : #line 18773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10246 : (ix86_binary_operator_ok (ASHIFT, DImode, operands)
10247 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
10248 : == 8 * BITS_PER_UNIT - 1
10249 : && ix86_pre_reload_split ()) &&
10250 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10251 : (TARGET_64BIT)))
10252 : return -1;
10253 : *pnum_clobbers = 1;
10254 : return 1279; /* *ashldi3_mask */
10255 :
10256 : case 2:
10257 : if (!
10258 : #line 18821 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10259 : (ix86_binary_operator_ok (ASHIFT, SImode, operands)
10260 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
10261 : && ix86_pre_reload_split ()))
10262 : return -1;
10263 : *pnum_clobbers = 1;
10264 : return 1288; /* *ashlsi3_add */
10265 :
10266 : case 3:
10267 : if (!(
10268 : #line 18821 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10269 : (ix86_binary_operator_ok (ASHIFT, DImode, operands)
10270 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
10271 : && ix86_pre_reload_split ()) &&
10272 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10273 : (TARGET_64BIT)))
10274 : return -1;
10275 : *pnum_clobbers = 1;
10276 : return 1291; /* *ashldi3_add */
10277 :
10278 : case 4:
10279 : if (!
10280 : #line 18867 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10281 : (ix86_binary_operator_ok (ASHIFT, SImode, operands)
10282 : && ((INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
10283 : || (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
10284 : == 4 * BITS_PER_UNIT - 1)
10285 : && ix86_pre_reload_split ()))
10286 : return -1;
10287 : *pnum_clobbers = 1;
10288 : return 1300; /* *ashlsi3_sub */
10289 :
10290 : case 5:
10291 : if (!(
10292 : #line 18867 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10293 : (ix86_binary_operator_ok (ASHIFT, DImode, operands)
10294 : && ((INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
10295 : || (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
10296 : == 8 * BITS_PER_UNIT - 1)
10297 : && ix86_pre_reload_split ()) &&
10298 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10299 : (TARGET_64BIT)))
10300 : return -1;
10301 : *pnum_clobbers = 1;
10302 : return 1303; /* *ashldi3_sub */
10303 :
10304 : default:
10305 : return -1;
10306 : }
10307 :
10308 : case 1:
10309 : if (register_operand (operands[0], E_DImode)
10310 : && register_operand (operands[1], E_DImode)
10311 : && (
10312 : #line 16227 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10313 : (((INTVAL (operands[3]) & (4 * BITS_PER_UNIT)) == 0
10314 : || ((INTVAL (operands[3]) & (2 * 4 * BITS_PER_UNIT - 1))
10315 : == (2 * 4 * BITS_PER_UNIT - 1)))
10316 : && ix86_pre_reload_split ()) &&
10317 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10318 : (!TARGET_64BIT)))
10319 : {
10320 : *pnum_clobbers = 1;
10321 : return 1086; /* *ashldi3_doubleword_mask_1 */
10322 : }
10323 : if (!nonimmediate_operand (operands[0], E_DImode)
10324 : || !nonimmediate_operand (operands[1], E_DImode)
10325 : || !(
10326 : #line 18798 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10327 : (ix86_binary_operator_ok (ASHIFT, DImode, operands)
10328 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
10329 : == 8 * BITS_PER_UNIT - 1
10330 : && ix86_pre_reload_split ()) &&
10331 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10332 : (TARGET_64BIT)))
10333 : return -1;
10334 : *pnum_clobbers = 1;
10335 : return 1285; /* *ashldi3_mask_1 */
10336 :
10337 : case 2:
10338 : if (!
10339 : #line 18798 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10340 : (ix86_binary_operator_ok (ASHIFT, SImode, operands)
10341 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
10342 : == 4 * BITS_PER_UNIT - 1
10343 : && ix86_pre_reload_split ()))
10344 : return -1;
10345 : *pnum_clobbers = 1;
10346 : return 1282; /* *ashlsi3_mask_1 */
10347 :
10348 : case 3:
10349 : if (!
10350 : #line 18845 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10351 : (ix86_binary_operator_ok (ASHIFT, SImode, operands)
10352 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
10353 : && ix86_pre_reload_split ()))
10354 : return -1;
10355 : *pnum_clobbers = 1;
10356 : return 1294; /* *ashlsi3_add_1 */
10357 :
10358 : case 4:
10359 : if (!(
10360 : #line 18845 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10361 : (ix86_binary_operator_ok (ASHIFT, DImode, operands)
10362 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
10363 : && ix86_pre_reload_split ()) &&
10364 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10365 : (TARGET_64BIT)))
10366 : return -1;
10367 : *pnum_clobbers = 1;
10368 : return 1297; /* *ashldi3_add_1 */
10369 :
10370 : case 5:
10371 : if (!
10372 : #line 18900 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10373 : (ix86_binary_operator_ok (ASHIFT, SImode, operands)
10374 : && ((INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
10375 : || (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
10376 : == 4 * BITS_PER_UNIT - 1)
10377 : && ix86_pre_reload_split ()))
10378 : return -1;
10379 : *pnum_clobbers = 1;
10380 : return 1306; /* *ashlsi3_sub_1 */
10381 :
10382 : case 6:
10383 : if (!(
10384 : #line 18900 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10385 : (ix86_binary_operator_ok (ASHIFT, DImode, operands)
10386 : && ((INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
10387 : || (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
10388 : == 8 * BITS_PER_UNIT - 1)
10389 : && ix86_pre_reload_split ()) &&
10390 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10391 : (TARGET_64BIT)))
10392 : return -1;
10393 : *pnum_clobbers = 1;
10394 : return 1309; /* *ashldi3_sub_1 */
10395 :
10396 : default:
10397 : return -1;
10398 : }
10399 :
10400 : case SIGN_EXTEND:
10401 : if (pattern125 (x3, pnum_clobbers) != 0
10402 : || !(
10403 : #line 16328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10404 : (INTVAL (operands[2]) >= 4 * BITS_PER_UNIT
10405 : && INTVAL (operands[2]) < 4 * BITS_PER_UNIT * 2) &&
10406 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10407 : (!TARGET_64BIT)))
10408 : return -1;
10409 : *pnum_clobbers = 1;
10410 : return 1090; /* *ashldi3_doubleword_highpart */
10411 :
10412 : case ZERO_EXTEND:
10413 : if (pattern125 (x3, pnum_clobbers) != 0
10414 : || !(
10415 : #line 16328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10416 : (INTVAL (operands[2]) >= 4 * BITS_PER_UNIT
10417 : && INTVAL (operands[2]) < 4 * BITS_PER_UNIT * 2) &&
10418 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10419 : (!TARGET_64BIT)))
10420 : return -1;
10421 : *pnum_clobbers = 1;
10422 : return 1091; /* *ashldi3_doubleword_highpart */
10423 :
10424 : default:
10425 : return -1;
10426 : }
10427 : }
10428 :
10429 : int
10430 : recog_109 (rtx x1 ATTRIBUTE_UNUSED,
10431 : rtx_insn *insn ATTRIBUTE_UNUSED,
10432 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10433 : {
10434 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10435 : rtx x2, x3, x4, x5, x6;
10436 : int res ATTRIBUTE_UNUSED;
10437 : if (pnum_clobbers == NULL)
10438 : return -1;
10439 : x2 = XEXP (x1, 1);
10440 : x3 = XEXP (x2, 1);
10441 : if (GET_CODE (x3) != CONST_INT)
10442 : return -1;
10443 : x4 = XEXP (x2, 0);
10444 : operands[1] = x4;
10445 : if (XWINT (x3, 0) == 1L)
10446 : {
10447 : res = recog_108 (x1, insn, pnum_clobbers);
10448 : if (res >= 0)
10449 : return res;
10450 : }
10451 : x5 = XEXP (x1, 0);
10452 : operands[0] = x5;
10453 : operands[2] = x3;
10454 : if (!const_0_to_255_operand (operands[2], E_QImode))
10455 : return -1;
10456 : x6 = XEXP (x2, 2);
10457 : operands[3] = x6;
10458 : if (!const_0_to_255_operand (operands[3], E_QImode))
10459 : return -1;
10460 : switch (pattern132 (x2))
10461 : {
10462 : case 0:
10463 : if (!
10464 : #line 23178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10465 : (TARGET_TBM))
10466 : return -1;
10467 : *pnum_clobbers = 1;
10468 : return 1636; /* tbm_bextri_si */
10469 :
10470 : case 1:
10471 : if (!(
10472 : #line 23178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10473 : (TARGET_TBM) &&
10474 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10475 : (TARGET_64BIT)))
10476 : return -1;
10477 : *pnum_clobbers = 1;
10478 : return 1637; /* tbm_bextri_di */
10479 :
10480 : default:
10481 : return -1;
10482 : }
10483 : }
10484 :
10485 : int
10486 : recog_112 (rtx x1 ATTRIBUTE_UNUSED,
10487 : rtx_insn *insn ATTRIBUTE_UNUSED,
10488 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10489 : {
10490 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10491 : rtx x2, x3, x4, x5, x6;
10492 : int res ATTRIBUTE_UNUSED;
10493 : x2 = XEXP (x1, 1);
10494 : switch (XINT (x2, 1))
10495 : {
10496 : case 18:
10497 : if (GET_MODE (x2) != E_BLKmode)
10498 : return -1;
10499 : x3 = XEXP (x1, 0);
10500 : operands[0] = x3;
10501 : x4 = XVECEXP (x2, 0, 0);
10502 : if (!rtx_equal_p (x4, operands[0]))
10503 : return -1;
10504 : return 1517; /* *memory_blockage */
10505 :
10506 : case 15:
10507 : x3 = XEXP (x1, 0);
10508 : operands[0] = x3;
10509 : x4 = XVECEXP (x2, 0, 0);
10510 : switch (GET_CODE (x4))
10511 : {
10512 : case CONST_INT:
10513 : if (XWINT (x4, 0) != 0L)
10514 : return -1;
10515 : switch (GET_MODE (operands[0]))
10516 : {
10517 : case E_SImode:
10518 : if (pnum_clobbers == NULL
10519 : || !register_operand (operands[0], E_SImode)
10520 : || GET_MODE (x2) != E_SImode
10521 : || !
10522 : #line 21764 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10523 : (!TARGET_64BIT))
10524 : return -1;
10525 : *pnum_clobbers = 1;
10526 : return 1528; /* *set_got */
10527 :
10528 : case E_DImode:
10529 : if (!register_operand (operands[0], E_DImode)
10530 : || GET_MODE (x2) != E_DImode
10531 : || !
10532 : #line 21794 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10533 : (TARGET_64BIT))
10534 : return -1;
10535 : return 1530; /* set_got_rex64 */
10536 :
10537 : default:
10538 : return -1;
10539 : }
10540 :
10541 : case LABEL_REF:
10542 : if (pnum_clobbers == NULL
10543 : || !register_operand (operands[0], E_SImode)
10544 : || GET_MODE (x2) != E_SImode)
10545 : return -1;
10546 : x5 = XEXP (x4, 0);
10547 : operands[1] = x5;
10548 : if (!
10549 : #line 21786 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10550 : (!TARGET_64BIT))
10551 : return -1;
10552 : *pnum_clobbers = 1;
10553 : return 1529; /* *set_got_labelled */
10554 :
10555 : default:
10556 : return -1;
10557 : }
10558 :
10559 : case 16:
10560 : if (GET_MODE (x2) != E_DImode)
10561 : return -1;
10562 : x4 = XVECEXP (x2, 0, 0);
10563 : if (GET_CODE (x4) != LABEL_REF)
10564 : return -1;
10565 : x3 = XEXP (x1, 0);
10566 : operands[0] = x3;
10567 : if (!register_operand (operands[0], E_DImode))
10568 : return -1;
10569 : x5 = XEXP (x4, 0);
10570 : operands[1] = x5;
10571 : if (!
10572 : #line 21803 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10573 : (TARGET_64BIT))
10574 : return -1;
10575 : return 1531; /* set_rip_rex64 */
10576 :
10577 : case 17:
10578 : if (GET_MODE (x2) != E_DImode)
10579 : return -1;
10580 : x4 = XVECEXP (x2, 0, 0);
10581 : if (GET_CODE (x4) != LABEL_REF)
10582 : return -1;
10583 : x3 = XEXP (x1, 0);
10584 : operands[0] = x3;
10585 : if (!register_operand (operands[0], E_DImode))
10586 : return -1;
10587 : x5 = XEXP (x4, 0);
10588 : operands[1] = x5;
10589 : if (!
10590 : #line 21814 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10591 : (TARGET_LP64))
10592 : return -1;
10593 : return 1532; /* set_got_offset_rex64 */
10594 :
10595 : case 98:
10596 : x3 = XEXP (x1, 0);
10597 : operands[0] = x3;
10598 : switch (pattern305 (x2))
10599 : {
10600 : case 0:
10601 : if ((
10602 : #line 22671 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10603 : (TARGET_APX_NF) &&
10604 : #line 22653 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10605 : (TARGET_BMI)))
10606 : return 1578; /* tzcnt_si_nf */
10607 : if (pnum_clobbers == NULL
10608 : || !
10609 : #line 22653 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10610 : (TARGET_BMI))
10611 : return -1;
10612 : *pnum_clobbers = 1;
10613 : return 1582; /* tzcnt_si */
10614 :
10615 : case 1:
10616 : if ((
10617 : #line 22671 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10618 : (TARGET_APX_NF) && (((
10619 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10620 : (TARGET_64BIT) &&
10621 : #line 22653 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10622 : (TARGET_BMI)) &&
10623 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10624 : (TARGET_64BIT)) &&
10625 : #line 22653 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10626 : (TARGET_BMI))))
10627 : return 1580; /* tzcnt_di_nf */
10628 : if (pnum_clobbers == NULL
10629 : || !(((
10630 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10631 : (TARGET_64BIT) &&
10632 : #line 22653 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10633 : (TARGET_BMI)) &&
10634 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10635 : (TARGET_64BIT)) &&
10636 : #line 22653 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10637 : (TARGET_BMI)))
10638 : return -1;
10639 : *pnum_clobbers = 1;
10640 : return 1584; /* tzcnt_di */
10641 :
10642 : default:
10643 : return -1;
10644 : }
10645 :
10646 : case 97:
10647 : x3 = XEXP (x1, 0);
10648 : operands[0] = x3;
10649 : switch (pattern305 (x2))
10650 : {
10651 : case 0:
10652 : if ((
10653 : #line 22671 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10654 : (TARGET_APX_NF) &&
10655 : #line 22654 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10656 : (TARGET_LZCNT)))
10657 : return 1579; /* lzcnt_si_nf */
10658 : if (pnum_clobbers == NULL
10659 : || !
10660 : #line 22654 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10661 : (TARGET_LZCNT))
10662 : return -1;
10663 : *pnum_clobbers = 1;
10664 : return 1583; /* lzcnt_si */
10665 :
10666 : case 1:
10667 : if ((
10668 : #line 22671 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10669 : (TARGET_APX_NF) && (((
10670 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10671 : (TARGET_64BIT) &&
10672 : #line 22654 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10673 : (TARGET_LZCNT)) &&
10674 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10675 : (TARGET_64BIT)) &&
10676 : #line 22654 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10677 : (TARGET_LZCNT))))
10678 : return 1581; /* lzcnt_di_nf */
10679 : if (pnum_clobbers == NULL
10680 : || !(((
10681 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10682 : (TARGET_64BIT) &&
10683 : #line 22654 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10684 : (TARGET_LZCNT)) &&
10685 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10686 : (TARGET_64BIT)) &&
10687 : #line 22654 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10688 : (TARGET_LZCNT)))
10689 : return -1;
10690 : *pnum_clobbers = 1;
10691 : return 1585; /* lzcnt_di */
10692 :
10693 : default:
10694 : return -1;
10695 : }
10696 :
10697 : case 20:
10698 : x4 = XVECEXP (x2, 0, 0);
10699 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
10700 : return -1;
10701 : x3 = XEXP (x1, 0);
10702 : operands[0] = x3;
10703 : switch (pattern24 (x2))
10704 : {
10705 : case 0:
10706 : if (!
10707 : #line 1439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10708 : (ptr_mode == SImode))
10709 : return -1;
10710 : return 1690; /* *load_tp_si */
10711 :
10712 : case 1:
10713 : if (!
10714 : #line 1439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10715 : (ptr_mode == DImode))
10716 : return -1;
10717 : return 1691; /* *load_tp_di */
10718 :
10719 : default:
10720 : return -1;
10721 : }
10722 :
10723 : case 23:
10724 : x3 = XEXP (x1, 0);
10725 : operands[0] = x3;
10726 : x4 = XVECEXP (x2, 0, 0);
10727 : operands[1] = x4;
10728 : if (!tls_symbolic_operand (operands[1], E_VOIDmode))
10729 : return -1;
10730 : switch (pattern24 (x2))
10731 : {
10732 : case 0:
10733 : if (!(
10734 : #line 24383 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10735 : (TARGET_64BIT && TARGET_GNU2_TLS) &&
10736 : #line 1439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10737 : (ptr_mode == SImode)))
10738 : return -1;
10739 : return 1699; /* *tls_dynamic_gnu2_lea_64_si */
10740 :
10741 : case 1:
10742 : if (!(
10743 : #line 24383 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10744 : (TARGET_64BIT && TARGET_GNU2_TLS) &&
10745 : #line 1439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10746 : (ptr_mode == DImode)))
10747 : return -1;
10748 : return 1700; /* *tls_dynamic_gnu2_lea_64_di */
10749 :
10750 : default:
10751 : return -1;
10752 : }
10753 :
10754 : case 71:
10755 : x3 = XEXP (x1, 0);
10756 : operands[0] = x3;
10757 : x4 = XVECEXP (x2, 0, 0);
10758 : operands[1] = x4;
10759 : if (!register_operand (operands[1], E_XFmode))
10760 : return -1;
10761 : switch (GET_MODE (operands[0]))
10762 : {
10763 : case E_DImode:
10764 : if (pnum_clobbers == NULL
10765 : || !nonimmediate_operand (operands[0], E_DImode)
10766 : || GET_MODE (x2) != E_DImode
10767 : || !
10768 : #line 26178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10769 : (TARGET_USE_FANCY_MATH_387))
10770 : return -1;
10771 : *pnum_clobbers = 1;
10772 : return 1765; /* lrintxfdi2 */
10773 :
10774 : case E_SImode:
10775 : if (!nonimmediate_operand (operands[0], E_SImode)
10776 : || GET_MODE (x2) != E_SImode
10777 : || !
10778 : #line 26187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10779 : (TARGET_USE_FANCY_MATH_387))
10780 : return -1;
10781 : return 1767; /* lrintxfsi2 */
10782 :
10783 : default:
10784 : return -1;
10785 : }
10786 :
10787 : case 79:
10788 : switch (pattern126 (x1, pnum_clobbers))
10789 : {
10790 : case 0:
10791 : if (!
10792 : #line 26394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10793 : (TARGET_USE_FANCY_MATH_387
10794 : && flag_unsafe_math_optimizations
10795 : && ix86_pre_reload_split ()))
10796 : return -1;
10797 : *pnum_clobbers = 1;
10798 : return 1778; /* *fistsi2_floor_1 */
10799 :
10800 : case 1:
10801 : if (!
10802 : #line 26394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10803 : (TARGET_USE_FANCY_MATH_387
10804 : && flag_unsafe_math_optimizations
10805 : && ix86_pre_reload_split ()))
10806 : return -1;
10807 : *pnum_clobbers = 1;
10808 : return 1780; /* *fistdi2_floor_1 */
10809 :
10810 : default:
10811 : return -1;
10812 : }
10813 :
10814 : case 80:
10815 : switch (pattern126 (x1, pnum_clobbers))
10816 : {
10817 : case 0:
10818 : if (!
10819 : #line 26394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10820 : (TARGET_USE_FANCY_MATH_387
10821 : && flag_unsafe_math_optimizations
10822 : && ix86_pre_reload_split ()))
10823 : return -1;
10824 : *pnum_clobbers = 1;
10825 : return 1779; /* *fistsi2_ceil_1 */
10826 :
10827 : case 1:
10828 : if (!
10829 : #line 26394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10830 : (TARGET_USE_FANCY_MATH_387
10831 : && flag_unsafe_math_optimizations
10832 : && ix86_pre_reload_split ()))
10833 : return -1;
10834 : *pnum_clobbers = 1;
10835 : return 1781; /* *fistdi2_ceil_1 */
10836 :
10837 : default:
10838 : return -1;
10839 : }
10840 :
10841 : case 50:
10842 : return recog_111 (x1, insn, pnum_clobbers);
10843 :
10844 : case 34:
10845 : if (GET_MODE (x2) != E_BLKmode)
10846 : return -1;
10847 : x3 = XEXP (x1, 0);
10848 : operands[0] = x3;
10849 : x4 = XVECEXP (x2, 0, 0);
10850 : if (!rtx_equal_p (x4, operands[0]))
10851 : return -1;
10852 : return 2006; /* *pause */
10853 :
10854 : case 103:
10855 : switch (pattern127 (x1))
10856 : {
10857 : case 0:
10858 : if (!
10859 : #line 31208 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10860 : (TARGET_MOVDIRI))
10861 : return -1;
10862 : return 2037; /* movdirisi */
10863 :
10864 : case 1:
10865 : if (!(
10866 : #line 31208 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10867 : (TARGET_MOVDIRI) &&
10868 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10869 : (TARGET_64BIT)))
10870 : return -1;
10871 : return 2038; /* movdiridi */
10872 :
10873 : default:
10874 : return -1;
10875 : }
10876 :
10877 : case 104:
10878 : if (GET_MODE (x2) != E_XImode)
10879 : return -1;
10880 : x3 = XEXP (x1, 0);
10881 : if (GET_CODE (x3) != MEM
10882 : || GET_MODE (x3) != E_XImode)
10883 : return -1;
10884 : x6 = XEXP (x3, 0);
10885 : operands[0] = x6;
10886 : x4 = XVECEXP (x2, 0, 0);
10887 : operands[1] = x4;
10888 : if (!memory_operand (operands[1], E_XImode))
10889 : return -1;
10890 : switch (GET_MODE (operands[0]))
10891 : {
10892 : case E_SImode:
10893 : if (!register_operand (operands[0], E_SImode)
10894 : || !(
10895 : #line 31216 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10896 : (TARGET_MOVDIR64B) &&
10897 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10898 : (Pmode == SImode)))
10899 : return -1;
10900 : return 2039; /* movdir64b_si */
10901 :
10902 : case E_DImode:
10903 : if (!register_operand (operands[0], E_DImode)
10904 : || !(
10905 : #line 31216 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10906 : (TARGET_MOVDIR64B) &&
10907 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10908 : (Pmode == DImode)))
10909 : return -1;
10910 : return 2040; /* movdir64b_di */
10911 :
10912 : default:
10913 : return -1;
10914 : }
10915 :
10916 : case 112:
10917 : if (GET_MODE (x2) != E_DImode)
10918 : return -1;
10919 : x3 = XEXP (x1, 0);
10920 : operands[0] = x3;
10921 : if (!memory_operand (operands[0], E_DImode))
10922 : return -1;
10923 : x4 = XVECEXP (x2, 0, 0);
10924 : operands[1] = x4;
10925 : if (!register_operand (operands[1], E_DImode)
10926 : || !
10927 : #line 659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
10928 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
10929 : && (TARGET_SSE || TARGET_3DNOW_A)))
10930 : return -1;
10931 : return 2102; /* sse_movntq */
10932 :
10933 : case 118:
10934 : switch (pattern127 (x1))
10935 : {
10936 : case 0:
10937 : if (!
10938 : #line 2038 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10939 : (TARGET_SSE2))
10940 : return -1;
10941 : return 2621; /* sse2_movntisi */
10942 :
10943 : case 1:
10944 : if (!(
10945 : #line 2038 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10946 : (TARGET_SSE2) &&
10947 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10948 : (TARGET_64BIT)))
10949 : return -1;
10950 : return 2622; /* sse2_movntidi */
10951 :
10952 : default:
10953 : return -1;
10954 : }
10955 :
10956 : case 157:
10957 : x3 = XEXP (x1, 0);
10958 : operands[0] = x3;
10959 : x4 = XVECEXP (x2, 0, 0);
10960 : switch (GET_CODE (x4))
10961 : {
10962 : case VEC_SELECT:
10963 : switch (pattern459 (x4))
10964 : {
10965 : case 0:
10966 : switch (pattern1110 (x2,
10967 : E_SImode))
10968 : {
10969 : case 0:
10970 : if (!
10971 : #line 8215 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10972 : (TARGET_AVX512FP16))
10973 : return -1;
10974 : return 4590; /* avx512fp16_vcvtsh2usi */
10975 :
10976 : case 1:
10977 : if (!
10978 : #line 9415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10979 : (TARGET_AVX512F))
10980 : return -1;
10981 : return 4950; /* avx512f_vcvtss2usi */
10982 :
10983 : case 2:
10984 : if (!
10985 : #line 9451 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10986 : (TARGET_AVX512F))
10987 : return -1;
10988 : return 4962; /* avx512f_vcvtsd2usi */
10989 :
10990 : default:
10991 : return -1;
10992 : }
10993 :
10994 : case 1:
10995 : switch (pattern1110 (x2,
10996 : E_DImode))
10997 : {
10998 : case 0:
10999 : if (!(
11000 : #line 8215 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11001 : (TARGET_AVX512FP16) &&
11002 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
11003 : (TARGET_64BIT)))
11004 : return -1;
11005 : return 4594; /* avx512fp16_vcvtsh2usiq */
11006 :
11007 : case 1:
11008 : if (!(
11009 : #line 9415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11010 : (TARGET_AVX512F) &&
11011 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
11012 : (TARGET_64BIT)))
11013 : return -1;
11014 : return 4952; /* avx512f_vcvtss2usiq */
11015 :
11016 : case 2:
11017 : if (!(
11018 : #line 9451 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11019 : (TARGET_AVX512F) &&
11020 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
11021 : (TARGET_64BIT)))
11022 : return -1;
11023 : return 4964; /* avx512f_vcvtsd2usiq */
11024 :
11025 : default:
11026 : return -1;
11027 : }
11028 :
11029 : default:
11030 : return -1;
11031 : }
11032 :
11033 : case REG:
11034 : case SUBREG:
11035 : case MEM:
11036 : operands[1] = x4;
11037 : if (!nonimmediate_operand (operands[1], E_HFmode))
11038 : return -1;
11039 : switch (pattern24 (x2))
11040 : {
11041 : case 0:
11042 : if (!
11043 : #line 8226 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11044 : (TARGET_AVX512FP16))
11045 : return -1;
11046 : return 4598; /* avx512fp16_vcvtsh2usi_2 */
11047 :
11048 : case 1:
11049 : if (!(
11050 : #line 8226 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11051 : (TARGET_AVX512FP16) &&
11052 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
11053 : (TARGET_64BIT)))
11054 : return -1;
11055 : return 4600; /* avx512fp16_vcvtsh2usiq_2 */
11056 :
11057 : default:
11058 : return -1;
11059 : }
11060 :
11061 : default:
11062 : return -1;
11063 : }
11064 :
11065 : case 47:
11066 : x3 = XEXP (x1, 0);
11067 : operands[0] = x3;
11068 : x4 = XVECEXP (x2, 0, 0);
11069 : switch (GET_CODE (x4))
11070 : {
11071 : case VEC_SELECT:
11072 : switch (pattern459 (x4))
11073 : {
11074 : case 0:
11075 : switch (pattern1111 (x2,
11076 : E_SImode))
11077 : {
11078 : case 0:
11079 : if (!
11080 : #line 8215 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11081 : (TARGET_AVX512FP16))
11082 : return -1;
11083 : return 4592; /* avx512fp16_vcvtsh2si */
11084 :
11085 : case 1:
11086 : if (!
11087 : #line 8943 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11088 : (TARGET_SSE))
11089 : return -1;
11090 : return 4839; /* sse_cvtss2si */
11091 :
11092 : case 2:
11093 : if (!
11094 : #line 9487 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11095 : (TARGET_SSE2))
11096 : return -1;
11097 : return 4974; /* sse2_cvtsd2si */
11098 :
11099 : default:
11100 : return -1;
11101 : }
11102 :
11103 : case 1:
11104 : switch (pattern1111 (x2,
11105 : E_DImode))
11106 : {
11107 : case 0:
11108 : if (!(
11109 : #line 8215 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11110 : (TARGET_AVX512FP16) &&
11111 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
11112 : (TARGET_64BIT)))
11113 : return -1;
11114 : return 4596; /* avx512fp16_vcvtsh2siq */
11115 :
11116 : case 1:
11117 : if (!(
11118 : #line 8943 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11119 : (TARGET_SSE) &&
11120 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
11121 : (TARGET_64BIT)))
11122 : return -1;
11123 : return 4841; /* sse_cvtss2siq */
11124 :
11125 : case 2:
11126 : if (!(
11127 : #line 9487 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11128 : (TARGET_SSE2) &&
11129 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
11130 : (TARGET_64BIT)))
11131 : return -1;
11132 : return 4976; /* sse2_cvtsd2siq */
11133 :
11134 : default:
11135 : return -1;
11136 : }
11137 :
11138 : default:
11139 : return -1;
11140 : }
11141 :
11142 : case REG:
11143 : case SUBREG:
11144 : case MEM:
11145 : operands[1] = x4;
11146 : switch (GET_MODE (operands[0]))
11147 : {
11148 : case E_SImode:
11149 : switch (pattern774 (x2,
11150 : E_SImode))
11151 : {
11152 : case 0:
11153 : if (!
11154 : #line 8226 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11155 : (TARGET_AVX512FP16))
11156 : return -1;
11157 : return 4599; /* avx512fp16_vcvtsh2si_2 */
11158 :
11159 : case 1:
11160 : if (!
11161 : #line 8956 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11162 : (TARGET_SSE))
11163 : return -1;
11164 : return 4843; /* sse_cvtss2si_2 */
11165 :
11166 : case 2:
11167 : if (!
11168 : #line 9501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11169 : (TARGET_SSE2))
11170 : return -1;
11171 : return 4978; /* sse2_cvtsd2si_2 */
11172 :
11173 : default:
11174 : return -1;
11175 : }
11176 :
11177 : case E_DImode:
11178 : switch (pattern774 (x2,
11179 : E_DImode))
11180 : {
11181 : case 0:
11182 : if (!(
11183 : #line 8226 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11184 : (TARGET_AVX512FP16) &&
11185 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
11186 : (TARGET_64BIT)))
11187 : return -1;
11188 : return 4601; /* avx512fp16_vcvtsh2siq_2 */
11189 :
11190 : case 1:
11191 : if (!(
11192 : #line 8956 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11193 : (TARGET_SSE) &&
11194 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
11195 : (TARGET_64BIT)))
11196 : return -1;
11197 : return 4844; /* sse_cvtss2siq_2 */
11198 :
11199 : case 2:
11200 : if (!(
11201 : #line 9501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11202 : (TARGET_SSE2) &&
11203 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
11204 : (TARGET_64BIT)))
11205 : return -1;
11206 : return 4979; /* sse2_cvtsd2siq_2 */
11207 :
11208 : default:
11209 : return -1;
11210 : }
11211 :
11212 : default:
11213 : return -1;
11214 : }
11215 :
11216 : default:
11217 : return -1;
11218 : }
11219 :
11220 : case 173:
11221 : switch (pattern129 (x1))
11222 : {
11223 : case 0:
11224 : if (!
11225 : #line 8380 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11226 : (TARGET_AVX512FP16))
11227 : return -1;
11228 : return 4742; /* unspec_avx512fp16_fix_truncsi2 */
11229 :
11230 : case 1:
11231 : if (!
11232 : #line 8971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11233 : (TARGET_SSE))
11234 : return -1;
11235 : return 4845; /* unspec_sse_cvttss2si */
11236 :
11237 : case 2:
11238 : if (!
11239 : #line 9516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11240 : (TARGET_SSE2))
11241 : return -1;
11242 : return 4980; /* unspec_sse2_cvttsd2si */
11243 :
11244 : case 3:
11245 : if (!(
11246 : #line 8380 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11247 : (TARGET_AVX512FP16) &&
11248 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
11249 : (TARGET_64BIT)))
11250 : return -1;
11251 : return 4746; /* unspec_avx512fp16_fix_truncdi2 */
11252 :
11253 : case 4:
11254 : if (!(
11255 : #line 8971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11256 : (TARGET_SSE) &&
11257 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
11258 : (TARGET_64BIT)))
11259 : return -1;
11260 : return 4847; /* unspec_sse_cvttss2siq */
11261 :
11262 : case 5:
11263 : if (!(
11264 : #line 9516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11265 : (TARGET_SSE2) &&
11266 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
11267 : (TARGET_64BIT)))
11268 : return -1;
11269 : return 4982; /* unspec_sse2_cvttsd2siq */
11270 :
11271 : default:
11272 : return -1;
11273 : }
11274 :
11275 : case 174:
11276 : switch (pattern129 (x1))
11277 : {
11278 : case 0:
11279 : if (!
11280 : #line 8380 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11281 : (TARGET_AVX512FP16))
11282 : return -1;
11283 : return 4744; /* unspec_avx512fp16_fixuns_truncsi2 */
11284 :
11285 : case 1:
11286 : if (!
11287 : #line 9426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11288 : (TARGET_AVX512F))
11289 : return -1;
11290 : return 4954; /* unspec_avx512f_vcvttss2usi */
11291 :
11292 : case 2:
11293 : if (!
11294 : #line 9462 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11295 : (TARGET_AVX512F))
11296 : return -1;
11297 : return 4966; /* unspec_avx512f_vcvttsd2usi */
11298 :
11299 : case 3:
11300 : if (!(
11301 : #line 8380 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11302 : (TARGET_AVX512FP16) &&
11303 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
11304 : (TARGET_64BIT)))
11305 : return -1;
11306 : return 4748; /* unspec_avx512fp16_fixuns_truncdi2 */
11307 :
11308 : case 4:
11309 : if (!(
11310 : #line 9426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11311 : (TARGET_AVX512F) &&
11312 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
11313 : (TARGET_64BIT)))
11314 : return -1;
11315 : return 4956; /* unspec_avx512f_vcvttss2usiq */
11316 :
11317 : case 5:
11318 : if (!(
11319 : #line 9462 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11320 : (TARGET_AVX512F) &&
11321 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
11322 : (TARGET_64BIT)))
11323 : return -1;
11324 : return 4968; /* unspec_avx512f_vcvttsd2usiq */
11325 :
11326 : default:
11327 : return -1;
11328 : }
11329 :
11330 : case 192:
11331 : x3 = XEXP (x1, 0);
11332 : operands[0] = x3;
11333 : x4 = XVECEXP (x2, 0, 0);
11334 : operands[1] = x4;
11335 : switch (GET_MODE (operands[0]))
11336 : {
11337 : case E_DImode:
11338 : if (!register_operand (operands[0], E_DImode)
11339 : || GET_MODE (x2) != E_DImode
11340 : || !register_operand (operands[1], E_V64QImode)
11341 : || !
11342 : #line 10648 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11343 : (TARGET_AVX512BW))
11344 : return -1;
11345 : return 5215; /* avx512bw_cvtb2maskv64qi */
11346 :
11347 : case E_SImode:
11348 : if (!register_operand (operands[0], E_SImode)
11349 : || GET_MODE (x2) != E_SImode)
11350 : return -1;
11351 : switch (GET_MODE (operands[1]))
11352 : {
11353 : case E_V32QImode:
11354 : if (!register_operand (operands[1], E_V32QImode)
11355 : || !(
11356 : #line 10648 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11357 : (TARGET_AVX512BW) &&
11358 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11359 : (TARGET_AVX512VL)))
11360 : return -1;
11361 : return 5217; /* avx512vl_cvtb2maskv32qi */
11362 :
11363 : case E_V32HImode:
11364 : if (!register_operand (operands[1], E_V32HImode)
11365 : || !
11366 : #line 10648 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11367 : (TARGET_AVX512BW))
11368 : return -1;
11369 : return 5218; /* avx512bw_cvtw2maskv32hi */
11370 :
11371 : default:
11372 : return -1;
11373 : }
11374 :
11375 : default:
11376 : return -1;
11377 : }
11378 :
11379 : case 276:
11380 : switch (pattern131 (x1))
11381 : {
11382 : case 0:
11383 : if (!
11384 : #line 33688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11385 : (TARGET_AVX10_2))
11386 : return -1;
11387 : return 10986; /* avx10_2_vcvttsd2sissi */
11388 :
11389 : case 1:
11390 : if (!
11391 : #line 33701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11392 : (TARGET_AVX10_2))
11393 : return -1;
11394 : return 10994; /* avx10_2_vcvttss2sissi */
11395 :
11396 : case 2:
11397 : if (!(
11398 : #line 33688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11399 : (TARGET_AVX10_2) &&
11400 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
11401 : (TARGET_64BIT)))
11402 : return -1;
11403 : return 10990; /* avx10_2_vcvttsd2sisdi */
11404 :
11405 : case 3:
11406 : if (!(
11407 : #line 33701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11408 : (TARGET_AVX10_2) &&
11409 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
11410 : (TARGET_64BIT)))
11411 : return -1;
11412 : return 10998; /* avx10_2_vcvttss2sisdi */
11413 :
11414 : default:
11415 : return -1;
11416 : }
11417 :
11418 : case 277:
11419 : switch (pattern131 (x1))
11420 : {
11421 : case 0:
11422 : if (!
11423 : #line 33688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11424 : (TARGET_AVX10_2))
11425 : return -1;
11426 : return 10988; /* avx10_2_vcvttsd2usissi */
11427 :
11428 : case 1:
11429 : if (!
11430 : #line 33701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11431 : (TARGET_AVX10_2))
11432 : return -1;
11433 : return 10996; /* avx10_2_vcvttss2usissi */
11434 :
11435 : case 2:
11436 : if (!(
11437 : #line 33688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11438 : (TARGET_AVX10_2) &&
11439 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
11440 : (TARGET_64BIT)))
11441 : return -1;
11442 : return 10992; /* avx10_2_vcvttsd2usisdi */
11443 :
11444 : case 3:
11445 : if (!(
11446 : #line 33701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11447 : (TARGET_AVX10_2) &&
11448 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
11449 : (TARGET_64BIT)))
11450 : return -1;
11451 : return 11000; /* avx10_2_vcvttss2usisdi */
11452 :
11453 : default:
11454 : return -1;
11455 : }
11456 :
11457 : case 284:
11458 : if (GET_MODE (x2) != E_BLKmode)
11459 : return -1;
11460 : x3 = XEXP (x1, 0);
11461 : operands[0] = x3;
11462 : x4 = XVECEXP (x2, 0, 0);
11463 : if (!rtx_equal_p (x4, operands[0])
11464 : || !
11465 : #line 60 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
11466 : (TARGET_SSE2))
11467 : return -1;
11468 : return 11090; /* *sse2_lfence */
11469 :
11470 : case 285:
11471 : if (GET_MODE (x2) != E_BLKmode)
11472 : return -1;
11473 : x3 = XEXP (x1, 0);
11474 : operands[0] = x3;
11475 : x4 = XVECEXP (x2, 0, 0);
11476 : if (!rtx_equal_p (x4, operands[0])
11477 : || !
11478 : #line 79 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
11479 : (TARGET_SSE || TARGET_3DNOW_A))
11480 : return -1;
11481 : return 11091; /* *sse_sfence */
11482 :
11483 : case 286:
11484 : if (GET_MODE (x2) != E_BLKmode)
11485 : return -1;
11486 : x3 = XEXP (x1, 0);
11487 : operands[0] = x3;
11488 : x4 = XVECEXP (x2, 0, 0);
11489 : if (!rtx_equal_p (x4, operands[0]))
11490 : return -1;
11491 : if (
11492 : #line 98 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
11493 : (TARGET_64BIT || TARGET_SSE2))
11494 : return 11092; /* mfence_sse2 */
11495 : if (pnum_clobbers == NULL)
11496 : return -1;
11497 : *pnum_clobbers = 1;
11498 : return 11093; /* mfence_nosse */
11499 :
11500 : case 288:
11501 : if (GET_MODE (x2) != E_DImode)
11502 : return -1;
11503 : x3 = XEXP (x1, 0);
11504 : operands[0] = x3;
11505 : if (!memory_operand (operands[0], E_DImode))
11506 : return -1;
11507 : x4 = XVECEXP (x2, 0, 0);
11508 : operands[1] = x4;
11509 : if (!register_operand (operands[1], E_DFmode)
11510 : || !
11511 : #line 356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
11512 : (TARGET_80387))
11513 : return -1;
11514 : return 11101; /* storedi_via_fpu */
11515 :
11516 : case 290:
11517 : if (GET_MODE (x2) != E_DImode)
11518 : return -1;
11519 : x3 = XEXP (x1, 0);
11520 : operands[0] = x3;
11521 : if (!memory_operand (operands[0], E_DImode))
11522 : return -1;
11523 : x4 = XVECEXP (x2, 0, 0);
11524 : operands[1] = x4;
11525 : if (!register_operand (operands[1], E_DFmode)
11526 : || !
11527 : #line 382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
11528 : (TARGET_SSE))
11529 : return -1;
11530 : return 11103; /* storedi_via_sse */
11531 :
11532 : default:
11533 : return -1;
11534 : }
11535 : }
11536 :
11537 : int
11538 : recog_149 (rtx x1 ATTRIBUTE_UNUSED,
11539 : rtx_insn *insn ATTRIBUTE_UNUSED,
11540 : int *pnum_clobbers ATTRIBUTE_UNUSED)
11541 : {
11542 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
11543 : rtx x2, x3, x4, x5, x6, x7;
11544 : int res ATTRIBUTE_UNUSED;
11545 : x2 = XEXP (x1, 1);
11546 : x3 = XEXP (x2, 0);
11547 : switch (XINT (x3, 1))
11548 : {
11549 : case 64:
11550 : switch (pattern463 (x2))
11551 : {
11552 : case 0:
11553 : if (!(
11554 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11555 : (TARGET_AVX512F) && (
11556 : #line 3493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11557 : (TARGET_SSE
11558 : && (64 == 64 || TARGET_AVX512VL)
11559 : && 1) &&
11560 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11561 : (TARGET_AVX512FP16))))
11562 : return -1;
11563 : return 3122; /* ieee_maxv32hf3_mask */
11564 :
11565 : case 1:
11566 : if (!(
11567 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11568 : (TARGET_AVX512F) && (
11569 : #line 3493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11570 : (TARGET_SSE
11571 : && (32 == 64 || TARGET_AVX512VL)
11572 : && 1) &&
11573 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11574 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
11575 : return -1;
11576 : return 3129; /* ieee_maxv16hf3_mask */
11577 :
11578 : case 2:
11579 : if (!(
11580 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11581 : (TARGET_AVX512F) && (
11582 : #line 3493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11583 : (TARGET_SSE
11584 : && (16 == 64 || TARGET_AVX512VL)
11585 : && 1) &&
11586 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11587 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
11588 : return -1;
11589 : return 3133; /* ieee_maxv8hf3_mask */
11590 :
11591 : case 3:
11592 : if (!(
11593 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11594 : (TARGET_AVX512F) && (
11595 : #line 3493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11596 : (TARGET_SSE
11597 : && (64 == 64 || TARGET_AVX512VL)
11598 : && 1) &&
11599 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11600 : (TARGET_AVX512F))))
11601 : return -1;
11602 : return 3138; /* ieee_maxv16sf3_mask */
11603 :
11604 : case 4:
11605 : if (!(
11606 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11607 : (TARGET_AVX512F) && (
11608 : #line 3493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11609 : (TARGET_SSE
11610 : && (32 == 64 || TARGET_AVX512VL)
11611 : && 1) &&
11612 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11613 : (TARGET_AVX))))
11614 : return -1;
11615 : return 3145; /* ieee_maxv8sf3_mask */
11616 :
11617 : case 5:
11618 : if (!(
11619 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11620 : (TARGET_AVX512F) &&
11621 : #line 3493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11622 : (TARGET_SSE
11623 : && (16 == 64 || TARGET_AVX512VL)
11624 : && 1)))
11625 : return -1;
11626 : return 3149; /* ieee_maxv4sf3_mask */
11627 :
11628 : case 6:
11629 : if (!(
11630 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11631 : (TARGET_AVX512F) && (
11632 : #line 3493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11633 : (TARGET_SSE
11634 : && (64 == 64 || TARGET_AVX512VL)
11635 : && 1) &&
11636 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11637 : (TARGET_AVX512F))))
11638 : return -1;
11639 : return 3154; /* ieee_maxv8df3_mask */
11640 :
11641 : case 7:
11642 : if (!(
11643 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11644 : (TARGET_AVX512F) && (
11645 : #line 3493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11646 : (TARGET_SSE
11647 : && (32 == 64 || TARGET_AVX512VL)
11648 : && 1) &&
11649 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11650 : (TARGET_AVX))))
11651 : return -1;
11652 : return 3161; /* ieee_maxv4df3_mask */
11653 :
11654 : case 8:
11655 : if (!(
11656 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11657 : (TARGET_AVX512F) && (
11658 : #line 3493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11659 : (TARGET_SSE
11660 : && (16 == 64 || TARGET_AVX512VL)
11661 : && 1) &&
11662 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11663 : (TARGET_SSE2))))
11664 : return -1;
11665 : return 3165; /* ieee_maxv2df3_mask */
11666 :
11667 : case 9:
11668 : if (!(
11669 : #line 3588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11670 : (TARGET_SSE) &&
11671 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11672 : (TARGET_AVX512FP16)))
11673 : return -1;
11674 : return 3198; /* avx512fp16_ieee_vmmaxv8hf3 */
11675 :
11676 : case 10:
11677 : if (!
11678 : #line 3588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11679 : (TARGET_SSE))
11680 : return -1;
11681 : return 3206; /* sse_ieee_vmmaxv4sf3 */
11682 :
11683 : case 11:
11684 : if (!(
11685 : #line 3588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11686 : (TARGET_SSE) &&
11687 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11688 : (TARGET_SSE2)))
11689 : return -1;
11690 : return 3214; /* sse2_ieee_vmmaxv2df3 */
11691 :
11692 : default:
11693 : return -1;
11694 : }
11695 :
11696 : case 63:
11697 : switch (pattern463 (x2))
11698 : {
11699 : case 0:
11700 : if (!(
11701 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11702 : (TARGET_AVX512F) && (
11703 : #line 3493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11704 : (TARGET_SSE
11705 : && (64 == 64 || TARGET_AVX512VL)
11706 : && 1) &&
11707 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11708 : (TARGET_AVX512FP16))))
11709 : return -1;
11710 : return 3126; /* ieee_minv32hf3_mask */
11711 :
11712 : case 1:
11713 : if (!(
11714 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11715 : (TARGET_AVX512F) && (
11716 : #line 3493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11717 : (TARGET_SSE
11718 : && (32 == 64 || TARGET_AVX512VL)
11719 : && 1) &&
11720 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11721 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
11722 : return -1;
11723 : return 3131; /* ieee_minv16hf3_mask */
11724 :
11725 : case 2:
11726 : if (!(
11727 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11728 : (TARGET_AVX512F) && (
11729 : #line 3493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11730 : (TARGET_SSE
11731 : && (16 == 64 || TARGET_AVX512VL)
11732 : && 1) &&
11733 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11734 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
11735 : return -1;
11736 : return 3135; /* ieee_minv8hf3_mask */
11737 :
11738 : case 3:
11739 : if (!(
11740 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11741 : (TARGET_AVX512F) && (
11742 : #line 3493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11743 : (TARGET_SSE
11744 : && (64 == 64 || TARGET_AVX512VL)
11745 : && 1) &&
11746 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11747 : (TARGET_AVX512F))))
11748 : return -1;
11749 : return 3142; /* ieee_minv16sf3_mask */
11750 :
11751 : case 4:
11752 : if (!(
11753 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11754 : (TARGET_AVX512F) && (
11755 : #line 3493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11756 : (TARGET_SSE
11757 : && (32 == 64 || TARGET_AVX512VL)
11758 : && 1) &&
11759 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11760 : (TARGET_AVX))))
11761 : return -1;
11762 : return 3147; /* ieee_minv8sf3_mask */
11763 :
11764 : case 5:
11765 : if (!(
11766 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11767 : (TARGET_AVX512F) &&
11768 : #line 3493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11769 : (TARGET_SSE
11770 : && (16 == 64 || TARGET_AVX512VL)
11771 : && 1)))
11772 : return -1;
11773 : return 3151; /* ieee_minv4sf3_mask */
11774 :
11775 : case 6:
11776 : if (!(
11777 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11778 : (TARGET_AVX512F) && (
11779 : #line 3493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11780 : (TARGET_SSE
11781 : && (64 == 64 || TARGET_AVX512VL)
11782 : && 1) &&
11783 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11784 : (TARGET_AVX512F))))
11785 : return -1;
11786 : return 3158; /* ieee_minv8df3_mask */
11787 :
11788 : case 7:
11789 : if (!(
11790 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11791 : (TARGET_AVX512F) && (
11792 : #line 3493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11793 : (TARGET_SSE
11794 : && (32 == 64 || TARGET_AVX512VL)
11795 : && 1) &&
11796 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11797 : (TARGET_AVX))))
11798 : return -1;
11799 : return 3163; /* ieee_minv4df3_mask */
11800 :
11801 : case 8:
11802 : if (!(
11803 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11804 : (TARGET_AVX512F) && (
11805 : #line 3493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11806 : (TARGET_SSE
11807 : && (16 == 64 || TARGET_AVX512VL)
11808 : && 1) &&
11809 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11810 : (TARGET_SSE2))))
11811 : return -1;
11812 : return 3167; /* ieee_minv2df3_mask */
11813 :
11814 : case 9:
11815 : if (!(
11816 : #line 3588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11817 : (TARGET_SSE) &&
11818 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11819 : (TARGET_AVX512FP16)))
11820 : return -1;
11821 : return 3202; /* avx512fp16_ieee_vmminv8hf3 */
11822 :
11823 : case 10:
11824 : if (!
11825 : #line 3588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11826 : (TARGET_SSE))
11827 : return -1;
11828 : return 3210; /* sse_ieee_vmminv4sf3 */
11829 :
11830 : case 11:
11831 : if (!(
11832 : #line 3588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11833 : (TARGET_SSE) &&
11834 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11835 : (TARGET_SSE2)))
11836 : return -1;
11837 : return 3218; /* sse2_ieee_vmminv2df3 */
11838 :
11839 : default:
11840 : return -1;
11841 : }
11842 :
11843 : case 193:
11844 : x4 = XVECEXP (x3, 0, 0);
11845 : operands[1] = x4;
11846 : x5 = XVECEXP (x3, 0, 1);
11847 : operands[2] = x5;
11848 : if (!const_0_to_255_operand (operands[2], E_SImode))
11849 : return -1;
11850 : x6 = XEXP (x2, 1);
11851 : operands[3] = x6;
11852 : x7 = XEXP (x2, 2);
11853 : operands[4] = x7;
11854 : switch (GET_MODE (operands[0]))
11855 : {
11856 : case E_V32HFmode:
11857 : if (pattern1223 (x2,
11858 : E_V32HFmode,
11859 : E_SImode) != 0
11860 : || !(
11861 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11862 : (TARGET_AVX512F) && (
11863 : #line 4293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11864 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V32HFmode))) &&
11865 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11866 : (TARGET_AVX512FP16))))
11867 : return -1;
11868 : return 3238; /* reducepv32hf_mask */
11869 :
11870 : case E_V16HFmode:
11871 : if (pattern1223 (x2,
11872 : E_V16HFmode,
11873 : E_HImode) != 0
11874 : || !(
11875 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11876 : (TARGET_AVX512F) && (
11877 : #line 4293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11878 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V16HFmode))) &&
11879 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11880 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
11881 : return -1;
11882 : return 3242; /* reducepv16hf_mask */
11883 :
11884 : case E_V8HFmode:
11885 : if (pattern1223 (x2,
11886 : E_V8HFmode,
11887 : E_QImode) != 0
11888 : || !(
11889 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11890 : (TARGET_AVX512F) && (
11891 : #line 4293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11892 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V8HFmode))) &&
11893 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11894 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
11895 : return -1;
11896 : return 3246; /* reducepv8hf_mask */
11897 :
11898 : case E_V16SFmode:
11899 : if (pattern1223 (x2,
11900 : E_V16SFmode,
11901 : E_HImode) != 0
11902 : || !(
11903 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11904 : (TARGET_AVX512F) &&
11905 : #line 4293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11906 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V16SFmode)))))
11907 : return -1;
11908 : return 3250; /* reducepv16sf_mask */
11909 :
11910 : case E_V8SFmode:
11911 : if (pattern1223 (x2,
11912 : E_V8SFmode,
11913 : E_QImode) != 0
11914 : || !(
11915 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11916 : (TARGET_AVX512F) && (
11917 : #line 4293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11918 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V8SFmode))) &&
11919 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11920 : (TARGET_AVX512VL))))
11921 : return -1;
11922 : return 3254; /* reducepv8sf_mask */
11923 :
11924 : case E_V4SFmode:
11925 : if (pattern1223 (x2,
11926 : E_V4SFmode,
11927 : E_QImode) != 0
11928 : || !(
11929 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11930 : (TARGET_AVX512F) && (
11931 : #line 4293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11932 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V4SFmode))) &&
11933 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11934 : (TARGET_AVX512VL))))
11935 : return -1;
11936 : return 3258; /* reducepv4sf_mask */
11937 :
11938 : case E_V8DFmode:
11939 : if (pattern1223 (x2,
11940 : E_V8DFmode,
11941 : E_QImode) != 0
11942 : || !(
11943 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11944 : (TARGET_AVX512F) &&
11945 : #line 4293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11946 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V8DFmode)))))
11947 : return -1;
11948 : return 3262; /* reducepv8df_mask */
11949 :
11950 : case E_V4DFmode:
11951 : if (pattern1223 (x2,
11952 : E_V4DFmode,
11953 : E_QImode) != 0
11954 : || !(
11955 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11956 : (TARGET_AVX512F) && (
11957 : #line 4293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11958 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V4DFmode))) &&
11959 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11960 : (TARGET_AVX512VL))))
11961 : return -1;
11962 : return 3266; /* reducepv4df_mask */
11963 :
11964 : case E_V2DFmode:
11965 : if (pattern1223 (x2,
11966 : E_V2DFmode,
11967 : E_QImode) != 0
11968 : || !(
11969 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11970 : (TARGET_AVX512F) && (
11971 : #line 4293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11972 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V2DFmode))) &&
11973 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11974 : (TARGET_AVX512VL))))
11975 : return -1;
11976 : return 3270; /* reducepv2df_mask */
11977 :
11978 : default:
11979 : return -1;
11980 : }
11981 :
11982 : case 222:
11983 : switch (pattern465 (x2))
11984 : {
11985 : case 0:
11986 : if (!(
11987 : #line 106 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11988 : (TARGET_AVX512F) &&
11989 : #line 7722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11990 : (TARGET_AVX512FP16 && 1)))
11991 : return -1;
11992 : return 4417; /* avx512bw_fmulc_v32hf_mask */
11993 :
11994 : case 1:
11995 : if (!(
11996 : #line 106 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11997 : (TARGET_AVX512F) && (
11998 : #line 7722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11999 : (TARGET_AVX512FP16 && 1) &&
12000 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12001 : (TARGET_AVX512VL))))
12002 : return -1;
12003 : return 4425; /* avx512vl_fmulc_v16hf_mask */
12004 :
12005 : case 2:
12006 : if (!(
12007 : #line 106 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12008 : (TARGET_AVX512F) && (
12009 : #line 7722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12010 : (TARGET_AVX512FP16 && 1) &&
12011 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12012 : (TARGET_AVX512VL))))
12013 : return -1;
12014 : return 4429; /* avx512fp16_fmulc_v8hf_mask */
12015 :
12016 : case 3:
12017 : if (!
12018 : #line 7926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12019 : (TARGET_AVX512FP16))
12020 : return -1;
12021 : return 4444; /* avx512fp16_fmulcsh_v8hf */
12022 :
12023 : default:
12024 : return -1;
12025 : }
12026 :
12027 : case 223:
12028 : switch (pattern465 (x2))
12029 : {
12030 : case 0:
12031 : if (!(
12032 : #line 106 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12033 : (TARGET_AVX512F) &&
12034 : #line 7722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12035 : (TARGET_AVX512FP16 && 1)))
12036 : return -1;
12037 : return 4421; /* avx512bw_fcmulc_v32hf_mask */
12038 :
12039 : case 1:
12040 : if (!(
12041 : #line 106 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12042 : (TARGET_AVX512F) && (
12043 : #line 7722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12044 : (TARGET_AVX512FP16 && 1) &&
12045 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12046 : (TARGET_AVX512VL))))
12047 : return -1;
12048 : return 4427; /* avx512vl_fcmulc_v16hf_mask */
12049 :
12050 : case 2:
12051 : if (!(
12052 : #line 106 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12053 : (TARGET_AVX512F) && (
12054 : #line 7722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12055 : (TARGET_AVX512FP16 && 1) &&
12056 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12057 : (TARGET_AVX512VL))))
12058 : return -1;
12059 : return 4431; /* avx512fp16_fcmulc_v8hf_mask */
12060 :
12061 : case 3:
12062 : if (!
12063 : #line 7926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12064 : (TARGET_AVX512FP16))
12065 : return -1;
12066 : return 4448; /* avx512fp16_fcmulcsh_v8hf */
12067 :
12068 : default:
12069 : return -1;
12070 : }
12071 :
12072 : case 59:
12073 : return recog_134 (x1, insn, pnum_clobbers);
12074 :
12075 : case 166:
12076 : x7 = XEXP (x2, 2);
12077 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12078 : return -1;
12079 : x4 = XVECEXP (x3, 0, 0);
12080 : operands[1] = x4;
12081 : x5 = XVECEXP (x3, 0, 1);
12082 : operands[2] = x5;
12083 : switch (pattern462 (x2))
12084 : {
12085 : case 0:
12086 : if (!(
12087 : #line 14446 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12088 : (TARGET_AVX512F) &&
12089 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12090 : (TARGET_AVX512FP16)))
12091 : return -1;
12092 : return 7098; /* avx512f_sgetexpv8hf */
12093 :
12094 : case 1:
12095 : if (!
12096 : #line 14446 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12097 : (TARGET_AVX512F))
12098 : return -1;
12099 : return 7102; /* avx512f_sgetexpv4sf */
12100 :
12101 : case 2:
12102 : if (!(
12103 : #line 14446 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12104 : (TARGET_AVX512F) &&
12105 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12106 : (TARGET_SSE2)))
12107 : return -1;
12108 : return 7106; /* avx512f_sgetexpv2df */
12109 :
12110 : default:
12111 : return -1;
12112 : }
12113 :
12114 : case 95:
12115 : return recog_133 (x1, insn, pnum_clobbers);
12116 :
12117 : case 189:
12118 : x4 = XVECEXP (x3, 0, 0);
12119 : operands[1] = x4;
12120 : x5 = XVECEXP (x3, 0, 1);
12121 : operands[2] = x5;
12122 : x6 = XEXP (x2, 1);
12123 : operands[3] = x6;
12124 : x7 = XEXP (x2, 2);
12125 : operands[4] = x7;
12126 : switch (GET_MODE (operands[0]))
12127 : {
12128 : case E_V16SImode:
12129 : if (pattern468 (x2,
12130 : E_HImode,
12131 : E_V16SImode,
12132 : E_V32HImode) != 0
12133 : || !(
12134 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12135 : (TARGET_AVX512F) && (
12136 : #line 17110 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12137 : (TARGET_AVX512BW && (64 == 64 || TARGET_AVX512VL)) &&
12138 : #line 642 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12139 : (TARGET_AVX512BW))))
12140 : return -1;
12141 : return 7656; /* avx512bw_pmaddwd512v32hi_mask */
12142 :
12143 : case E_V8SImode:
12144 : if (pattern468 (x2,
12145 : E_QImode,
12146 : E_V8SImode,
12147 : E_V16HImode) != 0
12148 : || !(
12149 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12150 : (TARGET_AVX512F) && (
12151 : #line 17110 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12152 : (TARGET_AVX512BW && (32 == 64 || TARGET_AVX512VL)) &&
12153 : #line 642 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12154 : (TARGET_AVX2))))
12155 : return -1;
12156 : return 7658; /* avx512bw_pmaddwd512v16hi_mask */
12157 :
12158 : case E_V4SImode:
12159 : if (pattern468 (x2,
12160 : E_QImode,
12161 : E_V4SImode,
12162 : E_V8HImode) != 0
12163 : || !(
12164 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12165 : (TARGET_AVX512F) &&
12166 : #line 17110 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12167 : (TARGET_AVX512BW && (16 == 64 || TARGET_AVX512VL))))
12168 : return -1;
12169 : return 7660; /* avx512bw_pmaddwd512v8hi_mask */
12170 :
12171 : default:
12172 : return -1;
12173 : }
12174 :
12175 : case 58:
12176 : x4 = XVECEXP (x3, 0, 0);
12177 : operands[1] = x4;
12178 : x5 = XVECEXP (x3, 0, 1);
12179 : operands[2] = x5;
12180 : x6 = XEXP (x2, 1);
12181 : operands[3] = x6;
12182 : x7 = XEXP (x2, 2);
12183 : operands[4] = x7;
12184 : switch (GET_MODE (operands[0]))
12185 : {
12186 : case E_V64QImode:
12187 : if (pattern1118 (x2,
12188 : E_DImode,
12189 : E_V64QImode,
12190 : E_V32HImode) != 0
12191 : || !(
12192 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12193 : (TARGET_AVX512F) && (
12194 : #line 19843 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12195 : (TARGET_SSE2 && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) &&
12196 : #line 626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12197 : (TARGET_AVX512BW))))
12198 : return -1;
12199 : return 8389; /* avx512bw_packuswb_mask */
12200 :
12201 : case E_V32QImode:
12202 : if (pattern1118 (x2,
12203 : E_SImode,
12204 : E_V32QImode,
12205 : E_V16HImode) != 0
12206 : || !(
12207 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12208 : (TARGET_AVX512F) && (
12209 : #line 19843 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12210 : (TARGET_SSE2 && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) &&
12211 : #line 626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12212 : (TARGET_AVX2))))
12213 : return -1;
12214 : return 8391; /* avx2_packuswb_mask */
12215 :
12216 : case E_V16QImode:
12217 : if (pattern1118 (x2,
12218 : E_HImode,
12219 : E_V16QImode,
12220 : E_V8HImode) != 0
12221 : || !(
12222 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12223 : (TARGET_AVX512F) &&
12224 : #line 19843 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12225 : (TARGET_SSE2 && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW)))
12226 : return -1;
12227 : return 8393; /* sse2_packuswb_mask */
12228 :
12229 : case E_V32HImode:
12230 : if (pattern1118 (x2,
12231 : E_SImode,
12232 : E_V32HImode,
12233 : E_V16SImode) != 0
12234 : || !(
12235 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12236 : (TARGET_AVX512F) && (
12237 : #line 24380 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12238 : (TARGET_SSE4_1 && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) &&
12239 : #line 642 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12240 : (TARGET_AVX512BW))))
12241 : return -1;
12242 : return 8804; /* avx512bw_packusdw_mask */
12243 :
12244 : case E_V16HImode:
12245 : if (pattern1118 (x2,
12246 : E_HImode,
12247 : E_V16HImode,
12248 : E_V8SImode) != 0
12249 : || !(
12250 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12251 : (TARGET_AVX512F) && (
12252 : #line 24380 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12253 : (TARGET_SSE4_1 && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) &&
12254 : #line 642 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12255 : (TARGET_AVX2))))
12256 : return -1;
12257 : return 8806; /* avx2_packusdw_mask */
12258 :
12259 : case E_V8HImode:
12260 : if (pattern1118 (x2,
12261 : E_QImode,
12262 : E_V8HImode,
12263 : E_V4SImode) != 0
12264 : || !(
12265 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12266 : (TARGET_AVX512F) &&
12267 : #line 24380 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12268 : (TARGET_SSE4_1 && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW)))
12269 : return -1;
12270 : return 8808; /* sse4_1_packusdw_mask */
12271 :
12272 : default:
12273 : return -1;
12274 : }
12275 :
12276 : case 191:
12277 : if (pattern466 (x2) != 0
12278 : || !(
12279 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12280 : (TARGET_AVX512F) &&
12281 : #line 21195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12282 : (TARGET_AVX512BW)))
12283 : return -1;
12284 : return 8519; /* avx512bw_pshuflwv32hi_mask */
12285 :
12286 : case 190:
12287 : if (pattern466 (x2) != 0
12288 : || !(
12289 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12290 : (TARGET_AVX512F) &&
12291 : #line 21371 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12292 : (TARGET_AVX512BW)))
12293 : return -1;
12294 : return 8525; /* avx512bw_pshufhwv32hi_mask */
12295 :
12296 : case 188:
12297 : x4 = XVECEXP (x3, 0, 0);
12298 : operands[1] = x4;
12299 : x5 = XVECEXP (x3, 0, 1);
12300 : operands[2] = x5;
12301 : x6 = XEXP (x2, 1);
12302 : operands[3] = x6;
12303 : x7 = XEXP (x2, 2);
12304 : operands[4] = x7;
12305 : switch (GET_MODE (operands[0]))
12306 : {
12307 : case E_V8HImode:
12308 : if (pattern468 (x2,
12309 : E_QImode,
12310 : E_V8HImode,
12311 : E_V16QImode) != 0
12312 : || !(
12313 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12314 : (TARGET_AVX512F) && (
12315 : #line 23322 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12316 : (TARGET_AVX512BW) &&
12317 : #line 675 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12318 : (TARGET_AVX512VL))))
12319 : return -1;
12320 : return 8682; /* avx512bw_pmaddubsw512v8hi_mask */
12321 :
12322 : case E_V16HImode:
12323 : if (pattern468 (x2,
12324 : E_HImode,
12325 : E_V16HImode,
12326 : E_V32QImode) != 0
12327 : || !(
12328 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12329 : (TARGET_AVX512F) && (
12330 : #line 23322 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12331 : (TARGET_AVX512BW) &&
12332 : #line 675 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12333 : (TARGET_AVX512VL))))
12334 : return -1;
12335 : return 8684; /* avx512bw_pmaddubsw512v16hi_mask */
12336 :
12337 : case E_V32HImode:
12338 : if (pattern468 (x2,
12339 : E_SImode,
12340 : E_V32HImode,
12341 : E_V64QImode) != 0
12342 : || !(
12343 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12344 : (TARGET_AVX512F) &&
12345 : #line 23322 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12346 : (TARGET_AVX512BW)))
12347 : return -1;
12348 : return 8686; /* avx512bw_pmaddubsw512v32hi_mask */
12349 :
12350 : default:
12351 : return -1;
12352 : }
12353 :
12354 : case 53:
12355 : switch (pattern467 (x2))
12356 : {
12357 : case 0:
12358 : if (!(
12359 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12360 : (TARGET_AVX512F) && (
12361 : #line 23650 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12362 : (TARGET_SSSE3 && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) &&
12363 : #line 626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12364 : (TARGET_AVX512BW))))
12365 : return -1;
12366 : return 8700; /* avx512bw_pshufbv64qi3_mask */
12367 :
12368 : case 1:
12369 : if (!(
12370 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12371 : (TARGET_AVX512F) && (
12372 : #line 23650 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12373 : (TARGET_SSSE3 && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) &&
12374 : #line 626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12375 : (TARGET_AVX2))))
12376 : return -1;
12377 : return 8702; /* avx2_pshufbv32qi3_mask */
12378 :
12379 : case 2:
12380 : if (!(
12381 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12382 : (TARGET_AVX512F) &&
12383 : #line 23650 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12384 : (TARGET_SSSE3 && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW)))
12385 : return -1;
12386 : return 8704; /* ssse3_pshufbv16qi3_mask */
12387 :
12388 : default:
12389 : return -1;
12390 : }
12391 :
12392 : case 152:
12393 : return recog_132 (x1, insn, pnum_clobbers);
12394 :
12395 : case 145:
12396 : x4 = XVECEXP (x3, 0, 0);
12397 : operands[1] = x4;
12398 : x5 = XVECEXP (x3, 0, 1);
12399 : operands[2] = x5;
12400 : x6 = XEXP (x2, 1);
12401 : operands[3] = x6;
12402 : x7 = XEXP (x2, 2);
12403 : operands[4] = x7;
12404 : switch (GET_MODE (operands[0]))
12405 : {
12406 : case E_V16SFmode:
12407 : if (pattern1121 (x2,
12408 : E_V16SFmode,
12409 : E_V16SImode,
12410 : E_HImode) != 0
12411 : || !(
12412 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12413 : (TARGET_AVX512F) && (
12414 : #line 29083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12415 : (TARGET_AVX && (64 == 64 || TARGET_AVX512VL)) &&
12416 : #line 382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12417 : (TARGET_AVX512F))))
12418 : return -1;
12419 : return 9457; /* avx512f_vpermilvarv16sf3_mask */
12420 :
12421 : case E_V8SFmode:
12422 : if (pattern1121 (x2,
12423 : E_V8SFmode,
12424 : E_V8SImode,
12425 : E_QImode) != 0
12426 : || !(
12427 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12428 : (TARGET_AVX512F) && (
12429 : #line 29083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12430 : (TARGET_AVX && (32 == 64 || TARGET_AVX512VL)) &&
12431 : #line 382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12432 : (TARGET_AVX))))
12433 : return -1;
12434 : return 9459; /* avx_vpermilvarv8sf3_mask */
12435 :
12436 : case E_V4SFmode:
12437 : if (pattern1121 (x2,
12438 : E_V4SFmode,
12439 : E_V4SImode,
12440 : E_QImode) != 0
12441 : || !(
12442 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12443 : (TARGET_AVX512F) &&
12444 : #line 29083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12445 : (TARGET_AVX && (16 == 64 || TARGET_AVX512VL))))
12446 : return -1;
12447 : return 9461; /* avx_vpermilvarv4sf3_mask */
12448 :
12449 : case E_V8DFmode:
12450 : if (pattern1121 (x2,
12451 : E_V8DFmode,
12452 : E_V8DImode,
12453 : E_QImode) != 0
12454 : || !(
12455 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12456 : (TARGET_AVX512F) && (
12457 : #line 29083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12458 : (TARGET_AVX && (64 == 64 || TARGET_AVX512VL)) &&
12459 : #line 383 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12460 : (TARGET_AVX512F))))
12461 : return -1;
12462 : return 9463; /* avx512f_vpermilvarv8df3_mask */
12463 :
12464 : case E_V4DFmode:
12465 : if (pattern1121 (x2,
12466 : E_V4DFmode,
12467 : E_V4DImode,
12468 : E_QImode) != 0
12469 : || !(
12470 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12471 : (TARGET_AVX512F) && (
12472 : #line 29083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12473 : (TARGET_AVX && (32 == 64 || TARGET_AVX512VL)) &&
12474 : #line 383 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12475 : (TARGET_AVX))))
12476 : return -1;
12477 : return 9465; /* avx_vpermilvarv4df3_mask */
12478 :
12479 : case E_V2DFmode:
12480 : if (pattern1121 (x2,
12481 : E_V2DFmode,
12482 : E_V2DImode,
12483 : E_QImode) != 0
12484 : || !(
12485 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12486 : (TARGET_AVX512F) && (
12487 : #line 29083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12488 : (TARGET_AVX && (16 == 64 || TARGET_AVX512VL)) &&
12489 : #line 384 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12490 : (TARGET_SSE2))))
12491 : return -1;
12492 : return 9467; /* avx_vpermilvarv2df3_mask */
12493 :
12494 : default:
12495 : return -1;
12496 : }
12497 :
12498 : case 151:
12499 : x4 = XVECEXP (x3, 0, 0);
12500 : operands[1] = x4;
12501 : x5 = XVECEXP (x3, 0, 1);
12502 : operands[2] = x5;
12503 : if (!const_0_to_255_operand (operands[2], E_SImode))
12504 : return -1;
12505 : switch (GET_MODE (operands[0]))
12506 : {
12507 : case E_V8HImode:
12508 : if (pattern1008 (x2,
12509 : E_QImode,
12510 : E_V8SFmode,
12511 : E_V8HImode) != 0)
12512 : return -1;
12513 : x7 = XEXP (x2, 2);
12514 : operands[4] = x7;
12515 : if (register_operand (operands[0], E_V8HImode))
12516 : {
12517 : x6 = XEXP (x2, 1);
12518 : operands[3] = x6;
12519 : if (nonimm_or_0_operand (operands[3], E_V8HImode)
12520 : && (
12521 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12522 : (TARGET_AVX512F) &&
12523 : #line 30214 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12524 : (TARGET_F16C || TARGET_AVX512VL)))
12525 : return 9765; /* vcvtps2ph256_mask */
12526 : }
12527 : operands[3] = x7;
12528 : if (!memory_operand (operands[0], E_V8HImode))
12529 : return -1;
12530 : x6 = XEXP (x2, 1);
12531 : if (!rtx_equal_p (x6, operands[0])
12532 : || !(
12533 : #line 96 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12534 : (TARGET_AVX512F) &&
12535 : #line 30226 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12536 : (TARGET_F16C || TARGET_AVX512VL)))
12537 : return -1;
12538 : return 9767; /* *vcvtps2ph256_merge_mask */
12539 :
12540 : case E_V16HImode:
12541 : if (pattern1008 (x2,
12542 : E_HImode,
12543 : E_V16SFmode,
12544 : E_V16HImode) != 0)
12545 : return -1;
12546 : x7 = XEXP (x2, 2);
12547 : operands[4] = x7;
12548 : if (register_operand (operands[0], E_V16HImode))
12549 : {
12550 : x6 = XEXP (x2, 1);
12551 : operands[3] = x6;
12552 : if (nonimm_or_0_operand (operands[3], E_V16HImode)
12553 : &&
12554 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12555 : (TARGET_AVX512F))
12556 : return 9770; /* avx512f_vcvtps2ph512_mask */
12557 : }
12558 : operands[3] = x7;
12559 : if (!memory_operand (operands[0], E_V16HImode))
12560 : return -1;
12561 : x6 = XEXP (x2, 1);
12562 : if (!rtx_equal_p (x6, operands[0])
12563 : || !
12564 : #line 96 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12565 : (TARGET_AVX512F))
12566 : return -1;
12567 : return 9773; /* *avx512f_vcvtps2ph512_merge_mask */
12568 :
12569 : default:
12570 : return -1;
12571 : }
12572 :
12573 : case 167:
12574 : return recog_135 (x1, insn, pnum_clobbers);
12575 :
12576 : case 198:
12577 : x4 = XVECEXP (x3, 0, 0);
12578 : operands[1] = x4;
12579 : x5 = XVECEXP (x3, 0, 1);
12580 : operands[2] = x5;
12581 : x6 = XEXP (x2, 1);
12582 : operands[3] = x6;
12583 : x7 = XEXP (x2, 2);
12584 : operands[4] = x7;
12585 : switch (GET_MODE (operands[0]))
12586 : {
12587 : case E_V64QImode:
12588 : if (pattern1122 (x2,
12589 : E_V64QImode,
12590 : E_DImode) != 0
12591 : || !(
12592 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12593 : (TARGET_AVX512F) &&
12594 : #line 31330 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12595 : (TARGET_AVX512VBMI)))
12596 : return -1;
12597 : return 10232; /* vpmultishiftqbv64qi_mask */
12598 :
12599 : case E_V16QImode:
12600 : if (pattern1122 (x2,
12601 : E_V16QImode,
12602 : E_HImode) != 0
12603 : || !(
12604 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12605 : (TARGET_AVX512F) && (
12606 : #line 31330 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12607 : (TARGET_AVX512VBMI) &&
12608 : #line 338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12609 : (TARGET_AVX512VL))))
12610 : return -1;
12611 : return 10234; /* vpmultishiftqbv16qi_mask */
12612 :
12613 : case E_V32QImode:
12614 : if (pattern1122 (x2,
12615 : E_V32QImode,
12616 : E_SImode) != 0
12617 : || !(
12618 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12619 : (TARGET_AVX512F) && (
12620 : #line 31330 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12621 : (TARGET_AVX512VBMI) &&
12622 : #line 338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12623 : (TARGET_AVX512VL))))
12624 : return -1;
12625 : return 10236; /* vpmultishiftqbv32qi_mask */
12626 :
12627 : default:
12628 : return -1;
12629 : }
12630 :
12631 : case 201:
12632 : switch (pattern467 (x2))
12633 : {
12634 : case 0:
12635 : if (!(
12636 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12637 : (TARGET_AVX512F) && (
12638 : #line 31439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12639 : (TARGET_GFNI) &&
12640 : #line 629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12641 : (TARGET_AVX512F))))
12642 : return -1;
12643 : return 10282; /* vgf2p8mulb_v64qi_mask */
12644 :
12645 : case 1:
12646 : if (!(
12647 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12648 : (TARGET_AVX512F) && (
12649 : #line 31439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12650 : (TARGET_GFNI) &&
12651 : #line 629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12652 : (TARGET_AVX))))
12653 : return -1;
12654 : return 10284; /* vgf2p8mulb_v32qi_mask */
12655 :
12656 : case 2:
12657 : if (!(
12658 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12659 : (TARGET_AVX512F) &&
12660 : #line 31439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12661 : (TARGET_GFNI)))
12662 : return -1;
12663 : return 10286; /* vgf2p8mulb_v16qi_mask */
12664 :
12665 : default:
12666 : return -1;
12667 : }
12668 :
12669 : case 250:
12670 : switch (pattern469 (x2))
12671 : {
12672 : case 0:
12673 : if (!(
12674 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12675 : (TARGET_AVX512F) &&
12676 : #line 32811 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12677 : (TARGET_AVX10_2)))
12678 : return -1;
12679 : return 10550; /* vcvt2ph2bf8v32hf_mask */
12680 :
12681 : case 1:
12682 : if (!(
12683 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12684 : (TARGET_AVX512F) && (
12685 : #line 32811 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12686 : (TARGET_AVX10_2) &&
12687 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12688 : (TARGET_AVX512VL))))
12689 : return -1;
12690 : return 10558; /* vcvt2ph2bf8v16hf_mask */
12691 :
12692 : case 2:
12693 : if (!(
12694 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12695 : (TARGET_AVX512F) && (
12696 : #line 32811 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12697 : (TARGET_AVX10_2) &&
12698 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12699 : (TARGET_AVX512VL))))
12700 : return -1;
12701 : return 10566; /* vcvt2ph2bf8v8hf_mask */
12702 :
12703 : default:
12704 : return -1;
12705 : }
12706 :
12707 : case 251:
12708 : switch (pattern469 (x2))
12709 : {
12710 : case 0:
12711 : if (!(
12712 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12713 : (TARGET_AVX512F) &&
12714 : #line 32811 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12715 : (TARGET_AVX10_2)))
12716 : return -1;
12717 : return 10552; /* vcvt2ph2bf8sv32hf_mask */
12718 :
12719 : case 1:
12720 : if (!(
12721 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12722 : (TARGET_AVX512F) && (
12723 : #line 32811 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12724 : (TARGET_AVX10_2) &&
12725 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12726 : (TARGET_AVX512VL))))
12727 : return -1;
12728 : return 10560; /* vcvt2ph2bf8sv16hf_mask */
12729 :
12730 : case 2:
12731 : if (!(
12732 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12733 : (TARGET_AVX512F) && (
12734 : #line 32811 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12735 : (TARGET_AVX10_2) &&
12736 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12737 : (TARGET_AVX512VL))))
12738 : return -1;
12739 : return 10568; /* vcvt2ph2bf8sv8hf_mask */
12740 :
12741 : default:
12742 : return -1;
12743 : }
12744 :
12745 : case 252:
12746 : switch (pattern469 (x2))
12747 : {
12748 : case 0:
12749 : if (!(
12750 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12751 : (TARGET_AVX512F) &&
12752 : #line 32811 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12753 : (TARGET_AVX10_2)))
12754 : return -1;
12755 : return 10554; /* vcvt2ph2hf8v32hf_mask */
12756 :
12757 : case 1:
12758 : if (!(
12759 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12760 : (TARGET_AVX512F) && (
12761 : #line 32811 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12762 : (TARGET_AVX10_2) &&
12763 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12764 : (TARGET_AVX512VL))))
12765 : return -1;
12766 : return 10562; /* vcvt2ph2hf8v16hf_mask */
12767 :
12768 : case 2:
12769 : if (!(
12770 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12771 : (TARGET_AVX512F) && (
12772 : #line 32811 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12773 : (TARGET_AVX10_2) &&
12774 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12775 : (TARGET_AVX512VL))))
12776 : return -1;
12777 : return 10570; /* vcvt2ph2hf8v8hf_mask */
12778 :
12779 : default:
12780 : return -1;
12781 : }
12782 :
12783 : case 253:
12784 : switch (pattern469 (x2))
12785 : {
12786 : case 0:
12787 : if (!(
12788 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12789 : (TARGET_AVX512F) &&
12790 : #line 32811 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12791 : (TARGET_AVX10_2)))
12792 : return -1;
12793 : return 10556; /* vcvt2ph2hf8sv32hf_mask */
12794 :
12795 : case 1:
12796 : if (!(
12797 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12798 : (TARGET_AVX512F) && (
12799 : #line 32811 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12800 : (TARGET_AVX10_2) &&
12801 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12802 : (TARGET_AVX512VL))))
12803 : return -1;
12804 : return 10564; /* vcvt2ph2hf8sv16hf_mask */
12805 :
12806 : case 2:
12807 : if (!(
12808 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12809 : (TARGET_AVX512F) && (
12810 : #line 32811 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12811 : (TARGET_AVX10_2) &&
12812 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12813 : (TARGET_AVX512VL))))
12814 : return -1;
12815 : return 10572; /* vcvt2ph2hf8sv8hf_mask */
12816 :
12817 : default:
12818 : return -1;
12819 : }
12820 :
12821 : case 246:
12822 : switch (pattern471 (x2))
12823 : {
12824 : case 0:
12825 : if (!(
12826 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12827 : (TARGET_AVX512F) &&
12828 : #line 32903 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12829 : (TARGET_AVX10_2)))
12830 : return -1;
12831 : return 10582; /* vcvtbiasph2bf8v32hf_mask */
12832 :
12833 : case 1:
12834 : if (!(
12835 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12836 : (TARGET_AVX512F) &&
12837 : #line 32903 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12838 : (TARGET_AVX10_2)))
12839 : return -1;
12840 : return 10590; /* vcvtbiasph2bf8v16hf_mask */
12841 :
12842 : default:
12843 : return -1;
12844 : }
12845 :
12846 : case 247:
12847 : switch (pattern471 (x2))
12848 : {
12849 : case 0:
12850 : if (!(
12851 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12852 : (TARGET_AVX512F) &&
12853 : #line 32903 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12854 : (TARGET_AVX10_2)))
12855 : return -1;
12856 : return 10584; /* vcvtbiasph2bf8sv32hf_mask */
12857 :
12858 : case 1:
12859 : if (!(
12860 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12861 : (TARGET_AVX512F) &&
12862 : #line 32903 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12863 : (TARGET_AVX10_2)))
12864 : return -1;
12865 : return 10592; /* vcvtbiasph2bf8sv16hf_mask */
12866 :
12867 : default:
12868 : return -1;
12869 : }
12870 :
12871 : case 248:
12872 : switch (pattern471 (x2))
12873 : {
12874 : case 0:
12875 : if (!(
12876 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12877 : (TARGET_AVX512F) &&
12878 : #line 32903 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12879 : (TARGET_AVX10_2)))
12880 : return -1;
12881 : return 10586; /* vcvtbiasph2hf8v32hf_mask */
12882 :
12883 : case 1:
12884 : if (!(
12885 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12886 : (TARGET_AVX512F) &&
12887 : #line 32903 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12888 : (TARGET_AVX10_2)))
12889 : return -1;
12890 : return 10594; /* vcvtbiasph2hf8v16hf_mask */
12891 :
12892 : default:
12893 : return -1;
12894 : }
12895 :
12896 : case 249:
12897 : switch (pattern471 (x2))
12898 : {
12899 : case 0:
12900 : if (!(
12901 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12902 : (TARGET_AVX512F) &&
12903 : #line 32903 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12904 : (TARGET_AVX10_2)))
12905 : return -1;
12906 : return 10588; /* vcvtbiasph2hf8sv32hf_mask */
12907 :
12908 : case 1:
12909 : if (!(
12910 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12911 : (TARGET_AVX512F) &&
12912 : #line 32903 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12913 : (TARGET_AVX10_2)))
12914 : return -1;
12915 : return 10596; /* vcvtbiasph2hf8sv16hf_mask */
12916 :
12917 : default:
12918 : return -1;
12919 : }
12920 :
12921 : case 259:
12922 : x4 = XVECEXP (x3, 0, 0);
12923 : operands[1] = x4;
12924 : x5 = XVECEXP (x3, 0, 1);
12925 : operands[2] = x5;
12926 : x6 = XEXP (x2, 1);
12927 : operands[3] = x6;
12928 : x7 = XEXP (x2, 2);
12929 : operands[4] = x7;
12930 : switch (GET_MODE (operands[0]))
12931 : {
12932 : case E_V32BFmode:
12933 : if (pattern1122 (x2,
12934 : E_V32BFmode,
12935 : E_SImode) != 0
12936 : || !(
12937 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12938 : (TARGET_AVX512F) &&
12939 : #line 33170 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12940 : (TARGET_AVX10_2)))
12941 : return -1;
12942 : return 10691; /* avx10_2_scalefbf16_v32bf_mask */
12943 :
12944 : case E_V16BFmode:
12945 : if (pattern1122 (x2,
12946 : E_V16BFmode,
12947 : E_HImode) != 0
12948 : || !(
12949 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12950 : (TARGET_AVX512F) &&
12951 : #line 33170 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12952 : (TARGET_AVX10_2)))
12953 : return -1;
12954 : return 10693; /* avx10_2_scalefbf16_v16bf_mask */
12955 :
12956 : case E_V8BFmode:
12957 : if (pattern1122 (x2,
12958 : E_V8BFmode,
12959 : E_QImode) != 0
12960 : || !(
12961 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12962 : (TARGET_AVX512F) &&
12963 : #line 33170 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12964 : (TARGET_AVX10_2)))
12965 : return -1;
12966 : return 10695; /* avx10_2_scalefbf16_v8bf_mask */
12967 :
12968 : default:
12969 : return -1;
12970 : }
12971 :
12972 : case 260:
12973 : switch (pattern473 (x2))
12974 : {
12975 : case 0:
12976 : if (!(
12977 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12978 : (TARGET_AVX512F) &&
12979 : #line 33511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12980 : (TARGET_AVX10_2)))
12981 : return -1;
12982 : return 10805; /* avx10_2_rndscalebf16_v32bf_mask */
12983 :
12984 : case 1:
12985 : if (!(
12986 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12987 : (TARGET_AVX512F) &&
12988 : #line 33511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12989 : (TARGET_AVX10_2)))
12990 : return -1;
12991 : return 10811; /* avx10_2_rndscalebf16_v16bf_mask */
12992 :
12993 : case 2:
12994 : if (!(
12995 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12996 : (TARGET_AVX512F) &&
12997 : #line 33511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12998 : (TARGET_AVX10_2)))
12999 : return -1;
13000 : return 10817; /* avx10_2_rndscalebf16_v8bf_mask */
13001 :
13002 : default:
13003 : return -1;
13004 : }
13005 :
13006 : case 261:
13007 : switch (pattern473 (x2))
13008 : {
13009 : case 0:
13010 : if (!(
13011 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13012 : (TARGET_AVX512F) &&
13013 : #line 33511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13014 : (TARGET_AVX10_2)))
13015 : return -1;
13016 : return 10807; /* avx10_2_reducebf16_v32bf_mask */
13017 :
13018 : case 1:
13019 : if (!(
13020 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13021 : (TARGET_AVX512F) &&
13022 : #line 33511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13023 : (TARGET_AVX10_2)))
13024 : return -1;
13025 : return 10813; /* avx10_2_reducebf16_v16bf_mask */
13026 :
13027 : case 2:
13028 : if (!(
13029 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13030 : (TARGET_AVX512F) &&
13031 : #line 33511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13032 : (TARGET_AVX10_2)))
13033 : return -1;
13034 : return 10819; /* avx10_2_reducebf16_v8bf_mask */
13035 :
13036 : default:
13037 : return -1;
13038 : }
13039 :
13040 : case 262:
13041 : switch (pattern473 (x2))
13042 : {
13043 : case 0:
13044 : if (!(
13045 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13046 : (TARGET_AVX512F) &&
13047 : #line 33511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13048 : (TARGET_AVX10_2)))
13049 : return -1;
13050 : return 10809; /* avx10_2_getmantbf16_v32bf_mask */
13051 :
13052 : case 1:
13053 : if (!(
13054 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13055 : (TARGET_AVX512F) &&
13056 : #line 33511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13057 : (TARGET_AVX10_2)))
13058 : return -1;
13059 : return 10815; /* avx10_2_getmantbf16_v16bf_mask */
13060 :
13061 : case 2:
13062 : if (!(
13063 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13064 : (TARGET_AVX512F) &&
13065 : #line 33511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13066 : (TARGET_AVX10_2)))
13067 : return -1;
13068 : return 10821; /* avx10_2_getmantbf16_v8bf_mask */
13069 :
13070 : default:
13071 : return -1;
13072 : }
13073 :
13074 : default:
13075 : return -1;
13076 : }
13077 : }
13078 :
13079 : int
13080 : recog_185 (rtx x1 ATTRIBUTE_UNUSED,
13081 : rtx_insn *insn ATTRIBUTE_UNUSED,
13082 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13083 : {
13084 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13085 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
13086 : rtx x10, x11, x12, x13, x14, x15;
13087 : int res ATTRIBUTE_UNUSED;
13088 : x2 = XEXP (x1, 1);
13089 : x3 = XEXP (x2, 0);
13090 : x4 = XEXP (x3, 0);
13091 : switch (GET_CODE (x4))
13092 : {
13093 : case REG:
13094 : case SUBREG:
13095 : x5 = XEXP (x3, 1);
13096 : switch (GET_CODE (x5))
13097 : {
13098 : case CONST_INT:
13099 : case CONST_DOUBLE:
13100 : case CONST_VECTOR:
13101 : case REG:
13102 : case SUBREG:
13103 : case MEM:
13104 : operands[3] = x5;
13105 : x6 = XEXP (x2, 2);
13106 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
13107 : return -1;
13108 : operands[2] = x4;
13109 : x7 = XEXP (x3, 2);
13110 : operands[4] = x7;
13111 : if (!register_operand (operands[4], E_QImode))
13112 : return -1;
13113 : x8 = XEXP (x2, 1);
13114 : operands[1] = x8;
13115 : switch (GET_MODE (operands[0]))
13116 : {
13117 : case E_V8HFmode:
13118 : if (pattern1288 (x2,
13119 : E_V8HFmode) != 0
13120 : || !(
13121 : #line 1715 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13122 : (TARGET_AVX512F) &&
13123 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13124 : (TARGET_AVX512FP16)))
13125 : return -1;
13126 : return 2557; /* avx512f_movhf_mask */
13127 :
13128 : case E_V4SFmode:
13129 : if (pattern1288 (x2,
13130 : E_V4SFmode) != 0
13131 : || !
13132 : #line 1715 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13133 : (TARGET_AVX512F))
13134 : return -1;
13135 : return 2558; /* avx512f_movsf_mask */
13136 :
13137 : case E_V2DFmode:
13138 : if (pattern1288 (x2,
13139 : E_V2DFmode) != 0
13140 : || !(
13141 : #line 1715 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13142 : (TARGET_AVX512F) &&
13143 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13144 : (TARGET_SSE2)))
13145 : return -1;
13146 : return 2559; /* avx512f_movdf_mask */
13147 :
13148 : default:
13149 : return -1;
13150 : }
13151 :
13152 : case VEC_DUPLICATE:
13153 : operands[1] = x4;
13154 : x9 = XEXP (x5, 0);
13155 : operands[2] = x9;
13156 : x7 = XEXP (x3, 2);
13157 : operands[3] = x7;
13158 : if (!const_int_operand (operands[3], E_SImode))
13159 : return -1;
13160 : x8 = XEXP (x2, 1);
13161 : operands[4] = x8;
13162 : x6 = XEXP (x2, 2);
13163 : operands[5] = x6;
13164 : switch (GET_MODE (operands[0]))
13165 : {
13166 : case E_V8DFmode:
13167 : if (pattern1289 (x2,
13168 : E_V8DFmode,
13169 : E_V2DFmode,
13170 : E_QImode) != 0
13171 : || !(
13172 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13173 : (TARGET_AVX512F) && (
13174 : #line 20508 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13175 : (TARGET_AVX512F) &&
13176 : #line 12793 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13177 : (TARGET_AVX512DQ))))
13178 : return -1;
13179 : return 8465; /* avx512dq_vinsertf64x2_1_mask */
13180 :
13181 : case E_V8DImode:
13182 : if (pattern1289 (x2,
13183 : E_V8DImode,
13184 : E_V2DImode,
13185 : E_QImode) != 0
13186 : || !(
13187 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13188 : (TARGET_AVX512F) && (
13189 : #line 20508 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13190 : (TARGET_AVX512F) &&
13191 : #line 12793 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13192 : (TARGET_AVX512DQ))))
13193 : return -1;
13194 : return 8467; /* avx512dq_vinserti64x2_1_mask */
13195 :
13196 : case E_V16SFmode:
13197 : if (pattern1289 (x2,
13198 : E_V16SFmode,
13199 : E_V4SFmode,
13200 : E_HImode) != 0
13201 : || !
13202 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13203 : (TARGET_AVX512F))
13204 : return -1;
13205 : return 8469; /* avx512f_vinsertf32x4_1_mask */
13206 :
13207 : case E_V16SImode:
13208 : if (pattern1289 (x2,
13209 : E_V16SImode,
13210 : E_V4SImode,
13211 : E_HImode) != 0
13212 : || !
13213 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13214 : (TARGET_AVX512F))
13215 : return -1;
13216 : return 8471; /* avx512f_vinserti32x4_1_mask */
13217 :
13218 : default:
13219 : return -1;
13220 : }
13221 :
13222 : default:
13223 : return -1;
13224 : }
13225 :
13226 : case VEC_DUPLICATE:
13227 : x10 = XEXP (x4, 0);
13228 : switch (GET_CODE (x10))
13229 : {
13230 : case SUBREG:
13231 : case MEM:
13232 : operands[1] = x10;
13233 : x6 = XEXP (x2, 2);
13234 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
13235 : return -1;
13236 : x5 = XEXP (x3, 1);
13237 : operands[2] = x5;
13238 : x7 = XEXP (x3, 2);
13239 : operands[3] = x7;
13240 : if (!register_operand (operands[3], E_QImode))
13241 : return -1;
13242 : x8 = XEXP (x2, 1);
13243 : operands[4] = x8;
13244 : switch (GET_MODE (operands[0]))
13245 : {
13246 : case E_V8HFmode:
13247 : if (pattern1290 (x2,
13248 : E_V8HFmode,
13249 : E_HFmode) != 0
13250 : || !(
13251 : #line 1744 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13252 : (TARGET_AVX512F) &&
13253 : #line 1386 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
13254 : (TARGET_AVX512FP16)))
13255 : return -1;
13256 : return 2560; /* *avx512f_loadhf_mask */
13257 :
13258 : case E_V4SFmode:
13259 : if (pattern1290 (x2,
13260 : E_V4SFmode,
13261 : E_SFmode) != 0
13262 : || !
13263 : #line 1744 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13264 : (TARGET_AVX512F))
13265 : return -1;
13266 : return 2561; /* *avx512f_loadsf_mask */
13267 :
13268 : case E_V2DFmode:
13269 : if (pattern1290 (x2,
13270 : E_V2DFmode,
13271 : E_DFmode) != 0
13272 : || !
13273 : #line 1744 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13274 : (TARGET_AVX512F))
13275 : return -1;
13276 : return 2562; /* *avx512f_loaddf_mask */
13277 :
13278 : default:
13279 : return -1;
13280 : }
13281 :
13282 : case SQRT:
13283 : x6 = XEXP (x2, 2);
13284 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
13285 : return -1;
13286 : x11 = XEXP (x10, 0);
13287 : operands[1] = x11;
13288 : x5 = XEXP (x3, 1);
13289 : operands[3] = x5;
13290 : x7 = XEXP (x3, 2);
13291 : operands[4] = x7;
13292 : if (!register_operand (operands[4], E_QImode))
13293 : return -1;
13294 : x8 = XEXP (x2, 1);
13295 : operands[2] = x8;
13296 : switch (GET_MODE (operands[0]))
13297 : {
13298 : case E_V8HFmode:
13299 : if (pattern1291 (x2,
13300 : E_V8HFmode,
13301 : E_HFmode) != 0
13302 : || !(
13303 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13304 : (TARGET_AVX512F) && (
13305 : #line 3150 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13306 : (TARGET_SSE) &&
13307 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13308 : (TARGET_AVX512FP16))))
13309 : return -1;
13310 : return 3011; /* *avx512fp16_vmsqrtv8hf2_mask */
13311 :
13312 : case E_V4SFmode:
13313 : if (pattern1291 (x2,
13314 : E_V4SFmode,
13315 : E_SFmode) != 0
13316 : || !(
13317 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13318 : (TARGET_AVX512F) &&
13319 : #line 3150 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13320 : (TARGET_SSE)))
13321 : return -1;
13322 : return 3015; /* *sse_vmsqrtv4sf2_mask */
13323 :
13324 : case E_V2DFmode:
13325 : if (pattern1291 (x2,
13326 : E_V2DFmode,
13327 : E_DFmode) != 0
13328 : || !(
13329 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13330 : (TARGET_AVX512F) && (
13331 : #line 3150 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13332 : (TARGET_SSE) &&
13333 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13334 : (TARGET_SSE2))))
13335 : return -1;
13336 : return 3019; /* *sse2_vmsqrtv2df2_mask */
13337 :
13338 : default:
13339 : return -1;
13340 : }
13341 :
13342 : case UNSPEC:
13343 : if (XVECLEN (x10, 0) != 1
13344 : || XINT (x10, 1) != 56
13345 : || GET_MODE (x10) != E_HFmode)
13346 : return -1;
13347 : x6 = XEXP (x2, 2);
13348 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
13349 : || pattern1010 (x2,
13350 : E_V8HFmode) != 0)
13351 : return -1;
13352 : x12 = XVECEXP (x10, 0, 0);
13353 : operands[1] = x12;
13354 : if (!nonimmediate_operand (operands[1], E_HFmode))
13355 : return -1;
13356 : x5 = XEXP (x3, 1);
13357 : operands[3] = x5;
13358 : if (!nonimm_or_0_operand (operands[3], E_V8HFmode))
13359 : return -1;
13360 : x7 = XEXP (x3, 2);
13361 : operands[4] = x7;
13362 : if (!register_operand (operands[4], E_QImode))
13363 : return -1;
13364 : x8 = XEXP (x2, 1);
13365 : operands[2] = x8;
13366 : if (!register_operand (operands[2], E_V8HFmode)
13367 : || !(
13368 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13369 : (TARGET_AVX512F) &&
13370 : #line 3303 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13371 : (TARGET_AVX512FP16)))
13372 : return -1;
13373 : return 3050; /* *avx512fp16_vmrsqrtv8hf2 */
13374 :
13375 : case FLOAT_EXTEND:
13376 : x6 = XEXP (x2, 2);
13377 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
13378 : return -1;
13379 : x5 = XEXP (x3, 1);
13380 : operands[3] = x5;
13381 : x7 = XEXP (x3, 2);
13382 : operands[4] = x7;
13383 : if (!register_operand (operands[4], E_QImode))
13384 : return -1;
13385 : x8 = XEXP (x2, 1);
13386 : operands[2] = x8;
13387 : x11 = XEXP (x10, 0);
13388 : switch (GET_CODE (x11))
13389 : {
13390 : case VEC_SELECT:
13391 : if (GET_MODE (x11) != E_HFmode)
13392 : return -1;
13393 : x13 = XEXP (x11, 1);
13394 : if (GET_CODE (x13) != PARALLEL
13395 : || XVECLEN (x13, 0) != 1)
13396 : return -1;
13397 : x14 = XVECEXP (x13, 0, 0);
13398 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
13399 : return -1;
13400 : x15 = XEXP (x11, 0);
13401 : operands[1] = x15;
13402 : if (!register_operand (operands[1], E_V8HFmode))
13403 : return -1;
13404 : switch (GET_MODE (operands[0]))
13405 : {
13406 : case E_V2DFmode:
13407 : if (pattern1469 (x2,
13408 : E_V2DFmode,
13409 : E_DFmode) != 0
13410 : || !(
13411 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13412 : (TARGET_AVX512F) &&
13413 : #line 8689 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13414 : (TARGET_AVX512FP16)))
13415 : return -1;
13416 : return 4808; /* avx512fp16_vcvtsh2sd_mask */
13417 :
13418 : case E_V4SFmode:
13419 : if (pattern1469 (x2,
13420 : E_V4SFmode,
13421 : E_SFmode) != 0
13422 : || !(
13423 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13424 : (TARGET_AVX512F) &&
13425 : #line 8689 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13426 : (TARGET_AVX512FP16)))
13427 : return -1;
13428 : return 4812; /* avx512fp16_vcvtsh2ss_mask */
13429 :
13430 : default:
13431 : return -1;
13432 : }
13433 :
13434 : case SUBREG:
13435 : case MEM:
13436 : operands[1] = x11;
13437 : if (!memory_operand (operands[1], E_HFmode))
13438 : return -1;
13439 : switch (GET_MODE (operands[0]))
13440 : {
13441 : case E_V2DFmode:
13442 : if (pattern1469 (x2,
13443 : E_V2DFmode,
13444 : E_DFmode) != 0
13445 : || !(
13446 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13447 : (TARGET_AVX512F) &&
13448 : #line 8703 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13449 : (TARGET_AVX512FP16)))
13450 : return -1;
13451 : return 4816; /* avx512fp16_vcvtsh2sd_mask_mem */
13452 :
13453 : case E_V4SFmode:
13454 : if (pattern1469 (x2,
13455 : E_V4SFmode,
13456 : E_SFmode) != 0
13457 : || !(
13458 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13459 : (TARGET_AVX512F) &&
13460 : #line 8703 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13461 : (TARGET_AVX512FP16)))
13462 : return -1;
13463 : return 4818; /* avx512fp16_vcvtsh2ss_mask_mem */
13464 :
13465 : default:
13466 : return -1;
13467 : }
13468 :
13469 : default:
13470 : return -1;
13471 : }
13472 :
13473 : case FLOAT_TRUNCATE:
13474 : x11 = XEXP (x10, 0);
13475 : switch (GET_CODE (x11))
13476 : {
13477 : case VEC_SELECT:
13478 : x13 = XEXP (x11, 1);
13479 : if (GET_CODE (x13) != PARALLEL
13480 : || XVECLEN (x13, 0) != 1)
13481 : return -1;
13482 : x14 = XVECEXP (x13, 0, 0);
13483 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
13484 : return -1;
13485 : x6 = XEXP (x2, 2);
13486 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
13487 : || pattern896 (x2,
13488 : E_HFmode,
13489 : E_V8HFmode) != 0)
13490 : return -1;
13491 : x15 = XEXP (x11, 0);
13492 : operands[1] = x15;
13493 : x5 = XEXP (x3, 1);
13494 : operands[3] = x5;
13495 : if (!nonimm_or_0_operand (operands[3], E_V8HFmode))
13496 : return -1;
13497 : x7 = XEXP (x3, 2);
13498 : operands[4] = x7;
13499 : if (!register_operand (operands[4], E_QImode))
13500 : return -1;
13501 : x8 = XEXP (x2, 1);
13502 : operands[2] = x8;
13503 : if (!register_operand (operands[2], E_V8HFmode))
13504 : return -1;
13505 : switch (GET_MODE (x11))
13506 : {
13507 : case E_DFmode:
13508 : if (!register_operand (operands[1], E_V2DFmode)
13509 : || !(
13510 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13511 : (TARGET_AVX512F) &&
13512 : #line 8719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13513 : (TARGET_AVX512FP16)))
13514 : return -1;
13515 : return 4821; /* avx512fp16_vcvtsd2sh_mask */
13516 :
13517 : case E_SFmode:
13518 : if (!register_operand (operands[1], E_V4SFmode)
13519 : || !(
13520 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13521 : (TARGET_AVX512F) &&
13522 : #line 8719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13523 : (TARGET_AVX512FP16)))
13524 : return -1;
13525 : return 4825; /* avx512fp16_vcvtss2sh_mask */
13526 :
13527 : default:
13528 : return -1;
13529 : }
13530 :
13531 : case REG:
13532 : case SUBREG:
13533 : case MEM:
13534 : x7 = XEXP (x3, 2);
13535 : switch (GET_CODE (x7))
13536 : {
13537 : case REG:
13538 : case SUBREG:
13539 : operands[4] = x7;
13540 : if (!register_operand (operands[4], E_QImode))
13541 : return -1;
13542 : x6 = XEXP (x2, 2);
13543 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
13544 : || pattern896 (x2,
13545 : E_HFmode,
13546 : E_V8HFmode) != 0)
13547 : return -1;
13548 : operands[1] = x11;
13549 : x5 = XEXP (x3, 1);
13550 : operands[3] = x5;
13551 : if (!nonimm_or_0_operand (operands[3], E_V8HFmode))
13552 : return -1;
13553 : x8 = XEXP (x2, 1);
13554 : operands[2] = x8;
13555 : if (!register_operand (operands[2], E_V8HFmode))
13556 : return -1;
13557 : switch (GET_MODE (operands[1]))
13558 : {
13559 : case E_SFmode:
13560 : if (!memory_operand (operands[1], E_SFmode)
13561 : || !(
13562 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13563 : (TARGET_AVX512F) &&
13564 : #line 8733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13565 : (TARGET_AVX512FP16)))
13566 : return -1;
13567 : return 4828; /* avx512fp16_vcvtss2sh_mask_mem */
13568 :
13569 : case E_DFmode:
13570 : if (!memory_operand (operands[1], E_DFmode)
13571 : || !(
13572 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13573 : (TARGET_AVX512F) &&
13574 : #line 8733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13575 : (TARGET_AVX512FP16)))
13576 : return -1;
13577 : return 4830; /* avx512fp16_vcvtsd2sh_mask_mem */
13578 :
13579 : default:
13580 : return -1;
13581 : }
13582 :
13583 : case CONST_INT:
13584 : if (XWINT (x7, 0) != 1L
13585 : || pattern896 (x2,
13586 : E_V2SFmode,
13587 : E_V4SFmode) != 0
13588 : || pattern1380 (x2,
13589 : E_V4SFmode,
13590 : E_V2DFmode) != 0
13591 : || !(
13592 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13593 : (TARGET_AVX512F) &&
13594 : #line 10392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13595 : (TARGET_SSE2)))
13596 : return -1;
13597 : return 5189; /* sse2_cvtsd2ss_mask */
13598 :
13599 : default:
13600 : return -1;
13601 : }
13602 :
13603 : default:
13604 : return -1;
13605 : }
13606 :
13607 : default:
13608 : return -1;
13609 : }
13610 :
13611 : case PLUS:
13612 : switch (pattern311 (x2))
13613 : {
13614 : case 0:
13615 : if (!(
13616 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13617 : (TARGET_AVX512F) && (
13618 : #line 2750 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13619 : (TARGET_SSE) &&
13620 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13621 : (TARGET_AVX512FP16))))
13622 : return -1;
13623 : return 2832; /* avx512fp16_vmaddv8hf3_mask */
13624 :
13625 : case 1:
13626 : if (!(
13627 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13628 : (TARGET_AVX512F) &&
13629 : #line 2750 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13630 : (TARGET_SSE)))
13631 : return -1;
13632 : return 2840; /* sse_vmaddv4sf3_mask */
13633 :
13634 : case 2:
13635 : if (!(
13636 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13637 : (TARGET_AVX512F) && (
13638 : #line 2750 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13639 : (TARGET_SSE) &&
13640 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13641 : (TARGET_SSE2))))
13642 : return -1;
13643 : return 2848; /* sse2_vmaddv2df3_mask */
13644 :
13645 : default:
13646 : return -1;
13647 : }
13648 :
13649 : case MINUS:
13650 : switch (pattern311 (x2))
13651 : {
13652 : case 0:
13653 : if (!(
13654 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13655 : (TARGET_AVX512F) && (
13656 : #line 2750 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13657 : (TARGET_SSE) &&
13658 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13659 : (TARGET_AVX512FP16))))
13660 : return -1;
13661 : return 2836; /* avx512fp16_vmsubv8hf3_mask */
13662 :
13663 : case 1:
13664 : if (!(
13665 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13666 : (TARGET_AVX512F) &&
13667 : #line 2750 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13668 : (TARGET_SSE)))
13669 : return -1;
13670 : return 2844; /* sse_vmsubv4sf3_mask */
13671 :
13672 : case 2:
13673 : if (!(
13674 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13675 : (TARGET_AVX512F) && (
13676 : #line 2750 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13677 : (TARGET_SSE) &&
13678 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13679 : (TARGET_SSE2))))
13680 : return -1;
13681 : return 2852; /* sse2_vmsubv2df3_mask */
13682 :
13683 : default:
13684 : return -1;
13685 : }
13686 :
13687 : case MULT:
13688 : switch (pattern311 (x2))
13689 : {
13690 : case 0:
13691 : if (!(
13692 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13693 : (TARGET_AVX512F) && (
13694 : #line 2841 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13695 : (TARGET_SSE) &&
13696 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13697 : (TARGET_AVX512FP16))))
13698 : return -1;
13699 : return 2898; /* avx512fp16_vmmulv8hf3_mask */
13700 :
13701 : case 1:
13702 : if (!(
13703 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13704 : (TARGET_AVX512F) &&
13705 : #line 2841 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13706 : (TARGET_SSE)))
13707 : return -1;
13708 : return 2906; /* sse_vmmulv4sf3_mask */
13709 :
13710 : case 2:
13711 : if (!(
13712 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13713 : (TARGET_AVX512F) && (
13714 : #line 2841 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13715 : (TARGET_SSE) &&
13716 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13717 : (TARGET_SSE2))))
13718 : return -1;
13719 : return 2914; /* sse2_vmmulv2df3_mask */
13720 :
13721 : default:
13722 : return -1;
13723 : }
13724 :
13725 : case DIV:
13726 : switch (pattern311 (x2))
13727 : {
13728 : case 0:
13729 : if (!(
13730 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13731 : (TARGET_AVX512F) && (
13732 : #line 2841 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13733 : (TARGET_SSE) &&
13734 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13735 : (TARGET_AVX512FP16))))
13736 : return -1;
13737 : return 2902; /* avx512fp16_vmdivv8hf3_mask */
13738 :
13739 : case 1:
13740 : if (!(
13741 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13742 : (TARGET_AVX512F) &&
13743 : #line 2841 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13744 : (TARGET_SSE)))
13745 : return -1;
13746 : return 2910; /* sse_vmdivv4sf3_mask */
13747 :
13748 : case 2:
13749 : if (!(
13750 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13751 : (TARGET_AVX512F) && (
13752 : #line 2841 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13753 : (TARGET_SSE) &&
13754 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13755 : (TARGET_SSE2))))
13756 : return -1;
13757 : return 2918; /* sse2_vmdivv2df3_mask */
13758 :
13759 : default:
13760 : return -1;
13761 : }
13762 :
13763 : case UNSPEC:
13764 : return recog_151 (x1, insn, pnum_clobbers);
13765 :
13766 : case SQRT:
13767 : x6 = XEXP (x2, 2);
13768 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
13769 : return -1;
13770 : x10 = XEXP (x4, 0);
13771 : operands[1] = x10;
13772 : x5 = XEXP (x3, 1);
13773 : operands[3] = x5;
13774 : x7 = XEXP (x3, 2);
13775 : operands[4] = x7;
13776 : if (!register_operand (operands[4], E_QImode))
13777 : return -1;
13778 : x8 = XEXP (x2, 1);
13779 : operands[2] = x8;
13780 : switch (GET_MODE (operands[0]))
13781 : {
13782 : case E_V8HFmode:
13783 : if (pattern1225 (x2,
13784 : E_V8HFmode) != 0
13785 : || !(
13786 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13787 : (TARGET_AVX512F) && (
13788 : #line 3130 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13789 : (TARGET_SSE) &&
13790 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13791 : (TARGET_AVX512FP16))))
13792 : return -1;
13793 : return 2999; /* avx512fp16_vmsqrtv8hf2_mask */
13794 :
13795 : case E_V4SFmode:
13796 : if (pattern1225 (x2,
13797 : E_V4SFmode) != 0
13798 : || !(
13799 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13800 : (TARGET_AVX512F) &&
13801 : #line 3130 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13802 : (TARGET_SSE)))
13803 : return -1;
13804 : return 3003; /* sse_vmsqrtv4sf2_mask */
13805 :
13806 : case E_V2DFmode:
13807 : if (pattern1225 (x2,
13808 : E_V2DFmode) != 0
13809 : || !(
13810 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13811 : (TARGET_AVX512F) && (
13812 : #line 3130 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13813 : (TARGET_SSE) &&
13814 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13815 : (TARGET_SSE2))))
13816 : return -1;
13817 : return 3007; /* sse2_vmsqrtv2df2_mask */
13818 :
13819 : default:
13820 : return -1;
13821 : }
13822 :
13823 : case SMAX:
13824 : switch (pattern311 (x2))
13825 : {
13826 : case 0:
13827 : if (!(
13828 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13829 : (TARGET_AVX512F) && (
13830 : #line 3568 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13831 : (TARGET_SSE) &&
13832 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13833 : (TARGET_AVX512FP16))))
13834 : return -1;
13835 : return 3175; /* *avx512fp16_vmsmaxv8hf3_mask */
13836 :
13837 : case 1:
13838 : if (!(
13839 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13840 : (TARGET_AVX512F) &&
13841 : #line 3568 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13842 : (TARGET_SSE)))
13843 : return -1;
13844 : return 3183; /* *sse_vmsmaxv4sf3_mask */
13845 :
13846 : case 2:
13847 : if (!(
13848 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13849 : (TARGET_AVX512F) && (
13850 : #line 3568 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13851 : (TARGET_SSE) &&
13852 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13853 : (TARGET_SSE2))))
13854 : return -1;
13855 : return 3191; /* *sse2_vmsmaxv2df3_mask */
13856 :
13857 : default:
13858 : return -1;
13859 : }
13860 :
13861 : case SMIN:
13862 : switch (pattern311 (x2))
13863 : {
13864 : case 0:
13865 : if (!(
13866 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13867 : (TARGET_AVX512F) && (
13868 : #line 3568 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13869 : (TARGET_SSE) &&
13870 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13871 : (TARGET_AVX512FP16))))
13872 : return -1;
13873 : return 3179; /* *avx512fp16_vmsminv8hf3_mask */
13874 :
13875 : case 1:
13876 : if (!(
13877 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13878 : (TARGET_AVX512F) &&
13879 : #line 3568 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13880 : (TARGET_SSE)))
13881 : return -1;
13882 : return 3187; /* *sse_vmsminv4sf3_mask */
13883 :
13884 : case 2:
13885 : if (!(
13886 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13887 : (TARGET_AVX512F) && (
13888 : #line 3568 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13889 : (TARGET_SSE) &&
13890 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13891 : (TARGET_SSE2))))
13892 : return -1;
13893 : return 3195; /* *sse2_vmsminv2df3_mask */
13894 :
13895 : default:
13896 : return -1;
13897 : }
13898 :
13899 : case FMA:
13900 : return recog_150 (x1, insn, pnum_clobbers);
13901 :
13902 : case FLOAT_EXTEND:
13903 : if (pattern312 (x4,
13904 : 1,
13905 : E_V2SFmode,
13906 : E_V2DFmode) != 0)
13907 : return -1;
13908 : x7 = XEXP (x3, 2);
13909 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
13910 : || !register_operand (operands[0], E_V2DFmode)
13911 : || GET_MODE (x2) != E_V2DFmode
13912 : || GET_MODE (x3) != E_V2DFmode
13913 : || pattern1380 (x2,
13914 : E_V2DFmode,
13915 : E_V4SFmode) != 0
13916 : || !(
13917 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13918 : (TARGET_AVX512F) &&
13919 : #line 10436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13920 : (TARGET_SSE2)))
13921 : return -1;
13922 : return 5194; /* sse2_cvtss2sd_mask */
13923 :
13924 : default:
13925 : return -1;
13926 : }
13927 : }
13928 :
13929 : int
13930 : recog_201 (rtx x1 ATTRIBUTE_UNUSED,
13931 : rtx_insn *insn ATTRIBUTE_UNUSED,
13932 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13933 : {
13934 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13935 : rtx x2;
13936 : int res ATTRIBUTE_UNUSED;
13937 : x2 = XEXP (x1, 1);
13938 : switch (pattern139 (x2))
13939 : {
13940 : case 0:
13941 : if (!(
13942 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13943 : (TARGET_AVX512F) && (
13944 : #line 3358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13945 : (TARGET_SSE
13946 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13947 : && (64 == 64 || TARGET_AVX512VL)
13948 : && 1) &&
13949 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13950 : (TARGET_AVX512FP16))))
13951 : return -1;
13952 : return 3057; /* *sminv32hf3_mask */
13953 :
13954 : case 1:
13955 : if (!(
13956 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13957 : (TARGET_AVX512F) && (
13958 : #line 3358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13959 : (TARGET_SSE
13960 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13961 : && (32 == 64 || TARGET_AVX512VL)
13962 : && 1) &&
13963 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13964 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
13965 : return -1;
13966 : return 3062; /* *sminv16hf3_mask */
13967 :
13968 : case 2:
13969 : if (!(
13970 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13971 : (TARGET_AVX512F) && (
13972 : #line 3358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13973 : (TARGET_SSE
13974 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13975 : && (16 == 64 || TARGET_AVX512VL)
13976 : && 1) &&
13977 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13978 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
13979 : return -1;
13980 : return 3066; /* *sminv8hf3_mask */
13981 :
13982 : case 3:
13983 : if (!(
13984 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13985 : (TARGET_AVX512F) && (
13986 : #line 3358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13987 : (TARGET_SSE
13988 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13989 : && (64 == 64 || TARGET_AVX512VL)
13990 : && 1) &&
13991 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13992 : (TARGET_AVX512F))))
13993 : return -1;
13994 : return 3073; /* *sminv16sf3_mask */
13995 :
13996 : case 4:
13997 : if (!(
13998 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13999 : (TARGET_AVX512F) && (
14000 : #line 3358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14001 : (TARGET_SSE
14002 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
14003 : && (32 == 64 || TARGET_AVX512VL)
14004 : && 1) &&
14005 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14006 : (TARGET_AVX))))
14007 : return -1;
14008 : return 3078; /* *sminv8sf3_mask */
14009 :
14010 : case 5:
14011 : if (!(
14012 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14013 : (TARGET_AVX512F) &&
14014 : #line 3358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14015 : (TARGET_SSE
14016 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
14017 : && (16 == 64 || TARGET_AVX512VL)
14018 : && 1)))
14019 : return -1;
14020 : return 3082; /* *sminv4sf3_mask */
14021 :
14022 : case 6:
14023 : if (!(
14024 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14025 : (TARGET_AVX512F) && (
14026 : #line 3358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14027 : (TARGET_SSE
14028 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
14029 : && (64 == 64 || TARGET_AVX512VL)
14030 : && 1) &&
14031 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14032 : (TARGET_AVX512F))))
14033 : return -1;
14034 : return 3089; /* *sminv8df3_mask */
14035 :
14036 : case 7:
14037 : if (!(
14038 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14039 : (TARGET_AVX512F) && (
14040 : #line 3358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14041 : (TARGET_SSE
14042 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
14043 : && (32 == 64 || TARGET_AVX512VL)
14044 : && 1) &&
14045 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14046 : (TARGET_AVX))))
14047 : return -1;
14048 : return 3094; /* *sminv4df3_mask */
14049 :
14050 : case 8:
14051 : if (!(
14052 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14053 : (TARGET_AVX512F) && (
14054 : #line 3358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14055 : (TARGET_SSE
14056 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
14057 : && (16 == 64 || TARGET_AVX512VL)
14058 : && 1) &&
14059 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14060 : (TARGET_SSE2))))
14061 : return -1;
14062 : return 3098; /* *sminv2df3_mask */
14063 :
14064 : case 9:
14065 : if (!(
14066 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14067 : (TARGET_AVX512F) &&
14068 : #line 18151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14069 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
14070 : return -1;
14071 : return 7840; /* *avx512f_sminv16si3_mask */
14072 :
14073 : case 10:
14074 : if (!(
14075 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14076 : (TARGET_AVX512F) && (
14077 : #line 18151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14078 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
14079 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14080 : (TARGET_AVX512VL))))
14081 : return -1;
14082 : return 7848; /* *avx512f_sminv8si3_mask */
14083 :
14084 : case 11:
14085 : if (nonimmediate_operand (operands[1], E_V4SImode)
14086 : && nonimmediate_operand (operands[2], E_V4SImode)
14087 : && (
14088 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14089 : (TARGET_AVX512F) && (
14090 : #line 18151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14091 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
14092 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14093 : (TARGET_AVX512VL))))
14094 : return 7856; /* *avx512f_sminv4si3_mask */
14095 : if (!vector_operand (operands[1], E_V4SImode)
14096 : || !vector_operand (operands[2], E_V4SImode)
14097 : || !(
14098 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14099 : (TARGET_AVX512F) &&
14100 : #line 18256 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14101 : (TARGET_SSE4_1
14102 : && (16 == 64 || TARGET_AVX512VL)
14103 : && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
14104 : return -1;
14105 : return 7940; /* *sse4_1_sminv4si3_mask */
14106 :
14107 : case 12:
14108 : if (!(
14109 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14110 : (TARGET_AVX512F) &&
14111 : #line 18151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14112 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
14113 : return -1;
14114 : return 7864; /* *avx512f_sminv8di3_mask */
14115 :
14116 : case 13:
14117 : if (!(
14118 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14119 : (TARGET_AVX512F) && (
14120 : #line 18151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14121 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
14122 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14123 : (TARGET_AVX512VL))))
14124 : return -1;
14125 : return 7872; /* *avx512f_sminv4di3_mask */
14126 :
14127 : case 14:
14128 : if (!(
14129 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14130 : (TARGET_AVX512F) && (
14131 : #line 18151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14132 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
14133 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14134 : (TARGET_AVX512VL))))
14135 : return -1;
14136 : return 7880; /* *avx512f_sminv2di3_mask */
14137 :
14138 : case 15:
14139 : if (!(
14140 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14141 : (TARGET_AVX512F) &&
14142 : #line 18163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14143 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
14144 : return -1;
14145 : return 7888; /* *avx512bw_sminv64qi3_mask */
14146 :
14147 : case 16:
14148 : if (nonimmediate_operand (operands[1], E_V16QImode)
14149 : && nonimmediate_operand (operands[2], E_V16QImode)
14150 : && (
14151 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14152 : (TARGET_AVX512F) && (
14153 : #line 18163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14154 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
14155 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14156 : (TARGET_AVX512VL))))
14157 : return 7896; /* *avx512bw_sminv16qi3_mask */
14158 : if (!vector_operand (operands[1], E_V16QImode)
14159 : || !vector_operand (operands[2], E_V16QImode)
14160 : || !(
14161 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14162 : (TARGET_AVX512F) &&
14163 : #line 18256 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14164 : (TARGET_SSE4_1
14165 : && (16 == 64 || TARGET_AVX512VL)
14166 : && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
14167 : return -1;
14168 : return 7936; /* *sse4_1_sminv16qi3_mask */
14169 :
14170 : case 17:
14171 : if (!(
14172 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14173 : (TARGET_AVX512F) && (
14174 : #line 18163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14175 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
14176 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14177 : (TARGET_AVX512VL))))
14178 : return -1;
14179 : return 7904; /* *avx512bw_sminv32qi3_mask */
14180 :
14181 : case 18:
14182 : if (!(
14183 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14184 : (TARGET_AVX512F) &&
14185 : #line 18163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14186 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
14187 : return -1;
14188 : return 7912; /* *avx512bw_sminv32hi3_mask */
14189 :
14190 : case 19:
14191 : if (!(
14192 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14193 : (TARGET_AVX512F) && (
14194 : #line 18163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14195 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
14196 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14197 : (TARGET_AVX512VL))))
14198 : return -1;
14199 : return 7920; /* *avx512bw_sminv16hi3_mask */
14200 :
14201 : case 20:
14202 : if (!(
14203 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14204 : (TARGET_AVX512F) && (
14205 : #line 18163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14206 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
14207 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14208 : (TARGET_AVX512VL))))
14209 : return -1;
14210 : return 7928; /* *avx512bw_sminv8hi3_mask */
14211 :
14212 : case 21:
14213 : if (!(
14214 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14215 : (TARGET_AVX512F) &&
14216 : #line 33186 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14217 : (TARGET_AVX10_2)))
14218 : return -1;
14219 : return 10699; /* avx10_2_sminbf16_v32bf_mask */
14220 :
14221 : case 22:
14222 : if (!(
14223 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14224 : (TARGET_AVX512F) &&
14225 : #line 33186 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14226 : (TARGET_AVX10_2)))
14227 : return -1;
14228 : return 10703; /* avx10_2_sminbf16_v16bf_mask */
14229 :
14230 : case 23:
14231 : if (!(
14232 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14233 : (TARGET_AVX512F) &&
14234 : #line 33186 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14235 : (TARGET_AVX10_2)))
14236 : return -1;
14237 : return 10707; /* avx10_2_sminbf16_v8bf_mask */
14238 :
14239 : case 24:
14240 : if (!(
14241 : #line 3568 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14242 : (TARGET_SSE) &&
14243 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14244 : (TARGET_AVX512FP16)))
14245 : return -1;
14246 : return 3178; /* *avx512fp16_vmsminv8hf3 */
14247 :
14248 : case 25:
14249 : if (!
14250 : #line 3568 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14251 : (TARGET_SSE))
14252 : return -1;
14253 : return 3186; /* *sse_vmsminv4sf3 */
14254 :
14255 : case 26:
14256 : if (!(
14257 : #line 3568 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14258 : (TARGET_SSE) &&
14259 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14260 : (TARGET_SSE2)))
14261 : return -1;
14262 : return 3194; /* *sse2_vmsminv2df3 */
14263 :
14264 : default:
14265 : return -1;
14266 : }
14267 : }
14268 :
14269 : int
14270 : recog_213 (rtx x1 ATTRIBUTE_UNUSED,
14271 : rtx_insn *insn ATTRIBUTE_UNUSED,
14272 : int *pnum_clobbers ATTRIBUTE_UNUSED)
14273 : {
14274 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
14275 : rtx x2, x3;
14276 : int res ATTRIBUTE_UNUSED;
14277 : x2 = XEXP (x1, 1);
14278 : x3 = XVECEXP (x2, 0, 0);
14279 : operands[1] = x3;
14280 : switch (GET_MODE (operands[0]))
14281 : {
14282 : case E_V32HFmode:
14283 : if (!register_operand (operands[0], E_V32HFmode)
14284 : || GET_MODE (x2) != E_V32HFmode
14285 : || !vector_operand (operands[1], E_V32HFmode)
14286 : || !(
14287 : #line 14432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14288 : (TARGET_AVX512F) &&
14289 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14290 : (TARGET_AVX512FP16)))
14291 : return -1;
14292 : return 7062; /* avx512bw_getexpv32hf */
14293 :
14294 : case E_V16HFmode:
14295 : if (!register_operand (operands[0], E_V16HFmode)
14296 : || GET_MODE (x2) != E_V16HFmode
14297 : || !vector_operand (operands[1], E_V16HFmode)
14298 : || !(
14299 : #line 14432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14300 : (TARGET_AVX512F) &&
14301 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14302 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
14303 : return -1;
14304 : return 7066; /* avx512vl_getexpv16hf */
14305 :
14306 : case E_V8HFmode:
14307 : if (!register_operand (operands[0], E_V8HFmode)
14308 : || GET_MODE (x2) != E_V8HFmode
14309 : || !vector_operand (operands[1], E_V8HFmode)
14310 : || !(
14311 : #line 14432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14312 : (TARGET_AVX512F) &&
14313 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14314 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
14315 : return -1;
14316 : return 7070; /* avx512fp16_getexpv8hf */
14317 :
14318 : case E_V16SFmode:
14319 : if (!register_operand (operands[0], E_V16SFmode)
14320 : || GET_MODE (x2) != E_V16SFmode
14321 : || !vector_operand (operands[1], E_V16SFmode)
14322 : || !
14323 : #line 14432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14324 : (TARGET_AVX512F))
14325 : return -1;
14326 : return 7074; /* avx512f_getexpv16sf */
14327 :
14328 : case E_V8SFmode:
14329 : if (!register_operand (operands[0], E_V8SFmode)
14330 : || GET_MODE (x2) != E_V8SFmode
14331 : || !vector_operand (operands[1], E_V8SFmode)
14332 : || !(
14333 : #line 14432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14334 : (TARGET_AVX512F) &&
14335 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14336 : (TARGET_AVX512VL)))
14337 : return -1;
14338 : return 7078; /* avx512vl_getexpv8sf */
14339 :
14340 : case E_V4SFmode:
14341 : if (!register_operand (operands[0], E_V4SFmode)
14342 : || GET_MODE (x2) != E_V4SFmode
14343 : || !vector_operand (operands[1], E_V4SFmode)
14344 : || !(
14345 : #line 14432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14346 : (TARGET_AVX512F) &&
14347 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14348 : (TARGET_AVX512VL)))
14349 : return -1;
14350 : return 7082; /* avx512vl_getexpv4sf */
14351 :
14352 : case E_V8DFmode:
14353 : if (!register_operand (operands[0], E_V8DFmode)
14354 : || GET_MODE (x2) != E_V8DFmode
14355 : || !vector_operand (operands[1], E_V8DFmode)
14356 : || !
14357 : #line 14432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14358 : (TARGET_AVX512F))
14359 : return -1;
14360 : return 7086; /* avx512f_getexpv8df */
14361 :
14362 : case E_V4DFmode:
14363 : if (!register_operand (operands[0], E_V4DFmode)
14364 : || GET_MODE (x2) != E_V4DFmode
14365 : || !vector_operand (operands[1], E_V4DFmode)
14366 : || !(
14367 : #line 14432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14368 : (TARGET_AVX512F) &&
14369 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14370 : (TARGET_AVX512VL)))
14371 : return -1;
14372 : return 7090; /* avx512vl_getexpv4df */
14373 :
14374 : case E_V2DFmode:
14375 : if (!register_operand (operands[0], E_V2DFmode)
14376 : || GET_MODE (x2) != E_V2DFmode
14377 : || !vector_operand (operands[1], E_V2DFmode)
14378 : || !(
14379 : #line 14432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14380 : (TARGET_AVX512F) &&
14381 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14382 : (TARGET_AVX512VL)))
14383 : return -1;
14384 : return 7094; /* avx512vl_getexpv2df */
14385 :
14386 : case E_V32BFmode:
14387 : if (!register_operand (operands[0], E_V32BFmode)
14388 : || GET_MODE (x2) != E_V32BFmode
14389 : || !nonimmediate_operand (operands[1], E_V32BFmode)
14390 : || !
14391 : #line 33491 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14392 : (TARGET_AVX10_2))
14393 : return -1;
14394 : return 10798; /* avx10_2_getexpbf16_v32bf */
14395 :
14396 : case E_V16BFmode:
14397 : if (!register_operand (operands[0], E_V16BFmode)
14398 : || GET_MODE (x2) != E_V16BFmode
14399 : || !nonimmediate_operand (operands[1], E_V16BFmode)
14400 : || !
14401 : #line 33491 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14402 : (TARGET_AVX10_2))
14403 : return -1;
14404 : return 10800; /* avx10_2_getexpbf16_v16bf */
14405 :
14406 : case E_V8BFmode:
14407 : if (!register_operand (operands[0], E_V8BFmode)
14408 : || GET_MODE (x2) != E_V8BFmode
14409 : || !nonimmediate_operand (operands[1], E_V8BFmode)
14410 : || !
14411 : #line 33491 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14412 : (TARGET_AVX10_2))
14413 : return -1;
14414 : return 10802; /* avx10_2_getexpbf16_v8bf */
14415 :
14416 : default:
14417 : return -1;
14418 : }
14419 : }
14420 :
14421 : int
14422 : recog_223 (rtx x1 ATTRIBUTE_UNUSED,
14423 : rtx_insn *insn ATTRIBUTE_UNUSED,
14424 : int *pnum_clobbers ATTRIBUTE_UNUSED)
14425 : {
14426 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
14427 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
14428 : int res ATTRIBUTE_UNUSED;
14429 : x2 = XEXP (x1, 1);
14430 : x3 = XVECEXP (x2, 0, 1);
14431 : if (!const_4_or_8_to_11_operand (x3, E_SImode))
14432 : return -1;
14433 : x4 = XVECEXP (x2, 0, 0);
14434 : x5 = XEXP (x4, 0);
14435 : x6 = XVECEXP (x5, 0, 2);
14436 : switch (GET_CODE (x6))
14437 : {
14438 : case REG:
14439 : case SUBREG:
14440 : case MEM:
14441 : operands[3] = x6;
14442 : x7 = XEXP (x4, 1);
14443 : switch (GET_CODE (x7))
14444 : {
14445 : case CONST_INT:
14446 : case CONST_DOUBLE:
14447 : case CONST_VECTOR:
14448 : operands[4] = x7;
14449 : x8 = XEXP (x4, 2);
14450 : operands[5] = x8;
14451 : operands[6] = x3;
14452 : switch (GET_MODE (operands[0]))
14453 : {
14454 : case E_V32HFmode:
14455 : if (pattern1668 (x2,
14456 : E_SImode,
14457 : E_V32HFmode) != 0
14458 : || !(
14459 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14460 : (TARGET_AVX512F) && (
14461 : #line 6825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14462 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V32HFmode == V16SFmode
14463 : || V32HFmode == V8DFmode
14464 : || V32HFmode == V8DImode
14465 : || V32HFmode == V16SImode
14466 : || V32HFmode == V32HFmode)) &&
14467 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14468 : (TARGET_AVX512FP16))))
14469 : return -1;
14470 : return 4143; /* fma_fmaddsub_v32hf_maskz_1_round */
14471 :
14472 : case E_V16SFmode:
14473 : if (pattern1668 (x2,
14474 : E_HImode,
14475 : E_V16SFmode) != 0
14476 : || !(
14477 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14478 : (TARGET_AVX512F) &&
14479 : #line 6825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14480 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V16SFmode == V16SFmode
14481 : || V16SFmode == V8DFmode
14482 : || V16SFmode == V8DImode
14483 : || V16SFmode == V16SImode
14484 : || V16SFmode == V32HFmode))))
14485 : return -1;
14486 : return 4151; /* fma_fmaddsub_v16sf_maskz_1_round */
14487 :
14488 : case E_V8DFmode:
14489 : if (pattern1668 (x2,
14490 : E_QImode,
14491 : E_V8DFmode) != 0
14492 : || !(
14493 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14494 : (TARGET_AVX512F) &&
14495 : #line 6825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14496 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V8DFmode == V16SFmode
14497 : || V8DFmode == V8DFmode
14498 : || V8DFmode == V8DImode
14499 : || V8DFmode == V16SImode
14500 : || V8DFmode == V32HFmode))))
14501 : return -1;
14502 : return 4159; /* fma_fmaddsub_v8df_maskz_1_round */
14503 :
14504 : default:
14505 : return -1;
14506 : }
14507 :
14508 : case REG:
14509 : case SUBREG:
14510 : case MEM:
14511 : x8 = XEXP (x4, 2);
14512 : operands[4] = x8;
14513 : operands[5] = x3;
14514 : switch (GET_MODE (operands[0]))
14515 : {
14516 : case E_V32HFmode:
14517 : if (pattern1603 (x2,
14518 : E_V32HFmode,
14519 : E_SImode) != 0)
14520 : return -1;
14521 : if (register_operand (operands[1], E_V32HFmode)
14522 : && register_operand (operands[3], E_V32HFmode)
14523 : && rtx_equal_p (x7, operands[1])
14524 : && (
14525 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14526 : (TARGET_AVX512F) && (
14527 : #line 6844 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14528 : (TARGET_AVX512F) &&
14529 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14530 : (TARGET_AVX512FP16))))
14531 : return 4165; /* avx512bw_fmaddsub_v32hf_mask_round */
14532 : if (!nonimmediate_operand (operands[1], E_V32HFmode)
14533 : || !nonimmediate_operand (operands[3], E_V32HFmode)
14534 : || !rtx_equal_p (x7, operands[3])
14535 : || !(
14536 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14537 : (TARGET_AVX512F) && (
14538 : #line 6862 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14539 : (TARGET_AVX512F) &&
14540 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14541 : (TARGET_AVX512FP16))))
14542 : return -1;
14543 : return 4183; /* avx512bw_fmaddsub_v32hf_mask3_round */
14544 :
14545 : case E_V16HFmode:
14546 : if (pattern1603 (x2,
14547 : E_V16HFmode,
14548 : E_HImode) != 0)
14549 : return -1;
14550 : if (register_operand (operands[1], E_V16HFmode)
14551 : && register_operand (operands[3], E_V16HFmode)
14552 : && rtx_equal_p (x7, operands[1])
14553 : && (
14554 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14555 : (TARGET_AVX512F) && (
14556 : #line 6844 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14557 : (TARGET_AVX512F) &&
14558 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14559 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14560 : return 4167; /* avx512vl_fmaddsub_v16hf_mask_round */
14561 : if (!nonimmediate_operand (operands[1], E_V16HFmode)
14562 : || !nonimmediate_operand (operands[3], E_V16HFmode)
14563 : || !rtx_equal_p (x7, operands[3])
14564 : || !(
14565 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14566 : (TARGET_AVX512F) && (
14567 : #line 6862 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14568 : (TARGET_AVX512F) &&
14569 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14570 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14571 : return -1;
14572 : return 4185; /* avx512vl_fmaddsub_v16hf_mask3_round */
14573 :
14574 : case E_V8HFmode:
14575 : if (pattern1603 (x2,
14576 : E_V8HFmode,
14577 : E_QImode) != 0)
14578 : return -1;
14579 : if (register_operand (operands[1], E_V8HFmode)
14580 : && register_operand (operands[3], E_V8HFmode)
14581 : && rtx_equal_p (x7, operands[1])
14582 : && (
14583 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14584 : (TARGET_AVX512F) && (
14585 : #line 6844 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14586 : (TARGET_AVX512F) &&
14587 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14588 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14589 : return 4169; /* avx512fp16_fmaddsub_v8hf_mask_round */
14590 : if (!nonimmediate_operand (operands[1], E_V8HFmode)
14591 : || !nonimmediate_operand (operands[3], E_V8HFmode)
14592 : || !rtx_equal_p (x7, operands[3])
14593 : || !(
14594 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14595 : (TARGET_AVX512F) && (
14596 : #line 6862 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14597 : (TARGET_AVX512F) &&
14598 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14599 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14600 : return -1;
14601 : return 4187; /* avx512fp16_fmaddsub_v8hf_mask3_round */
14602 :
14603 : case E_V16SFmode:
14604 : if (pattern1603 (x2,
14605 : E_V16SFmode,
14606 : E_HImode) != 0)
14607 : return -1;
14608 : if (register_operand (operands[1], E_V16SFmode)
14609 : && register_operand (operands[3], E_V16SFmode)
14610 : && rtx_equal_p (x7, operands[1])
14611 : &&
14612 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14613 : (TARGET_AVX512F))
14614 : return 4171; /* avx512f_fmaddsub_v16sf_mask_round */
14615 : if (!nonimmediate_operand (operands[1], E_V16SFmode)
14616 : || !nonimmediate_operand (operands[3], E_V16SFmode)
14617 : || !rtx_equal_p (x7, operands[3])
14618 : || !
14619 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14620 : (TARGET_AVX512F))
14621 : return -1;
14622 : return 4189; /* avx512f_fmaddsub_v16sf_mask3_round */
14623 :
14624 : case E_V8SFmode:
14625 : if (pattern1603 (x2,
14626 : E_V8SFmode,
14627 : E_QImode) != 0)
14628 : return -1;
14629 : if (register_operand (operands[1], E_V8SFmode)
14630 : && register_operand (operands[3], E_V8SFmode)
14631 : && rtx_equal_p (x7, operands[1])
14632 : && (
14633 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14634 : (TARGET_AVX512F) && (
14635 : #line 6844 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14636 : (TARGET_AVX512F) &&
14637 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14638 : (TARGET_AVX512VL))))
14639 : return 4173; /* avx512vl_fmaddsub_v8sf_mask_round */
14640 : if (!nonimmediate_operand (operands[1], E_V8SFmode)
14641 : || !nonimmediate_operand (operands[3], E_V8SFmode)
14642 : || !rtx_equal_p (x7, operands[3])
14643 : || !(
14644 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14645 : (TARGET_AVX512F) && (
14646 : #line 6862 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14647 : (TARGET_AVX512F) &&
14648 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14649 : (TARGET_AVX512VL))))
14650 : return -1;
14651 : return 4191; /* avx512vl_fmaddsub_v8sf_mask3_round */
14652 :
14653 : case E_V4SFmode:
14654 : if (pattern1603 (x2,
14655 : E_V4SFmode,
14656 : E_QImode) != 0)
14657 : return -1;
14658 : if (register_operand (operands[1], E_V4SFmode)
14659 : && register_operand (operands[3], E_V4SFmode)
14660 : && rtx_equal_p (x7, operands[1])
14661 : && (
14662 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14663 : (TARGET_AVX512F) && (
14664 : #line 6844 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14665 : (TARGET_AVX512F) &&
14666 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14667 : (TARGET_AVX512VL))))
14668 : return 4175; /* avx512vl_fmaddsub_v4sf_mask_round */
14669 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
14670 : || !nonimmediate_operand (operands[3], E_V4SFmode)
14671 : || !rtx_equal_p (x7, operands[3])
14672 : || !(
14673 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14674 : (TARGET_AVX512F) && (
14675 : #line 6862 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14676 : (TARGET_AVX512F) &&
14677 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14678 : (TARGET_AVX512VL))))
14679 : return -1;
14680 : return 4193; /* avx512vl_fmaddsub_v4sf_mask3_round */
14681 :
14682 : case E_V8DFmode:
14683 : if (pattern1603 (x2,
14684 : E_V8DFmode,
14685 : E_QImode) != 0)
14686 : return -1;
14687 : if (register_operand (operands[1], E_V8DFmode)
14688 : && register_operand (operands[3], E_V8DFmode)
14689 : && rtx_equal_p (x7, operands[1])
14690 : &&
14691 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14692 : (TARGET_AVX512F))
14693 : return 4177; /* avx512f_fmaddsub_v8df_mask_round */
14694 : if (!nonimmediate_operand (operands[1], E_V8DFmode)
14695 : || !nonimmediate_operand (operands[3], E_V8DFmode)
14696 : || !rtx_equal_p (x7, operands[3])
14697 : || !
14698 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14699 : (TARGET_AVX512F))
14700 : return -1;
14701 : return 4195; /* avx512f_fmaddsub_v8df_mask3_round */
14702 :
14703 : case E_V4DFmode:
14704 : if (pattern1603 (x2,
14705 : E_V4DFmode,
14706 : E_QImode) != 0)
14707 : return -1;
14708 : if (register_operand (operands[1], E_V4DFmode)
14709 : && register_operand (operands[3], E_V4DFmode)
14710 : && rtx_equal_p (x7, operands[1])
14711 : && (
14712 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14713 : (TARGET_AVX512F) && (
14714 : #line 6844 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14715 : (TARGET_AVX512F) &&
14716 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14717 : (TARGET_AVX512VL))))
14718 : return 4179; /* avx512vl_fmaddsub_v4df_mask_round */
14719 : if (!nonimmediate_operand (operands[1], E_V4DFmode)
14720 : || !nonimmediate_operand (operands[3], E_V4DFmode)
14721 : || !rtx_equal_p (x7, operands[3])
14722 : || !(
14723 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14724 : (TARGET_AVX512F) && (
14725 : #line 6862 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14726 : (TARGET_AVX512F) &&
14727 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14728 : (TARGET_AVX512VL))))
14729 : return -1;
14730 : return 4197; /* avx512vl_fmaddsub_v4df_mask3_round */
14731 :
14732 : case E_V2DFmode:
14733 : if (pattern1603 (x2,
14734 : E_V2DFmode,
14735 : E_QImode) != 0)
14736 : return -1;
14737 : if (register_operand (operands[1], E_V2DFmode)
14738 : && register_operand (operands[3], E_V2DFmode)
14739 : && rtx_equal_p (x7, operands[1])
14740 : && (
14741 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14742 : (TARGET_AVX512F) && (
14743 : #line 6844 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14744 : (TARGET_AVX512F) &&
14745 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14746 : (TARGET_AVX512VL))))
14747 : return 4181; /* avx512vl_fmaddsub_v2df_mask_round */
14748 : if (!nonimmediate_operand (operands[1], E_V2DFmode)
14749 : || !nonimmediate_operand (operands[3], E_V2DFmode)
14750 : || !rtx_equal_p (x7, operands[3])
14751 : || !(
14752 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14753 : (TARGET_AVX512F) && (
14754 : #line 6862 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14755 : (TARGET_AVX512F) &&
14756 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14757 : (TARGET_AVX512VL))))
14758 : return -1;
14759 : return 4199; /* avx512vl_fmaddsub_v2df_mask3_round */
14760 :
14761 : default:
14762 : return -1;
14763 : }
14764 :
14765 : default:
14766 : return -1;
14767 : }
14768 :
14769 : case NEG:
14770 : x9 = XEXP (x6, 0);
14771 : operands[3] = x9;
14772 : x7 = XEXP (x4, 1);
14773 : switch (GET_CODE (x7))
14774 : {
14775 : case CONST_INT:
14776 : case CONST_DOUBLE:
14777 : case CONST_VECTOR:
14778 : operands[4] = x7;
14779 : x8 = XEXP (x4, 2);
14780 : operands[5] = x8;
14781 : operands[6] = x3;
14782 : switch (GET_MODE (operands[0]))
14783 : {
14784 : case E_V32HFmode:
14785 : if (pattern1669 (x2,
14786 : E_SImode,
14787 : E_V32HFmode) != 0
14788 : || !(
14789 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14790 : (TARGET_AVX512F) && (
14791 : #line 6895 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14792 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V32HFmode == V16SFmode
14793 : || V32HFmode == V8DFmode
14794 : || V32HFmode == V8DImode
14795 : || V32HFmode == V16SImode
14796 : || V32HFmode == V32HFmode)) &&
14797 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14798 : (TARGET_AVX512FP16))))
14799 : return -1;
14800 : return 4207; /* fma_fmsubadd_v32hf_maskz_1_round */
14801 :
14802 : case E_V16SFmode:
14803 : if (pattern1669 (x2,
14804 : E_HImode,
14805 : E_V16SFmode) != 0
14806 : || !(
14807 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14808 : (TARGET_AVX512F) &&
14809 : #line 6895 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14810 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V16SFmode == V16SFmode
14811 : || V16SFmode == V8DFmode
14812 : || V16SFmode == V8DImode
14813 : || V16SFmode == V16SImode
14814 : || V16SFmode == V32HFmode))))
14815 : return -1;
14816 : return 4215; /* fma_fmsubadd_v16sf_maskz_1_round */
14817 :
14818 : case E_V8DFmode:
14819 : if (pattern1669 (x2,
14820 : E_QImode,
14821 : E_V8DFmode) != 0
14822 : || !(
14823 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14824 : (TARGET_AVX512F) &&
14825 : #line 6895 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14826 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V8DFmode == V16SFmode
14827 : || V8DFmode == V8DFmode
14828 : || V8DFmode == V8DImode
14829 : || V8DFmode == V16SImode
14830 : || V8DFmode == V32HFmode))))
14831 : return -1;
14832 : return 4223; /* fma_fmsubadd_v8df_maskz_1_round */
14833 :
14834 : default:
14835 : return -1;
14836 : }
14837 :
14838 : case REG:
14839 : case SUBREG:
14840 : case MEM:
14841 : x8 = XEXP (x4, 2);
14842 : operands[4] = x8;
14843 : operands[5] = x3;
14844 : switch (GET_MODE (operands[0]))
14845 : {
14846 : case E_V32HFmode:
14847 : if (pattern1604 (x2,
14848 : E_V32HFmode,
14849 : E_SImode) != 0)
14850 : return -1;
14851 : if (register_operand (operands[3], E_V32HFmode)
14852 : && rtx_equal_p (x7, operands[1])
14853 : && (
14854 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14855 : (TARGET_AVX512F) && (
14856 : #line 6915 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14857 : (TARGET_AVX512F) &&
14858 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14859 : (TARGET_AVX512FP16))))
14860 : return 4229; /* avx512bw_fmsubadd_v32hf_mask_round */
14861 : if (!nonimmediate_operand (operands[3], E_V32HFmode)
14862 : || !rtx_equal_p (x7, operands[3])
14863 : || !(
14864 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14865 : (TARGET_AVX512F) && (
14866 : #line 6934 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14867 : (TARGET_AVX512F) &&
14868 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14869 : (TARGET_AVX512FP16))))
14870 : return -1;
14871 : return 4247; /* avx512bw_fmsubadd_v32hf_mask3_round */
14872 :
14873 : case E_V16HFmode:
14874 : if (pattern1604 (x2,
14875 : E_V16HFmode,
14876 : E_HImode) != 0)
14877 : return -1;
14878 : if (register_operand (operands[3], E_V16HFmode)
14879 : && rtx_equal_p (x7, operands[1])
14880 : && (
14881 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14882 : (TARGET_AVX512F) && (
14883 : #line 6915 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14884 : (TARGET_AVX512F) &&
14885 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14886 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14887 : return 4231; /* avx512vl_fmsubadd_v16hf_mask_round */
14888 : if (!nonimmediate_operand (operands[3], E_V16HFmode)
14889 : || !rtx_equal_p (x7, operands[3])
14890 : || !(
14891 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14892 : (TARGET_AVX512F) && (
14893 : #line 6934 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14894 : (TARGET_AVX512F) &&
14895 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14896 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14897 : return -1;
14898 : return 4249; /* avx512vl_fmsubadd_v16hf_mask3_round */
14899 :
14900 : case E_V8HFmode:
14901 : if (pattern1604 (x2,
14902 : E_V8HFmode,
14903 : E_QImode) != 0)
14904 : return -1;
14905 : if (register_operand (operands[3], E_V8HFmode)
14906 : && rtx_equal_p (x7, operands[1])
14907 : && (
14908 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14909 : (TARGET_AVX512F) && (
14910 : #line 6915 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14911 : (TARGET_AVX512F) &&
14912 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14913 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14914 : return 4233; /* avx512fp16_fmsubadd_v8hf_mask_round */
14915 : if (!nonimmediate_operand (operands[3], E_V8HFmode)
14916 : || !rtx_equal_p (x7, operands[3])
14917 : || !(
14918 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14919 : (TARGET_AVX512F) && (
14920 : #line 6934 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14921 : (TARGET_AVX512F) &&
14922 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14923 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14924 : return -1;
14925 : return 4251; /* avx512fp16_fmsubadd_v8hf_mask3_round */
14926 :
14927 : case E_V16SFmode:
14928 : if (pattern1604 (x2,
14929 : E_V16SFmode,
14930 : E_HImode) != 0)
14931 : return -1;
14932 : if (register_operand (operands[3], E_V16SFmode)
14933 : && rtx_equal_p (x7, operands[1])
14934 : &&
14935 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14936 : (TARGET_AVX512F))
14937 : return 4235; /* avx512f_fmsubadd_v16sf_mask_round */
14938 : if (!nonimmediate_operand (operands[3], E_V16SFmode)
14939 : || !rtx_equal_p (x7, operands[3])
14940 : || !
14941 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14942 : (TARGET_AVX512F))
14943 : return -1;
14944 : return 4253; /* avx512f_fmsubadd_v16sf_mask3_round */
14945 :
14946 : case E_V8SFmode:
14947 : if (pattern1604 (x2,
14948 : E_V8SFmode,
14949 : E_QImode) != 0)
14950 : return -1;
14951 : if (register_operand (operands[3], E_V8SFmode)
14952 : && rtx_equal_p (x7, operands[1])
14953 : && (
14954 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14955 : (TARGET_AVX512F) && (
14956 : #line 6915 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14957 : (TARGET_AVX512F) &&
14958 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14959 : (TARGET_AVX512VL))))
14960 : return 4237; /* avx512vl_fmsubadd_v8sf_mask_round */
14961 : if (!nonimmediate_operand (operands[3], E_V8SFmode)
14962 : || !rtx_equal_p (x7, operands[3])
14963 : || !(
14964 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14965 : (TARGET_AVX512F) && (
14966 : #line 6934 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14967 : (TARGET_AVX512F) &&
14968 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14969 : (TARGET_AVX512VL))))
14970 : return -1;
14971 : return 4255; /* avx512vl_fmsubadd_v8sf_mask3_round */
14972 :
14973 : case E_V4SFmode:
14974 : if (pattern1604 (x2,
14975 : E_V4SFmode,
14976 : E_QImode) != 0)
14977 : return -1;
14978 : if (register_operand (operands[3], E_V4SFmode)
14979 : && rtx_equal_p (x7, operands[1])
14980 : && (
14981 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14982 : (TARGET_AVX512F) && (
14983 : #line 6915 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14984 : (TARGET_AVX512F) &&
14985 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14986 : (TARGET_AVX512VL))))
14987 : return 4239; /* avx512vl_fmsubadd_v4sf_mask_round */
14988 : if (!nonimmediate_operand (operands[3], E_V4SFmode)
14989 : || !rtx_equal_p (x7, operands[3])
14990 : || !(
14991 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14992 : (TARGET_AVX512F) && (
14993 : #line 6934 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14994 : (TARGET_AVX512F) &&
14995 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14996 : (TARGET_AVX512VL))))
14997 : return -1;
14998 : return 4257; /* avx512vl_fmsubadd_v4sf_mask3_round */
14999 :
15000 : case E_V8DFmode:
15001 : if (pattern1604 (x2,
15002 : E_V8DFmode,
15003 : E_QImode) != 0)
15004 : return -1;
15005 : if (register_operand (operands[3], E_V8DFmode)
15006 : && rtx_equal_p (x7, operands[1])
15007 : &&
15008 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15009 : (TARGET_AVX512F))
15010 : return 4241; /* avx512f_fmsubadd_v8df_mask_round */
15011 : if (!nonimmediate_operand (operands[3], E_V8DFmode)
15012 : || !rtx_equal_p (x7, operands[3])
15013 : || !
15014 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15015 : (TARGET_AVX512F))
15016 : return -1;
15017 : return 4259; /* avx512f_fmsubadd_v8df_mask3_round */
15018 :
15019 : case E_V4DFmode:
15020 : if (pattern1604 (x2,
15021 : E_V4DFmode,
15022 : E_QImode) != 0)
15023 : return -1;
15024 : if (register_operand (operands[3], E_V4DFmode)
15025 : && rtx_equal_p (x7, operands[1])
15026 : && (
15027 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15028 : (TARGET_AVX512F) && (
15029 : #line 6915 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15030 : (TARGET_AVX512F) &&
15031 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15032 : (TARGET_AVX512VL))))
15033 : return 4243; /* avx512vl_fmsubadd_v4df_mask_round */
15034 : if (!nonimmediate_operand (operands[3], E_V4DFmode)
15035 : || !rtx_equal_p (x7, operands[3])
15036 : || !(
15037 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15038 : (TARGET_AVX512F) && (
15039 : #line 6934 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15040 : (TARGET_AVX512F) &&
15041 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15042 : (TARGET_AVX512VL))))
15043 : return -1;
15044 : return 4261; /* avx512vl_fmsubadd_v4df_mask3_round */
15045 :
15046 : case E_V2DFmode:
15047 : if (pattern1604 (x2,
15048 : E_V2DFmode,
15049 : E_QImode) != 0)
15050 : return -1;
15051 : if (register_operand (operands[3], E_V2DFmode)
15052 : && rtx_equal_p (x7, operands[1])
15053 : && (
15054 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15055 : (TARGET_AVX512F) && (
15056 : #line 6915 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15057 : (TARGET_AVX512F) &&
15058 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15059 : (TARGET_AVX512VL))))
15060 : return 4245; /* avx512vl_fmsubadd_v2df_mask_round */
15061 : if (!nonimmediate_operand (operands[3], E_V2DFmode)
15062 : || !rtx_equal_p (x7, operands[3])
15063 : || !(
15064 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15065 : (TARGET_AVX512F) && (
15066 : #line 6934 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15067 : (TARGET_AVX512F) &&
15068 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15069 : (TARGET_AVX512VL))))
15070 : return -1;
15071 : return 4263; /* avx512vl_fmsubadd_v2df_mask3_round */
15072 :
15073 : default:
15074 : return -1;
15075 : }
15076 :
15077 : default:
15078 : return -1;
15079 : }
15080 :
15081 : default:
15082 : return -1;
15083 : }
15084 : }
15085 :
15086 : int
15087 : recog_236 (rtx x1 ATTRIBUTE_UNUSED,
15088 : rtx_insn *insn ATTRIBUTE_UNUSED,
15089 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15090 : {
15091 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15092 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
15093 : rtx x10;
15094 : int res ATTRIBUTE_UNUSED;
15095 : if (pnum_clobbers == NULL)
15096 : return -1;
15097 : x2 = XEXP (x1, 0);
15098 : if (GET_CODE (x2) != MEM)
15099 : return -1;
15100 : operands[5] = x2;
15101 : x3 = XEXP (x2, 0);
15102 : if (GET_CODE (x3) != UNSPEC
15103 : || XVECLEN (x3, 0) != 4
15104 : || XINT (x3, 1) != 155)
15105 : return -1;
15106 : x4 = XVECEXP (x3, 0, 0);
15107 : operands[0] = x4;
15108 : x5 = XVECEXP (x3, 0, 1);
15109 : operands[2] = x5;
15110 : x6 = XVECEXP (x3, 0, 2);
15111 : operands[4] = x6;
15112 : if (!const1248_operand (operands[4], E_SImode))
15113 : return -1;
15114 : x7 = XVECEXP (x3, 0, 3);
15115 : operands[6] = x7;
15116 : x8 = XEXP (x1, 1);
15117 : x9 = XVECEXP (x8, 0, 1);
15118 : operands[3] = x9;
15119 : x10 = XVECEXP (x8, 0, 0);
15120 : if (!rtx_equal_p (x10, operands[6]))
15121 : return -1;
15122 : switch (GET_MODE (operands[5]))
15123 : {
15124 : case E_V16SImode:
15125 : if (!vsib_mem_operator (operands[5], E_V16SImode)
15126 : || GET_MODE (x8) != E_V16SImode)
15127 : return -1;
15128 : switch (GET_MODE (x3))
15129 : {
15130 : case E_SImode:
15131 : switch (pattern1722 (
15132 : E_SImode))
15133 : {
15134 : case 0:
15135 : if (!(
15136 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15137 : (TARGET_AVX512F) &&
15138 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15139 : (Pmode == SImode)))
15140 : return -1;
15141 : *pnum_clobbers = 1;
15142 : return 9942; /* *avx512f_scattersiv16si */
15143 :
15144 : case 1:
15145 : if (!(
15146 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15147 : (TARGET_AVX512F) &&
15148 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15149 : (Pmode == SImode)))
15150 : return -1;
15151 : *pnum_clobbers = 1;
15152 : return 9966; /* *avx512f_scatterdiv16si */
15153 :
15154 : default:
15155 : return -1;
15156 : }
15157 :
15158 : case E_DImode:
15159 : switch (pattern1722 (
15160 : E_DImode))
15161 : {
15162 : case 0:
15163 : if (!(
15164 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15165 : (TARGET_AVX512F) &&
15166 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15167 : (Pmode == DImode)))
15168 : return -1;
15169 : *pnum_clobbers = 1;
15170 : return 9954; /* *avx512f_scattersiv16si */
15171 :
15172 : case 1:
15173 : if (!(
15174 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15175 : (TARGET_AVX512F) &&
15176 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15177 : (Pmode == DImode)))
15178 : return -1;
15179 : *pnum_clobbers = 1;
15180 : return 9978; /* *avx512f_scatterdiv16si */
15181 :
15182 : default:
15183 : return -1;
15184 : }
15185 :
15186 : default:
15187 : return -1;
15188 : }
15189 :
15190 : case E_V16SFmode:
15191 : if (!vsib_mem_operator (operands[5], E_V16SFmode)
15192 : || GET_MODE (x8) != E_V16SFmode)
15193 : return -1;
15194 : switch (GET_MODE (x3))
15195 : {
15196 : case E_SImode:
15197 : switch (pattern1723 (
15198 : E_SImode))
15199 : {
15200 : case 0:
15201 : if (!(
15202 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15203 : (TARGET_AVX512F) &&
15204 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15205 : (Pmode == SImode)))
15206 : return -1;
15207 : *pnum_clobbers = 1;
15208 : return 9943; /* *avx512f_scattersiv16sf */
15209 :
15210 : case 1:
15211 : if (!(
15212 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15213 : (TARGET_AVX512F) &&
15214 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15215 : (Pmode == SImode)))
15216 : return -1;
15217 : *pnum_clobbers = 1;
15218 : return 9967; /* *avx512f_scatterdiv16sf */
15219 :
15220 : default:
15221 : return -1;
15222 : }
15223 :
15224 : case E_DImode:
15225 : switch (pattern1723 (
15226 : E_DImode))
15227 : {
15228 : case 0:
15229 : if (!(
15230 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15231 : (TARGET_AVX512F) &&
15232 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15233 : (Pmode == DImode)))
15234 : return -1;
15235 : *pnum_clobbers = 1;
15236 : return 9955; /* *avx512f_scattersiv16sf */
15237 :
15238 : case 1:
15239 : if (!(
15240 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15241 : (TARGET_AVX512F) &&
15242 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15243 : (Pmode == DImode)))
15244 : return -1;
15245 : *pnum_clobbers = 1;
15246 : return 9979; /* *avx512f_scatterdiv16sf */
15247 :
15248 : default:
15249 : return -1;
15250 : }
15251 :
15252 : default:
15253 : return -1;
15254 : }
15255 :
15256 : case E_V8DImode:
15257 : switch (pattern1620 (x1,
15258 : E_V8DImode))
15259 : {
15260 : case 0:
15261 : if (!(
15262 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15263 : (TARGET_AVX512F) &&
15264 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15265 : (Pmode == SImode)))
15266 : return -1;
15267 : *pnum_clobbers = 1;
15268 : return 9944; /* *avx512f_scattersiv8di */
15269 :
15270 : case 1:
15271 : if (!(
15272 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15273 : (TARGET_AVX512F) &&
15274 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15275 : (Pmode == SImode)))
15276 : return -1;
15277 : *pnum_clobbers = 1;
15278 : return 9968; /* *avx512f_scatterdiv8di */
15279 :
15280 : case 2:
15281 : if (!(
15282 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15283 : (TARGET_AVX512F) &&
15284 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15285 : (Pmode == DImode)))
15286 : return -1;
15287 : *pnum_clobbers = 1;
15288 : return 9956; /* *avx512f_scattersiv8di */
15289 :
15290 : case 3:
15291 : if (!(
15292 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15293 : (TARGET_AVX512F) &&
15294 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15295 : (Pmode == DImode)))
15296 : return -1;
15297 : *pnum_clobbers = 1;
15298 : return 9980; /* *avx512f_scatterdiv8di */
15299 :
15300 : default:
15301 : return -1;
15302 : }
15303 :
15304 : case E_V8DFmode:
15305 : switch (pattern1620 (x1,
15306 : E_V8DFmode))
15307 : {
15308 : case 0:
15309 : if (!(
15310 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15311 : (TARGET_AVX512F) &&
15312 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15313 : (Pmode == SImode)))
15314 : return -1;
15315 : *pnum_clobbers = 1;
15316 : return 9945; /* *avx512f_scattersiv8df */
15317 :
15318 : case 1:
15319 : if (!(
15320 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15321 : (TARGET_AVX512F) &&
15322 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15323 : (Pmode == SImode)))
15324 : return -1;
15325 : *pnum_clobbers = 1;
15326 : return 9969; /* *avx512f_scatterdiv8df */
15327 :
15328 : case 2:
15329 : if (!(
15330 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15331 : (TARGET_AVX512F) &&
15332 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15333 : (Pmode == DImode)))
15334 : return -1;
15335 : *pnum_clobbers = 1;
15336 : return 9957; /* *avx512f_scattersiv8df */
15337 :
15338 : case 3:
15339 : if (!(
15340 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15341 : (TARGET_AVX512F) &&
15342 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15343 : (Pmode == DImode)))
15344 : return -1;
15345 : *pnum_clobbers = 1;
15346 : return 9981; /* *avx512f_scatterdiv8df */
15347 :
15348 : default:
15349 : return -1;
15350 : }
15351 :
15352 : case E_V8SImode:
15353 : switch (pattern1621 (x1,
15354 : E_V8SImode))
15355 : {
15356 : case 0:
15357 : switch (pattern1761 (
15358 : E_SImode))
15359 : {
15360 : case 0:
15361 : if (!(
15362 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15363 : (TARGET_AVX512F) && ((((
15364 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15365 : (TARGET_AVX512VL) &&
15366 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15367 : (Pmode == SImode)) &&
15368 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15369 : (Pmode == SImode)) &&
15370 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15371 : (TARGET_AVX512VL)) &&
15372 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15373 : (TARGET_AVX512VL))))
15374 : return -1;
15375 : *pnum_clobbers = 1;
15376 : return 9946; /* *avx512f_scattersiv8si */
15377 :
15378 : case 1:
15379 : if (!(
15380 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15381 : (TARGET_AVX512F) && (((
15382 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15383 : (TARGET_AVX512VL) &&
15384 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15385 : (Pmode == SImode)) &&
15386 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15387 : (Pmode == SImode)) &&
15388 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15389 : (TARGET_AVX512VL))))
15390 : return -1;
15391 : *pnum_clobbers = 1;
15392 : return 9970; /* *avx512f_scatterdiv8si */
15393 :
15394 : default:
15395 : return -1;
15396 : }
15397 :
15398 : case 1:
15399 : switch (pattern1761 (
15400 : E_DImode))
15401 : {
15402 : case 0:
15403 : if (!(
15404 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15405 : (TARGET_AVX512F) && ((((
15406 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15407 : (TARGET_AVX512VL) &&
15408 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15409 : (Pmode == DImode)) &&
15410 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15411 : (Pmode == DImode)) &&
15412 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15413 : (TARGET_AVX512VL)) &&
15414 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15415 : (TARGET_AVX512VL))))
15416 : return -1;
15417 : *pnum_clobbers = 1;
15418 : return 9958; /* *avx512f_scattersiv8si */
15419 :
15420 : case 1:
15421 : if (!(
15422 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15423 : (TARGET_AVX512F) && (((
15424 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15425 : (TARGET_AVX512VL) &&
15426 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15427 : (Pmode == DImode)) &&
15428 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15429 : (Pmode == DImode)) &&
15430 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15431 : (TARGET_AVX512VL))))
15432 : return -1;
15433 : *pnum_clobbers = 1;
15434 : return 9982; /* *avx512f_scatterdiv8si */
15435 :
15436 : default:
15437 : return -1;
15438 : }
15439 :
15440 : default:
15441 : return -1;
15442 : }
15443 :
15444 : case E_V8SFmode:
15445 : switch (pattern1621 (x1,
15446 : E_V8SFmode))
15447 : {
15448 : case 0:
15449 : switch (pattern1762 (
15450 : E_SImode))
15451 : {
15452 : case 0:
15453 : if (!(
15454 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15455 : (TARGET_AVX512F) && ((((
15456 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15457 : (TARGET_AVX512VL) &&
15458 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15459 : (Pmode == SImode)) &&
15460 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15461 : (Pmode == SImode)) &&
15462 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15463 : (TARGET_AVX512VL)) &&
15464 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15465 : (TARGET_AVX512VL))))
15466 : return -1;
15467 : *pnum_clobbers = 1;
15468 : return 9947; /* *avx512f_scattersiv8sf */
15469 :
15470 : case 1:
15471 : if (!(
15472 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15473 : (TARGET_AVX512F) && (((
15474 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15475 : (TARGET_AVX512VL) &&
15476 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15477 : (Pmode == SImode)) &&
15478 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15479 : (Pmode == SImode)) &&
15480 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15481 : (TARGET_AVX512VL))))
15482 : return -1;
15483 : *pnum_clobbers = 1;
15484 : return 9971; /* *avx512f_scatterdiv8sf */
15485 :
15486 : default:
15487 : return -1;
15488 : }
15489 :
15490 : case 1:
15491 : switch (pattern1762 (
15492 : E_DImode))
15493 : {
15494 : case 0:
15495 : if (!(
15496 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15497 : (TARGET_AVX512F) && ((((
15498 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15499 : (TARGET_AVX512VL) &&
15500 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15501 : (Pmode == DImode)) &&
15502 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15503 : (Pmode == DImode)) &&
15504 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15505 : (TARGET_AVX512VL)) &&
15506 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15507 : (TARGET_AVX512VL))))
15508 : return -1;
15509 : *pnum_clobbers = 1;
15510 : return 9959; /* *avx512f_scattersiv8sf */
15511 :
15512 : case 1:
15513 : if (!(
15514 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15515 : (TARGET_AVX512F) && (((
15516 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15517 : (TARGET_AVX512VL) &&
15518 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15519 : (Pmode == DImode)) &&
15520 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15521 : (Pmode == DImode)) &&
15522 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15523 : (TARGET_AVX512VL))))
15524 : return -1;
15525 : *pnum_clobbers = 1;
15526 : return 9983; /* *avx512f_scatterdiv8sf */
15527 :
15528 : default:
15529 : return -1;
15530 : }
15531 :
15532 : default:
15533 : return -1;
15534 : }
15535 :
15536 : case E_V4DImode:
15537 : switch (pattern1623 (x1,
15538 : E_V4DImode))
15539 : {
15540 : case 0:
15541 : if (!(
15542 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15543 : (TARGET_AVX512F) && ((((
15544 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15545 : (TARGET_AVX512VL) &&
15546 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15547 : (Pmode == SImode)) &&
15548 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15549 : (Pmode == SImode)) &&
15550 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15551 : (TARGET_AVX512VL)) &&
15552 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15553 : (TARGET_AVX512VL))))
15554 : return -1;
15555 : *pnum_clobbers = 1;
15556 : return 9948; /* *avx512f_scattersiv4di */
15557 :
15558 : case 1:
15559 : if (!(
15560 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15561 : (TARGET_AVX512F) && (((
15562 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15563 : (TARGET_AVX512VL) &&
15564 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15565 : (Pmode == SImode)) &&
15566 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15567 : (Pmode == SImode)) &&
15568 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15569 : (TARGET_AVX512VL))))
15570 : return -1;
15571 : *pnum_clobbers = 1;
15572 : return 9972; /* *avx512f_scatterdiv4di */
15573 :
15574 : case 2:
15575 : if (!(
15576 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15577 : (TARGET_AVX512F) && ((((
15578 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15579 : (TARGET_AVX512VL) &&
15580 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15581 : (Pmode == DImode)) &&
15582 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15583 : (Pmode == DImode)) &&
15584 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15585 : (TARGET_AVX512VL)) &&
15586 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15587 : (TARGET_AVX512VL))))
15588 : return -1;
15589 : *pnum_clobbers = 1;
15590 : return 9960; /* *avx512f_scattersiv4di */
15591 :
15592 : case 3:
15593 : if (!(
15594 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15595 : (TARGET_AVX512F) && (((
15596 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15597 : (TARGET_AVX512VL) &&
15598 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15599 : (Pmode == DImode)) &&
15600 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15601 : (Pmode == DImode)) &&
15602 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15603 : (TARGET_AVX512VL))))
15604 : return -1;
15605 : *pnum_clobbers = 1;
15606 : return 9984; /* *avx512f_scatterdiv4di */
15607 :
15608 : default:
15609 : return -1;
15610 : }
15611 :
15612 : case E_V4DFmode:
15613 : switch (pattern1623 (x1,
15614 : E_V4DFmode))
15615 : {
15616 : case 0:
15617 : if (!(
15618 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15619 : (TARGET_AVX512F) && ((((
15620 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15621 : (TARGET_AVX512VL) &&
15622 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15623 : (Pmode == SImode)) &&
15624 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15625 : (Pmode == SImode)) &&
15626 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15627 : (TARGET_AVX512VL)) &&
15628 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15629 : (TARGET_AVX512VL))))
15630 : return -1;
15631 : *pnum_clobbers = 1;
15632 : return 9949; /* *avx512f_scattersiv4df */
15633 :
15634 : case 1:
15635 : if (!(
15636 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15637 : (TARGET_AVX512F) && (((
15638 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15639 : (TARGET_AVX512VL) &&
15640 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15641 : (Pmode == SImode)) &&
15642 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15643 : (Pmode == SImode)) &&
15644 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15645 : (TARGET_AVX512VL))))
15646 : return -1;
15647 : *pnum_clobbers = 1;
15648 : return 9973; /* *avx512f_scatterdiv4df */
15649 :
15650 : case 2:
15651 : if (!(
15652 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15653 : (TARGET_AVX512F) && ((((
15654 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15655 : (TARGET_AVX512VL) &&
15656 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15657 : (Pmode == DImode)) &&
15658 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15659 : (Pmode == DImode)) &&
15660 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15661 : (TARGET_AVX512VL)) &&
15662 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15663 : (TARGET_AVX512VL))))
15664 : return -1;
15665 : *pnum_clobbers = 1;
15666 : return 9961; /* *avx512f_scattersiv4df */
15667 :
15668 : case 3:
15669 : if (!(
15670 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15671 : (TARGET_AVX512F) && (((
15672 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15673 : (TARGET_AVX512VL) &&
15674 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15675 : (Pmode == DImode)) &&
15676 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15677 : (Pmode == DImode)) &&
15678 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15679 : (TARGET_AVX512VL))))
15680 : return -1;
15681 : *pnum_clobbers = 1;
15682 : return 9985; /* *avx512f_scatterdiv4df */
15683 :
15684 : default:
15685 : return -1;
15686 : }
15687 :
15688 : case E_V4SImode:
15689 : switch (pattern1625 (x1,
15690 : E_V4SImode))
15691 : {
15692 : case 0:
15693 : if (!(
15694 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15695 : (TARGET_AVX512F) && ((((
15696 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15697 : (TARGET_AVX512VL) &&
15698 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15699 : (Pmode == SImode)) &&
15700 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15701 : (Pmode == SImode)) &&
15702 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15703 : (TARGET_AVX512VL)) &&
15704 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15705 : (TARGET_AVX512VL))))
15706 : return -1;
15707 : *pnum_clobbers = 1;
15708 : return 9950; /* *avx512f_scattersiv4si */
15709 :
15710 : case 1:
15711 : if (!(
15712 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15713 : (TARGET_AVX512F) && (((
15714 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15715 : (TARGET_AVX512VL) &&
15716 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15717 : (Pmode == SImode)) &&
15718 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15719 : (Pmode == SImode)) &&
15720 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15721 : (TARGET_AVX512VL))))
15722 : return -1;
15723 : *pnum_clobbers = 1;
15724 : return 9974; /* *avx512f_scatterdiv4si */
15725 :
15726 : case 2:
15727 : if (!(
15728 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15729 : (TARGET_AVX512F) && ((((
15730 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15731 : (TARGET_AVX512VL) &&
15732 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15733 : (Pmode == DImode)) &&
15734 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15735 : (Pmode == DImode)) &&
15736 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15737 : (TARGET_AVX512VL)) &&
15738 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15739 : (TARGET_AVX512VL))))
15740 : return -1;
15741 : *pnum_clobbers = 1;
15742 : return 9962; /* *avx512f_scattersiv4si */
15743 :
15744 : case 3:
15745 : if (!(
15746 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15747 : (TARGET_AVX512F) && (((
15748 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15749 : (TARGET_AVX512VL) &&
15750 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15751 : (Pmode == DImode)) &&
15752 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15753 : (Pmode == DImode)) &&
15754 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15755 : (TARGET_AVX512VL))))
15756 : return -1;
15757 : *pnum_clobbers = 1;
15758 : return 9986; /* *avx512f_scatterdiv4si */
15759 :
15760 : default:
15761 : return -1;
15762 : }
15763 :
15764 : case E_V4SFmode:
15765 : switch (pattern1625 (x1,
15766 : E_V4SFmode))
15767 : {
15768 : case 0:
15769 : if (!(
15770 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15771 : (TARGET_AVX512F) && ((((
15772 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15773 : (TARGET_AVX512VL) &&
15774 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15775 : (Pmode == SImode)) &&
15776 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15777 : (Pmode == SImode)) &&
15778 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15779 : (TARGET_AVX512VL)) &&
15780 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15781 : (TARGET_AVX512VL))))
15782 : return -1;
15783 : *pnum_clobbers = 1;
15784 : return 9951; /* *avx512f_scattersiv4sf */
15785 :
15786 : case 1:
15787 : if (!(
15788 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15789 : (TARGET_AVX512F) && (((
15790 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15791 : (TARGET_AVX512VL) &&
15792 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15793 : (Pmode == SImode)) &&
15794 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15795 : (Pmode == SImode)) &&
15796 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15797 : (TARGET_AVX512VL))))
15798 : return -1;
15799 : *pnum_clobbers = 1;
15800 : return 9975; /* *avx512f_scatterdiv4sf */
15801 :
15802 : case 2:
15803 : if (!(
15804 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15805 : (TARGET_AVX512F) && ((((
15806 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15807 : (TARGET_AVX512VL) &&
15808 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15809 : (Pmode == DImode)) &&
15810 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15811 : (Pmode == DImode)) &&
15812 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15813 : (TARGET_AVX512VL)) &&
15814 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15815 : (TARGET_AVX512VL))))
15816 : return -1;
15817 : *pnum_clobbers = 1;
15818 : return 9963; /* *avx512f_scattersiv4sf */
15819 :
15820 : case 3:
15821 : if (!(
15822 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15823 : (TARGET_AVX512F) && (((
15824 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15825 : (TARGET_AVX512VL) &&
15826 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15827 : (Pmode == DImode)) &&
15828 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15829 : (Pmode == DImode)) &&
15830 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15831 : (TARGET_AVX512VL))))
15832 : return -1;
15833 : *pnum_clobbers = 1;
15834 : return 9987; /* *avx512f_scatterdiv4sf */
15835 :
15836 : default:
15837 : return -1;
15838 : }
15839 :
15840 : case E_V2DImode:
15841 : switch (pattern1625 (x1,
15842 : E_V2DImode))
15843 : {
15844 : case 0:
15845 : if (!(
15846 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15847 : (TARGET_AVX512F) && ((((
15848 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15849 : (TARGET_AVX512VL) &&
15850 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15851 : (Pmode == SImode)) &&
15852 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15853 : (Pmode == SImode)) &&
15854 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15855 : (TARGET_AVX512VL)) &&
15856 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15857 : (TARGET_AVX512VL))))
15858 : return -1;
15859 : *pnum_clobbers = 1;
15860 : return 9952; /* *avx512f_scattersiv2di */
15861 :
15862 : case 1:
15863 : if (!(
15864 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15865 : (TARGET_AVX512F) && (((
15866 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15867 : (TARGET_AVX512VL) &&
15868 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15869 : (Pmode == SImode)) &&
15870 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15871 : (Pmode == SImode)) &&
15872 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15873 : (TARGET_AVX512VL))))
15874 : return -1;
15875 : *pnum_clobbers = 1;
15876 : return 9976; /* *avx512f_scatterdiv2di */
15877 :
15878 : case 2:
15879 : if (!(
15880 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15881 : (TARGET_AVX512F) && ((((
15882 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15883 : (TARGET_AVX512VL) &&
15884 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15885 : (Pmode == DImode)) &&
15886 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15887 : (Pmode == DImode)) &&
15888 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15889 : (TARGET_AVX512VL)) &&
15890 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15891 : (TARGET_AVX512VL))))
15892 : return -1;
15893 : *pnum_clobbers = 1;
15894 : return 9964; /* *avx512f_scattersiv2di */
15895 :
15896 : case 3:
15897 : if (!(
15898 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15899 : (TARGET_AVX512F) && (((
15900 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15901 : (TARGET_AVX512VL) &&
15902 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15903 : (Pmode == DImode)) &&
15904 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15905 : (Pmode == DImode)) &&
15906 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15907 : (TARGET_AVX512VL))))
15908 : return -1;
15909 : *pnum_clobbers = 1;
15910 : return 9988; /* *avx512f_scatterdiv2di */
15911 :
15912 : default:
15913 : return -1;
15914 : }
15915 :
15916 : case E_V2DFmode:
15917 : switch (pattern1625 (x1,
15918 : E_V2DFmode))
15919 : {
15920 : case 0:
15921 : if (!(
15922 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15923 : (TARGET_AVX512F) && ((((
15924 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15925 : (TARGET_AVX512VL) &&
15926 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15927 : (Pmode == SImode)) &&
15928 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15929 : (Pmode == SImode)) &&
15930 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15931 : (TARGET_AVX512VL)) &&
15932 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15933 : (TARGET_AVX512VL))))
15934 : return -1;
15935 : *pnum_clobbers = 1;
15936 : return 9953; /* *avx512f_scattersiv2df */
15937 :
15938 : case 1:
15939 : if (!(
15940 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15941 : (TARGET_AVX512F) && (((
15942 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15943 : (TARGET_AVX512VL) &&
15944 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15945 : (Pmode == SImode)) &&
15946 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15947 : (Pmode == SImode)) &&
15948 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15949 : (TARGET_AVX512VL))))
15950 : return -1;
15951 : *pnum_clobbers = 1;
15952 : return 9977; /* *avx512f_scatterdiv2df */
15953 :
15954 : case 2:
15955 : if (!(
15956 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15957 : (TARGET_AVX512F) && ((((
15958 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15959 : (TARGET_AVX512VL) &&
15960 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15961 : (Pmode == DImode)) &&
15962 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15963 : (Pmode == DImode)) &&
15964 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15965 : (TARGET_AVX512VL)) &&
15966 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15967 : (TARGET_AVX512VL))))
15968 : return -1;
15969 : *pnum_clobbers = 1;
15970 : return 9965; /* *avx512f_scattersiv2df */
15971 :
15972 : case 3:
15973 : if (!(
15974 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15975 : (TARGET_AVX512F) && (((
15976 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15977 : (TARGET_AVX512VL) &&
15978 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15979 : (Pmode == DImode)) &&
15980 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15981 : (Pmode == DImode)) &&
15982 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15983 : (TARGET_AVX512VL))))
15984 : return -1;
15985 : *pnum_clobbers = 1;
15986 : return 9989; /* *avx512f_scatterdiv2df */
15987 :
15988 : default:
15989 : return -1;
15990 : }
15991 :
15992 : default:
15993 : return -1;
15994 : }
15995 : }
15996 :
15997 : int
15998 : recog_255 (rtx x1 ATTRIBUTE_UNUSED,
15999 : rtx_insn *insn ATTRIBUTE_UNUSED,
16000 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16001 : {
16002 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16003 : rtx x2, x3, x4, x5, x6;
16004 : int res ATTRIBUTE_UNUSED;
16005 : x2 = XEXP (x1, 0);
16006 : operands[0] = x2;
16007 : x3 = XEXP (x1, 1);
16008 : x4 = XVECEXP (x3, 0, 0);
16009 : operands[1] = x4;
16010 : x5 = XVECEXP (x3, 0, 1);
16011 : operands[2] = x5;
16012 : x6 = XVECEXP (x3, 0, 2);
16013 : operands[3] = x6;
16014 : switch (GET_MODE (operands[0]))
16015 : {
16016 : case E_V16SImode:
16017 : if (pattern918 (x3,
16018 : E_HImode,
16019 : E_V16SImode) != 0
16020 : || !
16021 : #line 30701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16022 : (TARGET_AVX512F))
16023 : return -1;
16024 : return 9990; /* avx512f_compressv16si_mask */
16025 :
16026 : case E_V16SFmode:
16027 : if (pattern918 (x3,
16028 : E_HImode,
16029 : E_V16SFmode) != 0
16030 : || !
16031 : #line 30701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16032 : (TARGET_AVX512F))
16033 : return -1;
16034 : return 9991; /* avx512f_compressv16sf_mask */
16035 :
16036 : case E_V8DImode:
16037 : if (pattern918 (x3,
16038 : E_QImode,
16039 : E_V8DImode) != 0
16040 : || !
16041 : #line 30701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16042 : (TARGET_AVX512F))
16043 : return -1;
16044 : return 9992; /* avx512f_compressv8di_mask */
16045 :
16046 : case E_V8DFmode:
16047 : if (pattern918 (x3,
16048 : E_QImode,
16049 : E_V8DFmode) != 0
16050 : || !
16051 : #line 30701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16052 : (TARGET_AVX512F))
16053 : return -1;
16054 : return 9993; /* avx512f_compressv8df_mask */
16055 :
16056 : case E_V8SImode:
16057 : if (pattern918 (x3,
16058 : E_QImode,
16059 : E_V8SImode) != 0
16060 : || !(
16061 : #line 30701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16062 : (TARGET_AVX512F) &&
16063 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16064 : (TARGET_AVX512VL)))
16065 : return -1;
16066 : return 9994; /* avx512vl_compressv8si_mask */
16067 :
16068 : case E_V8SFmode:
16069 : if (pattern918 (x3,
16070 : E_QImode,
16071 : E_V8SFmode) != 0
16072 : || !(
16073 : #line 30701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16074 : (TARGET_AVX512F) &&
16075 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16076 : (TARGET_AVX512VL)))
16077 : return -1;
16078 : return 9995; /* avx512vl_compressv8sf_mask */
16079 :
16080 : case E_V4DImode:
16081 : if (pattern918 (x3,
16082 : E_QImode,
16083 : E_V4DImode) != 0
16084 : || !(
16085 : #line 30701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16086 : (TARGET_AVX512F) &&
16087 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16088 : (TARGET_AVX512VL)))
16089 : return -1;
16090 : return 9996; /* avx512vl_compressv4di_mask */
16091 :
16092 : case E_V4DFmode:
16093 : if (pattern918 (x3,
16094 : E_QImode,
16095 : E_V4DFmode) != 0
16096 : || !(
16097 : #line 30701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16098 : (TARGET_AVX512F) &&
16099 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16100 : (TARGET_AVX512VL)))
16101 : return -1;
16102 : return 9997; /* avx512vl_compressv4df_mask */
16103 :
16104 : case E_V4SImode:
16105 : if (pattern918 (x3,
16106 : E_QImode,
16107 : E_V4SImode) != 0
16108 : || !(
16109 : #line 30701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16110 : (TARGET_AVX512F) &&
16111 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16112 : (TARGET_AVX512VL)))
16113 : return -1;
16114 : return 9998; /* avx512vl_compressv4si_mask */
16115 :
16116 : case E_V4SFmode:
16117 : if (pattern918 (x3,
16118 : E_QImode,
16119 : E_V4SFmode) != 0
16120 : || !(
16121 : #line 30701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16122 : (TARGET_AVX512F) &&
16123 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16124 : (TARGET_AVX512VL)))
16125 : return -1;
16126 : return 9999; /* avx512vl_compressv4sf_mask */
16127 :
16128 : case E_V2DImode:
16129 : if (pattern918 (x3,
16130 : E_QImode,
16131 : E_V2DImode) != 0
16132 : || !(
16133 : #line 30701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16134 : (TARGET_AVX512F) &&
16135 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16136 : (TARGET_AVX512VL)))
16137 : return -1;
16138 : return 10000; /* avx512vl_compressv2di_mask */
16139 :
16140 : case E_V2DFmode:
16141 : if (pattern918 (x3,
16142 : E_QImode,
16143 : E_V2DFmode) != 0
16144 : || !(
16145 : #line 30701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16146 : (TARGET_AVX512F) &&
16147 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16148 : (TARGET_AVX512VL)))
16149 : return -1;
16150 : return 10001; /* avx512vl_compressv2df_mask */
16151 :
16152 : case E_V64QImode:
16153 : if (pattern918 (x3,
16154 : E_DImode,
16155 : E_V64QImode) != 0
16156 : || !
16157 : #line 30715 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16158 : (TARGET_AVX512VBMI2))
16159 : return -1;
16160 : return 10002; /* compressv64qi_mask */
16161 :
16162 : case E_V16QImode:
16163 : if (pattern918 (x3,
16164 : E_HImode,
16165 : E_V16QImode) != 0
16166 : || !(
16167 : #line 30715 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16168 : (TARGET_AVX512VBMI2) &&
16169 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16170 : (TARGET_AVX512VL)))
16171 : return -1;
16172 : return 10003; /* compressv16qi_mask */
16173 :
16174 : case E_V32QImode:
16175 : if (pattern918 (x3,
16176 : E_SImode,
16177 : E_V32QImode) != 0
16178 : || !(
16179 : #line 30715 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16180 : (TARGET_AVX512VBMI2) &&
16181 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16182 : (TARGET_AVX512VL)))
16183 : return -1;
16184 : return 10004; /* compressv32qi_mask */
16185 :
16186 : case E_V32HImode:
16187 : if (pattern918 (x3,
16188 : E_SImode,
16189 : E_V32HImode) != 0
16190 : || !
16191 : #line 30715 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16192 : (TARGET_AVX512VBMI2))
16193 : return -1;
16194 : return 10005; /* compressv32hi_mask */
16195 :
16196 : case E_V16HImode:
16197 : if (pattern918 (x3,
16198 : E_HImode,
16199 : E_V16HImode) != 0
16200 : || !(
16201 : #line 30715 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16202 : (TARGET_AVX512VBMI2) &&
16203 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16204 : (TARGET_AVX512VL)))
16205 : return -1;
16206 : return 10006; /* compressv16hi_mask */
16207 :
16208 : case E_V8HImode:
16209 : if (pattern918 (x3,
16210 : E_QImode,
16211 : E_V8HImode) != 0
16212 : || !(
16213 : #line 30715 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16214 : (TARGET_AVX512VBMI2) &&
16215 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16216 : (TARGET_AVX512VL)))
16217 : return -1;
16218 : return 10007; /* compressv8hi_mask */
16219 :
16220 : default:
16221 : return -1;
16222 : }
16223 : }
16224 :
16225 : int
16226 : recog_265 (rtx x1 ATTRIBUTE_UNUSED,
16227 : rtx_insn *insn ATTRIBUTE_UNUSED,
16228 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16229 : {
16230 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16231 : rtx x2, x3, x4, x5, x6;
16232 : int res ATTRIBUTE_UNUSED;
16233 : x2 = XEXP (x1, 0);
16234 : operands[0] = x2;
16235 : x3 = XEXP (x1, 1);
16236 : x4 = XVECEXP (x3, 0, 0);
16237 : operands[1] = x4;
16238 : x5 = XVECEXP (x3, 0, 1);
16239 : operands[2] = x5;
16240 : x6 = XVECEXP (x3, 0, 2);
16241 : operands[3] = x6;
16242 : if (!const_0_to_255_operand (operands[3], E_SImode))
16243 : return -1;
16244 : switch (GET_MODE (operands[0]))
16245 : {
16246 : case E_V32QImode:
16247 : if (pattern158 (x3,
16248 : E_V32QImode) != 0)
16249 : return -1;
16250 : if ((
16251 : #line 24333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16252 : (TARGET_SSE4_1) &&
16253 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16254 : (TARGET_AVX2)))
16255 : return 8795; /* avx2_mpsadbw */
16256 : if (!(
16257 : #line 24368 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16258 : (TARGET_AVX10_2) &&
16259 : #line 597 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16260 : (TARGET_AVX)))
16261 : return -1;
16262 : return 8799; /* *avx2_mpsadbw */
16263 :
16264 : case E_V16QImode:
16265 : if (pattern158 (x3,
16266 : E_V16QImode) != 0)
16267 : return -1;
16268 : if (
16269 : #line 24333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16270 : (TARGET_SSE4_1))
16271 : return 8796; /* sse4_1_mpsadbw */
16272 : if (!
16273 : #line 24368 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16274 : (TARGET_AVX10_2))
16275 : return -1;
16276 : return 8801; /* *sse4_1_mpsadbw */
16277 :
16278 : case E_V64QImode:
16279 : if (pattern158 (x3,
16280 : E_V64QImode) != 0
16281 : || !
16282 : #line 24356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16283 : (TARGET_AVX10_2))
16284 : return -1;
16285 : return 8797; /* avx10_2_mpsadbw */
16286 :
16287 : default:
16288 : return -1;
16289 : }
16290 : }
16291 :
16292 : int
16293 : recog_271 (rtx x1 ATTRIBUTE_UNUSED,
16294 : rtx_insn *insn ATTRIBUTE_UNUSED,
16295 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16296 : {
16297 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16298 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
16299 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
16300 : rtx x18;
16301 : int res ATTRIBUTE_UNUSED;
16302 : x2 = XEXP (x1, 1);
16303 : x3 = XEXP (x2, 1);
16304 : x4 = XEXP (x3, 1);
16305 : if (GET_CODE (x4) != PARALLEL)
16306 : return -1;
16307 : x5 = XEXP (x2, 0);
16308 : operands[2] = x5;
16309 : x6 = XEXP (x3, 0);
16310 : operands[1] = x6;
16311 : switch (XVECLEN (x4, 0))
16312 : {
16313 : case 2:
16314 : x7 = XVECEXP (x4, 0, 0);
16315 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
16316 : return -1;
16317 : x8 = XVECEXP (x4, 0, 1);
16318 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
16319 : return -1;
16320 : switch (GET_MODE (operands[0]))
16321 : {
16322 : case E_V4SFmode:
16323 : if (!nonimmediate_operand (operands[0], E_V4SFmode)
16324 : || GET_MODE (x2) != E_V4SFmode
16325 : || !nonimmediate_operand (operands[2], E_V2SFmode)
16326 : || GET_MODE (x3) != E_V2SFmode
16327 : || !nonimmediate_operand (operands[1], E_V4SFmode)
16328 : || !
16329 : #line 12063 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16330 : (TARGET_SSE))
16331 : return -1;
16332 : return 5298; /* sse_loadlps */
16333 :
16334 : case E_V4DImode:
16335 : if (pattern1239 (x2,
16336 : E_V4DImode,
16337 : E_V2DImode) != 0
16338 : || !
16339 : #line 29398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16340 : (TARGET_AVX && 1))
16341 : return -1;
16342 : return 9566; /* vec_set_lo_v4di */
16343 :
16344 : case E_V4DFmode:
16345 : if (pattern1239 (x2,
16346 : E_V4DFmode,
16347 : E_V2DFmode) != 0
16348 : || !
16349 : #line 29398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16350 : (TARGET_AVX && 1))
16351 : return -1;
16352 : return 9568; /* vec_set_lo_v4df */
16353 :
16354 : default:
16355 : return -1;
16356 : }
16357 :
16358 : case 1:
16359 : x7 = XVECEXP (x4, 0, 0);
16360 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
16361 : || !nonimmediate_operand (operands[0], E_V2DFmode)
16362 : || GET_MODE (x2) != E_V2DFmode
16363 : || !nonimmediate_operand (operands[2], E_DFmode)
16364 : || GET_MODE (x3) != E_DFmode
16365 : || !nonimm_or_0_operand (operands[1], E_V2DFmode)
16366 : || !
16367 : #line 15189 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16368 : (TARGET_SSE2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
16369 : return -1;
16370 : return 7258; /* sse2_loadlpd */
16371 :
16372 : case 8:
16373 : x7 = XVECEXP (x4, 0, 0);
16374 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
16375 : return -1;
16376 : x8 = XVECEXP (x4, 0, 1);
16377 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
16378 : return -1;
16379 : x9 = XVECEXP (x4, 0, 2);
16380 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 10]
16381 : || pattern1240 (x4,
16382 : 15,
16383 : 14,
16384 : 13,
16385 : 12,
16386 : 11) != 0)
16387 : return -1;
16388 : switch (GET_MODE (operands[0]))
16389 : {
16390 : case E_V16SFmode:
16391 : if (pattern1239 (x2,
16392 : E_V16SFmode,
16393 : E_V8SFmode) != 0
16394 : || !
16395 : #line 20565 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16396 : (TARGET_AVX512DQ))
16397 : return -1;
16398 : return 8472; /* vec_set_lo_v16sf */
16399 :
16400 : case E_V16SImode:
16401 : if (pattern1239 (x2,
16402 : E_V16SImode,
16403 : E_V8SImode) != 0
16404 : || !
16405 : #line 20565 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16406 : (TARGET_AVX512DQ))
16407 : return -1;
16408 : return 8474; /* vec_set_lo_v16si */
16409 :
16410 : case E_V16HImode:
16411 : if (pattern1239 (x2,
16412 : E_V16HImode,
16413 : E_V8HImode) != 0
16414 : || !
16415 : #line 29499 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16416 : (TARGET_AVX))
16417 : return -1;
16418 : return 9582; /* vec_set_lo_v16hi */
16419 :
16420 : case E_V16HFmode:
16421 : if (pattern1239 (x2,
16422 : E_V16HFmode,
16423 : E_V8HFmode) != 0
16424 : || !
16425 : #line 29499 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16426 : (TARGET_AVX))
16427 : return -1;
16428 : return 9583; /* vec_set_lo_v16hf */
16429 :
16430 : case E_V16BFmode:
16431 : if (pattern1239 (x2,
16432 : E_V16BFmode,
16433 : E_V8BFmode) != 0
16434 : || !
16435 : #line 29499 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16436 : (TARGET_AVX))
16437 : return -1;
16438 : return 9584; /* vec_set_lo_v16bf */
16439 :
16440 : default:
16441 : return -1;
16442 : }
16443 :
16444 : case 4:
16445 : x7 = XVECEXP (x4, 0, 0);
16446 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
16447 : return -1;
16448 : x8 = XVECEXP (x4, 0, 1);
16449 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
16450 : return -1;
16451 : x9 = XVECEXP (x4, 0, 2);
16452 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
16453 : return -1;
16454 : x10 = XVECEXP (x4, 0, 3);
16455 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
16456 : return -1;
16457 : switch (GET_MODE (operands[0]))
16458 : {
16459 : case E_V8DFmode:
16460 : if (pattern1239 (x2,
16461 : E_V8DFmode,
16462 : E_V4DFmode) != 0
16463 : || !
16464 : #line 20599 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16465 : (TARGET_AVX512F))
16466 : return -1;
16467 : return 8480; /* vec_set_lo_v8df */
16468 :
16469 : case E_V8DImode:
16470 : if (pattern1239 (x2,
16471 : E_V8DImode,
16472 : E_V4DImode) != 0
16473 : || !
16474 : #line 20599 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16475 : (TARGET_AVX512F))
16476 : return -1;
16477 : return 8482; /* vec_set_lo_v8di */
16478 :
16479 : case E_V8SImode:
16480 : if (pattern1239 (x2,
16481 : E_V8SImode,
16482 : E_V4SImode) != 0
16483 : || !
16484 : #line 29449 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16485 : (TARGET_AVX))
16486 : return -1;
16487 : return 9574; /* vec_set_lo_v8si */
16488 :
16489 : case E_V8SFmode:
16490 : if (pattern1239 (x2,
16491 : E_V8SFmode,
16492 : E_V4SFmode) != 0
16493 : || !
16494 : #line 29449 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16495 : (TARGET_AVX))
16496 : return -1;
16497 : return 9576; /* vec_set_lo_v8sf */
16498 :
16499 : default:
16500 : return -1;
16501 : }
16502 :
16503 : case 16:
16504 : x7 = XVECEXP (x4, 0, 0);
16505 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
16506 : return -1;
16507 : x8 = XVECEXP (x4, 0, 1);
16508 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 17])
16509 : return -1;
16510 : x9 = XVECEXP (x4, 0, 2);
16511 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 18]
16512 : || pattern1240 (x4,
16513 : 23,
16514 : 22,
16515 : 21,
16516 : 20,
16517 : 19) != 0)
16518 : return -1;
16519 : x11 = XVECEXP (x4, 0, 8);
16520 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 24])
16521 : return -1;
16522 : x12 = XVECEXP (x4, 0, 9);
16523 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 25])
16524 : return -1;
16525 : x13 = XVECEXP (x4, 0, 10);
16526 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 26])
16527 : return -1;
16528 : x14 = XVECEXP (x4, 0, 11);
16529 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 27])
16530 : return -1;
16531 : x15 = XVECEXP (x4, 0, 12);
16532 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 28])
16533 : return -1;
16534 : x16 = XVECEXP (x4, 0, 13);
16535 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 29])
16536 : return -1;
16537 : x17 = XVECEXP (x4, 0, 14);
16538 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 30])
16539 : return -1;
16540 : x18 = XVECEXP (x4, 0, 15);
16541 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 31]
16542 : || pattern1239 (x2,
16543 : E_V32QImode,
16544 : E_V16QImode) != 0
16545 : || !
16546 : #line 29549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16547 : (TARGET_AVX))
16548 : return -1;
16549 : return 9588; /* vec_set_lo_v32qi */
16550 :
16551 : default:
16552 : return -1;
16553 : }
16554 : }
16555 :
16556 : int
16557 : recog_276 (rtx x1 ATTRIBUTE_UNUSED,
16558 : rtx_insn *insn ATTRIBUTE_UNUSED,
16559 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16560 : {
16561 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16562 : rtx x2, x3, x4;
16563 : int res ATTRIBUTE_UNUSED;
16564 : x2 = XEXP (x1, 1);
16565 : operands[3] = x2;
16566 : x3 = XEXP (x2, 0);
16567 : operands[1] = x3;
16568 : x4 = XEXP (x2, 1);
16569 : operands[2] = x4;
16570 : switch (GET_MODE (operands[0]))
16571 : {
16572 : case E_V8SFmode:
16573 : if (pattern805 (
16574 : E_V8SFmode) != 0)
16575 : return -1;
16576 : if ((
16577 : #line 4598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16578 : (TARGET_SSE
16579 : && GET_RTX_CLASS (GET_CODE (operands[3])) == RTX_COMM_COMPARE) &&
16580 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16581 : (TARGET_AVX)))
16582 : return 3318; /* *avx_maskcmpv8sf3_comm */
16583 : if (!(
16584 : #line 4632 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16585 : (TARGET_SSE) &&
16586 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16587 : (TARGET_AVX)))
16588 : return -1;
16589 : return 3326; /* avx_maskcmpv8sf3 */
16590 :
16591 : case E_V4SFmode:
16592 : if (pattern805 (
16593 : E_V4SFmode) != 0)
16594 : return -1;
16595 : if (
16596 : #line 4598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16597 : (TARGET_SSE
16598 : && GET_RTX_CLASS (GET_CODE (operands[3])) == RTX_COMM_COMPARE))
16599 : return 3319; /* *sse_maskcmpv4sf3_comm */
16600 : if (!
16601 : #line 4632 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16602 : (TARGET_SSE))
16603 : return -1;
16604 : return 3327; /* sse_maskcmpv4sf3 */
16605 :
16606 : case E_V4DFmode:
16607 : if (pattern805 (
16608 : E_V4DFmode) != 0)
16609 : return -1;
16610 : if ((
16611 : #line 4598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16612 : (TARGET_SSE
16613 : && GET_RTX_CLASS (GET_CODE (operands[3])) == RTX_COMM_COMPARE) &&
16614 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16615 : (TARGET_AVX)))
16616 : return 3320; /* *avx_maskcmpv4df3_comm */
16617 : if (!(
16618 : #line 4632 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16619 : (TARGET_SSE) &&
16620 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16621 : (TARGET_AVX)))
16622 : return -1;
16623 : return 3328; /* avx_maskcmpv4df3 */
16624 :
16625 : case E_V2DFmode:
16626 : if (pattern805 (
16627 : E_V2DFmode) != 0)
16628 : return -1;
16629 : if ((
16630 : #line 4598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16631 : (TARGET_SSE
16632 : && GET_RTX_CLASS (GET_CODE (operands[3])) == RTX_COMM_COMPARE) &&
16633 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16634 : (TARGET_SSE2)))
16635 : return 3321; /* *sse2_maskcmpv2df3_comm */
16636 : if (!(
16637 : #line 4632 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16638 : (TARGET_SSE) &&
16639 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16640 : (TARGET_SSE2)))
16641 : return -1;
16642 : return 3329; /* sse2_maskcmpv2df3 */
16643 :
16644 : case E_V8SImode:
16645 : if (pattern806 (
16646 : E_V8SFmode,
16647 : E_V8SImode) != 0
16648 : || !(
16649 : #line 4615 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16650 : (TARGET_SSE
16651 : && GET_RTX_CLASS (GET_CODE (operands[3])) == RTX_COMM_COMPARE) &&
16652 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16653 : (TARGET_AVX)))
16654 : return -1;
16655 : return 3322; /* *avx_imaskcmpv8sf3_comm */
16656 :
16657 : case E_V4SImode:
16658 : if (pattern806 (
16659 : E_V4SFmode,
16660 : E_V4SImode) != 0
16661 : || !
16662 : #line 4615 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16663 : (TARGET_SSE
16664 : && GET_RTX_CLASS (GET_CODE (operands[3])) == RTX_COMM_COMPARE))
16665 : return -1;
16666 : return 3323; /* *sse_imaskcmpv4sf3_comm */
16667 :
16668 : case E_V4DImode:
16669 : if (pattern806 (
16670 : E_V4DFmode,
16671 : E_V4DImode) != 0
16672 : || !(
16673 : #line 4615 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16674 : (TARGET_SSE
16675 : && GET_RTX_CLASS (GET_CODE (operands[3])) == RTX_COMM_COMPARE) &&
16676 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16677 : (TARGET_AVX)))
16678 : return -1;
16679 : return 3324; /* *avx_imaskcmpv4df3_comm */
16680 :
16681 : case E_V2DImode:
16682 : if (pattern806 (
16683 : E_V2DFmode,
16684 : E_V2DImode) != 0
16685 : || !(
16686 : #line 4615 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16687 : (TARGET_SSE
16688 : && GET_RTX_CLASS (GET_CODE (operands[3])) == RTX_COMM_COMPARE) &&
16689 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16690 : (TARGET_SSE2)))
16691 : return -1;
16692 : return 3325; /* *sse2_imaskcmpv2df3_comm */
16693 :
16694 : default:
16695 : return -1;
16696 : }
16697 : }
16698 :
16699 : int
16700 : recog_278 (rtx x1 ATTRIBUTE_UNUSED,
16701 : rtx_insn *insn ATTRIBUTE_UNUSED,
16702 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16703 : {
16704 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16705 : rtx x2, x3, x4, x5;
16706 : int res ATTRIBUTE_UNUSED;
16707 : x2 = XEXP (x1, 1);
16708 : x3 = XEXP (x2, 0);
16709 : operands[1] = x3;
16710 : x4 = XEXP (x2, 2);
16711 : switch (GET_CODE (x4))
16712 : {
16713 : case REG:
16714 : case SUBREG:
16715 : case MEM:
16716 : case VEC_DUPLICATE:
16717 : operands[3] = x4;
16718 : switch (GET_MODE (operands[0]))
16719 : {
16720 : case E_V4SFmode:
16721 : if (!register_operand (operands[0], E_V4SFmode)
16722 : || GET_MODE (x2) != E_V4SFmode)
16723 : return -1;
16724 : if (nonimmediate_operand (operands[1], E_V4SFmode)
16725 : && nonimmediate_operand (operands[2], E_V4SFmode)
16726 : && nonimmediate_operand (operands[3], E_V4SFmode)
16727 : &&
16728 : #line 6320 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16729 : (TARGET_FMA || TARGET_FMA4))
16730 : return 3878; /* *fma_fmadd_v4sf */
16731 : if (!bcst_vector_operand (operands[1], E_V4SFmode)
16732 : || !bcst_vector_operand (operands[2], E_V4SFmode)
16733 : || !bcst_vector_operand (operands[3], E_V4SFmode)
16734 : || !(
16735 : #line 6346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16736 : (TARGET_AVX512F && 1 && 1) &&
16737 : #line 6337 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16738 : (TARGET_AVX512VL)))
16739 : return -1;
16740 : return 3898; /* *fma_fmadd_v4sf */
16741 :
16742 : case E_V2DFmode:
16743 : if (!register_operand (operands[0], E_V2DFmode)
16744 : || GET_MODE (x2) != E_V2DFmode)
16745 : return -1;
16746 : if (nonimmediate_operand (operands[1], E_V2DFmode)
16747 : && nonimmediate_operand (operands[2], E_V2DFmode)
16748 : && nonimmediate_operand (operands[3], E_V2DFmode)
16749 : &&
16750 : #line 6320 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16751 : (TARGET_FMA || TARGET_FMA4))
16752 : return 3879; /* *fma_fmadd_v2df */
16753 : if (!bcst_vector_operand (operands[1], E_V2DFmode)
16754 : || !bcst_vector_operand (operands[2], E_V2DFmode)
16755 : || !bcst_vector_operand (operands[3], E_V2DFmode)
16756 : || !(
16757 : #line 6346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16758 : (TARGET_AVX512F && 1 && 1) &&
16759 : #line 6338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16760 : (TARGET_AVX512VL)))
16761 : return -1;
16762 : return 3907; /* *fma_fmadd_v2df */
16763 :
16764 : case E_V8SFmode:
16765 : if (!register_operand (operands[0], E_V8SFmode)
16766 : || GET_MODE (x2) != E_V8SFmode)
16767 : return -1;
16768 : if (nonimmediate_operand (operands[1], E_V8SFmode)
16769 : && nonimmediate_operand (operands[2], E_V8SFmode)
16770 : && nonimmediate_operand (operands[3], E_V8SFmode)
16771 : &&
16772 : #line 6320 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16773 : (TARGET_FMA || TARGET_FMA4))
16774 : return 3880; /* *fma_fmadd_v8sf */
16775 : if (!bcst_vector_operand (operands[1], E_V8SFmode)
16776 : || !bcst_vector_operand (operands[2], E_V8SFmode)
16777 : || !bcst_vector_operand (operands[3], E_V8SFmode)
16778 : || !(
16779 : #line 6346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16780 : (TARGET_AVX512F && 1 && 1) &&
16781 : #line 6337 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16782 : (TARGET_AVX512VL)))
16783 : return -1;
16784 : return 3896; /* *fma_fmadd_v8sf */
16785 :
16786 : case E_V4DFmode:
16787 : if (!register_operand (operands[0], E_V4DFmode)
16788 : || GET_MODE (x2) != E_V4DFmode)
16789 : return -1;
16790 : if (nonimmediate_operand (operands[1], E_V4DFmode)
16791 : && nonimmediate_operand (operands[2], E_V4DFmode)
16792 : && nonimmediate_operand (operands[3], E_V4DFmode)
16793 : &&
16794 : #line 6320 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16795 : (TARGET_FMA || TARGET_FMA4))
16796 : return 3881; /* *fma_fmadd_v4df */
16797 : if (!bcst_vector_operand (operands[1], E_V4DFmode)
16798 : || !bcst_vector_operand (operands[2], E_V4DFmode)
16799 : || !bcst_vector_operand (operands[3], E_V4DFmode)
16800 : || !(
16801 : #line 6346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16802 : (TARGET_AVX512F && 1 && 1) &&
16803 : #line 6338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16804 : (TARGET_AVX512VL)))
16805 : return -1;
16806 : return 3905; /* *fma_fmadd_v4df */
16807 :
16808 : case E_V32HFmode:
16809 : if (pattern877 (x2,
16810 : E_V32HFmode) != 0
16811 : || !(
16812 : #line 6346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16813 : (TARGET_AVX512F && 1 && 1) &&
16814 : #line 6333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16815 : (TARGET_AVX512FP16)))
16816 : return -1;
16817 : return 3882; /* *fma_fmadd_v32hf */
16818 :
16819 : case E_V16HFmode:
16820 : if (pattern877 (x2,
16821 : E_V16HFmode) != 0
16822 : || !(
16823 : #line 6346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16824 : (TARGET_AVX512F && 1 && 1) &&
16825 : #line 6334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16826 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
16827 : return -1;
16828 : return 3886; /* *fma_fmadd_v16hf */
16829 :
16830 : case E_V8HFmode:
16831 : if (pattern877 (x2,
16832 : E_V8HFmode) != 0
16833 : || !(
16834 : #line 6346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16835 : (TARGET_AVX512F && 1 && 1) &&
16836 : #line 6335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16837 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
16838 : return -1;
16839 : return 3888; /* *fma_fmadd_v8hf */
16840 :
16841 : case E_V16SFmode:
16842 : if (pattern877 (x2,
16843 : E_V16SFmode) != 0
16844 : || !
16845 : #line 6346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16846 : (TARGET_AVX512F && 1 && 1))
16847 : return -1;
16848 : return 3892; /* *fma_fmadd_v16sf */
16849 :
16850 : case E_V8DFmode:
16851 : if (pattern877 (x2,
16852 : E_V8DFmode) != 0
16853 : || !
16854 : #line 6346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16855 : (TARGET_AVX512F && 1 && 1))
16856 : return -1;
16857 : return 3901; /* *fma_fmadd_v8df */
16858 :
16859 : case E_V32BFmode:
16860 : if (pattern927 (x2,
16861 : E_V32BFmode) != 0
16862 : || !
16863 : #line 33221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16864 : (TARGET_AVX10_2))
16865 : return -1;
16866 : return 10732; /* avx10_2_fmaddbf16_v32bf */
16867 :
16868 : case E_V16BFmode:
16869 : if (pattern927 (x2,
16870 : E_V16BFmode) != 0
16871 : || !
16872 : #line 33221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16873 : (TARGET_AVX10_2))
16874 : return -1;
16875 : return 10734; /* avx10_2_fmaddbf16_v16bf */
16876 :
16877 : case E_V8BFmode:
16878 : if (pattern927 (x2,
16879 : E_V8BFmode) != 0
16880 : || !
16881 : #line 33221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16882 : (TARGET_AVX10_2))
16883 : return -1;
16884 : return 10736; /* avx10_2_fmaddbf16_v8bf */
16885 :
16886 : default:
16887 : return -1;
16888 : }
16889 :
16890 : case NEG:
16891 : x5 = XEXP (x4, 0);
16892 : operands[3] = x5;
16893 : switch (GET_MODE (operands[0]))
16894 : {
16895 : case E_V4SFmode:
16896 : if (!register_operand (operands[0], E_V4SFmode)
16897 : || GET_MODE (x2) != E_V4SFmode
16898 : || GET_MODE (x4) != E_V4SFmode)
16899 : return -1;
16900 : if (nonimmediate_operand (operands[1], E_V4SFmode)
16901 : && nonimmediate_operand (operands[2], E_V4SFmode)
16902 : && nonimmediate_operand (operands[3], E_V4SFmode)
16903 : &&
16904 : #line 6417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16905 : (TARGET_FMA || TARGET_FMA4))
16906 : return 3941; /* *fma_fmsub_v4sf */
16907 : if (!bcst_vector_operand (operands[1], E_V4SFmode)
16908 : || !bcst_vector_operand (operands[2], E_V4SFmode)
16909 : || !bcst_vector_operand (operands[3], E_V4SFmode)
16910 : || !(
16911 : #line 6449 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16912 : (TARGET_AVX512F && 1 && 1) &&
16913 : #line 6337 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16914 : (TARGET_AVX512VL)))
16915 : return -1;
16916 : return 3961; /* *fma_fmsub_v4sf */
16917 :
16918 : case E_V2DFmode:
16919 : if (!register_operand (operands[0], E_V2DFmode)
16920 : || GET_MODE (x2) != E_V2DFmode
16921 : || GET_MODE (x4) != E_V2DFmode)
16922 : return -1;
16923 : if (nonimmediate_operand (operands[1], E_V2DFmode)
16924 : && nonimmediate_operand (operands[2], E_V2DFmode)
16925 : && nonimmediate_operand (operands[3], E_V2DFmode)
16926 : &&
16927 : #line 6417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16928 : (TARGET_FMA || TARGET_FMA4))
16929 : return 3942; /* *fma_fmsub_v2df */
16930 : if (!bcst_vector_operand (operands[1], E_V2DFmode)
16931 : || !bcst_vector_operand (operands[2], E_V2DFmode)
16932 : || !bcst_vector_operand (operands[3], E_V2DFmode)
16933 : || !(
16934 : #line 6449 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16935 : (TARGET_AVX512F && 1 && 1) &&
16936 : #line 6338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16937 : (TARGET_AVX512VL)))
16938 : return -1;
16939 : return 3970; /* *fma_fmsub_v2df */
16940 :
16941 : case E_V8SFmode:
16942 : if (!register_operand (operands[0], E_V8SFmode)
16943 : || GET_MODE (x2) != E_V8SFmode
16944 : || GET_MODE (x4) != E_V8SFmode)
16945 : return -1;
16946 : if (nonimmediate_operand (operands[1], E_V8SFmode)
16947 : && nonimmediate_operand (operands[2], E_V8SFmode)
16948 : && nonimmediate_operand (operands[3], E_V8SFmode)
16949 : &&
16950 : #line 6417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16951 : (TARGET_FMA || TARGET_FMA4))
16952 : return 3943; /* *fma_fmsub_v8sf */
16953 : if (!bcst_vector_operand (operands[1], E_V8SFmode)
16954 : || !bcst_vector_operand (operands[2], E_V8SFmode)
16955 : || !bcst_vector_operand (operands[3], E_V8SFmode)
16956 : || !(
16957 : #line 6449 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16958 : (TARGET_AVX512F && 1 && 1) &&
16959 : #line 6337 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16960 : (TARGET_AVX512VL)))
16961 : return -1;
16962 : return 3959; /* *fma_fmsub_v8sf */
16963 :
16964 : case E_V4DFmode:
16965 : if (!register_operand (operands[0], E_V4DFmode)
16966 : || GET_MODE (x2) != E_V4DFmode
16967 : || GET_MODE (x4) != E_V4DFmode)
16968 : return -1;
16969 : if (nonimmediate_operand (operands[1], E_V4DFmode)
16970 : && nonimmediate_operand (operands[2], E_V4DFmode)
16971 : && nonimmediate_operand (operands[3], E_V4DFmode)
16972 : &&
16973 : #line 6417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16974 : (TARGET_FMA || TARGET_FMA4))
16975 : return 3944; /* *fma_fmsub_v4df */
16976 : if (!bcst_vector_operand (operands[1], E_V4DFmode)
16977 : || !bcst_vector_operand (operands[2], E_V4DFmode)
16978 : || !bcst_vector_operand (operands[3], E_V4DFmode)
16979 : || !(
16980 : #line 6449 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16981 : (TARGET_AVX512F && 1 && 1) &&
16982 : #line 6338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16983 : (TARGET_AVX512VL)))
16984 : return -1;
16985 : return 3968; /* *fma_fmsub_v4df */
16986 :
16987 : case E_V32HFmode:
16988 : if (pattern878 (x2,
16989 : E_V32HFmode) != 0
16990 : || !(
16991 : #line 6449 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16992 : (TARGET_AVX512F && 1 && 1) &&
16993 : #line 6333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16994 : (TARGET_AVX512FP16)))
16995 : return -1;
16996 : return 3945; /* *fma_fmsub_v32hf */
16997 :
16998 : case E_V16HFmode:
16999 : if (pattern878 (x2,
17000 : E_V16HFmode) != 0
17001 : || !(
17002 : #line 6449 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17003 : (TARGET_AVX512F && 1 && 1) &&
17004 : #line 6334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17005 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
17006 : return -1;
17007 : return 3949; /* *fma_fmsub_v16hf */
17008 :
17009 : case E_V8HFmode:
17010 : if (pattern878 (x2,
17011 : E_V8HFmode) != 0
17012 : || !(
17013 : #line 6449 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17014 : (TARGET_AVX512F && 1 && 1) &&
17015 : #line 6335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17016 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
17017 : return -1;
17018 : return 3951; /* *fma_fmsub_v8hf */
17019 :
17020 : case E_V16SFmode:
17021 : if (pattern878 (x2,
17022 : E_V16SFmode) != 0
17023 : || !
17024 : #line 6449 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17025 : (TARGET_AVX512F && 1 && 1))
17026 : return -1;
17027 : return 3955; /* *fma_fmsub_v16sf */
17028 :
17029 : case E_V8DFmode:
17030 : if (pattern878 (x2,
17031 : E_V8DFmode) != 0
17032 : || !
17033 : #line 6449 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17034 : (TARGET_AVX512F && 1 && 1))
17035 : return -1;
17036 : return 3964; /* *fma_fmsub_v8df */
17037 :
17038 : case E_V32BFmode:
17039 : if (pattern928 (x2,
17040 : E_V32BFmode) != 0
17041 : || !
17042 : #line 33349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17043 : (TARGET_AVX10_2))
17044 : return -1;
17045 : return 10756; /* avx10_2_fmsubbf16_v32bf */
17046 :
17047 : case E_V16BFmode:
17048 : if (pattern928 (x2,
17049 : E_V16BFmode) != 0
17050 : || !
17051 : #line 33349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17052 : (TARGET_AVX10_2))
17053 : return -1;
17054 : return 10758; /* avx10_2_fmsubbf16_v16bf */
17055 :
17056 : case E_V8BFmode:
17057 : if (pattern928 (x2,
17058 : E_V8BFmode) != 0
17059 : || !
17060 : #line 33349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17061 : (TARGET_AVX10_2))
17062 : return -1;
17063 : return 10760; /* avx10_2_fmsubbf16_v8bf */
17064 :
17065 : default:
17066 : return -1;
17067 : }
17068 :
17069 : default:
17070 : return -1;
17071 : }
17072 : }
17073 :
17074 : int
17075 : recog_287 (rtx x1 ATTRIBUTE_UNUSED,
17076 : rtx_insn *insn ATTRIBUTE_UNUSED,
17077 : int *pnum_clobbers ATTRIBUTE_UNUSED)
17078 : {
17079 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
17080 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
17081 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
17082 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
17083 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
17084 : rtx x34, x35, x36, x37, x38, x39, x40, x41;
17085 : rtx x42, x43, x44, x45, x46, x47, x48, x49;
17086 : rtx x50, x51, x52, x53, x54, x55, x56, x57;
17087 : rtx x58, x59, x60, x61, x62, x63, x64, x65;
17088 : rtx x66, x67;
17089 : int res ATTRIBUTE_UNUSED;
17090 : x2 = XEXP (x1, 1);
17091 : x3 = XEXP (x2, 1);
17092 : if (pattern685 (x3) != 0)
17093 : return -1;
17094 : x4 = XVECEXP (x3, 0, 32);
17095 : if (GET_CODE (x4) != CONST_INT)
17096 : return -1;
17097 : x5 = XVECEXP (x3, 0, 33);
17098 : if (GET_CODE (x5) != CONST_INT)
17099 : return -1;
17100 : x6 = XVECEXP (x3, 0, 34);
17101 : if (GET_CODE (x6) != CONST_INT)
17102 : return -1;
17103 : x7 = XVECEXP (x3, 0, 35);
17104 : if (GET_CODE (x7) != CONST_INT)
17105 : return -1;
17106 : x8 = XVECEXP (x3, 0, 36);
17107 : if (GET_CODE (x8) != CONST_INT)
17108 : return -1;
17109 : x9 = XVECEXP (x3, 0, 37);
17110 : if (GET_CODE (x9) != CONST_INT)
17111 : return -1;
17112 : x10 = XVECEXP (x3, 0, 38);
17113 : if (GET_CODE (x10) != CONST_INT)
17114 : return -1;
17115 : x11 = XVECEXP (x3, 0, 39);
17116 : if (GET_CODE (x11) != CONST_INT)
17117 : return -1;
17118 : x12 = XVECEXP (x3, 0, 40);
17119 : if (GET_CODE (x12) != CONST_INT)
17120 : return -1;
17121 : x13 = XVECEXP (x3, 0, 41);
17122 : if (GET_CODE (x13) != CONST_INT)
17123 : return -1;
17124 : x14 = XVECEXP (x3, 0, 42);
17125 : if (GET_CODE (x14) != CONST_INT)
17126 : return -1;
17127 : x15 = XVECEXP (x3, 0, 43);
17128 : if (GET_CODE (x15) != CONST_INT)
17129 : return -1;
17130 : x16 = XVECEXP (x3, 0, 44);
17131 : if (GET_CODE (x16) != CONST_INT)
17132 : return -1;
17133 : x17 = XVECEXP (x3, 0, 45);
17134 : if (GET_CODE (x17) != CONST_INT)
17135 : return -1;
17136 : x18 = XVECEXP (x3, 0, 46);
17137 : if (GET_CODE (x18) != CONST_INT)
17138 : return -1;
17139 : x19 = XVECEXP (x3, 0, 47);
17140 : if (GET_CODE (x19) != CONST_INT)
17141 : return -1;
17142 : x20 = XVECEXP (x3, 0, 48);
17143 : if (GET_CODE (x20) != CONST_INT)
17144 : return -1;
17145 : x21 = XVECEXP (x3, 0, 49);
17146 : if (GET_CODE (x21) != CONST_INT)
17147 : return -1;
17148 : x22 = XVECEXP (x3, 0, 50);
17149 : if (GET_CODE (x22) != CONST_INT)
17150 : return -1;
17151 : x23 = XVECEXP (x3, 0, 51);
17152 : if (GET_CODE (x23) != CONST_INT)
17153 : return -1;
17154 : x24 = XVECEXP (x3, 0, 52);
17155 : if (GET_CODE (x24) != CONST_INT)
17156 : return -1;
17157 : x25 = XVECEXP (x3, 0, 53);
17158 : if (GET_CODE (x25) != CONST_INT)
17159 : return -1;
17160 : x26 = XVECEXP (x3, 0, 54);
17161 : if (GET_CODE (x26) != CONST_INT)
17162 : return -1;
17163 : x27 = XVECEXP (x3, 0, 55);
17164 : if (GET_CODE (x27) != CONST_INT)
17165 : return -1;
17166 : x28 = XVECEXP (x3, 0, 56);
17167 : if (GET_CODE (x28) != CONST_INT)
17168 : return -1;
17169 : x29 = XVECEXP (x3, 0, 57);
17170 : if (GET_CODE (x29) != CONST_INT)
17171 : return -1;
17172 : x30 = XVECEXP (x3, 0, 58);
17173 : if (GET_CODE (x30) != CONST_INT)
17174 : return -1;
17175 : x31 = XVECEXP (x3, 0, 59);
17176 : if (GET_CODE (x31) != CONST_INT)
17177 : return -1;
17178 : x32 = XVECEXP (x3, 0, 60);
17179 : if (GET_CODE (x32) != CONST_INT)
17180 : return -1;
17181 : x33 = XVECEXP (x3, 0, 61);
17182 : if (GET_CODE (x33) != CONST_INT)
17183 : return -1;
17184 : x34 = XVECEXP (x3, 0, 62);
17185 : if (GET_CODE (x34) != CONST_INT)
17186 : return -1;
17187 : x35 = XVECEXP (x3, 0, 63);
17188 : if (GET_CODE (x35) != CONST_INT
17189 : || pattern1636 (x2,
17190 : E_V64QImode,
17191 : E_V128QImode) != 0)
17192 : return -1;
17193 : x36 = XVECEXP (x3, 0, 0);
17194 : switch (XWINT (x36, 0))
17195 : {
17196 : case 8L:
17197 : x37 = XVECEXP (x3, 0, 1);
17198 : if (XWINT (x37, 0) != 72L)
17199 : return -1;
17200 : x38 = XVECEXP (x3, 0, 2);
17201 : if (XWINT (x38, 0) != 9L)
17202 : return -1;
17203 : x39 = XVECEXP (x3, 0, 3);
17204 : if (XWINT (x39, 0) != 73L)
17205 : return -1;
17206 : x40 = XVECEXP (x3, 0, 4);
17207 : if (XWINT (x40, 0) != 10L)
17208 : return -1;
17209 : x41 = XVECEXP (x3, 0, 5);
17210 : if (XWINT (x41, 0) != 74L)
17211 : return -1;
17212 : x42 = XVECEXP (x3, 0, 6);
17213 : if (XWINT (x42, 0) != 11L)
17214 : return -1;
17215 : x43 = XVECEXP (x3, 0, 7);
17216 : if (XWINT (x43, 0) != 75L)
17217 : return -1;
17218 : x44 = XVECEXP (x3, 0, 8);
17219 : if (XWINT (x44, 0) != 12L)
17220 : return -1;
17221 : x45 = XVECEXP (x3, 0, 9);
17222 : if (XWINT (x45, 0) != 76L)
17223 : return -1;
17224 : x46 = XVECEXP (x3, 0, 10);
17225 : if (XWINT (x46, 0) != 13L)
17226 : return -1;
17227 : x47 = XVECEXP (x3, 0, 11);
17228 : if (XWINT (x47, 0) != 77L)
17229 : return -1;
17230 : x48 = XVECEXP (x3, 0, 12);
17231 : if (XWINT (x48, 0) != 14L)
17232 : return -1;
17233 : x49 = XVECEXP (x3, 0, 13);
17234 : if (XWINT (x49, 0) != 78L)
17235 : return -1;
17236 : x50 = XVECEXP (x3, 0, 14);
17237 : if (XWINT (x50, 0) != 15L)
17238 : return -1;
17239 : x51 = XVECEXP (x3, 0, 15);
17240 : if (XWINT (x51, 0) != 79L)
17241 : return -1;
17242 : x52 = XVECEXP (x3, 0, 16);
17243 : if (XWINT (x52, 0) != 24L)
17244 : return -1;
17245 : x53 = XVECEXP (x3, 0, 17);
17246 : if (XWINT (x53, 0) != 88L)
17247 : return -1;
17248 : x54 = XVECEXP (x3, 0, 18);
17249 : if (XWINT (x54, 0) != 25L)
17250 : return -1;
17251 : x55 = XVECEXP (x3, 0, 19);
17252 : if (XWINT (x55, 0) != 89L)
17253 : return -1;
17254 : x56 = XVECEXP (x3, 0, 20);
17255 : if (XWINT (x56, 0) != 26L)
17256 : return -1;
17257 : x57 = XVECEXP (x3, 0, 21);
17258 : if (XWINT (x57, 0) != 90L)
17259 : return -1;
17260 : x58 = XVECEXP (x3, 0, 22);
17261 : if (XWINT (x58, 0) != 27L)
17262 : return -1;
17263 : x59 = XVECEXP (x3, 0, 23);
17264 : if (XWINT (x59, 0) != 91L)
17265 : return -1;
17266 : x60 = XVECEXP (x3, 0, 24);
17267 : if (XWINT (x60, 0) != 28L)
17268 : return -1;
17269 : x61 = XVECEXP (x3, 0, 25);
17270 : if (XWINT (x61, 0) != 92L)
17271 : return -1;
17272 : x62 = XVECEXP (x3, 0, 26);
17273 : if (XWINT (x62, 0) != 29L)
17274 : return -1;
17275 : x63 = XVECEXP (x3, 0, 27);
17276 : if (XWINT (x63, 0) != 93L)
17277 : return -1;
17278 : x64 = XVECEXP (x3, 0, 28);
17279 : if (XWINT (x64, 0) != 30L)
17280 : return -1;
17281 : x65 = XVECEXP (x3, 0, 29);
17282 : if (XWINT (x65, 0) != 94L)
17283 : return -1;
17284 : x66 = XVECEXP (x3, 0, 30);
17285 : if (XWINT (x66, 0) != 31L)
17286 : return -1;
17287 : x67 = XVECEXP (x3, 0, 31);
17288 : if (XWINT (x67, 0) != 95L
17289 : || XWINT (x4, 0) != 40L
17290 : || XWINT (x5, 0) != 104L
17291 : || XWINT (x6, 0) != 41L
17292 : || XWINT (x7, 0) != 105L
17293 : || XWINT (x8, 0) != 42L
17294 : || XWINT (x9, 0) != 106L
17295 : || XWINT (x10, 0) != 43L
17296 : || XWINT (x11, 0) != 107L
17297 : || XWINT (x12, 0) != 44L
17298 : || XWINT (x13, 0) != 108L
17299 : || XWINT (x14, 0) != 45L
17300 : || XWINT (x15, 0) != 109L
17301 : || XWINT (x16, 0) != 46L
17302 : || XWINT (x17, 0) != 110L
17303 : || XWINT (x18, 0) != 47L
17304 : || XWINT (x19, 0) != 111L
17305 : || XWINT (x20, 0) != 56L
17306 : || XWINT (x21, 0) != 120L
17307 : || XWINT (x22, 0) != 57L
17308 : || XWINT (x23, 0) != 121L
17309 : || XWINT (x24, 0) != 58L
17310 : || XWINT (x25, 0) != 122L
17311 : || XWINT (x26, 0) != 59L
17312 : || XWINT (x27, 0) != 123L
17313 : || XWINT (x28, 0) != 60L
17314 : || XWINT (x29, 0) != 124L
17315 : || XWINT (x30, 0) != 61L
17316 : || XWINT (x31, 0) != 125L
17317 : || XWINT (x32, 0) != 62L
17318 : || XWINT (x33, 0) != 126L
17319 : || XWINT (x34, 0) != 63L
17320 : || XWINT (x35, 0) != 127L
17321 : || !
17322 : #line 19891 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17323 : (TARGET_AVX512BW))
17324 : return -1;
17325 : return 8394; /* avx512bw_interleave_highv64qi */
17326 :
17327 : case 0L:
17328 : x37 = XVECEXP (x3, 0, 1);
17329 : if (XWINT (x37, 0) != 64L)
17330 : return -1;
17331 : x38 = XVECEXP (x3, 0, 2);
17332 : if (XWINT (x38, 0) != 1L)
17333 : return -1;
17334 : x39 = XVECEXP (x3, 0, 3);
17335 : if (XWINT (x39, 0) != 65L)
17336 : return -1;
17337 : x40 = XVECEXP (x3, 0, 4);
17338 : if (XWINT (x40, 0) != 2L)
17339 : return -1;
17340 : x41 = XVECEXP (x3, 0, 5);
17341 : if (XWINT (x41, 0) != 66L)
17342 : return -1;
17343 : x42 = XVECEXP (x3, 0, 6);
17344 : if (XWINT (x42, 0) != 3L)
17345 : return -1;
17346 : x43 = XVECEXP (x3, 0, 7);
17347 : if (XWINT (x43, 0) != 67L)
17348 : return -1;
17349 : x44 = XVECEXP (x3, 0, 8);
17350 : if (XWINT (x44, 0) != 4L)
17351 : return -1;
17352 : x45 = XVECEXP (x3, 0, 9);
17353 : if (XWINT (x45, 0) != 68L)
17354 : return -1;
17355 : x46 = XVECEXP (x3, 0, 10);
17356 : if (XWINT (x46, 0) != 5L)
17357 : return -1;
17358 : x47 = XVECEXP (x3, 0, 11);
17359 : if (XWINT (x47, 0) != 69L)
17360 : return -1;
17361 : x48 = XVECEXP (x3, 0, 12);
17362 : if (XWINT (x48, 0) != 6L)
17363 : return -1;
17364 : x49 = XVECEXP (x3, 0, 13);
17365 : if (XWINT (x49, 0) != 70L)
17366 : return -1;
17367 : x50 = XVECEXP (x3, 0, 14);
17368 : if (XWINT (x50, 0) != 7L)
17369 : return -1;
17370 : x51 = XVECEXP (x3, 0, 15);
17371 : if (XWINT (x51, 0) != 71L)
17372 : return -1;
17373 : x52 = XVECEXP (x3, 0, 16);
17374 : if (XWINT (x52, 0) != 16L)
17375 : return -1;
17376 : x53 = XVECEXP (x3, 0, 17);
17377 : if (XWINT (x53, 0) != 80L)
17378 : return -1;
17379 : x54 = XVECEXP (x3, 0, 18);
17380 : if (XWINT (x54, 0) != 17L)
17381 : return -1;
17382 : x55 = XVECEXP (x3, 0, 19);
17383 : if (XWINT (x55, 0) != 81L)
17384 : return -1;
17385 : x56 = XVECEXP (x3, 0, 20);
17386 : if (XWINT (x56, 0) != 18L)
17387 : return -1;
17388 : x57 = XVECEXP (x3, 0, 21);
17389 : if (XWINT (x57, 0) != 82L)
17390 : return -1;
17391 : x58 = XVECEXP (x3, 0, 22);
17392 : if (XWINT (x58, 0) != 19L)
17393 : return -1;
17394 : x59 = XVECEXP (x3, 0, 23);
17395 : if (XWINT (x59, 0) != 83L)
17396 : return -1;
17397 : x60 = XVECEXP (x3, 0, 24);
17398 : if (XWINT (x60, 0) != 20L)
17399 : return -1;
17400 : x61 = XVECEXP (x3, 0, 25);
17401 : if (XWINT (x61, 0) != 84L)
17402 : return -1;
17403 : x62 = XVECEXP (x3, 0, 26);
17404 : if (XWINT (x62, 0) != 21L)
17405 : return -1;
17406 : x63 = XVECEXP (x3, 0, 27);
17407 : if (XWINT (x63, 0) != 85L)
17408 : return -1;
17409 : x64 = XVECEXP (x3, 0, 28);
17410 : if (XWINT (x64, 0) != 22L)
17411 : return -1;
17412 : x65 = XVECEXP (x3, 0, 29);
17413 : if (XWINT (x65, 0) != 86L)
17414 : return -1;
17415 : x66 = XVECEXP (x3, 0, 30);
17416 : if (XWINT (x66, 0) != 23L)
17417 : return -1;
17418 : x67 = XVECEXP (x3, 0, 31);
17419 : if (XWINT (x67, 0) != 87L
17420 : || XWINT (x4, 0) != 32L
17421 : || XWINT (x5, 0) != 96L
17422 : || XWINT (x6, 0) != 33L
17423 : || XWINT (x7, 0) != 97L
17424 : || XWINT (x8, 0) != 34L
17425 : || XWINT (x9, 0) != 98L
17426 : || XWINT (x10, 0) != 35L
17427 : || XWINT (x11, 0) != 99L
17428 : || XWINT (x12, 0) != 36L
17429 : || XWINT (x13, 0) != 100L
17430 : || XWINT (x14, 0) != 37L
17431 : || XWINT (x15, 0) != 101L
17432 : || XWINT (x16, 0) != 38L
17433 : || XWINT (x17, 0) != 102L
17434 : || XWINT (x18, 0) != 39L
17435 : || XWINT (x19, 0) != 103L
17436 : || XWINT (x20, 0) != 48L
17437 : || XWINT (x21, 0) != 112L
17438 : || XWINT (x22, 0) != 49L
17439 : || XWINT (x23, 0) != 113L
17440 : || XWINT (x24, 0) != 50L
17441 : || XWINT (x25, 0) != 114L
17442 : || XWINT (x26, 0) != 51L
17443 : || XWINT (x27, 0) != 115L
17444 : || XWINT (x28, 0) != 52L
17445 : || XWINT (x29, 0) != 116L
17446 : || XWINT (x30, 0) != 53L
17447 : || XWINT (x31, 0) != 117L
17448 : || XWINT (x32, 0) != 54L
17449 : || XWINT (x33, 0) != 118L
17450 : || XWINT (x34, 0) != 55L
17451 : || XWINT (x35, 0) != 119L
17452 : || !
17453 : #line 19987 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17454 : (TARGET_AVX512BW))
17455 : return -1;
17456 : return 8400; /* avx512bw_interleave_lowv64qi */
17457 :
17458 : default:
17459 : return -1;
17460 : }
17461 : }
17462 :
17463 : int
17464 : recog_300 (rtx x1 ATTRIBUTE_UNUSED,
17465 : rtx_insn *insn ATTRIBUTE_UNUSED,
17466 : int *pnum_clobbers ATTRIBUTE_UNUSED)
17467 : {
17468 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
17469 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
17470 : rtx x10, x11;
17471 : int res ATTRIBUTE_UNUSED;
17472 : x2 = XEXP (x1, 1);
17473 : x3 = XEXP (x2, 1);
17474 : x4 = XVECEXP (x3, 0, 0);
17475 : if (GET_CODE (x4) != CONST_INT)
17476 : return -1;
17477 : x5 = XVECEXP (x3, 0, 1);
17478 : if (GET_CODE (x5) == CONST_INT)
17479 : {
17480 : res = recog_297 (x1, insn, pnum_clobbers);
17481 : if (res >= 0)
17482 : return res;
17483 : }
17484 : operands[2] = x4;
17485 : res = recog_299 (x1, insn, pnum_clobbers);
17486 : if (res >= 0)
17487 : return res;
17488 : if (XWINT (x4, 0) != 0L
17489 : || x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
17490 : return -1;
17491 : x6 = XVECEXP (x3, 0, 2);
17492 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
17493 : return -1;
17494 : x7 = XVECEXP (x3, 0, 3);
17495 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 3]
17496 : || pattern850 (x3,
17497 : 11,
17498 : 10,
17499 : 9,
17500 : 8) != 0
17501 : || !register_operand (operands[0], E_V16HImode)
17502 : || GET_MODE (x2) != E_V16HImode
17503 : || !nonimmediate_operand (operands[1], E_V16HImode)
17504 : || pattern1495 (x3) != 0)
17505 : return -1;
17506 : x8 = XVECEXP (x3, 0, 12);
17507 : operands[6] = x8;
17508 : if (!const_12_to_15_operand (operands[6], E_VOIDmode))
17509 : return -1;
17510 : x9 = XVECEXP (x3, 0, 13);
17511 : operands[7] = x9;
17512 : if (!const_12_to_15_operand (operands[7], E_VOIDmode))
17513 : return -1;
17514 : x10 = XVECEXP (x3, 0, 14);
17515 : operands[8] = x10;
17516 : if (!const_12_to_15_operand (operands[8], E_VOIDmode))
17517 : return -1;
17518 : x11 = XVECEXP (x3, 0, 15);
17519 : operands[9] = x11;
17520 : if (!const_12_to_15_operand (operands[9], E_VOIDmode)
17521 : || !
17522 : #line 21419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17523 : (TARGET_AVX2
17524 : && 1 && 1
17525 : && INTVAL (operands[2]) + 8 == INTVAL (operands[6])
17526 : && INTVAL (operands[3]) + 8 == INTVAL (operands[7])
17527 : && INTVAL (operands[4]) + 8 == INTVAL (operands[8])
17528 : && INTVAL (operands[5]) + 8 == INTVAL (operands[9])))
17529 : return -1;
17530 : return 8526; /* avx2_pshufhw_1 */
17531 : }
17532 :
17533 : int
17534 : recog_306 (rtx x1 ATTRIBUTE_UNUSED,
17535 : rtx_insn *insn ATTRIBUTE_UNUSED,
17536 : int *pnum_clobbers ATTRIBUTE_UNUSED)
17537 : {
17538 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
17539 : rtx x2, x3, x4;
17540 : int res ATTRIBUTE_UNUSED;
17541 : x2 = XEXP (x1, 1);
17542 : x3 = XEXP (x2, 0);
17543 : x4 = XEXP (x3, 0);
17544 : switch (GET_CODE (x4))
17545 : {
17546 : case REG:
17547 : case SUBREG:
17548 : case MEM:
17549 : case NOT:
17550 : switch (pattern537 (x2))
17551 : {
17552 : case 0:
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 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17567 : (TARGET_AVX512F)))
17568 : return -1;
17569 : return 5562; /* *avx512bw_vpternlogv64qi_1 */
17570 :
17571 : case 1:
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 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17586 : (TARGET_AVX)))
17587 : return -1;
17588 : return 5589; /* *avx512vl_vpternlogv32qi_1 */
17589 :
17590 : case 2:
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 : return -1;
17605 : return 5616; /* *avx512vl_vpternlogv16qi_1 */
17606 :
17607 : case 3:
17608 : if (!(
17609 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17610 : ((64 == 64 || TARGET_AVX512VL
17611 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17612 : && ix86_pre_reload_split ()
17613 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17614 : STRIP_UNARY (operands[4]))
17615 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17616 : STRIP_UNARY (operands[4]))
17617 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17618 : STRIP_UNARY (operands[3]))
17619 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17620 : STRIP_UNARY (operands[3])))) &&
17621 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17622 : (TARGET_AVX512F)))
17623 : return -1;
17624 : return 5643; /* *avx512bw_vpternlogv32hi_1 */
17625 :
17626 : case 4:
17627 : if (!(
17628 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17629 : ((32 == 64 || TARGET_AVX512VL
17630 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17631 : && ix86_pre_reload_split ()
17632 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17633 : STRIP_UNARY (operands[4]))
17634 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17635 : STRIP_UNARY (operands[4]))
17636 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17637 : STRIP_UNARY (operands[3]))
17638 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17639 : STRIP_UNARY (operands[3])))) &&
17640 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17641 : (TARGET_AVX)))
17642 : return -1;
17643 : return 5670; /* *avx512vl_vpternlogv16hi_1 */
17644 :
17645 : case 5:
17646 : if (!
17647 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17648 : ((16 == 64 || TARGET_AVX512VL
17649 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17650 : && ix86_pre_reload_split ()
17651 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17652 : STRIP_UNARY (operands[4]))
17653 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17654 : STRIP_UNARY (operands[4]))
17655 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17656 : STRIP_UNARY (operands[3]))
17657 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17658 : STRIP_UNARY (operands[3])))))
17659 : return -1;
17660 : return 5697; /* *avx512vl_vpternlogv8hi_1 */
17661 :
17662 : case 6:
17663 : if (!(
17664 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17665 : ((64 == 64 || TARGET_AVX512VL
17666 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17667 : && ix86_pre_reload_split ()
17668 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17669 : STRIP_UNARY (operands[4]))
17670 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17671 : STRIP_UNARY (operands[4]))
17672 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17673 : STRIP_UNARY (operands[3]))
17674 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17675 : STRIP_UNARY (operands[3])))) &&
17676 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17677 : (TARGET_AVX512F)))
17678 : return -1;
17679 : return 5724; /* *avx512f_vpternlogv16si_1 */
17680 :
17681 : case 7:
17682 : if (!(
17683 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17684 : ((32 == 64 || TARGET_AVX512VL
17685 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17686 : && ix86_pre_reload_split ()
17687 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17688 : STRIP_UNARY (operands[4]))
17689 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17690 : STRIP_UNARY (operands[4]))
17691 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17692 : STRIP_UNARY (operands[3]))
17693 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17694 : STRIP_UNARY (operands[3])))) &&
17695 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17696 : (TARGET_AVX)))
17697 : return -1;
17698 : return 5751; /* *avx512vl_vpternlogv8si_1 */
17699 :
17700 : case 8:
17701 : if (!
17702 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17703 : ((16 == 64 || TARGET_AVX512VL
17704 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17705 : && ix86_pre_reload_split ()
17706 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17707 : STRIP_UNARY (operands[4]))
17708 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17709 : STRIP_UNARY (operands[4]))
17710 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17711 : STRIP_UNARY (operands[3]))
17712 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17713 : STRIP_UNARY (operands[3])))))
17714 : return -1;
17715 : return 5778; /* *avx512vl_vpternlogv4si_1 */
17716 :
17717 : case 9:
17718 : if (!(
17719 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17720 : ((64 == 64 || TARGET_AVX512VL
17721 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17722 : && ix86_pre_reload_split ()
17723 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17724 : STRIP_UNARY (operands[4]))
17725 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17726 : STRIP_UNARY (operands[4]))
17727 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17728 : STRIP_UNARY (operands[3]))
17729 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17730 : STRIP_UNARY (operands[3])))) &&
17731 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17732 : (TARGET_AVX512F)))
17733 : return -1;
17734 : return 5805; /* *avx512f_vpternlogv8di_1 */
17735 :
17736 : case 10:
17737 : if (!(
17738 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17739 : ((32 == 64 || TARGET_AVX512VL
17740 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17741 : && ix86_pre_reload_split ()
17742 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17743 : STRIP_UNARY (operands[4]))
17744 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17745 : STRIP_UNARY (operands[4]))
17746 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17747 : STRIP_UNARY (operands[3]))
17748 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17749 : STRIP_UNARY (operands[3])))) &&
17750 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17751 : (TARGET_AVX)))
17752 : return -1;
17753 : return 5832; /* *avx512vl_vpternlogv4di_1 */
17754 :
17755 : case 11:
17756 : if (!
17757 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17758 : ((16 == 64 || TARGET_AVX512VL
17759 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17760 : && ix86_pre_reload_split ()
17761 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17762 : STRIP_UNARY (operands[4]))
17763 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17764 : STRIP_UNARY (operands[4]))
17765 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17766 : STRIP_UNARY (operands[3]))
17767 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17768 : STRIP_UNARY (operands[3])))))
17769 : return -1;
17770 : return 5859; /* *avx512vl_vpternlogv2di_1 */
17771 :
17772 : case 12:
17773 : if (!(
17774 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17775 : ((64 == 64 || TARGET_AVX512VL
17776 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17777 : && ix86_pre_reload_split ()
17778 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17779 : STRIP_UNARY (operands[4]))
17780 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17781 : STRIP_UNARY (operands[4]))
17782 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17783 : STRIP_UNARY (operands[3]))
17784 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17785 : STRIP_UNARY (operands[3])))) &&
17786 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17787 : (TARGET_AVX512F)))
17788 : return -1;
17789 : return 5565; /* *avx512bw_vpternlogv64qi_1 */
17790 :
17791 : case 13:
17792 : if (!(
17793 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17794 : ((32 == 64 || TARGET_AVX512VL
17795 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17796 : && ix86_pre_reload_split ()
17797 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17798 : STRIP_UNARY (operands[4]))
17799 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17800 : STRIP_UNARY (operands[4]))
17801 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17802 : STRIP_UNARY (operands[3]))
17803 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17804 : STRIP_UNARY (operands[3])))) &&
17805 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17806 : (TARGET_AVX)))
17807 : return -1;
17808 : return 5592; /* *avx512vl_vpternlogv32qi_1 */
17809 :
17810 : case 14:
17811 : if (!
17812 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17813 : ((16 == 64 || TARGET_AVX512VL
17814 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17815 : && ix86_pre_reload_split ()
17816 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17817 : STRIP_UNARY (operands[4]))
17818 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17819 : STRIP_UNARY (operands[4]))
17820 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17821 : STRIP_UNARY (operands[3]))
17822 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17823 : STRIP_UNARY (operands[3])))))
17824 : return -1;
17825 : return 5619; /* *avx512vl_vpternlogv16qi_1 */
17826 :
17827 : case 15:
17828 : if (!(
17829 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17830 : ((64 == 64 || TARGET_AVX512VL
17831 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17832 : && ix86_pre_reload_split ()
17833 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17834 : STRIP_UNARY (operands[4]))
17835 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17836 : STRIP_UNARY (operands[4]))
17837 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17838 : STRIP_UNARY (operands[3]))
17839 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17840 : STRIP_UNARY (operands[3])))) &&
17841 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17842 : (TARGET_AVX512F)))
17843 : return -1;
17844 : return 5646; /* *avx512bw_vpternlogv32hi_1 */
17845 :
17846 : case 16:
17847 : if (!(
17848 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17849 : ((32 == 64 || TARGET_AVX512VL
17850 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17851 : && ix86_pre_reload_split ()
17852 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17853 : STRIP_UNARY (operands[4]))
17854 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17855 : STRIP_UNARY (operands[4]))
17856 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17857 : STRIP_UNARY (operands[3]))
17858 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17859 : STRIP_UNARY (operands[3])))) &&
17860 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17861 : (TARGET_AVX)))
17862 : return -1;
17863 : return 5673; /* *avx512vl_vpternlogv16hi_1 */
17864 :
17865 : case 17:
17866 : if (!
17867 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17868 : ((16 == 64 || TARGET_AVX512VL
17869 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17870 : && ix86_pre_reload_split ()
17871 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17872 : STRIP_UNARY (operands[4]))
17873 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17874 : STRIP_UNARY (operands[4]))
17875 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17876 : STRIP_UNARY (operands[3]))
17877 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17878 : STRIP_UNARY (operands[3])))))
17879 : return -1;
17880 : return 5700; /* *avx512vl_vpternlogv8hi_1 */
17881 :
17882 : case 18:
17883 : if (!(
17884 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17885 : ((64 == 64 || TARGET_AVX512VL
17886 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17887 : && ix86_pre_reload_split ()
17888 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17889 : STRIP_UNARY (operands[4]))
17890 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17891 : STRIP_UNARY (operands[4]))
17892 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17893 : STRIP_UNARY (operands[3]))
17894 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17895 : STRIP_UNARY (operands[3])))) &&
17896 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17897 : (TARGET_AVX512F)))
17898 : return -1;
17899 : return 5727; /* *avx512f_vpternlogv16si_1 */
17900 :
17901 : case 19:
17902 : if (!(
17903 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17904 : ((32 == 64 || TARGET_AVX512VL
17905 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17906 : && ix86_pre_reload_split ()
17907 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17908 : STRIP_UNARY (operands[4]))
17909 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17910 : STRIP_UNARY (operands[4]))
17911 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17912 : STRIP_UNARY (operands[3]))
17913 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17914 : STRIP_UNARY (operands[3])))) &&
17915 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17916 : (TARGET_AVX)))
17917 : return -1;
17918 : return 5754; /* *avx512vl_vpternlogv8si_1 */
17919 :
17920 : case 20:
17921 : if (!
17922 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17923 : ((16 == 64 || TARGET_AVX512VL
17924 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17925 : && ix86_pre_reload_split ()
17926 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17927 : STRIP_UNARY (operands[4]))
17928 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17929 : STRIP_UNARY (operands[4]))
17930 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17931 : STRIP_UNARY (operands[3]))
17932 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17933 : STRIP_UNARY (operands[3])))))
17934 : return -1;
17935 : return 5781; /* *avx512vl_vpternlogv4si_1 */
17936 :
17937 : case 21:
17938 : if (!(
17939 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17940 : ((64 == 64 || TARGET_AVX512VL
17941 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17942 : && ix86_pre_reload_split ()
17943 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17944 : STRIP_UNARY (operands[4]))
17945 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17946 : STRIP_UNARY (operands[4]))
17947 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17948 : STRIP_UNARY (operands[3]))
17949 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17950 : STRIP_UNARY (operands[3])))) &&
17951 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17952 : (TARGET_AVX512F)))
17953 : return -1;
17954 : return 5808; /* *avx512f_vpternlogv8di_1 */
17955 :
17956 : case 22:
17957 : if (!(
17958 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17959 : ((32 == 64 || TARGET_AVX512VL
17960 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17961 : && ix86_pre_reload_split ()
17962 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17963 : STRIP_UNARY (operands[4]))
17964 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17965 : STRIP_UNARY (operands[4]))
17966 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17967 : STRIP_UNARY (operands[3]))
17968 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17969 : STRIP_UNARY (operands[3])))) &&
17970 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17971 : (TARGET_AVX)))
17972 : return -1;
17973 : return 5835; /* *avx512vl_vpternlogv4di_1 */
17974 :
17975 : case 23:
17976 : if (!
17977 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17978 : ((16 == 64 || TARGET_AVX512VL
17979 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17980 : && ix86_pre_reload_split ()
17981 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17982 : STRIP_UNARY (operands[4]))
17983 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17984 : STRIP_UNARY (operands[4]))
17985 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17986 : STRIP_UNARY (operands[3]))
17987 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17988 : STRIP_UNARY (operands[3])))))
17989 : return -1;
17990 : return 5862; /* *avx512vl_vpternlogv2di_1 */
17991 :
17992 : case 24:
17993 : if (!(
17994 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17995 : ((64 == 64 || TARGET_AVX512VL
17996 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17997 : && ix86_pre_reload_split ()
17998 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17999 : STRIP_UNARY (operands[4]))
18000 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18001 : STRIP_UNARY (operands[4]))
18002 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18003 : STRIP_UNARY (operands[3]))
18004 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18005 : STRIP_UNARY (operands[3])))) &&
18006 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18007 : (TARGET_AVX512F)))
18008 : return -1;
18009 : return 5568; /* *avx512bw_vpternlogv64qi_1 */
18010 :
18011 : case 25:
18012 : if (!(
18013 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18014 : ((32 == 64 || TARGET_AVX512VL
18015 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18016 : && ix86_pre_reload_split ()
18017 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18018 : STRIP_UNARY (operands[4]))
18019 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18020 : STRIP_UNARY (operands[4]))
18021 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18022 : STRIP_UNARY (operands[3]))
18023 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18024 : STRIP_UNARY (operands[3])))) &&
18025 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18026 : (TARGET_AVX)))
18027 : return -1;
18028 : return 5595; /* *avx512vl_vpternlogv32qi_1 */
18029 :
18030 : case 26:
18031 : if (!
18032 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18033 : ((16 == 64 || TARGET_AVX512VL
18034 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18035 : && ix86_pre_reload_split ()
18036 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18037 : STRIP_UNARY (operands[4]))
18038 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18039 : STRIP_UNARY (operands[4]))
18040 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18041 : STRIP_UNARY (operands[3]))
18042 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18043 : STRIP_UNARY (operands[3])))))
18044 : return -1;
18045 : return 5622; /* *avx512vl_vpternlogv16qi_1 */
18046 :
18047 : case 27:
18048 : if (!(
18049 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18050 : ((64 == 64 || TARGET_AVX512VL
18051 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18052 : && ix86_pre_reload_split ()
18053 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18054 : STRIP_UNARY (operands[4]))
18055 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18056 : STRIP_UNARY (operands[4]))
18057 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18058 : STRIP_UNARY (operands[3]))
18059 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18060 : STRIP_UNARY (operands[3])))) &&
18061 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18062 : (TARGET_AVX512F)))
18063 : return -1;
18064 : return 5649; /* *avx512bw_vpternlogv32hi_1 */
18065 :
18066 : case 28:
18067 : if (!(
18068 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18069 : ((32 == 64 || TARGET_AVX512VL
18070 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18071 : && ix86_pre_reload_split ()
18072 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18073 : STRIP_UNARY (operands[4]))
18074 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18075 : STRIP_UNARY (operands[4]))
18076 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18077 : STRIP_UNARY (operands[3]))
18078 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18079 : STRIP_UNARY (operands[3])))) &&
18080 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18081 : (TARGET_AVX)))
18082 : return -1;
18083 : return 5676; /* *avx512vl_vpternlogv16hi_1 */
18084 :
18085 : case 29:
18086 : if (!
18087 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18088 : ((16 == 64 || TARGET_AVX512VL
18089 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18090 : && ix86_pre_reload_split ()
18091 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18092 : STRIP_UNARY (operands[4]))
18093 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18094 : STRIP_UNARY (operands[4]))
18095 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18096 : STRIP_UNARY (operands[3]))
18097 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18098 : STRIP_UNARY (operands[3])))))
18099 : return -1;
18100 : return 5703; /* *avx512vl_vpternlogv8hi_1 */
18101 :
18102 : case 30:
18103 : if (!(
18104 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18105 : ((64 == 64 || TARGET_AVX512VL
18106 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18107 : && ix86_pre_reload_split ()
18108 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18109 : STRIP_UNARY (operands[4]))
18110 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18111 : STRIP_UNARY (operands[4]))
18112 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18113 : STRIP_UNARY (operands[3]))
18114 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18115 : STRIP_UNARY (operands[3])))) &&
18116 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18117 : (TARGET_AVX512F)))
18118 : return -1;
18119 : return 5730; /* *avx512f_vpternlogv16si_1 */
18120 :
18121 : case 31:
18122 : if (!(
18123 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18124 : ((32 == 64 || TARGET_AVX512VL
18125 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18126 : && ix86_pre_reload_split ()
18127 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18128 : STRIP_UNARY (operands[4]))
18129 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18130 : STRIP_UNARY (operands[4]))
18131 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18132 : STRIP_UNARY (operands[3]))
18133 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18134 : STRIP_UNARY (operands[3])))) &&
18135 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18136 : (TARGET_AVX)))
18137 : return -1;
18138 : return 5757; /* *avx512vl_vpternlogv8si_1 */
18139 :
18140 : case 32:
18141 : if (!
18142 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18143 : ((16 == 64 || TARGET_AVX512VL
18144 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18145 : && ix86_pre_reload_split ()
18146 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18147 : STRIP_UNARY (operands[4]))
18148 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18149 : STRIP_UNARY (operands[4]))
18150 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18151 : STRIP_UNARY (operands[3]))
18152 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18153 : STRIP_UNARY (operands[3])))))
18154 : return -1;
18155 : return 5784; /* *avx512vl_vpternlogv4si_1 */
18156 :
18157 : case 33:
18158 : if (!(
18159 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18160 : ((64 == 64 || TARGET_AVX512VL
18161 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18162 : && ix86_pre_reload_split ()
18163 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18164 : STRIP_UNARY (operands[4]))
18165 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18166 : STRIP_UNARY (operands[4]))
18167 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18168 : STRIP_UNARY (operands[3]))
18169 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18170 : STRIP_UNARY (operands[3])))) &&
18171 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18172 : (TARGET_AVX512F)))
18173 : return -1;
18174 : return 5811; /* *avx512f_vpternlogv8di_1 */
18175 :
18176 : case 34:
18177 : if (!(
18178 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18179 : ((32 == 64 || TARGET_AVX512VL
18180 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18181 : && ix86_pre_reload_split ()
18182 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18183 : STRIP_UNARY (operands[4]))
18184 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18185 : STRIP_UNARY (operands[4]))
18186 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18187 : STRIP_UNARY (operands[3]))
18188 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18189 : STRIP_UNARY (operands[3])))) &&
18190 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18191 : (TARGET_AVX)))
18192 : return -1;
18193 : return 5838; /* *avx512vl_vpternlogv4di_1 */
18194 :
18195 : case 35:
18196 : if (!
18197 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18198 : ((16 == 64 || TARGET_AVX512VL
18199 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18200 : && ix86_pre_reload_split ()
18201 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18202 : STRIP_UNARY (operands[4]))
18203 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18204 : STRIP_UNARY (operands[4]))
18205 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18206 : STRIP_UNARY (operands[3]))
18207 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18208 : STRIP_UNARY (operands[3])))))
18209 : return -1;
18210 : return 5865; /* *avx512vl_vpternlogv2di_1 */
18211 :
18212 : case 36:
18213 : if (!(
18214 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18215 : ((64 == 64 || TARGET_AVX512VL
18216 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18217 : && ix86_pre_reload_split ()) &&
18218 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18219 : (TARGET_AVX512F)))
18220 : return -1;
18221 : return 6846; /* *avx512bw_vpternlogv64qi_3 */
18222 :
18223 : case 37:
18224 : if (!(
18225 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18226 : ((32 == 64 || TARGET_AVX512VL
18227 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18228 : && ix86_pre_reload_split ()) &&
18229 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18230 : (TARGET_AVX)))
18231 : return -1;
18232 : return 6855; /* *avx512vl_vpternlogv32qi_3 */
18233 :
18234 : case 38:
18235 : if (!
18236 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18237 : ((16 == 64 || TARGET_AVX512VL
18238 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18239 : && ix86_pre_reload_split ()))
18240 : return -1;
18241 : return 6864; /* *avx512vl_vpternlogv16qi_3 */
18242 :
18243 : case 39:
18244 : if (!(
18245 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18246 : ((64 == 64 || TARGET_AVX512VL
18247 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18248 : && ix86_pre_reload_split ()) &&
18249 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18250 : (TARGET_AVX512F)))
18251 : return -1;
18252 : return 6873; /* *avx512bw_vpternlogv32hi_3 */
18253 :
18254 : case 40:
18255 : if (!(
18256 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18257 : ((32 == 64 || TARGET_AVX512VL
18258 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18259 : && ix86_pre_reload_split ()) &&
18260 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18261 : (TARGET_AVX)))
18262 : return -1;
18263 : return 6882; /* *avx512vl_vpternlogv16hi_3 */
18264 :
18265 : case 41:
18266 : if (!
18267 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18268 : ((16 == 64 || TARGET_AVX512VL
18269 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18270 : && ix86_pre_reload_split ()))
18271 : return -1;
18272 : return 6891; /* *avx512vl_vpternlogv8hi_3 */
18273 :
18274 : case 42:
18275 : if (!(
18276 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18277 : ((64 == 64 || TARGET_AVX512VL
18278 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18279 : && ix86_pre_reload_split ()) &&
18280 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18281 : (TARGET_AVX512F)))
18282 : return -1;
18283 : return 6900; /* *avx512f_vpternlogv16si_3 */
18284 :
18285 : case 43:
18286 : if (!(
18287 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18288 : ((32 == 64 || TARGET_AVX512VL
18289 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18290 : && ix86_pre_reload_split ()) &&
18291 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18292 : (TARGET_AVX)))
18293 : return -1;
18294 : return 6909; /* *avx512vl_vpternlogv8si_3 */
18295 :
18296 : case 44:
18297 : if (!
18298 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18299 : ((16 == 64 || TARGET_AVX512VL
18300 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18301 : && ix86_pre_reload_split ()))
18302 : return -1;
18303 : return 6918; /* *avx512vl_vpternlogv4si_3 */
18304 :
18305 : case 45:
18306 : if (!(
18307 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18308 : ((64 == 64 || TARGET_AVX512VL
18309 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18310 : && ix86_pre_reload_split ()) &&
18311 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18312 : (TARGET_AVX512F)))
18313 : return -1;
18314 : return 6927; /* *avx512f_vpternlogv8di_3 */
18315 :
18316 : case 46:
18317 : if (!(
18318 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18319 : ((32 == 64 || TARGET_AVX512VL
18320 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18321 : && ix86_pre_reload_split ()) &&
18322 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18323 : (TARGET_AVX)))
18324 : return -1;
18325 : return 6936; /* *avx512vl_vpternlogv4di_3 */
18326 :
18327 : case 47:
18328 : if (!
18329 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18330 : ((16 == 64 || TARGET_AVX512VL
18331 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18332 : && ix86_pre_reload_split ()))
18333 : return -1;
18334 : return 6945; /* *avx512vl_vpternlogv2di_3 */
18335 :
18336 : default:
18337 : return -1;
18338 : }
18339 :
18340 : case AND:
18341 : switch (pattern539 (x2))
18342 : {
18343 : case 0:
18344 : if (!(
18345 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18346 : ((64 == 64 || TARGET_AVX512VL
18347 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18348 : && ix86_pre_reload_split ()
18349 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18350 : STRIP_UNARY (operands[4]))
18351 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18352 : STRIP_UNARY (operands[4]))
18353 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18354 : STRIP_UNARY (operands[3]))
18355 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18356 : STRIP_UNARY (operands[3])))) &&
18357 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18358 : (TARGET_AVX512F)))
18359 : return -1;
18360 : return 6210; /* *avx512bw_vpternlogv64qi_2 */
18361 :
18362 : case 1:
18363 : if (!(
18364 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18365 : ((32 == 64 || TARGET_AVX512VL
18366 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18367 : && ix86_pre_reload_split ()
18368 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18369 : STRIP_UNARY (operands[4]))
18370 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18371 : STRIP_UNARY (operands[4]))
18372 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18373 : STRIP_UNARY (operands[3]))
18374 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18375 : STRIP_UNARY (operands[3])))) &&
18376 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18377 : (TARGET_AVX)))
18378 : return -1;
18379 : return 6237; /* *avx512vl_vpternlogv32qi_2 */
18380 :
18381 : case 2:
18382 : if (!
18383 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18384 : ((16 == 64 || TARGET_AVX512VL
18385 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18386 : && ix86_pre_reload_split ()
18387 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18388 : STRIP_UNARY (operands[4]))
18389 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18390 : STRIP_UNARY (operands[4]))
18391 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18392 : STRIP_UNARY (operands[3]))
18393 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18394 : STRIP_UNARY (operands[3])))))
18395 : return -1;
18396 : return 6264; /* *avx512vl_vpternlogv16qi_2 */
18397 :
18398 : case 3:
18399 : if (!(
18400 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18401 : ((64 == 64 || TARGET_AVX512VL
18402 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18403 : && ix86_pre_reload_split ()
18404 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18405 : STRIP_UNARY (operands[4]))
18406 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18407 : STRIP_UNARY (operands[4]))
18408 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18409 : STRIP_UNARY (operands[3]))
18410 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18411 : STRIP_UNARY (operands[3])))) &&
18412 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18413 : (TARGET_AVX512F)))
18414 : return -1;
18415 : return 6291; /* *avx512bw_vpternlogv32hi_2 */
18416 :
18417 : case 4:
18418 : if (!(
18419 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18420 : ((32 == 64 || TARGET_AVX512VL
18421 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18422 : && ix86_pre_reload_split ()
18423 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18424 : STRIP_UNARY (operands[4]))
18425 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18426 : STRIP_UNARY (operands[4]))
18427 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18428 : STRIP_UNARY (operands[3]))
18429 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18430 : STRIP_UNARY (operands[3])))) &&
18431 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18432 : (TARGET_AVX)))
18433 : return -1;
18434 : return 6318; /* *avx512vl_vpternlogv16hi_2 */
18435 :
18436 : case 5:
18437 : if (!
18438 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18439 : ((16 == 64 || TARGET_AVX512VL
18440 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18441 : && ix86_pre_reload_split ()
18442 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18443 : STRIP_UNARY (operands[4]))
18444 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18445 : STRIP_UNARY (operands[4]))
18446 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18447 : STRIP_UNARY (operands[3]))
18448 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18449 : STRIP_UNARY (operands[3])))))
18450 : return -1;
18451 : return 6345; /* *avx512vl_vpternlogv8hi_2 */
18452 :
18453 : case 6:
18454 : if (!(
18455 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18456 : ((64 == 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 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18468 : (TARGET_AVX512F)))
18469 : return -1;
18470 : return 6372; /* *avx512f_vpternlogv16si_2 */
18471 :
18472 : case 7:
18473 : if (!(
18474 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18475 : ((32 == 64 || TARGET_AVX512VL
18476 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18477 : && ix86_pre_reload_split ()
18478 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18479 : STRIP_UNARY (operands[4]))
18480 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18481 : STRIP_UNARY (operands[4]))
18482 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18483 : STRIP_UNARY (operands[3]))
18484 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18485 : STRIP_UNARY (operands[3])))) &&
18486 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18487 : (TARGET_AVX)))
18488 : return -1;
18489 : return 6399; /* *avx512vl_vpternlogv8si_2 */
18490 :
18491 : case 8:
18492 : if (!
18493 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18494 : ((16 == 64 || TARGET_AVX512VL
18495 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18496 : && ix86_pre_reload_split ()
18497 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18498 : STRIP_UNARY (operands[4]))
18499 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18500 : STRIP_UNARY (operands[4]))
18501 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18502 : STRIP_UNARY (operands[3]))
18503 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18504 : STRIP_UNARY (operands[3])))))
18505 : return -1;
18506 : return 6426; /* *avx512vl_vpternlogv4si_2 */
18507 :
18508 : case 9:
18509 : if (!(
18510 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18511 : ((64 == 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 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18523 : (TARGET_AVX512F)))
18524 : return -1;
18525 : return 6453; /* *avx512f_vpternlogv8di_2 */
18526 :
18527 : case 10:
18528 : if (!(
18529 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18530 : ((32 == 64 || TARGET_AVX512VL
18531 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18532 : && ix86_pre_reload_split ()
18533 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18534 : STRIP_UNARY (operands[4]))
18535 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18536 : STRIP_UNARY (operands[4]))
18537 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18538 : STRIP_UNARY (operands[3]))
18539 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18540 : STRIP_UNARY (operands[3])))) &&
18541 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18542 : (TARGET_AVX)))
18543 : return -1;
18544 : return 6480; /* *avx512vl_vpternlogv4di_2 */
18545 :
18546 : case 11:
18547 : if (!
18548 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18549 : ((16 == 64 || TARGET_AVX512VL
18550 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18551 : && ix86_pre_reload_split ()
18552 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18553 : STRIP_UNARY (operands[4]))
18554 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18555 : STRIP_UNARY (operands[4]))
18556 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18557 : STRIP_UNARY (operands[3]))
18558 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18559 : STRIP_UNARY (operands[3])))))
18560 : return -1;
18561 : return 6507; /* *avx512vl_vpternlogv2di_2 */
18562 :
18563 : default:
18564 : return -1;
18565 : }
18566 :
18567 : case IOR:
18568 : switch (pattern539 (x2))
18569 : {
18570 : case 0:
18571 : if (!(
18572 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18573 : ((64 == 64 || TARGET_AVX512VL
18574 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18575 : && ix86_pre_reload_split ()
18576 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18577 : STRIP_UNARY (operands[4]))
18578 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18579 : STRIP_UNARY (operands[4]))
18580 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18581 : STRIP_UNARY (operands[3]))
18582 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18583 : STRIP_UNARY (operands[3])))) &&
18584 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18585 : (TARGET_AVX512F)))
18586 : return -1;
18587 : return 6213; /* *avx512bw_vpternlogv64qi_2 */
18588 :
18589 : case 1:
18590 : if (!(
18591 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18592 : ((32 == 64 || TARGET_AVX512VL
18593 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18594 : && ix86_pre_reload_split ()
18595 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18596 : STRIP_UNARY (operands[4]))
18597 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18598 : STRIP_UNARY (operands[4]))
18599 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18600 : STRIP_UNARY (operands[3]))
18601 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18602 : STRIP_UNARY (operands[3])))) &&
18603 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18604 : (TARGET_AVX)))
18605 : return -1;
18606 : return 6240; /* *avx512vl_vpternlogv32qi_2 */
18607 :
18608 : case 2:
18609 : if (!
18610 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18611 : ((16 == 64 || TARGET_AVX512VL
18612 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18613 : && ix86_pre_reload_split ()
18614 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18615 : STRIP_UNARY (operands[4]))
18616 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18617 : STRIP_UNARY (operands[4]))
18618 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18619 : STRIP_UNARY (operands[3]))
18620 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18621 : STRIP_UNARY (operands[3])))))
18622 : return -1;
18623 : return 6267; /* *avx512vl_vpternlogv16qi_2 */
18624 :
18625 : case 3:
18626 : if (!(
18627 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18628 : ((64 == 64 || TARGET_AVX512VL
18629 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18630 : && ix86_pre_reload_split ()
18631 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18632 : STRIP_UNARY (operands[4]))
18633 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18634 : STRIP_UNARY (operands[4]))
18635 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18636 : STRIP_UNARY (operands[3]))
18637 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18638 : STRIP_UNARY (operands[3])))) &&
18639 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18640 : (TARGET_AVX512F)))
18641 : return -1;
18642 : return 6294; /* *avx512bw_vpternlogv32hi_2 */
18643 :
18644 : case 4:
18645 : if (!(
18646 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18647 : ((32 == 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 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18659 : (TARGET_AVX)))
18660 : return -1;
18661 : return 6321; /* *avx512vl_vpternlogv16hi_2 */
18662 :
18663 : case 5:
18664 : if (!
18665 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18666 : ((16 == 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 : return -1;
18678 : return 6348; /* *avx512vl_vpternlogv8hi_2 */
18679 :
18680 : case 6:
18681 : if (!(
18682 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18683 : ((64 == 64 || TARGET_AVX512VL
18684 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18685 : && ix86_pre_reload_split ()
18686 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18687 : STRIP_UNARY (operands[4]))
18688 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18689 : STRIP_UNARY (operands[4]))
18690 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18691 : STRIP_UNARY (operands[3]))
18692 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18693 : STRIP_UNARY (operands[3])))) &&
18694 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18695 : (TARGET_AVX512F)))
18696 : return -1;
18697 : return 6375; /* *avx512f_vpternlogv16si_2 */
18698 :
18699 : case 7:
18700 : if (!(
18701 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18702 : ((32 == 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 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18714 : (TARGET_AVX)))
18715 : return -1;
18716 : return 6402; /* *avx512vl_vpternlogv8si_2 */
18717 :
18718 : case 8:
18719 : if (!
18720 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18721 : ((16 == 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 : return -1;
18733 : return 6429; /* *avx512vl_vpternlogv4si_2 */
18734 :
18735 : case 9:
18736 : if (!(
18737 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18738 : ((64 == 64 || TARGET_AVX512VL
18739 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18740 : && ix86_pre_reload_split ()
18741 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18742 : STRIP_UNARY (operands[4]))
18743 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18744 : STRIP_UNARY (operands[4]))
18745 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18746 : STRIP_UNARY (operands[3]))
18747 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18748 : STRIP_UNARY (operands[3])))) &&
18749 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18750 : (TARGET_AVX512F)))
18751 : return -1;
18752 : return 6456; /* *avx512f_vpternlogv8di_2 */
18753 :
18754 : case 10:
18755 : if (!(
18756 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18757 : ((32 == 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 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18769 : (TARGET_AVX)))
18770 : return -1;
18771 : return 6483; /* *avx512vl_vpternlogv4di_2 */
18772 :
18773 : case 11:
18774 : if (!
18775 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18776 : ((16 == 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 : return -1;
18788 : return 6510; /* *avx512vl_vpternlogv2di_2 */
18789 :
18790 : default:
18791 : return -1;
18792 : }
18793 :
18794 : case XOR:
18795 : switch (pattern539 (x2))
18796 : {
18797 : case 0:
18798 : if (!(
18799 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18800 : ((64 == 64 || TARGET_AVX512VL
18801 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18802 : && ix86_pre_reload_split ()
18803 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18804 : STRIP_UNARY (operands[4]))
18805 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18806 : STRIP_UNARY (operands[4]))
18807 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18808 : STRIP_UNARY (operands[3]))
18809 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18810 : STRIP_UNARY (operands[3])))) &&
18811 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18812 : (TARGET_AVX512F)))
18813 : return -1;
18814 : return 6216; /* *avx512bw_vpternlogv64qi_2 */
18815 :
18816 : case 1:
18817 : if (!(
18818 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18819 : ((32 == 64 || TARGET_AVX512VL
18820 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18821 : && ix86_pre_reload_split ()
18822 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18823 : STRIP_UNARY (operands[4]))
18824 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18825 : STRIP_UNARY (operands[4]))
18826 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18827 : STRIP_UNARY (operands[3]))
18828 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18829 : STRIP_UNARY (operands[3])))) &&
18830 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18831 : (TARGET_AVX)))
18832 : return -1;
18833 : return 6243; /* *avx512vl_vpternlogv32qi_2 */
18834 :
18835 : case 2:
18836 : if (!
18837 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18838 : ((16 == 64 || TARGET_AVX512VL
18839 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18840 : && ix86_pre_reload_split ()
18841 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18842 : STRIP_UNARY (operands[4]))
18843 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18844 : STRIP_UNARY (operands[4]))
18845 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18846 : STRIP_UNARY (operands[3]))
18847 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18848 : STRIP_UNARY (operands[3])))))
18849 : return -1;
18850 : return 6270; /* *avx512vl_vpternlogv16qi_2 */
18851 :
18852 : case 3:
18853 : if (!(
18854 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18855 : ((64 == 64 || TARGET_AVX512VL
18856 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18857 : && ix86_pre_reload_split ()
18858 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18859 : STRIP_UNARY (operands[4]))
18860 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18861 : STRIP_UNARY (operands[4]))
18862 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18863 : STRIP_UNARY (operands[3]))
18864 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18865 : STRIP_UNARY (operands[3])))) &&
18866 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18867 : (TARGET_AVX512F)))
18868 : return -1;
18869 : return 6297; /* *avx512bw_vpternlogv32hi_2 */
18870 :
18871 : case 4:
18872 : if (!(
18873 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18874 : ((32 == 64 || TARGET_AVX512VL
18875 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18876 : && ix86_pre_reload_split ()
18877 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18878 : STRIP_UNARY (operands[4]))
18879 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18880 : STRIP_UNARY (operands[4]))
18881 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18882 : STRIP_UNARY (operands[3]))
18883 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18884 : STRIP_UNARY (operands[3])))) &&
18885 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18886 : (TARGET_AVX)))
18887 : return -1;
18888 : return 6324; /* *avx512vl_vpternlogv16hi_2 */
18889 :
18890 : case 5:
18891 : if (!
18892 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18893 : ((16 == 64 || TARGET_AVX512VL
18894 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18895 : && ix86_pre_reload_split ()
18896 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18897 : STRIP_UNARY (operands[4]))
18898 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18899 : STRIP_UNARY (operands[4]))
18900 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18901 : STRIP_UNARY (operands[3]))
18902 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18903 : STRIP_UNARY (operands[3])))))
18904 : return -1;
18905 : return 6351; /* *avx512vl_vpternlogv8hi_2 */
18906 :
18907 : case 6:
18908 : if (!(
18909 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18910 : ((64 == 64 || TARGET_AVX512VL
18911 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18912 : && ix86_pre_reload_split ()
18913 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18914 : STRIP_UNARY (operands[4]))
18915 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18916 : STRIP_UNARY (operands[4]))
18917 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18918 : STRIP_UNARY (operands[3]))
18919 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18920 : STRIP_UNARY (operands[3])))) &&
18921 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18922 : (TARGET_AVX512F)))
18923 : return -1;
18924 : return 6378; /* *avx512f_vpternlogv16si_2 */
18925 :
18926 : case 7:
18927 : if (!(
18928 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18929 : ((32 == 64 || TARGET_AVX512VL
18930 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18931 : && ix86_pre_reload_split ()
18932 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18933 : STRIP_UNARY (operands[4]))
18934 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18935 : STRIP_UNARY (operands[4]))
18936 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18937 : STRIP_UNARY (operands[3]))
18938 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18939 : STRIP_UNARY (operands[3])))) &&
18940 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18941 : (TARGET_AVX)))
18942 : return -1;
18943 : return 6405; /* *avx512vl_vpternlogv8si_2 */
18944 :
18945 : case 8:
18946 : if (!
18947 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18948 : ((16 == 64 || TARGET_AVX512VL
18949 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18950 : && ix86_pre_reload_split ()
18951 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18952 : STRIP_UNARY (operands[4]))
18953 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18954 : STRIP_UNARY (operands[4]))
18955 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18956 : STRIP_UNARY (operands[3]))
18957 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18958 : STRIP_UNARY (operands[3])))))
18959 : return -1;
18960 : return 6432; /* *avx512vl_vpternlogv4si_2 */
18961 :
18962 : case 9:
18963 : if (!(
18964 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18965 : ((64 == 64 || TARGET_AVX512VL
18966 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18967 : && ix86_pre_reload_split ()
18968 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18969 : STRIP_UNARY (operands[4]))
18970 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18971 : STRIP_UNARY (operands[4]))
18972 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18973 : STRIP_UNARY (operands[3]))
18974 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18975 : STRIP_UNARY (operands[3])))) &&
18976 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18977 : (TARGET_AVX512F)))
18978 : return -1;
18979 : return 6459; /* *avx512f_vpternlogv8di_2 */
18980 :
18981 : case 10:
18982 : if (!(
18983 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18984 : ((32 == 64 || TARGET_AVX512VL
18985 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18986 : && ix86_pre_reload_split ()
18987 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18988 : STRIP_UNARY (operands[4]))
18989 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18990 : STRIP_UNARY (operands[4]))
18991 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18992 : STRIP_UNARY (operands[3]))
18993 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18994 : STRIP_UNARY (operands[3])))) &&
18995 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18996 : (TARGET_AVX)))
18997 : return -1;
18998 : return 6486; /* *avx512vl_vpternlogv4di_2 */
18999 :
19000 : case 11:
19001 : if (!
19002 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19003 : ((16 == 64 || TARGET_AVX512VL
19004 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19005 : && ix86_pre_reload_split ()
19006 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19007 : STRIP_UNARY (operands[4]))
19008 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19009 : STRIP_UNARY (operands[4]))
19010 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19011 : STRIP_UNARY (operands[3]))
19012 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19013 : STRIP_UNARY (operands[3])))))
19014 : return -1;
19015 : return 6513; /* *avx512vl_vpternlogv2di_2 */
19016 :
19017 : default:
19018 : return -1;
19019 : }
19020 :
19021 : default:
19022 : return -1;
19023 : }
19024 : }
19025 :
19026 : int
19027 : recog_316 (rtx x1 ATTRIBUTE_UNUSED,
19028 : rtx_insn *insn ATTRIBUTE_UNUSED,
19029 : int *pnum_clobbers ATTRIBUTE_UNUSED)
19030 : {
19031 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
19032 : rtx x2, x3, x4;
19033 : int res ATTRIBUTE_UNUSED;
19034 : x2 = XEXP (x1, 1);
19035 : x3 = XEXP (x2, 0);
19036 : x4 = XEXP (x3, 0);
19037 : switch (GET_CODE (x4))
19038 : {
19039 : case REG:
19040 : case SUBREG:
19041 : case MEM:
19042 : case NOT:
19043 : switch (pattern543 (x2))
19044 : {
19045 : case 0:
19046 : if (!(
19047 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19048 : ((64 == 64 || TARGET_AVX512VL
19049 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19050 : && ix86_pre_reload_split ()
19051 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19052 : STRIP_UNARY (operands[4]))
19053 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19054 : STRIP_UNARY (operands[4]))
19055 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19056 : STRIP_UNARY (operands[3]))
19057 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19058 : STRIP_UNARY (operands[3])))) &&
19059 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19060 : (TARGET_AVX512F)))
19061 : return -1;
19062 : return 5888; /* *avx512bw_vpternlogv32hf_1 */
19063 :
19064 : case 1:
19065 : if (!(
19066 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19067 : ((32 == 64 || TARGET_AVX512VL
19068 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19069 : && ix86_pre_reload_split ()
19070 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19071 : STRIP_UNARY (operands[4]))
19072 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19073 : STRIP_UNARY (operands[4]))
19074 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19075 : STRIP_UNARY (operands[3]))
19076 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19077 : STRIP_UNARY (operands[3])))) &&
19078 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19079 : (TARGET_AVX)))
19080 : return -1;
19081 : return 5915; /* *avx512vl_vpternlogv16hf_1 */
19082 :
19083 : case 2:
19084 : if (!
19085 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19086 : ((16 == 64 || TARGET_AVX512VL
19087 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19088 : && ix86_pre_reload_split ()
19089 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19090 : STRIP_UNARY (operands[4]))
19091 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19092 : STRIP_UNARY (operands[4]))
19093 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19094 : STRIP_UNARY (operands[3]))
19095 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19096 : STRIP_UNARY (operands[3])))))
19097 : return -1;
19098 : return 5942; /* *avx512fp16_vpternlogv8hf_1 */
19099 :
19100 : case 3:
19101 : if (!(
19102 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19103 : ((64 == 64 || TARGET_AVX512VL
19104 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19105 : && ix86_pre_reload_split ()
19106 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19107 : STRIP_UNARY (operands[4]))
19108 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19109 : STRIP_UNARY (operands[4]))
19110 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19111 : STRIP_UNARY (operands[3]))
19112 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19113 : STRIP_UNARY (operands[3])))) &&
19114 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19115 : (TARGET_AVX512F)))
19116 : return -1;
19117 : return 5969; /* *avx512bw_vpternlogv32bf_1 */
19118 :
19119 : case 4:
19120 : if (!(
19121 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19122 : ((32 == 64 || TARGET_AVX512VL
19123 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19124 : && ix86_pre_reload_split ()
19125 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19126 : STRIP_UNARY (operands[4]))
19127 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19128 : STRIP_UNARY (operands[4]))
19129 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19130 : STRIP_UNARY (operands[3]))
19131 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19132 : STRIP_UNARY (operands[3])))) &&
19133 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19134 : (TARGET_AVX)))
19135 : return -1;
19136 : return 5996; /* *avx512vl_vpternlogv16bf_1 */
19137 :
19138 : case 5:
19139 : if (!
19140 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19141 : ((16 == 64 || TARGET_AVX512VL
19142 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19143 : && ix86_pre_reload_split ()
19144 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19145 : STRIP_UNARY (operands[4]))
19146 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19147 : STRIP_UNARY (operands[4]))
19148 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19149 : STRIP_UNARY (operands[3]))
19150 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19151 : STRIP_UNARY (operands[3])))))
19152 : return -1;
19153 : return 6023; /* *avx512vl_vpternlogv8bf_1 */
19154 :
19155 : case 6:
19156 : if (!(
19157 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19158 : ((64 == 64 || TARGET_AVX512VL
19159 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19160 : && ix86_pre_reload_split ()
19161 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19162 : STRIP_UNARY (operands[4]))
19163 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19164 : STRIP_UNARY (operands[4]))
19165 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19166 : STRIP_UNARY (operands[3]))
19167 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19168 : STRIP_UNARY (operands[3])))) &&
19169 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19170 : (TARGET_AVX512F)))
19171 : return -1;
19172 : return 6050; /* *avx512f_vpternlogv16sf_1 */
19173 :
19174 : case 7:
19175 : if (!(
19176 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19177 : ((32 == 64 || TARGET_AVX512VL
19178 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19179 : && ix86_pre_reload_split ()
19180 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19181 : STRIP_UNARY (operands[4]))
19182 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19183 : STRIP_UNARY (operands[4]))
19184 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19185 : STRIP_UNARY (operands[3]))
19186 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19187 : STRIP_UNARY (operands[3])))) &&
19188 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19189 : (TARGET_AVX)))
19190 : return -1;
19191 : return 6077; /* *avx512vl_vpternlogv8sf_1 */
19192 :
19193 : case 8:
19194 : if (!
19195 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19196 : ((16 == 64 || TARGET_AVX512VL
19197 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19198 : && ix86_pre_reload_split ()
19199 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19200 : STRIP_UNARY (operands[4]))
19201 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19202 : STRIP_UNARY (operands[4]))
19203 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19204 : STRIP_UNARY (operands[3]))
19205 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19206 : STRIP_UNARY (operands[3])))))
19207 : return -1;
19208 : return 6104; /* *avx512vl_vpternlogv4sf_1 */
19209 :
19210 : case 9:
19211 : if (!(
19212 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19213 : ((64 == 64 || TARGET_AVX512VL
19214 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19215 : && ix86_pre_reload_split ()
19216 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19217 : STRIP_UNARY (operands[4]))
19218 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19219 : STRIP_UNARY (operands[4]))
19220 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19221 : STRIP_UNARY (operands[3]))
19222 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19223 : STRIP_UNARY (operands[3])))) &&
19224 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19225 : (TARGET_AVX512F)))
19226 : return -1;
19227 : return 6131; /* *avx512f_vpternlogv8df_1 */
19228 :
19229 : case 10:
19230 : if (!(
19231 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19232 : ((32 == 64 || TARGET_AVX512VL
19233 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19234 : && ix86_pre_reload_split ()
19235 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19236 : STRIP_UNARY (operands[4]))
19237 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19238 : STRIP_UNARY (operands[4]))
19239 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19240 : STRIP_UNARY (operands[3]))
19241 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19242 : STRIP_UNARY (operands[3])))) &&
19243 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19244 : (TARGET_AVX)))
19245 : return -1;
19246 : return 6158; /* *avx512vl_vpternlogv4df_1 */
19247 :
19248 : case 11:
19249 : if (!(
19250 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19251 : ((16 == 64 || TARGET_AVX512VL
19252 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19253 : && ix86_pre_reload_split ()
19254 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19255 : STRIP_UNARY (operands[4]))
19256 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19257 : STRIP_UNARY (operands[4]))
19258 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19259 : STRIP_UNARY (operands[3]))
19260 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19261 : STRIP_UNARY (operands[3])))) &&
19262 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19263 : (TARGET_SSE2)))
19264 : return -1;
19265 : return 6185; /* *avx512vl_vpternlogv2df_1 */
19266 :
19267 : case 12:
19268 : if (!(
19269 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19270 : ((64 == 64 || TARGET_AVX512VL
19271 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19272 : && ix86_pre_reload_split ()
19273 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19274 : STRIP_UNARY (operands[4]))
19275 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19276 : STRIP_UNARY (operands[4]))
19277 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19278 : STRIP_UNARY (operands[3]))
19279 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19280 : STRIP_UNARY (operands[3])))) &&
19281 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19282 : (TARGET_AVX512F)))
19283 : return -1;
19284 : return 5891; /* *avx512bw_vpternlogv32hf_1 */
19285 :
19286 : case 13:
19287 : if (!(
19288 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19289 : ((32 == 64 || TARGET_AVX512VL
19290 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19291 : && ix86_pre_reload_split ()
19292 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19293 : STRIP_UNARY (operands[4]))
19294 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19295 : STRIP_UNARY (operands[4]))
19296 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19297 : STRIP_UNARY (operands[3]))
19298 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19299 : STRIP_UNARY (operands[3])))) &&
19300 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19301 : (TARGET_AVX)))
19302 : return -1;
19303 : return 5918; /* *avx512vl_vpternlogv16hf_1 */
19304 :
19305 : case 14:
19306 : if (!
19307 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19308 : ((16 == 64 || TARGET_AVX512VL
19309 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19310 : && ix86_pre_reload_split ()
19311 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19312 : STRIP_UNARY (operands[4]))
19313 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19314 : STRIP_UNARY (operands[4]))
19315 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19316 : STRIP_UNARY (operands[3]))
19317 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19318 : STRIP_UNARY (operands[3])))))
19319 : return -1;
19320 : return 5945; /* *avx512fp16_vpternlogv8hf_1 */
19321 :
19322 : case 15:
19323 : if (!(
19324 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19325 : ((64 == 64 || TARGET_AVX512VL
19326 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19327 : && ix86_pre_reload_split ()
19328 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19329 : STRIP_UNARY (operands[4]))
19330 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19331 : STRIP_UNARY (operands[4]))
19332 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19333 : STRIP_UNARY (operands[3]))
19334 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19335 : STRIP_UNARY (operands[3])))) &&
19336 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19337 : (TARGET_AVX512F)))
19338 : return -1;
19339 : return 5972; /* *avx512bw_vpternlogv32bf_1 */
19340 :
19341 : case 16:
19342 : if (!(
19343 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19344 : ((32 == 64 || TARGET_AVX512VL
19345 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19346 : && ix86_pre_reload_split ()
19347 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19348 : STRIP_UNARY (operands[4]))
19349 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19350 : STRIP_UNARY (operands[4]))
19351 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19352 : STRIP_UNARY (operands[3]))
19353 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19354 : STRIP_UNARY (operands[3])))) &&
19355 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19356 : (TARGET_AVX)))
19357 : return -1;
19358 : return 5999; /* *avx512vl_vpternlogv16bf_1 */
19359 :
19360 : case 17:
19361 : if (!
19362 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19363 : ((16 == 64 || TARGET_AVX512VL
19364 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19365 : && ix86_pre_reload_split ()
19366 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19367 : STRIP_UNARY (operands[4]))
19368 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19369 : STRIP_UNARY (operands[4]))
19370 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19371 : STRIP_UNARY (operands[3]))
19372 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19373 : STRIP_UNARY (operands[3])))))
19374 : return -1;
19375 : return 6026; /* *avx512vl_vpternlogv8bf_1 */
19376 :
19377 : case 18:
19378 : if (!(
19379 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19380 : ((64 == 64 || TARGET_AVX512VL
19381 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19382 : && ix86_pre_reload_split ()
19383 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19384 : STRIP_UNARY (operands[4]))
19385 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19386 : STRIP_UNARY (operands[4]))
19387 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19388 : STRIP_UNARY (operands[3]))
19389 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19390 : STRIP_UNARY (operands[3])))) &&
19391 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19392 : (TARGET_AVX512F)))
19393 : return -1;
19394 : return 6053; /* *avx512f_vpternlogv16sf_1 */
19395 :
19396 : case 19:
19397 : if (!(
19398 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19399 : ((32 == 64 || TARGET_AVX512VL
19400 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19401 : && ix86_pre_reload_split ()
19402 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19403 : STRIP_UNARY (operands[4]))
19404 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19405 : STRIP_UNARY (operands[4]))
19406 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19407 : STRIP_UNARY (operands[3]))
19408 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19409 : STRIP_UNARY (operands[3])))) &&
19410 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19411 : (TARGET_AVX)))
19412 : return -1;
19413 : return 6080; /* *avx512vl_vpternlogv8sf_1 */
19414 :
19415 : case 20:
19416 : if (!
19417 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19418 : ((16 == 64 || TARGET_AVX512VL
19419 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19420 : && ix86_pre_reload_split ()
19421 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19422 : STRIP_UNARY (operands[4]))
19423 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19424 : STRIP_UNARY (operands[4]))
19425 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19426 : STRIP_UNARY (operands[3]))
19427 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19428 : STRIP_UNARY (operands[3])))))
19429 : return -1;
19430 : return 6107; /* *avx512vl_vpternlogv4sf_1 */
19431 :
19432 : case 21:
19433 : if (!(
19434 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19435 : ((64 == 64 || TARGET_AVX512VL
19436 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19437 : && ix86_pre_reload_split ()
19438 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19439 : STRIP_UNARY (operands[4]))
19440 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19441 : STRIP_UNARY (operands[4]))
19442 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19443 : STRIP_UNARY (operands[3]))
19444 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19445 : STRIP_UNARY (operands[3])))) &&
19446 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19447 : (TARGET_AVX512F)))
19448 : return -1;
19449 : return 6134; /* *avx512f_vpternlogv8df_1 */
19450 :
19451 : case 22:
19452 : if (!(
19453 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19454 : ((32 == 64 || TARGET_AVX512VL
19455 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19456 : && ix86_pre_reload_split ()
19457 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19458 : STRIP_UNARY (operands[4]))
19459 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19460 : STRIP_UNARY (operands[4]))
19461 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19462 : STRIP_UNARY (operands[3]))
19463 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19464 : STRIP_UNARY (operands[3])))) &&
19465 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19466 : (TARGET_AVX)))
19467 : return -1;
19468 : return 6161; /* *avx512vl_vpternlogv4df_1 */
19469 :
19470 : case 23:
19471 : if (!(
19472 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19473 : ((16 == 64 || TARGET_AVX512VL
19474 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19475 : && ix86_pre_reload_split ()
19476 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19477 : STRIP_UNARY (operands[4]))
19478 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19479 : STRIP_UNARY (operands[4]))
19480 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19481 : STRIP_UNARY (operands[3]))
19482 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19483 : STRIP_UNARY (operands[3])))) &&
19484 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19485 : (TARGET_SSE2)))
19486 : return -1;
19487 : return 6188; /* *avx512vl_vpternlogv2df_1 */
19488 :
19489 : case 24:
19490 : if (!(
19491 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19492 : ((64 == 64 || TARGET_AVX512VL
19493 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19494 : && ix86_pre_reload_split ()
19495 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19496 : STRIP_UNARY (operands[4]))
19497 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19498 : STRIP_UNARY (operands[4]))
19499 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19500 : STRIP_UNARY (operands[3]))
19501 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19502 : STRIP_UNARY (operands[3])))) &&
19503 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19504 : (TARGET_AVX512F)))
19505 : return -1;
19506 : return 5894; /* *avx512bw_vpternlogv32hf_1 */
19507 :
19508 : case 25:
19509 : if (!(
19510 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19511 : ((32 == 64 || TARGET_AVX512VL
19512 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19513 : && ix86_pre_reload_split ()
19514 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19515 : STRIP_UNARY (operands[4]))
19516 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19517 : STRIP_UNARY (operands[4]))
19518 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19519 : STRIP_UNARY (operands[3]))
19520 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19521 : STRIP_UNARY (operands[3])))) &&
19522 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19523 : (TARGET_AVX)))
19524 : return -1;
19525 : return 5921; /* *avx512vl_vpternlogv16hf_1 */
19526 :
19527 : case 26:
19528 : if (!
19529 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19530 : ((16 == 64 || TARGET_AVX512VL
19531 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19532 : && ix86_pre_reload_split ()
19533 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19534 : STRIP_UNARY (operands[4]))
19535 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19536 : STRIP_UNARY (operands[4]))
19537 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19538 : STRIP_UNARY (operands[3]))
19539 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19540 : STRIP_UNARY (operands[3])))))
19541 : return -1;
19542 : return 5948; /* *avx512fp16_vpternlogv8hf_1 */
19543 :
19544 : case 27:
19545 : if (!(
19546 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19547 : ((64 == 64 || TARGET_AVX512VL
19548 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19549 : && ix86_pre_reload_split ()
19550 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19551 : STRIP_UNARY (operands[4]))
19552 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19553 : STRIP_UNARY (operands[4]))
19554 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19555 : STRIP_UNARY (operands[3]))
19556 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19557 : STRIP_UNARY (operands[3])))) &&
19558 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19559 : (TARGET_AVX512F)))
19560 : return -1;
19561 : return 5975; /* *avx512bw_vpternlogv32bf_1 */
19562 :
19563 : case 28:
19564 : if (!(
19565 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19566 : ((32 == 64 || TARGET_AVX512VL
19567 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19568 : && ix86_pre_reload_split ()
19569 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19570 : STRIP_UNARY (operands[4]))
19571 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19572 : STRIP_UNARY (operands[4]))
19573 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19574 : STRIP_UNARY (operands[3]))
19575 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19576 : STRIP_UNARY (operands[3])))) &&
19577 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19578 : (TARGET_AVX)))
19579 : return -1;
19580 : return 6002; /* *avx512vl_vpternlogv16bf_1 */
19581 :
19582 : case 29:
19583 : if (!
19584 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19585 : ((16 == 64 || TARGET_AVX512VL
19586 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19587 : && ix86_pre_reload_split ()
19588 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19589 : STRIP_UNARY (operands[4]))
19590 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19591 : STRIP_UNARY (operands[4]))
19592 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19593 : STRIP_UNARY (operands[3]))
19594 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19595 : STRIP_UNARY (operands[3])))))
19596 : return -1;
19597 : return 6029; /* *avx512vl_vpternlogv8bf_1 */
19598 :
19599 : case 30:
19600 : if (!(
19601 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19602 : ((64 == 64 || TARGET_AVX512VL
19603 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19604 : && ix86_pre_reload_split ()
19605 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19606 : STRIP_UNARY (operands[4]))
19607 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19608 : STRIP_UNARY (operands[4]))
19609 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19610 : STRIP_UNARY (operands[3]))
19611 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19612 : STRIP_UNARY (operands[3])))) &&
19613 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19614 : (TARGET_AVX512F)))
19615 : return -1;
19616 : return 6056; /* *avx512f_vpternlogv16sf_1 */
19617 :
19618 : case 31:
19619 : if (!(
19620 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19621 : ((32 == 64 || TARGET_AVX512VL
19622 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19623 : && ix86_pre_reload_split ()
19624 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19625 : STRIP_UNARY (operands[4]))
19626 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19627 : STRIP_UNARY (operands[4]))
19628 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19629 : STRIP_UNARY (operands[3]))
19630 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19631 : STRIP_UNARY (operands[3])))) &&
19632 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19633 : (TARGET_AVX)))
19634 : return -1;
19635 : return 6083; /* *avx512vl_vpternlogv8sf_1 */
19636 :
19637 : case 32:
19638 : if (!
19639 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19640 : ((16 == 64 || TARGET_AVX512VL
19641 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19642 : && ix86_pre_reload_split ()
19643 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19644 : STRIP_UNARY (operands[4]))
19645 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19646 : STRIP_UNARY (operands[4]))
19647 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19648 : STRIP_UNARY (operands[3]))
19649 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19650 : STRIP_UNARY (operands[3])))))
19651 : return -1;
19652 : return 6110; /* *avx512vl_vpternlogv4sf_1 */
19653 :
19654 : case 33:
19655 : if (!(
19656 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19657 : ((64 == 64 || TARGET_AVX512VL
19658 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19659 : && ix86_pre_reload_split ()
19660 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19661 : STRIP_UNARY (operands[4]))
19662 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19663 : STRIP_UNARY (operands[4]))
19664 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19665 : STRIP_UNARY (operands[3]))
19666 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19667 : STRIP_UNARY (operands[3])))) &&
19668 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19669 : (TARGET_AVX512F)))
19670 : return -1;
19671 : return 6137; /* *avx512f_vpternlogv8df_1 */
19672 :
19673 : case 34:
19674 : if (!(
19675 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19676 : ((32 == 64 || TARGET_AVX512VL
19677 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19678 : && ix86_pre_reload_split ()
19679 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19680 : STRIP_UNARY (operands[4]))
19681 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19682 : STRIP_UNARY (operands[4]))
19683 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19684 : STRIP_UNARY (operands[3]))
19685 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19686 : STRIP_UNARY (operands[3])))) &&
19687 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19688 : (TARGET_AVX)))
19689 : return -1;
19690 : return 6164; /* *avx512vl_vpternlogv4df_1 */
19691 :
19692 : case 35:
19693 : if (!(
19694 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19695 : ((16 == 64 || TARGET_AVX512VL
19696 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19697 : && ix86_pre_reload_split ()
19698 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19699 : STRIP_UNARY (operands[4]))
19700 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19701 : STRIP_UNARY (operands[4]))
19702 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19703 : STRIP_UNARY (operands[3]))
19704 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19705 : STRIP_UNARY (operands[3])))) &&
19706 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19707 : (TARGET_SSE2)))
19708 : return -1;
19709 : return 6191; /* *avx512vl_vpternlogv2df_1 */
19710 :
19711 : case 36:
19712 : if (!(
19713 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19714 : ((64 == 64 || TARGET_AVX512VL
19715 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19716 : && ix86_pre_reload_split ()) &&
19717 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19718 : (TARGET_AVX512F)))
19719 : return -1;
19720 : return 6956; /* *avx512bw_vpternlogv32hf_3 */
19721 :
19722 : case 37:
19723 : if (!(
19724 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19725 : ((32 == 64 || TARGET_AVX512VL
19726 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19727 : && ix86_pre_reload_split ()) &&
19728 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19729 : (TARGET_AVX)))
19730 : return -1;
19731 : return 6965; /* *avx512vl_vpternlogv16hf_3 */
19732 :
19733 : case 38:
19734 : if (!
19735 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19736 : ((16 == 64 || TARGET_AVX512VL
19737 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19738 : && ix86_pre_reload_split ()))
19739 : return -1;
19740 : return 6974; /* *avx512fp16_vpternlogv8hf_3 */
19741 :
19742 : case 39:
19743 : if (!(
19744 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19745 : ((64 == 64 || TARGET_AVX512VL
19746 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19747 : && ix86_pre_reload_split ()) &&
19748 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19749 : (TARGET_AVX512F)))
19750 : return -1;
19751 : return 6983; /* *avx512bw_vpternlogv32bf_3 */
19752 :
19753 : case 40:
19754 : if (!(
19755 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19756 : ((32 == 64 || TARGET_AVX512VL
19757 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19758 : && ix86_pre_reload_split ()) &&
19759 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19760 : (TARGET_AVX)))
19761 : return -1;
19762 : return 6992; /* *avx512vl_vpternlogv16bf_3 */
19763 :
19764 : case 41:
19765 : if (!
19766 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19767 : ((16 == 64 || TARGET_AVX512VL
19768 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19769 : && ix86_pre_reload_split ()))
19770 : return -1;
19771 : return 7001; /* *avx512vl_vpternlogv8bf_3 */
19772 :
19773 : case 42:
19774 : if (!(
19775 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19776 : ((64 == 64 || TARGET_AVX512VL
19777 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19778 : && ix86_pre_reload_split ()) &&
19779 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19780 : (TARGET_AVX512F)))
19781 : return -1;
19782 : return 7010; /* *avx512f_vpternlogv16sf_3 */
19783 :
19784 : case 43:
19785 : if (!(
19786 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19787 : ((32 == 64 || TARGET_AVX512VL
19788 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19789 : && ix86_pre_reload_split ()) &&
19790 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19791 : (TARGET_AVX)))
19792 : return -1;
19793 : return 7019; /* *avx512vl_vpternlogv8sf_3 */
19794 :
19795 : case 44:
19796 : if (!
19797 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19798 : ((16 == 64 || TARGET_AVX512VL
19799 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19800 : && ix86_pre_reload_split ()))
19801 : return -1;
19802 : return 7028; /* *avx512vl_vpternlogv4sf_3 */
19803 :
19804 : case 45:
19805 : if (!(
19806 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19807 : ((64 == 64 || TARGET_AVX512VL
19808 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19809 : && ix86_pre_reload_split ()) &&
19810 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19811 : (TARGET_AVX512F)))
19812 : return -1;
19813 : return 7037; /* *avx512f_vpternlogv8df_3 */
19814 :
19815 : case 46:
19816 : if (!(
19817 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19818 : ((32 == 64 || TARGET_AVX512VL
19819 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19820 : && ix86_pre_reload_split ()) &&
19821 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19822 : (TARGET_AVX)))
19823 : return -1;
19824 : return 7046; /* *avx512vl_vpternlogv4df_3 */
19825 :
19826 : case 47:
19827 : if (!(
19828 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19829 : ((16 == 64 || TARGET_AVX512VL
19830 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19831 : && ix86_pre_reload_split ()) &&
19832 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19833 : (TARGET_SSE2)))
19834 : return -1;
19835 : return 7055; /* *avx512vl_vpternlogv2df_3 */
19836 :
19837 : default:
19838 : return -1;
19839 : }
19840 :
19841 : case AND:
19842 : switch (pattern544 (x2))
19843 : {
19844 : case 0:
19845 : if (!(
19846 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19847 : ((64 == 64 || TARGET_AVX512VL
19848 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19849 : && ix86_pre_reload_split ()
19850 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19851 : STRIP_UNARY (operands[4]))
19852 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19853 : STRIP_UNARY (operands[4]))
19854 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19855 : STRIP_UNARY (operands[3]))
19856 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19857 : STRIP_UNARY (operands[3])))) &&
19858 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19859 : (TARGET_AVX512F)))
19860 : return -1;
19861 : return 6536; /* *avx512bw_vpternlogv32hf_2 */
19862 :
19863 : case 1:
19864 : if (!(
19865 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19866 : ((32 == 64 || TARGET_AVX512VL
19867 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19868 : && ix86_pre_reload_split ()
19869 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19870 : STRIP_UNARY (operands[4]))
19871 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19872 : STRIP_UNARY (operands[4]))
19873 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19874 : STRIP_UNARY (operands[3]))
19875 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19876 : STRIP_UNARY (operands[3])))) &&
19877 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19878 : (TARGET_AVX)))
19879 : return -1;
19880 : return 6563; /* *avx512vl_vpternlogv16hf_2 */
19881 :
19882 : case 2:
19883 : if (!
19884 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19885 : ((16 == 64 || TARGET_AVX512VL
19886 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19887 : && ix86_pre_reload_split ()
19888 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19889 : STRIP_UNARY (operands[4]))
19890 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19891 : STRIP_UNARY (operands[4]))
19892 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19893 : STRIP_UNARY (operands[3]))
19894 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19895 : STRIP_UNARY (operands[3])))))
19896 : return -1;
19897 : return 6590; /* *avx512fp16_vpternlogv8hf_2 */
19898 :
19899 : case 3:
19900 : if (!(
19901 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19902 : ((64 == 64 || TARGET_AVX512VL
19903 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19904 : && ix86_pre_reload_split ()
19905 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19906 : STRIP_UNARY (operands[4]))
19907 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19908 : STRIP_UNARY (operands[4]))
19909 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19910 : STRIP_UNARY (operands[3]))
19911 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19912 : STRIP_UNARY (operands[3])))) &&
19913 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19914 : (TARGET_AVX512F)))
19915 : return -1;
19916 : return 6617; /* *avx512bw_vpternlogv32bf_2 */
19917 :
19918 : case 4:
19919 : if (!(
19920 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19921 : ((32 == 64 || TARGET_AVX512VL
19922 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19923 : && ix86_pre_reload_split ()
19924 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19925 : STRIP_UNARY (operands[4]))
19926 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19927 : STRIP_UNARY (operands[4]))
19928 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19929 : STRIP_UNARY (operands[3]))
19930 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19931 : STRIP_UNARY (operands[3])))) &&
19932 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19933 : (TARGET_AVX)))
19934 : return -1;
19935 : return 6644; /* *avx512vl_vpternlogv16bf_2 */
19936 :
19937 : case 5:
19938 : if (!
19939 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19940 : ((16 == 64 || TARGET_AVX512VL
19941 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19942 : && ix86_pre_reload_split ()
19943 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19944 : STRIP_UNARY (operands[4]))
19945 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19946 : STRIP_UNARY (operands[4]))
19947 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19948 : STRIP_UNARY (operands[3]))
19949 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19950 : STRIP_UNARY (operands[3])))))
19951 : return -1;
19952 : return 6671; /* *avx512vl_vpternlogv8bf_2 */
19953 :
19954 : case 6:
19955 : if (!(
19956 : #line 14263 "/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 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19961 : STRIP_UNARY (operands[4]))
19962 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19963 : STRIP_UNARY (operands[4]))
19964 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19965 : STRIP_UNARY (operands[3]))
19966 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19967 : STRIP_UNARY (operands[3])))) &&
19968 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19969 : (TARGET_AVX512F)))
19970 : return -1;
19971 : return 6698; /* *avx512f_vpternlogv16sf_2 */
19972 :
19973 : case 7:
19974 : if (!(
19975 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19976 : ((32 == 64 || TARGET_AVX512VL
19977 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19978 : && ix86_pre_reload_split ()
19979 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19980 : STRIP_UNARY (operands[4]))
19981 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19982 : STRIP_UNARY (operands[4]))
19983 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19984 : STRIP_UNARY (operands[3]))
19985 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19986 : STRIP_UNARY (operands[3])))) &&
19987 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19988 : (TARGET_AVX)))
19989 : return -1;
19990 : return 6725; /* *avx512vl_vpternlogv8sf_2 */
19991 :
19992 : case 8:
19993 : if (!
19994 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19995 : ((16 == 64 || TARGET_AVX512VL
19996 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19997 : && ix86_pre_reload_split ()
19998 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19999 : STRIP_UNARY (operands[4]))
20000 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20001 : STRIP_UNARY (operands[4]))
20002 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20003 : STRIP_UNARY (operands[3]))
20004 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20005 : STRIP_UNARY (operands[3])))))
20006 : return -1;
20007 : return 6752; /* *avx512vl_vpternlogv4sf_2 */
20008 :
20009 : case 9:
20010 : if (!(
20011 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20012 : ((64 == 64 || TARGET_AVX512VL
20013 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20014 : && ix86_pre_reload_split ()
20015 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20016 : STRIP_UNARY (operands[4]))
20017 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20018 : STRIP_UNARY (operands[4]))
20019 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20020 : STRIP_UNARY (operands[3]))
20021 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20022 : STRIP_UNARY (operands[3])))) &&
20023 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20024 : (TARGET_AVX512F)))
20025 : return -1;
20026 : return 6779; /* *avx512f_vpternlogv8df_2 */
20027 :
20028 : case 10:
20029 : if (!(
20030 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20031 : ((32 == 64 || TARGET_AVX512VL
20032 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20033 : && ix86_pre_reload_split ()
20034 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20035 : STRIP_UNARY (operands[4]))
20036 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20037 : STRIP_UNARY (operands[4]))
20038 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20039 : STRIP_UNARY (operands[3]))
20040 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20041 : STRIP_UNARY (operands[3])))) &&
20042 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20043 : (TARGET_AVX)))
20044 : return -1;
20045 : return 6806; /* *avx512vl_vpternlogv4df_2 */
20046 :
20047 : case 11:
20048 : if (!(
20049 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20050 : ((16 == 64 || TARGET_AVX512VL
20051 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20052 : && ix86_pre_reload_split ()
20053 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20054 : STRIP_UNARY (operands[4]))
20055 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20056 : STRIP_UNARY (operands[4]))
20057 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20058 : STRIP_UNARY (operands[3]))
20059 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20060 : STRIP_UNARY (operands[3])))) &&
20061 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20062 : (TARGET_SSE2)))
20063 : return -1;
20064 : return 6833; /* *avx512vl_vpternlogv2df_2 */
20065 :
20066 : default:
20067 : return -1;
20068 : }
20069 :
20070 : case IOR:
20071 : switch (pattern544 (x2))
20072 : {
20073 : case 0:
20074 : if (!(
20075 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20076 : ((64 == 64 || TARGET_AVX512VL
20077 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20078 : && ix86_pre_reload_split ()
20079 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20080 : STRIP_UNARY (operands[4]))
20081 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20082 : STRIP_UNARY (operands[4]))
20083 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20084 : STRIP_UNARY (operands[3]))
20085 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20086 : STRIP_UNARY (operands[3])))) &&
20087 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20088 : (TARGET_AVX512F)))
20089 : return -1;
20090 : return 6539; /* *avx512bw_vpternlogv32hf_2 */
20091 :
20092 : case 1:
20093 : if (!(
20094 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20095 : ((32 == 64 || TARGET_AVX512VL
20096 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20097 : && ix86_pre_reload_split ()
20098 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20099 : STRIP_UNARY (operands[4]))
20100 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20101 : STRIP_UNARY (operands[4]))
20102 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20103 : STRIP_UNARY (operands[3]))
20104 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20105 : STRIP_UNARY (operands[3])))) &&
20106 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20107 : (TARGET_AVX)))
20108 : return -1;
20109 : return 6566; /* *avx512vl_vpternlogv16hf_2 */
20110 :
20111 : case 2:
20112 : if (!
20113 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20114 : ((16 == 64 || TARGET_AVX512VL
20115 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20116 : && ix86_pre_reload_split ()
20117 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20118 : STRIP_UNARY (operands[4]))
20119 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20120 : STRIP_UNARY (operands[4]))
20121 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20122 : STRIP_UNARY (operands[3]))
20123 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20124 : STRIP_UNARY (operands[3])))))
20125 : return -1;
20126 : return 6593; /* *avx512fp16_vpternlogv8hf_2 */
20127 :
20128 : case 3:
20129 : if (!(
20130 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20131 : ((64 == 64 || TARGET_AVX512VL
20132 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20133 : && ix86_pre_reload_split ()
20134 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20135 : STRIP_UNARY (operands[4]))
20136 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20137 : STRIP_UNARY (operands[4]))
20138 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20139 : STRIP_UNARY (operands[3]))
20140 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20141 : STRIP_UNARY (operands[3])))) &&
20142 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20143 : (TARGET_AVX512F)))
20144 : return -1;
20145 : return 6620; /* *avx512bw_vpternlogv32bf_2 */
20146 :
20147 : case 4:
20148 : if (!(
20149 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20150 : ((32 == 64 || TARGET_AVX512VL
20151 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20152 : && ix86_pre_reload_split ()
20153 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20154 : STRIP_UNARY (operands[4]))
20155 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20156 : STRIP_UNARY (operands[4]))
20157 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20158 : STRIP_UNARY (operands[3]))
20159 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20160 : STRIP_UNARY (operands[3])))) &&
20161 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20162 : (TARGET_AVX)))
20163 : return -1;
20164 : return 6647; /* *avx512vl_vpternlogv16bf_2 */
20165 :
20166 : case 5:
20167 : if (!
20168 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20169 : ((16 == 64 || TARGET_AVX512VL
20170 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20171 : && ix86_pre_reload_split ()
20172 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20173 : STRIP_UNARY (operands[4]))
20174 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20175 : STRIP_UNARY (operands[4]))
20176 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20177 : STRIP_UNARY (operands[3]))
20178 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20179 : STRIP_UNARY (operands[3])))))
20180 : return -1;
20181 : return 6674; /* *avx512vl_vpternlogv8bf_2 */
20182 :
20183 : case 6:
20184 : if (!(
20185 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20186 : ((64 == 64 || TARGET_AVX512VL
20187 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20188 : && ix86_pre_reload_split ()
20189 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20190 : STRIP_UNARY (operands[4]))
20191 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20192 : STRIP_UNARY (operands[4]))
20193 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20194 : STRIP_UNARY (operands[3]))
20195 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20196 : STRIP_UNARY (operands[3])))) &&
20197 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20198 : (TARGET_AVX512F)))
20199 : return -1;
20200 : return 6701; /* *avx512f_vpternlogv16sf_2 */
20201 :
20202 : case 7:
20203 : if (!(
20204 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20205 : ((32 == 64 || TARGET_AVX512VL
20206 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20207 : && ix86_pre_reload_split ()
20208 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20209 : STRIP_UNARY (operands[4]))
20210 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20211 : STRIP_UNARY (operands[4]))
20212 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20213 : STRIP_UNARY (operands[3]))
20214 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20215 : STRIP_UNARY (operands[3])))) &&
20216 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20217 : (TARGET_AVX)))
20218 : return -1;
20219 : return 6728; /* *avx512vl_vpternlogv8sf_2 */
20220 :
20221 : case 8:
20222 : if (!
20223 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20224 : ((16 == 64 || TARGET_AVX512VL
20225 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20226 : && ix86_pre_reload_split ()
20227 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20228 : STRIP_UNARY (operands[4]))
20229 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20230 : STRIP_UNARY (operands[4]))
20231 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20232 : STRIP_UNARY (operands[3]))
20233 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20234 : STRIP_UNARY (operands[3])))))
20235 : return -1;
20236 : return 6755; /* *avx512vl_vpternlogv4sf_2 */
20237 :
20238 : case 9:
20239 : if (!(
20240 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20241 : ((64 == 64 || TARGET_AVX512VL
20242 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20243 : && ix86_pre_reload_split ()
20244 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20245 : STRIP_UNARY (operands[4]))
20246 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20247 : STRIP_UNARY (operands[4]))
20248 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20249 : STRIP_UNARY (operands[3]))
20250 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20251 : STRIP_UNARY (operands[3])))) &&
20252 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20253 : (TARGET_AVX512F)))
20254 : return -1;
20255 : return 6782; /* *avx512f_vpternlogv8df_2 */
20256 :
20257 : case 10:
20258 : if (!(
20259 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20260 : ((32 == 64 || TARGET_AVX512VL
20261 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20262 : && ix86_pre_reload_split ()
20263 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20264 : STRIP_UNARY (operands[4]))
20265 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20266 : STRIP_UNARY (operands[4]))
20267 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20268 : STRIP_UNARY (operands[3]))
20269 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20270 : STRIP_UNARY (operands[3])))) &&
20271 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20272 : (TARGET_AVX)))
20273 : return -1;
20274 : return 6809; /* *avx512vl_vpternlogv4df_2 */
20275 :
20276 : case 11:
20277 : if (!(
20278 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20279 : ((16 == 64 || TARGET_AVX512VL
20280 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20281 : && ix86_pre_reload_split ()
20282 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20283 : STRIP_UNARY (operands[4]))
20284 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20285 : STRIP_UNARY (operands[4]))
20286 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20287 : STRIP_UNARY (operands[3]))
20288 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20289 : STRIP_UNARY (operands[3])))) &&
20290 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20291 : (TARGET_SSE2)))
20292 : return -1;
20293 : return 6836; /* *avx512vl_vpternlogv2df_2 */
20294 :
20295 : default:
20296 : return -1;
20297 : }
20298 :
20299 : case XOR:
20300 : switch (pattern544 (x2))
20301 : {
20302 : case 0:
20303 : if (!(
20304 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20305 : ((64 == 64 || TARGET_AVX512VL
20306 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20307 : && ix86_pre_reload_split ()
20308 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20309 : STRIP_UNARY (operands[4]))
20310 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20311 : STRIP_UNARY (operands[4]))
20312 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20313 : STRIP_UNARY (operands[3]))
20314 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20315 : STRIP_UNARY (operands[3])))) &&
20316 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20317 : (TARGET_AVX512F)))
20318 : return -1;
20319 : return 6542; /* *avx512bw_vpternlogv32hf_2 */
20320 :
20321 : case 1:
20322 : if (!(
20323 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20324 : ((32 == 64 || TARGET_AVX512VL
20325 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20326 : && ix86_pre_reload_split ()
20327 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20328 : STRIP_UNARY (operands[4]))
20329 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20330 : STRIP_UNARY (operands[4]))
20331 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20332 : STRIP_UNARY (operands[3]))
20333 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20334 : STRIP_UNARY (operands[3])))) &&
20335 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20336 : (TARGET_AVX)))
20337 : return -1;
20338 : return 6569; /* *avx512vl_vpternlogv16hf_2 */
20339 :
20340 : case 2:
20341 : if (!
20342 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20343 : ((16 == 64 || TARGET_AVX512VL
20344 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20345 : && ix86_pre_reload_split ()
20346 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20347 : STRIP_UNARY (operands[4]))
20348 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20349 : STRIP_UNARY (operands[4]))
20350 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20351 : STRIP_UNARY (operands[3]))
20352 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20353 : STRIP_UNARY (operands[3])))))
20354 : return -1;
20355 : return 6596; /* *avx512fp16_vpternlogv8hf_2 */
20356 :
20357 : case 3:
20358 : if (!(
20359 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20360 : ((64 == 64 || TARGET_AVX512VL
20361 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20362 : && ix86_pre_reload_split ()
20363 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20364 : STRIP_UNARY (operands[4]))
20365 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20366 : STRIP_UNARY (operands[4]))
20367 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20368 : STRIP_UNARY (operands[3]))
20369 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20370 : STRIP_UNARY (operands[3])))) &&
20371 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20372 : (TARGET_AVX512F)))
20373 : return -1;
20374 : return 6623; /* *avx512bw_vpternlogv32bf_2 */
20375 :
20376 : case 4:
20377 : if (!(
20378 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20379 : ((32 == 64 || TARGET_AVX512VL
20380 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20381 : && ix86_pre_reload_split ()
20382 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20383 : STRIP_UNARY (operands[4]))
20384 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20385 : STRIP_UNARY (operands[4]))
20386 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20387 : STRIP_UNARY (operands[3]))
20388 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20389 : STRIP_UNARY (operands[3])))) &&
20390 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20391 : (TARGET_AVX)))
20392 : return -1;
20393 : return 6650; /* *avx512vl_vpternlogv16bf_2 */
20394 :
20395 : case 5:
20396 : if (!
20397 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20398 : ((16 == 64 || TARGET_AVX512VL
20399 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20400 : && ix86_pre_reload_split ()
20401 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20402 : STRIP_UNARY (operands[4]))
20403 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20404 : STRIP_UNARY (operands[4]))
20405 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20406 : STRIP_UNARY (operands[3]))
20407 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20408 : STRIP_UNARY (operands[3])))))
20409 : return -1;
20410 : return 6677; /* *avx512vl_vpternlogv8bf_2 */
20411 :
20412 : case 6:
20413 : if (!(
20414 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20415 : ((64 == 64 || TARGET_AVX512VL
20416 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20417 : && ix86_pre_reload_split ()
20418 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20419 : STRIP_UNARY (operands[4]))
20420 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20421 : STRIP_UNARY (operands[4]))
20422 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20423 : STRIP_UNARY (operands[3]))
20424 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20425 : STRIP_UNARY (operands[3])))) &&
20426 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20427 : (TARGET_AVX512F)))
20428 : return -1;
20429 : return 6704; /* *avx512f_vpternlogv16sf_2 */
20430 :
20431 : case 7:
20432 : if (!(
20433 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20434 : ((32 == 64 || TARGET_AVX512VL
20435 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20436 : && ix86_pre_reload_split ()
20437 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20438 : STRIP_UNARY (operands[4]))
20439 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20440 : STRIP_UNARY (operands[4]))
20441 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20442 : STRIP_UNARY (operands[3]))
20443 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20444 : STRIP_UNARY (operands[3])))) &&
20445 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20446 : (TARGET_AVX)))
20447 : return -1;
20448 : return 6731; /* *avx512vl_vpternlogv8sf_2 */
20449 :
20450 : case 8:
20451 : if (!
20452 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20453 : ((16 == 64 || TARGET_AVX512VL
20454 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20455 : && ix86_pre_reload_split ()
20456 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20457 : STRIP_UNARY (operands[4]))
20458 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20459 : STRIP_UNARY (operands[4]))
20460 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20461 : STRIP_UNARY (operands[3]))
20462 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20463 : STRIP_UNARY (operands[3])))))
20464 : return -1;
20465 : return 6758; /* *avx512vl_vpternlogv4sf_2 */
20466 :
20467 : case 9:
20468 : if (!(
20469 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20470 : ((64 == 64 || TARGET_AVX512VL
20471 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20472 : && ix86_pre_reload_split ()
20473 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20474 : STRIP_UNARY (operands[4]))
20475 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20476 : STRIP_UNARY (operands[4]))
20477 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20478 : STRIP_UNARY (operands[3]))
20479 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20480 : STRIP_UNARY (operands[3])))) &&
20481 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20482 : (TARGET_AVX512F)))
20483 : return -1;
20484 : return 6785; /* *avx512f_vpternlogv8df_2 */
20485 :
20486 : case 10:
20487 : if (!(
20488 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20489 : ((32 == 64 || TARGET_AVX512VL
20490 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20491 : && ix86_pre_reload_split ()
20492 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20493 : STRIP_UNARY (operands[4]))
20494 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20495 : STRIP_UNARY (operands[4]))
20496 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20497 : STRIP_UNARY (operands[3]))
20498 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20499 : STRIP_UNARY (operands[3])))) &&
20500 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20501 : (TARGET_AVX)))
20502 : return -1;
20503 : return 6812; /* *avx512vl_vpternlogv4df_2 */
20504 :
20505 : case 11:
20506 : if (!(
20507 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20508 : ((16 == 64 || TARGET_AVX512VL
20509 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20510 : && ix86_pre_reload_split ()
20511 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20512 : STRIP_UNARY (operands[4]))
20513 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20514 : STRIP_UNARY (operands[4]))
20515 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20516 : STRIP_UNARY (operands[3]))
20517 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20518 : STRIP_UNARY (operands[3])))) &&
20519 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20520 : (TARGET_SSE2)))
20521 : return -1;
20522 : return 6839; /* *avx512vl_vpternlogv2df_2 */
20523 :
20524 : default:
20525 : return -1;
20526 : }
20527 :
20528 : default:
20529 : return -1;
20530 : }
20531 : }
20532 :
20533 : int
20534 : recog_330 (rtx x1 ATTRIBUTE_UNUSED,
20535 : rtx_insn *insn ATTRIBUTE_UNUSED,
20536 : int *pnum_clobbers ATTRIBUTE_UNUSED)
20537 : {
20538 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
20539 : rtx x2, x3, x4, x5, x6, x7, x8;
20540 : int res ATTRIBUTE_UNUSED;
20541 : x2 = XEXP (x1, 0);
20542 : operands[0] = x2;
20543 : x3 = XEXP (x1, 1);
20544 : x4 = XEXP (x3, 1);
20545 : operands[2] = x4;
20546 : x5 = XEXP (x3, 0);
20547 : switch (GET_CODE (x5))
20548 : {
20549 : case REG:
20550 : case SUBREG:
20551 : case MEM:
20552 : case VEC_DUPLICATE:
20553 : return recog_278 (x1, insn, pnum_clobbers);
20554 :
20555 : case NEG:
20556 : x6 = XEXP (x5, 0);
20557 : operands[1] = x6;
20558 : x7 = XEXP (x3, 2);
20559 : switch (GET_CODE (x7))
20560 : {
20561 : case REG:
20562 : case SUBREG:
20563 : case MEM:
20564 : case VEC_DUPLICATE:
20565 : operands[3] = x7;
20566 : switch (GET_MODE (operands[0]))
20567 : {
20568 : case E_V4SFmode:
20569 : if (!register_operand (operands[0], E_V4SFmode)
20570 : || GET_MODE (x3) != E_V4SFmode
20571 : || GET_MODE (x5) != E_V4SFmode)
20572 : return -1;
20573 : if (nonimmediate_operand (operands[1], E_V4SFmode)
20574 : && nonimmediate_operand (operands[2], E_V4SFmode)
20575 : && nonimmediate_operand (operands[3], E_V4SFmode)
20576 : &&
20577 : #line 6523 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20578 : (TARGET_FMA || TARGET_FMA4))
20579 : return 4004; /* *fma_fnmadd_v4sf */
20580 : if (!bcst_vector_operand (operands[1], E_V4SFmode)
20581 : || !bcst_vector_operand (operands[2], E_V4SFmode)
20582 : || !bcst_vector_operand (operands[3], E_V4SFmode)
20583 : || !(
20584 : #line 6555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20585 : (TARGET_AVX512F && 1 && 1) &&
20586 : #line 6337 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20587 : (TARGET_AVX512VL)))
20588 : return -1;
20589 : return 4024; /* *fma_fnmadd_v4sf */
20590 :
20591 : case E_V2DFmode:
20592 : if (!register_operand (operands[0], E_V2DFmode)
20593 : || GET_MODE (x3) != E_V2DFmode
20594 : || GET_MODE (x5) != E_V2DFmode)
20595 : return -1;
20596 : if (nonimmediate_operand (operands[1], E_V2DFmode)
20597 : && nonimmediate_operand (operands[2], E_V2DFmode)
20598 : && nonimmediate_operand (operands[3], E_V2DFmode)
20599 : &&
20600 : #line 6523 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20601 : (TARGET_FMA || TARGET_FMA4))
20602 : return 4005; /* *fma_fnmadd_v2df */
20603 : if (!bcst_vector_operand (operands[1], E_V2DFmode)
20604 : || !bcst_vector_operand (operands[2], E_V2DFmode)
20605 : || !bcst_vector_operand (operands[3], E_V2DFmode)
20606 : || !(
20607 : #line 6555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20608 : (TARGET_AVX512F && 1 && 1) &&
20609 : #line 6338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20610 : (TARGET_AVX512VL)))
20611 : return -1;
20612 : return 4033; /* *fma_fnmadd_v2df */
20613 :
20614 : case E_V8SFmode:
20615 : if (!register_operand (operands[0], E_V8SFmode)
20616 : || GET_MODE (x3) != E_V8SFmode
20617 : || GET_MODE (x5) != E_V8SFmode)
20618 : return -1;
20619 : if (nonimmediate_operand (operands[1], E_V8SFmode)
20620 : && nonimmediate_operand (operands[2], E_V8SFmode)
20621 : && nonimmediate_operand (operands[3], E_V8SFmode)
20622 : &&
20623 : #line 6523 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20624 : (TARGET_FMA || TARGET_FMA4))
20625 : return 4006; /* *fma_fnmadd_v8sf */
20626 : if (!bcst_vector_operand (operands[1], E_V8SFmode)
20627 : || !bcst_vector_operand (operands[2], E_V8SFmode)
20628 : || !bcst_vector_operand (operands[3], E_V8SFmode)
20629 : || !(
20630 : #line 6555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20631 : (TARGET_AVX512F && 1 && 1) &&
20632 : #line 6337 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20633 : (TARGET_AVX512VL)))
20634 : return -1;
20635 : return 4022; /* *fma_fnmadd_v8sf */
20636 :
20637 : case E_V4DFmode:
20638 : if (!register_operand (operands[0], E_V4DFmode)
20639 : || GET_MODE (x3) != E_V4DFmode
20640 : || GET_MODE (x5) != E_V4DFmode)
20641 : return -1;
20642 : if (nonimmediate_operand (operands[1], E_V4DFmode)
20643 : && nonimmediate_operand (operands[2], E_V4DFmode)
20644 : && nonimmediate_operand (operands[3], E_V4DFmode)
20645 : &&
20646 : #line 6523 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20647 : (TARGET_FMA || TARGET_FMA4))
20648 : return 4007; /* *fma_fnmadd_v4df */
20649 : if (!bcst_vector_operand (operands[1], E_V4DFmode)
20650 : || !bcst_vector_operand (operands[2], E_V4DFmode)
20651 : || !bcst_vector_operand (operands[3], E_V4DFmode)
20652 : || !(
20653 : #line 6555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20654 : (TARGET_AVX512F && 1 && 1) &&
20655 : #line 6338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20656 : (TARGET_AVX512VL)))
20657 : return -1;
20658 : return 4031; /* *fma_fnmadd_v4df */
20659 :
20660 : case E_V32HFmode:
20661 : if (pattern879 (x3,
20662 : E_V32HFmode) != 0
20663 : || !(
20664 : #line 6555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20665 : (TARGET_AVX512F && 1 && 1) &&
20666 : #line 6333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20667 : (TARGET_AVX512FP16)))
20668 : return -1;
20669 : return 4008; /* *fma_fnmadd_v32hf */
20670 :
20671 : case E_V16HFmode:
20672 : if (pattern879 (x3,
20673 : E_V16HFmode) != 0
20674 : || !(
20675 : #line 6555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20676 : (TARGET_AVX512F && 1 && 1) &&
20677 : #line 6334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20678 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
20679 : return -1;
20680 : return 4012; /* *fma_fnmadd_v16hf */
20681 :
20682 : case E_V8HFmode:
20683 : if (pattern879 (x3,
20684 : E_V8HFmode) != 0
20685 : || !(
20686 : #line 6555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20687 : (TARGET_AVX512F && 1 && 1) &&
20688 : #line 6335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20689 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
20690 : return -1;
20691 : return 4014; /* *fma_fnmadd_v8hf */
20692 :
20693 : case E_V16SFmode:
20694 : if (pattern879 (x3,
20695 : E_V16SFmode) != 0
20696 : || !
20697 : #line 6555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20698 : (TARGET_AVX512F && 1 && 1))
20699 : return -1;
20700 : return 4018; /* *fma_fnmadd_v16sf */
20701 :
20702 : case E_V8DFmode:
20703 : if (pattern879 (x3,
20704 : E_V8DFmode) != 0
20705 : || !
20706 : #line 6555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20707 : (TARGET_AVX512F && 1 && 1))
20708 : return -1;
20709 : return 4027; /* *fma_fnmadd_v8df */
20710 :
20711 : case E_V32BFmode:
20712 : if (pattern929 (x3,
20713 : E_V32BFmode) != 0
20714 : || !
20715 : #line 33284 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20716 : (TARGET_AVX10_2))
20717 : return -1;
20718 : return 10744; /* avx10_2_fnmaddbf16_v32bf */
20719 :
20720 : case E_V16BFmode:
20721 : if (pattern929 (x3,
20722 : E_V16BFmode) != 0
20723 : || !
20724 : #line 33284 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20725 : (TARGET_AVX10_2))
20726 : return -1;
20727 : return 10746; /* avx10_2_fnmaddbf16_v16bf */
20728 :
20729 : case E_V8BFmode:
20730 : if (pattern929 (x3,
20731 : E_V8BFmode) != 0
20732 : || !
20733 : #line 33284 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20734 : (TARGET_AVX10_2))
20735 : return -1;
20736 : return 10748; /* avx10_2_fnmaddbf16_v8bf */
20737 :
20738 : default:
20739 : return -1;
20740 : }
20741 :
20742 : case NEG:
20743 : x8 = XEXP (x7, 0);
20744 : operands[3] = x8;
20745 : switch (GET_MODE (operands[0]))
20746 : {
20747 : case E_V4SFmode:
20748 : if (pattern880 (x3,
20749 : E_V4SFmode) != 0)
20750 : return -1;
20751 : if (nonimmediate_operand (operands[1], E_V4SFmode)
20752 : && nonimmediate_operand (operands[2], E_V4SFmode)
20753 : && nonimmediate_operand (operands[3], E_V4SFmode)
20754 : &&
20755 : #line 6630 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20756 : (TARGET_FMA || TARGET_FMA4))
20757 : return 4063; /* *fma_fnmsub_v4sf */
20758 : if (!bcst_vector_operand (operands[1], E_V4SFmode)
20759 : || !bcst_vector_operand (operands[2], E_V4SFmode)
20760 : || !bcst_vector_operand (operands[3], E_V4SFmode)
20761 : || !(
20762 : #line 6663 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20763 : (TARGET_AVX512F && 1 && 1) &&
20764 : #line 6337 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20765 : (TARGET_AVX512VL)))
20766 : return -1;
20767 : return 4095; /* *fma_fnmsub_v4sf */
20768 :
20769 : case E_V2DFmode:
20770 : if (pattern880 (x3,
20771 : E_V2DFmode) != 0)
20772 : return -1;
20773 : if (nonimmediate_operand (operands[1], E_V2DFmode)
20774 : && nonimmediate_operand (operands[2], E_V2DFmode)
20775 : && nonimmediate_operand (operands[3], E_V2DFmode)
20776 : &&
20777 : #line 6630 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20778 : (TARGET_FMA || TARGET_FMA4))
20779 : return 4067; /* *fma_fnmsub_v2df */
20780 : if (!bcst_vector_operand (operands[1], E_V2DFmode)
20781 : || !bcst_vector_operand (operands[2], E_V2DFmode)
20782 : || !bcst_vector_operand (operands[3], E_V2DFmode)
20783 : || !(
20784 : #line 6663 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20785 : (TARGET_AVX512F && 1 && 1) &&
20786 : #line 6338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20787 : (TARGET_AVX512VL)))
20788 : return -1;
20789 : return 4104; /* *fma_fnmsub_v2df */
20790 :
20791 : case E_V8SFmode:
20792 : if (pattern880 (x3,
20793 : E_V8SFmode) != 0)
20794 : return -1;
20795 : if (nonimmediate_operand (operands[1], E_V8SFmode)
20796 : && nonimmediate_operand (operands[2], E_V8SFmode)
20797 : && nonimmediate_operand (operands[3], E_V8SFmode)
20798 : &&
20799 : #line 6630 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20800 : (TARGET_FMA || TARGET_FMA4))
20801 : return 4071; /* *fma_fnmsub_v8sf */
20802 : if (!bcst_vector_operand (operands[1], E_V8SFmode)
20803 : || !bcst_vector_operand (operands[2], E_V8SFmode)
20804 : || !bcst_vector_operand (operands[3], E_V8SFmode)
20805 : || !(
20806 : #line 6663 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20807 : (TARGET_AVX512F && 1 && 1) &&
20808 : #line 6337 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20809 : (TARGET_AVX512VL)))
20810 : return -1;
20811 : return 4093; /* *fma_fnmsub_v8sf */
20812 :
20813 : case E_V4DFmode:
20814 : if (pattern880 (x3,
20815 : E_V4DFmode) != 0)
20816 : return -1;
20817 : if (nonimmediate_operand (operands[1], E_V4DFmode)
20818 : && nonimmediate_operand (operands[2], E_V4DFmode)
20819 : && nonimmediate_operand (operands[3], E_V4DFmode)
20820 : &&
20821 : #line 6630 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20822 : (TARGET_FMA || TARGET_FMA4))
20823 : return 4075; /* *fma_fnmsub_v4df */
20824 : if (!bcst_vector_operand (operands[1], E_V4DFmode)
20825 : || !bcst_vector_operand (operands[2], E_V4DFmode)
20826 : || !bcst_vector_operand (operands[3], E_V4DFmode)
20827 : || !(
20828 : #line 6663 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20829 : (TARGET_AVX512F && 1 && 1) &&
20830 : #line 6338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20831 : (TARGET_AVX512VL)))
20832 : return -1;
20833 : return 4102; /* *fma_fnmsub_v4df */
20834 :
20835 : case E_V32HFmode:
20836 : if (pattern881 (x3,
20837 : E_V32HFmode) != 0
20838 : || !(
20839 : #line 6663 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20840 : (TARGET_AVX512F && 1 && 1) &&
20841 : #line 6333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20842 : (TARGET_AVX512FP16)))
20843 : return -1;
20844 : return 4079; /* *fma_fnmsub_v32hf */
20845 :
20846 : case E_V16HFmode:
20847 : if (pattern881 (x3,
20848 : E_V16HFmode) != 0
20849 : || !(
20850 : #line 6663 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20851 : (TARGET_AVX512F && 1 && 1) &&
20852 : #line 6334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20853 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
20854 : return -1;
20855 : return 4083; /* *fma_fnmsub_v16hf */
20856 :
20857 : case E_V8HFmode:
20858 : if (pattern881 (x3,
20859 : E_V8HFmode) != 0
20860 : || !(
20861 : #line 6663 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20862 : (TARGET_AVX512F && 1 && 1) &&
20863 : #line 6335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20864 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
20865 : return -1;
20866 : return 4085; /* *fma_fnmsub_v8hf */
20867 :
20868 : case E_V16SFmode:
20869 : if (pattern881 (x3,
20870 : E_V16SFmode) != 0
20871 : || !
20872 : #line 6663 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20873 : (TARGET_AVX512F && 1 && 1))
20874 : return -1;
20875 : return 4089; /* *fma_fnmsub_v16sf */
20876 :
20877 : case E_V8DFmode:
20878 : if (pattern881 (x3,
20879 : E_V8DFmode) != 0
20880 : || !
20881 : #line 6663 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20882 : (TARGET_AVX512F && 1 && 1))
20883 : return -1;
20884 : return 4098; /* *fma_fnmsub_v8df */
20885 :
20886 : case E_V32BFmode:
20887 : if (pattern930 (x3,
20888 : E_V32BFmode) != 0
20889 : || !
20890 : #line 33415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20891 : (TARGET_AVX10_2))
20892 : return -1;
20893 : return 10768; /* avx10_2_fnmsubbf16_v32bf */
20894 :
20895 : case E_V16BFmode:
20896 : if (pattern930 (x3,
20897 : E_V16BFmode) != 0
20898 : || !
20899 : #line 33415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20900 : (TARGET_AVX10_2))
20901 : return -1;
20902 : return 10770; /* avx10_2_fnmsubbf16_v16bf */
20903 :
20904 : case E_V8BFmode:
20905 : if (pattern930 (x3,
20906 : E_V8BFmode) != 0
20907 : || !
20908 : #line 33415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20909 : (TARGET_AVX10_2))
20910 : return -1;
20911 : return 10772; /* avx10_2_fnmsubbf16_v8bf */
20912 :
20913 : default:
20914 : return -1;
20915 : }
20916 :
20917 : default:
20918 : return -1;
20919 : }
20920 :
20921 : default:
20922 : return -1;
20923 : }
20924 : }
20925 :
20926 : int
20927 : recog_334 (rtx x1 ATTRIBUTE_UNUSED,
20928 : rtx_insn *insn ATTRIBUTE_UNUSED,
20929 : int *pnum_clobbers ATTRIBUTE_UNUSED)
20930 : {
20931 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
20932 : int res ATTRIBUTE_UNUSED;
20933 : switch (pattern30 (x1))
20934 : {
20935 : case 0:
20936 : if (nonimmediate_operand (operands[1], E_V16HImode)
20937 : && nonmemory_operand (operands[2], E_DImode)
20938 : && (
20939 : #line 17732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20940 : (TARGET_AVX512VL) &&
20941 : #line 786 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20942 : (TARGET_AVX512BW)))
20943 : return 7710; /* *ashlv16hi3 */
20944 : if (!register_operand (operands[1], E_V16HImode))
20945 : return -1;
20946 : if (nonmemory_operand (operands[2], E_DImode)
20947 : && (
20948 : #line 17746 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20949 : (TARGET_SSE2) &&
20950 : #line 763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20951 : (TARGET_AVX2)))
20952 : return 7734; /* ashlv16hi3 */
20953 : if (!nonimmediate_operand (operands[2], E_V16HImode)
20954 : || !(
20955 : #line 29981 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20956 : (TARGET_AVX512BW) &&
20957 : #line 675 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20958 : (TARGET_AVX512VL)))
20959 : return -1;
20960 : return 9703; /* avx512vl_ashlvv16hi */
20961 :
20962 : case 1:
20963 : if (nonimmediate_operand (operands[1], E_V8HImode)
20964 : && nonmemory_operand (operands[2], E_DImode)
20965 : && (
20966 : #line 17732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20967 : (TARGET_AVX512VL) &&
20968 : #line 786 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20969 : (TARGET_AVX512BW)))
20970 : return 7714; /* *ashlv8hi3 */
20971 : if (!register_operand (operands[1], E_V8HImode))
20972 : return -1;
20973 : if (nonmemory_operand (operands[2], E_DImode)
20974 : &&
20975 : #line 17746 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20976 : (TARGET_SSE2))
20977 : return 7736; /* ashlv8hi3 */
20978 : if (!nonimmediate_operand (operands[2], E_V8HImode)
20979 : || !(
20980 : #line 29981 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20981 : (TARGET_AVX512BW) &&
20982 : #line 675 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20983 : (TARGET_AVX512VL)))
20984 : return -1;
20985 : return 9699; /* avx512vl_ashlvv8hi */
20986 :
20987 : case 2:
20988 : if (nonimmediate_operand (operands[1], E_V8SImode)
20989 : && nonmemory_operand (operands[2], E_DImode)
20990 : &&
20991 : #line 17732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20992 : (TARGET_AVX512VL))
20993 : return 7718; /* *ashlv8si3 */
20994 : if (!register_operand (operands[1], E_V8SImode))
20995 : return -1;
20996 : if (nonmemory_operand (operands[2], E_DImode)
20997 : && (
20998 : #line 17746 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20999 : (TARGET_SSE2) &&
21000 : #line 764 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21001 : (TARGET_AVX2)))
21002 : return 7738; /* ashlv8si3 */
21003 : if (!nonimmediate_operand (operands[2], E_V8SImode)
21004 : || !
21005 : #line 29970 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21006 : (TARGET_AVX2 && 1))
21007 : return -1;
21008 : return 9679; /* avx2_ashlvv8si */
21009 :
21010 : case 3:
21011 : if (nonimmediate_operand (operands[1], E_V4SImode)
21012 : && nonmemory_operand (operands[2], E_DImode)
21013 : &&
21014 : #line 17732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21015 : (TARGET_AVX512VL))
21016 : return 7722; /* *ashlv4si3 */
21017 : if (!register_operand (operands[1], E_V4SImode))
21018 : return -1;
21019 : if (nonmemory_operand (operands[2], E_DImode)
21020 : &&
21021 : #line 17746 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21022 : (TARGET_SSE2))
21023 : return 7740; /* ashlv4si3 */
21024 : if (!nonimmediate_operand (operands[2], E_V4SImode)
21025 : || !
21026 : #line 29970 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21027 : (TARGET_AVX2 && 1))
21028 : return -1;
21029 : return 9683; /* avx2_ashlvv4si */
21030 :
21031 : case 4:
21032 : if (nonimmediate_operand (operands[1], E_V4DImode)
21033 : && nonmemory_operand (operands[2], E_DImode)
21034 : &&
21035 : #line 17732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21036 : (TARGET_AVX512VL))
21037 : return 7726; /* *ashlv4di3 */
21038 : if (!register_operand (operands[1], E_V4DImode))
21039 : return -1;
21040 : if (nonmemory_operand (operands[2], E_DImode)
21041 : && (
21042 : #line 17746 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21043 : (TARGET_SSE2) &&
21044 : #line 765 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21045 : (TARGET_AVX2)))
21046 : return 7742; /* ashlv4di3 */
21047 : if (!nonimmediate_operand (operands[2], E_V4DImode)
21048 : || !
21049 : #line 29970 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21050 : (TARGET_AVX2 && 1))
21051 : return -1;
21052 : return 9691; /* avx2_ashlvv4di */
21053 :
21054 : case 5:
21055 : if (nonimmediate_operand (operands[1], E_V2DImode)
21056 : && nonmemory_operand (operands[2], E_DImode)
21057 : &&
21058 : #line 17732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21059 : (TARGET_AVX512VL))
21060 : return 7730; /* *ashlv2di3 */
21061 : if (!register_operand (operands[1], E_V2DImode))
21062 : return -1;
21063 : if (nonmemory_operand (operands[2], E_DImode)
21064 : &&
21065 : #line 17746 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21066 : (TARGET_SSE2))
21067 : return 7744; /* ashlv2di3 */
21068 : if (!nonimmediate_operand (operands[2], E_V2DImode)
21069 : || !
21070 : #line 29970 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21071 : (TARGET_AVX2 && 1))
21072 : return -1;
21073 : return 9695; /* avx2_ashlvv2di */
21074 :
21075 : case 6:
21076 : if (nonimmediate_operand (operands[1], E_V32HImode)
21077 : && nonmemory_operand (operands[2], E_DImode)
21078 : && (
21079 : #line 17820 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21080 : (TARGET_AVX512F) &&
21081 : #line 773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21082 : (TARGET_AVX512BW)))
21083 : return 7750; /* ashlv32hi3 */
21084 : if (!register_operand (operands[1], E_V32HImode)
21085 : || !nonimmediate_operand (operands[2], E_V32HImode)
21086 : || !
21087 : #line 29981 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21088 : (TARGET_AVX512BW))
21089 : return -1;
21090 : return 9707; /* avx512bw_ashlvv32hi */
21091 :
21092 : case 7:
21093 : if (nonimmediate_operand (operands[1], E_V16SImode)
21094 : && nonmemory_operand (operands[2], E_DImode)
21095 : &&
21096 : #line 17820 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21097 : (TARGET_AVX512F))
21098 : return 7754; /* ashlv16si3 */
21099 : if (!register_operand (operands[1], E_V16SImode)
21100 : || !nonimmediate_operand (operands[2], E_V16SImode)
21101 : || !(
21102 : #line 29970 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21103 : (TARGET_AVX2 && 1) &&
21104 : #line 791 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21105 : (TARGET_AVX512F)))
21106 : return -1;
21107 : return 9675; /* avx512f_ashlvv16si */
21108 :
21109 : case 8:
21110 : if (nonimmediate_operand (operands[1], E_V8DImode)
21111 : && nonmemory_operand (operands[2], E_DImode)
21112 : &&
21113 : #line 17820 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21114 : (TARGET_AVX512F))
21115 : return 7758; /* ashlv8di3 */
21116 : if (!register_operand (operands[1], E_V8DImode)
21117 : || !nonimmediate_operand (operands[2], E_V8DImode)
21118 : || !(
21119 : #line 29970 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21120 : (TARGET_AVX2 && 1) &&
21121 : #line 792 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21122 : (TARGET_AVX512F)))
21123 : return -1;
21124 : return 9687; /* avx512f_ashlvv8di */
21125 :
21126 : case 9:
21127 : if (register_operand (operands[1], E_V1TImode)
21128 : && const_0_to_255_not_mul_8_operand (operands[2], E_SImode)
21129 : &&
21130 : #line 17895 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21131 : (TARGET_SSE2 && TARGET_64BIT
21132 : && ix86_pre_reload_split ()))
21133 : return 7762; /* *ashlv1ti3_internal */
21134 : if (!const_0_to_255_mul_8_operand (operands[2], E_SImode))
21135 : return -1;
21136 : if (nonimmediate_operand (operands[1], E_V1TImode)
21137 : && (
21138 : #line 18039 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21139 : (TARGET_AVX512BW) &&
21140 : #line 718 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21141 : (TARGET_AVX512VL)))
21142 : return 7771; /* avx512bw_ashlv1ti3 */
21143 : if (!register_operand (operands[1], E_V1TImode)
21144 : || !
21145 : #line 18054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21146 : (TARGET_SSE2))
21147 : return -1;
21148 : return 7775; /* sse2_ashlv1ti3 */
21149 :
21150 : case 10:
21151 : if (!
21152 : #line 18039 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21153 : (TARGET_AVX512BW))
21154 : return -1;
21155 : return 7767; /* avx512bw_ashlv4ti3 */
21156 :
21157 : case 11:
21158 : if (nonimmediate_operand (operands[1], E_V2TImode)
21159 : && (
21160 : #line 18039 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21161 : (TARGET_AVX512BW) &&
21162 : #line 718 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21163 : (TARGET_AVX512VL)))
21164 : return 7769; /* avx512bw_ashlv2ti3 */
21165 : if (!register_operand (operands[1], E_V2TImode)
21166 : || !(
21167 : #line 18054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21168 : (TARGET_SSE2) &&
21169 : #line 721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21170 : (TARGET_AVX2)))
21171 : return -1;
21172 : return 7773; /* avx2_ashlv2ti3 */
21173 :
21174 : default:
21175 : return -1;
21176 : }
21177 : }
21178 :
21179 : int
21180 : recog_339 (rtx x1 ATTRIBUTE_UNUSED,
21181 : rtx_insn *insn ATTRIBUTE_UNUSED,
21182 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21183 : {
21184 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21185 : rtx x2, x3, x4;
21186 : int res ATTRIBUTE_UNUSED;
21187 : x2 = XEXP (x1, 0);
21188 : operands[0] = x2;
21189 : x3 = XEXP (x1, 1);
21190 : x4 = XEXP (x3, 0);
21191 : operands[1] = x4;
21192 : switch (GET_MODE (operands[0]))
21193 : {
21194 : case E_V16SImode:
21195 : if (!register_operand (operands[0], E_V16SImode)
21196 : || GET_MODE (x3) != E_V16SImode
21197 : || !nonimmediate_operand (operands[1], E_V16SImode)
21198 : || !
21199 : #line 31346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21200 : (TARGET_AVX512VPOPCNTDQ))
21201 : return -1;
21202 : return 10237; /* vpopcountv16si */
21203 :
21204 : case E_V8SImode:
21205 : if (!register_operand (operands[0], E_V8SImode)
21206 : || GET_MODE (x3) != E_V8SImode
21207 : || !nonimmediate_operand (operands[1], E_V8SImode)
21208 : || !(
21209 : #line 31346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21210 : (TARGET_AVX512VPOPCNTDQ) &&
21211 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21212 : (TARGET_AVX512VL)))
21213 : return -1;
21214 : return 10239; /* vpopcountv8si */
21215 :
21216 : case E_V4SImode:
21217 : if (!register_operand (operands[0], E_V4SImode)
21218 : || GET_MODE (x3) != E_V4SImode
21219 : || !nonimmediate_operand (operands[1], E_V4SImode)
21220 : || !(
21221 : #line 31346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21222 : (TARGET_AVX512VPOPCNTDQ) &&
21223 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21224 : (TARGET_AVX512VL)))
21225 : return -1;
21226 : return 10241; /* vpopcountv4si */
21227 :
21228 : case E_V8DImode:
21229 : if (!register_operand (operands[0], E_V8DImode)
21230 : || GET_MODE (x3) != E_V8DImode
21231 : || !nonimmediate_operand (operands[1], E_V8DImode)
21232 : || !
21233 : #line 31346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21234 : (TARGET_AVX512VPOPCNTDQ))
21235 : return -1;
21236 : return 10243; /* vpopcountv8di */
21237 :
21238 : case E_V4DImode:
21239 : if (!register_operand (operands[0], E_V4DImode)
21240 : || GET_MODE (x3) != E_V4DImode
21241 : || !nonimmediate_operand (operands[1], E_V4DImode)
21242 : || !(
21243 : #line 31346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21244 : (TARGET_AVX512VPOPCNTDQ) &&
21245 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21246 : (TARGET_AVX512VL)))
21247 : return -1;
21248 : return 10245; /* vpopcountv4di */
21249 :
21250 : case E_V2DImode:
21251 : if (!register_operand (operands[0], E_V2DImode)
21252 : || GET_MODE (x3) != E_V2DImode
21253 : || !nonimmediate_operand (operands[1], E_V2DImode)
21254 : || !(
21255 : #line 31346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21256 : (TARGET_AVX512VPOPCNTDQ) &&
21257 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21258 : (TARGET_AVX512VL)))
21259 : return -1;
21260 : return 10247; /* vpopcountv2di */
21261 :
21262 : case E_V64QImode:
21263 : if (!register_operand (operands[0], E_V64QImode)
21264 : || GET_MODE (x3) != E_V64QImode
21265 : || !nonimmediate_operand (operands[1], E_V64QImode)
21266 : || !
21267 : #line 31396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21268 : (TARGET_AVX512BITALG))
21269 : return -1;
21270 : return 10257; /* vpopcountv64qi */
21271 :
21272 : case E_V16QImode:
21273 : if (!register_operand (operands[0], E_V16QImode)
21274 : || GET_MODE (x3) != E_V16QImode
21275 : || !nonimmediate_operand (operands[1], E_V16QImode)
21276 : || !(
21277 : #line 31396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21278 : (TARGET_AVX512BITALG) &&
21279 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21280 : (TARGET_AVX512VL)))
21281 : return -1;
21282 : return 10259; /* vpopcountv16qi */
21283 :
21284 : case E_V32QImode:
21285 : if (!register_operand (operands[0], E_V32QImode)
21286 : || GET_MODE (x3) != E_V32QImode
21287 : || !nonimmediate_operand (operands[1], E_V32QImode)
21288 : || !(
21289 : #line 31396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21290 : (TARGET_AVX512BITALG) &&
21291 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21292 : (TARGET_AVX512VL)))
21293 : return -1;
21294 : return 10261; /* vpopcountv32qi */
21295 :
21296 : case E_V32HImode:
21297 : if (!register_operand (operands[0], E_V32HImode)
21298 : || GET_MODE (x3) != E_V32HImode
21299 : || !nonimmediate_operand (operands[1], E_V32HImode)
21300 : || !
21301 : #line 31396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21302 : (TARGET_AVX512BITALG))
21303 : return -1;
21304 : return 10263; /* vpopcountv32hi */
21305 :
21306 : case E_V16HImode:
21307 : if (!register_operand (operands[0], E_V16HImode)
21308 : || GET_MODE (x3) != E_V16HImode
21309 : || !nonimmediate_operand (operands[1], E_V16HImode)
21310 : || !(
21311 : #line 31396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21312 : (TARGET_AVX512BITALG) &&
21313 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21314 : (TARGET_AVX512VL)))
21315 : return -1;
21316 : return 10265; /* vpopcountv16hi */
21317 :
21318 : case E_V8HImode:
21319 : if (!register_operand (operands[0], E_V8HImode)
21320 : || GET_MODE (x3) != E_V8HImode
21321 : || !nonimmediate_operand (operands[1], E_V8HImode)
21322 : || !(
21323 : #line 31396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21324 : (TARGET_AVX512BITALG) &&
21325 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21326 : (TARGET_AVX512VL)))
21327 : return -1;
21328 : return 10267; /* vpopcountv8hi */
21329 :
21330 : default:
21331 : return -1;
21332 : }
21333 : }
21334 :
21335 : int
21336 : recog_346 (rtx x1 ATTRIBUTE_UNUSED,
21337 : rtx_insn *insn ATTRIBUTE_UNUSED,
21338 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21339 : {
21340 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21341 : int res ATTRIBUTE_UNUSED;
21342 : switch (pattern27 (x1))
21343 : {
21344 : case 0:
21345 : if (!(
21346 : #line 3358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21347 : (TARGET_SSE
21348 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
21349 : && 1
21350 : && 1) &&
21351 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21352 : (TARGET_AVX512FP16)))
21353 : return -1;
21354 : return 3055; /* *sminv32hf3 */
21355 :
21356 : case 1:
21357 : if (!(
21358 : #line 3358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21359 : (TARGET_SSE
21360 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
21361 : && 1
21362 : && 1) &&
21363 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21364 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
21365 : return -1;
21366 : return 3061; /* *sminv16hf3 */
21367 :
21368 : case 2:
21369 : if (!(
21370 : #line 3358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21371 : (TARGET_SSE
21372 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
21373 : && 1
21374 : && 1) &&
21375 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21376 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
21377 : return -1;
21378 : return 3065; /* *sminv8hf3 */
21379 :
21380 : case 3:
21381 : if (!(
21382 : #line 3358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21383 : (TARGET_SSE
21384 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
21385 : && 1
21386 : && 1) &&
21387 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21388 : (TARGET_AVX512F)))
21389 : return -1;
21390 : return 3071; /* *sminv16sf3 */
21391 :
21392 : case 4:
21393 : if (!(
21394 : #line 3358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21395 : (TARGET_SSE
21396 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
21397 : && 1
21398 : && 1) &&
21399 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21400 : (TARGET_AVX)))
21401 : return -1;
21402 : return 3077; /* *sminv8sf3 */
21403 :
21404 : case 5:
21405 : if (!
21406 : #line 3358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21407 : (TARGET_SSE
21408 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
21409 : && 1
21410 : && 1))
21411 : return -1;
21412 : return 3081; /* *sminv4sf3 */
21413 :
21414 : case 6:
21415 : if (!(
21416 : #line 3358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21417 : (TARGET_SSE
21418 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
21419 : && 1
21420 : && 1) &&
21421 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21422 : (TARGET_AVX512F)))
21423 : return -1;
21424 : return 3087; /* *sminv8df3 */
21425 :
21426 : case 7:
21427 : if (!(
21428 : #line 3358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21429 : (TARGET_SSE
21430 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
21431 : && 1
21432 : && 1) &&
21433 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21434 : (TARGET_AVX)))
21435 : return -1;
21436 : return 3093; /* *sminv4df3 */
21437 :
21438 : case 8:
21439 : if (!(
21440 : #line 3358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21441 : (TARGET_SSE
21442 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
21443 : && 1
21444 : && 1) &&
21445 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21446 : (TARGET_SSE2)))
21447 : return -1;
21448 : return 3097; /* *sminv2df3 */
21449 :
21450 : case 9:
21451 : if (
21452 : #line 18109 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21453 : (TARGET_AVX2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21454 : return 7826; /* *avx2_sminv32qi3 */
21455 : if (!(
21456 : #line 18163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21457 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
21458 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21459 : (TARGET_AVX512VL)))
21460 : return -1;
21461 : return 7903; /* *avx512bw_sminv32qi3 */
21462 :
21463 : case 10:
21464 : if (
21465 : #line 18109 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21466 : (TARGET_AVX2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21467 : return 7830; /* *avx2_sminv16hi3 */
21468 : if (!(
21469 : #line 18163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21470 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
21471 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21472 : (TARGET_AVX512VL)))
21473 : return -1;
21474 : return 7919; /* *avx512bw_sminv16hi3 */
21475 :
21476 : case 11:
21477 : if (
21478 : #line 18109 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21479 : (TARGET_AVX2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21480 : return 7834; /* *avx2_sminv8si3 */
21481 : if (!(
21482 : #line 18151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21483 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
21484 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21485 : (TARGET_AVX512VL)))
21486 : return -1;
21487 : return 7847; /* *avx512f_sminv8si3 */
21488 :
21489 : case 12:
21490 : if (!
21491 : #line 18151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21492 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21493 : return -1;
21494 : return 7839; /* *avx512f_sminv16si3 */
21495 :
21496 : case 13:
21497 : if (nonimmediate_operand (operands[1], E_V4SImode)
21498 : && nonimmediate_operand (operands[2], E_V4SImode)
21499 : && (
21500 : #line 18151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21501 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
21502 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21503 : (TARGET_AVX512VL)))
21504 : return 7855; /* *avx512f_sminv4si3 */
21505 : if (!vector_operand (operands[1], E_V4SImode)
21506 : || !vector_operand (operands[2], E_V4SImode)
21507 : || !
21508 : #line 18256 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21509 : (TARGET_SSE4_1
21510 : && 1
21511 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21512 : return -1;
21513 : return 7939; /* *sse4_1_sminv4si3 */
21514 :
21515 : case 14:
21516 : if (!
21517 : #line 18151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21518 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21519 : return -1;
21520 : return 7863; /* *avx512f_sminv8di3 */
21521 :
21522 : case 15:
21523 : if (!(
21524 : #line 18151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21525 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
21526 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21527 : (TARGET_AVX512VL)))
21528 : return -1;
21529 : return 7871; /* *avx512f_sminv4di3 */
21530 :
21531 : case 16:
21532 : if (!(
21533 : #line 18151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21534 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
21535 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21536 : (TARGET_AVX512VL)))
21537 : return -1;
21538 : return 7879; /* *avx512f_sminv2di3 */
21539 :
21540 : case 17:
21541 : if (!
21542 : #line 18163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21543 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21544 : return -1;
21545 : return 7887; /* *avx512bw_sminv64qi3 */
21546 :
21547 : case 18:
21548 : if (nonimmediate_operand (operands[1], E_V16QImode)
21549 : && nonimmediate_operand (operands[2], E_V16QImode)
21550 : && (
21551 : #line 18163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21552 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
21553 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21554 : (TARGET_AVX512VL)))
21555 : return 7895; /* *avx512bw_sminv16qi3 */
21556 : if (!vector_operand (operands[1], E_V16QImode)
21557 : || !vector_operand (operands[2], E_V16QImode)
21558 : || !
21559 : #line 18256 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21560 : (TARGET_SSE4_1
21561 : && 1
21562 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21563 : return -1;
21564 : return 7935; /* *sse4_1_sminv16qi3 */
21565 :
21566 : case 19:
21567 : if (!
21568 : #line 18163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21569 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21570 : return -1;
21571 : return 7911; /* *avx512bw_sminv32hi3 */
21572 :
21573 : case 20:
21574 : if (nonimmediate_operand (operands[1], E_V8HImode)
21575 : && nonimmediate_operand (operands[2], E_V8HImode)
21576 : && (
21577 : #line 18163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21578 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
21579 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21580 : (TARGET_AVX512VL)))
21581 : return 7927; /* *avx512bw_sminv8hi3 */
21582 : if (!vector_operand (operands[1], E_V8HImode)
21583 : || !vector_operand (operands[2], E_V8HImode)
21584 : || !
21585 : #line 18276 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21586 : (TARGET_SSE2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21587 : return -1;
21588 : return 7942; /* *sminv8hi3 */
21589 :
21590 : case 21:
21591 : if (!
21592 : #line 33186 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21593 : (TARGET_AVX10_2))
21594 : return -1;
21595 : return 10698; /* avx10_2_sminbf16_v32bf */
21596 :
21597 : case 22:
21598 : if (!
21599 : #line 33186 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21600 : (TARGET_AVX10_2))
21601 : return -1;
21602 : return 10702; /* avx10_2_sminbf16_v16bf */
21603 :
21604 : case 23:
21605 : if (!
21606 : #line 33186 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21607 : (TARGET_AVX10_2))
21608 : return -1;
21609 : return 10706; /* avx10_2_sminbf16_v8bf */
21610 :
21611 : default:
21612 : return -1;
21613 : }
21614 : }
21615 :
21616 : int
21617 : recog_352 (rtx x1 ATTRIBUTE_UNUSED,
21618 : rtx_insn *insn ATTRIBUTE_UNUSED,
21619 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21620 : {
21621 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21622 : int res ATTRIBUTE_UNUSED;
21623 : switch (pattern34 (x1))
21624 : {
21625 : case 0:
21626 : if (
21627 : #line 18109 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21628 : (TARGET_AVX2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21629 : return 7828; /* *avx2_uminv32qi3 */
21630 : if (!(
21631 : #line 18163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21632 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
21633 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21634 : (TARGET_AVX512VL)))
21635 : return -1;
21636 : return 7907; /* *avx512bw_uminv32qi3 */
21637 :
21638 : case 1:
21639 : if (
21640 : #line 18109 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21641 : (TARGET_AVX2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21642 : return 7832; /* *avx2_uminv16hi3 */
21643 : if (!(
21644 : #line 18163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21645 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
21646 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21647 : (TARGET_AVX512VL)))
21648 : return -1;
21649 : return 7923; /* *avx512bw_uminv16hi3 */
21650 :
21651 : case 2:
21652 : if (
21653 : #line 18109 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21654 : (TARGET_AVX2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21655 : return 7836; /* *avx2_uminv8si3 */
21656 : if (!(
21657 : #line 18151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21658 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
21659 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21660 : (TARGET_AVX512VL)))
21661 : return -1;
21662 : return 7851; /* *avx512f_uminv8si3 */
21663 :
21664 : case 3:
21665 : if (!
21666 : #line 18151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21667 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21668 : return -1;
21669 : return 7843; /* *avx512f_uminv16si3 */
21670 :
21671 : case 4:
21672 : if (nonimmediate_operand (operands[1], E_V4SImode)
21673 : && nonimmediate_operand (operands[2], E_V4SImode)
21674 : && (
21675 : #line 18151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21676 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
21677 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21678 : (TARGET_AVX512VL)))
21679 : return 7859; /* *avx512f_uminv4si3 */
21680 : if (!vector_operand (operands[1], E_V4SImode)
21681 : || !vector_operand (operands[2], E_V4SImode)
21682 : || !
21683 : #line 18342 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21684 : (TARGET_SSE4_1
21685 : && 1
21686 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21687 : return -1;
21688 : return 7949; /* *sse4_1_uminv4si3 */
21689 :
21690 : case 5:
21691 : if (!
21692 : #line 18151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21693 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21694 : return -1;
21695 : return 7867; /* *avx512f_uminv8di3 */
21696 :
21697 : case 6:
21698 : if (!(
21699 : #line 18151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21700 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
21701 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21702 : (TARGET_AVX512VL)))
21703 : return -1;
21704 : return 7875; /* *avx512f_uminv4di3 */
21705 :
21706 : case 7:
21707 : if (!(
21708 : #line 18151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21709 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
21710 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21711 : (TARGET_AVX512VL)))
21712 : return -1;
21713 : return 7883; /* *avx512f_uminv2di3 */
21714 :
21715 : case 8:
21716 : if (!
21717 : #line 18163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21718 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21719 : return -1;
21720 : return 7891; /* *avx512bw_uminv64qi3 */
21721 :
21722 : case 9:
21723 : if (nonimmediate_operand (operands[1], E_V16QImode)
21724 : && nonimmediate_operand (operands[2], E_V16QImode)
21725 : && (
21726 : #line 18163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21727 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
21728 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21729 : (TARGET_AVX512VL)))
21730 : return 7899; /* *avx512bw_uminv16qi3 */
21731 : if (!vector_operand (operands[1], E_V16QImode)
21732 : || !vector_operand (operands[2], E_V16QImode)
21733 : || !
21734 : #line 18362 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21735 : (TARGET_SSE2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21736 : return -1;
21737 : return 7952; /* *uminv16qi3 */
21738 :
21739 : case 10:
21740 : if (!
21741 : #line 18163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21742 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21743 : return -1;
21744 : return 7915; /* *avx512bw_uminv32hi3 */
21745 :
21746 : case 11:
21747 : if (nonimmediate_operand (operands[1], E_V8HImode)
21748 : && nonimmediate_operand (operands[2], E_V8HImode)
21749 : && (
21750 : #line 18163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21751 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
21752 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21753 : (TARGET_AVX512VL)))
21754 : return 7931; /* *avx512bw_uminv8hi3 */
21755 : if (!vector_operand (operands[1], E_V8HImode)
21756 : || !vector_operand (operands[2], E_V8HImode)
21757 : || !
21758 : #line 18342 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21759 : (TARGET_SSE4_1
21760 : && 1
21761 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21762 : return -1;
21763 : return 7945; /* *sse4_1_uminv8hi3 */
21764 :
21765 : default:
21766 : return -1;
21767 : }
21768 : }
21769 :
21770 : int
21771 : recog_360 (rtx x1 ATTRIBUTE_UNUSED,
21772 : rtx_insn *insn ATTRIBUTE_UNUSED,
21773 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21774 : {
21775 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21776 : rtx x2, x3, x4;
21777 : int res ATTRIBUTE_UNUSED;
21778 : x2 = XEXP (x1, 0);
21779 : operands[0] = x2;
21780 : x3 = XEXP (x1, 1);
21781 : x4 = XEXP (x3, 0);
21782 : operands[1] = x4;
21783 : switch (GET_MODE (operands[0]))
21784 : {
21785 : case E_SImode:
21786 : if (GET_MODE (x3) != E_SImode)
21787 : return -1;
21788 : if (nonimmediate_operand (operands[0], E_SImode)
21789 : && nonimmediate_operand (operands[1], E_SImode)
21790 : &&
21791 : #line 23589 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21792 : (TARGET_MOVBE
21793 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
21794 : return 1672; /* *bswapsi2_movbe */
21795 : if (!register_operand (operands[0], E_SImode)
21796 : || !register_operand (operands[1], E_SImode)
21797 : || !
21798 : #line 23604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21799 : (TARGET_BSWAP))
21800 : return -1;
21801 : return 1674; /* *bswapsi2 */
21802 :
21803 : case E_DImode:
21804 : if (GET_MODE (x3) != E_DImode)
21805 : return -1;
21806 : if (nonimmediate_operand (operands[0], E_DImode)
21807 : && nonimmediate_operand (operands[1], E_DImode)
21808 : && (
21809 : #line 23589 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21810 : (TARGET_MOVBE
21811 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
21812 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21813 : (TARGET_64BIT)))
21814 : return 1673; /* *bswapdi2_movbe */
21815 : if (!register_operand (operands[0], E_DImode)
21816 : || !register_operand (operands[1], E_DImode)
21817 : || !(
21818 : #line 23604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21819 : (TARGET_BSWAP) &&
21820 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21821 : (TARGET_64BIT)))
21822 : return -1;
21823 : return 1675; /* *bswapdi2 */
21824 :
21825 : default:
21826 : return -1;
21827 : }
21828 : }
21829 :
21830 : int
21831 : recog_365 (rtx x1 ATTRIBUTE_UNUSED,
21832 : rtx_insn *insn ATTRIBUTE_UNUSED,
21833 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21834 : {
21835 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21836 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
21837 : rtx x10, x11;
21838 : int res ATTRIBUTE_UNUSED;
21839 : x2 = XVECEXP (x1, 0, 0);
21840 : x3 = XEXP (x2, 0);
21841 : switch (GET_CODE (x3))
21842 : {
21843 : case REG:
21844 : case SUBREG:
21845 : case MEM:
21846 : res = recog_363 (x1, insn, pnum_clobbers);
21847 : if (res >= 0)
21848 : return res;
21849 : break;
21850 :
21851 : case STRICT_LOW_PART:
21852 : x4 = XVECEXP (x1, 0, 1);
21853 : if (pattern237 (x4,
21854 : E_CCmode,
21855 : 17) == 0)
21856 : {
21857 : x5 = XEXP (x3, 0);
21858 : operands[0] = x5;
21859 : x6 = XEXP (x2, 1);
21860 : operands[1] = x6;
21861 : switch (GET_MODE (operands[0]))
21862 : {
21863 : case E_QImode:
21864 : if (register_operand (operands[0], E_QImode)
21865 : && const0_operand (operands[1], E_QImode)
21866 : &&
21867 : #line 3521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21868 : (reload_completed))
21869 : return 117; /* *movstrictqi_xor */
21870 : break;
21871 :
21872 : case E_HImode:
21873 : if (register_operand (operands[0], E_HImode)
21874 : && const0_operand (operands[1], E_HImode)
21875 : &&
21876 : #line 3521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21877 : (reload_completed))
21878 : return 118; /* *movstricthi_xor */
21879 : break;
21880 :
21881 : default:
21882 : break;
21883 : }
21884 : }
21885 : break;
21886 :
21887 : case PC:
21888 : res = recog_364 (x1, insn, pnum_clobbers);
21889 : if (res >= 0)
21890 : return res;
21891 : break;
21892 :
21893 : default:
21894 : break;
21895 : }
21896 : x4 = XVECEXP (x1, 0, 1);
21897 : if (GET_CODE (x4) != CLOBBER)
21898 : return -1;
21899 : x7 = XEXP (x4, 0);
21900 : if (GET_CODE (x7) != REG
21901 : || REGNO (x7) != 17
21902 : || GET_MODE (x7) != E_CCmode)
21903 : return -1;
21904 : x6 = XEXP (x2, 1);
21905 : switch (GET_CODE (x6))
21906 : {
21907 : case SUBREG:
21908 : if (maybe_ne (SUBREG_BYTE (x6), 0))
21909 : return -1;
21910 : switch (pattern1050 (x2))
21911 : {
21912 : case 0:
21913 : x8 = XEXP (x6, 0);
21914 : x9 = XEXP (x8, 1);
21915 : operands[2] = x9;
21916 : if (general_operand (operands[2], E_QImode))
21917 : {
21918 : switch (pattern1048 (x2))
21919 : {
21920 : case 0:
21921 : return 337; /* *addqi_exthi_1 */
21922 :
21923 : case 1:
21924 : return 338; /* *addqi_extsi_1 */
21925 :
21926 : case 2:
21927 : if (
21928 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21929 : (TARGET_64BIT))
21930 : return 339; /* *addqi_extdi_1 */
21931 : break;
21932 :
21933 : default:
21934 : break;
21935 : }
21936 : }
21937 : if (GET_CODE (x9) != SUBREG)
21938 : return -1;
21939 : switch (pattern1815 (x2))
21940 : {
21941 : case 0:
21942 : return 340; /* *addqi_exthi_2 */
21943 :
21944 : case 1:
21945 : return 342; /* *addqi_extsi_2 */
21946 :
21947 : case 2:
21948 : if (!
21949 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21950 : (TARGET_64BIT))
21951 : return -1;
21952 : return 344; /* *addqi_extdi_2 */
21953 :
21954 : default:
21955 : return -1;
21956 : }
21957 :
21958 : case 1:
21959 : x8 = XEXP (x6, 0);
21960 : x9 = XEXP (x8, 1);
21961 : if (GET_CODE (x9) == SUBREG)
21962 : {
21963 : switch (pattern1815 (x2))
21964 : {
21965 : case 0:
21966 : return 341; /* *subqi_exthi_2 */
21967 :
21968 : case 1:
21969 : return 343; /* *subqi_extsi_2 */
21970 :
21971 : case 2:
21972 : if (
21973 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21974 : (TARGET_64BIT))
21975 : return 345; /* *subqi_extdi_2 */
21976 : break;
21977 :
21978 : default:
21979 : break;
21980 : }
21981 : }
21982 : operands[2] = x9;
21983 : if (!general_operand (operands[2], E_QImode))
21984 : return -1;
21985 : switch (pattern1048 (x2))
21986 : {
21987 : case 0:
21988 : return 426; /* *subqi_exthi_1 */
21989 :
21990 : case 1:
21991 : return 427; /* *subqi_extsi_1 */
21992 :
21993 : case 2:
21994 : if (!
21995 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21996 : (TARGET_64BIT))
21997 : return -1;
21998 : return 428; /* *subqi_extdi_1 */
21999 :
22000 : default:
22001 : return -1;
22002 : }
22003 :
22004 : case 2:
22005 : x8 = XEXP (x6, 0);
22006 : x9 = XEXP (x8, 1);
22007 : operands[2] = x9;
22008 : if (general_operand (operands[2], E_QImode))
22009 : {
22010 : switch (pattern1048 (x2))
22011 : {
22012 : case 0:
22013 : return 801; /* *andqi_exthi_1 */
22014 :
22015 : case 1:
22016 : return 804; /* *andqi_extsi_1 */
22017 :
22018 : case 2:
22019 : if (
22020 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22021 : (TARGET_64BIT))
22022 : return 807; /* *andqi_extdi_1 */
22023 : break;
22024 :
22025 : default:
22026 : break;
22027 : }
22028 : }
22029 : if (GET_CODE (x9) != SUBREG)
22030 : return -1;
22031 : switch (pattern1815 (x2))
22032 : {
22033 : case 0:
22034 : return 819; /* *andqi_exthi_2 */
22035 :
22036 : case 1:
22037 : return 822; /* *andqi_extsi_2 */
22038 :
22039 : case 2:
22040 : if (!
22041 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22042 : (TARGET_64BIT))
22043 : return -1;
22044 : return 825; /* *andqi_extdi_2 */
22045 :
22046 : default:
22047 : return -1;
22048 : }
22049 :
22050 : case 3:
22051 : x8 = XEXP (x6, 0);
22052 : x9 = XEXP (x8, 1);
22053 : operands[2] = x9;
22054 : if (general_operand (operands[2], E_QImode))
22055 : {
22056 : switch (pattern1048 (x2))
22057 : {
22058 : case 0:
22059 : return 802; /* *iorqi_exthi_1 */
22060 :
22061 : case 1:
22062 : return 805; /* *iorqi_extsi_1 */
22063 :
22064 : case 2:
22065 : if (
22066 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22067 : (TARGET_64BIT))
22068 : return 808; /* *iorqi_extdi_1 */
22069 : break;
22070 :
22071 : default:
22072 : break;
22073 : }
22074 : }
22075 : if (GET_CODE (x9) != SUBREG)
22076 : return -1;
22077 : switch (pattern1815 (x2))
22078 : {
22079 : case 0:
22080 : return 820; /* *iorqi_exthi_2 */
22081 :
22082 : case 1:
22083 : return 823; /* *iorqi_extsi_2 */
22084 :
22085 : case 2:
22086 : if (!
22087 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22088 : (TARGET_64BIT))
22089 : return -1;
22090 : return 826; /* *iorqi_extdi_2 */
22091 :
22092 : default:
22093 : return -1;
22094 : }
22095 :
22096 : case 4:
22097 : x8 = XEXP (x6, 0);
22098 : x9 = XEXP (x8, 1);
22099 : operands[2] = x9;
22100 : if (general_operand (operands[2], E_QImode))
22101 : {
22102 : switch (pattern1048 (x2))
22103 : {
22104 : case 0:
22105 : return 803; /* *xorqi_exthi_1 */
22106 :
22107 : case 1:
22108 : return 806; /* *xorqi_extsi_1 */
22109 :
22110 : case 2:
22111 : if (
22112 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22113 : (TARGET_64BIT))
22114 : return 809; /* *xorqi_extdi_1 */
22115 : break;
22116 :
22117 : default:
22118 : break;
22119 : }
22120 : }
22121 : if (GET_CODE (x9) != SUBREG)
22122 : return -1;
22123 : switch (pattern1815 (x2))
22124 : {
22125 : case 0:
22126 : return 821; /* *xorqi_exthi_2 */
22127 :
22128 : case 1:
22129 : return 824; /* *xorqi_extsi_2 */
22130 :
22131 : case 2:
22132 : if (!
22133 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22134 : (TARGET_64BIT))
22135 : return -1;
22136 : return 827; /* *xorqi_extdi_2 */
22137 :
22138 : default:
22139 : return -1;
22140 : }
22141 :
22142 : case 5:
22143 : return 1020; /* *negqi_exthi_1 */
22144 :
22145 : case 6:
22146 : return 1021; /* *negqi_extsi_1 */
22147 :
22148 : case 7:
22149 : if (!
22150 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22151 : (TARGET_64BIT))
22152 : return -1;
22153 : return 1022; /* *negqi_extdi_1 */
22154 :
22155 : case 8:
22156 : return 1151; /* *ashlqi_exthi_1 */
22157 :
22158 : case 9:
22159 : return 1152; /* *ashlqi_extsi_1 */
22160 :
22161 : case 10:
22162 : if (!
22163 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22164 : (TARGET_64BIT))
22165 : return -1;
22166 : return 1153; /* *ashlqi_extdi_1 */
22167 :
22168 : case 11:
22169 : operands[0] = x3;
22170 : switch (pattern1242 (x6))
22171 : {
22172 : case 0:
22173 : if ((
22174 : #line 17698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22175 : (UINTVAL (operands[2]) < 4 * BITS_PER_UNIT) &&
22176 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22177 : (!TARGET_64BIT)))
22178 : return 1170; /* lshrdi3_doubleword_lowpart */
22179 : break;
22180 :
22181 : case 1:
22182 : if ((
22183 : #line 17698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22184 : (UINTVAL (operands[2]) < 8 * BITS_PER_UNIT) &&
22185 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22186 : (TARGET_64BIT)))
22187 : return 1172; /* lshrti3_doubleword_lowpart */
22188 : break;
22189 :
22190 : default:
22191 : break;
22192 : }
22193 : x8 = XEXP (x6, 0);
22194 : if (GET_MODE (x8) != E_QImode)
22195 : return -1;
22196 : switch (pattern1049 (x2))
22197 : {
22198 : case 0:
22199 : return 1270; /* *lshrqi_exthi_1 */
22200 :
22201 : case 1:
22202 : return 1272; /* *lshrqi_extsi_1 */
22203 :
22204 : case 2:
22205 : if (!
22206 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22207 : (TARGET_64BIT))
22208 : return -1;
22209 : return 1274; /* *lshrqi_extdi_1 */
22210 :
22211 : default:
22212 : return -1;
22213 : }
22214 :
22215 : case 12:
22216 : operands[0] = x3;
22217 : switch (pattern1242 (x6))
22218 : {
22219 : case 0:
22220 : if ((
22221 : #line 17698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22222 : (UINTVAL (operands[2]) < 4 * BITS_PER_UNIT) &&
22223 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22224 : (!TARGET_64BIT)))
22225 : return 1171; /* ashrdi3_doubleword_lowpart */
22226 : break;
22227 :
22228 : case 1:
22229 : if ((
22230 : #line 17698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22231 : (UINTVAL (operands[2]) < 8 * BITS_PER_UNIT) &&
22232 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22233 : (TARGET_64BIT)))
22234 : return 1173; /* ashrti3_doubleword_lowpart */
22235 : break;
22236 :
22237 : default:
22238 : break;
22239 : }
22240 : x8 = XEXP (x6, 0);
22241 : if (GET_MODE (x8) != E_QImode)
22242 : return -1;
22243 : switch (pattern1049 (x2))
22244 : {
22245 : case 0:
22246 : return 1271; /* *ashrqi_exthi_1 */
22247 :
22248 : case 1:
22249 : return 1273; /* *ashrqi_extsi_1 */
22250 :
22251 : case 2:
22252 : if (!
22253 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22254 : (TARGET_64BIT))
22255 : return -1;
22256 : return 1275; /* *ashrqi_extdi_1 */
22257 :
22258 : default:
22259 : return -1;
22260 : }
22261 :
22262 : default:
22263 : return -1;
22264 : }
22265 :
22266 : case CONST_INT:
22267 : if (GET_CODE (x3) != ZERO_EXTRACT)
22268 : return -1;
22269 : x10 = XEXP (x3, 1);
22270 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
22271 : return -1;
22272 : x5 = XEXP (x3, 0);
22273 : operands[0] = x5;
22274 : x11 = XEXP (x3, 2);
22275 : operands[1] = x11;
22276 : switch (XWINT (x6, 0))
22277 : {
22278 : case 0L:
22279 : switch (GET_CODE (operands[1]))
22280 : {
22281 : case REG:
22282 : case SUBREG:
22283 : if (!register_operand (operands[1], E_QImode)
22284 : || GET_MODE (x3) != E_HImode)
22285 : return -1;
22286 : switch (GET_MODE (operands[0]))
22287 : {
22288 : case E_QImode:
22289 : if (!nonimmediate_operand (operands[0], E_QImode)
22290 : || !
22291 : #line 19923 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22292 : (TARGET_USE_BT && ix86_pre_reload_split ()))
22293 : return -1;
22294 : return 1443; /* *btrqi_2 */
22295 :
22296 : case E_HImode:
22297 : if (!nonimmediate_operand (operands[0], E_HImode)
22298 : || !
22299 : #line 19923 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22300 : (TARGET_USE_BT && ix86_pre_reload_split ()))
22301 : return -1;
22302 : return 1444; /* *btrhi_2 */
22303 :
22304 : default:
22305 : return -1;
22306 : }
22307 :
22308 : case CONST_INT:
22309 : if (!const_0_to_63_operand (operands[1], E_QImode)
22310 : || GET_MODE (x3) != E_DImode
22311 : || !nonimmediate_operand (operands[0], E_DImode)
22312 : || !
22313 : #line 19988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22314 : (TARGET_64BIT && (TARGET_USE_BT || reload_completed)))
22315 : return -1;
22316 : return 1446; /* *btrq_imm */
22317 :
22318 : default:
22319 : return -1;
22320 : }
22321 :
22322 : case 1L:
22323 : if (GET_MODE (x3) != E_DImode
22324 : || !nonimmediate_operand (operands[0], E_DImode)
22325 : || !const_0_to_63_operand (operands[1], E_QImode)
22326 : || !
22327 : #line 19974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22328 : (TARGET_64BIT && (TARGET_USE_BT || reload_completed)))
22329 : return -1;
22330 : return 1445; /* *btsq_imm */
22331 :
22332 : default:
22333 : return -1;
22334 : }
22335 :
22336 : default:
22337 : return -1;
22338 : }
22339 : }
22340 :
22341 : int
22342 : recog_380 (rtx x1 ATTRIBUTE_UNUSED,
22343 : rtx_insn *insn ATTRIBUTE_UNUSED,
22344 : int *pnum_clobbers ATTRIBUTE_UNUSED)
22345 : {
22346 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
22347 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
22348 : rtx x10, x11, x12;
22349 : int res ATTRIBUTE_UNUSED;
22350 : if (pattern346 (x1) != 0)
22351 : return -1;
22352 : x2 = XVECEXP (x1, 0, 0);
22353 : x3 = XEXP (x2, 1);
22354 : x4 = XEXP (x3, 0);
22355 : x5 = XEXP (x4, 0);
22356 : switch (GET_CODE (x5))
22357 : {
22358 : case REG:
22359 : case SUBREG:
22360 : case MEM:
22361 : operands[1] = x5;
22362 : x6 = XEXP (x4, 1);
22363 : operands[2] = x6;
22364 : switch (GET_CODE (operands[2]))
22365 : {
22366 : case CONST_INT:
22367 : case CONST_WIDE_INT:
22368 : case CONST_POLY_INT:
22369 : case CONST_FIXED:
22370 : case CONST_DOUBLE:
22371 : case CONST_VECTOR:
22372 : case CONST:
22373 : case REG:
22374 : case SUBREG:
22375 : case MEM:
22376 : case LABEL_REF:
22377 : case SYMBOL_REF:
22378 : case HIGH:
22379 : switch (pattern1051 (x3))
22380 : {
22381 : case 0:
22382 : if (!
22383 : #line 8381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22384 : (TARGET_APX_NDD && true
22385 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22386 : return -1;
22387 : return 397; /* *subqi_1_zexthi */
22388 :
22389 : case 1:
22390 : if (!
22391 : #line 8381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22392 : (TARGET_APX_NDD && true
22393 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22394 : return -1;
22395 : return 399; /* *subqi_1_zextsi */
22396 :
22397 : case 2:
22398 : if (!
22399 : #line 8400 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22400 : (TARGET_APX_NDD && true
22401 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22402 : return -1;
22403 : return 403; /* *subhi_1_zextsi */
22404 :
22405 : case 3:
22406 : if (!
22407 : #line 8381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22408 : (TARGET_APX_NDD && true
22409 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22410 : return -1;
22411 : return 401; /* *subqi_1_zextdi */
22412 :
22413 : case 4:
22414 : if (!
22415 : #line 8400 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22416 : (TARGET_APX_NDD && true
22417 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22418 : return -1;
22419 : return 405; /* *subhi_1_zextdi */
22420 :
22421 : case 5:
22422 : if (!
22423 : #line 8420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22424 : (TARGET_64BIT
22425 : && ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)))
22426 : return -1;
22427 : return 406; /* *subsi_1_zext */
22428 :
22429 : default:
22430 : return -1;
22431 : }
22432 :
22433 : case LTU:
22434 : case UNLT:
22435 : switch (pattern1431 (x3))
22436 : {
22437 : case 0:
22438 : if (!nonimmediate_operand (operands[1], E_QImode)
22439 : || !ix86_carry_flag_operator (operands[2], E_QImode)
22440 : || !
22441 : #line 10080 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22442 : (TARGET_APX_NDD))
22443 : return -1;
22444 : return 533; /* *subqi3_carry_zexthi_0 */
22445 :
22446 : case 1:
22447 : if (!nonimmediate_operand (operands[1], E_QImode)
22448 : || !ix86_carry_flag_operator (operands[2], E_QImode)
22449 : || !
22450 : #line 10080 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22451 : (TARGET_APX_NDD))
22452 : return -1;
22453 : return 534; /* *subqi3_carry_zextsi_0 */
22454 :
22455 : case 2:
22456 : if (!nonimmediate_operand (operands[1], E_HImode)
22457 : || !ix86_carry_flag_operator (operands[2], E_HImode)
22458 : || !
22459 : #line 10099 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22460 : (TARGET_APX_NDD))
22461 : return -1;
22462 : return 536; /* *subhi3_carry_zextsi_0 */
22463 :
22464 : case 3:
22465 : if (!nonimmediate_operand (operands[1], E_QImode)
22466 : || !ix86_carry_flag_operator (operands[2], E_QImode)
22467 : || !
22468 : #line 10080 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22469 : (TARGET_APX_NDD))
22470 : return -1;
22471 : return 535; /* *subqi3_carry_zextdi_0 */
22472 :
22473 : case 4:
22474 : if (!nonimmediate_operand (operands[1], E_HImode)
22475 : || !ix86_carry_flag_operator (operands[2], E_HImode)
22476 : || !
22477 : #line 10099 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22478 : (TARGET_APX_NDD))
22479 : return -1;
22480 : return 537; /* *subhi3_carry_zextdi_0 */
22481 :
22482 : case 5:
22483 : if (!nonimmediate_operand (operands[1], E_SImode)
22484 : || !ix86_carry_flag_operator (operands[2], E_SImode)
22485 : || !
22486 : #line 10118 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22487 : (TARGET_64BIT))
22488 : return -1;
22489 : return 538; /* *subsi3_carry_zext_0 */
22490 :
22491 : default:
22492 : return -1;
22493 : }
22494 :
22495 : case GE:
22496 : case GEU:
22497 : switch (pattern1431 (x3))
22498 : {
22499 : case 0:
22500 : if (!nonimmediate_operand (operands[1], E_QImode)
22501 : || !ix86_carry_flag_unset_operator (operands[2], E_QImode)
22502 : || !
22503 : #line 10141 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22504 : (TARGET_APX_NDD))
22505 : return -1;
22506 : return 539; /* *subqi3_carry_zexthi_0r */
22507 :
22508 : case 1:
22509 : if (!nonimmediate_operand (operands[1], E_QImode)
22510 : || !ix86_carry_flag_unset_operator (operands[2], E_QImode)
22511 : || !
22512 : #line 10141 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22513 : (TARGET_APX_NDD))
22514 : return -1;
22515 : return 540; /* *subqi3_carry_zextsi_0r */
22516 :
22517 : case 2:
22518 : if (!nonimmediate_operand (operands[1], E_HImode)
22519 : || !ix86_carry_flag_unset_operator (operands[2], E_HImode)
22520 : || !
22521 : #line 10160 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22522 : (TARGET_APX_NDD))
22523 : return -1;
22524 : return 542; /* *subhi3_carry_zextsi_0r */
22525 :
22526 : case 3:
22527 : if (!nonimmediate_operand (operands[1], E_QImode)
22528 : || !ix86_carry_flag_unset_operator (operands[2], E_QImode)
22529 : || !
22530 : #line 10141 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22531 : (TARGET_APX_NDD))
22532 : return -1;
22533 : return 541; /* *subqi3_carry_zextdi_0r */
22534 :
22535 : case 4:
22536 : if (!nonimmediate_operand (operands[1], E_HImode)
22537 : || !ix86_carry_flag_unset_operator (operands[2], E_HImode)
22538 : || !
22539 : #line 10160 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22540 : (TARGET_APX_NDD))
22541 : return -1;
22542 : return 543; /* *subhi3_carry_zextdi_0r */
22543 :
22544 : case 5:
22545 : if (!nonimmediate_operand (operands[1], E_SImode)
22546 : || !ix86_carry_flag_unset_operator (operands[2], E_SImode)
22547 : || !
22548 : #line 10179 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22549 : (TARGET_64BIT))
22550 : return -1;
22551 : return 544; /* *subsi3_carry_zext_0r */
22552 :
22553 : default:
22554 : return -1;
22555 : }
22556 :
22557 : default:
22558 : return -1;
22559 : }
22560 :
22561 : case MINUS:
22562 : x7 = XEXP (x5, 1);
22563 : switch (GET_CODE (x7))
22564 : {
22565 : case LTU:
22566 : case UNLT:
22567 : operands[3] = x7;
22568 : x8 = XEXP (x7, 0);
22569 : if (GET_CODE (x8) != REG
22570 : || REGNO (x8) != 17)
22571 : return -1;
22572 : x9 = XEXP (x7, 1);
22573 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
22574 : return -1;
22575 : x10 = XEXP (x5, 0);
22576 : operands[1] = x10;
22577 : x6 = XEXP (x4, 1);
22578 : operands[2] = x6;
22579 : switch (pattern1165 (x3))
22580 : {
22581 : case 0:
22582 : if (pattern1775 (x5,
22583 : E_QImode) != 0
22584 : || !
22585 : #line 10005 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22586 : (TARGET_APX_NDD
22587 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22588 : return -1;
22589 : return 527; /* *subqi3_carry_zexthi */
22590 :
22591 : case 1:
22592 : if (pattern1775 (x5,
22593 : E_QImode) != 0
22594 : || !
22595 : #line 10005 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22596 : (TARGET_APX_NDD
22597 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22598 : return -1;
22599 : return 528; /* *subqi3_carry_zextsi */
22600 :
22601 : case 2:
22602 : if (pattern1775 (x5,
22603 : E_HImode) != 0
22604 : || !
22605 : #line 10030 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22606 : (TARGET_APX_NDD
22607 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22608 : return -1;
22609 : return 530; /* *subhi3_carry_zextsi */
22610 :
22611 : case 3:
22612 : if (pattern1775 (x5,
22613 : E_QImode) != 0
22614 : || !
22615 : #line 10005 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22616 : (TARGET_APX_NDD
22617 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22618 : return -1;
22619 : return 529; /* *subqi3_carry_zextdi */
22620 :
22621 : case 4:
22622 : if (pattern1775 (x5,
22623 : E_HImode) != 0
22624 : || !
22625 : #line 10030 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22626 : (TARGET_APX_NDD
22627 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22628 : return -1;
22629 : return 531; /* *subhi3_carry_zextdi */
22630 :
22631 : case 5:
22632 : if (pattern1775 (x5,
22633 : E_SImode) != 0
22634 : || !
22635 : #line 10055 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22636 : (TARGET_64BIT
22637 : && ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)))
22638 : return -1;
22639 : return 532; /* *subsi3_carry_zext */
22640 :
22641 : default:
22642 : return -1;
22643 : }
22644 :
22645 : default:
22646 : return -1;
22647 : }
22648 :
22649 : case CONST_INT:
22650 : if (!register_operand (operands[0], E_DImode)
22651 : || GET_MODE (x3) != E_DImode
22652 : || GET_MODE (x4) != E_SImode)
22653 : return -1;
22654 : x6 = XEXP (x4, 1);
22655 : if (GET_MODE (x6) != E_SImode)
22656 : return -1;
22657 : switch (XWINT (x5, 0))
22658 : {
22659 : case 63L:
22660 : if (GET_CODE (x6) != SUBREG
22661 : || maybe_ne (SUBREG_BYTE (x6), 0))
22662 : return -1;
22663 : x11 = XEXP (x6, 0);
22664 : if (GET_CODE (x11) != CLZ
22665 : || GET_MODE (x11) != E_DImode)
22666 : return -1;
22667 : x12 = XEXP (x11, 0);
22668 : operands[1] = x12;
22669 : if (!nonimmediate_operand (operands[1], E_DImode)
22670 : || !
22671 : #line 22269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22672 : (!TARGET_LZCNT && TARGET_64BIT))
22673 : return -1;
22674 : return 1556; /* bsr_rex64_1_zext */
22675 :
22676 : case 31L:
22677 : if (GET_CODE (x6) != CLZ)
22678 : return -1;
22679 : x11 = XEXP (x6, 0);
22680 : operands[1] = x11;
22681 : if (!nonimmediate_operand (operands[1], E_SImode)
22682 : || !
22683 : #line 22312 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22684 : (!TARGET_LZCNT && TARGET_64BIT))
22685 : return -1;
22686 : return 1559; /* bsr_zext_1 */
22687 :
22688 : default:
22689 : return -1;
22690 : }
22691 :
22692 : default:
22693 : return -1;
22694 : }
22695 : }
22696 :
22697 : int
22698 : recog_389 (rtx x1 ATTRIBUTE_UNUSED,
22699 : rtx_insn *insn ATTRIBUTE_UNUSED,
22700 : int *pnum_clobbers ATTRIBUTE_UNUSED)
22701 : {
22702 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
22703 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
22704 : rtx x10, x11;
22705 : int res ATTRIBUTE_UNUSED;
22706 : x2 = XVECEXP (x1, 0, 0);
22707 : x3 = XEXP (x2, 1);
22708 : x4 = XEXP (x3, 1);
22709 : if (!rtx_equal_p (x4, operands[1]))
22710 : return -1;
22711 : x5 = XEXP (x2, 0);
22712 : if (GET_MODE (x5) != E_CCCmode
22713 : || GET_MODE (x3) != E_CCCmode)
22714 : return -1;
22715 : x6 = XVECEXP (x1, 0, 1);
22716 : switch (GET_CODE (x6))
22717 : {
22718 : case CLOBBER:
22719 : x7 = XEXP (x6, 0);
22720 : operands[0] = x7;
22721 : x8 = XEXP (x3, 0);
22722 : switch (pattern1330 (x8))
22723 : {
22724 : case 0:
22725 : if (!
22726 : #line 10651 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22727 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))))
22728 : return -1;
22729 : return 562; /* *addqi3_cconly_overflow_1 */
22730 :
22731 : case 1:
22732 : if (!
22733 : #line 10651 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22734 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))))
22735 : return -1;
22736 : return 563; /* *addhi3_cconly_overflow_1 */
22737 :
22738 : case 2:
22739 : if (!
22740 : #line 10651 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22741 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))))
22742 : return -1;
22743 : return 564; /* *addsi3_cconly_overflow_1 */
22744 :
22745 : case 3:
22746 : if (!(
22747 : #line 10651 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22748 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
22749 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22750 : (TARGET_64BIT)))
22751 : return -1;
22752 : return 565; /* *adddi3_cconly_overflow_1 */
22753 :
22754 : default:
22755 : return -1;
22756 : }
22757 :
22758 : case SET:
22759 : x7 = XEXP (x6, 0);
22760 : operands[0] = x7;
22761 : x9 = XEXP (x6, 1);
22762 : switch (GET_CODE (x9))
22763 : {
22764 : case PLUS:
22765 : x10 = XEXP (x9, 0);
22766 : if (!rtx_equal_p (x10, operands[1]))
22767 : return -1;
22768 : x11 = XEXP (x9, 1);
22769 : if (!rtx_equal_p (x11, operands[2]))
22770 : return -1;
22771 : x8 = XEXP (x3, 0);
22772 : switch (GET_MODE (x8))
22773 : {
22774 : case E_QImode:
22775 : if (pattern1437 (x9,
22776 : E_QImode) != 0
22777 : || !
22778 : #line 10674 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22779 : (ix86_binary_operator_ok (PLUS, QImode, operands, TARGET_APX_NDD)))
22780 : return -1;
22781 : return 566; /* addqi3_cc_overflow_1 */
22782 :
22783 : case E_HImode:
22784 : if (pattern1437 (x9,
22785 : E_HImode) != 0
22786 : || !
22787 : #line 10674 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22788 : (ix86_binary_operator_ok (PLUS, HImode, operands, TARGET_APX_NDD)))
22789 : return -1;
22790 : return 567; /* addhi3_cc_overflow_1 */
22791 :
22792 : case E_SImode:
22793 : if (pattern1438 (x9,
22794 : E_SImode) != 0
22795 : || !
22796 : #line 10674 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22797 : (ix86_binary_operator_ok (PLUS, SImode, operands, TARGET_APX_NDD)))
22798 : return -1;
22799 : return 568; /* addsi3_cc_overflow_1 */
22800 :
22801 : case E_DImode:
22802 : if (pattern1438 (x9,
22803 : E_DImode) != 0
22804 : || !(
22805 : #line 10674 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22806 : (ix86_binary_operator_ok (PLUS, DImode, operands, TARGET_APX_NDD)) &&
22807 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22808 : (TARGET_64BIT)))
22809 : return -1;
22810 : return 569; /* adddi3_cc_overflow_1 */
22811 :
22812 : case E_TImode:
22813 : if (pattern1687 (x9,
22814 : E_TImode) != 0
22815 : || !(
22816 : #line 10833 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22817 : (ix86_binary_operator_ok (PLUS, TImode, operands, TARGET_APX_NDD)) &&
22818 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22819 : (TARGET_64BIT)))
22820 : return -1;
22821 : return 581; /* *addti3_doubleword_cc_overflow_1 */
22822 :
22823 : default:
22824 : return -1;
22825 : }
22826 :
22827 : case ZERO_EXTEND:
22828 : if (pattern1435 (x1,
22829 : PLUS) != 0
22830 : || !
22831 : #line 10737 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22832 : (TARGET_64BIT
22833 : && ix86_binary_operator_ok (PLUS, SImode, operands, TARGET_APX_NDD)))
22834 : return -1;
22835 : return 570; /* *addsi3_zext_cc_overflow_1 */
22836 :
22837 : default:
22838 : return -1;
22839 : }
22840 :
22841 : default:
22842 : return -1;
22843 : }
22844 : }
22845 :
22846 : int
22847 : recog_393 (rtx x1 ATTRIBUTE_UNUSED,
22848 : rtx_insn *insn ATTRIBUTE_UNUSED,
22849 : int *pnum_clobbers ATTRIBUTE_UNUSED)
22850 : {
22851 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
22852 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
22853 : rtx x10, x11;
22854 : int res ATTRIBUTE_UNUSED;
22855 : if (pattern588 (x1,
22856 : PLUS,
22857 : E_CCZmode) != 0)
22858 : return -1;
22859 : x2 = XVECEXP (x1, 0, 0);
22860 : x3 = XEXP (x2, 1);
22861 : if (GET_MODE (x3) != E_CCZmode)
22862 : return -1;
22863 : x4 = XEXP (x3, 0);
22864 : x5 = XVECEXP (x4, 0, 0);
22865 : operands[0] = x5;
22866 : x6 = XVECEXP (x4, 0, 1);
22867 : operands[3] = x6;
22868 : if (!const_int_operand (operands[3], E_SImode))
22869 : return -1;
22870 : x7 = XVECEXP (x1, 0, 1);
22871 : x8 = XEXP (x7, 1);
22872 : x9 = XEXP (x8, 1);
22873 : operands[1] = x9;
22874 : x10 = XEXP (x8, 0);
22875 : if (!rtx_equal_p (x10, operands[0]))
22876 : return -1;
22877 : x11 = XEXP (x7, 0);
22878 : if (!rtx_equal_p (x11, operands[0]))
22879 : return -1;
22880 : switch (GET_MODE (x4))
22881 : {
22882 : case E_QImode:
22883 : if (pattern1778 (x8,
22884 : E_QImode) != 0
22885 : || !
22886 : #line 778 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
22887 : ((unsigned HOST_WIDE_INT) INTVAL (operands[1])
22888 : == -(unsigned HOST_WIDE_INT) INTVAL (operands[2])))
22889 : return -1;
22890 : return 11114; /* *atomic_fetch_add_cmpqi */
22891 :
22892 : case E_HImode:
22893 : if (pattern1778 (x8,
22894 : E_HImode) != 0
22895 : || !
22896 : #line 778 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
22897 : ((unsigned HOST_WIDE_INT) INTVAL (operands[1])
22898 : == -(unsigned HOST_WIDE_INT) INTVAL (operands[2])))
22899 : return -1;
22900 : return 11115; /* *atomic_fetch_add_cmphi */
22901 :
22902 : case E_SImode:
22903 : if (pattern1778 (x8,
22904 : E_SImode) != 0
22905 : || !
22906 : #line 778 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
22907 : ((unsigned HOST_WIDE_INT) INTVAL (operands[1])
22908 : == -(unsigned HOST_WIDE_INT) INTVAL (operands[2])))
22909 : return -1;
22910 : return 11116; /* *atomic_fetch_add_cmpsi */
22911 :
22912 : case E_DImode:
22913 : if (pattern1778 (x8,
22914 : E_DImode) != 0
22915 : || !(
22916 : #line 778 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
22917 : ((unsigned HOST_WIDE_INT) INTVAL (operands[1])
22918 : == -(unsigned HOST_WIDE_INT) INTVAL (operands[2])) &&
22919 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22920 : (TARGET_64BIT)))
22921 : return -1;
22922 : return 11117; /* *atomic_fetch_add_cmpdi */
22923 :
22924 : default:
22925 : return -1;
22926 : }
22927 : }
22928 :
22929 : int
22930 : recog_396 (rtx x1 ATTRIBUTE_UNUSED,
22931 : rtx_insn *insn ATTRIBUTE_UNUSED,
22932 : int *pnum_clobbers ATTRIBUTE_UNUSED)
22933 : {
22934 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
22935 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
22936 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
22937 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
22938 : int res ATTRIBUTE_UNUSED;
22939 : x2 = XVECEXP (x1, 0, 0);
22940 : x3 = XEXP (x2, 1);
22941 : x4 = XEXP (x3, 1);
22942 : if (GET_CODE (x4) != PLUS)
22943 : return -1;
22944 : x5 = XEXP (x4, 0);
22945 : switch (GET_CODE (x5))
22946 : {
22947 : case LTU:
22948 : case UNLT:
22949 : x6 = XEXP (x5, 1);
22950 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
22951 : || pattern830 (x2,
22952 : E_CCCmode) != 0)
22953 : return -1;
22954 : x7 = XEXP (x3, 0);
22955 : x8 = XEXP (x7, 0);
22956 : switch (GET_CODE (x8))
22957 : {
22958 : case PLUS:
22959 : x9 = XEXP (x8, 0);
22960 : if (GET_CODE (x9) != PLUS)
22961 : return -1;
22962 : x10 = XEXP (x9, 0);
22963 : switch (GET_CODE (x10))
22964 : {
22965 : case LTU:
22966 : case UNLT:
22967 : operands[5] = x10;
22968 : x11 = XEXP (x10, 1);
22969 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
22970 : return -1;
22971 : x12 = XVECEXP (x1, 0, 1);
22972 : if (GET_CODE (x12) != SET)
22973 : return -1;
22974 : x13 = XEXP (x12, 1);
22975 : if (GET_CODE (x13) != PLUS)
22976 : return -1;
22977 : x14 = XEXP (x13, 0);
22978 : if (GET_CODE (x14) != PLUS)
22979 : return -1;
22980 : x15 = XEXP (x14, 0);
22981 : switch (GET_CODE (x15))
22982 : {
22983 : case LTU:
22984 : case UNLT:
22985 : if (!rtx_equal_p (x15, operands[5]))
22986 : return -1;
22987 : x16 = XEXP (x10, 0);
22988 : operands[3] = x16;
22989 : if (!flags_reg_operand (operands[3], E_VOIDmode))
22990 : return -1;
22991 : x17 = XEXP (x9, 1);
22992 : operands[1] = x17;
22993 : x18 = XEXP (x8, 1);
22994 : operands[2] = x18;
22995 : operands[4] = x5;
22996 : x19 = XEXP (x12, 0);
22997 : operands[0] = x19;
22998 : x20 = XEXP (x5, 0);
22999 : if (!rtx_equal_p (x20, operands[3]))
23000 : return -1;
23001 : x21 = XEXP (x14, 1);
23002 : if (!rtx_equal_p (x21, operands[1]))
23003 : return -1;
23004 : x22 = XEXP (x13, 1);
23005 : if (!rtx_equal_p (x22, operands[2]))
23006 : return -1;
23007 : switch (GET_CODE (operands[2]))
23008 : {
23009 : case REG:
23010 : case SUBREG:
23011 : case MEM:
23012 : x23 = XEXP (x4, 1);
23013 : if (GET_CODE (x23) != ZERO_EXTEND)
23014 : return -1;
23015 : x24 = XEXP (x23, 0);
23016 : if (!rtx_equal_p (x24, operands[2]))
23017 : return -1;
23018 : switch (GET_MODE (x7))
23019 : {
23020 : case E_DImode:
23021 : if (pattern1889 (x1,
23022 : E_SImode,
23023 : E_DImode) != 0
23024 : || !
23025 : #line 9485 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23026 : (ix86_binary_operator_ok (PLUS, SImode, operands, TARGET_APX_NDD)))
23027 : return -1;
23028 : return 499; /* addcarrysi */
23029 :
23030 : case E_TImode:
23031 : if (pattern1889 (x1,
23032 : E_DImode,
23033 : E_TImode) != 0
23034 : || !(
23035 : #line 9485 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23036 : (ix86_binary_operator_ok (PLUS, DImode, operands, TARGET_APX_NDD)) &&
23037 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23038 : (TARGET_64BIT)))
23039 : return -1;
23040 : return 500; /* addcarrydi */
23041 :
23042 : default:
23043 : return -1;
23044 : }
23045 :
23046 : case CONST_INT:
23047 : case CONST:
23048 : case LABEL_REF:
23049 : case SYMBOL_REF:
23050 : x23 = XEXP (x4, 1);
23051 : operands[6] = x23;
23052 : switch (GET_MODE (x7))
23053 : {
23054 : case E_DImode:
23055 : if (pattern1886 (x1,
23056 : E_SImode,
23057 : E_DImode) != 0
23058 : || !
23059 : #line 9788 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23060 : (ix86_binary_operator_ok (PLUS, SImode, operands, TARGET_APX_NDD)
23061 : && CONST_INT_P (operands[2])
23062 : /* Check that operands[6] is operands[2] zero extended from
23063 : SImode to DImode. */
23064 : && ((SImode == SImode || INTVAL (operands[2]) >= 0)
23065 : ? (CONST_INT_P (operands[6])
23066 : && UINTVAL (operands[6]) == (UINTVAL (operands[2])
23067 : & GET_MODE_MASK (SImode)))
23068 : : (CONST_WIDE_INT_P (operands[6])
23069 : && CONST_WIDE_INT_NUNITS (operands[6]) == 2
23070 : && ((unsigned HOST_WIDE_INT) CONST_WIDE_INT_ELT (operands[6], 0)
23071 : == UINTVAL (operands[2]))
23072 : && CONST_WIDE_INT_ELT (operands[6], 1) == 0))))
23073 : return -1;
23074 : return 501; /* *addcarrysi_1 */
23075 :
23076 : case E_TImode:
23077 : if (pattern1886 (x1,
23078 : E_DImode,
23079 : E_TImode) != 0
23080 : || !(
23081 : #line 9788 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23082 : (ix86_binary_operator_ok (PLUS, DImode, operands, TARGET_APX_NDD)
23083 : && CONST_INT_P (operands[2])
23084 : /* Check that operands[6] is operands[2] zero extended from
23085 : DImode to TImode. */
23086 : && ((DImode == SImode || INTVAL (operands[2]) >= 0)
23087 : ? (CONST_INT_P (operands[6])
23088 : && UINTVAL (operands[6]) == (UINTVAL (operands[2])
23089 : & GET_MODE_MASK (DImode)))
23090 : : (CONST_WIDE_INT_P (operands[6])
23091 : && CONST_WIDE_INT_NUNITS (operands[6]) == 2
23092 : && ((unsigned HOST_WIDE_INT) CONST_WIDE_INT_ELT (operands[6], 0)
23093 : == UINTVAL (operands[2]))
23094 : && CONST_WIDE_INT_ELT (operands[6], 1) == 0))) &&
23095 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23096 : (TARGET_64BIT)))
23097 : return -1;
23098 : return 502; /* *addcarrydi_1 */
23099 :
23100 : default:
23101 : return -1;
23102 : }
23103 :
23104 : default:
23105 : return -1;
23106 : }
23107 :
23108 : default:
23109 : return -1;
23110 : }
23111 :
23112 : default:
23113 : return -1;
23114 : }
23115 :
23116 : case REG:
23117 : case SUBREG:
23118 : case MEM:
23119 : operands[1] = x8;
23120 : if (GET_CODE (x5) == LTU)
23121 : {
23122 : res = recog_391 (x1, insn, pnum_clobbers);
23123 : if (res >= 0)
23124 : return res;
23125 : }
23126 : x12 = XVECEXP (x1, 0, 1);
23127 : if (GET_CODE (x12) != SET)
23128 : return -1;
23129 : operands[4] = x5;
23130 : x20 = XEXP (x5, 0);
23131 : operands[3] = x20;
23132 : if (!flags_reg_operand (operands[3], E_VOIDmode))
23133 : return -1;
23134 : x19 = XEXP (x12, 0);
23135 : operands[0] = x19;
23136 : x23 = XEXP (x4, 1);
23137 : switch (GET_CODE (x23))
23138 : {
23139 : case ZERO_EXTEND:
23140 : x13 = XEXP (x12, 1);
23141 : if (pattern1704 (x13,
23142 : MINUS) != 0)
23143 : return -1;
23144 : x24 = XEXP (x23, 0);
23145 : operands[2] = x24;
23146 : x14 = XEXP (x13, 0);
23147 : x15 = XEXP (x14, 0);
23148 : if (!rtx_equal_p (x15, operands[1]))
23149 : return -1;
23150 : x21 = XEXP (x14, 1);
23151 : x25 = XEXP (x21, 0);
23152 : if (!rtx_equal_p (x25, operands[3]))
23153 : return -1;
23154 : x22 = XEXP (x13, 1);
23155 : if (!rtx_equal_p (x22, operands[2]))
23156 : return -1;
23157 : switch (GET_MODE (x7))
23158 : {
23159 : case E_DImode:
23160 : if (pattern1872 (x1,
23161 : E_SImode,
23162 : E_DImode) != 0
23163 : || !
23164 : #line 10256 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23165 : (ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)))
23166 : return -1;
23167 : return 551; /* subborrowsi */
23168 :
23169 : case E_TImode:
23170 : if (pattern1872 (x1,
23171 : E_DImode,
23172 : E_TImode) != 0
23173 : || !(
23174 : #line 10256 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23175 : (ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)) &&
23176 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23177 : (TARGET_64BIT)))
23178 : return -1;
23179 : return 552; /* subborrowdi */
23180 :
23181 : default:
23182 : return -1;
23183 : }
23184 :
23185 : case CONST_INT:
23186 : case CONST_WIDE_INT:
23187 : operands[6] = x23;
23188 : x13 = XEXP (x12, 1);
23189 : if (pattern1704 (x13,
23190 : PLUS) != 0)
23191 : return -1;
23192 : x22 = XEXP (x13, 1);
23193 : operands[2] = x22;
23194 : x14 = XEXP (x13, 0);
23195 : x15 = XEXP (x14, 0);
23196 : if (!rtx_equal_p (x15, operands[1]))
23197 : return -1;
23198 : x21 = XEXP (x14, 1);
23199 : x25 = XEXP (x21, 0);
23200 : if (!rtx_equal_p (x25, operands[3]))
23201 : return -1;
23202 : switch (GET_MODE (x7))
23203 : {
23204 : case E_DImode:
23205 : if (pattern1873 (x1,
23206 : E_SImode,
23207 : E_DImode) != 0
23208 : || !
23209 : #line 10492 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23210 : (ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)
23211 : && CONST_INT_P (operands[2])
23212 : /* Check that operands[6] is -operands[2] zero extended from
23213 : SImode to DImode. */
23214 : && ((SImode == SImode || -INTVAL (operands[2]) >= 0)
23215 : ? (CONST_INT_P (operands[6])
23216 : && (UINTVAL (operands[6])
23217 : == ((unsigned HOST_WIDE_INT) -INTVAL (operands[2])
23218 : & GET_MODE_MASK (SImode))))
23219 : : (CONST_WIDE_INT_P (operands[6])
23220 : && CONST_WIDE_INT_NUNITS (operands[6]) == 2
23221 : && ((unsigned HOST_WIDE_INT) CONST_WIDE_INT_ELT (operands[6], 0)
23222 : == (unsigned HOST_WIDE_INT) -INTVAL (operands[2]))
23223 : && CONST_WIDE_INT_ELT (operands[6], 1) == 0))))
23224 : return -1;
23225 : return 553; /* *subborrowsi_1 */
23226 :
23227 : case E_TImode:
23228 : if (pattern1873 (x1,
23229 : E_DImode,
23230 : E_TImode) != 0
23231 : || !(
23232 : #line 10492 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23233 : (ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)
23234 : && CONST_INT_P (operands[2])
23235 : /* Check that operands[6] is -operands[2] zero extended from
23236 : DImode to TImode. */
23237 : && ((DImode == SImode || -INTVAL (operands[2]) >= 0)
23238 : ? (CONST_INT_P (operands[6])
23239 : && (UINTVAL (operands[6])
23240 : == ((unsigned HOST_WIDE_INT) -INTVAL (operands[2])
23241 : & GET_MODE_MASK (DImode))))
23242 : : (CONST_WIDE_INT_P (operands[6])
23243 : && CONST_WIDE_INT_NUNITS (operands[6]) == 2
23244 : && ((unsigned HOST_WIDE_INT) CONST_WIDE_INT_ELT (operands[6], 0)
23245 : == (unsigned HOST_WIDE_INT) -INTVAL (operands[2]))
23246 : && CONST_WIDE_INT_ELT (operands[6], 1) == 0))) &&
23247 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23248 : (TARGET_64BIT)))
23249 : return -1;
23250 : return 554; /* *subborrowdi_1 */
23251 :
23252 : default:
23253 : return -1;
23254 : }
23255 :
23256 : default:
23257 : return -1;
23258 : }
23259 :
23260 : default:
23261 : return -1;
23262 : }
23263 :
23264 : default:
23265 : return -1;
23266 : }
23267 : }
23268 :
23269 : int
23270 : recog_401 (rtx x1 ATTRIBUTE_UNUSED,
23271 : rtx_insn *insn ATTRIBUTE_UNUSED,
23272 : int *pnum_clobbers ATTRIBUTE_UNUSED)
23273 : {
23274 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
23275 : rtx x2, x3, x4, x5, x6;
23276 : int res ATTRIBUTE_UNUSED;
23277 : x2 = XVECEXP (x1, 0, 0);
23278 : x3 = XEXP (x2, 0);
23279 : switch (GET_CODE (x3))
23280 : {
23281 : case REG:
23282 : case SUBREG:
23283 : case MEM:
23284 : operands[0] = x3;
23285 : x4 = XVECEXP (x1, 0, 1);
23286 : switch (GET_CODE (x4))
23287 : {
23288 : case CLOBBER:
23289 : x5 = XEXP (x4, 0);
23290 : if (GET_CODE (x5) != REG
23291 : || REGNO (x5) != 17
23292 : || GET_MODE (x5) != E_CCmode)
23293 : return -1;
23294 : switch (GET_MODE (operands[0]))
23295 : {
23296 : case E_DImode:
23297 : if (!nonimmediate_operand (operands[0], E_DImode))
23298 : return -1;
23299 : x6 = XEXP (x2, 1);
23300 : if (GET_MODE (x6) != E_DImode
23301 : || !nonimmediate_operand (operands[1], E_DImode))
23302 : return -1;
23303 : if (x86_64_hilo_general_operand (operands[2], E_DImode)
23304 : && (
23305 : #line 8293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23306 : (ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)) &&
23307 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23308 : (!TARGET_64BIT)))
23309 : return 384; /* *subdi3_doubleword */
23310 : if (!x86_64_general_operand (operands[2], E_DImode)
23311 : || !(
23312 : #line 8357 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23313 : (ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)
23314 : && true) &&
23315 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23316 : (TARGET_64BIT)))
23317 : return -1;
23318 : return 395; /* *subdi_1 */
23319 :
23320 : case E_TImode:
23321 : x6 = XEXP (x2, 1);
23322 : if (pattern568 (x6,
23323 : E_TImode) != 0
23324 : || !(
23325 : #line 8293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23326 : (ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)) &&
23327 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23328 : (TARGET_64BIT)))
23329 : return -1;
23330 : return 385; /* *subti3_doubleword */
23331 :
23332 : case E_QImode:
23333 : x6 = XEXP (x2, 1);
23334 : if (pattern569 (x6,
23335 : E_QImode) != 0
23336 : || !
23337 : #line 8357 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23338 : (ix86_binary_operator_ok (MINUS, QImode, operands, TARGET_APX_NDD)
23339 : && true))
23340 : return -1;
23341 : return 389; /* *subqi_1 */
23342 :
23343 : case E_HImode:
23344 : x6 = XEXP (x2, 1);
23345 : if (pattern569 (x6,
23346 : E_HImode) != 0
23347 : || !
23348 : #line 8357 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23349 : (ix86_binary_operator_ok (MINUS, HImode, operands, TARGET_APX_NDD)
23350 : && true))
23351 : return -1;
23352 : return 391; /* *subhi_1 */
23353 :
23354 : case E_SImode:
23355 : x6 = XEXP (x2, 1);
23356 : if (pattern570 (x6) != 0
23357 : || !
23358 : #line 8357 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23359 : (ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)
23360 : && true))
23361 : return -1;
23362 : return 393; /* *subsi_1 */
23363 :
23364 : case E_V2QImode:
23365 : x6 = XEXP (x2, 1);
23366 : if (pattern572 (x6,
23367 : E_V2QImode) != 0
23368 : || !
23369 : #line 3272 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23370 : (!TARGET_PARTIAL_REG_STALL || optimize_size || TARGET_SSE2))
23371 : return -1;
23372 : return 2191; /* subv2qi3 */
23373 :
23374 : default:
23375 : return -1;
23376 : }
23377 :
23378 : case UNSPEC:
23379 : if (pattern215 (x1) != 0
23380 : || !
23381 : #line 797 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23382 : (TARGET_3DNOW && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
23383 : return -1;
23384 : return 2107; /* *mmx_subv2sf3 */
23385 :
23386 : default:
23387 : return -1;
23388 : }
23389 :
23390 : case STRICT_LOW_PART:
23391 : x4 = XVECEXP (x1, 0, 1);
23392 : if (pattern237 (x4,
23393 : E_CCmode,
23394 : 17) != 0)
23395 : return -1;
23396 : switch (pattern1335 (x2))
23397 : {
23398 : case 0:
23399 : if (!
23400 : #line 8441 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23401 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
23402 : return -1;
23403 : return 407; /* *subqi_1_slp */
23404 :
23405 : case 1:
23406 : if (!
23407 : #line 8441 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23408 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
23409 : return -1;
23410 : return 408; /* *subhi_1_slp */
23411 :
23412 : default:
23413 : return -1;
23414 : }
23415 :
23416 : default:
23417 : return -1;
23418 : }
23419 : }
23420 :
23421 : int
23422 : recog_407 (rtx x1 ATTRIBUTE_UNUSED,
23423 : rtx_insn *insn ATTRIBUTE_UNUSED,
23424 : int *pnum_clobbers ATTRIBUTE_UNUSED)
23425 : {
23426 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
23427 : rtx x2, x3, x4, x5, x6, x7;
23428 : int res ATTRIBUTE_UNUSED;
23429 : x2 = XVECEXP (x1, 0, 0);
23430 : x3 = XEXP (x2, 1);
23431 : x4 = XEXP (x3, 0);
23432 : x5 = XEXP (x4, 0);
23433 : switch (GET_CODE (x5))
23434 : {
23435 : case ASHIFTRT:
23436 : case LSHIFTRT:
23437 : case SIGN_EXTRACT:
23438 : case ZERO_EXTRACT:
23439 : operands[3] = x5;
23440 : x6 = XEXP (x5, 0);
23441 : operands[2] = x6;
23442 : switch (pattern1534 (x2))
23443 : {
23444 : case 0:
23445 : if (
23446 : #line 13578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23447 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
23448 : return 760; /* *iorqi_exthi_1_slp */
23449 : break;
23450 :
23451 : case 1:
23452 : if (
23453 : #line 13578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23454 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
23455 : return 763; /* *iorqi_extsi_1_slp */
23456 : break;
23457 :
23458 : case 2:
23459 : if ((
23460 : #line 13578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23461 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
23462 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23463 : (TARGET_64BIT)))
23464 : return 766; /* *iorqi_extdi_1_slp */
23465 : break;
23466 :
23467 : case 3:
23468 : return 784; /* *iorqi_exthi_0 */
23469 :
23470 : case 4:
23471 : return 787; /* *iorqi_extsi_0 */
23472 :
23473 : case 5:
23474 : if (
23475 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23476 : (TARGET_64BIT))
23477 : return 790; /* *iorqi_extdi_0 */
23478 : break;
23479 :
23480 : default:
23481 : break;
23482 : }
23483 : x7 = XEXP (x3, 1);
23484 : if (GET_CODE (x7) != SUBREG)
23485 : return -1;
23486 : switch (pattern1535 (x2))
23487 : {
23488 : case 0:
23489 : if (!
23490 : #line 13607 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23491 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
23492 : return -1;
23493 : return 769; /* *iorqi_exthi_2_slp */
23494 :
23495 : case 1:
23496 : if (!
23497 : #line 13607 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23498 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
23499 : return -1;
23500 : return 772; /* *iorqi_extsi_2_slp */
23501 :
23502 : case 2:
23503 : if (!(
23504 : #line 13607 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23505 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
23506 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23507 : (TARGET_64BIT)))
23508 : return -1;
23509 : return 775; /* *iorqi_extdi_2_slp */
23510 :
23511 : case 3:
23512 : return 793; /* *iorqi_ext2hi_0 */
23513 :
23514 : case 4:
23515 : return 796; /* *iorqi_ext2si_0 */
23516 :
23517 : case 5:
23518 : if (!
23519 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23520 : (TARGET_64BIT))
23521 : return -1;
23522 : return 799; /* *iorqi_ext2di_0 */
23523 :
23524 : default:
23525 : return -1;
23526 : }
23527 :
23528 : default:
23529 : return -1;
23530 : }
23531 : }
23532 :
23533 : int
23534 : recog_408 (rtx x1 ATTRIBUTE_UNUSED,
23535 : rtx_insn *insn ATTRIBUTE_UNUSED,
23536 : int *pnum_clobbers ATTRIBUTE_UNUSED)
23537 : {
23538 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
23539 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
23540 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
23541 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
23542 : rtx x26;
23543 : int res ATTRIBUTE_UNUSED;
23544 : x2 = XVECEXP (x1, 0, 0);
23545 : x3 = XEXP (x2, 1);
23546 : x4 = XEXP (x3, 0);
23547 : switch (GET_CODE (x4))
23548 : {
23549 : case ASHIFT:
23550 : x5 = XEXP (x2, 0);
23551 : operands[0] = x5;
23552 : x6 = XEXP (x4, 0);
23553 : switch (GET_CODE (x6))
23554 : {
23555 : case ZERO_EXTEND:
23556 : x7 = XEXP (x4, 1);
23557 : if (GET_CODE (x7) != CONST_INT)
23558 : return -1;
23559 : x8 = XEXP (x3, 1);
23560 : if (GET_CODE (x8) != ZERO_EXTEND)
23561 : return -1;
23562 : x9 = XEXP (x6, 0);
23563 : switch (GET_CODE (x9))
23564 : {
23565 : case TRUNCATE:
23566 : if (GET_MODE (x9) != E_QImode)
23567 : return -1;
23568 : x10 = XEXP (x9, 0);
23569 : if (GET_CODE (x10) != MOD
23570 : || GET_MODE (x10) != E_HImode
23571 : || XWINT (x7, 0) != 8L)
23572 : return -1;
23573 : x11 = XEXP (x8, 0);
23574 : if (GET_CODE (x11) != TRUNCATE
23575 : || GET_MODE (x11) != E_QImode)
23576 : return -1;
23577 : x12 = XEXP (x11, 0);
23578 : if (GET_CODE (x12) != DIV
23579 : || GET_MODE (x12) != E_HImode)
23580 : return -1;
23581 : x13 = XVECEXP (x1, 0, 1);
23582 : if (pattern237 (x13,
23583 : E_CCmode,
23584 : 17) != 0
23585 : || !register_operand (operands[0], E_HImode)
23586 : || GET_MODE (x3) != E_HImode
23587 : || GET_MODE (x4) != E_HImode
23588 : || GET_MODE (x6) != E_HImode)
23589 : return -1;
23590 : x14 = XEXP (x10, 0);
23591 : operands[1] = x14;
23592 : if (!register_operand (operands[1], E_HImode))
23593 : return -1;
23594 : x15 = XEXP (x10, 1);
23595 : if (GET_MODE (x15) != E_HImode
23596 : || GET_MODE (x8) != E_HImode)
23597 : return -1;
23598 : x16 = XEXP (x12, 1);
23599 : if (GET_MODE (x16) != E_HImode)
23600 : return -1;
23601 : x17 = XEXP (x12, 0);
23602 : if (!rtx_equal_p (x17, operands[1]))
23603 : return -1;
23604 : switch (GET_CODE (x15))
23605 : {
23606 : case SIGN_EXTEND:
23607 : if (GET_CODE (x16) != SIGN_EXTEND)
23608 : return -1;
23609 : x18 = XEXP (x15, 0);
23610 : operands[2] = x18;
23611 : if (!nonimmediate_operand (operands[2], E_QImode))
23612 : return -1;
23613 : x19 = XEXP (x16, 0);
23614 : if (!rtx_equal_p (x19, operands[2])
23615 : || !
23616 : #line 12793 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23617 : (TARGET_QIMODE_MATH
23618 : && true))
23619 : return -1;
23620 : return 707; /* divmodhiqi3 */
23621 :
23622 : case ZERO_EXTEND:
23623 : if (GET_CODE (x16) != ZERO_EXTEND)
23624 : return -1;
23625 : x18 = XEXP (x15, 0);
23626 : operands[2] = x18;
23627 : if (!nonimmediate_operand (operands[2], E_QImode))
23628 : return -1;
23629 : x19 = XEXP (x16, 0);
23630 : if (!rtx_equal_p (x19, operands[2])
23631 : || !
23632 : #line 12793 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23633 : (TARGET_QIMODE_MATH
23634 : && true))
23635 : return -1;
23636 : return 709; /* udivmodhiqi3 */
23637 :
23638 : default:
23639 : return -1;
23640 : }
23641 :
23642 : case REG:
23643 : case SUBREG:
23644 : operands[1] = x9;
23645 : x13 = XVECEXP (x1, 0, 1);
23646 : if (pattern386 (x13,
23647 : 175,
23648 : 0) != 0)
23649 : return -1;
23650 : x11 = XEXP (x8, 0);
23651 : operands[2] = x11;
23652 : switch (XWINT (x7, 0))
23653 : {
23654 : case 8L:
23655 : if (pattern1582 (x3,
23656 : E_QImode,
23657 : E_HImode) != 0
23658 : || !
23659 : #line 2577 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23660 : (TARGET_AVX512F))
23661 : return -1;
23662 : return 2719; /* kunpckhi */
23663 :
23664 : case 16L:
23665 : if (pattern1582 (x3,
23666 : E_HImode,
23667 : E_SImode) != 0
23668 : || !
23669 : #line 2591 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23670 : (TARGET_AVX512BW))
23671 : return -1;
23672 : return 2720; /* kunpcksi */
23673 :
23674 : case 32L:
23675 : if (pattern1582 (x3,
23676 : E_SImode,
23677 : E_DImode) != 0
23678 : || !
23679 : #line 2603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23680 : (TARGET_AVX512BW))
23681 : return -1;
23682 : return 2721; /* kunpckdi */
23683 :
23684 : default:
23685 : return -1;
23686 : }
23687 :
23688 : default:
23689 : return -1;
23690 : }
23691 :
23692 : case REG:
23693 : case SUBREG:
23694 : case MEM:
23695 : x13 = XVECEXP (x1, 0, 1);
23696 : if (pattern237 (x13,
23697 : E_CCmode,
23698 : 17) != 0)
23699 : return -1;
23700 : switch (pattern1061 (x3,
23701 : LSHIFTRT))
23702 : {
23703 : case 0:
23704 : x8 = XEXP (x3, 1);
23705 : x11 = XEXP (x8, 0);
23706 : x12 = XEXP (x11, 0);
23707 : x17 = XEXP (x12, 0);
23708 : operands[1] = x17;
23709 : if (nonimmediate_operand (operands[0], E_DImode))
23710 : {
23711 : x7 = XEXP (x4, 1);
23712 : x20 = XEXP (x7, 0);
23713 : operands[2] = x20;
23714 : if (rtx_equal_p (x6, operands[0]))
23715 : {
23716 : x21 = XEXP (x11, 1);
23717 : x22 = XEXP (x21, 1);
23718 : x23 = XEXP (x22, 0);
23719 : if (rtx_equal_p (x23, operands[2])
23720 : &&
23721 : #line 16369 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23722 : (TARGET_64BIT && true))
23723 : return 1095; /* x86_64_shld */
23724 : }
23725 : }
23726 : operands[2] = x17;
23727 : if (!register_operand (operands[0], E_DImode))
23728 : return -1;
23729 : operands[1] = x6;
23730 : if (!nonimmediate_operand (operands[1], E_DImode))
23731 : return -1;
23732 : x7 = XEXP (x4, 1);
23733 : x20 = XEXP (x7, 0);
23734 : operands[3] = x20;
23735 : x21 = XEXP (x11, 1);
23736 : x22 = XEXP (x21, 1);
23737 : x23 = XEXP (x22, 0);
23738 : if (!rtx_equal_p (x23, operands[3])
23739 : || !
23740 : #line 16390 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23741 : (TARGET_APX_NDD && true))
23742 : return -1;
23743 : return 1097; /* x86_64_shld_ndd */
23744 :
23745 : case 1:
23746 : if (!nonimmediate_operand (operands[0], E_SImode)
23747 : || pattern1060 (x3,
23748 : E_SImode,
23749 : E_DImode) != 0)
23750 : return -1;
23751 : x8 = XEXP (x3, 1);
23752 : x11 = XEXP (x8, 0);
23753 : x12 = XEXP (x11, 0);
23754 : x17 = XEXP (x12, 0);
23755 : operands[1] = x17;
23756 : x7 = XEXP (x4, 1);
23757 : x20 = XEXP (x7, 0);
23758 : operands[2] = x20;
23759 : if (rtx_equal_p (x6, operands[0]))
23760 : {
23761 : x21 = XEXP (x11, 1);
23762 : x22 = XEXP (x21, 1);
23763 : x23 = XEXP (x22, 0);
23764 : if (rtx_equal_p (x23, operands[2]))
23765 : return 1107; /* x86_shld */
23766 : }
23767 : operands[2] = x17;
23768 : operands[1] = x6;
23769 : if (!nonimmediate_operand (operands[1], E_SImode))
23770 : return -1;
23771 : operands[3] = x20;
23772 : x21 = XEXP (x11, 1);
23773 : x22 = XEXP (x21, 1);
23774 : x23 = XEXP (x22, 0);
23775 : if (!rtx_equal_p (x23, operands[3])
23776 : || !
23777 : #line 16629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23778 : (TARGET_APX_NDD && true))
23779 : return -1;
23780 : return 1109; /* x86_shld_ndd */
23781 :
23782 : case 2:
23783 : x8 = XEXP (x3, 1);
23784 : switch (GET_CODE (x8))
23785 : {
23786 : case SUBREG:
23787 : switch (pattern1253 (x3,
23788 : LSHIFTRT))
23789 : {
23790 : case 0:
23791 : x7 = XEXP (x4, 1);
23792 : operands[2] = x7;
23793 : if (pattern1705 (x3) == 0
23794 : &&
23795 : #line 16409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23796 : (TARGET_64BIT
23797 : && INTVAL (operands[3]) == 64 - INTVAL (operands[2])
23798 : && true))
23799 : return 1099; /* x86_64_shld_1 */
23800 : operands[3] = x7;
23801 : if (pattern1706 (x3) != 0
23802 : || !
23803 : #line 16431 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23804 : (TARGET_APX_NDD
23805 : && INTVAL (operands[4]) == 64 - INTVAL (operands[3])
23806 : && true))
23807 : return -1;
23808 : return 1101; /* x86_64_shld_ndd_1 */
23809 :
23810 : case 1:
23811 : x7 = XEXP (x4, 1);
23812 : operands[2] = x7;
23813 : if (pattern1707 (x3) == 0
23814 : &&
23815 : #line 16649 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23816 : (INTVAL (operands[3]) == 32 - INTVAL (operands[2])
23817 : && true))
23818 : return 1111; /* x86_shld_1 */
23819 : operands[3] = x7;
23820 : if (pattern1708 (x3) != 0
23821 : || !
23822 : #line 16671 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23823 : (TARGET_APX_NDD
23824 : && INTVAL (operands[4]) == 32 - INTVAL (operands[3])
23825 : && true))
23826 : return -1;
23827 : return 1113; /* x86_shld_ndd_1 */
23828 :
23829 : default:
23830 : return -1;
23831 : }
23832 :
23833 : case LSHIFTRT:
23834 : switch (pattern1255 (x3))
23835 : {
23836 : case 0:
23837 : if (!
23838 : #line 16507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23839 : (TARGET_64BIT
23840 : && INTVAL (operands[3]) == 64 - INTVAL (operands[2])
23841 : && ix86_pre_reload_split ()))
23842 : return -1;
23843 : return 1103; /* *x86_64_shld_shrd_1_nozext */
23844 :
23845 : case 1:
23846 : if (!
23847 : #line 16747 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23848 : (INTVAL (operands[3]) == 32 - INTVAL (operands[2])
23849 : && ix86_pre_reload_split ()))
23850 : return -1;
23851 : return 1115; /* *x86_shld_shrd_1_nozext */
23852 :
23853 : case 2:
23854 : x11 = XEXP (x8, 0);
23855 : operands[1] = x11;
23856 : if (nonimmediate_operand (operands[0], E_DImode))
23857 : {
23858 : x7 = XEXP (x4, 1);
23859 : operands[2] = x7;
23860 : if (rtx_equal_p (x6, operands[0]))
23861 : {
23862 : x24 = XEXP (x8, 1);
23863 : x25 = XEXP (x24, 1);
23864 : if (rtx_equal_p (x25, operands[2])
23865 : &&
23866 : #line 16560 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23867 : (TARGET_64BIT && ix86_pre_reload_split ()))
23868 : return 1104; /* *x86_64_shld_2 */
23869 : }
23870 : }
23871 : operands[2] = x11;
23872 : if (!register_operand (operands[0], E_DImode))
23873 : return -1;
23874 : operands[1] = x6;
23875 : if (!nonimmediate_operand (operands[1], E_DImode))
23876 : return -1;
23877 : x7 = XEXP (x4, 1);
23878 : operands[3] = x7;
23879 : x24 = XEXP (x8, 1);
23880 : x25 = XEXP (x24, 1);
23881 : if (!rtx_equal_p (x25, operands[3])
23882 : || !
23883 : #line 16581 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23884 : (TARGET_APX_NDD
23885 : && ix86_pre_reload_split ()))
23886 : return -1;
23887 : return 1105; /* *x86_64_shld_ndd_2 */
23888 :
23889 : case 3:
23890 : x11 = XEXP (x8, 0);
23891 : operands[1] = x11;
23892 : if (nonimmediate_operand (operands[0], E_SImode))
23893 : {
23894 : x7 = XEXP (x4, 1);
23895 : operands[2] = x7;
23896 : if (rtx_equal_p (x6, operands[0]))
23897 : {
23898 : x24 = XEXP (x8, 1);
23899 : x25 = XEXP (x24, 1);
23900 : if (rtx_equal_p (x25, operands[2])
23901 : &&
23902 : #line 16799 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23903 : (TARGET_64BIT && ix86_pre_reload_split ()))
23904 : return 1116; /* *x86_shld_2 */
23905 : }
23906 : }
23907 : operands[2] = x11;
23908 : if (!register_operand (operands[0], E_SImode))
23909 : return -1;
23910 : operands[1] = x6;
23911 : if (!nonimmediate_operand (operands[1], E_SImode))
23912 : return -1;
23913 : x7 = XEXP (x4, 1);
23914 : operands[3] = x7;
23915 : x24 = XEXP (x8, 1);
23916 : x25 = XEXP (x24, 1);
23917 : if (!rtx_equal_p (x25, operands[3])
23918 : || !
23919 : #line 16820 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23920 : (TARGET_APX_NDD
23921 : && ix86_pre_reload_split ()))
23922 : return -1;
23923 : return 1117; /* *x86_shld_ndd_2 */
23924 :
23925 : default:
23926 : return -1;
23927 : }
23928 :
23929 : default:
23930 : return -1;
23931 : }
23932 :
23933 : default:
23934 : return -1;
23935 : }
23936 :
23937 : case CONST_INT:
23938 : if (XWINT (x6, 0) != 1L)
23939 : return -1;
23940 : x13 = XVECEXP (x1, 0, 1);
23941 : if (pattern237 (x13,
23942 : E_CCmode,
23943 : 17) != 0)
23944 : return -1;
23945 : switch (pattern375 (x3))
23946 : {
23947 : case 0:
23948 : x7 = XEXP (x4, 1);
23949 : operands[2] = x7;
23950 : if (register_operand (operands[2], E_QImode))
23951 : {
23952 : switch (pattern951 (x3))
23953 : {
23954 : case 0:
23955 : if (
23956 : #line 19763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23957 : (TARGET_USE_BT))
23958 : return 1423; /* *btssi */
23959 : break;
23960 :
23961 : case 1:
23962 : if ((
23963 : #line 19763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23964 : (TARGET_USE_BT) &&
23965 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23966 : (TARGET_64BIT)))
23967 : return 1425; /* *btsdi */
23968 : break;
23969 :
23970 : default:
23971 : break;
23972 : }
23973 : }
23974 : if (GET_CODE (x7) != SUBREG)
23975 : return -1;
23976 : switch (pattern1339 (x3))
23977 : {
23978 : case 0:
23979 : if (!
23980 : #line 19783 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23981 : (TARGET_USE_BT
23982 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (SImode)-1))
23983 : == GET_MODE_BITSIZE (SImode)-1
23984 : && ix86_pre_reload_split ()))
23985 : return -1;
23986 : return 1427; /* *btssi_mask */
23987 :
23988 : case 1:
23989 : if (!(
23990 : #line 19783 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23991 : (TARGET_USE_BT
23992 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (DImode)-1))
23993 : == GET_MODE_BITSIZE (DImode)-1
23994 : && ix86_pre_reload_split ()) &&
23995 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23996 : (TARGET_64BIT)))
23997 : return -1;
23998 : return 1429; /* *btsdi_mask */
23999 :
24000 : default:
24001 : return -1;
24002 : }
24003 :
24004 : case 1:
24005 : if (!
24006 : #line 19811 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24007 : (TARGET_USE_BT
24008 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (SImode)-1))
24009 : == GET_MODE_BITSIZE (SImode)-1
24010 : && ix86_pre_reload_split ()))
24011 : return -1;
24012 : return 1431; /* *btssi_mask_1 */
24013 :
24014 : case 2:
24015 : if (!(
24016 : #line 19811 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24017 : (TARGET_USE_BT
24018 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (DImode)-1))
24019 : == GET_MODE_BITSIZE (DImode)-1
24020 : && ix86_pre_reload_split ()) &&
24021 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24022 : (TARGET_64BIT)))
24023 : return -1;
24024 : return 1433; /* *btsdi_mask_1 */
24025 :
24026 : default:
24027 : return -1;
24028 : }
24029 :
24030 : default:
24031 : return -1;
24032 : }
24033 :
24034 : case REG:
24035 : case SUBREG:
24036 : case MEM:
24037 : operands[1] = x4;
24038 : switch (pattern574 (x1))
24039 : {
24040 : case 0:
24041 : if (
24042 : #line 13553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24043 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
24044 : return 754; /* *iorqi_1_slp */
24045 : break;
24046 :
24047 : case 1:
24048 : if (
24049 : #line 13553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24050 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
24051 : return 757; /* *iorhi_1_slp */
24052 : break;
24053 :
24054 : case 2:
24055 : if (x86_64_hilo_general_operand (operands[2], E_DImode)
24056 : && (
24057 : #line 14336 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24058 : (ix86_binary_operator_ok (IOR, DImode, operands, TARGET_APX_NDD)) &&
24059 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24060 : (!TARGET_64BIT)))
24061 : return 847; /* *iordi3_doubleword */
24062 : if (x86_64_general_operand (operands[2], E_DImode)
24063 : && (
24064 : #line 14398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24065 : (ix86_binary_operator_ok (IOR, DImode, operands, TARGET_APX_NDD)
24066 : && true) &&
24067 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24068 : (TARGET_64BIT)))
24069 : return 860; /* *iordi_1 */
24070 : if (const_int_operand (operands[2], E_DImode)
24071 : &&
24072 : #line 14455 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24073 : (TARGET_64BIT && TARGET_USE_BT
24074 : && ix86_binary_operator_ok (IOR, DImode, operands)
24075 : && IN_RANGE (exact_log2 (INTVAL (operands[2])), 31, 63)))
24076 : return 866; /* *iordi_1_bts */
24077 : break;
24078 :
24079 : case 3:
24080 : if ((
24081 : #line 14336 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24082 : (ix86_binary_operator_ok (IOR, TImode, operands, TARGET_APX_NDD)) &&
24083 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24084 : (TARGET_64BIT)))
24085 : return 849; /* *iorti3_doubleword */
24086 : break;
24087 :
24088 : case 4:
24089 : if (
24090 : #line 14398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24091 : (ix86_binary_operator_ok (IOR, HImode, operands, TARGET_APX_NDD)
24092 : && true))
24093 : return 852; /* *iorhi_1 */
24094 : break;
24095 :
24096 : case 5:
24097 : if (
24098 : #line 14398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24099 : (ix86_binary_operator_ok (IOR, SImode, operands, TARGET_APX_NDD)
24100 : && true))
24101 : return 856; /* *iorsi_1 */
24102 : break;
24103 :
24104 : case 6:
24105 : if (
24106 : #line 4747 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24107 : (ix86_binary_operator_ok (IOR, V4QImode, operands)))
24108 : return 2338; /* *iorv4qi3 */
24109 : break;
24110 :
24111 : case 7:
24112 : if (
24113 : #line 4747 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24114 : (ix86_binary_operator_ok (IOR, V2QImode, operands)))
24115 : return 2341; /* *iorv2qi3 */
24116 : break;
24117 :
24118 : case 8:
24119 : if (
24120 : #line 4747 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24121 : (ix86_binary_operator_ok (IOR, V2HImode, operands)))
24122 : return 2344; /* *iorv2hi3 */
24123 : break;
24124 :
24125 : case 9:
24126 : if (
24127 : #line 2128 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24128 : (TARGET_AVX512F))
24129 : return 2642; /* kiorqi */
24130 : break;
24131 :
24132 : case 10:
24133 : if (
24134 : #line 2128 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24135 : (TARGET_AVX512F))
24136 : return 2645; /* kiorhi */
24137 : break;
24138 :
24139 : case 11:
24140 : if ((
24141 : #line 2128 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24142 : (TARGET_AVX512F) &&
24143 : #line 2109 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24144 : (TARGET_AVX512BW)))
24145 : return 2648; /* kiorsi */
24146 : break;
24147 :
24148 : case 12:
24149 : if ((
24150 : #line 2128 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24151 : (TARGET_AVX512F) &&
24152 : #line 2109 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24153 : (TARGET_AVX512BW)))
24154 : return 2651; /* kiordi */
24155 : break;
24156 :
24157 : default:
24158 : break;
24159 : }
24160 : x13 = XVECEXP (x1, 0, 1);
24161 : if (GET_CODE (x13) != CLOBBER
24162 : || pattern575 (x1) != 0)
24163 : return -1;
24164 : if (GET_CODE (x4) == SUBREG
24165 : && known_eq (SUBREG_BYTE (x4), 0)
24166 : && GET_MODE (x4) == E_QImode)
24167 : {
24168 : res = recog_407 (x1, insn, pnum_clobbers);
24169 : if (res >= 0)
24170 : return res;
24171 : }
24172 : x5 = XEXP (x2, 0);
24173 : operands[0] = x5;
24174 : if (!nonimmediate_operand (operands[0], E_QImode))
24175 : return -1;
24176 : operands[1] = x4;
24177 : if (!nonimmediate_operand (operands[1], E_QImode))
24178 : return -1;
24179 : x8 = XEXP (x3, 1);
24180 : operands[2] = x8;
24181 : if (!general_operand (operands[2], E_QImode)
24182 : || !
24183 : #line 14619 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24184 : (ix86_binary_operator_ok (IOR, QImode, operands, TARGET_APX_NDD)
24185 : && true))
24186 : return -1;
24187 : return 896; /* *iorqi_1 */
24188 :
24189 : case ZERO_EXTEND:
24190 : if (GET_MODE (x4) != E_DImode
24191 : || pattern576 (x1) != 0)
24192 : return -1;
24193 : x6 = XEXP (x4, 0);
24194 : operands[1] = x6;
24195 : if (!nonimmediate_operand (operands[1], E_SImode))
24196 : return -1;
24197 : x8 = XEXP (x3, 1);
24198 : operands[2] = x8;
24199 : if (!x86_64_zext_immediate_operand (operands[2], E_DImode)
24200 : || !
24201 : #line 14601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24202 : (TARGET_64BIT
24203 : && ix86_binary_operator_ok (IOR, SImode, operands, TARGET_APX_NDD)))
24204 : return -1;
24205 : return 893; /* *iorsi_1_zext_imm */
24206 :
24207 : case LSHIFTRT:
24208 : if (pattern346 (x1) != 0)
24209 : return -1;
24210 : switch (pattern1061 (x3,
24211 : ASHIFT))
24212 : {
24213 : case 0:
24214 : x8 = XEXP (x3, 1);
24215 : x11 = XEXP (x8, 0);
24216 : x12 = XEXP (x11, 0);
24217 : x17 = XEXP (x12, 0);
24218 : operands[1] = x17;
24219 : if (nonimmediate_operand (operands[0], E_DImode))
24220 : {
24221 : x7 = XEXP (x4, 1);
24222 : x20 = XEXP (x7, 0);
24223 : operands[2] = x20;
24224 : x6 = XEXP (x4, 0);
24225 : if (rtx_equal_p (x6, operands[0]))
24226 : {
24227 : x21 = XEXP (x11, 1);
24228 : x22 = XEXP (x21, 1);
24229 : x23 = XEXP (x22, 0);
24230 : if (rtx_equal_p (x23, operands[2])
24231 : &&
24232 : #line 17727 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24233 : (TARGET_64BIT && true))
24234 : return 1175; /* x86_64_shrd */
24235 : }
24236 : }
24237 : operands[2] = x17;
24238 : if (!register_operand (operands[0], E_DImode))
24239 : return -1;
24240 : x6 = XEXP (x4, 0);
24241 : operands[1] = x6;
24242 : if (!nonimmediate_operand (operands[1], E_DImode))
24243 : return -1;
24244 : x7 = XEXP (x4, 1);
24245 : x20 = XEXP (x7, 0);
24246 : operands[3] = x20;
24247 : x21 = XEXP (x11, 1);
24248 : x22 = XEXP (x21, 1);
24249 : x23 = XEXP (x22, 0);
24250 : if (!rtx_equal_p (x23, operands[3])
24251 : || !
24252 : #line 17748 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24253 : (TARGET_APX_NDD && true))
24254 : return -1;
24255 : return 1177; /* x86_64_shrd_ndd */
24256 :
24257 : case 1:
24258 : if (pattern1060 (x3,
24259 : E_SImode,
24260 : E_DImode) != 0)
24261 : return -1;
24262 : x8 = XEXP (x3, 1);
24263 : x11 = XEXP (x8, 0);
24264 : x12 = XEXP (x11, 0);
24265 : x17 = XEXP (x12, 0);
24266 : operands[1] = x17;
24267 : if (nonimmediate_operand (operands[0], E_SImode))
24268 : {
24269 : x7 = XEXP (x4, 1);
24270 : x20 = XEXP (x7, 0);
24271 : operands[2] = x20;
24272 : x6 = XEXP (x4, 0);
24273 : if (rtx_equal_p (x6, operands[0]))
24274 : {
24275 : x21 = XEXP (x11, 1);
24276 : x22 = XEXP (x21, 1);
24277 : x23 = XEXP (x22, 0);
24278 : if (rtx_equal_p (x23, operands[2]))
24279 : return 1187; /* x86_shrd */
24280 : }
24281 : }
24282 : operands[2] = x17;
24283 : if (!register_operand (operands[0], E_SImode))
24284 : return -1;
24285 : x6 = XEXP (x4, 0);
24286 : operands[1] = x6;
24287 : if (!nonimmediate_operand (operands[1], E_SImode))
24288 : return -1;
24289 : x7 = XEXP (x4, 1);
24290 : x20 = XEXP (x7, 0);
24291 : operands[3] = x20;
24292 : x21 = XEXP (x11, 1);
24293 : x22 = XEXP (x21, 1);
24294 : x23 = XEXP (x22, 0);
24295 : if (!rtx_equal_p (x23, operands[3])
24296 : || !
24297 : #line 17987 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24298 : (TARGET_APX_NDD && true))
24299 : return -1;
24300 : return 1189; /* x86_shrd_ndd */
24301 :
24302 : case 2:
24303 : x8 = XEXP (x3, 1);
24304 : switch (GET_CODE (x8))
24305 : {
24306 : case SUBREG:
24307 : switch (pattern1253 (x3,
24308 : ASHIFT))
24309 : {
24310 : case 0:
24311 : x7 = XEXP (x4, 1);
24312 : operands[2] = x7;
24313 : if (pattern1705 (x3) == 0
24314 : &&
24315 : #line 17767 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24316 : (TARGET_64BIT
24317 : && INTVAL (operands[3]) == 64 - INTVAL (operands[2])
24318 : && true))
24319 : return 1179; /* x86_64_shrd_1 */
24320 : operands[3] = x7;
24321 : if (pattern1706 (x3) != 0
24322 : || !
24323 : #line 17789 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24324 : (TARGET_APX_NDD
24325 : && INTVAL (operands[4]) == 64 - INTVAL (operands[3])
24326 : && true))
24327 : return -1;
24328 : return 1181; /* x86_64_shrd_ndd_1 */
24329 :
24330 : case 1:
24331 : x7 = XEXP (x4, 1);
24332 : operands[2] = x7;
24333 : if (pattern1707 (x3) == 0
24334 : &&
24335 : #line 18006 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24336 : (INTVAL (operands[3]) == 32 - INTVAL (operands[2])
24337 : && true))
24338 : return 1191; /* x86_shrd_1 */
24339 : operands[3] = x7;
24340 : if (pattern1708 (x3) != 0
24341 : || !
24342 : #line 18028 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24343 : (TARGET_APX_NDD
24344 : && (INTVAL (operands[4]) == 32 - INTVAL (operands[3]))
24345 : && true))
24346 : return -1;
24347 : return 1193; /* x86_shrd_ndd_1 */
24348 :
24349 : default:
24350 : return -1;
24351 : }
24352 :
24353 : case ASHIFT:
24354 : switch (pattern1255 (x3))
24355 : {
24356 : case 0:
24357 : if (!
24358 : #line 17865 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24359 : (TARGET_64BIT
24360 : && INTVAL (operands[3]) == 64 - INTVAL (operands[2])
24361 : && ix86_pre_reload_split ()))
24362 : return -1;
24363 : return 1183; /* *x86_64_shrd_shld_1_nozext */
24364 :
24365 : case 1:
24366 : if (!
24367 : #line 18104 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24368 : (INTVAL (operands[3]) == 32 - INTVAL (operands[2])
24369 : && ix86_pre_reload_split ()))
24370 : return -1;
24371 : return 1195; /* *x86_shrd_shld_1_nozext */
24372 :
24373 : case 2:
24374 : x11 = XEXP (x8, 0);
24375 : operands[1] = x11;
24376 : if (nonimmediate_operand (operands[0], E_DImode))
24377 : {
24378 : x7 = XEXP (x4, 1);
24379 : operands[2] = x7;
24380 : x6 = XEXP (x4, 0);
24381 : if (rtx_equal_p (x6, operands[0]))
24382 : {
24383 : x24 = XEXP (x8, 1);
24384 : x25 = XEXP (x24, 1);
24385 : if (rtx_equal_p (x25, operands[2])
24386 : &&
24387 : #line 17918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24388 : (TARGET_64BIT && ix86_pre_reload_split ()))
24389 : return 1184; /* *x86_64_shrd_2 */
24390 : }
24391 : }
24392 : operands[2] = x11;
24393 : if (!register_operand (operands[0], E_DImode))
24394 : return -1;
24395 : x6 = XEXP (x4, 0);
24396 : operands[1] = x6;
24397 : if (!nonimmediate_operand (operands[1], E_DImode))
24398 : return -1;
24399 : x7 = XEXP (x4, 1);
24400 : operands[3] = x7;
24401 : x24 = XEXP (x8, 1);
24402 : x25 = XEXP (x24, 1);
24403 : if (!rtx_equal_p (x25, operands[2])
24404 : || !
24405 : #line 17939 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24406 : (TARGET_APX_NDD
24407 : && ix86_pre_reload_split ()))
24408 : return -1;
24409 : return 1185; /* *x86_64_shrd_ndd_2 */
24410 :
24411 : case 3:
24412 : x11 = XEXP (x8, 0);
24413 : operands[1] = x11;
24414 : if (nonimmediate_operand (operands[0], E_SImode))
24415 : {
24416 : x7 = XEXP (x4, 1);
24417 : operands[2] = x7;
24418 : x6 = XEXP (x4, 0);
24419 : if (rtx_equal_p (x6, operands[0]))
24420 : {
24421 : x24 = XEXP (x8, 1);
24422 : x25 = XEXP (x24, 1);
24423 : if (rtx_equal_p (x25, operands[2])
24424 : &&
24425 : #line 18156 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24426 : (TARGET_64BIT && ix86_pre_reload_split ()))
24427 : return 1196; /* *x86_shrd_2 */
24428 : }
24429 : }
24430 : operands[2] = x11;
24431 : if (!register_operand (operands[0], E_SImode))
24432 : return -1;
24433 : x6 = XEXP (x4, 0);
24434 : operands[1] = x6;
24435 : if (!nonimmediate_operand (operands[1], E_SImode))
24436 : return -1;
24437 : x7 = XEXP (x4, 1);
24438 : operands[3] = x7;
24439 : x24 = XEXP (x8, 1);
24440 : x25 = XEXP (x24, 1);
24441 : if (!rtx_equal_p (x25, operands[3])
24442 : || !
24443 : #line 18177 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24444 : (TARGET_APX_NDD
24445 : && ix86_pre_reload_split ()))
24446 : return -1;
24447 : return 1197; /* *x86_shrd_ndd_2 */
24448 :
24449 : default:
24450 : return -1;
24451 : }
24452 :
24453 : default:
24454 : return -1;
24455 : }
24456 :
24457 : default:
24458 : return -1;
24459 : }
24460 :
24461 : case NOT:
24462 : x6 = XEXP (x4, 0);
24463 : if (GET_CODE (x6) != PLUS)
24464 : return -1;
24465 : x26 = XEXP (x6, 1);
24466 : if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
24467 : || pattern346 (x1) != 0)
24468 : return -1;
24469 : x9 = XEXP (x6, 0);
24470 : operands[1] = x9;
24471 : x8 = XEXP (x3, 1);
24472 : if (!rtx_equal_p (x8, operands[1]))
24473 : return -1;
24474 : switch (pattern1256 (x3))
24475 : {
24476 : case 0:
24477 : if (!
24478 : #line 23208 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24479 : (TARGET_TBM))
24480 : return -1;
24481 : return 1640; /* *tbm_blci_si */
24482 :
24483 : case 1:
24484 : if (!(
24485 : #line 23208 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24486 : (TARGET_TBM) &&
24487 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24488 : (TARGET_64BIT)))
24489 : return -1;
24490 : return 1641; /* *tbm_blci_di */
24491 :
24492 : default:
24493 : return -1;
24494 : }
24495 :
24496 : case PLUS:
24497 : x7 = XEXP (x4, 1);
24498 : if (GET_CODE (x7) != CONST_INT
24499 : || pattern351 (x1) != 0)
24500 : return -1;
24501 : switch (XWINT (x7, 0))
24502 : {
24503 : case 1L:
24504 : switch (pattern1338 (x3))
24505 : {
24506 : case 0:
24507 : if (!
24508 : #line 23248 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24509 : (TARGET_TBM))
24510 : return -1;
24511 : return 1646; /* *tbm_blcs_si */
24512 :
24513 : case 1:
24514 : if (!(
24515 : #line 23248 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24516 : (TARGET_TBM) &&
24517 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24518 : (TARGET_64BIT)))
24519 : return -1;
24520 : return 1647; /* *tbm_blcs_di */
24521 :
24522 : case 2:
24523 : if (!
24524 : #line 23289 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24525 : (TARGET_TBM))
24526 : return -1;
24527 : return 1652; /* *tbm_t1mskc_si */
24528 :
24529 : case 3:
24530 : if (!(
24531 : #line 23289 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24532 : (TARGET_TBM) &&
24533 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24534 : (TARGET_64BIT)))
24535 : return -1;
24536 : return 1653; /* *tbm_t1mskc_di */
24537 :
24538 : default:
24539 : return -1;
24540 : }
24541 :
24542 : case -1L:
24543 : switch (pattern1338 (x3))
24544 : {
24545 : case 0:
24546 : if (!
24547 : #line 23261 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24548 : (TARGET_TBM))
24549 : return -1;
24550 : return 1648; /* *tbm_blsfill_si */
24551 :
24552 : case 1:
24553 : if (!(
24554 : #line 23261 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24555 : (TARGET_TBM) &&
24556 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24557 : (TARGET_64BIT)))
24558 : return -1;
24559 : return 1649; /* *tbm_blsfill_di */
24560 :
24561 : case 2:
24562 : if (!
24563 : #line 23275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24564 : (TARGET_TBM))
24565 : return -1;
24566 : return 1650; /* *tbm_blsic_si */
24567 :
24568 : case 3:
24569 : if (!(
24570 : #line 23275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24571 : (TARGET_TBM) &&
24572 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24573 : (TARGET_64BIT)))
24574 : return -1;
24575 : return 1651; /* *tbm_blsic_di */
24576 :
24577 : default:
24578 : return -1;
24579 : }
24580 :
24581 : default:
24582 : return -1;
24583 : }
24584 :
24585 : default:
24586 : return -1;
24587 : }
24588 : }
24589 :
24590 : int
24591 : recog_443 (rtx x1 ATTRIBUTE_UNUSED,
24592 : rtx_insn *insn ATTRIBUTE_UNUSED,
24593 : int *pnum_clobbers ATTRIBUTE_UNUSED)
24594 : {
24595 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
24596 : rtx x2, x3, x4, x5, x6;
24597 : int res ATTRIBUTE_UNUSED;
24598 : x2 = XVECEXP (x1, 0, 0);
24599 : if (GET_CODE (x2) != RETURN)
24600 : return -1;
24601 : x3 = XVECEXP (x1, 0, 1);
24602 : if (GET_CODE (x3) != USE)
24603 : return -1;
24604 : x4 = XVECEXP (x1, 0, 2);
24605 : if (GET_CODE (x4) != SET)
24606 : return -1;
24607 : x5 = XEXP (x4, 1);
24608 : if (GET_CODE (x5) != REG
24609 : || REGNO (x5) != 38
24610 : || pattern731 (x4,
24611 : E_DImode,
24612 : 7) != 0)
24613 : return -1;
24614 : x6 = XEXP (x3, 0);
24615 : operands[1] = x6;
24616 : switch (GET_MODE (operands[1]))
24617 : {
24618 : case E_SImode:
24619 : if (!symbol_operand (operands[1], E_SImode)
24620 : || !(
24621 : #line 31370 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24622 : (TARGET_SSE && TARGET_64BIT) &&
24623 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24624 : (Pmode == SImode)))
24625 : return -1;
24626 : return 10253; /* *restore_multiple_and_returnsi */
24627 :
24628 : case E_DImode:
24629 : if (!symbol_operand (operands[1], E_DImode)
24630 : || !(
24631 : #line 31370 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24632 : (TARGET_SSE && TARGET_64BIT) &&
24633 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24634 : (Pmode == DImode)))
24635 : return -1;
24636 : return 10254; /* *restore_multiple_and_returndi */
24637 :
24638 : default:
24639 : return -1;
24640 : }
24641 : }
24642 :
24643 : int
24644 : recog_445 (rtx x1 ATTRIBUTE_UNUSED,
24645 : rtx_insn *insn ATTRIBUTE_UNUSED,
24646 : int *pnum_clobbers ATTRIBUTE_UNUSED)
24647 : {
24648 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
24649 : rtx x2, x3, x4, x5;
24650 : int res ATTRIBUTE_UNUSED;
24651 : switch (XVECLEN (x1, 0))
24652 : {
24653 : case 1:
24654 : switch (XINT (x1, 1))
24655 : {
24656 : case 1:
24657 : x2 = XVECEXP (x1, 0, 0);
24658 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
24659 : return -1;
24660 : return 1516; /* blockage */
24661 :
24662 : case 5:
24663 : x2 = XVECEXP (x1, 0, 0);
24664 : operands[0] = x2;
24665 : return 1518; /* prologue_use */
24666 :
24667 : case 8:
24668 : x2 = XVECEXP (x1, 0, 0);
24669 : operands[0] = x2;
24670 : if (!const_int_operand (operands[0], E_VOIDmode)
24671 : || !
24672 : #line 21707 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24673 : (reload_completed))
24674 : return -1;
24675 : return 1526; /* nops */
24676 :
24677 : case 6:
24678 : x2 = XVECEXP (x1, 0, 0);
24679 : operands[0] = x2;
24680 : if (!const_int_operand (operands[0], E_SImode))
24681 : return -1;
24682 : return 1536; /* split_stack_return */
24683 :
24684 : case 7:
24685 : x2 = XVECEXP (x1, 0, 0);
24686 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
24687 : return -1;
24688 : return 1792; /* cld */
24689 :
24690 : case 0:
24691 : x2 = XVECEXP (x1, 0, 0);
24692 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
24693 : return -1;
24694 : return 1937; /* ud2 */
24695 :
24696 : case 21:
24697 : x2 = XVECEXP (x1, 0, 0);
24698 : operands[0] = x2;
24699 : if (!memory_operand (operands[0], E_BLKmode)
24700 : || !
24701 : #line 30570 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24702 : (TARGET_FXSR))
24703 : return -1;
24704 : return 1954; /* fxrstor */
24705 :
24706 : case 23:
24707 : x2 = XVECEXP (x1, 0, 0);
24708 : operands[0] = x2;
24709 : if (!memory_operand (operands[0], E_BLKmode)
24710 : || !
24711 : #line 30580 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24712 : (TARGET_64BIT && TARGET_FXSR))
24713 : return -1;
24714 : return 1955; /* fxrstor64 */
24715 :
24716 : case 41:
24717 : if (pnum_clobbers == NULL)
24718 : return -1;
24719 : x2 = XVECEXP (x1, 0, 0);
24720 : operands[0] = x2;
24721 : if (!memory_operand (operands[0], E_BLKmode)
24722 : || !
24723 : #line 30778 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24724 : (TARGET_80387))
24725 : return -1;
24726 : *pnum_clobbers = 8;
24727 : return 1979; /* fldenv */
24728 :
24729 : case 43:
24730 : x2 = XVECEXP (x1, 0, 0);
24731 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
24732 : || !
24733 : #line 30797 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24734 : (TARGET_80387))
24735 : return -1;
24736 : return 1981; /* fnclex */
24737 :
24738 : case 12:
24739 : x2 = XVECEXP (x1, 0, 0);
24740 : operands[0] = x2;
24741 : switch (GET_MODE (operands[0]))
24742 : {
24743 : case E_SImode:
24744 : if (!register_operand (operands[0], E_SImode)
24745 : || !(
24746 : #line 30812 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24747 : (TARGET_LWP) &&
24748 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24749 : (Pmode == SImode)))
24750 : return -1;
24751 : return 1982; /* lwp_llwpcbsi */
24752 :
24753 : case E_DImode:
24754 : if (!register_operand (operands[0], E_DImode)
24755 : || !(
24756 : #line 30812 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24757 : (TARGET_LWP) &&
24758 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24759 : (Pmode == DImode)))
24760 : return -1;
24761 : return 1983; /* lwp_llwpcbdi */
24762 :
24763 : default:
24764 : return -1;
24765 : }
24766 :
24767 : case 18:
24768 : x2 = XVECEXP (x1, 0, 0);
24769 : operands[0] = x2;
24770 : switch (GET_MODE (operands[0]))
24771 : {
24772 : case E_SImode:
24773 : if (!register_operand (operands[0], E_SImode)
24774 : || !
24775 : #line 30878 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24776 : (TARGET_64BIT && TARGET_FSGSBASE))
24777 : return -1;
24778 : return 1994; /* wrfsbasesi */
24779 :
24780 : case E_DImode:
24781 : if (!register_operand (operands[0], E_DImode)
24782 : || !(
24783 : #line 30878 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24784 : (TARGET_64BIT && TARGET_FSGSBASE) &&
24785 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24786 : (TARGET_64BIT)))
24787 : return -1;
24788 : return 1996; /* wrfsbasedi */
24789 :
24790 : default:
24791 : return -1;
24792 : }
24793 :
24794 : case 19:
24795 : x2 = XVECEXP (x1, 0, 0);
24796 : operands[0] = x2;
24797 : switch (GET_MODE (operands[0]))
24798 : {
24799 : case E_SImode:
24800 : if (!register_operand (operands[0], E_SImode)
24801 : || !
24802 : #line 30878 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24803 : (TARGET_64BIT && TARGET_FSGSBASE))
24804 : return -1;
24805 : return 1995; /* wrgsbasesi */
24806 :
24807 : case E_DImode:
24808 : if (!register_operand (operands[0], E_DImode)
24809 : || !(
24810 : #line 30878 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24811 : (TARGET_64BIT && TARGET_FSGSBASE) &&
24812 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24813 : (TARGET_64BIT)))
24814 : return -1;
24815 : return 1997; /* wrgsbasedi */
24816 :
24817 : default:
24818 : return -1;
24819 : }
24820 :
24821 : case 78:
24822 : x2 = XVECEXP (x1, 0, 0);
24823 : operands[0] = x2;
24824 : switch (GET_MODE (operands[0]))
24825 : {
24826 : case E_SImode:
24827 : if (!nonimmediate_operand (operands[0], E_SImode)
24828 : || !
24829 : #line 30887 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24830 : (TARGET_PTWRITE))
24831 : return -1;
24832 : return 1998; /* ptwritesi */
24833 :
24834 : case E_DImode:
24835 : if (!nonimmediate_operand (operands[0], E_DImode)
24836 : || !(
24837 : #line 30887 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24838 : (TARGET_PTWRITE) &&
24839 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24840 : (TARGET_64BIT)))
24841 : return -1;
24842 : return 1999; /* ptwritedi */
24843 :
24844 : default:
24845 : return -1;
24846 : }
24847 :
24848 : case 60:
24849 : x2 = XVECEXP (x1, 0, 0);
24850 : operands[0] = x2;
24851 : switch (GET_MODE (operands[0]))
24852 : {
24853 : case E_SImode:
24854 : if (!register_operand (operands[0], E_SImode)
24855 : || !
24856 : #line 30945 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24857 : (TARGET_SHSTK || (flag_cf_protection & CF_RETURN)))
24858 : return -1;
24859 : return 2009; /* incsspsi */
24860 :
24861 : case E_DImode:
24862 : if (!register_operand (operands[0], E_DImode)
24863 : || !(
24864 : #line 30945 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24865 : (TARGET_SHSTK || (flag_cf_protection & CF_RETURN)) &&
24866 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24867 : (TARGET_64BIT)))
24868 : return -1;
24869 : return 2010; /* incsspdi */
24870 :
24871 : default:
24872 : return -1;
24873 : }
24874 :
24875 : case 61:
24876 : x2 = XVECEXP (x1, 0, 0);
24877 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
24878 : || !
24879 : #line 30952 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24880 : (TARGET_SHSTK))
24881 : return -1;
24882 : return 2011; /* saveprevssp */
24883 :
24884 : case 62:
24885 : x2 = XVECEXP (x1, 0, 0);
24886 : operands[0] = x2;
24887 : if (!memory_operand (operands[0], E_DImode)
24888 : || !
24889 : #line 30960 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24890 : (TARGET_SHSTK))
24891 : return -1;
24892 : return 2012; /* rstorssp */
24893 :
24894 : case 65:
24895 : x2 = XVECEXP (x1, 0, 0);
24896 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
24897 : || !
24898 : #line 30985 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24899 : (TARGET_SHSTK))
24900 : return -1;
24901 : return 2017; /* setssbsy */
24902 :
24903 : case 66:
24904 : x2 = XVECEXP (x1, 0, 0);
24905 : operands[0] = x2;
24906 : if (!memory_operand (operands[0], E_DImode)
24907 : || !
24908 : #line 30993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24909 : (TARGET_SHSTK))
24910 : return -1;
24911 : return 2018; /* clrssbsy */
24912 :
24913 : case 58:
24914 : x2 = XVECEXP (x1, 0, 0);
24915 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
24916 : || !
24917 : #line 31000 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24918 : ((flag_cf_protection & CF_BRANCH)))
24919 : return -1;
24920 : return 2019; /* nop_endbr */
24921 :
24922 : case 47:
24923 : x2 = XVECEXP (x1, 0, 0);
24924 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
24925 : || !
24926 : #line 31046 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24927 : (TARGET_RTM))
24928 : return -1;
24929 : return 2021; /* xend */
24930 :
24931 : case 48:
24932 : x2 = XVECEXP (x1, 0, 0);
24933 : operands[0] = x2;
24934 : if (!const_0_to_255_operand (operands[0], E_SImode)
24935 : || !
24936 : #line 31054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24937 : (TARGET_RTM))
24938 : return -1;
24939 : return 2022; /* xabort */
24940 :
24941 : case 51:
24942 : x2 = XVECEXP (x1, 0, 0);
24943 : operands[0] = x2;
24944 : if (!address_operand (operands[0], E_VOIDmode)
24945 : || !
24946 : #line 31082 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24947 : (TARGET_CLWB))
24948 : return -1;
24949 : return 2024; /* clwb */
24950 :
24951 : case 52:
24952 : x2 = XVECEXP (x1, 0, 0);
24953 : operands[0] = x2;
24954 : if (!address_operand (operands[0], E_VOIDmode)
24955 : || !
24956 : #line 31091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24957 : (TARGET_CLFLUSHOPT))
24958 : return -1;
24959 : return 2025; /* clflushopt */
24960 :
24961 : case 55:
24962 : x2 = XVECEXP (x1, 0, 0);
24963 : operands[0] = x2;
24964 : switch (GET_MODE (operands[0]))
24965 : {
24966 : case E_SImode:
24967 : if (!register_operand (operands[0], E_SImode)
24968 : || !(
24969 : #line 31127 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24970 : (TARGET_CLZERO) &&
24971 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24972 : (Pmode == SImode)))
24973 : return -1;
24974 : return 2029; /* clzero_si */
24975 :
24976 : case E_DImode:
24977 : if (!register_operand (operands[0], E_DImode)
24978 : || !(
24979 : #line 31127 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24980 : (TARGET_CLZERO) &&
24981 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24982 : (Pmode == DImode)))
24983 : return -1;
24984 : return 2030; /* clzero_di */
24985 :
24986 : default:
24987 : return -1;
24988 : }
24989 :
24990 : case 38:
24991 : x2 = XVECEXP (x1, 0, 0);
24992 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
24993 : return -1;
24994 : return 2035; /* wbinvd */
24995 :
24996 : case 39:
24997 : x2 = XVECEXP (x1, 0, 0);
24998 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
24999 : || !
25000 : #line 31198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25001 : (TARGET_WBNOINVD))
25002 : return -1;
25003 : return 2036; /* wbnoinvd */
25004 :
25005 : case 67:
25006 : x2 = XVECEXP (x1, 0, 0);
25007 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
25008 : || !
25009 : #line 31226 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25010 : (TARGET_TSXLDTRK))
25011 : return -1;
25012 : return 2041; /* xsusldtrk */
25013 :
25014 : case 68:
25015 : x2 = XVECEXP (x1, 0, 0);
25016 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
25017 : || !
25018 : #line 31226 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25019 : (TARGET_TSXLDTRK))
25020 : return -1;
25021 : return 2042; /* xresldtrk */
25022 :
25023 : case 72:
25024 : x2 = XVECEXP (x1, 0, 0);
25025 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
25026 : || !
25027 : #line 31251 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25028 : (TARGET_UINTR && TARGET_64BIT))
25029 : return -1;
25030 : return 2047; /* clui */
25031 :
25032 : case 73:
25033 : x2 = XVECEXP (x1, 0, 0);
25034 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
25035 : || !
25036 : #line 31251 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25037 : (TARGET_UINTR && TARGET_64BIT))
25038 : return -1;
25039 : return 2048; /* stui */
25040 :
25041 : case 75:
25042 : x2 = XVECEXP (x1, 0, 0);
25043 : operands[0] = x2;
25044 : if (!register_operand (operands[0], E_DImode)
25045 : || !
25046 : #line 31268 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25047 : (TARGET_UINTR && TARGET_64BIT))
25048 : return -1;
25049 : return 2050; /* senduipi */
25050 :
25051 : case 70:
25052 : x2 = XVECEXP (x1, 0, 0);
25053 : operands[0] = x2;
25054 : switch (GET_MODE (operands[0]))
25055 : {
25056 : case E_SImode:
25057 : if (!register_operand (operands[0], E_SImode)
25058 : || !(
25059 : #line 31297 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25060 : (TARGET_WAITPKG) &&
25061 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25062 : (Pmode == SImode)))
25063 : return -1;
25064 : return 2053; /* umonitor_si */
25065 :
25066 : case E_DImode:
25067 : if (!register_operand (operands[0], E_DImode)
25068 : || !(
25069 : #line 31297 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25070 : (TARGET_WAITPKG) &&
25071 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25072 : (Pmode == DImode)))
25073 : return -1;
25074 : return 2054; /* umonitor_di */
25075 :
25076 : default:
25077 : return -1;
25078 : }
25079 :
25080 : case 76:
25081 : x2 = XVECEXP (x1, 0, 0);
25082 : operands[0] = x2;
25083 : if (!address_operand (operands[0], E_VOIDmode)
25084 : || !
25085 : #line 31324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25086 : (TARGET_CLDEMOTE))
25087 : return -1;
25088 : return 2057; /* cldemote */
25089 :
25090 : case 77:
25091 : x2 = XVECEXP (x1, 0, 0);
25092 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
25093 : return -1;
25094 : return 2058; /* speculation_barrier */
25095 :
25096 : case 81:
25097 : x2 = XVECEXP (x1, 0, 0);
25098 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
25099 : || !
25100 : #line 31338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25101 : (TARGET_SERIALIZE))
25102 : return -1;
25103 : return 2059; /* serialize */
25104 :
25105 : case 83:
25106 : x2 = XVECEXP (x1, 0, 0);
25107 : operands[0] = x2;
25108 : if (!register_operand (operands[0], E_SImode)
25109 : || !
25110 : #line 31360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25111 : (TARGET_HRESET))
25112 : return -1;
25113 : return 2061; /* hreset */
25114 :
25115 : case 87:
25116 : x2 = XVECEXP (x1, 0, 0);
25117 : operands[0] = x2;
25118 : if (!memory_operand (operands[0], E_BLKmode)
25119 : || !
25120 : #line 31478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25121 : (TARGET_AMX_TILE))
25122 : return -1;
25123 : return 2064; /* ldtilecfg */
25124 :
25125 : case 90:
25126 : if (pnum_clobbers == NULL)
25127 : return -1;
25128 : x2 = XVECEXP (x1, 0, 0);
25129 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
25130 : || !
25131 : #line 6927 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
25132 : (TARGET_MMX))
25133 : return -1;
25134 : *pnum_clobbers = 16;
25135 : return 2441; /* *mmx_emms */
25136 :
25137 : case 91:
25138 : if (pnum_clobbers == NULL)
25139 : return -1;
25140 : x2 = XVECEXP (x1, 0, 0);
25141 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
25142 : || !
25143 : #line 6928 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
25144 : (TARGET_3DNOW))
25145 : return -1;
25146 : *pnum_clobbers = 16;
25147 : return 2442; /* *mmx_femms */
25148 :
25149 : case 92:
25150 : x2 = XVECEXP (x1, 0, 0);
25151 : operands[0] = x2;
25152 : if (!memory_operand (operands[0], E_SImode)
25153 : || !
25154 : #line 23006 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25155 : (TARGET_SSE))
25156 : return -1;
25157 : return 8656; /* sse_ldmxcsr */
25158 :
25159 : case 94:
25160 : x2 = XVECEXP (x1, 0, 0);
25161 : operands[0] = x2;
25162 : if (!address_operand (operands[0], E_VOIDmode)
25163 : || !
25164 : #line 23030 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25165 : (TARGET_SSE2))
25166 : return -1;
25167 : return 8658; /* sse2_clflush */
25168 :
25169 : default:
25170 : return -1;
25171 : }
25172 :
25173 : case 2:
25174 : x2 = XVECEXP (x1, 0, 0);
25175 : operands[0] = x2;
25176 : x3 = XVECEXP (x1, 0, 1);
25177 : operands[1] = x3;
25178 : switch (XINT (x1, 1))
25179 : {
25180 : case 4:
25181 : return 1527; /* max_skip_align */
25182 :
25183 : case 84:
25184 : if (!local_func_symbolic_operand (operands[0], E_VOIDmode)
25185 : || !const_int_operand (operands[1], E_SImode)
25186 : || !
25187 : #line 30401 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25188 : (TARGET_PREFETCHI && TARGET_64BIT))
25189 : return -1;
25190 : return 1940; /* prefetchi */
25191 :
25192 : case 25:
25193 : if (GET_MODE (x1) != E_BLKmode
25194 : || !memory_operand (operands[0], E_BLKmode)
25195 : || !register_operand (operands[1], E_DImode)
25196 : || !
25197 : #line 30669 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25198 : (!TARGET_64BIT && TARGET_XSAVE))
25199 : return -1;
25200 : return 1968; /* xrstor */
25201 :
25202 : case 31:
25203 : if (GET_MODE (x1) != E_BLKmode
25204 : || !memory_operand (operands[0], E_BLKmode)
25205 : || !register_operand (operands[1], E_DImode)
25206 : || !(
25207 : #line 30669 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25208 : (!TARGET_64BIT && TARGET_XSAVE) &&
25209 : #line 30612 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25210 : (TARGET_XSAVES)))
25211 : return -1;
25212 : return 1969; /* xrstors */
25213 :
25214 : case 37:
25215 : if (GET_MODE (x1) != E_SImode
25216 : || !register_operand (operands[0], E_SImode)
25217 : || !register_operand (operands[1], E_DImode)
25218 : || !
25219 : #line 30709 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25220 : (!TARGET_64BIT && TARGET_XSAVE))
25221 : return -1;
25222 : return 1974; /* xsetbv */
25223 :
25224 : case 63:
25225 : switch (pattern400 ())
25226 : {
25227 : case 0:
25228 : if (!
25229 : #line 30969 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25230 : (TARGET_SHSTK))
25231 : return -1;
25232 : return 2013; /* wrsssi */
25233 :
25234 : case 1:
25235 : if (!(
25236 : #line 30969 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25237 : (TARGET_SHSTK) &&
25238 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25239 : (TARGET_64BIT)))
25240 : return -1;
25241 : return 2014; /* wrssdi */
25242 :
25243 : default:
25244 : return -1;
25245 : }
25246 :
25247 : case 64:
25248 : switch (pattern400 ())
25249 : {
25250 : case 0:
25251 : if (!
25252 : #line 30978 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25253 : (TARGET_SHSTK))
25254 : return -1;
25255 : return 2015; /* wrusssi */
25256 :
25257 : case 1:
25258 : if (!(
25259 : #line 30978 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25260 : (TARGET_SHSTK) &&
25261 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25262 : (TARGET_64BIT)))
25263 : return -1;
25264 : return 2016; /* wrussdi */
25265 :
25266 : default:
25267 : return -1;
25268 : }
25269 :
25270 : case 82:
25271 : if (!const_int_operand (operands[0], E_VOIDmode)
25272 : || !const_int_operand (operands[1], E_VOIDmode))
25273 : return -1;
25274 : return 2060; /* patchable_area */
25275 :
25276 : case 86:
25277 : if (!x86_64_szext_nonmemory_operand (operands[0], E_DImode)
25278 : || !register_operand (operands[1], E_DImode)
25279 : || !
25280 : #line 31470 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25281 : (TARGET_USER_MSR && TARGET_64BIT))
25282 : return -1;
25283 : return 2063; /* uwrmsr */
25284 :
25285 : case 96:
25286 : if (!register_operand (operands[0], E_SImode)
25287 : || !register_operand (operands[1], E_SImode)
25288 : || !
25289 : #line 23043 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25290 : (TARGET_MWAIT))
25291 : return -1;
25292 : return 8659; /* sse3_mwait */
25293 :
25294 : default:
25295 : return -1;
25296 : }
25297 :
25298 : case 3:
25299 : x2 = XVECEXP (x1, 0, 0);
25300 : operands[0] = x2;
25301 : x3 = XVECEXP (x1, 0, 1);
25302 : operands[1] = x3;
25303 : x4 = XVECEXP (x1, 0, 2);
25304 : operands[2] = x4;
25305 : switch (XINT (x1, 1))
25306 : {
25307 : case 25:
25308 : if (pattern579 (x1) != 0
25309 : || !
25310 : #line 30682 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25311 : (TARGET_64BIT && TARGET_XSAVE))
25312 : return -1;
25313 : return 1970; /* xrstor_rex64 */
25314 :
25315 : case 31:
25316 : if (pattern579 (x1) != 0
25317 : || !(
25318 : #line 30682 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25319 : (TARGET_64BIT && TARGET_XSAVE) &&
25320 : #line 30612 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25321 : (TARGET_XSAVES)))
25322 : return -1;
25323 : return 1971; /* xrstors_rex64 */
25324 :
25325 : case 27:
25326 : if (pattern579 (x1) != 0
25327 : || !
25328 : #line 30696 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25329 : (TARGET_64BIT && TARGET_XSAVE))
25330 : return -1;
25331 : return 1972; /* xrstor64 */
25332 :
25333 : case 33:
25334 : if (pattern579 (x1) != 0
25335 : || !(
25336 : #line 30696 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25337 : (TARGET_64BIT && TARGET_XSAVE) &&
25338 : #line 30616 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25339 : (TARGET_XSAVES)))
25340 : return -1;
25341 : return 1973; /* xrstors64 */
25342 :
25343 : case 37:
25344 : if (pattern580 (x1) != 0
25345 : || !
25346 : #line 30719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25347 : (TARGET_64BIT && TARGET_XSAVE))
25348 : return -1;
25349 : return 1975; /* xsetbv_rex64 */
25350 :
25351 : case 14:
25352 : if (!nonimmediate_operand (operands[1], E_SImode)
25353 : || !const_int_operand (operands[2], E_SImode))
25354 : return -1;
25355 : switch (GET_MODE (operands[0]))
25356 : {
25357 : case E_SImode:
25358 : if (!register_operand (operands[0], E_SImode)
25359 : || !
25360 : #line 30832 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25361 : (TARGET_LWP))
25362 : return -1;
25363 : return 1986; /* lwp_lwpvalsi */
25364 :
25365 : case E_DImode:
25366 : if (!register_operand (operands[0], E_DImode)
25367 : || !(
25368 : #line 30832 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25369 : (TARGET_LWP) &&
25370 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25371 : (TARGET_64BIT)))
25372 : return -1;
25373 : return 1987; /* lwp_lwpvaldi */
25374 :
25375 : default:
25376 : return -1;
25377 : }
25378 :
25379 : case 54:
25380 : if (!register_operand (operands[0], E_SImode)
25381 : || !register_operand (operands[1], E_SImode)
25382 : || !register_operand (operands[2], E_SImode)
25383 : || !
25384 : #line 31103 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25385 : (TARGET_MWAITX))
25386 : return -1;
25387 : return 2026; /* mwaitx */
25388 :
25389 : case 53:
25390 : switch (pattern581 ())
25391 : {
25392 : case 0:
25393 : if (!(
25394 : #line 31115 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25395 : (TARGET_MWAITX) &&
25396 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25397 : (Pmode == SImode)))
25398 : return -1;
25399 : return 2027; /* monitorx_si */
25400 :
25401 : case 1:
25402 : if (!(
25403 : #line 31115 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25404 : (TARGET_MWAITX) &&
25405 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25406 : (Pmode == DImode)))
25407 : return -1;
25408 : return 2028; /* monitorx_di */
25409 :
25410 : default:
25411 : return -1;
25412 : }
25413 :
25414 : case 56:
25415 : if (pattern580 (x1) != 0
25416 : || !
25417 : #line 31170 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25418 : (TARGET_PKU))
25419 : return -1;
25420 : return 2032; /* *wrpkru */
25421 :
25422 : case 95:
25423 : switch (pattern581 ())
25424 : {
25425 : case 0:
25426 : if (!(
25427 : #line 23055 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25428 : (TARGET_MWAIT) &&
25429 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25430 : (Pmode == SImode)))
25431 : return -1;
25432 : return 8660; /* sse3_monitor_si */
25433 :
25434 : case 1:
25435 : if (!(
25436 : #line 23055 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25437 : (TARGET_MWAIT) &&
25438 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25439 : (Pmode == DImode)))
25440 : return -1;
25441 : return 8661; /* sse3_monitor_di */
25442 :
25443 : default:
25444 : return -1;
25445 : }
25446 :
25447 : default:
25448 : return -1;
25449 : }
25450 :
25451 : case 4:
25452 : if (pnum_clobbers == NULL
25453 : || XINT (x1, 1) != 98
25454 : || GET_MODE (x1) != E_V2DImode)
25455 : return -1;
25456 : x2 = XVECEXP (x1, 0, 0);
25457 : operands[0] = x2;
25458 : if (!register_operand (operands[0], E_V2DImode))
25459 : return -1;
25460 : x3 = XVECEXP (x1, 0, 1);
25461 : operands[1] = x3;
25462 : if (!register_operand (operands[1], E_V2DImode))
25463 : return -1;
25464 : x4 = XVECEXP (x1, 0, 2);
25465 : operands[2] = x4;
25466 : if (!register_operand (operands[2], E_V2DImode))
25467 : return -1;
25468 : x5 = XVECEXP (x1, 0, 3);
25469 : operands[3] = x5;
25470 : if (!register_operand (operands[3], E_SImode)
25471 : || !
25472 : #line 32293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25473 : (TARGET_KL))
25474 : return -1;
25475 : *pnum_clobbers = 1;
25476 : return 10464; /* loadiwkey */
25477 :
25478 : default:
25479 : return -1;
25480 : }
25481 : }
25482 :
25483 : rtx_insn *
25484 : split_15 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
25485 : {
25486 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
25487 : rtx x2, x3, x4, x5, x6, x7;
25488 : rtx_insn *res ATTRIBUTE_UNUSED;
25489 : x2 = XVECEXP (x1, 0, 0);
25490 : x3 = XEXP (x2, 1);
25491 : x4 = XEXP (x3, 1);
25492 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
25493 : return NULL;
25494 : x5 = XEXP (x3, 2);
25495 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
25496 : return NULL;
25497 : x6 = XEXP (x2, 0);
25498 : operands[0] = x6;
25499 : x7 = XEXP (x3, 0);
25500 : operands[1] = x7;
25501 : switch (pattern1427 (x3))
25502 : {
25503 : case 0:
25504 : return gen_split_26 (insn, operands);
25505 :
25506 : case 1:
25507 : if (!
25508 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25509 : (TARGET_64BIT))
25510 : return NULL;
25511 : return gen_split_27 (insn, operands);
25512 :
25513 : default:
25514 : return NULL;
25515 : }
25516 : }
25517 :
25518 : rtx_insn *
25519 : split_17 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
25520 : {
25521 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
25522 : rtx x2, x3, x4, x5;
25523 : rtx_insn *res ATTRIBUTE_UNUSED;
25524 : x2 = XVECEXP (x1, 0, 0);
25525 : switch (pattern940 (x2))
25526 : {
25527 : case 0:
25528 : x3 = XEXP (x2, 0);
25529 : operands[0] = x3;
25530 : x4 = XEXP (x2, 1);
25531 : x5 = XEXP (x4, 1);
25532 : if (GET_CODE (x5) == SUBREG)
25533 : {
25534 : switch (pattern1428 (x4))
25535 : {
25536 : case 0:
25537 : if (((
25538 : #line 17523 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25539 : (((INTVAL (operands[3]) & (4 * BITS_PER_UNIT)) == 0
25540 : || ((INTVAL (operands[3]) & (2 * 4 * BITS_PER_UNIT - 1))
25541 : == (2 * 4 * BITS_PER_UNIT - 1)))
25542 : && ix86_pre_reload_split ()) &&
25543 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25544 : (!TARGET_64BIT)) &&
25545 : #line 17528 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25546 : ( 1)))
25547 : return gen_split_596 (insn, operands);
25548 : break;
25549 :
25550 : case 1:
25551 : if (((
25552 : #line 17523 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25553 : (((INTVAL (operands[3]) & (8 * BITS_PER_UNIT)) == 0
25554 : || ((INTVAL (operands[3]) & (2 * 8 * BITS_PER_UNIT - 1))
25555 : == (2 * 8 * BITS_PER_UNIT - 1)))
25556 : && ix86_pre_reload_split ()) &&
25557 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25558 : (TARGET_64BIT)) &&
25559 : #line 17528 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25560 : ( 1)))
25561 : return gen_split_598 (insn, operands);
25562 : break;
25563 :
25564 : default:
25565 : break;
25566 : }
25567 : }
25568 : if (GET_MODE (x4) == E_SImode
25569 : && nonimmediate_operand (operands[1], E_SImode))
25570 : {
25571 : if (register_operand (operands[0], E_SImode))
25572 : {
25573 : operands[2] = x5;
25574 : if (register_operand (operands[2], E_QImode)
25575 : &&
25576 : #line 18400 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25577 : (TARGET_BMI2 && reload_completed))
25578 : return gen_split_629 (insn, operands);
25579 : }
25580 : if (GET_CODE (x5) == SUBREG)
25581 : {
25582 : switch (pattern1540 (x5))
25583 : {
25584 : case 0:
25585 : if ((
25586 : #line 18773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25587 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
25588 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
25589 : == 4 * BITS_PER_UNIT - 1
25590 : && ix86_pre_reload_split ()) &&
25591 : #line 18778 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25592 : ( 1)))
25593 : return gen_split_646 (insn, operands);
25594 : break;
25595 :
25596 : case 1:
25597 : if ((
25598 : #line 18821 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25599 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
25600 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
25601 : && ix86_pre_reload_split ()) &&
25602 : #line 18825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25603 : ( 1)))
25604 : return gen_split_658 (insn, operands);
25605 : break;
25606 :
25607 : case 2:
25608 : if ((
25609 : #line 18867 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25610 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
25611 : && ((INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
25612 : || (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
25613 : == 4 * BITS_PER_UNIT - 1)
25614 : && ix86_pre_reload_split ()) &&
25615 : #line 18873 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25616 : ( 1)))
25617 : return gen_split_670 (insn, operands);
25618 : break;
25619 :
25620 : default:
25621 : break;
25622 : }
25623 : }
25624 : }
25625 : operands[2] = x5;
25626 : switch (pattern1346 (x2))
25627 : {
25628 : case 0:
25629 : if (register_operand (operands[1], E_DImode)
25630 : && nonmemory_operand (operands[2], E_QImode)
25631 : && (
25632 : #line 17635 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25633 : (epilogue_completed) &&
25634 : #line 1226 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25635 : (!TARGET_64BIT)))
25636 : return gen_split_604 (insn, operands);
25637 : if (nonimmediate_operand (operands[1], E_DImode)
25638 : && register_operand (operands[2], E_QImode)
25639 : && (
25640 : #line 18400 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25641 : (TARGET_BMI2 && reload_completed) &&
25642 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25643 : (TARGET_64BIT)))
25644 : return gen_split_631 (insn, operands);
25645 : break;
25646 :
25647 : case 1:
25648 : if ((
25649 : #line 17635 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25650 : (epilogue_completed) &&
25651 : #line 1227 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25652 : (TARGET_64BIT)))
25653 : return gen_split_606 (insn, operands);
25654 : break;
25655 :
25656 : case 2:
25657 : if ((
25658 : #line 18597 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25659 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25660 : #line 18604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25661 : ( reload_completed
25662 : && !(rtx_equal_p (operands[0], operands[1])))))
25663 : return gen_split_635 (insn, operands);
25664 : break;
25665 :
25666 : case 3:
25667 : if ((
25668 : #line 18597 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25669 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25670 : #line 18604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25671 : ( reload_completed
25672 : && !(rtx_equal_p (operands[0], operands[1])))))
25673 : return gen_split_637 (insn, operands);
25674 : break;
25675 :
25676 : default:
25677 : break;
25678 : }
25679 : if (GET_CODE (x5) != SUBREG)
25680 : return NULL;
25681 : switch (pattern1246 (x2,
25682 : E_DImode))
25683 : {
25684 : case 0:
25685 : if (!((
25686 : #line 18773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25687 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
25688 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
25689 : == 8 * BITS_PER_UNIT - 1
25690 : && ix86_pre_reload_split ()) &&
25691 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25692 : (TARGET_64BIT)) &&
25693 : #line 18778 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25694 : ( 1)))
25695 : return NULL;
25696 : return gen_split_649 (insn, operands);
25697 :
25698 : case 1:
25699 : if (!((
25700 : #line 18821 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25701 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
25702 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
25703 : && ix86_pre_reload_split ()) &&
25704 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25705 : (TARGET_64BIT)) &&
25706 : #line 18825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25707 : ( 1)))
25708 : return NULL;
25709 : return gen_split_661 (insn, operands);
25710 :
25711 : case 2:
25712 : if (!((
25713 : #line 18867 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25714 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
25715 : && ((INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
25716 : || (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
25717 : == 8 * BITS_PER_UNIT - 1)
25718 : && ix86_pre_reload_split ()) &&
25719 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25720 : (TARGET_64BIT)) &&
25721 : #line 18873 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25722 : ( 1)))
25723 : return NULL;
25724 : return gen_split_673 (insn, operands);
25725 :
25726 : default:
25727 : return NULL;
25728 : }
25729 :
25730 : case 1:
25731 : if (register_operand (operands[0], E_DImode)
25732 : && register_operand (operands[1], E_DImode)
25733 : && ((
25734 : #line 17584 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25735 : (((INTVAL (operands[3]) & (4 * BITS_PER_UNIT)) == 0
25736 : || ((INTVAL (operands[3]) & (2 * 4 * BITS_PER_UNIT - 1))
25737 : == (2 * 4 * BITS_PER_UNIT - 1)))
25738 : && ix86_pre_reload_split ()) &&
25739 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25740 : (!TARGET_64BIT)) &&
25741 : #line 17589 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25742 : ( 1)))
25743 : return gen_split_600 (insn, operands);
25744 : if (!nonimmediate_operand (operands[0], E_DImode)
25745 : || !nonimmediate_operand (operands[1], E_DImode)
25746 : || !((
25747 : #line 18798 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25748 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
25749 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
25750 : == 8 * BITS_PER_UNIT - 1
25751 : && ix86_pre_reload_split ()) &&
25752 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25753 : (TARGET_64BIT)) &&
25754 : #line 18803 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25755 : ( 1)))
25756 : return NULL;
25757 : return gen_split_655 (insn, operands);
25758 :
25759 : case 2:
25760 : if (!((
25761 : #line 17584 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25762 : (((INTVAL (operands[3]) & (8 * BITS_PER_UNIT)) == 0
25763 : || ((INTVAL (operands[3]) & (2 * 8 * BITS_PER_UNIT - 1))
25764 : == (2 * 8 * BITS_PER_UNIT - 1)))
25765 : && ix86_pre_reload_split ()) &&
25766 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25767 : (TARGET_64BIT)) &&
25768 : #line 17589 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25769 : ( 1)))
25770 : return NULL;
25771 : return gen_split_602 (insn, operands);
25772 :
25773 : case 3:
25774 : if (!(
25775 : #line 18798 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25776 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
25777 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
25778 : == 4 * BITS_PER_UNIT - 1
25779 : && ix86_pre_reload_split ()) &&
25780 : #line 18803 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25781 : ( 1)))
25782 : return NULL;
25783 : return gen_split_652 (insn, operands);
25784 :
25785 : case 4:
25786 : if (!(
25787 : #line 18845 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25788 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
25789 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
25790 : && ix86_pre_reload_split ()) &&
25791 : #line 18849 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25792 : ( 1)))
25793 : return NULL;
25794 : return gen_split_664 (insn, operands);
25795 :
25796 : case 5:
25797 : if (!((
25798 : #line 18845 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25799 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
25800 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
25801 : && ix86_pre_reload_split ()) &&
25802 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25803 : (TARGET_64BIT)) &&
25804 : #line 18849 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25805 : ( 1)))
25806 : return NULL;
25807 : return gen_split_667 (insn, operands);
25808 :
25809 : case 6:
25810 : if (!(
25811 : #line 18900 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25812 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
25813 : && ((INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
25814 : || (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
25815 : == 4 * BITS_PER_UNIT - 1)
25816 : && ix86_pre_reload_split ()) &&
25817 : #line 18906 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25818 : ( 1)))
25819 : return NULL;
25820 : return gen_split_676 (insn, operands);
25821 :
25822 : case 7:
25823 : if (!((
25824 : #line 18900 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25825 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
25826 : && ((INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
25827 : || (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
25828 : == 8 * BITS_PER_UNIT - 1)
25829 : && ix86_pre_reload_split ()) &&
25830 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25831 : (TARGET_64BIT)) &&
25832 : #line 18906 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25833 : ( 1)))
25834 : return NULL;
25835 : return gen_split_679 (insn, operands);
25836 :
25837 : case 8:
25838 : if (!((
25839 : #line 18929 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25840 : (INTVAL (operands[2]) == INTVAL (operands[3])
25841 : && UINTVAL (operands[2]) < 4 * BITS_PER_UNIT) &&
25842 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25843 : (!TARGET_64BIT)) &&
25844 : #line 18932 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25845 : ( reload_completed)))
25846 : return NULL;
25847 : return gen_split_680 (insn, operands);
25848 :
25849 : case 9:
25850 : if (!((
25851 : #line 18929 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25852 : (INTVAL (operands[2]) == INTVAL (operands[3])
25853 : && UINTVAL (operands[2]) < 8 * BITS_PER_UNIT) &&
25854 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25855 : (TARGET_64BIT)) &&
25856 : #line 18932 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25857 : ( reload_completed)))
25858 : return NULL;
25859 : return gen_split_681 (insn, operands);
25860 :
25861 : default:
25862 : return NULL;
25863 : }
25864 : }
25865 :
25866 : rtx_insn *
25867 : split_31 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
25868 : {
25869 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
25870 : rtx x2, x3, x4, x5, x6;
25871 : rtx_insn *res ATTRIBUTE_UNUSED;
25872 : x2 = XVECEXP (x1, 0, 0);
25873 : x3 = XEXP (x2, 1);
25874 : x4 = XEXP (x3, 0);
25875 : switch (GET_CODE (x4))
25876 : {
25877 : case REG:
25878 : case SUBREG:
25879 : case MEM:
25880 : switch (pattern380 (x1))
25881 : {
25882 : case 0:
25883 : x5 = XVECEXP (x1, 0, 1);
25884 : x6 = XEXP (x5, 0);
25885 : if (GET_CODE (x6) != REG
25886 : || REGNO (x6) != 17
25887 : || GET_MODE (x6) != E_CCmode)
25888 : return NULL;
25889 : switch (GET_MODE (operands[0]))
25890 : {
25891 : case E_DImode:
25892 : if (!nonimmediate_operand (operands[0], E_DImode)
25893 : || GET_MODE (x3) != E_DImode
25894 : || !nonimmediate_operand (operands[1], E_DImode)
25895 : || !((
25896 : #line 15121 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25897 : (ix86_unary_operator_ok (NEG, DImode, operands, TARGET_APX_NDD)) &&
25898 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25899 : (!TARGET_64BIT)) &&
25900 : #line 15123 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25901 : ( reload_completed)))
25902 : return NULL;
25903 : return gen_split_496 (insn, operands);
25904 :
25905 : case E_TImode:
25906 : if (!nonimmediate_operand (operands[0], E_TImode)
25907 : || GET_MODE (x3) != E_TImode
25908 : || !nonimmediate_operand (operands[1], E_TImode)
25909 : || !((
25910 : #line 15121 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25911 : (ix86_unary_operator_ok (NEG, TImode, operands, TARGET_APX_NDD)) &&
25912 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25913 : (TARGET_64BIT)) &&
25914 : #line 15123 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25915 : ( reload_completed)))
25916 : return NULL;
25917 : return gen_split_497 (insn, operands);
25918 :
25919 : case E_SFmode:
25920 : if (GET_MODE (x3) != E_SFmode)
25921 : return NULL;
25922 : if (fp_register_operand (operands[0], E_SFmode)
25923 : && fp_register_operand (operands[1], E_SFmode)
25924 : &&
25925 : #line 15752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25926 : (TARGET_80387 && reload_completed))
25927 : return gen_split_519 (insn, operands);
25928 : if (!general_reg_operand (operands[0], E_SFmode)
25929 : || !general_reg_operand (operands[1], E_SFmode)
25930 : || !
25931 : #line 15759 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25932 : (TARGET_80387 && reload_completed))
25933 : return NULL;
25934 : return gen_split_525 (insn, operands);
25935 :
25936 : case E_DFmode:
25937 : if (GET_MODE (x3) != E_DFmode)
25938 : return NULL;
25939 : if (fp_register_operand (operands[0], E_DFmode)
25940 : && fp_register_operand (operands[1], E_DFmode)
25941 : &&
25942 : #line 15752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25943 : (TARGET_80387 && reload_completed))
25944 : return gen_split_521 (insn, operands);
25945 : if (!general_reg_operand (operands[0], E_DFmode)
25946 : || !general_reg_operand (operands[1], E_DFmode)
25947 : || !
25948 : #line 15759 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25949 : (TARGET_80387 && reload_completed))
25950 : return NULL;
25951 : return gen_split_527 (insn, operands);
25952 :
25953 : case E_XFmode:
25954 : if (GET_MODE (x3) != E_XFmode)
25955 : return NULL;
25956 : if (fp_register_operand (operands[0], E_XFmode)
25957 : && fp_register_operand (operands[1], E_XFmode)
25958 : &&
25959 : #line 15752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25960 : (TARGET_80387 && reload_completed))
25961 : return gen_split_523 (insn, operands);
25962 : if (!general_reg_operand (operands[0], E_XFmode)
25963 : || !general_reg_operand (operands[1], E_XFmode)
25964 : || !
25965 : #line 15759 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25966 : (TARGET_80387 && reload_completed))
25967 : return NULL;
25968 : return gen_split_529 (insn, operands);
25969 :
25970 : default:
25971 : return NULL;
25972 : }
25973 :
25974 : case 1:
25975 : if (pattern846 (x1) != 0
25976 : || !(
25977 : #line 15683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25978 : (TARGET_SSE) &&
25979 : #line 15685 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25980 : ( reload_completed)))
25981 : return NULL;
25982 : return gen_split_516 (insn, operands);
25983 :
25984 : case 2:
25985 : if (!(
25986 : #line 15301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25987 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25988 : #line 15305 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25989 : ( reload_completed
25990 : && !(rtx_equal_p (operands[0], operands[1])))))
25991 : return NULL;
25992 : return gen_split_498 (insn, operands);
25993 :
25994 : case 3:
25995 : if (!(
25996 : #line 15301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25997 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25998 : #line 15305 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25999 : ( reload_completed
26000 : && !(rtx_equal_p (operands[0], operands[1])))))
26001 : return NULL;
26002 : return gen_split_499 (insn, operands);
26003 :
26004 : default:
26005 : return NULL;
26006 : }
26007 :
26008 : case ABS:
26009 : switch (pattern382 (x1))
26010 : {
26011 : case 0:
26012 : if (((
26013 : #line 15579 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26014 : (TARGET_CMOVE
26015 : && ix86_pre_reload_split ()) &&
26016 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26017 : (!TARGET_64BIT)) &&
26018 : #line 15582 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26019 : ( 1)))
26020 : return gen_split_505 (insn, operands);
26021 : if (!((
26022 : #line 15650 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26023 : (TARGET_CMOVE
26024 : && (DImode != QImode || !TARGET_PARTIAL_REG_STALL)
26025 : && ix86_pre_reload_split ()) &&
26026 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26027 : (TARGET_64BIT)) &&
26028 : #line 15654 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26029 : ( 1)))
26030 : return NULL;
26031 : return gen_split_514 (insn, operands);
26032 :
26033 : case 1:
26034 : if (!((
26035 : #line 15579 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26036 : (TARGET_CMOVE
26037 : && ix86_pre_reload_split ()) &&
26038 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26039 : (TARGET_64BIT)) &&
26040 : #line 15582 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26041 : ( 1)))
26042 : return NULL;
26043 : return gen_split_506 (insn, operands);
26044 :
26045 : case 2:
26046 : if (!(
26047 : #line 15650 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26048 : (TARGET_CMOVE
26049 : && (QImode != QImode || !TARGET_PARTIAL_REG_STALL)
26050 : && ix86_pre_reload_split ()) &&
26051 : #line 15654 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26052 : ( 1)))
26053 : return NULL;
26054 : return gen_split_511 (insn, operands);
26055 :
26056 : case 3:
26057 : if (!(
26058 : #line 15650 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26059 : (TARGET_CMOVE
26060 : && (HImode != QImode || !TARGET_PARTIAL_REG_STALL)
26061 : && ix86_pre_reload_split ()) &&
26062 : #line 15654 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26063 : ( 1)))
26064 : return NULL;
26065 : return gen_split_512 (insn, operands);
26066 :
26067 : case 4:
26068 : if (!(
26069 : #line 15650 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26070 : (TARGET_CMOVE
26071 : && (SImode != QImode || !TARGET_PARTIAL_REG_STALL)
26072 : && ix86_pre_reload_split ()) &&
26073 : #line 15654 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26074 : ( 1)))
26075 : return NULL;
26076 : return gen_split_513 (insn, operands);
26077 :
26078 : case 5:
26079 : switch (GET_MODE (operands[0]))
26080 : {
26081 : case E_TFmode:
26082 : if (pattern1064 (x3,
26083 : E_TFmode) != 0
26084 : || !(
26085 : #line 15708 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26086 : (TARGET_SSE) &&
26087 : #line 15710 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26088 : ( reload_completed)))
26089 : return NULL;
26090 : return gen_split_517 (insn, operands);
26091 :
26092 : case E_SFmode:
26093 : if (pattern1065 (x3,
26094 : E_V4SFmode,
26095 : E_SFmode) != 0
26096 : || !(
26097 : #line 15844 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26098 : (SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH) &&
26099 : #line 15846 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26100 : ( reload_completed)))
26101 : return NULL;
26102 : return gen_split_544 (insn, operands);
26103 :
26104 : case E_DFmode:
26105 : if (pattern1065 (x3,
26106 : E_V2DFmode,
26107 : E_DFmode) != 0
26108 : || !(
26109 : #line 15844 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26110 : (SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH) &&
26111 : #line 15846 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26112 : ( reload_completed)))
26113 : return NULL;
26114 : return gen_split_545 (insn, operands);
26115 :
26116 : default:
26117 : return NULL;
26118 : }
26119 :
26120 : default:
26121 : return NULL;
26122 : }
26123 :
26124 : default:
26125 : return NULL;
26126 : }
26127 : }
26128 :
26129 : rtx_insn *
26130 : split_32 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
26131 : {
26132 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
26133 : rtx x2, x3, x4, x5, x6, x7, x8;
26134 : rtx_insn *res ATTRIBUTE_UNUSED;
26135 : if (pattern346 (x1) != 0)
26136 : return NULL;
26137 : x2 = XVECEXP (x1, 0, 0);
26138 : x3 = XEXP (x2, 1);
26139 : x4 = XEXP (x3, 0);
26140 : switch (GET_CODE (x4))
26141 : {
26142 : case REG:
26143 : case SUBREG:
26144 : case MEM:
26145 : operands[1] = x4;
26146 : switch (pattern1164 (x3))
26147 : {
26148 : case 0:
26149 : if (!(
26150 : #line 4917 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26151 : (TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)) &&
26152 : #line 4919 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26153 : ( reload_completed)))
26154 : return NULL;
26155 : return gen_split_63 (insn, operands);
26156 :
26157 : case 1:
26158 : if (!(
26159 : #line 4917 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26160 : (TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)) &&
26161 : #line 4919 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26162 : ( reload_completed)))
26163 : return NULL;
26164 : return gen_split_64 (insn, operands);
26165 :
26166 : case 2:
26167 : if (!(
26168 : #line 4971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26169 : (TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)) &&
26170 : #line 4973 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26171 : ( reload_completed)))
26172 : return NULL;
26173 : return gen_split_65 (insn, operands);
26174 :
26175 : default:
26176 : return NULL;
26177 : }
26178 :
26179 : case PLUS:
26180 : if (GET_MODE (x4) != E_SImode
26181 : || !register_operand (operands[0], E_DImode)
26182 : || GET_MODE (x3) != E_DImode)
26183 : return NULL;
26184 : x5 = XEXP (x4, 0);
26185 : switch (GET_CODE (x5))
26186 : {
26187 : case REG:
26188 : case SUBREG:
26189 : operands[1] = x5;
26190 : if (!register_operand (operands[1], E_SImode))
26191 : return NULL;
26192 : x6 = XEXP (x4, 1);
26193 : operands[2] = x6;
26194 : if (!x86_64_nonmemory_operand (operands[2], E_SImode))
26195 : return NULL;
26196 : if (
26197 : #line 7248 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26198 : (TARGET_64BIT
26199 : && reload_completed && ix86_avoid_lea_for_add (insn, operands)))
26200 : return gen_split_130 (insn, operands);
26201 : if (!
26202 : #line 7303 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26203 : (TARGET_64BIT && reload_completed && ix86_lea_for_add_ok (insn, operands)))
26204 : return NULL;
26205 : return gen_split_139 (insn, operands);
26206 :
26207 : case UNSPEC:
26208 : if (pattern1167 (x5) != 0)
26209 : return NULL;
26210 : x6 = XEXP (x4, 1);
26211 : operands[1] = x6;
26212 : if (!register_operand (operands[1], E_SImode)
26213 : || !(
26214 : #line 24280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26215 : (TARGET_X32) &&
26216 : #line 24282 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26217 : ( 1)))
26218 : return NULL;
26219 : return gen_split_930 (insn, operands);
26220 :
26221 : default:
26222 : return NULL;
26223 : }
26224 :
26225 : case ASHIFT:
26226 : if (GET_MODE (x4) != E_SImode
26227 : || GET_MODE (x3) != E_DImode)
26228 : return NULL;
26229 : x5 = XEXP (x4, 0);
26230 : operands[1] = x5;
26231 : x6 = XEXP (x4, 1);
26232 : operands[2] = x6;
26233 : switch (GET_CODE (operands[2]))
26234 : {
26235 : case REG:
26236 : case SUBREG:
26237 : if (!register_operand (operands[2], E_QImode)
26238 : || !register_operand (operands[0], E_DImode)
26239 : || !nonimmediate_operand (operands[1], E_SImode)
26240 : || !
26241 : #line 17069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26242 : (TARGET_64BIT && TARGET_BMI2 && reload_completed))
26243 : return NULL;
26244 : return gen_split_580 (insn, operands);
26245 :
26246 : case CONST_INT:
26247 : if (!const_0_to_3_operand (operands[2], E_VOIDmode)
26248 : || !general_reg_operand (operands[0], E_DImode)
26249 : || !index_reg_operand (operands[1], E_SImode)
26250 : || !
26251 : #line 17285 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26252 : (TARGET_64BIT && reload_completed
26253 : && REGNO (operands[0]) != REGNO (operands[1])))
26254 : return NULL;
26255 : return gen_split_591 (insn, operands);
26256 :
26257 : default:
26258 : return NULL;
26259 : }
26260 :
26261 : case LSHIFTRT:
26262 : if (pattern1185 (x3) != 0
26263 : || !
26264 : #line 18492 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26265 : (TARGET_64BIT && TARGET_BMI2 && reload_completed))
26266 : return NULL;
26267 : return gen_split_632 (insn, operands);
26268 :
26269 : case ASHIFTRT:
26270 : if (pattern1185 (x3) != 0
26271 : || !
26272 : #line 18492 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26273 : (TARGET_64BIT && TARGET_BMI2 && reload_completed))
26274 : return NULL;
26275 : return gen_split_633 (insn, operands);
26276 :
26277 : case ROTATE:
26278 : if (pattern1186 (x3) != 0
26279 : || !
26280 : #line 19595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26281 : (TARGET_64BIT && TARGET_BMI2 && reload_completed
26282 : && !optimize_function_for_size_p (cfun)))
26283 : return NULL;
26284 : return gen_split_794 (insn, operands);
26285 :
26286 : case ROTATERT:
26287 : if (pattern1186 (x3) != 0
26288 : || !
26289 : #line 19611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26290 : (TARGET_64BIT && TARGET_BMI2 && reload_completed
26291 : && !optimize_function_for_size_p (cfun)))
26292 : return NULL;
26293 : return gen_split_795 (insn, operands);
26294 :
26295 : case CTZ:
26296 : if (pattern1187 (x3,
26297 : E_SImode,
26298 : E_DImode) != 0
26299 : || !
26300 : #line 22188 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26301 : ((TARGET_BMI || TARGET_CPU_P (GENERIC))
26302 : && (TARGET_AVOID_FALSE_DEP_FOR_BMI || TARGET_AVOID_FALSE_DEP_FOR_TZCNT)
26303 : && epilogue_completed
26304 : && optimize_function_for_speed_p (cfun)
26305 : && !reg_mentioned_p (operands[0], operands[1])))
26306 : return NULL;
26307 : return gen_split_881 (insn, operands);
26308 :
26309 : case XOR:
26310 : if (GET_MODE (x4) != E_SImode)
26311 : return NULL;
26312 : x5 = XEXP (x4, 0);
26313 : if (GET_CODE (x5) != MINUS
26314 : || pattern1168 (x4) != 0
26315 : || !register_operand (operands[0], E_DImode)
26316 : || GET_MODE (x3) != E_DImode)
26317 : return NULL;
26318 : x7 = XEXP (x5, 1);
26319 : x8 = XEXP (x7, 0);
26320 : operands[1] = x8;
26321 : if (!nonimmediate_operand (operands[1], E_SImode)
26322 : || !(
26323 : #line 22357 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26324 : (!TARGET_LZCNT && TARGET_64BIT && ix86_pre_reload_split ()) &&
26325 : #line 22359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26326 : ( 1)))
26327 : return NULL;
26328 : return gen_split_885 (insn, operands);
26329 :
26330 : case CLZ:
26331 : if (pattern1187 (x3,
26332 : E_SImode,
26333 : E_DImode) != 0
26334 : || !(
26335 : #line 22621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26336 : (TARGET_LZCNT && TARGET_64BIT) &&
26337 : #line 22623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26338 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
26339 : && optimize_function_for_speed_p (cfun)
26340 : && !reg_mentioned_p (operands[0], operands[1]))))
26341 : return NULL;
26342 : return gen_split_897 (insn, operands);
26343 :
26344 : case POPCOUNT:
26345 : x5 = XEXP (x4, 0);
26346 : operands[1] = x5;
26347 : switch (GET_MODE (operands[0]))
26348 : {
26349 : case E_DImode:
26350 : if (pattern352 (x3,
26351 : E_SImode,
26352 : E_DImode) != 0
26353 : || !(
26354 : #line 23460 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26355 : (TARGET_POPCNT && TARGET_64BIT) &&
26356 : #line 23468 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26357 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
26358 : && optimize_function_for_speed_p (cfun)
26359 : && !reg_mentioned_p (operands[0], operands[1]))))
26360 : return NULL;
26361 : return gen_split_921 (insn, operands);
26362 :
26363 : case E_SImode:
26364 : if (pattern352 (x3,
26365 : E_HImode,
26366 : E_SImode) != 0
26367 : || !(
26368 : #line 23526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26369 : (TARGET_POPCNT
26370 : && ix86_pre_reload_split ()) &&
26371 : #line 23529 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26372 : ( 1)))
26373 : return NULL;
26374 : return gen_split_923 (insn, operands);
26375 :
26376 : default:
26377 : return NULL;
26378 : }
26379 :
26380 : default:
26381 : return NULL;
26382 : }
26383 : }
26384 :
26385 : rtx_insn *
26386 : split_41 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
26387 : {
26388 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
26389 : rtx x2, x3, x4, x5, x6;
26390 : rtx_insn *res ATTRIBUTE_UNUSED;
26391 : x2 = XEXP (x1, 0);
26392 : operands[0] = x2;
26393 : x3 = XEXP (x1, 1);
26394 : x4 = XEXP (x3, 0);
26395 : switch (GET_CODE (x4))
26396 : {
26397 : case LEU:
26398 : x5 = XEXP (x4, 0);
26399 : operands[1] = x5;
26400 : if (!int_nonimmediate_operand (operands[1], E_VOIDmode))
26401 : return NULL;
26402 : x6 = XEXP (x4, 1);
26403 : operands[2] = x6;
26404 : if (!const_int_operand (operands[2], E_VOIDmode))
26405 : return NULL;
26406 : switch (GET_MODE (operands[0]))
26407 : {
26408 : case E_SImode:
26409 : if (!register_operand (operands[0], E_SImode)
26410 : || GET_MODE (x3) != E_SImode
26411 : || GET_MODE (x4) != E_SImode
26412 : || !
26413 : #line 27421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26414 : (x86_64_immediate_operand (operands[2], VOIDmode)
26415 : && INTVAL (operands[2]) != -1
26416 : && INTVAL (operands[2]) != 2147483647))
26417 : return NULL;
26418 : return gen_split_945 (insn, operands);
26419 :
26420 : case E_DImode:
26421 : if (!register_operand (operands[0], E_DImode)
26422 : || GET_MODE (x3) != E_DImode
26423 : || GET_MODE (x4) != E_DImode
26424 : || !(
26425 : #line 27421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26426 : (x86_64_immediate_operand (operands[2], VOIDmode)
26427 : && INTVAL (operands[2]) != -1
26428 : && INTVAL (operands[2]) != 2147483647) &&
26429 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26430 : (TARGET_64BIT)))
26431 : return NULL;
26432 : return gen_split_946 (insn, operands);
26433 :
26434 : default:
26435 : return NULL;
26436 : }
26437 :
26438 : case EQ:
26439 : switch (pattern413 (x3))
26440 : {
26441 : case 0:
26442 : return gen_split_947 (insn, operands);
26443 :
26444 : case 1:
26445 : return gen_split_948 (insn, operands);
26446 :
26447 : case 2:
26448 : return gen_split_949 (insn, operands);
26449 :
26450 : case 3:
26451 : if (!
26452 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26453 : (TARGET_64BIT))
26454 : return NULL;
26455 : return gen_split_950 (insn, operands);
26456 :
26457 : default:
26458 : return NULL;
26459 : }
26460 :
26461 : case NE:
26462 : switch (pattern413 (x3))
26463 : {
26464 : case 0:
26465 : return gen_split_951 (insn, operands);
26466 :
26467 : case 1:
26468 : return gen_split_952 (insn, operands);
26469 :
26470 : case 2:
26471 : return gen_split_953 (insn, operands);
26472 :
26473 : case 3:
26474 : if (!
26475 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26476 : (TARGET_64BIT))
26477 : return NULL;
26478 : return gen_split_954 (insn, operands);
26479 :
26480 : default:
26481 : return NULL;
26482 : }
26483 :
26484 : default:
26485 : return NULL;
26486 : }
26487 : }
26488 :
26489 : rtx_insn *
26490 : split_42 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
26491 : {
26492 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
26493 : rtx x2, x3, x4, x5, x6, x7, x8;
26494 : rtx_insn *res ATTRIBUTE_UNUSED;
26495 : x2 = XEXP (x1, 1);
26496 : x3 = XEXP (x2, 0);
26497 : x4 = XEXP (x3, 0);
26498 : if (GET_CODE (x4) != REG
26499 : || REGNO (x4) != 17)
26500 : return NULL;
26501 : x5 = XEXP (x3, 1);
26502 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
26503 : return NULL;
26504 : x6 = XEXP (x1, 0);
26505 : operands[0] = x6;
26506 : x7 = XEXP (x2, 1);
26507 : operands[2] = x7;
26508 : x8 = XEXP (x2, 2);
26509 : operands[3] = x8;
26510 : switch (GET_MODE (operands[0]))
26511 : {
26512 : case E_HImode:
26513 : if (!register_operand (operands[0], E_HImode)
26514 : || GET_MODE (x2) != E_HImode
26515 : || !ix86_comparison_operator (operands[1], E_VOIDmode))
26516 : return NULL;
26517 : if (nonimmediate_operand (operands[2], E_HImode)
26518 : && nonimmediate_operand (operands[3], E_HImode)
26519 : &&
26520 : #line 27529 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26521 : (!TARGET_64BIT && TARGET_CMOVE
26522 : && TARGET_AVOID_MEM_OPND_FOR_CMOVE
26523 : && (MEM_P (operands[2]) || MEM_P (operands[3]))
26524 : && can_create_pseudo_p ()
26525 : && optimize_insn_for_speed_p ()))
26526 : return gen_split_955 (insn, operands);
26527 : if (!register_operand (operands[2], E_HImode)
26528 : || !register_operand (operands[3], E_HImode)
26529 : || !
26530 : #line 27559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26531 : (TARGET_CMOVE && !TARGET_PARTIAL_REG_STALL
26532 : && reload_completed))
26533 : return NULL;
26534 : return gen_split_959 (insn, operands);
26535 :
26536 : case E_SImode:
26537 : if (pattern1210 (x2,
26538 : E_SImode) != 0
26539 : || !
26540 : #line 27529 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26541 : (!TARGET_64BIT && TARGET_CMOVE
26542 : && TARGET_AVOID_MEM_OPND_FOR_CMOVE
26543 : && (MEM_P (operands[2]) || MEM_P (operands[3]))
26544 : && can_create_pseudo_p ()
26545 : && optimize_insn_for_speed_p ()))
26546 : return NULL;
26547 : return gen_split_956 (insn, operands);
26548 :
26549 : case E_DImode:
26550 : if (pattern1210 (x2,
26551 : E_DImode) != 0
26552 : || !(
26553 : #line 27529 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26554 : (!TARGET_64BIT && TARGET_CMOVE
26555 : && TARGET_AVOID_MEM_OPND_FOR_CMOVE
26556 : && (MEM_P (operands[2]) || MEM_P (operands[3]))
26557 : && can_create_pseudo_p ()
26558 : && optimize_insn_for_speed_p ()) &&
26559 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26560 : (TARGET_64BIT)))
26561 : return NULL;
26562 : return gen_split_957 (insn, operands);
26563 :
26564 : case E_QImode:
26565 : if (pattern1211 (x2) != 0
26566 : || !
26567 : #line 27559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26568 : (TARGET_CMOVE && !TARGET_PARTIAL_REG_STALL
26569 : && reload_completed))
26570 : return NULL;
26571 : return gen_split_958 (insn, operands);
26572 :
26573 : case E_DFmode:
26574 : if (GET_MODE (x2) != E_DFmode
26575 : || !nonimmediate_operand (operands[2], E_DFmode)
26576 : || !nonimmediate_operand (operands[3], E_DFmode))
26577 : return NULL;
26578 : if (general_reg_operand (operands[0], E_DFmode)
26579 : && fcmov_comparison_operator (operands[1], E_VOIDmode)
26580 : &&
26581 : #line 27775 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26582 : (!TARGET_64BIT && reload_completed))
26583 : return gen_split_960 (insn, operands);
26584 : if (!register_operand (operands[0], E_DFmode)
26585 : || !ix86_comparison_operator (operands[1], E_VOIDmode)
26586 : || !
26587 : #line 27809 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26588 : (!TARGET_64BIT && TARGET_80387 && TARGET_CMOVE
26589 : && TARGET_AVOID_MEM_OPND_FOR_CMOVE
26590 : && (MEM_P (operands[2]) || MEM_P (operands[3]))
26591 : && can_create_pseudo_p ()
26592 : && optimize_insn_for_speed_p ()))
26593 : return NULL;
26594 : return gen_split_962 (insn, operands);
26595 :
26596 : case E_SFmode:
26597 : if (pattern1210 (x2,
26598 : E_SFmode) != 0
26599 : || !
26600 : #line 27809 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26601 : (!TARGET_64BIT && TARGET_80387 && TARGET_CMOVE
26602 : && TARGET_AVOID_MEM_OPND_FOR_CMOVE
26603 : && (MEM_P (operands[2]) || MEM_P (operands[3]))
26604 : && can_create_pseudo_p ()
26605 : && optimize_insn_for_speed_p ()))
26606 : return NULL;
26607 : return gen_split_961 (insn, operands);
26608 :
26609 : default:
26610 : return NULL;
26611 : }
26612 : }
26613 :
26614 : rtx_insn *
26615 : split_46 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
26616 : {
26617 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
26618 : rtx x2, x3, x4, x5, x6, x7;
26619 : rtx_insn *res ATTRIBUTE_UNUSED;
26620 : x2 = XEXP (x1, 0);
26621 : operands[0] = x2;
26622 : x3 = XEXP (x1, 1);
26623 : x4 = XEXP (x3, 0);
26624 : switch (GET_CODE (x4))
26625 : {
26626 : case REG:
26627 : operands[1] = x4;
26628 : if (general_reg_operand (operands[1], E_VOIDmode)
26629 : && general_reg_operand (operands[0], E_VOIDmode)
26630 : &&
26631 : #line 29007 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26632 : (! TARGET_PARTIAL_REG_STALL && reload_completed
26633 : && (GET_MODE (operands[0]) == HImode
26634 : || (GET_MODE (operands[0]) == QImode && TARGET_PROMOTE_QImode))))
26635 : return gen_split_1013 (insn, operands);
26636 : if (general_reg_operand (operands[1], E_V4QImode)
26637 : && general_reg_operand (operands[0], E_V4QImode)
26638 : && GET_MODE (x3) == E_V4QImode
26639 : &&
26640 : #line 4591 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26641 : (reload_completed))
26642 : return gen_split_1111 (insn, operands);
26643 : if (general_reg_operand (operands[1], E_V2QImode)
26644 : && general_reg_operand (operands[0], E_V2QImode)
26645 : && GET_MODE (x3) == E_V2QImode
26646 : &&
26647 : #line 4591 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26648 : (reload_completed))
26649 : return gen_split_1112 (insn, operands);
26650 : if (general_reg_operand (operands[1], E_V2HImode)
26651 : && general_reg_operand (operands[0], E_V2HImode)
26652 : && GET_MODE (x3) == E_V2HImode
26653 : &&
26654 : #line 4591 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26655 : (reload_completed))
26656 : return gen_split_1113 (insn, operands);
26657 : if (sse_reg_operand (operands[1], E_V4QImode)
26658 : && sse_reg_operand (operands[0], E_V4QImode)
26659 : && GET_MODE (x3) == E_V4QImode
26660 : &&
26661 : #line 4603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26662 : (TARGET_SSE2 && reload_completed))
26663 : return gen_split_1114 (insn, operands);
26664 : if (sse_reg_operand (operands[1], E_V2QImode)
26665 : && sse_reg_operand (operands[0], E_V2QImode)
26666 : && GET_MODE (x3) == E_V2QImode
26667 : &&
26668 : #line 4603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26669 : (TARGET_SSE2 && reload_completed))
26670 : return gen_split_1115 (insn, operands);
26671 : if (sse_reg_operand (operands[1], E_V2HImode)
26672 : && sse_reg_operand (operands[0], E_V2HImode)
26673 : && GET_MODE (x3) == E_V2HImode
26674 : &&
26675 : #line 4603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26676 : (TARGET_SSE2 && reload_completed))
26677 : return gen_split_1116 (insn, operands);
26678 : if (mask_reg_operand (operands[1], E_QImode)
26679 : && mask_reg_operand (operands[0], E_QImode)
26680 : && GET_MODE (x3) == E_QImode
26681 : &&
26682 : #line 2253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26683 : (TARGET_AVX512F && reload_completed))
26684 : return gen_split_1259 (insn, operands);
26685 : if (mask_reg_operand (operands[1], E_HImode)
26686 : && mask_reg_operand (operands[0], E_HImode)
26687 : && GET_MODE (x3) == E_HImode
26688 : &&
26689 : #line 2253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26690 : (TARGET_AVX512F && reload_completed))
26691 : return gen_split_1260 (insn, operands);
26692 : if (mask_reg_operand (operands[1], E_SImode)
26693 : && mask_reg_operand (operands[0], E_SImode)
26694 : && GET_MODE (x3) == E_SImode
26695 : && (
26696 : #line 2253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26697 : (TARGET_AVX512F && reload_completed) &&
26698 : #line 2109 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26699 : (TARGET_AVX512BW)))
26700 : return gen_split_1261 (insn, operands);
26701 : if (!mask_reg_operand (operands[1], E_DImode)
26702 : || !mask_reg_operand (operands[0], E_DImode)
26703 : || GET_MODE (x3) != E_DImode
26704 : || !(
26705 : #line 2253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26706 : (TARGET_AVX512F && reload_completed) &&
26707 : #line 2109 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26708 : (TARGET_AVX512BW)))
26709 : return NULL;
26710 : return gen_split_1262 (insn, operands);
26711 :
26712 : case UNSPEC:
26713 : if (XVECLEN (x4, 0) != 3)
26714 : return NULL;
26715 : x5 = XVECEXP (x4, 0, 0);
26716 : operands[1] = x5;
26717 : x6 = XVECEXP (x4, 0, 1);
26718 : operands[2] = x6;
26719 : x7 = XVECEXP (x4, 0, 2);
26720 : operands[3] = x7;
26721 : switch (XINT (x4, 1))
26722 : {
26723 : case 60:
26724 : switch (GET_MODE (operands[0]))
26725 : {
26726 : case E_HImode:
26727 : switch (pattern977 (x3))
26728 : {
26729 : case 0:
26730 : if (!(
26731 : #line 4755 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26732 : (TARGET_AVX512F && GET_MODE_NUNITS (V16SImode) >= 8
26733 : && ix86_pre_reload_split ()) &&
26734 : #line 4758 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26735 : ( 1)))
26736 : return NULL;
26737 : return gen_split_1445 (insn, operands);
26738 :
26739 : case 1:
26740 : if (!((
26741 : #line 4755 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26742 : (TARGET_AVX512F && GET_MODE_NUNITS (V16HFmode) >= 8
26743 : && ix86_pre_reload_split ()) &&
26744 : #line 321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26745 : (TARGET_AVX512FP16 && TARGET_AVX512VL)) &&
26746 : #line 4758 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26747 : ( 1)))
26748 : return NULL;
26749 : return gen_split_1452 (insn, operands);
26750 :
26751 : case 2:
26752 : if (!(
26753 : #line 4755 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26754 : (TARGET_AVX512F && GET_MODE_NUNITS (V16SFmode) >= 8
26755 : && ix86_pre_reload_split ()) &&
26756 : #line 4758 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26757 : ( 1)))
26758 : return NULL;
26759 : return gen_split_1454 (insn, operands);
26760 :
26761 : case 3:
26762 : if (!((
26763 : #line 4950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26764 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
26765 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26766 : (TARGET_AVX512VL)) &&
26767 : #line 4952 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26768 : ( 1)))
26769 : return NULL;
26770 : return gen_split_1480 (insn, operands);
26771 :
26772 : case 4:
26773 : if (!((
26774 : #line 4950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26775 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
26776 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26777 : (TARGET_AVX512VL)) &&
26778 : #line 4952 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26779 : ( 1)))
26780 : return NULL;
26781 : return gen_split_1486 (insn, operands);
26782 :
26783 : default:
26784 : return NULL;
26785 : }
26786 :
26787 : case E_QImode:
26788 : switch (pattern978 (x3))
26789 : {
26790 : case 0:
26791 : if (!((
26792 : #line 4755 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26793 : (TARGET_AVX512F && GET_MODE_NUNITS (V8SImode) >= 8
26794 : && ix86_pre_reload_split ()) &&
26795 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26796 : (TARGET_AVX512VL)) &&
26797 : #line 4758 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26798 : ( 1)))
26799 : return NULL;
26800 : return gen_split_1446 (insn, operands);
26801 :
26802 : case 1:
26803 : if (!((
26804 : #line 4755 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26805 : (TARGET_AVX512F && GET_MODE_NUNITS (V4SImode) >= 8
26806 : && ix86_pre_reload_split ()) &&
26807 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26808 : (TARGET_AVX512VL)) &&
26809 : #line 4758 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26810 : ( 1)))
26811 : return NULL;
26812 : return gen_split_1447 (insn, operands);
26813 :
26814 : case 2:
26815 : if (!(
26816 : #line 4755 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26817 : (TARGET_AVX512F && GET_MODE_NUNITS (V8DImode) >= 8
26818 : && ix86_pre_reload_split ()) &&
26819 : #line 4758 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26820 : ( 1)))
26821 : return NULL;
26822 : return gen_split_1448 (insn, operands);
26823 :
26824 : case 3:
26825 : if (!((
26826 : #line 4755 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26827 : (TARGET_AVX512F && GET_MODE_NUNITS (V4DImode) >= 8
26828 : && ix86_pre_reload_split ()) &&
26829 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26830 : (TARGET_AVX512VL)) &&
26831 : #line 4758 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26832 : ( 1)))
26833 : return NULL;
26834 : return gen_split_1449 (insn, operands);
26835 :
26836 : case 4:
26837 : if (!((
26838 : #line 4755 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26839 : (TARGET_AVX512F && GET_MODE_NUNITS (V2DImode) >= 8
26840 : && ix86_pre_reload_split ()) &&
26841 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26842 : (TARGET_AVX512VL)) &&
26843 : #line 4758 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26844 : ( 1)))
26845 : return NULL;
26846 : return gen_split_1450 (insn, operands);
26847 :
26848 : case 5:
26849 : if (!((
26850 : #line 4755 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26851 : (TARGET_AVX512F && GET_MODE_NUNITS (V8HFmode) >= 8
26852 : && ix86_pre_reload_split ()) &&
26853 : #line 322 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26854 : (TARGET_AVX512FP16 && TARGET_AVX512VL)) &&
26855 : #line 4758 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26856 : ( 1)))
26857 : return NULL;
26858 : return gen_split_1453 (insn, operands);
26859 :
26860 : case 6:
26861 : if (!((
26862 : #line 4755 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26863 : (TARGET_AVX512F && GET_MODE_NUNITS (V8SFmode) >= 8
26864 : && ix86_pre_reload_split ()) &&
26865 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26866 : (TARGET_AVX512VL)) &&
26867 : #line 4758 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26868 : ( 1)))
26869 : return NULL;
26870 : return gen_split_1455 (insn, operands);
26871 :
26872 : case 7:
26873 : if (!((
26874 : #line 4755 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26875 : (TARGET_AVX512F && GET_MODE_NUNITS (V4SFmode) >= 8
26876 : && ix86_pre_reload_split ()) &&
26877 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26878 : (TARGET_AVX512VL)) &&
26879 : #line 4758 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26880 : ( 1)))
26881 : return NULL;
26882 : return gen_split_1456 (insn, operands);
26883 :
26884 : case 8:
26885 : if (!(
26886 : #line 4755 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26887 : (TARGET_AVX512F && GET_MODE_NUNITS (V8DFmode) >= 8
26888 : && ix86_pre_reload_split ()) &&
26889 : #line 4758 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26890 : ( 1)))
26891 : return NULL;
26892 : return gen_split_1457 (insn, operands);
26893 :
26894 : case 9:
26895 : if (!((
26896 : #line 4755 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26897 : (TARGET_AVX512F && GET_MODE_NUNITS (V4DFmode) >= 8
26898 : && ix86_pre_reload_split ()) &&
26899 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26900 : (TARGET_AVX512VL)) &&
26901 : #line 4758 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26902 : ( 1)))
26903 : return NULL;
26904 : return gen_split_1458 (insn, operands);
26905 :
26906 : case 10:
26907 : if (!((
26908 : #line 4755 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26909 : (TARGET_AVX512F && GET_MODE_NUNITS (V2DFmode) >= 8
26910 : && ix86_pre_reload_split ()) &&
26911 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26912 : (TARGET_AVX512VL)) &&
26913 : #line 4758 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26914 : ( 1)))
26915 : return NULL;
26916 : return gen_split_1459 (insn, operands);
26917 :
26918 : case 11:
26919 : if (!((
26920 : #line 4950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26921 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
26922 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26923 : (TARGET_AVX512VL)) &&
26924 : #line 4952 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26925 : ( 1)))
26926 : return NULL;
26927 : return gen_split_1488 (insn, operands);
26928 :
26929 : default:
26930 : return NULL;
26931 : }
26932 :
26933 : case E_SImode:
26934 : switch (pattern995 (x3))
26935 : {
26936 : case 0:
26937 : if (!((
26938 : #line 4755 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26939 : (TARGET_AVX512F && GET_MODE_NUNITS (V32HFmode) >= 8
26940 : && ix86_pre_reload_split ()) &&
26941 : #line 320 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26942 : (TARGET_AVX512FP16)) &&
26943 : #line 4758 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26944 : ( 1)))
26945 : return NULL;
26946 : return gen_split_1451 (insn, operands);
26947 :
26948 : case 1:
26949 : if (!((
26950 : #line 4950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26951 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
26952 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26953 : (TARGET_AVX512VL)) &&
26954 : #line 4952 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26955 : ( 1)))
26956 : return NULL;
26957 : return gen_split_1482 (insn, operands);
26958 :
26959 : case 2:
26960 : if (!(
26961 : #line 4950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26962 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
26963 : #line 4952 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26964 : ( 1)))
26965 : return NULL;
26966 : return gen_split_1484 (insn, operands);
26967 :
26968 : default:
26969 : return NULL;
26970 : }
26971 :
26972 : case E_DImode:
26973 : if (pattern996 (x3) != 0
26974 : || !(
26975 : #line 4950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26976 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
26977 : #line 4952 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26978 : ( 1)))
26979 : return NULL;
26980 : return gen_split_1478 (insn, operands);
26981 :
26982 : default:
26983 : return NULL;
26984 : }
26985 :
26986 : case 158:
26987 : if (!const_0_to_7_operand (operands[3], E_SImode))
26988 : return NULL;
26989 : switch (GET_MODE (operands[0]))
26990 : {
26991 : case E_DImode:
26992 : if (pattern1105 (x3,
26993 : E_V64QImode,
26994 : E_DImode) != 0
26995 : || !(
26996 : #line 4950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26997 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
26998 : #line 4952 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26999 : ( 1)))
27000 : return NULL;
27001 : return gen_split_1479 (insn, operands);
27002 :
27003 : case E_HImode:
27004 : switch (pattern1091 (x3))
27005 : {
27006 : case 0:
27007 : if (!((
27008 : #line 4950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27009 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
27010 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27011 : (TARGET_AVX512VL)) &&
27012 : #line 4952 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27013 : ( 1)))
27014 : return NULL;
27015 : return gen_split_1481 (insn, operands);
27016 :
27017 : case 1:
27018 : if (!((
27019 : #line 4950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27020 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
27021 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27022 : (TARGET_AVX512VL)) &&
27023 : #line 4952 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27024 : ( 1)))
27025 : return NULL;
27026 : return gen_split_1487 (insn, operands);
27027 :
27028 : case 2:
27029 : if (!(
27030 : #line 5165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27031 : (TARGET_AVX512F && ix86_pre_reload_split ()
27032 : && GET_MODE_NUNITS (V16SImode) >= 8) &&
27033 : #line 5168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27034 : ( 1)))
27035 : return NULL;
27036 : return gen_split_1550 (insn, operands);
27037 :
27038 : default:
27039 : return NULL;
27040 : }
27041 :
27042 : case E_SImode:
27043 : switch (pattern1106 (x3))
27044 : {
27045 : case 0:
27046 : if (!((
27047 : #line 4950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27048 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
27049 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27050 : (TARGET_AVX512VL)) &&
27051 : #line 4952 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27052 : ( 1)))
27053 : return NULL;
27054 : return gen_split_1483 (insn, operands);
27055 :
27056 : case 1:
27057 : if (!(
27058 : #line 4950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27059 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
27060 : #line 4952 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27061 : ( 1)))
27062 : return NULL;
27063 : return gen_split_1485 (insn, operands);
27064 :
27065 : default:
27066 : return NULL;
27067 : }
27068 :
27069 : case E_QImode:
27070 : switch (pattern1092 (x3))
27071 : {
27072 : case 0:
27073 : if (!((
27074 : #line 4950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27075 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
27076 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27077 : (TARGET_AVX512VL)) &&
27078 : #line 4952 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27079 : ( 1)))
27080 : return NULL;
27081 : return gen_split_1489 (insn, operands);
27082 :
27083 : case 1:
27084 : if (!((
27085 : #line 5165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27086 : (TARGET_AVX512F && ix86_pre_reload_split ()
27087 : && GET_MODE_NUNITS (V8SImode) >= 8) &&
27088 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27089 : (TARGET_AVX512VL)) &&
27090 : #line 5168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27091 : ( 1)))
27092 : return NULL;
27093 : return gen_split_1551 (insn, operands);
27094 :
27095 : case 2:
27096 : if (!((
27097 : #line 5165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27098 : (TARGET_AVX512F && ix86_pre_reload_split ()
27099 : && GET_MODE_NUNITS (V4SImode) >= 8) &&
27100 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27101 : (TARGET_AVX512VL)) &&
27102 : #line 5168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27103 : ( 1)))
27104 : return NULL;
27105 : return gen_split_1552 (insn, operands);
27106 :
27107 : case 3:
27108 : if (!(
27109 : #line 5165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27110 : (TARGET_AVX512F && ix86_pre_reload_split ()
27111 : && GET_MODE_NUNITS (V8DImode) >= 8) &&
27112 : #line 5168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27113 : ( 1)))
27114 : return NULL;
27115 : return gen_split_1553 (insn, operands);
27116 :
27117 : case 4:
27118 : if (!((
27119 : #line 5165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27120 : (TARGET_AVX512F && ix86_pre_reload_split ()
27121 : && GET_MODE_NUNITS (V4DImode) >= 8) &&
27122 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27123 : (TARGET_AVX512VL)) &&
27124 : #line 5168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27125 : ( 1)))
27126 : return NULL;
27127 : return gen_split_1554 (insn, operands);
27128 :
27129 : case 5:
27130 : if (!((
27131 : #line 5165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27132 : (TARGET_AVX512F && ix86_pre_reload_split ()
27133 : && GET_MODE_NUNITS (V2DImode) >= 8) &&
27134 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27135 : (TARGET_AVX512VL)) &&
27136 : #line 5168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27137 : ( 1)))
27138 : return NULL;
27139 : return gen_split_1555 (insn, operands);
27140 :
27141 : default:
27142 : return NULL;
27143 : }
27144 :
27145 : default:
27146 : return NULL;
27147 : }
27148 :
27149 : default:
27150 : return NULL;
27151 : }
27152 :
27153 : default:
27154 : return NULL;
27155 : }
27156 : }
27157 :
27158 : rtx_insn *
27159 : split_61 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
27160 : {
27161 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
27162 : rtx x2, x3;
27163 : rtx_insn *res ATTRIBUTE_UNUSED;
27164 : x2 = XEXP (x1, 1);
27165 : x3 = XEXP (x2, 0);
27166 : switch (GET_CODE (x3))
27167 : {
27168 : case REG:
27169 : case SUBREG:
27170 : case MEM:
27171 : res = split_59 (x1, insn);
27172 : if (res != NULL_RTX)
27173 : return res;
27174 : break;
27175 :
27176 : case CONST_INT:
27177 : case CONST_DOUBLE:
27178 : case CONST_VECTOR:
27179 : switch (pattern322 (x2))
27180 : {
27181 : case 0:
27182 : res = split_60 (x1, insn);
27183 : if (res != NULL_RTX)
27184 : return res;
27185 : break;
27186 :
27187 : case 1:
27188 : if (vector_all_ones_operand (operands[1], E_V16QImode)
27189 : && const0_operand (operands[2], E_V16QImode)
27190 : && (
27191 : #line 18587 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27192 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27193 : && (INTVAL (operands[5]) == 2 || INTVAL (operands[5]) == 5)) &&
27194 : #line 18590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27195 : ( 1)))
27196 : return gen_split_3409 (insn, operands);
27197 : if (const0_operand (operands[1], E_V16QImode)
27198 : && vector_all_ones_operand (operands[2], E_V16QImode)
27199 : && (
27200 : #line 18645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27201 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27202 : /* NE is commutative. */
27203 : && INTVAL (operands[5]) == 4) &&
27204 : #line 18650 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27205 : ( 1)))
27206 : return gen_split_3432 (insn, operands);
27207 : break;
27208 :
27209 : case 2:
27210 : if (vector_all_ones_operand (operands[1], E_V8HImode)
27211 : && const0_operand (operands[2], E_V8HImode)
27212 : && (
27213 : #line 18587 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27214 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27215 : && (INTVAL (operands[5]) == 2 || INTVAL (operands[5]) == 5)) &&
27216 : #line 18590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27217 : ( 1)))
27218 : return gen_split_3411 (insn, operands);
27219 : if (const0_operand (operands[1], E_V8HImode)
27220 : && vector_all_ones_operand (operands[2], E_V8HImode)
27221 : && (
27222 : #line 18645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27223 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27224 : /* NE is commutative. */
27225 : && INTVAL (operands[5]) == 4) &&
27226 : #line 18650 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27227 : ( 1)))
27228 : return gen_split_3433 (insn, operands);
27229 : break;
27230 :
27231 : case 3:
27232 : if (vector_all_ones_operand (operands[1], E_V4SImode)
27233 : && const0_operand (operands[2], E_V4SImode)
27234 : && (
27235 : #line 18587 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27236 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27237 : && (INTVAL (operands[5]) == 2 || INTVAL (operands[5]) == 5)) &&
27238 : #line 18590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27239 : ( 1)))
27240 : return gen_split_3413 (insn, operands);
27241 : if (const0_operand (operands[1], E_V4SImode)
27242 : && vector_all_ones_operand (operands[2], E_V4SImode)
27243 : && (
27244 : #line 18645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27245 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27246 : /* NE is commutative. */
27247 : && INTVAL (operands[5]) == 4) &&
27248 : #line 18650 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27249 : ( 1)))
27250 : return gen_split_3434 (insn, operands);
27251 : break;
27252 :
27253 : case 4:
27254 : if (vector_all_ones_operand (operands[1], E_V2DImode)
27255 : && const0_operand (operands[2], E_V2DImode)
27256 : && (
27257 : #line 18587 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27258 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27259 : && (INTVAL (operands[5]) == 2 || INTVAL (operands[5]) == 5)) &&
27260 : #line 18590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27261 : ( 1)))
27262 : return gen_split_3415 (insn, operands);
27263 : if (const0_operand (operands[1], E_V2DImode)
27264 : && vector_all_ones_operand (operands[2], E_V2DImode)
27265 : && (
27266 : #line 18645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27267 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27268 : /* NE is commutative. */
27269 : && INTVAL (operands[5]) == 4) &&
27270 : #line 18650 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27271 : ( 1)))
27272 : return gen_split_3435 (insn, operands);
27273 : break;
27274 :
27275 : case 5:
27276 : if (vector_all_ones_operand (operands[1], E_V32QImode)
27277 : && const0_operand (operands[2], E_V32QImode)
27278 : && (
27279 : #line 18587 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27280 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27281 : && (INTVAL (operands[5]) == 2 || INTVAL (operands[5]) == 5)) &&
27282 : #line 18590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27283 : ( 1)))
27284 : return gen_split_3417 (insn, operands);
27285 : if (const0_operand (operands[1], E_V32QImode)
27286 : && vector_all_ones_operand (operands[2], E_V32QImode)
27287 : && (
27288 : #line 18645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27289 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27290 : /* NE is commutative. */
27291 : && INTVAL (operands[5]) == 4) &&
27292 : #line 18650 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27293 : ( 1)))
27294 : return gen_split_3436 (insn, operands);
27295 : break;
27296 :
27297 : case 6:
27298 : if (vector_all_ones_operand (operands[1], E_V16HImode)
27299 : && const0_operand (operands[2], E_V16HImode)
27300 : && (
27301 : #line 18587 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27302 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27303 : && (INTVAL (operands[5]) == 2 || INTVAL (operands[5]) == 5)) &&
27304 : #line 18590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27305 : ( 1)))
27306 : return gen_split_3419 (insn, operands);
27307 : if (const0_operand (operands[1], E_V16HImode)
27308 : && vector_all_ones_operand (operands[2], E_V16HImode)
27309 : && (
27310 : #line 18645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27311 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27312 : /* NE is commutative. */
27313 : && INTVAL (operands[5]) == 4) &&
27314 : #line 18650 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27315 : ( 1)))
27316 : return gen_split_3437 (insn, operands);
27317 : break;
27318 :
27319 : case 7:
27320 : if (vector_all_ones_operand (operands[1], E_V8SImode)
27321 : && const0_operand (operands[2], E_V8SImode)
27322 : && (
27323 : #line 18587 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27324 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27325 : && (INTVAL (operands[5]) == 2 || INTVAL (operands[5]) == 5)) &&
27326 : #line 18590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27327 : ( 1)))
27328 : return gen_split_3421 (insn, operands);
27329 : if (const0_operand (operands[1], E_V8SImode)
27330 : && vector_all_ones_operand (operands[2], E_V8SImode)
27331 : && (
27332 : #line 18645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27333 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27334 : /* NE is commutative. */
27335 : && INTVAL (operands[5]) == 4) &&
27336 : #line 18650 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27337 : ( 1)))
27338 : return gen_split_3438 (insn, operands);
27339 : break;
27340 :
27341 : case 8:
27342 : if (vector_all_ones_operand (operands[1], E_V4DImode)
27343 : && const0_operand (operands[2], E_V4DImode)
27344 : && (
27345 : #line 18587 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27346 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27347 : && (INTVAL (operands[5]) == 2 || INTVAL (operands[5]) == 5)) &&
27348 : #line 18590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27349 : ( 1)))
27350 : return gen_split_3423 (insn, operands);
27351 : if (const0_operand (operands[1], E_V4DImode)
27352 : && vector_all_ones_operand (operands[2], E_V4DImode)
27353 : && (
27354 : #line 18645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27355 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27356 : /* NE is commutative. */
27357 : && INTVAL (operands[5]) == 4) &&
27358 : #line 18650 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27359 : ( 1)))
27360 : return gen_split_3439 (insn, operands);
27361 : break;
27362 :
27363 : case 9:
27364 : if (((
27365 : #line 4413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27366 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
27367 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27368 : (TARGET_AVX)) &&
27369 : #line 4415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27370 : ( 1)))
27371 : return gen_split_1376 (insn, operands);
27372 : break;
27373 :
27374 : case 10:
27375 : if ((
27376 : #line 18462 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27377 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27378 : /* NE is commutative. */
27379 : && ((INTVAL (operands[5]) == 4
27380 : && !(MEM_P (operands[3]) && MEM_P (operands[4])))
27381 : /* LE, 3 must be register. */
27382 : || (INTVAL (operands[5]) == 2
27383 : && !MEM_P (operands[3]))
27384 : /* NLT aka GE, 4 must be register and we swap operands. */
27385 : || (INTVAL (operands[5]) == 5
27386 : && !MEM_P (operands[4])))) &&
27387 : #line 18473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27388 : ( 1)))
27389 : return gen_split_3400 (insn, operands);
27390 : break;
27391 :
27392 : case 11:
27393 : if ((
27394 : #line 4413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27395 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
27396 : #line 4415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27397 : ( 1)))
27398 : return gen_split_1377 (insn, operands);
27399 : break;
27400 :
27401 : case 12:
27402 : if ((
27403 : #line 18462 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27404 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27405 : /* NE is commutative. */
27406 : && ((INTVAL (operands[5]) == 4
27407 : && !(MEM_P (operands[3]) && MEM_P (operands[4])))
27408 : /* LE, 3 must be register. */
27409 : || (INTVAL (operands[5]) == 2
27410 : && !MEM_P (operands[3]))
27411 : /* NLT aka GE, 4 must be register and we swap operands. */
27412 : || (INTVAL (operands[5]) == 5
27413 : && !MEM_P (operands[4])))) &&
27414 : #line 18473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27415 : ( 1)))
27416 : return gen_split_3396 (insn, operands);
27417 : break;
27418 :
27419 : case 13:
27420 : if (((
27421 : #line 4413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27422 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
27423 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27424 : (TARGET_AVX)) &&
27425 : #line 4415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27426 : ( 1)))
27427 : return gen_split_1378 (insn, operands);
27428 : break;
27429 :
27430 : case 14:
27431 : if ((
27432 : #line 18462 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27433 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27434 : /* NE is commutative. */
27435 : && ((INTVAL (operands[5]) == 4
27436 : && !(MEM_P (operands[3]) && MEM_P (operands[4])))
27437 : /* LE, 3 must be register. */
27438 : || (INTVAL (operands[5]) == 2
27439 : && !MEM_P (operands[3]))
27440 : /* NLT aka GE, 4 must be register and we swap operands. */
27441 : || (INTVAL (operands[5]) == 5
27442 : && !MEM_P (operands[4])))) &&
27443 : #line 18473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27444 : ( 1)))
27445 : return gen_split_3401 (insn, operands);
27446 : break;
27447 :
27448 : case 15:
27449 : if (((
27450 : #line 4413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27451 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
27452 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27453 : (TARGET_SSE2)) &&
27454 : #line 4415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27455 : ( 1)))
27456 : return gen_split_1379 (insn, operands);
27457 : break;
27458 :
27459 : case 16:
27460 : if ((
27461 : #line 18462 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27462 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27463 : /* NE is commutative. */
27464 : && ((INTVAL (operands[5]) == 4
27465 : && !(MEM_P (operands[3]) && MEM_P (operands[4])))
27466 : /* LE, 3 must be register. */
27467 : || (INTVAL (operands[5]) == 2
27468 : && !MEM_P (operands[3]))
27469 : /* NLT aka GE, 4 must be register and we swap operands. */
27470 : || (INTVAL (operands[5]) == 5
27471 : && !MEM_P (operands[4])))) &&
27472 : #line 18473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27473 : ( 1)))
27474 : return gen_split_3397 (insn, operands);
27475 : break;
27476 :
27477 : case 17:
27478 : if ((
27479 : #line 18462 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27480 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27481 : /* NE is commutative. */
27482 : && ((INTVAL (operands[5]) == 4
27483 : && !(MEM_P (operands[3]) && MEM_P (operands[4])))
27484 : /* LE, 3 must be register. */
27485 : || (INTVAL (operands[5]) == 2
27486 : && !MEM_P (operands[3]))
27487 : /* NLT aka GE, 4 must be register and we swap operands. */
27488 : || (INTVAL (operands[5]) == 5
27489 : && !MEM_P (operands[4])))) &&
27490 : #line 18473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27491 : ( 1)))
27492 : return gen_split_3394 (insn, operands);
27493 : break;
27494 :
27495 : case 18:
27496 : if ((
27497 : #line 18462 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27498 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27499 : /* NE is commutative. */
27500 : && ((INTVAL (operands[5]) == 4
27501 : && !(MEM_P (operands[3]) && MEM_P (operands[4])))
27502 : /* LE, 3 must be register. */
27503 : || (INTVAL (operands[5]) == 2
27504 : && !MEM_P (operands[3]))
27505 : /* NLT aka GE, 4 must be register and we swap operands. */
27506 : || (INTVAL (operands[5]) == 5
27507 : && !MEM_P (operands[4])))) &&
27508 : #line 18473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27509 : ( 1)))
27510 : return gen_split_3395 (insn, operands);
27511 : break;
27512 :
27513 : case 19:
27514 : if ((
27515 : #line 18462 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27516 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27517 : /* NE is commutative. */
27518 : && ((INTVAL (operands[5]) == 4
27519 : && !(MEM_P (operands[3]) && MEM_P (operands[4])))
27520 : /* LE, 3 must be register. */
27521 : || (INTVAL (operands[5]) == 2
27522 : && !MEM_P (operands[3]))
27523 : /* NLT aka GE, 4 must be register and we swap operands. */
27524 : || (INTVAL (operands[5]) == 5
27525 : && !MEM_P (operands[4])))) &&
27526 : #line 18473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27527 : ( 1)))
27528 : return gen_split_3398 (insn, operands);
27529 : break;
27530 :
27531 : case 20:
27532 : if ((
27533 : #line 18462 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27534 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27535 : /* NE is commutative. */
27536 : && ((INTVAL (operands[5]) == 4
27537 : && !(MEM_P (operands[3]) && MEM_P (operands[4])))
27538 : /* LE, 3 must be register. */
27539 : || (INTVAL (operands[5]) == 2
27540 : && !MEM_P (operands[3]))
27541 : /* NLT aka GE, 4 must be register and we swap operands. */
27542 : || (INTVAL (operands[5]) == 5
27543 : && !MEM_P (operands[4])))) &&
27544 : #line 18473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27545 : ( 1)))
27546 : return gen_split_3399 (insn, operands);
27547 : break;
27548 :
27549 : case 21:
27550 : switch (GET_MODE (operands[0]))
27551 : {
27552 : case E_V16SImode:
27553 : if (register_operand (operands[0], E_V16SImode)
27554 : && GET_MODE (x2) == E_V16SImode
27555 : && register_operand (operands[1], E_HImode))
27556 : {
27557 : if (vector_all_ones_operand (operands[2], E_V16SImode)
27558 : && const0_operand (operands[3], E_V16SImode)
27559 : && (
27560 : #line 10704 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27561 : (TARGET_AVX512F) &&
27562 : #line 10708 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27563 : ( !TARGET_AVX512DQ && reload_completed
27564 : && optimize_function_for_speed_p (cfun))))
27565 : return gen_split_1602 (insn, operands);
27566 : if (const0_operand (operands[2], E_V16SImode)
27567 : && vector_all_ones_operand (operands[3], E_V16SImode)
27568 : && (
27569 : #line 10730 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27570 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
27571 : #line 10732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27572 : ( 1)))
27573 : return gen_split_1614 (insn, operands);
27574 : }
27575 : break;
27576 :
27577 : case E_V8SImode:
27578 : if (register_operand (operands[0], E_V8SImode)
27579 : && GET_MODE (x2) == E_V8SImode
27580 : && register_operand (operands[1], E_QImode))
27581 : {
27582 : if (vector_all_ones_operand (operands[2], E_V8SImode)
27583 : && const0_operand (operands[3], E_V8SImode)
27584 : && ((
27585 : #line 10704 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27586 : (TARGET_AVX512F) &&
27587 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27588 : (TARGET_AVX512VL)) &&
27589 : #line 10708 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27590 : ( !TARGET_AVX512DQ && reload_completed
27591 : && optimize_function_for_speed_p (cfun))))
27592 : return gen_split_1603 (insn, operands);
27593 : if (const0_operand (operands[2], E_V8SImode)
27594 : && vector_all_ones_operand (operands[3], E_V8SImode)
27595 : && ((
27596 : #line 10730 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27597 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
27598 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27599 : (TARGET_AVX512VL)) &&
27600 : #line 10732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27601 : ( 1)))
27602 : return gen_split_1615 (insn, operands);
27603 : }
27604 : break;
27605 :
27606 : case E_V4SImode:
27607 : if (register_operand (operands[0], E_V4SImode)
27608 : && GET_MODE (x2) == E_V4SImode
27609 : && register_operand (operands[1], E_QImode))
27610 : {
27611 : if (vector_all_ones_operand (operands[2], E_V4SImode)
27612 : && const0_operand (operands[3], E_V4SImode)
27613 : && ((
27614 : #line 10704 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27615 : (TARGET_AVX512F) &&
27616 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27617 : (TARGET_AVX512VL)) &&
27618 : #line 10708 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27619 : ( !TARGET_AVX512DQ && reload_completed
27620 : && optimize_function_for_speed_p (cfun))))
27621 : return gen_split_1604 (insn, operands);
27622 : if (const0_operand (operands[2], E_V4SImode)
27623 : && vector_all_ones_operand (operands[3], E_V4SImode)
27624 : && ((
27625 : #line 10730 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27626 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
27627 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27628 : (TARGET_AVX512VL)) &&
27629 : #line 10732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27630 : ( 1)))
27631 : return gen_split_1616 (insn, operands);
27632 : }
27633 : break;
27634 :
27635 : case E_V8DImode:
27636 : if (register_operand (operands[0], E_V8DImode)
27637 : && GET_MODE (x2) == E_V8DImode
27638 : && register_operand (operands[1], E_QImode))
27639 : {
27640 : if (vector_all_ones_operand (operands[2], E_V8DImode)
27641 : && const0_operand (operands[3], E_V8DImode)
27642 : && (
27643 : #line 10704 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27644 : (TARGET_AVX512F) &&
27645 : #line 10708 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27646 : ( !TARGET_AVX512DQ && reload_completed
27647 : && optimize_function_for_speed_p (cfun))))
27648 : return gen_split_1605 (insn, operands);
27649 : if (const0_operand (operands[2], E_V8DImode)
27650 : && vector_all_ones_operand (operands[3], E_V8DImode)
27651 : && (
27652 : #line 10730 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27653 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
27654 : #line 10732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27655 : ( 1)))
27656 : return gen_split_1617 (insn, operands);
27657 : }
27658 : break;
27659 :
27660 : case E_V4DImode:
27661 : if (register_operand (operands[0], E_V4DImode)
27662 : && GET_MODE (x2) == E_V4DImode
27663 : && register_operand (operands[1], E_QImode))
27664 : {
27665 : if (vector_all_ones_operand (operands[2], E_V4DImode)
27666 : && const0_operand (operands[3], E_V4DImode)
27667 : && ((
27668 : #line 10704 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27669 : (TARGET_AVX512F) &&
27670 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27671 : (TARGET_AVX512VL)) &&
27672 : #line 10708 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27673 : ( !TARGET_AVX512DQ && reload_completed
27674 : && optimize_function_for_speed_p (cfun))))
27675 : return gen_split_1606 (insn, operands);
27676 : if (const0_operand (operands[2], E_V4DImode)
27677 : && vector_all_ones_operand (operands[3], E_V4DImode)
27678 : && ((
27679 : #line 10730 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27680 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
27681 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27682 : (TARGET_AVX512VL)) &&
27683 : #line 10732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27684 : ( 1)))
27685 : return gen_split_1618 (insn, operands);
27686 : }
27687 : break;
27688 :
27689 : case E_V2DImode:
27690 : if (register_operand (operands[0], E_V2DImode)
27691 : && GET_MODE (x2) == E_V2DImode
27692 : && register_operand (operands[1], E_QImode))
27693 : {
27694 : if (vector_all_ones_operand (operands[2], E_V2DImode)
27695 : && const0_operand (operands[3], E_V2DImode)
27696 : && ((
27697 : #line 10704 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27698 : (TARGET_AVX512F) &&
27699 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27700 : (TARGET_AVX512VL)) &&
27701 : #line 10708 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27702 : ( !TARGET_AVX512DQ && reload_completed
27703 : && optimize_function_for_speed_p (cfun))))
27704 : return gen_split_1607 (insn, operands);
27705 : if (const0_operand (operands[2], E_V2DImode)
27706 : && vector_all_ones_operand (operands[3], E_V2DImode)
27707 : && ((
27708 : #line 10730 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27709 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
27710 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27711 : (TARGET_AVX512VL)) &&
27712 : #line 10732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27713 : ( 1)))
27714 : return gen_split_1619 (insn, operands);
27715 : }
27716 : break;
27717 :
27718 : case E_V64QImode:
27719 : if (pattern1197 (x2,
27720 : E_DImode,
27721 : E_V64QImode) == 0
27722 : && ((
27723 : #line 10730 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27724 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
27725 : #line 500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27726 : (TARGET_AVX512BW)) &&
27727 : #line 10732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27728 : ( 1)))
27729 : return gen_split_1608 (insn, operands);
27730 : break;
27731 :
27732 : case E_V32QImode:
27733 : if (pattern1197 (x2,
27734 : E_SImode,
27735 : E_V32QImode) == 0
27736 : && ((
27737 : #line 10730 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27738 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
27739 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27740 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
27741 : #line 10732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27742 : ( 1)))
27743 : return gen_split_1609 (insn, operands);
27744 : break;
27745 :
27746 : case E_V16QImode:
27747 : if (pattern1197 (x2,
27748 : E_HImode,
27749 : E_V16QImode) == 0
27750 : && ((
27751 : #line 10730 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27752 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
27753 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27754 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
27755 : #line 10732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27756 : ( 1)))
27757 : return gen_split_1610 (insn, operands);
27758 : break;
27759 :
27760 : case E_V32HImode:
27761 : if (pattern1197 (x2,
27762 : E_SImode,
27763 : E_V32HImode) == 0
27764 : && ((
27765 : #line 10730 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27766 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
27767 : #line 503 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27768 : (TARGET_AVX512BW)) &&
27769 : #line 10732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27770 : ( 1)))
27771 : return gen_split_1611 (insn, operands);
27772 : break;
27773 :
27774 : case E_V16HImode:
27775 : if (pattern1197 (x2,
27776 : E_HImode,
27777 : E_V16HImode) == 0
27778 : && ((
27779 : #line 10730 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27780 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
27781 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27782 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
27783 : #line 10732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27784 : ( 1)))
27785 : return gen_split_1612 (insn, operands);
27786 : break;
27787 :
27788 : case E_V8HImode:
27789 : if (pattern1197 (x2,
27790 : E_QImode,
27791 : E_V8HImode) == 0
27792 : && ((
27793 : #line 10730 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27794 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
27795 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27796 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
27797 : #line 10732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27798 : ( 1)))
27799 : return gen_split_1613 (insn, operands);
27800 : break;
27801 :
27802 : default:
27803 : break;
27804 : }
27805 : break;
27806 :
27807 : default:
27808 : break;
27809 : }
27810 : break;
27811 :
27812 : default:
27813 : break;
27814 : }
27815 : operands[1] = x3;
27816 : switch (pattern325 (x2))
27817 : {
27818 : case 0:
27819 : if (!((
27820 : #line 4440 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27821 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
27822 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27823 : (TARGET_AVX)) &&
27824 : #line 4442 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27825 : ( 1)))
27826 : return NULL;
27827 : return gen_split_1380 (insn, operands);
27828 :
27829 : case 1:
27830 : if (!(
27831 : #line 4440 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27832 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
27833 : #line 4442 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27834 : ( 1)))
27835 : return NULL;
27836 : return gen_split_1381 (insn, operands);
27837 :
27838 : case 2:
27839 : if (!((
27840 : #line 4440 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27841 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
27842 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27843 : (TARGET_AVX)) &&
27844 : #line 4442 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27845 : ( 1)))
27846 : return NULL;
27847 : return gen_split_1382 (insn, operands);
27848 :
27849 : case 3:
27850 : if (!((
27851 : #line 4440 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27852 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
27853 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27854 : (TARGET_SSE2)) &&
27855 : #line 4442 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27856 : ( 1)))
27857 : return NULL;
27858 : return gen_split_1383 (insn, operands);
27859 :
27860 : case 4:
27861 : if (!((
27862 : #line 4461 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27863 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
27864 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27865 : (TARGET_AVX)) &&
27866 : #line 4463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27867 : ( 1)))
27868 : return NULL;
27869 : return gen_split_1384 (insn, operands);
27870 :
27871 : case 5:
27872 : if (!(
27873 : #line 4461 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27874 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
27875 : #line 4463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27876 : ( 1)))
27877 : return NULL;
27878 : return gen_split_1385 (insn, operands);
27879 :
27880 : case 6:
27881 : if (!((
27882 : #line 4461 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27883 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
27884 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27885 : (TARGET_AVX)) &&
27886 : #line 4463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27887 : ( 1)))
27888 : return NULL;
27889 : return gen_split_1386 (insn, operands);
27890 :
27891 : case 7:
27892 : if (!((
27893 : #line 4461 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27894 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
27895 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27896 : (TARGET_SSE2)) &&
27897 : #line 4463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27898 : ( 1)))
27899 : return NULL;
27900 : return gen_split_1387 (insn, operands);
27901 :
27902 : default:
27903 : return NULL;
27904 : }
27905 : }
27906 :
27907 : rtx_insn *
27908 : split_70 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
27909 : {
27910 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
27911 : rtx x2, x3, x4, x5, x6, x7, x8;
27912 : rtx_insn *res ATTRIBUTE_UNUSED;
27913 : x2 = XEXP (x1, 1);
27914 : x3 = XEXP (x2, 0);
27915 : x4 = XEXP (x3, 0);
27916 : switch (GET_CODE (x4))
27917 : {
27918 : case REG:
27919 : case SUBREG:
27920 : case MEM:
27921 : case NOT:
27922 : switch (pattern543 (x2))
27923 : {
27924 : case 0:
27925 : if (!((
27926 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27927 : ((64 == 64 || TARGET_AVX512VL
27928 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27929 : && ix86_pre_reload_split ()
27930 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27931 : STRIP_UNARY (operands[4]))
27932 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27933 : STRIP_UNARY (operands[4]))
27934 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27935 : STRIP_UNARY (operands[3]))
27936 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27937 : STRIP_UNARY (operands[3])))) &&
27938 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27939 : (TARGET_AVX512F)) &&
27940 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27941 : ( 1)))
27942 : return NULL;
27943 : return gen_split_2065 (insn, operands);
27944 :
27945 : case 1:
27946 : if (!((
27947 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27948 : ((32 == 64 || TARGET_AVX512VL
27949 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27950 : && ix86_pre_reload_split ()
27951 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27952 : STRIP_UNARY (operands[4]))
27953 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27954 : STRIP_UNARY (operands[4]))
27955 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27956 : STRIP_UNARY (operands[3]))
27957 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27958 : STRIP_UNARY (operands[3])))) &&
27959 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27960 : (TARGET_AVX)) &&
27961 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27962 : ( 1)))
27963 : return NULL;
27964 : return gen_split_2092 (insn, operands);
27965 :
27966 : case 2:
27967 : if (!(
27968 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27969 : ((16 == 64 || TARGET_AVX512VL
27970 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27971 : && ix86_pre_reload_split ()
27972 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27973 : STRIP_UNARY (operands[4]))
27974 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27975 : STRIP_UNARY (operands[4]))
27976 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27977 : STRIP_UNARY (operands[3]))
27978 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27979 : STRIP_UNARY (operands[3])))) &&
27980 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27981 : ( 1)))
27982 : return NULL;
27983 : return gen_split_2119 (insn, operands);
27984 :
27985 : case 3:
27986 : if (!((
27987 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27988 : ((64 == 64 || TARGET_AVX512VL
27989 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27990 : && ix86_pre_reload_split ()
27991 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27992 : STRIP_UNARY (operands[4]))
27993 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27994 : STRIP_UNARY (operands[4]))
27995 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27996 : STRIP_UNARY (operands[3]))
27997 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27998 : STRIP_UNARY (operands[3])))) &&
27999 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28000 : (TARGET_AVX512F)) &&
28001 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28002 : ( 1)))
28003 : return NULL;
28004 : return gen_split_2146 (insn, operands);
28005 :
28006 : case 4:
28007 : if (!((
28008 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28009 : ((32 == 64 || TARGET_AVX512VL
28010 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28011 : && ix86_pre_reload_split ()
28012 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28013 : STRIP_UNARY (operands[4]))
28014 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28015 : STRIP_UNARY (operands[4]))
28016 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28017 : STRIP_UNARY (operands[3]))
28018 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28019 : STRIP_UNARY (operands[3])))) &&
28020 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28021 : (TARGET_AVX)) &&
28022 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28023 : ( 1)))
28024 : return NULL;
28025 : return gen_split_2173 (insn, operands);
28026 :
28027 : case 5:
28028 : if (!(
28029 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28030 : ((16 == 64 || TARGET_AVX512VL
28031 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28032 : && ix86_pre_reload_split ()
28033 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28034 : STRIP_UNARY (operands[4]))
28035 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28036 : STRIP_UNARY (operands[4]))
28037 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28038 : STRIP_UNARY (operands[3]))
28039 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28040 : STRIP_UNARY (operands[3])))) &&
28041 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28042 : ( 1)))
28043 : return NULL;
28044 : return gen_split_2200 (insn, operands);
28045 :
28046 : case 6:
28047 : if (!((
28048 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28049 : ((64 == 64 || TARGET_AVX512VL
28050 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28051 : && ix86_pre_reload_split ()
28052 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28053 : STRIP_UNARY (operands[4]))
28054 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28055 : STRIP_UNARY (operands[4]))
28056 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28057 : STRIP_UNARY (operands[3]))
28058 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28059 : STRIP_UNARY (operands[3])))) &&
28060 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28061 : (TARGET_AVX512F)) &&
28062 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28063 : ( 1)))
28064 : return NULL;
28065 : return gen_split_2227 (insn, operands);
28066 :
28067 : case 7:
28068 : if (!((
28069 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28070 : ((32 == 64 || TARGET_AVX512VL
28071 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28072 : && ix86_pre_reload_split ()
28073 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28074 : STRIP_UNARY (operands[4]))
28075 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28076 : STRIP_UNARY (operands[4]))
28077 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28078 : STRIP_UNARY (operands[3]))
28079 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28080 : STRIP_UNARY (operands[3])))) &&
28081 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28082 : (TARGET_AVX)) &&
28083 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28084 : ( 1)))
28085 : return NULL;
28086 : return gen_split_2254 (insn, operands);
28087 :
28088 : case 8:
28089 : if (!(
28090 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28091 : ((16 == 64 || TARGET_AVX512VL
28092 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28093 : && ix86_pre_reload_split ()
28094 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28095 : STRIP_UNARY (operands[4]))
28096 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28097 : STRIP_UNARY (operands[4]))
28098 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28099 : STRIP_UNARY (operands[3]))
28100 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28101 : STRIP_UNARY (operands[3])))) &&
28102 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28103 : ( 1)))
28104 : return NULL;
28105 : return gen_split_2281 (insn, operands);
28106 :
28107 : case 9:
28108 : if (!((
28109 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28110 : ((64 == 64 || TARGET_AVX512VL
28111 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28112 : && ix86_pre_reload_split ()
28113 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28114 : STRIP_UNARY (operands[4]))
28115 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28116 : STRIP_UNARY (operands[4]))
28117 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28118 : STRIP_UNARY (operands[3]))
28119 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28120 : STRIP_UNARY (operands[3])))) &&
28121 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28122 : (TARGET_AVX512F)) &&
28123 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28124 : ( 1)))
28125 : return NULL;
28126 : return gen_split_2308 (insn, operands);
28127 :
28128 : case 10:
28129 : if (!((
28130 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28131 : ((32 == 64 || TARGET_AVX512VL
28132 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28133 : && ix86_pre_reload_split ()
28134 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28135 : STRIP_UNARY (operands[4]))
28136 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28137 : STRIP_UNARY (operands[4]))
28138 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28139 : STRIP_UNARY (operands[3]))
28140 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28141 : STRIP_UNARY (operands[3])))) &&
28142 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28143 : (TARGET_AVX)) &&
28144 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28145 : ( 1)))
28146 : return NULL;
28147 : return gen_split_2335 (insn, operands);
28148 :
28149 : case 11:
28150 : if (!((
28151 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28152 : ((16 == 64 || TARGET_AVX512VL
28153 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28154 : && ix86_pre_reload_split ()
28155 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28156 : STRIP_UNARY (operands[4]))
28157 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28158 : STRIP_UNARY (operands[4]))
28159 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28160 : STRIP_UNARY (operands[3]))
28161 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28162 : STRIP_UNARY (operands[3])))) &&
28163 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28164 : (TARGET_SSE2)) &&
28165 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28166 : ( 1)))
28167 : return NULL;
28168 : return gen_split_2362 (insn, operands);
28169 :
28170 : case 12:
28171 : if (!((
28172 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28173 : ((64 == 64 || TARGET_AVX512VL
28174 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28175 : && ix86_pre_reload_split ()
28176 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28177 : STRIP_UNARY (operands[4]))
28178 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28179 : STRIP_UNARY (operands[4]))
28180 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28181 : STRIP_UNARY (operands[3]))
28182 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28183 : STRIP_UNARY (operands[3])))) &&
28184 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28185 : (TARGET_AVX512F)) &&
28186 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28187 : ( 1)))
28188 : return NULL;
28189 : return gen_split_2068 (insn, operands);
28190 :
28191 : case 13:
28192 : if (!((
28193 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28194 : ((32 == 64 || TARGET_AVX512VL
28195 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28196 : && ix86_pre_reload_split ()
28197 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28198 : STRIP_UNARY (operands[4]))
28199 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28200 : STRIP_UNARY (operands[4]))
28201 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28202 : STRIP_UNARY (operands[3]))
28203 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28204 : STRIP_UNARY (operands[3])))) &&
28205 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28206 : (TARGET_AVX)) &&
28207 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28208 : ( 1)))
28209 : return NULL;
28210 : return gen_split_2095 (insn, operands);
28211 :
28212 : case 14:
28213 : if (!(
28214 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28215 : ((16 == 64 || TARGET_AVX512VL
28216 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28217 : && ix86_pre_reload_split ()
28218 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28219 : STRIP_UNARY (operands[4]))
28220 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28221 : STRIP_UNARY (operands[4]))
28222 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28223 : STRIP_UNARY (operands[3]))
28224 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28225 : STRIP_UNARY (operands[3])))) &&
28226 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28227 : ( 1)))
28228 : return NULL;
28229 : return gen_split_2122 (insn, operands);
28230 :
28231 : case 15:
28232 : if (!((
28233 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28234 : ((64 == 64 || TARGET_AVX512VL
28235 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28236 : && ix86_pre_reload_split ()
28237 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28238 : STRIP_UNARY (operands[4]))
28239 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28240 : STRIP_UNARY (operands[4]))
28241 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28242 : STRIP_UNARY (operands[3]))
28243 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28244 : STRIP_UNARY (operands[3])))) &&
28245 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28246 : (TARGET_AVX512F)) &&
28247 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28248 : ( 1)))
28249 : return NULL;
28250 : return gen_split_2149 (insn, operands);
28251 :
28252 : case 16:
28253 : if (!((
28254 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28255 : ((32 == 64 || TARGET_AVX512VL
28256 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28257 : && ix86_pre_reload_split ()
28258 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28259 : STRIP_UNARY (operands[4]))
28260 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28261 : STRIP_UNARY (operands[4]))
28262 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28263 : STRIP_UNARY (operands[3]))
28264 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28265 : STRIP_UNARY (operands[3])))) &&
28266 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28267 : (TARGET_AVX)) &&
28268 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28269 : ( 1)))
28270 : return NULL;
28271 : return gen_split_2176 (insn, operands);
28272 :
28273 : case 17:
28274 : if (!(
28275 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28276 : ((16 == 64 || TARGET_AVX512VL
28277 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28278 : && ix86_pre_reload_split ()
28279 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28280 : STRIP_UNARY (operands[4]))
28281 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28282 : STRIP_UNARY (operands[4]))
28283 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28284 : STRIP_UNARY (operands[3]))
28285 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28286 : STRIP_UNARY (operands[3])))) &&
28287 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28288 : ( 1)))
28289 : return NULL;
28290 : return gen_split_2203 (insn, operands);
28291 :
28292 : case 18:
28293 : if (!((
28294 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28295 : ((64 == 64 || TARGET_AVX512VL
28296 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28297 : && ix86_pre_reload_split ()
28298 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28299 : STRIP_UNARY (operands[4]))
28300 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28301 : STRIP_UNARY (operands[4]))
28302 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28303 : STRIP_UNARY (operands[3]))
28304 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28305 : STRIP_UNARY (operands[3])))) &&
28306 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28307 : (TARGET_AVX512F)) &&
28308 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28309 : ( 1)))
28310 : return NULL;
28311 : return gen_split_2230 (insn, operands);
28312 :
28313 : case 19:
28314 : if (!((
28315 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28316 : ((32 == 64 || TARGET_AVX512VL
28317 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28318 : && ix86_pre_reload_split ()
28319 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28320 : STRIP_UNARY (operands[4]))
28321 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28322 : STRIP_UNARY (operands[4]))
28323 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28324 : STRIP_UNARY (operands[3]))
28325 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28326 : STRIP_UNARY (operands[3])))) &&
28327 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28328 : (TARGET_AVX)) &&
28329 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28330 : ( 1)))
28331 : return NULL;
28332 : return gen_split_2257 (insn, operands);
28333 :
28334 : case 20:
28335 : if (!(
28336 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28337 : ((16 == 64 || TARGET_AVX512VL
28338 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28339 : && ix86_pre_reload_split ()
28340 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28341 : STRIP_UNARY (operands[4]))
28342 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28343 : STRIP_UNARY (operands[4]))
28344 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28345 : STRIP_UNARY (operands[3]))
28346 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28347 : STRIP_UNARY (operands[3])))) &&
28348 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28349 : ( 1)))
28350 : return NULL;
28351 : return gen_split_2284 (insn, operands);
28352 :
28353 : case 21:
28354 : if (!((
28355 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28356 : ((64 == 64 || TARGET_AVX512VL
28357 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28358 : && ix86_pre_reload_split ()
28359 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28360 : STRIP_UNARY (operands[4]))
28361 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28362 : STRIP_UNARY (operands[4]))
28363 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28364 : STRIP_UNARY (operands[3]))
28365 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28366 : STRIP_UNARY (operands[3])))) &&
28367 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28368 : (TARGET_AVX512F)) &&
28369 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28370 : ( 1)))
28371 : return NULL;
28372 : return gen_split_2311 (insn, operands);
28373 :
28374 : case 22:
28375 : if (!((
28376 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28377 : ((32 == 64 || TARGET_AVX512VL
28378 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28379 : && ix86_pre_reload_split ()
28380 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28381 : STRIP_UNARY (operands[4]))
28382 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28383 : STRIP_UNARY (operands[4]))
28384 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28385 : STRIP_UNARY (operands[3]))
28386 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28387 : STRIP_UNARY (operands[3])))) &&
28388 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28389 : (TARGET_AVX)) &&
28390 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28391 : ( 1)))
28392 : return NULL;
28393 : return gen_split_2338 (insn, operands);
28394 :
28395 : case 23:
28396 : if (!((
28397 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28398 : ((16 == 64 || TARGET_AVX512VL
28399 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28400 : && ix86_pre_reload_split ()
28401 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28402 : STRIP_UNARY (operands[4]))
28403 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28404 : STRIP_UNARY (operands[4]))
28405 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28406 : STRIP_UNARY (operands[3]))
28407 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28408 : STRIP_UNARY (operands[3])))) &&
28409 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28410 : (TARGET_SSE2)) &&
28411 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28412 : ( 1)))
28413 : return NULL;
28414 : return gen_split_2365 (insn, operands);
28415 :
28416 : case 24:
28417 : if (!((
28418 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28419 : ((64 == 64 || TARGET_AVX512VL
28420 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28421 : && ix86_pre_reload_split ()
28422 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28423 : STRIP_UNARY (operands[4]))
28424 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28425 : STRIP_UNARY (operands[4]))
28426 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28427 : STRIP_UNARY (operands[3]))
28428 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28429 : STRIP_UNARY (operands[3])))) &&
28430 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28431 : (TARGET_AVX512F)) &&
28432 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28433 : ( 1)))
28434 : return NULL;
28435 : return gen_split_2071 (insn, operands);
28436 :
28437 : case 25:
28438 : if (!((
28439 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28440 : ((32 == 64 || TARGET_AVX512VL
28441 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28442 : && ix86_pre_reload_split ()
28443 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28444 : STRIP_UNARY (operands[4]))
28445 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28446 : STRIP_UNARY (operands[4]))
28447 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28448 : STRIP_UNARY (operands[3]))
28449 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28450 : STRIP_UNARY (operands[3])))) &&
28451 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28452 : (TARGET_AVX)) &&
28453 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28454 : ( 1)))
28455 : return NULL;
28456 : return gen_split_2098 (insn, operands);
28457 :
28458 : case 26:
28459 : if (!(
28460 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28461 : ((16 == 64 || TARGET_AVX512VL
28462 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28463 : && ix86_pre_reload_split ()
28464 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28465 : STRIP_UNARY (operands[4]))
28466 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28467 : STRIP_UNARY (operands[4]))
28468 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28469 : STRIP_UNARY (operands[3]))
28470 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28471 : STRIP_UNARY (operands[3])))) &&
28472 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28473 : ( 1)))
28474 : return NULL;
28475 : return gen_split_2125 (insn, operands);
28476 :
28477 : case 27:
28478 : if (!((
28479 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28480 : ((64 == 64 || TARGET_AVX512VL
28481 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28482 : && ix86_pre_reload_split ()
28483 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28484 : STRIP_UNARY (operands[4]))
28485 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28486 : STRIP_UNARY (operands[4]))
28487 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28488 : STRIP_UNARY (operands[3]))
28489 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28490 : STRIP_UNARY (operands[3])))) &&
28491 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28492 : (TARGET_AVX512F)) &&
28493 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28494 : ( 1)))
28495 : return NULL;
28496 : return gen_split_2152 (insn, operands);
28497 :
28498 : case 28:
28499 : if (!((
28500 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28501 : ((32 == 64 || TARGET_AVX512VL
28502 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28503 : && ix86_pre_reload_split ()
28504 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28505 : STRIP_UNARY (operands[4]))
28506 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28507 : STRIP_UNARY (operands[4]))
28508 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28509 : STRIP_UNARY (operands[3]))
28510 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28511 : STRIP_UNARY (operands[3])))) &&
28512 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28513 : (TARGET_AVX)) &&
28514 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28515 : ( 1)))
28516 : return NULL;
28517 : return gen_split_2179 (insn, operands);
28518 :
28519 : case 29:
28520 : if (!(
28521 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28522 : ((16 == 64 || TARGET_AVX512VL
28523 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28524 : && ix86_pre_reload_split ()
28525 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28526 : STRIP_UNARY (operands[4]))
28527 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28528 : STRIP_UNARY (operands[4]))
28529 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28530 : STRIP_UNARY (operands[3]))
28531 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28532 : STRIP_UNARY (operands[3])))) &&
28533 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28534 : ( 1)))
28535 : return NULL;
28536 : return gen_split_2206 (insn, operands);
28537 :
28538 : case 30:
28539 : if (!((
28540 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28541 : ((64 == 64 || TARGET_AVX512VL
28542 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28543 : && ix86_pre_reload_split ()
28544 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28545 : STRIP_UNARY (operands[4]))
28546 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28547 : STRIP_UNARY (operands[4]))
28548 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28549 : STRIP_UNARY (operands[3]))
28550 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28551 : STRIP_UNARY (operands[3])))) &&
28552 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28553 : (TARGET_AVX512F)) &&
28554 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28555 : ( 1)))
28556 : return NULL;
28557 : return gen_split_2233 (insn, operands);
28558 :
28559 : case 31:
28560 : if (!((
28561 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28562 : ((32 == 64 || TARGET_AVX512VL
28563 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28564 : && ix86_pre_reload_split ()
28565 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28566 : STRIP_UNARY (operands[4]))
28567 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28568 : STRIP_UNARY (operands[4]))
28569 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28570 : STRIP_UNARY (operands[3]))
28571 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28572 : STRIP_UNARY (operands[3])))) &&
28573 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28574 : (TARGET_AVX)) &&
28575 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28576 : ( 1)))
28577 : return NULL;
28578 : return gen_split_2260 (insn, operands);
28579 :
28580 : case 32:
28581 : if (!(
28582 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28583 : ((16 == 64 || TARGET_AVX512VL
28584 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28585 : && ix86_pre_reload_split ()
28586 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28587 : STRIP_UNARY (operands[4]))
28588 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28589 : STRIP_UNARY (operands[4]))
28590 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28591 : STRIP_UNARY (operands[3]))
28592 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28593 : STRIP_UNARY (operands[3])))) &&
28594 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28595 : ( 1)))
28596 : return NULL;
28597 : return gen_split_2287 (insn, operands);
28598 :
28599 : case 33:
28600 : if (!((
28601 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28602 : ((64 == 64 || TARGET_AVX512VL
28603 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28604 : && ix86_pre_reload_split ()
28605 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28606 : STRIP_UNARY (operands[4]))
28607 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28608 : STRIP_UNARY (operands[4]))
28609 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28610 : STRIP_UNARY (operands[3]))
28611 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28612 : STRIP_UNARY (operands[3])))) &&
28613 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28614 : (TARGET_AVX512F)) &&
28615 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28616 : ( 1)))
28617 : return NULL;
28618 : return gen_split_2314 (insn, operands);
28619 :
28620 : case 34:
28621 : if (!((
28622 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28623 : ((32 == 64 || TARGET_AVX512VL
28624 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28625 : && ix86_pre_reload_split ()
28626 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28627 : STRIP_UNARY (operands[4]))
28628 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28629 : STRIP_UNARY (operands[4]))
28630 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28631 : STRIP_UNARY (operands[3]))
28632 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28633 : STRIP_UNARY (operands[3])))) &&
28634 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28635 : (TARGET_AVX)) &&
28636 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28637 : ( 1)))
28638 : return NULL;
28639 : return gen_split_2341 (insn, operands);
28640 :
28641 : case 35:
28642 : if (!((
28643 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28644 : ((16 == 64 || TARGET_AVX512VL
28645 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28646 : && ix86_pre_reload_split ()
28647 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28648 : STRIP_UNARY (operands[4]))
28649 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28650 : STRIP_UNARY (operands[4]))
28651 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28652 : STRIP_UNARY (operands[3]))
28653 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28654 : STRIP_UNARY (operands[3])))) &&
28655 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28656 : (TARGET_SSE2)) &&
28657 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28658 : ( 1)))
28659 : return NULL;
28660 : return gen_split_2368 (insn, operands);
28661 :
28662 : case 36:
28663 : if (!((
28664 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28665 : ((64 == 64 || TARGET_AVX512VL
28666 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28667 : && ix86_pre_reload_split ()) &&
28668 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28669 : (TARGET_AVX512F)) &&
28670 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28671 : ( 1)))
28672 : return NULL;
28673 : return gen_split_3145 (insn, operands);
28674 :
28675 : case 37:
28676 : if (!((
28677 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28678 : ((32 == 64 || TARGET_AVX512VL
28679 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28680 : && ix86_pre_reload_split ()) &&
28681 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28682 : (TARGET_AVX)) &&
28683 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28684 : ( 1)))
28685 : return NULL;
28686 : return gen_split_3154 (insn, operands);
28687 :
28688 : case 38:
28689 : if (!(
28690 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28691 : ((16 == 64 || TARGET_AVX512VL
28692 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28693 : && ix86_pre_reload_split ()) &&
28694 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28695 : ( 1)))
28696 : return NULL;
28697 : return gen_split_3163 (insn, operands);
28698 :
28699 : case 39:
28700 : if (!((
28701 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28702 : ((64 == 64 || TARGET_AVX512VL
28703 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28704 : && ix86_pre_reload_split ()) &&
28705 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28706 : (TARGET_AVX512F)) &&
28707 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28708 : ( 1)))
28709 : return NULL;
28710 : return gen_split_3172 (insn, operands);
28711 :
28712 : case 40:
28713 : if (!((
28714 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28715 : ((32 == 64 || TARGET_AVX512VL
28716 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28717 : && ix86_pre_reload_split ()) &&
28718 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28719 : (TARGET_AVX)) &&
28720 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28721 : ( 1)))
28722 : return NULL;
28723 : return gen_split_3181 (insn, operands);
28724 :
28725 : case 41:
28726 : if (!(
28727 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28728 : ((16 == 64 || TARGET_AVX512VL
28729 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28730 : && ix86_pre_reload_split ()) &&
28731 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28732 : ( 1)))
28733 : return NULL;
28734 : return gen_split_3190 (insn, operands);
28735 :
28736 : case 42:
28737 : if (!((
28738 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28739 : ((64 == 64 || TARGET_AVX512VL
28740 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28741 : && ix86_pre_reload_split ()) &&
28742 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28743 : (TARGET_AVX512F)) &&
28744 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28745 : ( 1)))
28746 : return NULL;
28747 : return gen_split_3199 (insn, operands);
28748 :
28749 : case 43:
28750 : if (!((
28751 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28752 : ((32 == 64 || TARGET_AVX512VL
28753 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28754 : && ix86_pre_reload_split ()) &&
28755 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28756 : (TARGET_AVX)) &&
28757 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28758 : ( 1)))
28759 : return NULL;
28760 : return gen_split_3208 (insn, operands);
28761 :
28762 : case 44:
28763 : if (!(
28764 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28765 : ((16 == 64 || TARGET_AVX512VL
28766 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28767 : && ix86_pre_reload_split ()) &&
28768 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28769 : ( 1)))
28770 : return NULL;
28771 : return gen_split_3217 (insn, operands);
28772 :
28773 : case 45:
28774 : if (!((
28775 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28776 : ((64 == 64 || TARGET_AVX512VL
28777 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28778 : && ix86_pre_reload_split ()) &&
28779 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28780 : (TARGET_AVX512F)) &&
28781 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28782 : ( 1)))
28783 : return NULL;
28784 : return gen_split_3226 (insn, operands);
28785 :
28786 : case 46:
28787 : if (!((
28788 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28789 : ((32 == 64 || TARGET_AVX512VL
28790 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28791 : && ix86_pre_reload_split ()) &&
28792 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28793 : (TARGET_AVX)) &&
28794 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28795 : ( 1)))
28796 : return NULL;
28797 : return gen_split_3235 (insn, operands);
28798 :
28799 : case 47:
28800 : if (!((
28801 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28802 : ((16 == 64 || TARGET_AVX512VL
28803 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28804 : && ix86_pre_reload_split ()) &&
28805 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28806 : (TARGET_SSE2)) &&
28807 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28808 : ( 1)))
28809 : return NULL;
28810 : return gen_split_3244 (insn, operands);
28811 :
28812 : default:
28813 : return NULL;
28814 : }
28815 :
28816 : case AND:
28817 : switch (pattern544 (x2))
28818 : {
28819 : case 0:
28820 : if (!((
28821 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28822 : ((64 == 64 || TARGET_AVX512VL
28823 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28824 : && ix86_pre_reload_split ()
28825 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28826 : STRIP_UNARY (operands[4]))
28827 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28828 : STRIP_UNARY (operands[4]))
28829 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28830 : STRIP_UNARY (operands[3]))
28831 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28832 : STRIP_UNARY (operands[3])))) &&
28833 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28834 : (TARGET_AVX512F)) &&
28835 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28836 : ( 1)))
28837 : return NULL;
28838 : return gen_split_2713 (insn, operands);
28839 :
28840 : case 1:
28841 : if (!((
28842 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28843 : ((32 == 64 || TARGET_AVX512VL
28844 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28845 : && ix86_pre_reload_split ()
28846 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28847 : STRIP_UNARY (operands[4]))
28848 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28849 : STRIP_UNARY (operands[4]))
28850 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28851 : STRIP_UNARY (operands[3]))
28852 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28853 : STRIP_UNARY (operands[3])))) &&
28854 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28855 : (TARGET_AVX)) &&
28856 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28857 : ( 1)))
28858 : return NULL;
28859 : return gen_split_2740 (insn, operands);
28860 :
28861 : case 2:
28862 : if (!(
28863 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28864 : ((16 == 64 || TARGET_AVX512VL
28865 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28866 : && ix86_pre_reload_split ()
28867 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28868 : STRIP_UNARY (operands[4]))
28869 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28870 : STRIP_UNARY (operands[4]))
28871 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28872 : STRIP_UNARY (operands[3]))
28873 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28874 : STRIP_UNARY (operands[3])))) &&
28875 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28876 : ( 1)))
28877 : return NULL;
28878 : return gen_split_2767 (insn, operands);
28879 :
28880 : case 3:
28881 : if (!((
28882 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28883 : ((64 == 64 || TARGET_AVX512VL
28884 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28885 : && ix86_pre_reload_split ()
28886 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28887 : STRIP_UNARY (operands[4]))
28888 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28889 : STRIP_UNARY (operands[4]))
28890 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28891 : STRIP_UNARY (operands[3]))
28892 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28893 : STRIP_UNARY (operands[3])))) &&
28894 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28895 : (TARGET_AVX512F)) &&
28896 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28897 : ( 1)))
28898 : return NULL;
28899 : return gen_split_2794 (insn, operands);
28900 :
28901 : case 4:
28902 : if (!((
28903 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28904 : ((32 == 64 || TARGET_AVX512VL
28905 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28906 : && ix86_pre_reload_split ()
28907 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28908 : STRIP_UNARY (operands[4]))
28909 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28910 : STRIP_UNARY (operands[4]))
28911 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28912 : STRIP_UNARY (operands[3]))
28913 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28914 : STRIP_UNARY (operands[3])))) &&
28915 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28916 : (TARGET_AVX)) &&
28917 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28918 : ( 1)))
28919 : return NULL;
28920 : return gen_split_2821 (insn, operands);
28921 :
28922 : case 5:
28923 : if (!(
28924 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28925 : ((16 == 64 || TARGET_AVX512VL
28926 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28927 : && ix86_pre_reload_split ()
28928 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28929 : STRIP_UNARY (operands[4]))
28930 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28931 : STRIP_UNARY (operands[4]))
28932 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28933 : STRIP_UNARY (operands[3]))
28934 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28935 : STRIP_UNARY (operands[3])))) &&
28936 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28937 : ( 1)))
28938 : return NULL;
28939 : return gen_split_2848 (insn, operands);
28940 :
28941 : case 6:
28942 : if (!((
28943 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28944 : ((64 == 64 || TARGET_AVX512VL
28945 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28946 : && ix86_pre_reload_split ()
28947 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28948 : STRIP_UNARY (operands[4]))
28949 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28950 : STRIP_UNARY (operands[4]))
28951 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28952 : STRIP_UNARY (operands[3]))
28953 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28954 : STRIP_UNARY (operands[3])))) &&
28955 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28956 : (TARGET_AVX512F)) &&
28957 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28958 : ( 1)))
28959 : return NULL;
28960 : return gen_split_2875 (insn, operands);
28961 :
28962 : case 7:
28963 : if (!((
28964 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28965 : ((32 == 64 || TARGET_AVX512VL
28966 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28967 : && ix86_pre_reload_split ()
28968 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28969 : STRIP_UNARY (operands[4]))
28970 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28971 : STRIP_UNARY (operands[4]))
28972 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28973 : STRIP_UNARY (operands[3]))
28974 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28975 : STRIP_UNARY (operands[3])))) &&
28976 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28977 : (TARGET_AVX)) &&
28978 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28979 : ( 1)))
28980 : return NULL;
28981 : return gen_split_2902 (insn, operands);
28982 :
28983 : case 8:
28984 : if (!(
28985 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28986 : ((16 == 64 || TARGET_AVX512VL
28987 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28988 : && ix86_pre_reload_split ()
28989 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28990 : STRIP_UNARY (operands[4]))
28991 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28992 : STRIP_UNARY (operands[4]))
28993 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28994 : STRIP_UNARY (operands[3]))
28995 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28996 : STRIP_UNARY (operands[3])))) &&
28997 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28998 : ( 1)))
28999 : return NULL;
29000 : return gen_split_2929 (insn, operands);
29001 :
29002 : case 9:
29003 : if (!((
29004 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29005 : ((64 == 64 || TARGET_AVX512VL
29006 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29007 : && ix86_pre_reload_split ()
29008 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29009 : STRIP_UNARY (operands[4]))
29010 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29011 : STRIP_UNARY (operands[4]))
29012 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29013 : STRIP_UNARY (operands[3]))
29014 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29015 : STRIP_UNARY (operands[3])))) &&
29016 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29017 : (TARGET_AVX512F)) &&
29018 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29019 : ( 1)))
29020 : return NULL;
29021 : return gen_split_2956 (insn, operands);
29022 :
29023 : case 10:
29024 : if (!((
29025 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29026 : ((32 == 64 || TARGET_AVX512VL
29027 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29028 : && ix86_pre_reload_split ()
29029 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29030 : STRIP_UNARY (operands[4]))
29031 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29032 : STRIP_UNARY (operands[4]))
29033 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29034 : STRIP_UNARY (operands[3]))
29035 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29036 : STRIP_UNARY (operands[3])))) &&
29037 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29038 : (TARGET_AVX)) &&
29039 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29040 : ( 1)))
29041 : return NULL;
29042 : return gen_split_2983 (insn, operands);
29043 :
29044 : case 11:
29045 : if (!((
29046 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29047 : ((16 == 64 || TARGET_AVX512VL
29048 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29049 : && ix86_pre_reload_split ()
29050 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29051 : STRIP_UNARY (operands[4]))
29052 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29053 : STRIP_UNARY (operands[4]))
29054 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29055 : STRIP_UNARY (operands[3]))
29056 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29057 : STRIP_UNARY (operands[3])))) &&
29058 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29059 : (TARGET_SSE2)) &&
29060 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29061 : ( 1)))
29062 : return NULL;
29063 : return gen_split_3010 (insn, operands);
29064 :
29065 : default:
29066 : return NULL;
29067 : }
29068 :
29069 : case IOR:
29070 : switch (pattern544 (x2))
29071 : {
29072 : case 0:
29073 : if (!((
29074 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29075 : ((64 == 64 || TARGET_AVX512VL
29076 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29077 : && ix86_pre_reload_split ()
29078 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29079 : STRIP_UNARY (operands[4]))
29080 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29081 : STRIP_UNARY (operands[4]))
29082 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29083 : STRIP_UNARY (operands[3]))
29084 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29085 : STRIP_UNARY (operands[3])))) &&
29086 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29087 : (TARGET_AVX512F)) &&
29088 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29089 : ( 1)))
29090 : return NULL;
29091 : return gen_split_2716 (insn, operands);
29092 :
29093 : case 1:
29094 : if (!((
29095 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29096 : ((32 == 64 || TARGET_AVX512VL
29097 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29098 : && ix86_pre_reload_split ()
29099 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29100 : STRIP_UNARY (operands[4]))
29101 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29102 : STRIP_UNARY (operands[4]))
29103 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29104 : STRIP_UNARY (operands[3]))
29105 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29106 : STRIP_UNARY (operands[3])))) &&
29107 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29108 : (TARGET_AVX)) &&
29109 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29110 : ( 1)))
29111 : return NULL;
29112 : return gen_split_2743 (insn, operands);
29113 :
29114 : case 2:
29115 : if (!(
29116 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29117 : ((16 == 64 || TARGET_AVX512VL
29118 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29119 : && ix86_pre_reload_split ()
29120 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29121 : STRIP_UNARY (operands[4]))
29122 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29123 : STRIP_UNARY (operands[4]))
29124 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29125 : STRIP_UNARY (operands[3]))
29126 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29127 : STRIP_UNARY (operands[3])))) &&
29128 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29129 : ( 1)))
29130 : return NULL;
29131 : return gen_split_2770 (insn, operands);
29132 :
29133 : case 3:
29134 : if (!((
29135 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29136 : ((64 == 64 || TARGET_AVX512VL
29137 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29138 : && ix86_pre_reload_split ()
29139 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29140 : STRIP_UNARY (operands[4]))
29141 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29142 : STRIP_UNARY (operands[4]))
29143 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29144 : STRIP_UNARY (operands[3]))
29145 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29146 : STRIP_UNARY (operands[3])))) &&
29147 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29148 : (TARGET_AVX512F)) &&
29149 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29150 : ( 1)))
29151 : return NULL;
29152 : return gen_split_2797 (insn, operands);
29153 :
29154 : case 4:
29155 : if (!((
29156 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29157 : ((32 == 64 || TARGET_AVX512VL
29158 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29159 : && ix86_pre_reload_split ()
29160 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29161 : STRIP_UNARY (operands[4]))
29162 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29163 : STRIP_UNARY (operands[4]))
29164 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29165 : STRIP_UNARY (operands[3]))
29166 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29167 : STRIP_UNARY (operands[3])))) &&
29168 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29169 : (TARGET_AVX)) &&
29170 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29171 : ( 1)))
29172 : return NULL;
29173 : return gen_split_2824 (insn, operands);
29174 :
29175 : case 5:
29176 : if (!(
29177 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29178 : ((16 == 64 || TARGET_AVX512VL
29179 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29180 : && ix86_pre_reload_split ()
29181 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29182 : STRIP_UNARY (operands[4]))
29183 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29184 : STRIP_UNARY (operands[4]))
29185 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29186 : STRIP_UNARY (operands[3]))
29187 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29188 : STRIP_UNARY (operands[3])))) &&
29189 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29190 : ( 1)))
29191 : return NULL;
29192 : return gen_split_2851 (insn, operands);
29193 :
29194 : case 6:
29195 : if (!((
29196 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29197 : ((64 == 64 || TARGET_AVX512VL
29198 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29199 : && ix86_pre_reload_split ()
29200 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29201 : STRIP_UNARY (operands[4]))
29202 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29203 : STRIP_UNARY (operands[4]))
29204 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29205 : STRIP_UNARY (operands[3]))
29206 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29207 : STRIP_UNARY (operands[3])))) &&
29208 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29209 : (TARGET_AVX512F)) &&
29210 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29211 : ( 1)))
29212 : return NULL;
29213 : return gen_split_2878 (insn, operands);
29214 :
29215 : case 7:
29216 : if (!((
29217 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29218 : ((32 == 64 || TARGET_AVX512VL
29219 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29220 : && ix86_pre_reload_split ()
29221 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29222 : STRIP_UNARY (operands[4]))
29223 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29224 : STRIP_UNARY (operands[4]))
29225 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29226 : STRIP_UNARY (operands[3]))
29227 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29228 : STRIP_UNARY (operands[3])))) &&
29229 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29230 : (TARGET_AVX)) &&
29231 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29232 : ( 1)))
29233 : return NULL;
29234 : return gen_split_2905 (insn, operands);
29235 :
29236 : case 8:
29237 : if (!(
29238 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29239 : ((16 == 64 || TARGET_AVX512VL
29240 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29241 : && ix86_pre_reload_split ()
29242 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29243 : STRIP_UNARY (operands[4]))
29244 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29245 : STRIP_UNARY (operands[4]))
29246 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29247 : STRIP_UNARY (operands[3]))
29248 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29249 : STRIP_UNARY (operands[3])))) &&
29250 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29251 : ( 1)))
29252 : return NULL;
29253 : return gen_split_2932 (insn, operands);
29254 :
29255 : case 9:
29256 : if (!((
29257 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29258 : ((64 == 64 || TARGET_AVX512VL
29259 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29260 : && ix86_pre_reload_split ()
29261 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29262 : STRIP_UNARY (operands[4]))
29263 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29264 : STRIP_UNARY (operands[4]))
29265 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29266 : STRIP_UNARY (operands[3]))
29267 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29268 : STRIP_UNARY (operands[3])))) &&
29269 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29270 : (TARGET_AVX512F)) &&
29271 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29272 : ( 1)))
29273 : return NULL;
29274 : return gen_split_2959 (insn, operands);
29275 :
29276 : case 10:
29277 : if (!((
29278 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29279 : ((32 == 64 || TARGET_AVX512VL
29280 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29281 : && ix86_pre_reload_split ()
29282 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29283 : STRIP_UNARY (operands[4]))
29284 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29285 : STRIP_UNARY (operands[4]))
29286 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29287 : STRIP_UNARY (operands[3]))
29288 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29289 : STRIP_UNARY (operands[3])))) &&
29290 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29291 : (TARGET_AVX)) &&
29292 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29293 : ( 1)))
29294 : return NULL;
29295 : return gen_split_2986 (insn, operands);
29296 :
29297 : case 11:
29298 : if (!((
29299 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29300 : ((16 == 64 || TARGET_AVX512VL
29301 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29302 : && ix86_pre_reload_split ()
29303 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29304 : STRIP_UNARY (operands[4]))
29305 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29306 : STRIP_UNARY (operands[4]))
29307 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29308 : STRIP_UNARY (operands[3]))
29309 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29310 : STRIP_UNARY (operands[3])))) &&
29311 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29312 : (TARGET_SSE2)) &&
29313 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29314 : ( 1)))
29315 : return NULL;
29316 : return gen_split_3013 (insn, operands);
29317 :
29318 : default:
29319 : return NULL;
29320 : }
29321 :
29322 : case XOR:
29323 : x5 = XEXP (x4, 0);
29324 : operands[1] = x5;
29325 : x6 = XEXP (x4, 1);
29326 : operands[2] = x6;
29327 : x7 = XEXP (x3, 1);
29328 : operands[3] = x7;
29329 : switch (GET_MODE (operands[0]))
29330 : {
29331 : case E_V32HFmode:
29332 : if (pattern1199 (x2,
29333 : E_V32HFmode) != 0
29334 : || !((
29335 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29336 : ((64 == 64 || TARGET_AVX512VL
29337 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29338 : && ix86_pre_reload_split ()
29339 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29340 : STRIP_UNARY (operands[4]))
29341 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29342 : STRIP_UNARY (operands[4]))
29343 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29344 : STRIP_UNARY (operands[3]))
29345 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29346 : STRIP_UNARY (operands[3])))) &&
29347 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29348 : (TARGET_AVX512F)) &&
29349 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29350 : ( 1)))
29351 : return NULL;
29352 : return gen_split_2719 (insn, operands);
29353 :
29354 : case E_V16HFmode:
29355 : if (pattern1010 (x2,
29356 : E_V16HFmode) != 0)
29357 : return NULL;
29358 : if (regmem_or_bitnot_regmem_operand (operands[1], E_V16HFmode)
29359 : && regmem_or_bitnot_regmem_operand (operands[2], E_V16HFmode)
29360 : && regmem_or_bitnot_regmem_operand (operands[3], E_V16HFmode))
29361 : {
29362 : x8 = XEXP (x2, 1);
29363 : operands[4] = x8;
29364 : if (regmem_or_bitnot_regmem_operand (operands[4], E_V16HFmode)
29365 : && ((
29366 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29367 : ((32 == 64 || TARGET_AVX512VL
29368 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29369 : && ix86_pre_reload_split ()
29370 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29371 : STRIP_UNARY (operands[4]))
29372 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29373 : STRIP_UNARY (operands[4]))
29374 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29375 : STRIP_UNARY (operands[3]))
29376 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29377 : STRIP_UNARY (operands[3])))) &&
29378 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29379 : (TARGET_AVX)) &&
29380 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29381 : ( 1)))
29382 : return gen_split_2746 (insn, operands);
29383 : }
29384 : if (!register_operand (operands[1], E_V16HFmode)
29385 : || !register_operand (operands[2], E_V16HFmode)
29386 : || !nonimmediate_operand (operands[3], E_V16HFmode))
29387 : return NULL;
29388 : x8 = XEXP (x2, 1);
29389 : if (rtx_equal_p (x8, operands[1])
29390 : &&
29391 : #line 27073 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29392 : (TARGET_XOP))
29393 : return gen_split_3825 (insn, operands);
29394 : if (!rtx_equal_p (x8, operands[2])
29395 : || !
29396 : #line 27085 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29397 : (TARGET_XOP))
29398 : return NULL;
29399 : return gen_split_3841 (insn, operands);
29400 :
29401 : case E_V8HFmode:
29402 : if (pattern1010 (x2,
29403 : E_V8HFmode) != 0)
29404 : return NULL;
29405 : if (regmem_or_bitnot_regmem_operand (operands[1], E_V8HFmode)
29406 : && regmem_or_bitnot_regmem_operand (operands[2], E_V8HFmode)
29407 : && regmem_or_bitnot_regmem_operand (operands[3], E_V8HFmode))
29408 : {
29409 : x8 = XEXP (x2, 1);
29410 : operands[4] = x8;
29411 : if (regmem_or_bitnot_regmem_operand (operands[4], E_V8HFmode)
29412 : && (
29413 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29414 : ((16 == 64 || TARGET_AVX512VL
29415 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29416 : && ix86_pre_reload_split ()
29417 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29418 : STRIP_UNARY (operands[4]))
29419 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29420 : STRIP_UNARY (operands[4]))
29421 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29422 : STRIP_UNARY (operands[3]))
29423 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29424 : STRIP_UNARY (operands[3])))) &&
29425 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29426 : ( 1)))
29427 : return gen_split_2773 (insn, operands);
29428 : }
29429 : if (!register_operand (operands[1], E_V8HFmode)
29430 : || !register_operand (operands[2], E_V8HFmode)
29431 : || !nonimmediate_operand (operands[3], E_V8HFmode))
29432 : return NULL;
29433 : x8 = XEXP (x2, 1);
29434 : if (rtx_equal_p (x8, operands[1])
29435 : &&
29436 : #line 27073 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29437 : (TARGET_XOP))
29438 : return gen_split_3826 (insn, operands);
29439 : if (!rtx_equal_p (x8, operands[2])
29440 : || !
29441 : #line 27085 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29442 : (TARGET_XOP))
29443 : return NULL;
29444 : return gen_split_3842 (insn, operands);
29445 :
29446 : case E_V32BFmode:
29447 : if (pattern1199 (x2,
29448 : E_V32BFmode) != 0
29449 : || !((
29450 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29451 : ((64 == 64 || TARGET_AVX512VL
29452 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29453 : && ix86_pre_reload_split ()
29454 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29455 : STRIP_UNARY (operands[4]))
29456 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29457 : STRIP_UNARY (operands[4]))
29458 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29459 : STRIP_UNARY (operands[3]))
29460 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29461 : STRIP_UNARY (operands[3])))) &&
29462 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29463 : (TARGET_AVX512F)) &&
29464 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29465 : ( 1)))
29466 : return NULL;
29467 : return gen_split_2800 (insn, operands);
29468 :
29469 : case E_V16BFmode:
29470 : if (pattern1199 (x2,
29471 : E_V16BFmode) != 0
29472 : || !((
29473 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29474 : ((32 == 64 || TARGET_AVX512VL
29475 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29476 : && ix86_pre_reload_split ()
29477 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29478 : STRIP_UNARY (operands[4]))
29479 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29480 : STRIP_UNARY (operands[4]))
29481 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29482 : STRIP_UNARY (operands[3]))
29483 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29484 : STRIP_UNARY (operands[3])))) &&
29485 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29486 : (TARGET_AVX)) &&
29487 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29488 : ( 1)))
29489 : return NULL;
29490 : return gen_split_2827 (insn, operands);
29491 :
29492 : case E_V8BFmode:
29493 : if (pattern1199 (x2,
29494 : E_V8BFmode) != 0
29495 : || !(
29496 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29497 : ((16 == 64 || TARGET_AVX512VL
29498 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29499 : && ix86_pre_reload_split ()
29500 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29501 : STRIP_UNARY (operands[4]))
29502 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29503 : STRIP_UNARY (operands[4]))
29504 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29505 : STRIP_UNARY (operands[3]))
29506 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29507 : STRIP_UNARY (operands[3])))) &&
29508 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29509 : ( 1)))
29510 : return NULL;
29511 : return gen_split_2854 (insn, operands);
29512 :
29513 : case E_V16SFmode:
29514 : if (pattern1199 (x2,
29515 : E_V16SFmode) != 0
29516 : || !((
29517 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29518 : ((64 == 64 || TARGET_AVX512VL
29519 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29520 : && ix86_pre_reload_split ()
29521 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29522 : STRIP_UNARY (operands[4]))
29523 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29524 : STRIP_UNARY (operands[4]))
29525 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29526 : STRIP_UNARY (operands[3]))
29527 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29528 : STRIP_UNARY (operands[3])))) &&
29529 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29530 : (TARGET_AVX512F)) &&
29531 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29532 : ( 1)))
29533 : return NULL;
29534 : return gen_split_2881 (insn, operands);
29535 :
29536 : case E_V8SFmode:
29537 : if (pattern1010 (x2,
29538 : E_V8SFmode) != 0)
29539 : return NULL;
29540 : if (regmem_or_bitnot_regmem_operand (operands[1], E_V8SFmode)
29541 : && regmem_or_bitnot_regmem_operand (operands[2], E_V8SFmode)
29542 : && regmem_or_bitnot_regmem_operand (operands[3], E_V8SFmode))
29543 : {
29544 : x8 = XEXP (x2, 1);
29545 : operands[4] = x8;
29546 : if (regmem_or_bitnot_regmem_operand (operands[4], E_V8SFmode)
29547 : && ((
29548 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29549 : ((32 == 64 || TARGET_AVX512VL
29550 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29551 : && ix86_pre_reload_split ()
29552 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29553 : STRIP_UNARY (operands[4]))
29554 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29555 : STRIP_UNARY (operands[4]))
29556 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29557 : STRIP_UNARY (operands[3]))
29558 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29559 : STRIP_UNARY (operands[3])))) &&
29560 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29561 : (TARGET_AVX)) &&
29562 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29563 : ( 1)))
29564 : return gen_split_2908 (insn, operands);
29565 : }
29566 : if (!register_operand (operands[1], E_V8SFmode)
29567 : || !register_operand (operands[2], E_V8SFmode)
29568 : || !nonimmediate_operand (operands[3], E_V8SFmode))
29569 : return NULL;
29570 : x8 = XEXP (x2, 1);
29571 : if (rtx_equal_p (x8, operands[1])
29572 : &&
29573 : #line 27073 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29574 : (TARGET_XOP))
29575 : return gen_split_3827 (insn, operands);
29576 : if (!rtx_equal_p (x8, operands[2])
29577 : || !
29578 : #line 27085 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29579 : (TARGET_XOP))
29580 : return NULL;
29581 : return gen_split_3843 (insn, operands);
29582 :
29583 : case E_V4SFmode:
29584 : if (pattern1010 (x2,
29585 : E_V4SFmode) != 0)
29586 : return NULL;
29587 : if (regmem_or_bitnot_regmem_operand (operands[1], E_V4SFmode)
29588 : && regmem_or_bitnot_regmem_operand (operands[2], E_V4SFmode)
29589 : && regmem_or_bitnot_regmem_operand (operands[3], E_V4SFmode))
29590 : {
29591 : x8 = XEXP (x2, 1);
29592 : operands[4] = x8;
29593 : if (regmem_or_bitnot_regmem_operand (operands[4], E_V4SFmode)
29594 : && (
29595 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29596 : ((16 == 64 || TARGET_AVX512VL
29597 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29598 : && ix86_pre_reload_split ()
29599 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29600 : STRIP_UNARY (operands[4]))
29601 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29602 : STRIP_UNARY (operands[4]))
29603 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29604 : STRIP_UNARY (operands[3]))
29605 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29606 : STRIP_UNARY (operands[3])))) &&
29607 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29608 : ( 1)))
29609 : return gen_split_2935 (insn, operands);
29610 : }
29611 : if (!register_operand (operands[1], E_V4SFmode)
29612 : || !register_operand (operands[2], E_V4SFmode)
29613 : || !nonimmediate_operand (operands[3], E_V4SFmode))
29614 : return NULL;
29615 : x8 = XEXP (x2, 1);
29616 : if (rtx_equal_p (x8, operands[1])
29617 : &&
29618 : #line 27073 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29619 : (TARGET_XOP))
29620 : return gen_split_3828 (insn, operands);
29621 : if (!rtx_equal_p (x8, operands[2])
29622 : || !
29623 : #line 27085 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29624 : (TARGET_XOP))
29625 : return NULL;
29626 : return gen_split_3844 (insn, operands);
29627 :
29628 : case E_V8DFmode:
29629 : if (pattern1199 (x2,
29630 : E_V8DFmode) != 0
29631 : || !((
29632 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29633 : ((64 == 64 || TARGET_AVX512VL
29634 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29635 : && ix86_pre_reload_split ()
29636 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29637 : STRIP_UNARY (operands[4]))
29638 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29639 : STRIP_UNARY (operands[4]))
29640 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29641 : STRIP_UNARY (operands[3]))
29642 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29643 : STRIP_UNARY (operands[3])))) &&
29644 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29645 : (TARGET_AVX512F)) &&
29646 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29647 : ( 1)))
29648 : return NULL;
29649 : return gen_split_2962 (insn, operands);
29650 :
29651 : case E_V4DFmode:
29652 : if (pattern1010 (x2,
29653 : E_V4DFmode) != 0)
29654 : return NULL;
29655 : if (regmem_or_bitnot_regmem_operand (operands[1], E_V4DFmode)
29656 : && regmem_or_bitnot_regmem_operand (operands[2], E_V4DFmode)
29657 : && regmem_or_bitnot_regmem_operand (operands[3], E_V4DFmode))
29658 : {
29659 : x8 = XEXP (x2, 1);
29660 : operands[4] = x8;
29661 : if (regmem_or_bitnot_regmem_operand (operands[4], E_V4DFmode)
29662 : && ((
29663 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29664 : ((32 == 64 || TARGET_AVX512VL
29665 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29666 : && ix86_pre_reload_split ()
29667 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29668 : STRIP_UNARY (operands[4]))
29669 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29670 : STRIP_UNARY (operands[4]))
29671 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29672 : STRIP_UNARY (operands[3]))
29673 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29674 : STRIP_UNARY (operands[3])))) &&
29675 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29676 : (TARGET_AVX)) &&
29677 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29678 : ( 1)))
29679 : return gen_split_2989 (insn, operands);
29680 : }
29681 : if (!register_operand (operands[1], E_V4DFmode)
29682 : || !register_operand (operands[2], E_V4DFmode)
29683 : || !nonimmediate_operand (operands[3], E_V4DFmode))
29684 : return NULL;
29685 : x8 = XEXP (x2, 1);
29686 : if (rtx_equal_p (x8, operands[1])
29687 : &&
29688 : #line 27073 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29689 : (TARGET_XOP))
29690 : return gen_split_3829 (insn, operands);
29691 : if (!rtx_equal_p (x8, operands[2])
29692 : || !
29693 : #line 27085 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29694 : (TARGET_XOP))
29695 : return NULL;
29696 : return gen_split_3845 (insn, operands);
29697 :
29698 : case E_V2DFmode:
29699 : if (pattern1010 (x2,
29700 : E_V2DFmode) != 0)
29701 : return NULL;
29702 : if (regmem_or_bitnot_regmem_operand (operands[1], E_V2DFmode)
29703 : && regmem_or_bitnot_regmem_operand (operands[2], E_V2DFmode)
29704 : && regmem_or_bitnot_regmem_operand (operands[3], E_V2DFmode))
29705 : {
29706 : x8 = XEXP (x2, 1);
29707 : operands[4] = x8;
29708 : if (regmem_or_bitnot_regmem_operand (operands[4], E_V2DFmode)
29709 : && ((
29710 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29711 : ((16 == 64 || TARGET_AVX512VL
29712 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29713 : && ix86_pre_reload_split ()
29714 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29715 : STRIP_UNARY (operands[4]))
29716 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29717 : STRIP_UNARY (operands[4]))
29718 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29719 : STRIP_UNARY (operands[3]))
29720 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29721 : STRIP_UNARY (operands[3])))) &&
29722 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29723 : (TARGET_SSE2)) &&
29724 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29725 : ( 1)))
29726 : return gen_split_3016 (insn, operands);
29727 : }
29728 : if (!register_operand (operands[1], E_V2DFmode)
29729 : || !register_operand (operands[2], E_V2DFmode)
29730 : || !nonimmediate_operand (operands[3], E_V2DFmode))
29731 : return NULL;
29732 : x8 = XEXP (x2, 1);
29733 : if (rtx_equal_p (x8, operands[1])
29734 : &&
29735 : #line 27073 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29736 : (TARGET_XOP))
29737 : return gen_split_3830 (insn, operands);
29738 : if (!rtx_equal_p (x8, operands[2])
29739 : || !
29740 : #line 27085 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29741 : (TARGET_XOP))
29742 : return NULL;
29743 : return gen_split_3846 (insn, operands);
29744 :
29745 : default:
29746 : return NULL;
29747 : }
29748 :
29749 : default:
29750 : return NULL;
29751 : }
29752 : }
29753 :
29754 : rtx_insn *
29755 : split_86 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
29756 : {
29757 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
29758 : rtx x2, x3, x4;
29759 : rtx_insn *res ATTRIBUTE_UNUSED;
29760 : x2 = XEXP (x1, 1);
29761 : x3 = XEXP (x2, 0);
29762 : switch (GET_CODE (x3))
29763 : {
29764 : case NOT:
29765 : x4 = XEXP (x3, 0);
29766 : operands[1] = x4;
29767 : switch (GET_MODE (operands[0]))
29768 : {
29769 : case E_V16SImode:
29770 : if (pattern630 (x2,
29771 : E_V16SImode,
29772 : E_SImode) != 0
29773 : || !(
29774 : #line 18912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29775 : (64 == 64 || TARGET_AVX512VL
29776 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)) &&
29777 : #line 791 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29778 : (TARGET_AVX512F)))
29779 : return NULL;
29780 : return gen_split_3452 (insn, operands);
29781 :
29782 : case E_V8SImode:
29783 : if (pattern630 (x2,
29784 : E_V8SImode,
29785 : E_SImode) != 0
29786 : || !
29787 : #line 18912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29788 : (32 == 64 || TARGET_AVX512VL
29789 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)))
29790 : return NULL;
29791 : return gen_split_3453 (insn, operands);
29792 :
29793 : case E_V4SImode:
29794 : if (pattern630 (x2,
29795 : E_V4SImode,
29796 : E_SImode) != 0
29797 : || !
29798 : #line 18912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29799 : (16 == 64 || TARGET_AVX512VL
29800 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)))
29801 : return NULL;
29802 : return gen_split_3454 (insn, operands);
29803 :
29804 : case E_V8DImode:
29805 : if (pattern630 (x2,
29806 : E_V8DImode,
29807 : E_DImode) != 0
29808 : || !(
29809 : #line 18912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29810 : (64 == 64 || TARGET_AVX512VL
29811 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)) &&
29812 : #line 792 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29813 : (TARGET_AVX512F)))
29814 : return NULL;
29815 : return gen_split_3455 (insn, operands);
29816 :
29817 : case E_V4DImode:
29818 : if (pattern630 (x2,
29819 : E_V4DImode,
29820 : E_DImode) != 0
29821 : || !
29822 : #line 18912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29823 : (32 == 64 || TARGET_AVX512VL
29824 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)))
29825 : return NULL;
29826 : return gen_split_3456 (insn, operands);
29827 :
29828 : case E_V2DImode:
29829 : if (pattern630 (x2,
29830 : E_V2DImode,
29831 : E_DImode) != 0
29832 : || !
29833 : #line 18912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29834 : (16 == 64 || TARGET_AVX512VL
29835 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)))
29836 : return NULL;
29837 : return gen_split_3457 (insn, operands);
29838 :
29839 : default:
29840 : return NULL;
29841 : }
29842 :
29843 : case REG:
29844 : case SUBREG:
29845 : operands[1] = x3;
29846 : switch (GET_MODE (operands[0]))
29847 : {
29848 : case E_V32QImode:
29849 : if (!register_operand (operands[0], E_V32QImode)
29850 : || GET_MODE (x2) != E_V32QImode
29851 : || !register_operand (operands[1], E_QImode)
29852 : || !
29853 : #line 28909 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29854 : (TARGET_AVX2
29855 : /* Disable this splitter if avx512vl_vec_dup_gprv*[qhs]i insn is
29856 : available, because then we can broadcast from GPRs directly.
29857 : For V*[QH]I modes it requires both -mavx512vl and -mavx512bw,
29858 : for V*SI mode it requires just -mavx512vl. */
29859 : && !(TARGET_AVX512VL
29860 : && (TARGET_AVX512BW || QImode == SImode))
29861 : && reload_completed && GENERAL_REG_P (operands[1])))
29862 : return NULL;
29863 : return gen_split_3851 (insn, operands);
29864 :
29865 : case E_V16QImode:
29866 : if (!register_operand (operands[0], E_V16QImode)
29867 : || GET_MODE (x2) != E_V16QImode
29868 : || !register_operand (operands[1], E_QImode)
29869 : || !
29870 : #line 28909 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29871 : (TARGET_AVX2
29872 : /* Disable this splitter if avx512vl_vec_dup_gprv*[qhs]i insn is
29873 : available, because then we can broadcast from GPRs directly.
29874 : For V*[QH]I modes it requires both -mavx512vl and -mavx512bw,
29875 : for V*SI mode it requires just -mavx512vl. */
29876 : && !(TARGET_AVX512VL
29877 : && (TARGET_AVX512BW || QImode == SImode))
29878 : && reload_completed && GENERAL_REG_P (operands[1])))
29879 : return NULL;
29880 : return gen_split_3852 (insn, operands);
29881 :
29882 : case E_V16HImode:
29883 : if (!register_operand (operands[0], E_V16HImode)
29884 : || GET_MODE (x2) != E_V16HImode
29885 : || !register_operand (operands[1], E_HImode)
29886 : || !
29887 : #line 28909 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29888 : (TARGET_AVX2
29889 : /* Disable this splitter if avx512vl_vec_dup_gprv*[qhs]i insn is
29890 : available, because then we can broadcast from GPRs directly.
29891 : For V*[QH]I modes it requires both -mavx512vl and -mavx512bw,
29892 : for V*SI mode it requires just -mavx512vl. */
29893 : && !(TARGET_AVX512VL
29894 : && (TARGET_AVX512BW || HImode == SImode))
29895 : && reload_completed && GENERAL_REG_P (operands[1])))
29896 : return NULL;
29897 : return gen_split_3853 (insn, operands);
29898 :
29899 : case E_V8HImode:
29900 : if (!register_operand (operands[0], E_V8HImode)
29901 : || GET_MODE (x2) != E_V8HImode
29902 : || !register_operand (operands[1], E_HImode)
29903 : || !
29904 : #line 28909 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29905 : (TARGET_AVX2
29906 : /* Disable this splitter if avx512vl_vec_dup_gprv*[qhs]i insn is
29907 : available, because then we can broadcast from GPRs directly.
29908 : For V*[QH]I modes it requires both -mavx512vl and -mavx512bw,
29909 : for V*SI mode it requires just -mavx512vl. */
29910 : && !(TARGET_AVX512VL
29911 : && (TARGET_AVX512BW || HImode == SImode))
29912 : && reload_completed && GENERAL_REG_P (operands[1])))
29913 : return NULL;
29914 : return gen_split_3854 (insn, operands);
29915 :
29916 : case E_V8SImode:
29917 : if (!register_operand (operands[0], E_V8SImode)
29918 : || GET_MODE (x2) != E_V8SImode
29919 : || !register_operand (operands[1], E_SImode))
29920 : return NULL;
29921 : if (
29922 : #line 28909 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29923 : (TARGET_AVX2
29924 : /* Disable this splitter if avx512vl_vec_dup_gprv*[qhs]i insn is
29925 : available, because then we can broadcast from GPRs directly.
29926 : For V*[QH]I modes it requires both -mavx512vl and -mavx512bw,
29927 : for V*SI mode it requires just -mavx512vl. */
29928 : && !(TARGET_AVX512VL
29929 : && (TARGET_AVX512BW || SImode == SImode))
29930 : && reload_completed && GENERAL_REG_P (operands[1])))
29931 : return gen_split_3855 (insn, operands);
29932 : if (!
29933 : #line 28932 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29934 : (TARGET_AVX && !TARGET_AVX2 && reload_completed))
29935 : return NULL;
29936 : return gen_split_3861 (insn, operands);
29937 :
29938 : case E_V4SImode:
29939 : if (!register_operand (operands[0], E_V4SImode)
29940 : || GET_MODE (x2) != E_V4SImode
29941 : || !register_operand (operands[1], E_SImode)
29942 : || !
29943 : #line 28909 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29944 : (TARGET_AVX2
29945 : /* Disable this splitter if avx512vl_vec_dup_gprv*[qhs]i insn is
29946 : available, because then we can broadcast from GPRs directly.
29947 : For V*[QH]I modes it requires both -mavx512vl and -mavx512bw,
29948 : for V*SI mode it requires just -mavx512vl. */
29949 : && !(TARGET_AVX512VL
29950 : && (TARGET_AVX512BW || SImode == SImode))
29951 : && reload_completed && GENERAL_REG_P (operands[1])))
29952 : return NULL;
29953 : return gen_split_3856 (insn, operands);
29954 :
29955 : case E_V16HFmode:
29956 : if (!register_operand (operands[0], E_V16HFmode)
29957 : || GET_MODE (x2) != E_V16HFmode
29958 : || !register_operand (operands[1], E_HFmode)
29959 : || !
29960 : #line 28909 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29961 : (TARGET_AVX2
29962 : /* Disable this splitter if avx512vl_vec_dup_gprv*[qhs]i insn is
29963 : available, because then we can broadcast from GPRs directly.
29964 : For V*[QH]I modes it requires both -mavx512vl and -mavx512bw,
29965 : for V*SI mode it requires just -mavx512vl. */
29966 : && !(TARGET_AVX512VL
29967 : && (TARGET_AVX512BW || HFmode == SImode))
29968 : && reload_completed && GENERAL_REG_P (operands[1])))
29969 : return NULL;
29970 : return gen_split_3857 (insn, operands);
29971 :
29972 : case E_V8HFmode:
29973 : if (!register_operand (operands[0], E_V8HFmode)
29974 : || GET_MODE (x2) != E_V8HFmode
29975 : || !register_operand (operands[1], E_HFmode)
29976 : || !
29977 : #line 28909 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29978 : (TARGET_AVX2
29979 : /* Disable this splitter if avx512vl_vec_dup_gprv*[qhs]i insn is
29980 : available, because then we can broadcast from GPRs directly.
29981 : For V*[QH]I modes it requires both -mavx512vl and -mavx512bw,
29982 : for V*SI mode it requires just -mavx512vl. */
29983 : && !(TARGET_AVX512VL
29984 : && (TARGET_AVX512BW || HFmode == SImode))
29985 : && reload_completed && GENERAL_REG_P (operands[1])))
29986 : return NULL;
29987 : return gen_split_3858 (insn, operands);
29988 :
29989 : case E_V16BFmode:
29990 : if (!register_operand (operands[0], E_V16BFmode)
29991 : || GET_MODE (x2) != E_V16BFmode
29992 : || !register_operand (operands[1], E_BFmode)
29993 : || !
29994 : #line 28909 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29995 : (TARGET_AVX2
29996 : /* Disable this splitter if avx512vl_vec_dup_gprv*[qhs]i insn is
29997 : available, because then we can broadcast from GPRs directly.
29998 : For V*[QH]I modes it requires both -mavx512vl and -mavx512bw,
29999 : for V*SI mode it requires just -mavx512vl. */
30000 : && !(TARGET_AVX512VL
30001 : && (TARGET_AVX512BW || BFmode == SImode))
30002 : && reload_completed && GENERAL_REG_P (operands[1])))
30003 : return NULL;
30004 : return gen_split_3859 (insn, operands);
30005 :
30006 : case E_V8BFmode:
30007 : if (!register_operand (operands[0], E_V8BFmode)
30008 : || GET_MODE (x2) != E_V8BFmode
30009 : || !register_operand (operands[1], E_BFmode)
30010 : || !
30011 : #line 28909 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30012 : (TARGET_AVX2
30013 : /* Disable this splitter if avx512vl_vec_dup_gprv*[qhs]i insn is
30014 : available, because then we can broadcast from GPRs directly.
30015 : For V*[QH]I modes it requires both -mavx512vl and -mavx512bw,
30016 : for V*SI mode it requires just -mavx512vl. */
30017 : && !(TARGET_AVX512VL
30018 : && (TARGET_AVX512BW || BFmode == SImode))
30019 : && reload_completed && GENERAL_REG_P (operands[1])))
30020 : return NULL;
30021 : return gen_split_3860 (insn, operands);
30022 :
30023 : case E_V8SFmode:
30024 : if (!register_operand (operands[0], E_V8SFmode)
30025 : || GET_MODE (x2) != E_V8SFmode
30026 : || !register_operand (operands[1], E_SFmode)
30027 : || !
30028 : #line 28932 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30029 : (TARGET_AVX && !TARGET_AVX2 && reload_completed))
30030 : return NULL;
30031 : return gen_split_3862 (insn, operands);
30032 :
30033 : case E_V4DImode:
30034 : if (!register_operand (operands[0], E_V4DImode)
30035 : || GET_MODE (x2) != E_V4DImode
30036 : || !register_operand (operands[1], E_DImode)
30037 : || !
30038 : #line 28932 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30039 : (TARGET_AVX && !TARGET_AVX2 && reload_completed))
30040 : return NULL;
30041 : return gen_split_3863 (insn, operands);
30042 :
30043 : case E_V4DFmode:
30044 : if (!register_operand (operands[0], E_V4DFmode)
30045 : || GET_MODE (x2) != E_V4DFmode
30046 : || !register_operand (operands[1], E_DFmode)
30047 : || !
30048 : #line 28932 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30049 : (TARGET_AVX && !TARGET_AVX2 && reload_completed))
30050 : return NULL;
30051 : return gen_split_3864 (insn, operands);
30052 :
30053 : default:
30054 : return NULL;
30055 : }
30056 :
30057 : default:
30058 : return NULL;
30059 : }
30060 : }
30061 :
30062 : rtx_insn *
30063 : split_87 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
30064 : {
30065 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
30066 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
30067 : rtx x10, x11, x12, x13, x14;
30068 : rtx_insn *res ATTRIBUTE_UNUSED;
30069 : x2 = XEXP (x1, 1);
30070 : operands[1] = x2;
30071 : res = split_84 (x1, insn);
30072 : if (res != NULL_RTX)
30073 : return res;
30074 : switch (GET_CODE (x2))
30075 : {
30076 : case UNSPEC:
30077 : return split_81 (x1, insn);
30078 :
30079 : case VEC_MERGE:
30080 : return split_85 (x1, insn);
30081 :
30082 : case AND:
30083 : case IOR:
30084 : case XOR:
30085 : case NOT:
30086 : return split_82 (x1, insn);
30087 :
30088 : case VEC_SELECT:
30089 : return split_83 (x1, insn);
30090 :
30091 : case PLUS:
30092 : x3 = XEXP (x2, 0);
30093 : switch (GET_CODE (x3))
30094 : {
30095 : case UNSPEC:
30096 : switch (pattern194 (x2))
30097 : {
30098 : case 0:
30099 : if (!(
30100 : #line 7578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30101 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
30102 : && ix86_pre_reload_split ()) &&
30103 : #line 7581 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30104 : ( 1)))
30105 : return NULL;
30106 : return gen_split_1580 (insn, operands);
30107 :
30108 : case 1:
30109 : if (!((
30110 : #line 7578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30111 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
30112 : && ix86_pre_reload_split ()) &&
30113 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30114 : (TARGET_AVX512VL)) &&
30115 : #line 7581 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30116 : ( 1)))
30117 : return NULL;
30118 : return gen_split_1581 (insn, operands);
30119 :
30120 : case 2:
30121 : if (!((
30122 : #line 7578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30123 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
30124 : && ix86_pre_reload_split ()) &&
30125 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30126 : (TARGET_AVX512VL)) &&
30127 : #line 7581 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30128 : ( 1)))
30129 : return NULL;
30130 : return gen_split_1582 (insn, operands);
30131 :
30132 : case 3:
30133 : if (!(
30134 : #line 7595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30135 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
30136 : && ix86_pre_reload_split ()) &&
30137 : #line 7598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30138 : ( 1)))
30139 : return NULL;
30140 : return gen_split_1583 (insn, operands);
30141 :
30142 : case 4:
30143 : if (!((
30144 : #line 7595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30145 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
30146 : && ix86_pre_reload_split ()) &&
30147 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30148 : (TARGET_AVX512VL)) &&
30149 : #line 7598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30150 : ( 1)))
30151 : return NULL;
30152 : return gen_split_1584 (insn, operands);
30153 :
30154 : case 5:
30155 : if (!((
30156 : #line 7595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30157 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
30158 : && ix86_pre_reload_split ()) &&
30159 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30160 : (TARGET_AVX512VL)) &&
30161 : #line 7598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30162 : ( 1)))
30163 : return NULL;
30164 : return gen_split_1585 (insn, operands);
30165 :
30166 : case 6:
30167 : if (!(
30168 : #line 7613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30169 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
30170 : && ix86_pre_reload_split ()) &&
30171 : #line 7616 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30172 : ( 1)))
30173 : return NULL;
30174 : return gen_split_1586 (insn, operands);
30175 :
30176 : case 7:
30177 : if (!((
30178 : #line 7613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30179 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
30180 : && ix86_pre_reload_split ()) &&
30181 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30182 : (TARGET_AVX512VL)) &&
30183 : #line 7616 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30184 : ( 1)))
30185 : return NULL;
30186 : return gen_split_1588 (insn, operands);
30187 :
30188 : case 8:
30189 : if (!((
30190 : #line 7613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30191 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
30192 : && ix86_pre_reload_split ()) &&
30193 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30194 : (TARGET_AVX512VL)) &&
30195 : #line 7616 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30196 : ( 1)))
30197 : return NULL;
30198 : return gen_split_1590 (insn, operands);
30199 :
30200 : case 9:
30201 : if (!(
30202 : #line 7613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30203 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
30204 : && ix86_pre_reload_split ()) &&
30205 : #line 7616 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30206 : ( 1)))
30207 : return NULL;
30208 : return gen_split_1587 (insn, operands);
30209 :
30210 : case 10:
30211 : if (!((
30212 : #line 7613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30213 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
30214 : && ix86_pre_reload_split ()) &&
30215 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30216 : (TARGET_AVX512VL)) &&
30217 : #line 7616 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30218 : ( 1)))
30219 : return NULL;
30220 : return gen_split_1589 (insn, operands);
30221 :
30222 : case 11:
30223 : if (!((
30224 : #line 7613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30225 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
30226 : && ix86_pre_reload_split ()) &&
30227 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30228 : (TARGET_AVX512VL)) &&
30229 : #line 7616 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30230 : ( 1)))
30231 : return NULL;
30232 : return gen_split_1591 (insn, operands);
30233 :
30234 : default:
30235 : return NULL;
30236 : }
30237 :
30238 : case REG:
30239 : case SUBREG:
30240 : case MEM:
30241 : switch (pattern244 (x2))
30242 : {
30243 : case 0:
30244 : if (!((
30245 : #line 16723 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30246 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30247 : #line 572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30248 : (TARGET_AVX512BW)) &&
30249 : #line 16725 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30250 : ( 1)))
30251 : return NULL;
30252 : return gen_split_3298 (insn, operands);
30253 :
30254 : case 1:
30255 : if (!((
30256 : #line 16723 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30257 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30258 : #line 572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30259 : (TARGET_AVX2)) &&
30260 : #line 16725 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30261 : ( 1)))
30262 : return NULL;
30263 : return gen_split_3299 (insn, operands);
30264 :
30265 : case 2:
30266 : if (!(
30267 : #line 16723 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30268 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30269 : #line 16725 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30270 : ( 1)))
30271 : return NULL;
30272 : return gen_split_3300 (insn, operands);
30273 :
30274 : case 3:
30275 : if (!((
30276 : #line 16723 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30277 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30278 : #line 573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30279 : (TARGET_AVX512BW)) &&
30280 : #line 16725 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30281 : ( 1)))
30282 : return NULL;
30283 : return gen_split_3301 (insn, operands);
30284 :
30285 : case 4:
30286 : if (!((
30287 : #line 16723 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30288 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30289 : #line 573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30290 : (TARGET_AVX2)) &&
30291 : #line 16725 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30292 : ( 1)))
30293 : return NULL;
30294 : return gen_split_3302 (insn, operands);
30295 :
30296 : case 5:
30297 : if (!(
30298 : #line 16723 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30299 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30300 : #line 16725 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30301 : ( 1)))
30302 : return NULL;
30303 : return gen_split_3303 (insn, operands);
30304 :
30305 : case 6:
30306 : if (!((
30307 : #line 16723 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30308 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30309 : #line 574 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30310 : (TARGET_AVX512F)) &&
30311 : #line 16725 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30312 : ( 1)))
30313 : return NULL;
30314 : return gen_split_3304 (insn, operands);
30315 :
30316 : case 7:
30317 : if (!((
30318 : #line 16723 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30319 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30320 : #line 574 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30321 : (TARGET_AVX2)) &&
30322 : #line 16725 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30323 : ( 1)))
30324 : return NULL;
30325 : return gen_split_3305 (insn, operands);
30326 :
30327 : case 8:
30328 : if (!(
30329 : #line 16723 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30330 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30331 : #line 16725 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30332 : ( 1)))
30333 : return NULL;
30334 : return gen_split_3306 (insn, operands);
30335 :
30336 : case 9:
30337 : if (!((
30338 : #line 16723 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30339 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30340 : #line 575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30341 : (TARGET_AVX512F)) &&
30342 : #line 16725 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30343 : ( 1)))
30344 : return NULL;
30345 : return gen_split_3307 (insn, operands);
30346 :
30347 : case 10:
30348 : if (!((
30349 : #line 16723 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30350 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30351 : #line 575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30352 : (TARGET_AVX2)) &&
30353 : #line 16725 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30354 : ( 1)))
30355 : return NULL;
30356 : return gen_split_3308 (insn, operands);
30357 :
30358 : case 11:
30359 : if (!(
30360 : #line 16723 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30361 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30362 : #line 16725 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30363 : ( 1)))
30364 : return NULL;
30365 : return gen_split_3309 (insn, operands);
30366 :
30367 : default:
30368 : return NULL;
30369 : }
30370 :
30371 : default:
30372 : return NULL;
30373 : }
30374 :
30375 : case VEC_CONCAT:
30376 : x3 = XEXP (x2, 0);
30377 : switch (GET_CODE (x3))
30378 : {
30379 : case ZERO_EXTEND:
30380 : switch (pattern188 (x2))
30381 : {
30382 : case 0:
30383 : if (!(
30384 : #line 12496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30385 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()) &&
30386 : #line 12498 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30387 : ( 1)))
30388 : return NULL;
30389 : return gen_split_1629 (insn, operands);
30390 :
30391 : case 1:
30392 : if (!(
30393 : #line 12610 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30394 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30395 : #line 12612 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30396 : ( 1)))
30397 : return NULL;
30398 : return gen_split_1633 (insn, operands);
30399 :
30400 : default:
30401 : return NULL;
30402 : }
30403 :
30404 : case VEC_SELECT:
30405 : if (GET_MODE (x3) != E_DFmode)
30406 : return NULL;
30407 : x4 = XEXP (x3, 1);
30408 : if (GET_CODE (x4) != PARALLEL
30409 : || XVECLEN (x4, 0) != 1)
30410 : return NULL;
30411 : x5 = XVECEXP (x4, 0, 0);
30412 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
30413 : || !memory_operand (operands[0], E_V2DFmode)
30414 : || GET_MODE (x2) != E_V2DFmode)
30415 : return NULL;
30416 : x6 = XEXP (x2, 1);
30417 : operands[1] = x6;
30418 : if (!register_operand (operands[1], E_DFmode))
30419 : return NULL;
30420 : x7 = XEXP (x3, 0);
30421 : if (!rtx_equal_p (x7, operands[0])
30422 : || !
30423 : #line 15153 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30424 : (TARGET_SSE2 && reload_completed))
30425 : return NULL;
30426 : return gen_split_3255 (insn, operands);
30427 :
30428 : case REG:
30429 : case SUBREG:
30430 : case MEM:
30431 : operands[1] = x3;
30432 : res = split_80 (x1, insn);
30433 : if (res != NULL_RTX)
30434 : return res;
30435 : if (GET_CODE (x3) != SUBREG
30436 : || maybe_ne (SUBREG_BYTE (x3), 0))
30437 : return NULL;
30438 : x6 = XEXP (x2, 1);
30439 : if (GET_CODE (x6) != SUBREG)
30440 : return NULL;
30441 : x7 = XEXP (x3, 0);
30442 : switch (GET_CODE (x7))
30443 : {
30444 : case REG:
30445 : case SUBREG:
30446 : operands[1] = x7;
30447 : if (!register_operand (operands[1], E_TImode)
30448 : || maybe_ne (SUBREG_BYTE (x6), 8)
30449 : || GET_MODE (x6) != E_DImode
30450 : || !register_operand (operands[0], E_V2DImode)
30451 : || GET_MODE (x2) != E_V2DImode
30452 : || GET_MODE (x3) != E_DImode)
30453 : return NULL;
30454 : x8 = XEXP (x6, 0);
30455 : if (!rtx_equal_p (x8, operands[1])
30456 : || !
30457 : #line 22224 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30458 : (TARGET_SSE2 && ix86_pre_reload_split ()))
30459 : return NULL;
30460 : return gen_split_3516 (insn, operands);
30461 :
30462 : case UNSPEC:
30463 : if (XVECLEN (x7, 0) != 1
30464 : || XINT (x7, 1) != 120
30465 : || GET_MODE (x7) != E_V16QImode
30466 : || pattern1265 (x6) != 0
30467 : || !register_operand (operands[0], E_V4DImode)
30468 : || GET_MODE (x2) != E_V4DImode
30469 : || GET_MODE (x3) != E_V2DImode)
30470 : return NULL;
30471 : x9 = XVECEXP (x7, 0, 0);
30472 : operands[1] = x9;
30473 : if (!memory_operand (operands[1], E_V16QImode))
30474 : return NULL;
30475 : x8 = XEXP (x6, 0);
30476 : x10 = XVECEXP (x8, 0, 0);
30477 : if (!rtx_equal_p (x10, operands[1])
30478 : || !(
30479 : #line 28852 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30480 : (TARGET_AVX2 && ix86_pre_reload_split ()) &&
30481 : #line 28854 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30482 : ( 1)))
30483 : return NULL;
30484 : return gen_split_3850 (insn, operands);
30485 :
30486 : default:
30487 : return NULL;
30488 : }
30489 :
30490 : case VEC_CONCAT:
30491 : if (pattern418 (x2) != 0)
30492 : return NULL;
30493 : x7 = XEXP (x3, 0);
30494 : operands[1] = x7;
30495 : switch (GET_MODE (operands[0]))
30496 : {
30497 : case E_V16SImode:
30498 : if (pattern1490 (x2,
30499 : E_V8SImode,
30500 : E_V4SImode,
30501 : E_V16SImode) != 0
30502 : || !(
30503 : #line 31194 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30504 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
30505 : #line 31196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30506 : ( reload_completed)))
30507 : return NULL;
30508 : return gen_split_3942 (insn, operands);
30509 :
30510 : case E_V16SFmode:
30511 : if (pattern1490 (x2,
30512 : E_V8SFmode,
30513 : E_V4SFmode,
30514 : E_V16SFmode) != 0
30515 : || !(
30516 : #line 31194 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30517 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
30518 : #line 31196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30519 : ( reload_completed)))
30520 : return NULL;
30521 : return gen_split_3943 (insn, operands);
30522 :
30523 : case E_V8DFmode:
30524 : if (pattern1490 (x2,
30525 : E_V4DFmode,
30526 : E_V2DFmode,
30527 : E_V8DFmode) != 0
30528 : || !(
30529 : #line 31194 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30530 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
30531 : #line 31196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30532 : ( reload_completed)))
30533 : return NULL;
30534 : return gen_split_3944 (insn, operands);
30535 :
30536 : default:
30537 : return NULL;
30538 : }
30539 :
30540 : default:
30541 : return NULL;
30542 : }
30543 :
30544 : case MINUS:
30545 : switch (pattern244 (x2))
30546 : {
30547 : case 0:
30548 : if (!((
30549 : #line 16738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30550 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30551 : #line 572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30552 : (TARGET_AVX512BW)) &&
30553 : #line 16740 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30554 : ( 1)))
30555 : return NULL;
30556 : return gen_split_3310 (insn, operands);
30557 :
30558 : case 1:
30559 : if (!((
30560 : #line 16738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30561 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30562 : #line 572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30563 : (TARGET_AVX2)) &&
30564 : #line 16740 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30565 : ( 1)))
30566 : return NULL;
30567 : return gen_split_3311 (insn, operands);
30568 :
30569 : case 2:
30570 : if (!(
30571 : #line 16738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30572 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30573 : #line 16740 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30574 : ( 1)))
30575 : return NULL;
30576 : return gen_split_3312 (insn, operands);
30577 :
30578 : case 3:
30579 : if (!((
30580 : #line 16738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30581 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30582 : #line 573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30583 : (TARGET_AVX512BW)) &&
30584 : #line 16740 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30585 : ( 1)))
30586 : return NULL;
30587 : return gen_split_3313 (insn, operands);
30588 :
30589 : case 4:
30590 : if (!((
30591 : #line 16738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30592 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30593 : #line 573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30594 : (TARGET_AVX2)) &&
30595 : #line 16740 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30596 : ( 1)))
30597 : return NULL;
30598 : return gen_split_3314 (insn, operands);
30599 :
30600 : case 5:
30601 : if (!(
30602 : #line 16738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30603 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30604 : #line 16740 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30605 : ( 1)))
30606 : return NULL;
30607 : return gen_split_3315 (insn, operands);
30608 :
30609 : case 6:
30610 : if (!((
30611 : #line 16738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30612 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30613 : #line 574 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30614 : (TARGET_AVX512F)) &&
30615 : #line 16740 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30616 : ( 1)))
30617 : return NULL;
30618 : return gen_split_3316 (insn, operands);
30619 :
30620 : case 7:
30621 : if (!((
30622 : #line 16738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30623 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30624 : #line 574 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30625 : (TARGET_AVX2)) &&
30626 : #line 16740 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30627 : ( 1)))
30628 : return NULL;
30629 : return gen_split_3317 (insn, operands);
30630 :
30631 : case 8:
30632 : if (!(
30633 : #line 16738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30634 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30635 : #line 16740 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30636 : ( 1)))
30637 : return NULL;
30638 : return gen_split_3318 (insn, operands);
30639 :
30640 : case 9:
30641 : if (!((
30642 : #line 16738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30643 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30644 : #line 575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30645 : (TARGET_AVX512F)) &&
30646 : #line 16740 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30647 : ( 1)))
30648 : return NULL;
30649 : return gen_split_3319 (insn, operands);
30650 :
30651 : case 10:
30652 : if (!((
30653 : #line 16738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30654 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30655 : #line 575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30656 : (TARGET_AVX2)) &&
30657 : #line 16740 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30658 : ( 1)))
30659 : return NULL;
30660 : return gen_split_3320 (insn, operands);
30661 :
30662 : case 11:
30663 : if (!(
30664 : #line 16738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30665 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30666 : #line 16740 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30667 : ( 1)))
30668 : return NULL;
30669 : return gen_split_3321 (insn, operands);
30670 :
30671 : default:
30672 : return NULL;
30673 : }
30674 :
30675 : case EQ:
30676 : x3 = XEXP (x2, 0);
30677 : switch (GET_CODE (x3))
30678 : {
30679 : case US_MINUS:
30680 : x7 = XEXP (x3, 0);
30681 : operands[1] = x7;
30682 : x4 = XEXP (x3, 1);
30683 : operands[2] = x4;
30684 : x6 = XEXP (x2, 1);
30685 : operands[3] = x6;
30686 : switch (GET_MODE (operands[0]))
30687 : {
30688 : case E_V32QImode:
30689 : if (pattern961 (x2,
30690 : E_V32QImode) != 0
30691 : || !(
30692 : #line 16776 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30693 : (TARGET_SSE2
30694 : && (V32QImode != V8HImode || TARGET_SSE4_1)
30695 : && ix86_binary_operator_ok (US_MINUS, V32QImode, operands)) &&
30696 : #line 724 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30697 : (TARGET_AVX2)))
30698 : return NULL;
30699 : return gen_split_3322 (insn, operands);
30700 :
30701 : case E_V16QImode:
30702 : if (pattern961 (x2,
30703 : E_V16QImode) != 0
30704 : || !
30705 : #line 16776 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30706 : (TARGET_SSE2
30707 : && (V16QImode != V8HImode || TARGET_SSE4_1)
30708 : && ix86_binary_operator_ok (US_MINUS, V16QImode, operands)))
30709 : return NULL;
30710 : return gen_split_3323 (insn, operands);
30711 :
30712 : case E_V16HImode:
30713 : if (pattern961 (x2,
30714 : E_V16HImode) != 0
30715 : || !(
30716 : #line 16776 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30717 : (TARGET_SSE2
30718 : && (V16HImode != V8HImode || TARGET_SSE4_1)
30719 : && ix86_binary_operator_ok (US_MINUS, V16HImode, operands)) &&
30720 : #line 725 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30721 : (TARGET_AVX2)))
30722 : return NULL;
30723 : return gen_split_3324 (insn, operands);
30724 :
30725 : case E_V8HImode:
30726 : if (pattern961 (x2,
30727 : E_V8HImode) != 0
30728 : || !
30729 : #line 16776 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30730 : (TARGET_SSE2
30731 : && (V8HImode != V8HImode || TARGET_SSE4_1)
30732 : && ix86_binary_operator_ok (US_MINUS, V8HImode, operands)))
30733 : return NULL;
30734 : return gen_split_3325 (insn, operands);
30735 :
30736 : default:
30737 : return NULL;
30738 : }
30739 :
30740 : case EQ:
30741 : x4 = XEXP (x3, 1);
30742 : operands[3] = x4;
30743 : x6 = XEXP (x2, 1);
30744 : operands[4] = x6;
30745 : x7 = XEXP (x3, 0);
30746 : switch (GET_CODE (x7))
30747 : {
30748 : case LSHIFTRT:
30749 : x11 = XEXP (x7, 0);
30750 : operands[1] = x11;
30751 : x12 = XEXP (x7, 1);
30752 : operands[2] = x12;
30753 : if (!const_int_operand (operands[2], E_SImode))
30754 : return NULL;
30755 : switch (GET_MODE (operands[0]))
30756 : {
30757 : case E_V16HImode:
30758 : if (pattern1266 (x2,
30759 : E_V16HImode) != 0
30760 : || !(
30761 : #line 17973 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30762 : (INTVAL (operands[2]) == GET_MODE_PRECISION (HImode) - 1) &&
30763 : #line 763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30764 : (TARGET_AVX2)))
30765 : return NULL;
30766 : return gen_split_3370 (insn, operands);
30767 :
30768 : case E_V8HImode:
30769 : if (pattern1266 (x2,
30770 : E_V8HImode) != 0
30771 : || !
30772 : #line 17973 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30773 : (INTVAL (operands[2]) == GET_MODE_PRECISION (HImode) - 1))
30774 : return NULL;
30775 : return gen_split_3371 (insn, operands);
30776 :
30777 : case E_V8SImode:
30778 : if (pattern1266 (x2,
30779 : E_V8SImode) != 0
30780 : || !(
30781 : #line 17973 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30782 : (INTVAL (operands[2]) == GET_MODE_PRECISION (SImode) - 1) &&
30783 : #line 764 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30784 : (TARGET_AVX2)))
30785 : return NULL;
30786 : return gen_split_3372 (insn, operands);
30787 :
30788 : case E_V4SImode:
30789 : if (pattern1266 (x2,
30790 : E_V4SImode) != 0
30791 : || !
30792 : #line 17973 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30793 : (INTVAL (operands[2]) == GET_MODE_PRECISION (SImode) - 1))
30794 : return NULL;
30795 : return gen_split_3373 (insn, operands);
30796 :
30797 : case E_V4DImode:
30798 : if (pattern1266 (x2,
30799 : E_V4DImode) != 0
30800 : || !(
30801 : #line 17973 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30802 : (INTVAL (operands[2]) == GET_MODE_PRECISION (DImode) - 1) &&
30803 : #line 765 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30804 : (TARGET_AVX2)))
30805 : return NULL;
30806 : return gen_split_3374 (insn, operands);
30807 :
30808 : case E_V2DImode:
30809 : if (pattern1266 (x2,
30810 : E_V2DImode) != 0
30811 : || !
30812 : #line 17973 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30813 : (INTVAL (operands[2]) == GET_MODE_PRECISION (DImode) - 1))
30814 : return NULL;
30815 : return gen_split_3375 (insn, operands);
30816 :
30817 : default:
30818 : return NULL;
30819 : }
30820 :
30821 : case EQ:
30822 : x11 = XEXP (x7, 0);
30823 : operands[1] = x11;
30824 : x12 = XEXP (x7, 1);
30825 : operands[2] = x12;
30826 : switch (GET_MODE (operands[0]))
30827 : {
30828 : case E_V32QImode:
30829 : if (pattern1155 (x2,
30830 : E_V32QImode) != 0
30831 : || !((
30832 : #line 18404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30833 : (TARGET_SSE4_1 && ix86_pre_reload_split ()) &&
30834 : #line 584 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30835 : (TARGET_AVX2)) &&
30836 : #line 18406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30837 : ( 1)))
30838 : return NULL;
30839 : return gen_split_3378 (insn, operands);
30840 :
30841 : case E_V16QImode:
30842 : if (pattern1155 (x2,
30843 : E_V16QImode) != 0
30844 : || !(
30845 : #line 18404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30846 : (TARGET_SSE4_1 && ix86_pre_reload_split ()) &&
30847 : #line 18406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30848 : ( 1)))
30849 : return NULL;
30850 : return gen_split_3379 (insn, operands);
30851 :
30852 : case E_V16HImode:
30853 : if (pattern1155 (x2,
30854 : E_V16HImode) != 0
30855 : || !((
30856 : #line 18404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30857 : (TARGET_SSE4_1 && ix86_pre_reload_split ()) &&
30858 : #line 585 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30859 : (TARGET_AVX2)) &&
30860 : #line 18406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30861 : ( 1)))
30862 : return NULL;
30863 : return gen_split_3380 (insn, operands);
30864 :
30865 : case E_V8HImode:
30866 : if (pattern1155 (x2,
30867 : E_V8HImode) != 0
30868 : || !(
30869 : #line 18404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30870 : (TARGET_SSE4_1 && ix86_pre_reload_split ()) &&
30871 : #line 18406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30872 : ( 1)))
30873 : return NULL;
30874 : return gen_split_3381 (insn, operands);
30875 :
30876 : case E_V8SImode:
30877 : if (pattern1155 (x2,
30878 : E_V8SImode) != 0
30879 : || !((
30880 : #line 18404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30881 : (TARGET_SSE4_1 && ix86_pre_reload_split ()) &&
30882 : #line 586 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30883 : (TARGET_AVX2)) &&
30884 : #line 18406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30885 : ( 1)))
30886 : return NULL;
30887 : return gen_split_3382 (insn, operands);
30888 :
30889 : case E_V4SImode:
30890 : if (pattern1155 (x2,
30891 : E_V4SImode) != 0
30892 : || !(
30893 : #line 18404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30894 : (TARGET_SSE4_1 && ix86_pre_reload_split ()) &&
30895 : #line 18406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30896 : ( 1)))
30897 : return NULL;
30898 : return gen_split_3383 (insn, operands);
30899 :
30900 : case E_V4DImode:
30901 : if (pattern1155 (x2,
30902 : E_V4DImode) != 0
30903 : || !((
30904 : #line 18404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30905 : (TARGET_SSE4_1 && ix86_pre_reload_split ()) &&
30906 : #line 587 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30907 : (TARGET_AVX2)) &&
30908 : #line 18406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30909 : ( 1)))
30910 : return NULL;
30911 : return gen_split_3384 (insn, operands);
30912 :
30913 : case E_V2DImode:
30914 : if (pattern1155 (x2,
30915 : E_V2DImode) != 0
30916 : || !(
30917 : #line 18404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30918 : (TARGET_SSE4_1 && ix86_pre_reload_split ()) &&
30919 : #line 18406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30920 : ( 1)))
30921 : return NULL;
30922 : return gen_split_3385 (insn, operands);
30923 :
30924 : default:
30925 : return NULL;
30926 : }
30927 :
30928 : default:
30929 : return NULL;
30930 : }
30931 :
30932 : default:
30933 : return NULL;
30934 : }
30935 :
30936 : case LT:
30937 : switch (pattern204 (x2))
30938 : {
30939 : case 0:
30940 : if (!((
30941 : #line 17569 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30942 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30943 : #line 732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30944 : (TARGET_AVX2)) &&
30945 : #line 17571 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30946 : ( 1)))
30947 : return NULL;
30948 : return gen_split_3326 (insn, operands);
30949 :
30950 : case 1:
30951 : if (!(
30952 : #line 17569 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30953 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30954 : #line 17571 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30955 : ( 1)))
30956 : return NULL;
30957 : return gen_split_3327 (insn, operands);
30958 :
30959 : case 2:
30960 : if (!((
30961 : #line 17569 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30962 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30963 : #line 733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30964 : (TARGET_AVX2)) &&
30965 : #line 17571 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30966 : ( 1)))
30967 : return NULL;
30968 : return gen_split_3328 (insn, operands);
30969 :
30970 : case 3:
30971 : if (!(
30972 : #line 17569 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30973 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30974 : #line 17571 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30975 : ( 1)))
30976 : return NULL;
30977 : return gen_split_3329 (insn, operands);
30978 :
30979 : default:
30980 : return NULL;
30981 : }
30982 :
30983 : case ASHIFT:
30984 : switch (pattern246 (x2))
30985 : {
30986 : case 0:
30987 : if (!(
30988 : #line 17836 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30989 : (TARGET_AVX512F && GET_MODE_UNIT_BITSIZE (V32HImode)
30990 : > INTVAL (XVECEXP (operands[2], 0, 0))) &&
30991 : #line 773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30992 : (TARGET_AVX512BW)))
30993 : return NULL;
30994 : return gen_split_3358 (insn, operands);
30995 :
30996 : case 1:
30997 : if (!
30998 : #line 17836 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30999 : (TARGET_AVX512F && GET_MODE_UNIT_BITSIZE (V16SImode)
31000 : > INTVAL (XVECEXP (operands[2], 0, 0))))
31001 : return NULL;
31002 : return gen_split_3361 (insn, operands);
31003 :
31004 : case 2:
31005 : if (!
31006 : #line 17836 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31007 : (TARGET_AVX512F && GET_MODE_UNIT_BITSIZE (V8DImode)
31008 : > INTVAL (XVECEXP (operands[2], 0, 0))))
31009 : return NULL;
31010 : return gen_split_3364 (insn, operands);
31011 :
31012 : case 3:
31013 : if (!(
31014 : #line 17895 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31015 : (TARGET_SSE2 && TARGET_64BIT
31016 : && ix86_pre_reload_split ()) &&
31017 : #line 17898 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31018 : ( 1)))
31019 : return NULL;
31020 : return gen_split_3367 (insn, operands);
31021 :
31022 : default:
31023 : return NULL;
31024 : }
31025 :
31026 : case LSHIFTRT:
31027 : switch (pattern246 (x2))
31028 : {
31029 : case 0:
31030 : if (!(
31031 : #line 17836 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31032 : (TARGET_AVX512F && GET_MODE_UNIT_BITSIZE (V32HImode)
31033 : > INTVAL (XVECEXP (operands[2], 0, 0))) &&
31034 : #line 773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31035 : (TARGET_AVX512BW)))
31036 : return NULL;
31037 : return gen_split_3359 (insn, operands);
31038 :
31039 : case 1:
31040 : if (!
31041 : #line 17836 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31042 : (TARGET_AVX512F && GET_MODE_UNIT_BITSIZE (V16SImode)
31043 : > INTVAL (XVECEXP (operands[2], 0, 0))))
31044 : return NULL;
31045 : return gen_split_3362 (insn, operands);
31046 :
31047 : case 2:
31048 : if (!
31049 : #line 17836 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31050 : (TARGET_AVX512F && GET_MODE_UNIT_BITSIZE (V8DImode)
31051 : > INTVAL (XVECEXP (operands[2], 0, 0))))
31052 : return NULL;
31053 : return gen_split_3365 (insn, operands);
31054 :
31055 : case 3:
31056 : if (!(
31057 : #line 17924 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31058 : (TARGET_SSE2 && TARGET_64BIT
31059 : && ix86_pre_reload_split ()) &&
31060 : #line 17927 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31061 : ( 1)))
31062 : return NULL;
31063 : return gen_split_3368 (insn, operands);
31064 :
31065 : default:
31066 : return NULL;
31067 : }
31068 :
31069 : case ASHIFTRT:
31070 : x3 = XEXP (x2, 0);
31071 : operands[1] = x3;
31072 : x6 = XEXP (x2, 1);
31073 : operands[2] = x6;
31074 : switch (GET_CODE (operands[2]))
31075 : {
31076 : case CONST_VECTOR:
31077 : switch (GET_MODE (operands[0]))
31078 : {
31079 : case E_V32HImode:
31080 : if (pattern245 (x2,
31081 : E_V32HImode) == 0
31082 : && (
31083 : #line 17836 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31084 : (TARGET_AVX512F && GET_MODE_UNIT_BITSIZE (V32HImode)
31085 : > INTVAL (XVECEXP (operands[2], 0, 0))) &&
31086 : #line 773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31087 : (TARGET_AVX512BW)))
31088 : return gen_split_3360 (insn, operands);
31089 : break;
31090 :
31091 : case E_V16SImode:
31092 : if (pattern245 (x2,
31093 : E_V16SImode) == 0
31094 : &&
31095 : #line 17836 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31096 : (TARGET_AVX512F && GET_MODE_UNIT_BITSIZE (V16SImode)
31097 : > INTVAL (XVECEXP (operands[2], 0, 0))))
31098 : return gen_split_3363 (insn, operands);
31099 : break;
31100 :
31101 : case E_V8DImode:
31102 : if (pattern245 (x2,
31103 : E_V8DImode) == 0
31104 : &&
31105 : #line 17836 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31106 : (TARGET_AVX512F && GET_MODE_UNIT_BITSIZE (V8DImode)
31107 : > INTVAL (XVECEXP (operands[2], 0, 0))))
31108 : return gen_split_3366 (insn, operands);
31109 : break;
31110 :
31111 : default:
31112 : break;
31113 : }
31114 : break;
31115 :
31116 : case CONST_INT:
31117 : if (const_0_to_255_operand (operands[2], E_SImode)
31118 : && register_operand (operands[0], E_V1TImode)
31119 : && GET_MODE (x2) == E_V1TImode
31120 : && register_operand (operands[1], E_V1TImode)
31121 : && (
31122 : #line 17954 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31123 : (TARGET_SSE2 && TARGET_64BIT
31124 : && ix86_pre_reload_split ()) &&
31125 : #line 17957 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31126 : ( 1)))
31127 : return gen_split_3369 (insn, operands);
31128 : break;
31129 :
31130 : default:
31131 : break;
31132 : }
31133 : if (!nonmemory_operand (operands[2], E_DImode)
31134 : || !register_operand (operands[0], E_V2DImode)
31135 : || GET_MODE (x2) != E_V2DImode
31136 : || !register_operand (operands[1], E_V2DImode)
31137 : || !(
31138 : #line 27909 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31139 : (TARGET_SSE2 && !TARGET_AVX512VL && ix86_pre_reload_split ()) &&
31140 : #line 27911 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31141 : ( 1)))
31142 : return NULL;
31143 : return gen_split_3847 (insn, operands);
31144 :
31145 : case ROTATE:
31146 : if (pattern247 (x2) != 0
31147 : || !(
31148 : #line 17995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31149 : (TARGET_SSE2 && TARGET_64BIT
31150 : && ix86_pre_reload_split ()) &&
31151 : #line 17998 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31152 : ( 1)))
31153 : return NULL;
31154 : return gen_split_3376 (insn, operands);
31155 :
31156 : case ROTATERT:
31157 : if (pattern247 (x2) != 0
31158 : || !(
31159 : #line 18024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31160 : (TARGET_SSE2 && TARGET_64BIT
31161 : && ix86_pre_reload_split ()) &&
31162 : #line 18027 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31163 : ( 1)))
31164 : return NULL;
31165 : return gen_split_3377 (insn, operands);
31166 :
31167 : case VEC_DUPLICATE:
31168 : return split_86 (x1, insn);
31169 :
31170 : case SIGN_EXTEND:
31171 : x3 = XEXP (x2, 0);
31172 : if (pattern248 (x3) != 0)
31173 : return NULL;
31174 : switch (pattern693 (x2))
31175 : {
31176 : case 0:
31177 : if (!(
31178 : #line 24813 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31179 : (TARGET_SSE4_1
31180 : && ix86_pre_reload_split ()) &&
31181 : #line 24816 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31182 : ( 1)))
31183 : return NULL;
31184 : return gen_split_3630 (insn, operands);
31185 :
31186 : case 1:
31187 : if (!(
31188 : #line 24994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31189 : (TARGET_AVX2
31190 : && ix86_pre_reload_split ()) &&
31191 : #line 24997 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31192 : ( 1)))
31193 : return NULL;
31194 : return gen_split_3638 (insn, operands);
31195 :
31196 : case 2:
31197 : if (!(
31198 : #line 25447 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31199 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
31200 : #line 25449 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31201 : ( 1)))
31202 : return NULL;
31203 : return gen_split_3664 (insn, operands);
31204 :
31205 : case 3:
31206 : if (!(
31207 : #line 25290 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31208 : (TARGET_SSE4_1
31209 : && ix86_pre_reload_split ()) &&
31210 : #line 25293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31211 : ( 1)))
31212 : return NULL;
31213 : return gen_split_3656 (insn, operands);
31214 :
31215 : case 4:
31216 : if (!(
31217 : #line 25709 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31218 : (TARGET_AVX2
31219 : && ix86_pre_reload_split ()) &&
31220 : #line 25712 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31221 : ( 1)))
31222 : return NULL;
31223 : return gen_split_3675 (insn, operands);
31224 :
31225 : case 5:
31226 : if (!(
31227 : #line 25993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31228 : (TARGET_SSE4_1
31229 : && ix86_pre_reload_split ()) &&
31230 : #line 25996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31231 : ( 1)))
31232 : return NULL;
31233 : return gen_split_3687 (insn, operands);
31234 :
31235 : case 6:
31236 : if ((
31237 : #line 25088 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31238 : (TARGET_SSE4_1 && 1
31239 : && ix86_pre_reload_split ()) &&
31240 : #line 25091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31241 : ( 1)))
31242 : return gen_split_3642 (insn, operands);
31243 : if (!(
31244 : #line 25088 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31245 : (TARGET_SSE4_1 && TARGET_AVX512VL
31246 : && ix86_pre_reload_split ()) &&
31247 : #line 25091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31248 : ( 1)))
31249 : return NULL;
31250 : return gen_split_3643 (insn, operands);
31251 :
31252 : case 7:
31253 : if (!(
31254 : #line 25536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31255 : (TARGET_AVX2
31256 : && ix86_pre_reload_split ()) &&
31257 : #line 25539 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31258 : ( 1)))
31259 : return NULL;
31260 : return gen_split_3668 (insn, operands);
31261 :
31262 : case 8:
31263 : if (!(
31264 : #line 25799 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31265 : (TARGET_SSE4_1
31266 : && ix86_pre_reload_split ()) &&
31267 : #line 25802 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31268 : ( 1)))
31269 : return NULL;
31270 : return gen_split_3679 (insn, operands);
31271 :
31272 : default:
31273 : return NULL;
31274 : }
31275 :
31276 : case ZERO_EXTEND:
31277 : x3 = XEXP (x2, 0);
31278 : if (pattern248 (x3) != 0)
31279 : return NULL;
31280 : x7 = XEXP (x3, 0);
31281 : x11 = XEXP (x7, 0);
31282 : switch (GET_CODE (x11))
31283 : {
31284 : case VEC_CONCAT:
31285 : switch (pattern691 (x2))
31286 : {
31287 : case 0:
31288 : if (!(
31289 : #line 24813 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31290 : (TARGET_SSE4_1
31291 : && ix86_pre_reload_split ()) &&
31292 : #line 24816 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31293 : ( 1)))
31294 : return NULL;
31295 : return gen_split_3631 (insn, operands);
31296 :
31297 : case 1:
31298 : if (!(
31299 : #line 24994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31300 : (TARGET_AVX2
31301 : && ix86_pre_reload_split ()) &&
31302 : #line 24997 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31303 : ( 1)))
31304 : return NULL;
31305 : return gen_split_3639 (insn, operands);
31306 :
31307 : case 2:
31308 : if (!(
31309 : #line 25447 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31310 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
31311 : #line 25449 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31312 : ( 1)))
31313 : return NULL;
31314 : return gen_split_3665 (insn, operands);
31315 :
31316 : case 3:
31317 : if (!(
31318 : #line 25290 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31319 : (TARGET_SSE4_1
31320 : && ix86_pre_reload_split ()) &&
31321 : #line 25293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31322 : ( 1)))
31323 : return NULL;
31324 : return gen_split_3657 (insn, operands);
31325 :
31326 : case 4:
31327 : if (!(
31328 : #line 25709 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31329 : (TARGET_AVX2
31330 : && ix86_pre_reload_split ()) &&
31331 : #line 25712 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31332 : ( 1)))
31333 : return NULL;
31334 : return gen_split_3676 (insn, operands);
31335 :
31336 : case 5:
31337 : if (!(
31338 : #line 25993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31339 : (TARGET_SSE4_1
31340 : && ix86_pre_reload_split ()) &&
31341 : #line 25996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31342 : ( 1)))
31343 : return NULL;
31344 : return gen_split_3688 (insn, operands);
31345 :
31346 : default:
31347 : return NULL;
31348 : }
31349 :
31350 : case VEC_MERGE:
31351 : x13 = XEXP (x11, 0);
31352 : if (GET_CODE (x13) != VEC_DUPLICATE)
31353 : return NULL;
31354 : if (GET_MODE (x13) == E_V4SImode)
31355 : {
31356 : switch (pattern1045 (x2))
31357 : {
31358 : case 0:
31359 : if ((
31360 : #line 25088 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31361 : (TARGET_SSE4_1 && 1
31362 : && ix86_pre_reload_split ()) &&
31363 : #line 25091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31364 : ( 1)))
31365 : return gen_split_3644 (insn, operands);
31366 : if ((
31367 : #line 25088 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31368 : (TARGET_SSE4_1 && TARGET_AVX512VL
31369 : && ix86_pre_reload_split ()) &&
31370 : #line 25091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31371 : ( 1)))
31372 : return gen_split_3645 (insn, operands);
31373 : break;
31374 :
31375 : case 1:
31376 : if ((
31377 : #line 25536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31378 : (TARGET_AVX2
31379 : && ix86_pre_reload_split ()) &&
31380 : #line 25539 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31381 : ( 1)))
31382 : return gen_split_3669 (insn, operands);
31383 : break;
31384 :
31385 : case 2:
31386 : if ((
31387 : #line 25799 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31388 : (TARGET_SSE4_1
31389 : && ix86_pre_reload_split ()) &&
31390 : #line 25802 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31391 : ( 1)))
31392 : return gen_split_3680 (insn, operands);
31393 : break;
31394 :
31395 : default:
31396 : break;
31397 : }
31398 : }
31399 : x14 = XEXP (x11, 2);
31400 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
31401 : return NULL;
31402 : switch (pattern1046 (x2))
31403 : {
31404 : case 0:
31405 : if (!(
31406 : #line 25643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31407 : (TARGET_SSE4_1 && ix86_pre_reload_split ()) &&
31408 : #line 25645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31409 : ( 1)))
31410 : return NULL;
31411 : return gen_split_3672 (insn, operands);
31412 :
31413 : case 1:
31414 : if (!(
31415 : #line 25643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31416 : (TARGET_SSE4_1 && ix86_pre_reload_split ()) &&
31417 : #line 25645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31418 : ( 1)))
31419 : return NULL;
31420 : return gen_split_3673 (insn, operands);
31421 :
31422 : case 2:
31423 : if (!(
31424 : #line 25643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31425 : (TARGET_SSE4_1 && ix86_pre_reload_split ()) &&
31426 : #line 25645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31427 : ( 1)))
31428 : return NULL;
31429 : return gen_split_3674 (insn, operands);
31430 :
31431 : default:
31432 : return NULL;
31433 : }
31434 :
31435 : default:
31436 : return NULL;
31437 : }
31438 :
31439 : default:
31440 : return NULL;
31441 : }
31442 : }
31443 :
31444 : rtx_insn *
31445 : peephole2_12 (rtx x1 ATTRIBUTE_UNUSED,
31446 : rtx_insn *insn ATTRIBUTE_UNUSED,
31447 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31448 : {
31449 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31450 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
31451 : rtx x10, x11, x12, x13, x14;
31452 : rtx_insn *res ATTRIBUTE_UNUSED;
31453 : x2 = PATTERN (peep2_next_insn (1));
31454 : x3 = XEXP (x2, 1);
31455 : if (GET_CODE (x3) != IOR
31456 : || GET_MODE (x3) != E_SImode)
31457 : return NULL;
31458 : x4 = XEXP (x3, 0);
31459 : if (GET_CODE (x4) != AND
31460 : || GET_MODE (x4) != E_SImode)
31461 : return NULL;
31462 : x5 = XEXP (x4, 1);
31463 : if (GET_CODE (x5) != CONST_INT
31464 : || XWINT (x5, 0) != -65536L)
31465 : return NULL;
31466 : x6 = XEXP (x3, 1);
31467 : if (GET_CODE (x6) != LSHIFTRT
31468 : || GET_MODE (x6) != E_SImode)
31469 : return NULL;
31470 : x7 = XEXP (x6, 0);
31471 : if (GET_CODE (x7) != BSWAP
31472 : || GET_MODE (x7) != E_SImode)
31473 : return NULL;
31474 : x8 = XEXP (x6, 1);
31475 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
31476 : return NULL;
31477 : x9 = XEXP (x4, 0);
31478 : if (!rtx_equal_p (x9, operands[0]))
31479 : return NULL;
31480 : x10 = XEXP (x7, 0);
31481 : if (!rtx_equal_p (x10, operands[0]))
31482 : return NULL;
31483 : x11 = XEXP (x2, 0);
31484 : if (!rtx_equal_p (x11, operands[0]))
31485 : return NULL;
31486 : x12 = PATTERN (peep2_next_insn (2));
31487 : if (GET_CODE (x12) != SET)
31488 : return NULL;
31489 : x13 = XEXP (x12, 0);
31490 : operands[2] = x13;
31491 : if (!general_reg_operand (operands[2], E_SImode))
31492 : return NULL;
31493 : x14 = XEXP (x12, 1);
31494 : if (!rtx_equal_p (x14, operands[0])
31495 : || !
31496 : #line 23701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31497 : (!(TARGET_USE_XCHGB ||
31498 : TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
31499 : && peep2_regno_dead_p (0, FLAGS_REG)
31500 : && peep2_reg_dead_p(3, operands[0])))
31501 : return NULL;
31502 : *pmatch_len_ = 2;
31503 : return gen_peephole2_216 (insn, operands);
31504 : }
31505 :
31506 : rtx_insn *
31507 : peephole2_14 (rtx x1 ATTRIBUTE_UNUSED,
31508 : rtx_insn *insn ATTRIBUTE_UNUSED,
31509 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31510 : {
31511 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31512 : rtx x2, x3;
31513 : rtx_insn *res ATTRIBUTE_UNUSED;
31514 : x2 = PATTERN (peep2_next_insn (1));
31515 : if (GET_CODE (x2) != SET)
31516 : return NULL;
31517 : x3 = XEXP (x2, 0);
31518 : if (!general_reg_operand (x3, E_SImode))
31519 : return NULL;
31520 : operands[8] = x3;
31521 : switch (pattern965 (x1,
31522 : E_SImode,
31523 : E_DImode))
31524 : {
31525 : case 0:
31526 : if (
31527 : #line 10377 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31528 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31529 : && peep2_reg_dead_p (4, operands[0])
31530 : && peep2_reg_dead_p (3, operands[2])
31531 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31532 : && !reg_overlap_mentioned_p (operands[2], operands[1])
31533 : && !reg_overlap_mentioned_p (operands[6], operands[9])
31534 : && (rtx_equal_p (operands[6], operands[0])
31535 : ? (rtx_equal_p (operands[7], operands[1])
31536 : && rtx_equal_p (operands[8], operands[2]))
31537 : : (rtx_equal_p (operands[8], operands[0])
31538 : && rtx_equal_p (operands[9], operands[1])
31539 : && rtx_equal_p (operands[6], operands[2])))))
31540 : {
31541 : *pmatch_len_ = 3;
31542 : res = gen_peephole2_120 (insn, operands);
31543 : if (res != NULL_RTX)
31544 : return res;
31545 : }
31546 : break;
31547 :
31548 : case 1:
31549 : if (
31550 : #line 10432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31551 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31552 : && peep2_reg_dead_p (6, operands[0])
31553 : && peep2_reg_dead_p (3, operands[2])
31554 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31555 : && !reg_overlap_mentioned_p (operands[2], operands[1])
31556 : && !reg_overlap_mentioned_p (operands[6], operands[9])
31557 : && !reg_overlap_mentioned_p (operands[0], operands[10])
31558 : && !reg_overlap_mentioned_p (operands[10], operands[1])
31559 : && !reg_overlap_mentioned_p (operands[0], operands[11])
31560 : && !reg_overlap_mentioned_p (operands[11], operands[1])
31561 : && (rtx_equal_p (operands[6], operands[0])
31562 : ? (rtx_equal_p (operands[7], operands[1])
31563 : && rtx_equal_p (operands[8], operands[2]))
31564 : : (rtx_equal_p (operands[8], operands[0])
31565 : && rtx_equal_p (operands[9], operands[1])
31566 : && rtx_equal_p (operands[6], operands[2])))))
31567 : {
31568 : *pmatch_len_ = 5;
31569 : res = gen_peephole2_122 (insn, operands);
31570 : if (res != NULL_RTX)
31571 : return res;
31572 : }
31573 : break;
31574 :
31575 : default:
31576 : break;
31577 : }
31578 : operands[0] = x3;
31579 : if (pattern968 (x1,
31580 : E_SImode) != 0
31581 : || !
31582 : #line 27679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31583 : (TARGET_CMOVE
31584 : && REGNO (operands[2]) != REGNO (operands[0])
31585 : && REGNO (operands[2]) != REGNO (operands[1])
31586 : && peep2_reg_dead_p (2, operands[1])
31587 : && peep2_reg_dead_p (4, operands[2])
31588 : && !reg_overlap_mentioned_p (operands[0], operands[3])
31589 : && !reg_mentioned_p (operands[2], operands[6])))
31590 : return NULL;
31591 : *pmatch_len_ = 3;
31592 : return gen_peephole2_231 (insn, operands);
31593 : }
31594 :
31595 : rtx_insn *
31596 : peephole2_16 (rtx x1 ATTRIBUTE_UNUSED,
31597 : rtx_insn *insn ATTRIBUTE_UNUSED,
31598 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31599 : {
31600 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31601 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
31602 : rtx_insn *res ATTRIBUTE_UNUSED;
31603 : if (address_no_seg_operand (operands[1], E_DImode)
31604 : && (
31605 : #line 6507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31606 : (ix86_hardreg_mov_ok (operands[0], operands[1])
31607 : && peep2_regno_dead_p (0, FLAGS_REG)
31608 : && ix86_avoid_lea_for_addr (peep2_next_insn (0), operands)) &&
31609 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31610 : (TARGET_64BIT)))
31611 : {
31612 : *pmatch_len_ = 0;
31613 : res = gen_peephole2_65 (insn, operands);
31614 : if (res != NULL_RTX)
31615 : return res;
31616 : }
31617 : if (peep2_current_count < 2
31618 : || !memory_operand (operands[1], E_DImode))
31619 : return NULL;
31620 : x2 = PATTERN (peep2_next_insn (1));
31621 : switch (GET_CODE (x2))
31622 : {
31623 : case CALL:
31624 : x3 = XEXP (x2, 0);
31625 : if (GET_CODE (x3) != MEM
31626 : || GET_MODE (x3) != E_QImode)
31627 : return NULL;
31628 : x4 = XEXP (x2, 1);
31629 : operands[3] = x4;
31630 : x5 = XEXP (x3, 0);
31631 : if (!rtx_equal_p (x5, operands[0])
31632 : || !(
31633 : #line 21192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31634 : (!TARGET_X32 && !TARGET_INDIRECT_BRANCH_REGISTER
31635 : && SIBLING_CALL_P (peep2_next_insn (1))
31636 : && !reg_mentioned_p (operands[0],
31637 : CALL_INSN_FUNCTION_USAGE (peep2_next_insn (1)))) &&
31638 : #line 1434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31639 : (word_mode == DImode)))
31640 : return NULL;
31641 : *pmatch_len_ = 1;
31642 : return gen_peephole2_201 (insn, operands);
31643 :
31644 : case UNSPEC_VOLATILE:
31645 : if (pattern853 (x2) != 0)
31646 : return NULL;
31647 : x6 = PATTERN (peep2_next_insn (2));
31648 : switch (GET_CODE (x6))
31649 : {
31650 : case CALL:
31651 : x7 = XEXP (x6, 0);
31652 : if (GET_CODE (x7) != MEM
31653 : || GET_MODE (x7) != E_QImode)
31654 : return NULL;
31655 : x8 = XEXP (x6, 1);
31656 : operands[3] = x8;
31657 : x9 = XEXP (x7, 0);
31658 : if (!rtx_equal_p (x9, operands[0])
31659 : || !(
31660 : #line 21206 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31661 : (!TARGET_X32 && !TARGET_INDIRECT_BRANCH_REGISTER
31662 : && SIBLING_CALL_P (peep2_next_insn (2))
31663 : && !reg_mentioned_p (operands[0],
31664 : CALL_INSN_FUNCTION_USAGE (peep2_next_insn (2)))) &&
31665 : #line 1434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31666 : (word_mode == DImode)))
31667 : return NULL;
31668 : *pmatch_len_ = 2;
31669 : return gen_peephole2_203 (insn, operands);
31670 :
31671 : case SET:
31672 : if (pattern1352 (x6) != 0
31673 : || !(
31674 : #line 21413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31675 : (!TARGET_X32 && !TARGET_INDIRECT_BRANCH_REGISTER
31676 : && SIBLING_CALL_P (peep2_next_insn (2))
31677 : && !reg_mentioned_p (operands[0],
31678 : CALL_INSN_FUNCTION_USAGE (peep2_next_insn (2)))) &&
31679 : #line 1434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31680 : (word_mode == DImode)))
31681 : return NULL;
31682 : *pmatch_len_ = 2;
31683 : return gen_peephole2_211 (insn, operands);
31684 :
31685 : default:
31686 : return NULL;
31687 : }
31688 :
31689 : case SET:
31690 : switch (pattern854 (x2))
31691 : {
31692 : case 0:
31693 : if (!(
31694 : #line 21303 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31695 : (!TARGET_X32 && !TARGET_INDIRECT_BRANCH_REGISTER
31696 : && peep2_reg_dead_p (2, operands[0])) &&
31697 : #line 1434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31698 : (word_mode == DImode)))
31699 : return NULL;
31700 : *pmatch_len_ = 1;
31701 : return gen_peephole2_207 (insn, operands);
31702 :
31703 : case 1:
31704 : if (!(
31705 : #line 21397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31706 : (!TARGET_X32 && !TARGET_INDIRECT_BRANCH_REGISTER
31707 : && SIBLING_CALL_P (peep2_next_insn (1))
31708 : && !reg_mentioned_p (operands[0],
31709 : CALL_INSN_FUNCTION_USAGE (peep2_next_insn (1)))) &&
31710 : #line 1434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31711 : (word_mode == DImode)))
31712 : return NULL;
31713 : *pmatch_len_ = 1;
31714 : return gen_peephole2_209 (insn, operands);
31715 :
31716 : default:
31717 : return NULL;
31718 : }
31719 :
31720 : default:
31721 : return NULL;
31722 : }
31723 : }
31724 :
31725 : rtx_insn *
31726 : peephole2_20 (rtx x1 ATTRIBUTE_UNUSED,
31727 : rtx_insn *insn ATTRIBUTE_UNUSED,
31728 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31729 : {
31730 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31731 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
31732 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
31733 : rtx x18, x19, x20;
31734 : rtx_insn *res ATTRIBUTE_UNUSED;
31735 : x2 = PATTERN (peep2_next_insn (1));
31736 : if (GET_CODE (x2) != SET)
31737 : return NULL;
31738 : x3 = XEXP (x2, 1);
31739 : if (!ix86_comparison_operator (x3, E_QImode))
31740 : return NULL;
31741 : x4 = XEXP (x3, 0);
31742 : if (GET_CODE (x4) != REG
31743 : || REGNO (x4) != 17)
31744 : return NULL;
31745 : x5 = XEXP (x3, 1);
31746 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
31747 : return NULL;
31748 : x6 = XEXP (x2, 0);
31749 : switch (GET_CODE (x6))
31750 : {
31751 : case REG:
31752 : case SUBREG:
31753 : operands[1] = x6;
31754 : if (!register_operand (operands[1], E_QImode))
31755 : return NULL;
31756 : operands[2] = x3;
31757 : x7 = PATTERN (peep2_next_insn (2));
31758 : switch (GET_CODE (x7))
31759 : {
31760 : case SET:
31761 : x8 = XEXP (x7, 1);
31762 : if (GET_CODE (x8) != ZERO_EXTEND)
31763 : return NULL;
31764 : x9 = XEXP (x7, 0);
31765 : operands[3] = x9;
31766 : if (!any_QIreg_operand (operands[3], E_VOIDmode))
31767 : return NULL;
31768 : x10 = XEXP (x8, 0);
31769 : if (!rtx_equal_p (x10, operands[1])
31770 : || !
31771 : #line 20937 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31772 : ((peep2_reg_dead_p (3, operands[1])
31773 : || operands_match_p (operands[1], operands[3]))
31774 : && ! reg_overlap_mentioned_p (operands[3], operands[0])
31775 : && peep2_regno_dead_p (0, FLAGS_REG)))
31776 : return NULL;
31777 : *pmatch_len_ = 2;
31778 : return gen_peephole2_193 (insn, operands);
31779 :
31780 : case PARALLEL:
31781 : if (XVECLEN (x7, 0) != 2)
31782 : return NULL;
31783 : x11 = XVECEXP (x7, 0, 0);
31784 : if (GET_CODE (x11) != SET)
31785 : return NULL;
31786 : x12 = XEXP (x11, 1);
31787 : if (GET_CODE (x12) != AND
31788 : || GET_MODE (x12) != E_SImode)
31789 : return NULL;
31790 : x13 = XEXP (x12, 1);
31791 : if (GET_CODE (x13) != CONST_INT
31792 : || XWINT (x13, 0) != 255L
31793 : || pattern1753 (x7,
31794 : E_SImode) != 0)
31795 : return NULL;
31796 : x14 = XEXP (x12, 0);
31797 : if (!rtx_equal_p (x14, operands[3])
31798 : || !
31799 : #line 21009 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31800 : (REGNO (operands[1]) == REGNO (operands[3])
31801 : && ! reg_overlap_mentioned_p (operands[3], operands[0])
31802 : && peep2_regno_dead_p (0, FLAGS_REG)))
31803 : return NULL;
31804 : *pmatch_len_ = 2;
31805 : return gen_peephole2_196 (insn, operands);
31806 :
31807 : default:
31808 : return NULL;
31809 : }
31810 :
31811 : case STRICT_LOW_PART:
31812 : if (peep2_current_count < 4)
31813 : return NULL;
31814 : x15 = XEXP (x6, 0);
31815 : operands[5] = x15;
31816 : if (!register_operand (operands[5], E_QImode))
31817 : return NULL;
31818 : operands[6] = x3;
31819 : x7 = PATTERN (peep2_next_insn (2));
31820 : if (GET_CODE (x7) != SET)
31821 : return NULL;
31822 : x8 = XEXP (x7, 1);
31823 : if (!ix86_comparison_operator (x8, E_QImode))
31824 : return NULL;
31825 : operands[2] = x8;
31826 : x10 = XEXP (x8, 0);
31827 : if (GET_CODE (x10) != REG
31828 : || REGNO (x10) != 17)
31829 : return NULL;
31830 : x16 = XEXP (x8, 1);
31831 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
31832 : return NULL;
31833 : x9 = XEXP (x7, 0);
31834 : operands[1] = x9;
31835 : if (!register_operand (operands[1], E_QImode))
31836 : return NULL;
31837 : x17 = PATTERN (peep2_next_insn (3));
31838 : if (GET_CODE (x17) != SET)
31839 : return NULL;
31840 : x18 = XEXP (x17, 1);
31841 : if (GET_CODE (x18) != ZERO_EXTEND)
31842 : return NULL;
31843 : x19 = XEXP (x17, 0);
31844 : operands[3] = x19;
31845 : if (!any_QIreg_operand (operands[3], E_VOIDmode))
31846 : return NULL;
31847 : x20 = XEXP (x18, 0);
31848 : if (!rtx_equal_p (x20, operands[1])
31849 : || !
31850 : #line 21082 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31851 : ((peep2_reg_dead_p (4, operands[1])
31852 : || operands_match_p (operands[1], operands[3]))
31853 : && ! reg_overlap_mentioned_p (operands[3], operands[0])
31854 : && ! reg_overlap_mentioned_p (operands[3], operands[5])
31855 : && ! reg_overlap_mentioned_p (operands[1], operands[5])
31856 : && peep2_regno_dead_p (0, FLAGS_REG)))
31857 : return NULL;
31858 : *pmatch_len_ = 3;
31859 : return gen_peephole2_199 (insn, operands);
31860 :
31861 : default:
31862 : return NULL;
31863 : }
31864 : }
31865 :
31866 : rtx_insn *
31867 : peephole2_25 (rtx x1 ATTRIBUTE_UNUSED,
31868 : rtx_insn *insn ATTRIBUTE_UNUSED,
31869 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31870 : {
31871 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31872 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
31873 : rtx x10;
31874 : rtx_insn *res ATTRIBUTE_UNUSED;
31875 : x2 = XEXP (x1, 1);
31876 : operands[1] = x2;
31877 : if (memory_operand (operands[1], E_SImode)
31878 : && register_operand (operands[0], E_SImode))
31879 : {
31880 : res = peephole2_24 (x1, insn, pmatch_len_);
31881 : if (res != NULL_RTX)
31882 : return res;
31883 : }
31884 : if (peep2_current_count < 3
31885 : || peep2_current_count < 4
31886 : || !general_reg_operand (operands[1], E_SImode)
31887 : || !general_reg_operand (operands[0], E_SImode))
31888 : return NULL;
31889 : x3 = PATTERN (peep2_next_insn (1));
31890 : if (GET_CODE (x3) != PARALLEL
31891 : || XVECLEN (x3, 0) != 2)
31892 : return NULL;
31893 : x4 = XVECEXP (x3, 0, 0);
31894 : if (GET_CODE (x4) != SET)
31895 : return NULL;
31896 : x5 = XEXP (x4, 0);
31897 : if (GET_CODE (x5) != REG
31898 : || REGNO (x5) != 17)
31899 : return NULL;
31900 : x6 = XVECEXP (x3, 0, 1);
31901 : if (GET_CODE (x6) != SET)
31902 : return NULL;
31903 : x7 = XEXP (x4, 1);
31904 : operands[5] = x7;
31905 : x8 = XEXP (x6, 1);
31906 : operands[6] = x8;
31907 : x9 = XEXP (x6, 0);
31908 : if (!rtx_equal_p (x9, operands[0]))
31909 : return NULL;
31910 : x10 = PATTERN (peep2_next_insn (2));
31911 : if (GET_CODE (x10) != SET
31912 : || pattern1356 (x10,
31913 : E_SImode) != 0
31914 : || !
31915 : #line 27645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31916 : (TARGET_CMOVE
31917 : && REGNO (operands[2]) != REGNO (operands[0])
31918 : && REGNO (operands[2]) != REGNO (operands[1])
31919 : && peep2_reg_dead_p (1, operands[1])
31920 : && peep2_reg_dead_p (4, operands[2])
31921 : && !reg_overlap_mentioned_p (operands[0], operands[3])))
31922 : return NULL;
31923 : *pmatch_len_ = 3;
31924 : return gen_peephole2_228 (insn, operands);
31925 : }
31926 :
31927 : rtx_insn *
31928 : peephole2_28 (rtx x1 ATTRIBUTE_UNUSED,
31929 : rtx_insn *insn ATTRIBUTE_UNUSED,
31930 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31931 : {
31932 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31933 : rtx x2, x3, x4, x5;
31934 : rtx_insn *res ATTRIBUTE_UNUSED;
31935 : if (peep2_current_count >= 2)
31936 : {
31937 : res = peephole2_25 (x1, insn, pmatch_len_);
31938 : if (res != NULL_RTX)
31939 : return res;
31940 : }
31941 : x2 = XEXP (x1, 1);
31942 : operands[1] = x2;
31943 : if (memory_operand (operands[1], E_SImode)
31944 : && push_operand (operands[0], E_SImode)
31945 : &&
31946 : #line 29042 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31947 : (!(TARGET_PUSH_MEMORY || optimize_insn_for_size_p ())
31948 : && !RTX_FRAME_RELATED_P (peep2_next_insn (0))))
31949 : {
31950 : *pmatch_len_ = 0;
31951 : res = gen_peephole2_279 (insn, operands);
31952 : if (res != NULL_RTX)
31953 : return res;
31954 : }
31955 : if (peep2_current_count < 2)
31956 : return NULL;
31957 : if (general_reg_operand (operands[1], E_SImode))
31958 : {
31959 : x3 = PATTERN (peep2_next_insn (1));
31960 : if (pattern422 (x3,
31961 : E_SImode) == 0
31962 : &&
31963 : #line 29244 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31964 : (REGNO (operands[0]) != REGNO (operands[1])
31965 : && (SImode != QImode
31966 : || any_QIreg_operand (operands[1], QImode))))
31967 : {
31968 : *pmatch_len_ = 1;
31969 : res = gen_peephole2_307 (insn, operands);
31970 : if (res != NULL_RTX)
31971 : return res;
31972 : }
31973 : }
31974 : if (peep2_current_count >= 3)
31975 : {
31976 : res = peephole2_27 (x1, insn, pmatch_len_);
31977 : if (res != NULL_RTX)
31978 : return res;
31979 : }
31980 : if (mmx_reg_operand (operands[1], E_VOIDmode)
31981 : && mmx_reg_operand (operands[0], E_VOIDmode))
31982 : {
31983 : x3 = PATTERN (peep2_next_insn (1));
31984 : if (pattern609 (x3) == 0
31985 : &&
31986 : #line 29263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31987 : (REGNO (operands[0]) != REGNO (operands[1])))
31988 : {
31989 : *pmatch_len_ = 1;
31990 : res = gen_peephole2_309 (insn, operands);
31991 : if (res != NULL_RTX)
31992 : return res;
31993 : }
31994 : }
31995 : if (sse_reg_operand (operands[1], E_VOIDmode)
31996 : && sse_reg_operand (operands[0], E_VOIDmode))
31997 : {
31998 : x3 = PATTERN (peep2_next_insn (1));
31999 : if (pattern609 (x3) == 0
32000 : &&
32001 : #line 29275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32002 : (REGNO (operands[0]) != REGNO (operands[1])
32003 : /* Punt if operands[1] is %[xy]mm16+ and AVX512BW is not enabled,
32004 : as EVEX encoded vpadd[bw], vpmullw, vpmin[su][bw] and vpmax[su][bw]
32005 : instructions require AVX512BW and AVX512VL, but with the original
32006 : instructions it might require just AVX512VL.
32007 : AVX512VL is implied from TARGET_HARD_REGNO_MODE_OK. */
32008 : && (!EXT_REX_SSE_REGNO_P (REGNO (operands[1]))
32009 : || TARGET_AVX512BW
32010 : || GET_MODE_SIZE (GET_MODE_INNER (GET_MODE (operands[0]))) > 2
32011 : || logic_operator (operands[3], VOIDmode))))
32012 : {
32013 : *pmatch_len_ = 1;
32014 : res = gen_peephole2_310 (insn, operands);
32015 : if (res != NULL_RTX)
32016 : return res;
32017 : }
32018 : }
32019 : if (peep2_current_count >= 3
32020 : && peep2_current_count >= 4)
32021 : {
32022 : if (memory_operand (operands[1], E_QImode))
32023 : {
32024 : x3 = PATTERN (peep2_next_insn (1));
32025 : if (pattern738 (x3,
32026 : E_QImode) == 0
32027 : &&
32028 : #line 29435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32029 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32030 : && REGNO (operands[4]) == REGNO (operands[0])
32031 : && REGNO (operands[5]) == REGNO (operands[3])
32032 : && peep2_reg_dead_p (4, operands[3])
32033 : && ((REGNO (operands[0]) == REGNO (operands[3]))
32034 : || peep2_reg_dead_p (2, operands[0]))
32035 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32036 : && !reg_overlap_mentioned_p (operands[3], operands[1])
32037 : && !reg_overlap_mentioned_p (operands[0], operands[2])
32038 : && (QImode != QImode
32039 : || immediate_operand (operands[2], QImode)
32040 : || any_QIreg_operand (operands[2], QImode))
32041 : && ix86_match_ccmode (peep2_next_insn (3), CCGOCmode)))
32042 : {
32043 : *pmatch_len_ = 3;
32044 : res = gen_peephole2_331 (insn, operands);
32045 : if (res != NULL_RTX)
32046 : return res;
32047 : }
32048 : }
32049 : if (memory_operand (operands[1], E_HImode))
32050 : {
32051 : x3 = PATTERN (peep2_next_insn (1));
32052 : if (pattern738 (x3,
32053 : E_HImode) == 0
32054 : &&
32055 : #line 29435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32056 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32057 : && REGNO (operands[4]) == REGNO (operands[0])
32058 : && REGNO (operands[5]) == REGNO (operands[3])
32059 : && peep2_reg_dead_p (4, operands[3])
32060 : && ((REGNO (operands[0]) == REGNO (operands[3]))
32061 : || peep2_reg_dead_p (2, operands[0]))
32062 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32063 : && !reg_overlap_mentioned_p (operands[3], operands[1])
32064 : && !reg_overlap_mentioned_p (operands[0], operands[2])
32065 : && (HImode != QImode
32066 : || immediate_operand (operands[2], QImode)
32067 : || any_QIreg_operand (operands[2], QImode))
32068 : && ix86_match_ccmode (peep2_next_insn (3), CCGOCmode)))
32069 : {
32070 : *pmatch_len_ = 3;
32071 : res = gen_peephole2_332 (insn, operands);
32072 : if (res != NULL_RTX)
32073 : return res;
32074 : }
32075 : }
32076 : if (memory_operand (operands[1], E_SImode))
32077 : {
32078 : x3 = PATTERN (peep2_next_insn (1));
32079 : if (pattern739 (x3,
32080 : E_SImode) == 0
32081 : &&
32082 : #line 29435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32083 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32084 : && REGNO (operands[4]) == REGNO (operands[0])
32085 : && REGNO (operands[5]) == REGNO (operands[3])
32086 : && peep2_reg_dead_p (4, operands[3])
32087 : && ((REGNO (operands[0]) == REGNO (operands[3]))
32088 : || peep2_reg_dead_p (2, operands[0]))
32089 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32090 : && !reg_overlap_mentioned_p (operands[3], operands[1])
32091 : && !reg_overlap_mentioned_p (operands[0], operands[2])
32092 : && (SImode != QImode
32093 : || immediate_operand (operands[2], QImode)
32094 : || any_QIreg_operand (operands[2], QImode))
32095 : && ix86_match_ccmode (peep2_next_insn (3), CCGOCmode)))
32096 : {
32097 : *pmatch_len_ = 3;
32098 : res = gen_peephole2_333 (insn, operands);
32099 : if (res != NULL_RTX)
32100 : return res;
32101 : }
32102 : }
32103 : if (memory_operand (operands[1], E_DImode))
32104 : {
32105 : x3 = PATTERN (peep2_next_insn (1));
32106 : if (pattern739 (x3,
32107 : E_DImode) == 0
32108 : && (
32109 : #line 29435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32110 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32111 : && REGNO (operands[4]) == REGNO (operands[0])
32112 : && REGNO (operands[5]) == REGNO (operands[3])
32113 : && peep2_reg_dead_p (4, operands[3])
32114 : && ((REGNO (operands[0]) == REGNO (operands[3]))
32115 : || peep2_reg_dead_p (2, operands[0]))
32116 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32117 : && !reg_overlap_mentioned_p (operands[3], operands[1])
32118 : && !reg_overlap_mentioned_p (operands[0], operands[2])
32119 : && (DImode != QImode
32120 : || immediate_operand (operands[2], QImode)
32121 : || any_QIreg_operand (operands[2], QImode))
32122 : && ix86_match_ccmode (peep2_next_insn (3), CCGOCmode)) &&
32123 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32124 : (TARGET_64BIT)))
32125 : {
32126 : *pmatch_len_ = 3;
32127 : res = gen_peephole2_334 (insn, operands);
32128 : if (res != NULL_RTX)
32129 : return res;
32130 : }
32131 : }
32132 : }
32133 : if (!memory_operand (operands[1], E_VOIDmode)
32134 : || !register_operand (operands[0], E_VOIDmode))
32135 : return NULL;
32136 : x3 = PATTERN (peep2_next_insn (1));
32137 : if (GET_CODE (x3) != SET)
32138 : return NULL;
32139 : x4 = XEXP (x3, 0);
32140 : operands[2] = x4;
32141 : if (!memory_operand (operands[2], E_VOIDmode))
32142 : return NULL;
32143 : x5 = XEXP (x3, 1);
32144 : if (!rtx_equal_p (x5, operands[0])
32145 : || !
32146 : #line 29868 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32147 : (!MEM_VOLATILE_P (operands[1])
32148 : && !MEM_VOLATILE_P (operands[2])
32149 : && rtx_equal_p (operands[1], operands[2])
32150 : && !reg_overlap_mentioned_p (operands[0], operands[2])))
32151 : return NULL;
32152 : *pmatch_len_ = 1;
32153 : return gen_peephole2_367 (insn, operands);
32154 : }
32155 :
32156 : rtx_insn *
32157 : peephole2_41 (rtx x1 ATTRIBUTE_UNUSED,
32158 : rtx_insn *insn ATTRIBUTE_UNUSED,
32159 : int *pmatch_len_ ATTRIBUTE_UNUSED)
32160 : {
32161 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
32162 : rtx x2, x3, x4, x5, x6, x7;
32163 : rtx_insn *res ATTRIBUTE_UNUSED;
32164 : x2 = XVECEXP (x1, 0, 0);
32165 : x3 = XEXP (x2, 0);
32166 : switch (GET_CODE (x3))
32167 : {
32168 : case REG:
32169 : if (peep2_current_count < 2)
32170 : return NULL;
32171 : operands[0] = x3;
32172 : switch (GET_MODE (operands[0]))
32173 : {
32174 : case E_SImode:
32175 : x4 = PATTERN (peep2_next_insn (1));
32176 : switch (pattern1364 (x4,
32177 : E_SImode))
32178 : {
32179 : case 0:
32180 : if (!
32181 : #line 3710 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32182 : (REGNO (operands[0]) == REGNO (operands[1])))
32183 : return NULL;
32184 : *pmatch_len_ = 1;
32185 : return gen_peephole2_29 (insn, operands);
32186 :
32187 : case 1:
32188 : if (!
32189 : #line 3710 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32190 : (REGNO (operands[0]) == REGNO (operands[1])))
32191 : return NULL;
32192 : *pmatch_len_ = 1;
32193 : return gen_peephole2_31 (insn, operands);
32194 :
32195 : case 2:
32196 : if (!(
32197 : #line 3710 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32198 : (REGNO (operands[0]) == REGNO (operands[1])) &&
32199 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32200 : (TARGET_64BIT)))
32201 : return NULL;
32202 : *pmatch_len_ = 1;
32203 : return gen_peephole2_33 (insn, operands);
32204 :
32205 : case 3:
32206 : if (!
32207 : #line 5015 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32208 : (REGNO (operands[0]) == REGNO (operands[1])
32209 : && (SImode != SImode
32210 : || !TARGET_ZERO_EXTEND_WITH_AND
32211 : || !optimize_function_for_speed_p (cfun))
32212 : && !(optimize_insn_for_size_p () && optimize_size > 1)))
32213 : return NULL;
32214 : *pmatch_len_ = 1;
32215 : return gen_peephole2_41 (insn, operands);
32216 :
32217 : case 4:
32218 : if (!
32219 : #line 5015 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32220 : (REGNO (operands[0]) == REGNO (operands[1])
32221 : && (SImode != SImode
32222 : || !TARGET_ZERO_EXTEND_WITH_AND
32223 : || !optimize_function_for_speed_p (cfun))
32224 : && !(optimize_insn_for_size_p () && optimize_size > 1)))
32225 : return NULL;
32226 : *pmatch_len_ = 1;
32227 : return gen_peephole2_43 (insn, operands);
32228 :
32229 : case 5:
32230 : x5 = XVECEXP (x4, 0, 0);
32231 : x6 = XEXP (x5, 1);
32232 : x7 = XEXP (x6, 1);
32233 : operands[1] = x7;
32234 : if (x86_64_general_operand (operands[1], E_SImode)
32235 : &&
32236 : #line 14921 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32237 : (!reg_mentioned_p (operands[0], operands[1])))
32238 : {
32239 : *pmatch_len_ = 1;
32240 : res = gen_peephole2_153 (insn, operands);
32241 : if (res != NULL_RTX)
32242 : return res;
32243 : }
32244 : if (!rtx_equal_p (x7, operands[0]))
32245 : return NULL;
32246 : *pmatch_len_ = 1;
32247 : return gen_peephole2_165 (insn, operands);
32248 :
32249 : case 6:
32250 : x5 = XVECEXP (x4, 0, 0);
32251 : x6 = XEXP (x5, 1);
32252 : x7 = XEXP (x6, 1);
32253 : operands[1] = x7;
32254 : if (x86_64_general_operand (operands[1], E_SImode)
32255 : &&
32256 : #line 14921 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32257 : (!reg_mentioned_p (operands[0], operands[1])))
32258 : {
32259 : *pmatch_len_ = 1;
32260 : res = gen_peephole2_154 (insn, operands);
32261 : if (res != NULL_RTX)
32262 : return res;
32263 : }
32264 : if (!rtx_equal_p (x7, operands[0]))
32265 : return NULL;
32266 : *pmatch_len_ = 1;
32267 : return gen_peephole2_166 (insn, operands);
32268 :
32269 : case 7:
32270 : x5 = XVECEXP (x4, 0, 0);
32271 : x6 = XEXP (x5, 1);
32272 : x7 = XEXP (x6, 1);
32273 : operands[1] = x7;
32274 : if (x86_64_general_operand (operands[1], E_SImode)
32275 : &&
32276 : #line 14921 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32277 : (!reg_mentioned_p (operands[0], operands[1])))
32278 : {
32279 : *pmatch_len_ = 1;
32280 : res = gen_peephole2_155 (insn, operands);
32281 : if (res != NULL_RTX)
32282 : return res;
32283 : }
32284 : if (!rtx_equal_p (x7, operands[0]))
32285 : return NULL;
32286 : *pmatch_len_ = 1;
32287 : return gen_peephole2_167 (insn, operands);
32288 :
32289 : case 8:
32290 : if (!
32291 : #line 15219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32292 : (REGNO (operands[0]) != REGNO (operands[1])))
32293 : return NULL;
32294 : *pmatch_len_ = 3;
32295 : return gen_peephole2_173 (insn, operands);
32296 :
32297 : default:
32298 : return NULL;
32299 : }
32300 :
32301 : case E_DImode:
32302 : x4 = PATTERN (peep2_next_insn (1));
32303 : switch (pattern1364 (x4,
32304 : E_DImode))
32305 : {
32306 : case 0:
32307 : if (!(
32308 : #line 3710 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32309 : (REGNO (operands[0]) == REGNO (operands[1])) &&
32310 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32311 : (TARGET_64BIT)))
32312 : return NULL;
32313 : *pmatch_len_ = 1;
32314 : return gen_peephole2_30 (insn, operands);
32315 :
32316 : case 1:
32317 : if (!(
32318 : #line 3710 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32319 : (REGNO (operands[0]) == REGNO (operands[1])) &&
32320 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32321 : (TARGET_64BIT)))
32322 : return NULL;
32323 : *pmatch_len_ = 1;
32324 : return gen_peephole2_32 (insn, operands);
32325 :
32326 : case 2:
32327 : if (!(
32328 : #line 3710 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32329 : (REGNO (operands[0]) == REGNO (operands[1])) &&
32330 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32331 : (TARGET_64BIT)))
32332 : return NULL;
32333 : *pmatch_len_ = 1;
32334 : return gen_peephole2_34 (insn, operands);
32335 :
32336 : case 3:
32337 : if (!(
32338 : #line 5015 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32339 : (REGNO (operands[0]) == REGNO (operands[1])
32340 : && (DImode != SImode
32341 : || !TARGET_ZERO_EXTEND_WITH_AND
32342 : || !optimize_function_for_speed_p (cfun))
32343 : && !(optimize_insn_for_size_p () && optimize_size > 1)) &&
32344 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32345 : (TARGET_64BIT)))
32346 : return NULL;
32347 : *pmatch_len_ = 1;
32348 : return gen_peephole2_42 (insn, operands);
32349 :
32350 : case 4:
32351 : if (!(
32352 : #line 5015 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32353 : (REGNO (operands[0]) == REGNO (operands[1])
32354 : && (DImode != SImode
32355 : || !TARGET_ZERO_EXTEND_WITH_AND
32356 : || !optimize_function_for_speed_p (cfun))
32357 : && !(optimize_insn_for_size_p () && optimize_size > 1)) &&
32358 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32359 : (TARGET_64BIT)))
32360 : return NULL;
32361 : *pmatch_len_ = 1;
32362 : return gen_peephole2_44 (insn, operands);
32363 :
32364 : case 5:
32365 : x5 = XVECEXP (x4, 0, 0);
32366 : x6 = XEXP (x5, 1);
32367 : x7 = XEXP (x6, 1);
32368 : operands[1] = x7;
32369 : if (x86_64_general_operand (operands[1], E_DImode)
32370 : && (
32371 : #line 14921 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32372 : (!reg_mentioned_p (operands[0], operands[1])) &&
32373 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32374 : (TARGET_64BIT)))
32375 : {
32376 : *pmatch_len_ = 1;
32377 : res = gen_peephole2_156 (insn, operands);
32378 : if (res != NULL_RTX)
32379 : return res;
32380 : }
32381 : if (!rtx_equal_p (x7, operands[0])
32382 : || !
32383 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32384 : (TARGET_64BIT))
32385 : return NULL;
32386 : *pmatch_len_ = 1;
32387 : return gen_peephole2_168 (insn, operands);
32388 :
32389 : case 6:
32390 : x5 = XVECEXP (x4, 0, 0);
32391 : x6 = XEXP (x5, 1);
32392 : x7 = XEXP (x6, 1);
32393 : operands[1] = x7;
32394 : if (x86_64_general_operand (operands[1], E_DImode)
32395 : && (
32396 : #line 14921 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32397 : (!reg_mentioned_p (operands[0], operands[1])) &&
32398 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32399 : (TARGET_64BIT)))
32400 : {
32401 : *pmatch_len_ = 1;
32402 : res = gen_peephole2_157 (insn, operands);
32403 : if (res != NULL_RTX)
32404 : return res;
32405 : }
32406 : if (!rtx_equal_p (x7, operands[0])
32407 : || !
32408 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32409 : (TARGET_64BIT))
32410 : return NULL;
32411 : *pmatch_len_ = 1;
32412 : return gen_peephole2_169 (insn, operands);
32413 :
32414 : case 7:
32415 : x5 = XVECEXP (x4, 0, 0);
32416 : x6 = XEXP (x5, 1);
32417 : x7 = XEXP (x6, 1);
32418 : operands[1] = x7;
32419 : if (x86_64_general_operand (operands[1], E_DImode)
32420 : && (
32421 : #line 14921 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32422 : (!reg_mentioned_p (operands[0], operands[1])) &&
32423 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32424 : (TARGET_64BIT)))
32425 : {
32426 : *pmatch_len_ = 1;
32427 : res = gen_peephole2_158 (insn, operands);
32428 : if (res != NULL_RTX)
32429 : return res;
32430 : }
32431 : if (!rtx_equal_p (x7, operands[0])
32432 : || !
32433 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32434 : (TARGET_64BIT))
32435 : return NULL;
32436 : *pmatch_len_ = 1;
32437 : return gen_peephole2_170 (insn, operands);
32438 :
32439 : case 8:
32440 : if (!(
32441 : #line 15219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32442 : (REGNO (operands[0]) != REGNO (operands[1])) &&
32443 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32444 : (TARGET_64BIT)))
32445 : return NULL;
32446 : *pmatch_len_ = 3;
32447 : return gen_peephole2_174 (insn, operands);
32448 :
32449 : default:
32450 : return NULL;
32451 : }
32452 :
32453 : case E_QImode:
32454 : x4 = PATTERN (peep2_next_insn (1));
32455 : switch (pattern1365 (x4,
32456 : E_QImode))
32457 : {
32458 : case 0:
32459 : x5 = XVECEXP (x4, 0, 0);
32460 : x6 = XEXP (x5, 1);
32461 : x7 = XEXP (x6, 1);
32462 : operands[1] = x7;
32463 : if (general_operand (operands[1], E_QImode)
32464 : &&
32465 : #line 14921 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32466 : (!reg_mentioned_p (operands[0], operands[1])))
32467 : {
32468 : *pmatch_len_ = 1;
32469 : res = gen_peephole2_147 (insn, operands);
32470 : if (res != NULL_RTX)
32471 : return res;
32472 : }
32473 : if (!rtx_equal_p (x7, operands[0]))
32474 : return NULL;
32475 : *pmatch_len_ = 1;
32476 : return gen_peephole2_159 (insn, operands);
32477 :
32478 : case 1:
32479 : x5 = XVECEXP (x4, 0, 0);
32480 : x6 = XEXP (x5, 1);
32481 : x7 = XEXP (x6, 1);
32482 : operands[1] = x7;
32483 : if (general_operand (operands[1], E_QImode)
32484 : &&
32485 : #line 14921 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32486 : (!reg_mentioned_p (operands[0], operands[1])))
32487 : {
32488 : *pmatch_len_ = 1;
32489 : res = gen_peephole2_148 (insn, operands);
32490 : if (res != NULL_RTX)
32491 : return res;
32492 : }
32493 : if (!rtx_equal_p (x7, operands[0]))
32494 : return NULL;
32495 : *pmatch_len_ = 1;
32496 : return gen_peephole2_160 (insn, operands);
32497 :
32498 : case 2:
32499 : x5 = XVECEXP (x4, 0, 0);
32500 : x6 = XEXP (x5, 1);
32501 : x7 = XEXP (x6, 1);
32502 : operands[1] = x7;
32503 : if (general_operand (operands[1], E_QImode)
32504 : &&
32505 : #line 14921 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32506 : (!reg_mentioned_p (operands[0], operands[1])))
32507 : {
32508 : *pmatch_len_ = 1;
32509 : res = gen_peephole2_149 (insn, operands);
32510 : if (res != NULL_RTX)
32511 : return res;
32512 : }
32513 : if (!rtx_equal_p (x7, operands[0]))
32514 : return NULL;
32515 : *pmatch_len_ = 1;
32516 : return gen_peephole2_161 (insn, operands);
32517 :
32518 : default:
32519 : return NULL;
32520 : }
32521 :
32522 : case E_HImode:
32523 : x4 = PATTERN (peep2_next_insn (1));
32524 : switch (pattern1365 (x4,
32525 : E_HImode))
32526 : {
32527 : case 0:
32528 : x5 = XVECEXP (x4, 0, 0);
32529 : x6 = XEXP (x5, 1);
32530 : x7 = XEXP (x6, 1);
32531 : operands[1] = x7;
32532 : if (general_operand (operands[1], E_HImode)
32533 : &&
32534 : #line 14921 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32535 : (!reg_mentioned_p (operands[0], operands[1])))
32536 : {
32537 : *pmatch_len_ = 1;
32538 : res = gen_peephole2_150 (insn, operands);
32539 : if (res != NULL_RTX)
32540 : return res;
32541 : }
32542 : if (!rtx_equal_p (x7, operands[0]))
32543 : return NULL;
32544 : *pmatch_len_ = 1;
32545 : return gen_peephole2_162 (insn, operands);
32546 :
32547 : case 1:
32548 : x5 = XVECEXP (x4, 0, 0);
32549 : x6 = XEXP (x5, 1);
32550 : x7 = XEXP (x6, 1);
32551 : operands[1] = x7;
32552 : if (general_operand (operands[1], E_HImode)
32553 : &&
32554 : #line 14921 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32555 : (!reg_mentioned_p (operands[0], operands[1])))
32556 : {
32557 : *pmatch_len_ = 1;
32558 : res = gen_peephole2_151 (insn, operands);
32559 : if (res != NULL_RTX)
32560 : return res;
32561 : }
32562 : if (!rtx_equal_p (x7, operands[0]))
32563 : return NULL;
32564 : *pmatch_len_ = 1;
32565 : return gen_peephole2_163 (insn, operands);
32566 :
32567 : case 2:
32568 : x5 = XVECEXP (x4, 0, 0);
32569 : x6 = XEXP (x5, 1);
32570 : x7 = XEXP (x6, 1);
32571 : operands[1] = x7;
32572 : if (general_operand (operands[1], E_HImode)
32573 : &&
32574 : #line 14921 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32575 : (!reg_mentioned_p (operands[0], operands[1])))
32576 : {
32577 : *pmatch_len_ = 1;
32578 : res = gen_peephole2_152 (insn, operands);
32579 : if (res != NULL_RTX)
32580 : return res;
32581 : }
32582 : if (!rtx_equal_p (x7, operands[0]))
32583 : return NULL;
32584 : *pmatch_len_ = 1;
32585 : return gen_peephole2_164 (insn, operands);
32586 :
32587 : default:
32588 : return NULL;
32589 : }
32590 :
32591 : default:
32592 : return NULL;
32593 : }
32594 :
32595 : case ZERO_EXTRACT:
32596 : if (pattern1079 (x3) != 0
32597 : || !
32598 : #line 20044 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32599 : (TARGET_64BIT && !TARGET_USE_BT))
32600 : return NULL;
32601 : *pmatch_len_ = 0;
32602 : return gen_peephole2_190 (insn, operands);
32603 :
32604 : default:
32605 : return NULL;
32606 : }
32607 : }
|