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 226291 : pattern6 (rtx x1, machine_mode i1)
57 : {
58 226291 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
59 226291 : int res ATTRIBUTE_UNUSED;
60 226291 : if (!register_operand (operands[0], i1)
61 207734 : || GET_MODE (x1) != i1
62 207676 : || !register_mmxmem_operand (operands[1], i1)
63 408900 : || !register_mmxmem_operand (operands[2], i1))
64 76412 : return -1;
65 : return 0;
66 : }
67 :
68 : int
69 69278 : pattern14 (rtx x1)
70 : {
71 69278 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
72 69278 : int res ATTRIBUTE_UNUSED;
73 69278 : switch (GET_MODE (operands[0]))
74 : {
75 40074 : case E_SImode:
76 40074 : if (!nonimmediate_operand (operands[0], E_SImode)
77 40031 : || GET_MODE (x1) != E_SImode
78 80105 : || !nonimmediate_operand (operands[1], E_SImode))
79 13173 : return -1;
80 : return 0;
81 :
82 23958 : case E_DImode:
83 23958 : if (!nonimmediate_operand (operands[0], E_DImode)
84 23936 : || GET_MODE (x1) != E_DImode
85 47894 : || !nonimmediate_operand (operands[1], E_DImode))
86 6913 : return -1;
87 : return 1;
88 :
89 : default:
90 : return -1;
91 : }
92 : }
93 :
94 : int
95 209606 : pattern22 (rtx x1, int *pnum_clobbers)
96 : {
97 209606 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
98 209606 : rtx x2, x3, x4, x5, x6, x7;
99 209606 : int res ATTRIBUTE_UNUSED;
100 209606 : if (pnum_clobbers == NULL)
101 : return -1;
102 207013 : x2 = XEXP (x1, 0);
103 207013 : operands[0] = x2;
104 207013 : x3 = XEXP (x1, 1);
105 207013 : x4 = XEXP (x3, 0);
106 207013 : switch (GET_CODE (x4))
107 : {
108 89142 : case REG:
109 89142 : case SUBREG:
110 89142 : return pattern19 (x3); /* [-1, 1] */
111 :
112 47251 : case PLUS:
113 47251 : x5 = XEXP (x4, 0);
114 47251 : operands[1] = x5;
115 47251 : x6 = XEXP (x4, 1);
116 47251 : operands[2] = x6;
117 47251 : switch (GET_MODE (operands[0]))
118 : {
119 5140 : case E_SImode:
120 5140 : if (!register_operand (operands[0], E_SImode)
121 5140 : || pattern21 (x3,
122 : E_SImode) != 0)
123 183 : return -1;
124 : return 2;
125 :
126 42055 : case E_DImode:
127 42055 : if (!register_operand (operands[0], E_DImode)
128 42055 : || pattern21 (x3,
129 : E_DImode) != 0)
130 9961 : return -1;
131 : return 3;
132 :
133 : default:
134 : return -1;
135 : }
136 :
137 9472 : case MINUS:
138 9472 : x5 = XEXP (x4, 0);
139 9472 : operands[1] = x5;
140 9472 : x6 = XEXP (x4, 1);
141 9472 : operands[2] = x6;
142 9472 : x7 = XEXP (x3, 1);
143 9472 : 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 4125479 : pattern38 (rtx x1, int *pnum_clobbers)
172 : {
173 4125479 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
174 4125479 : rtx x2, x3, x4, x5, x6, x7;
175 4125479 : int res ATTRIBUTE_UNUSED;
176 4125479 : x2 = XEXP (x1, 1);
177 4125479 : x3 = XEXP (x2, 0);
178 4125479 : operands[1] = x3;
179 4125479 : x4 = XEXP (x2, 1);
180 4125479 : 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 3136 : case AND:
197 3136 : if (pnum_clobbers == NULL
198 3136 : || 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 693678 : pattern42 (rtx x1)
223 : {
224 693678 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
225 693678 : rtx x2, x3, x4, x5;
226 693678 : int res ATTRIBUTE_UNUSED;
227 693678 : x2 = XEXP (x1, 1);
228 693678 : x3 = XEXP (x2, 0);
229 693678 : operands[1] = x3;
230 693678 : x4 = XEXP (x1, 0);
231 693678 : switch (GET_CODE (x4))
232 : {
233 693665 : case REG:
234 693665 : case SUBREG:
235 693665 : case MEM:
236 693665 : operands[0] = x4;
237 693665 : 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 335128 : pattern48 (rtx x1)
254 : {
255 335128 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
256 335128 : rtx x2, x3, x4, x5, x6, x7, x8;
257 335128 : int res ATTRIBUTE_UNUSED;
258 335128 : x2 = XEXP (x1, 1);
259 335128 : x3 = XEXP (x2, 1);
260 335128 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
261 : return -1;
262 333429 : x4 = XEXP (x1, 0);
263 333429 : operands[0] = x4;
264 333429 : if (!flags_reg_operand (operands[0], E_VOIDmode))
265 : return -1;
266 333429 : operands[1] = x2;
267 333429 : if (!compare_operator (operands[1], E_VOIDmode))
268 : return -1;
269 333429 : x5 = XEXP (x2, 0);
270 333429 : x6 = XEXP (x5, 0);
271 333429 : operands[2] = x6;
272 333429 : if (!int_nonimmediate_operand (operands[2], E_VOIDmode))
273 : return -1;
274 275601 : x7 = XEXP (x5, 1);
275 275601 : operands[3] = x7;
276 275601 : if (!const_int_operand (operands[3], E_QImode))
277 : return -1;
278 275601 : x8 = XEXP (x5, 2);
279 275601 : operands[4] = x8;
280 275601 : if (!const_int_operand (operands[4], E_QImode))
281 : return -1;
282 265344 : 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 11154145 : pattern59 (rtx x1, machine_mode i1)
300 : {
301 11154145 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
302 11154145 : rtx x2, x3;
303 11154145 : int res ATTRIBUTE_UNUSED;
304 11154145 : x2 = XEXP (x1, 1);
305 11154145 : if (GET_MODE (x2) != i1)
306 : return -1;
307 3832307 : x3 = XEXP (x1, 0);
308 3832307 : if (GET_CODE (x3) != REG
309 3400481 : || REGNO (x3) != 17
310 7201602 : || GET_MODE (x3) != i1)
311 463012 : 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 48359 : pattern65 (rtx x1)
337 : {
338 48359 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
339 48359 : rtx x2, x3, x4, x5;
340 48359 : int res ATTRIBUTE_UNUSED;
341 48359 : x2 = XEXP (x1, 0);
342 48359 : operands[0] = x2;
343 48359 : x3 = XEXP (x1, 1);
344 48359 : x4 = XVECEXP (x3, 0, 0);
345 48359 : operands[1] = x4;
346 48359 : x5 = XVECEXP (x3, 0, 1);
347 48359 : operands[2] = x5;
348 48359 : switch (GET_MODE (operands[0]))
349 : {
350 402 : case E_HFmode:
351 402 : return pattern64 (x3,
352 402 : E_HFmode); /* [-1, 0] */
353 :
354 31464 : case E_SFmode:
355 31464 : if (pattern64 (x3,
356 : E_SFmode) != 0)
357 : return -1;
358 : return 1;
359 :
360 5602 : case E_DFmode:
361 5602 : 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 158576 : pattern74 (rtx x1)
373 : {
374 158576 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
375 158576 : rtx x2, x3, x4, x5, x6, x7, x8;
376 158576 : int res ATTRIBUTE_UNUSED;
377 158576 : x2 = XEXP (x1, 0);
378 158576 : operands[0] = x2;
379 158576 : x3 = XEXP (x1, 1);
380 158576 : x4 = XVECEXP (x3, 0, 0);
381 158576 : switch (GET_CODE (x4))
382 : {
383 146184 : case CONST_INT:
384 146184 : case CONST_WIDE_INT:
385 146184 : case CONST_POLY_INT:
386 146184 : case CONST_FIXED:
387 146184 : case CONST_DOUBLE:
388 146184 : case CONST_VECTOR:
389 146184 : case CONST:
390 146184 : case REG:
391 146184 : case SUBREG:
392 146184 : case MEM:
393 146184 : case LABEL_REF:
394 146184 : case SYMBOL_REF:
395 146184 : case HIGH:
396 146184 : operands[1] = x4;
397 146184 : x5 = XVECEXP (x3, 0, 2);
398 146184 : 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 38933 : pattern93 (rtx x1, int *pnum_clobbers)
439 : {
440 38933 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
441 38933 : rtx x2, x3, x4, x5, x6, x7;
442 38933 : int res ATTRIBUTE_UNUSED;
443 38933 : if (pnum_clobbers == NULL)
444 : return -1;
445 38933 : x2 = XEXP (x1, 1);
446 38933 : x3 = XEXP (x2, 0);
447 38933 : if (GET_MODE (x3) != E_TImode)
448 : return -1;
449 14135 : x4 = XEXP (x3, 0);
450 14135 : if (GET_CODE (x4) != ASHIFT
451 11145 : || GET_MODE (x4) != E_TImode)
452 : return -1;
453 11145 : x5 = XEXP (x4, 0);
454 11145 : if (GET_CODE (x5) != ZERO_EXTEND
455 11125 : || GET_MODE (x5) != E_TImode)
456 : return -1;
457 11125 : x6 = XEXP (x3, 1);
458 11125 : if (GET_CODE (x6) != ZERO_EXTEND
459 10974 : || GET_MODE (x6) != E_TImode)
460 : return -1;
461 10974 : x7 = XEXP (x1, 0);
462 10974 : operands[0] = x7;
463 10974 : return pattern92 (x2,
464 : E_TImode,
465 10974 : 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 11410 : pattern110 (rtx x1, int *pnum_clobbers)
495 : {
496 11410 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
497 11410 : rtx x2, x3, x4, x5;
498 11410 : int res ATTRIBUTE_UNUSED;
499 11410 : if (pnum_clobbers == NULL)
500 : return -1;
501 11410 : x2 = XEXP (x1, 0);
502 11410 : operands[2] = x2;
503 11410 : x3 = XEXP (x2, 0);
504 11410 : if (GET_CODE (x3) != REG
505 11410 : || REGNO (x3) != 17)
506 : return -1;
507 6708 : x4 = XEXP (x2, 1);
508 6708 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
509 : return -1;
510 6708 : x5 = XEXP (x1, 1);
511 6708 : operands[1] = x5;
512 6708 : switch (GET_MODE (operands[0]))
513 : {
514 : case E_SImode:
515 : return 0;
516 :
517 3110 : case E_DImode:
518 3110 : return 1;
519 :
520 : default:
521 : return -1;
522 : }
523 : }
524 :
525 : int
526 266 : pattern117 (rtx x1, int *pnum_clobbers, machine_mode i1, machine_mode i2)
527 : {
528 266 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
529 266 : rtx x2, x3;
530 266 : int res ATTRIBUTE_UNUSED;
531 266 : if (pnum_clobbers == NULL)
532 : return -1;
533 266 : x2 = XEXP (x1, 0);
534 266 : if (GET_MODE (x2) != E_SImode
535 265 : || !register_operand (operands[0], i2)
536 529 : || GET_MODE (x1) != i2)
537 3 : return -1;
538 263 : x3 = XEXP (x2, 0);
539 263 : operands[1] = x3;
540 263 : if (!nonimmediate_operand (operands[1], i1))
541 : return -1;
542 : return 0;
543 : }
544 :
545 : int
546 13885 : pattern123 (rtx x1)
547 : {
548 13885 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
549 13885 : rtx x2, x3, x4;
550 13885 : int res ATTRIBUTE_UNUSED;
551 13885 : x2 = XEXP (x1, 1);
552 13885 : x3 = XEXP (x2, 0);
553 13885 : operands[3] = x3;
554 13885 : if (!const_int_operand (operands[3], E_QImode))
555 : return -1;
556 3706 : x4 = XEXP (x2, 1);
557 3706 : operands[2] = x4;
558 3706 : if (!register_operand (operands[2], E_QImode))
559 : return -1;
560 3231 : return pattern14 (x1); /* [-1, 1] */
561 : }
562 :
563 : int
564 1233 : pattern127 (rtx x1)
565 : {
566 1233 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
567 1233 : rtx x2, x3, x4;
568 1233 : int res ATTRIBUTE_UNUSED;
569 1233 : x2 = XEXP (x1, 0);
570 1233 : operands[0] = x2;
571 1233 : x3 = XEXP (x1, 1);
572 1233 : x4 = XVECEXP (x3, 0, 0);
573 1233 : operands[1] = x4;
574 1233 : switch (GET_MODE (operands[0]))
575 : {
576 462 : case E_SImode:
577 462 : if (!memory_operand (operands[0], E_SImode)
578 439 : || GET_MODE (x3) != E_SImode
579 901 : || !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 37288 : pattern138 (rtx x1)
597 : {
598 37288 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
599 37288 : rtx x2, x3;
600 37288 : int res ATTRIBUTE_UNUSED;
601 37288 : x2 = XEXP (x1, 2);
602 37288 : if (XWINT (x2, 0) != 1L)
603 : return -1;
604 7936 : x3 = XEXP (x1, 1);
605 7936 : if (!rtx_equal_p (x3, operands[1]))
606 : return -1;
607 1740 : 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 16918 : pattern148 (rtx x1)
632 : {
633 16918 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
634 16918 : rtx x2, x3, x4, x5, x6;
635 16918 : int res ATTRIBUTE_UNUSED;
636 16918 : x2 = XEXP (x1, 0);
637 16918 : x3 = XEXP (x2, 0);
638 16918 : operands[1] = x3;
639 16918 : x4 = XEXP (x2, 1);
640 16918 : operands[2] = x4;
641 16918 : x5 = XEXP (x1, 1);
642 16918 : operands[3] = x5;
643 16918 : x6 = XEXP (x1, 2);
644 16918 : operands[4] = x6;
645 16918 : switch (GET_MODE (operands[0]))
646 : {
647 1442 : case E_V16HImode:
648 1442 : return pattern135 (x1,
649 : E_HImode,
650 1442 : E_V16HImode); /* [-1, 0] */
651 :
652 1177 : case E_V8HImode:
653 1177 : if (pattern135 (x1,
654 : E_QImode,
655 : E_V8HImode) != 0)
656 : return -1;
657 : return 1;
658 :
659 2861 : case E_V8SImode:
660 2861 : if (pattern135 (x1,
661 : E_QImode,
662 : E_V8SImode) != 0)
663 : return -1;
664 : return 2;
665 :
666 2793 : case E_V4SImode:
667 2793 : if (pattern135 (x1,
668 : E_QImode,
669 : E_V4SImode) != 0)
670 : return -1;
671 : return 3;
672 :
673 1679 : case E_V4DImode:
674 1679 : 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 1595 : case E_V32HImode:
688 1595 : if (pattern135 (x1,
689 : E_SImode,
690 : E_V32HImode) != 0)
691 : return -1;
692 : return 6;
693 :
694 2785 : case E_V16SImode:
695 2785 : if (pattern135 (x1,
696 : E_HImode,
697 : E_V16SImode) != 0)
698 : return -1;
699 : return 7;
700 :
701 1422 : case E_V8DImode:
702 1422 : 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 17399 : pattern159 (rtx x1)
715 : {
716 17399 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
717 17399 : rtx x2, x3, x4, x5;
718 17399 : int res ATTRIBUTE_UNUSED;
719 17399 : x2 = XEXP (x1, 0);
720 17399 : operands[0] = x2;
721 17399 : x3 = XEXP (x1, 1);
722 17399 : x4 = XVECEXP (x3, 0, 0);
723 17399 : operands[1] = x4;
724 17399 : x5 = XVECEXP (x3, 0, 1);
725 17399 : operands[2] = x5;
726 17399 : 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 6075 : case E_V4SFmode:
757 6075 : 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 190 : case E_V4DFmode:
769 190 : if (pattern158 (x3,
770 : E_V4DFmode) != 0)
771 : return -1;
772 : return 7;
773 :
774 2971 : case E_V2DFmode:
775 2971 : 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 5488 : pattern184 (rtx x1)
823 : {
824 5488 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
825 5488 : rtx x2, x3, x4, x5, x6;
826 5488 : int res ATTRIBUTE_UNUSED;
827 5488 : x2 = XEXP (x1, 0);
828 5488 : operands[0] = x2;
829 5488 : x3 = XEXP (x1, 1);
830 5488 : x4 = XVECEXP (x3, 0, 0);
831 5488 : operands[1] = x4;
832 5488 : x5 = XVECEXP (x3, 0, 1);
833 5488 : operands[2] = x5;
834 5488 : x6 = XVECEXP (x3, 0, 2);
835 5488 : operands[3] = x6;
836 5488 : switch (GET_MODE (operands[0]))
837 : {
838 2115 : case E_V8SImode:
839 2115 : return pattern178 (x3,
840 2115 : E_V8SImode); /* [-1, 0] */
841 :
842 1741 : case E_V4SImode:
843 1741 : 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 6777718 : pattern190 (rtx x1)
861 : {
862 6777718 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
863 6777718 : rtx x2, x3;
864 6777718 : int res ATTRIBUTE_UNUSED;
865 6777718 : x2 = XEXP (x1, 0);
866 6777718 : operands[1] = x2;
867 6777718 : x3 = XEXP (x1, 1);
868 6777718 : operands[2] = x3;
869 6777718 : switch (GET_MODE (operands[0]))
870 : {
871 815 : case E_V32HFmode:
872 815 : return pattern189 (x1,
873 815 : E_V32HFmode); /* [-1, 0] */
874 :
875 896 : case E_V16HFmode:
876 896 : if (pattern189 (x1,
877 : E_V16HFmode) != 0)
878 : return -1;
879 : return 1;
880 :
881 1867 : case E_V8HFmode:
882 1867 : if (pattern189 (x1,
883 : E_V8HFmode) != 0)
884 : return -1;
885 : return 2;
886 :
887 696 : case E_V16SFmode:
888 696 : if (pattern189 (x1,
889 : E_V16SFmode) != 0)
890 : return -1;
891 : return 3;
892 :
893 39952 : case E_V8SFmode:
894 39952 : if (pattern189 (x1,
895 : E_V8SFmode) != 0)
896 : return -1;
897 : return 4;
898 :
899 287758 : case E_V4SFmode:
900 287758 : if (pattern189 (x1,
901 : E_V4SFmode) != 0)
902 : return -1;
903 : return 5;
904 :
905 1440 : case E_V8DFmode:
906 1440 : if (pattern189 (x1,
907 : E_V8DFmode) != 0)
908 : return -1;
909 : return 6;
910 :
911 59475 : case E_V4DFmode:
912 59475 : if (pattern189 (x1,
913 : E_V4DFmode) != 0)
914 : return -1;
915 : return 7;
916 :
917 227031 : case E_V2DFmode:
918 227031 : if (pattern189 (x1,
919 : E_V2DFmode) != 0)
920 : return -1;
921 : return 8;
922 :
923 1035 : case E_V64QImode:
924 1035 : if (pattern189 (x1,
925 : E_V64QImode) != 0)
926 : return -1;
927 : return 9;
928 :
929 8115 : case E_V32QImode:
930 8115 : if (pattern189 (x1,
931 : E_V32QImode) != 0)
932 : return -1;
933 : return 10;
934 :
935 67909 : case E_V16QImode:
936 67909 : if (pattern189 (x1,
937 : E_V16QImode) != 0)
938 : return -1;
939 : return 11;
940 :
941 985 : case E_V32HImode:
942 985 : if (pattern189 (x1,
943 : E_V32HImode) != 0)
944 : return -1;
945 : return 12;
946 :
947 9334 : case E_V16HImode:
948 9334 : if (pattern189 (x1,
949 : E_V16HImode) != 0)
950 : return -1;
951 : return 13;
952 :
953 111532 : case E_V8HImode:
954 111532 : if (pattern189 (x1,
955 : E_V8HImode) != 0)
956 : return -1;
957 : return 14;
958 :
959 11626 : case E_V16SImode:
960 11626 : if (pattern189 (x1,
961 : E_V16SImode) != 0)
962 : return -1;
963 : return 15;
964 :
965 26481 : case E_V8SImode:
966 26481 : if (pattern189 (x1,
967 : E_V8SImode) != 0)
968 : return -1;
969 : return 16;
970 :
971 730623 : case E_V4SImode:
972 730623 : if (pattern189 (x1,
973 : E_V4SImode) != 0)
974 : return -1;
975 : return 17;
976 :
977 5939 : case E_V8DImode:
978 5939 : if (pattern189 (x1,
979 : E_V8DImode) != 0)
980 : return -1;
981 : return 18;
982 :
983 12630 : case E_V4DImode:
984 12630 : if (pattern189 (x1,
985 : E_V4DImode) != 0)
986 : return -1;
987 : return 19;
988 :
989 223282 : case E_V2DImode:
990 223282 : if (pattern189 (x1,
991 : E_V2DImode) != 0)
992 : return -1;
993 : return 20;
994 :
995 206 : case E_V32BFmode:
996 206 : if (pattern12 (x1,
997 : E_V32BFmode) != 0)
998 : return -1;
999 : return 21;
1000 :
1001 206 : case E_V16BFmode:
1002 206 : if (pattern12 (x1,
1003 : E_V16BFmode) != 0)
1004 : return -1;
1005 : return 22;
1006 :
1007 230 : case E_V8BFmode:
1008 230 : if (pattern12 (x1,
1009 : E_V8BFmode) != 0)
1010 : return -1;
1011 : return 23;
1012 :
1013 : default:
1014 : return -1;
1015 : }
1016 : }
1017 :
1018 : int
1019 190 : pattern208 (rtx x1)
1020 : {
1021 190 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1022 190 : rtx x2, x3;
1023 190 : int res ATTRIBUTE_UNUSED;
1024 190 : x2 = XEXP (x1, 1);
1025 190 : x3 = XEXP (x2, 0);
1026 190 : operands[2] = x3;
1027 190 : if (!register_operand (operands[2], E_QImode))
1028 : return -1;
1029 184 : return pattern207 (x1); /* [-1, 3] */
1030 : }
1031 :
1032 : int
1033 30 : pattern210 (rtx x1)
1034 : {
1035 30 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1036 30 : rtx x2, x3, x4;
1037 30 : int res ATTRIBUTE_UNUSED;
1038 30 : x2 = XEXP (x1, 1);
1039 30 : x3 = XEXP (x2, 0);
1040 30 : operands[3] = x3;
1041 30 : if (!const_int_operand (operands[3], E_QImode))
1042 : return -1;
1043 17 : x4 = XEXP (x2, 1);
1044 17 : operands[2] = x4;
1045 17 : if (!nonimmediate_operand (operands[2], E_QImode))
1046 : return -1;
1047 17 : return pattern206 (x1); /* [-1, 3] */
1048 : }
1049 :
1050 : int
1051 147 : pattern214 (rtx x1)
1052 : {
1053 147 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1054 147 : rtx x2, x3, x4, x5;
1055 147 : int res ATTRIBUTE_UNUSED;
1056 147 : x2 = XVECEXP (x1, 0, 1);
1057 147 : if (XVECLEN (x2, 0) != 1
1058 147 : || XINT (x2, 1) != 111)
1059 : return -1;
1060 147 : x3 = XVECEXP (x2, 0, 0);
1061 147 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1062 : return -1;
1063 147 : x4 = XVECEXP (x1, 0, 0);
1064 147 : x5 = XEXP (x4, 1);
1065 147 : return pattern213 (x5,
1066 147 : E_V2SFmode); /* [-1, 0] */
1067 : }
1068 :
1069 : int
1070 1011 : pattern217 (rtx x1, machine_mode i1)
1071 : {
1072 1011 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1073 1011 : rtx x2;
1074 1011 : int res ATTRIBUTE_UNUSED;
1075 1011 : if (GET_MODE (x1) != i1)
1076 : return -1;
1077 1011 : x2 = XEXP (x1, 0);
1078 1011 : if (GET_MODE (x2) != i1
1079 1011 : || !nonimmediate_operand (operands[1], i1)
1080 1668 : || !general_operand (operands[2], i1))
1081 354 : return -1;
1082 : return 0;
1083 : }
1084 :
1085 : int
1086 564142 : pattern220 (rtx x1)
1087 : {
1088 564142 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1089 564142 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1090 564142 : rtx x10;
1091 564142 : int res ATTRIBUTE_UNUSED;
1092 564142 : x2 = XVECEXP (x1, 0, 1);
1093 564142 : if (GET_CODE (x2) != CLOBBER)
1094 : return -1;
1095 539870 : x3 = XEXP (x2, 0);
1096 539870 : if (GET_CODE (x3) != REG
1097 539870 : || REGNO (x3) != 17
1098 1062573 : || GET_MODE (x3) != E_CCmode)
1099 : return -1;
1100 522703 : x4 = XVECEXP (x1, 0, 0);
1101 522703 : x5 = XEXP (x4, 0);
1102 522703 : operands[0] = x5;
1103 522703 : x6 = XEXP (x4, 1);
1104 522703 : x7 = XEXP (x6, 0);
1105 522703 : switch (GET_CODE (x7))
1106 : {
1107 421509 : case REG:
1108 421509 : case SUBREG:
1109 421509 : return pattern216 (x6); /* [-1, 4] */
1110 :
1111 42047 : case PLUS:
1112 42047 : x8 = XEXP (x7, 0);
1113 42047 : operands[1] = x8;
1114 42047 : x9 = XEXP (x7, 1);
1115 42047 : operands[2] = x9;
1116 42047 : res = pattern219 (x6);
1117 42047 : if (res >= 0)
1118 29169 : return res + 5; /* [5, 7] */
1119 : return -1;
1120 :
1121 7079 : case MINUS:
1122 7079 : x8 = XEXP (x7, 0);
1123 7079 : operands[1] = x8;
1124 7079 : x9 = XEXP (x7, 1);
1125 7079 : operands[2] = x9;
1126 7079 : x10 = XEXP (x6, 1);
1127 7079 : if (!rtx_equal_p (x10, operands[1]))
1128 : return -1;
1129 47 : res = pattern219 (x6);
1130 47 : if (res >= 0)
1131 47 : return res + 8; /* [8, 10] */
1132 : return -1;
1133 :
1134 : default:
1135 : return -1;
1136 : }
1137 : }
1138 :
1139 : int
1140 696 : pattern232 (rtx x1, machine_mode i1)
1141 : {
1142 696 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1143 696 : int res ATTRIBUTE_UNUSED;
1144 696 : if (!register_operand (operands[0], i1)
1145 696 : || GET_MODE (x1) != i1
1146 696 : || !nonimmediate_operand (operands[1], i1)
1147 1392 : || !register_operand (operands[2], i1))
1148 0 : return -1;
1149 : return 0;
1150 : }
1151 :
1152 : int
1153 598427 : pattern239 (rtx x1)
1154 : {
1155 598427 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1156 598427 : rtx x2, x3, x4, x5, x6, x7, x8;
1157 598427 : int res ATTRIBUTE_UNUSED;
1158 598427 : x2 = XEXP (x1, 1);
1159 598427 : if (GET_MODE (x2) != E_QImode)
1160 : return -1;
1161 440514 : x3 = XEXP (x2, 0);
1162 440514 : if (!ix86_comparison_operator (x3, E_VOIDmode))
1163 : return -1;
1164 1155 : operands[1] = x3;
1165 1155 : x4 = XEXP (x3, 0);
1166 1155 : if (GET_CODE (x4) != REG
1167 1155 : || REGNO (x4) != 17)
1168 : return -1;
1169 536 : x5 = XEXP (x3, 1);
1170 536 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1171 : return -1;
1172 536 : x6 = XEXP (x2, 1);
1173 536 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1174 : return -1;
1175 0 : x7 = XEXP (x1, 0);
1176 0 : switch (GET_CODE (x7))
1177 : {
1178 0 : case REG:
1179 0 : case SUBREG:
1180 0 : case MEM:
1181 0 : operands[0] = x7;
1182 0 : if (!nonimmediate_operand (operands[0], E_QImode))
1183 : return -1;
1184 : return 0;
1185 :
1186 0 : case STRICT_LOW_PART:
1187 0 : x8 = XEXP (x7, 0);
1188 0 : operands[0] = x8;
1189 0 : if (!register_operand (operands[0], E_QImode))
1190 : return -1;
1191 : return 1;
1192 :
1193 : default:
1194 : return -1;
1195 : }
1196 : }
1197 :
1198 : int
1199 697 : pattern255 (rtx x1)
1200 : {
1201 697 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1202 697 : rtx x2, x3, x4, x5;
1203 697 : int res ATTRIBUTE_UNUSED;
1204 697 : x2 = XEXP (x1, 1);
1205 697 : if (GET_MODE (x2) != E_CCmode)
1206 : return -1;
1207 84 : x3 = XEXP (x1, 0);
1208 84 : if (GET_CODE (x3) != REG
1209 84 : || REGNO (x3) != 17
1210 168 : || GET_MODE (x3) != E_CCmode)
1211 : return -1;
1212 84 : x4 = XVECEXP (x2, 0, 0);
1213 84 : operands[2] = x4;
1214 84 : if (!register_operand (operands[2], E_V16QImode))
1215 : return -1;
1216 76 : x5 = XVECEXP (x2, 0, 1);
1217 76 : operands[3] = x5;
1218 76 : return 0;
1219 : }
1220 :
1221 : int
1222 5 : pattern265 (rtx x1, int *pnum_clobbers)
1223 : {
1224 5 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1225 5 : rtx x2, x3, x4;
1226 5 : int res ATTRIBUTE_UNUSED;
1227 5 : if (pnum_clobbers == NULL)
1228 : return -1;
1229 5 : x2 = XEXP (x1, 0);
1230 5 : x3 = XEXP (x2, 0);
1231 5 : operands[0] = x3;
1232 5 : x4 = XEXP (x1, 1);
1233 5 : return pattern41 (x4); /* [-1, 1] */
1234 : }
1235 :
1236 : int
1237 1087 : pattern270 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
1238 : {
1239 1087 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1240 1087 : rtx x2, x3;
1241 1087 : int res ATTRIBUTE_UNUSED;
1242 1087 : if (!register_operand (operands[0], i3)
1243 1087 : || GET_MODE (x1) != i3)
1244 : return -1;
1245 1063 : x2 = XEXP (x1, 0);
1246 1063 : if (GET_MODE (x2) != i2
1247 1063 : || !register_operand (operands[1], i1))
1248 210 : return -1;
1249 853 : x3 = XEXP (x1, 1);
1250 853 : if (GET_MODE (x3) != i2
1251 853 : || !register_mmxmem_operand (operands[2], i1))
1252 116 : return -1;
1253 : return 0;
1254 : }
1255 :
1256 : int
1257 953 : pattern281 (rtx x1)
1258 : {
1259 953 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1260 953 : rtx x2;
1261 953 : int res ATTRIBUTE_UNUSED;
1262 953 : if (!register_operand (operands[0], E_SImode)
1263 953 : || GET_MODE (x1) != E_SImode)
1264 : return -1;
1265 948 : x2 = XEXP (x1, 0);
1266 948 : switch (GET_MODE (x2))
1267 : {
1268 442 : case E_QImode:
1269 442 : if (!nonimmediate_operand (operands[1], E_QImode))
1270 : return -1;
1271 : return 0;
1272 :
1273 506 : case E_HImode:
1274 506 : if (!nonimmediate_operand (operands[1], E_HImode))
1275 : return -1;
1276 : return 1;
1277 :
1278 : default:
1279 : return -1;
1280 : }
1281 : }
1282 :
1283 : int
1284 584 : pattern288 (rtx x1, machine_mode i1, machine_mode i2)
1285 : {
1286 584 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1287 584 : rtx x2, x3, x4, x5, x6;
1288 584 : int res ATTRIBUTE_UNUSED;
1289 584 : if (GET_MODE (x1) != i1)
1290 : return -1;
1291 584 : x2 = XEXP (x1, 0);
1292 584 : if (GET_MODE (x2) != i1)
1293 : return -1;
1294 584 : x3 = XEXP (x1, 1);
1295 584 : if (GET_MODE (x3) != i1)
1296 : return -1;
1297 584 : x4 = XEXP (x3, 0);
1298 584 : if (GET_MODE (x4) != i2)
1299 : return -1;
1300 584 : x5 = XEXP (x4, 0);
1301 584 : if (GET_MODE (x5) != i2)
1302 : return -1;
1303 584 : x6 = XEXP (x5, 0);
1304 584 : if (!register_operand (x6, i1))
1305 : return -1;
1306 : return 0;
1307 : }
1308 :
1309 : int
1310 2 : pattern296 (rtx x1)
1311 : {
1312 2 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1313 2 : rtx x2;
1314 2 : int res ATTRIBUTE_UNUSED;
1315 2 : if (!memory_operand (operands[0], E_SImode)
1316 2 : || GET_MODE (x1) != E_SImode)
1317 : return -1;
1318 0 : x2 = XEXP (x1, 0);
1319 0 : switch (GET_MODE (x2))
1320 : {
1321 0 : case E_V4QImode:
1322 0 : switch (GET_MODE (operands[1]))
1323 : {
1324 0 : case E_V4SImode:
1325 0 : if (!register_operand (operands[1], E_V4SImode))
1326 : return -1;
1327 : return 0;
1328 :
1329 0 : case E_V4DImode:
1330 0 : if (!register_operand (operands[1], E_V4DImode))
1331 : return -1;
1332 : return 1;
1333 :
1334 : default:
1335 : return -1;
1336 : }
1337 :
1338 0 : case E_V2HImode:
1339 0 : if (!register_operand (operands[1], E_V2DImode))
1340 : return -1;
1341 : return 2;
1342 :
1343 : default:
1344 : return -1;
1345 : }
1346 : }
1347 :
1348 : int
1349 1134 : pattern308 (rtx x1, machine_mode i1)
1350 : {
1351 1134 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1352 1134 : rtx x2, x3;
1353 1134 : int res ATTRIBUTE_UNUSED;
1354 1134 : if (!register_operand (operands[0], i1)
1355 1134 : || GET_MODE (x1) != i1)
1356 : return -1;
1357 1084 : x2 = XEXP (x1, 0);
1358 1084 : if (GET_MODE (x2) != i1)
1359 : return -1;
1360 1084 : x3 = XEXP (x2, 0);
1361 1084 : if (GET_MODE (x3) != i1
1362 1084 : || !register_operand (operands[1], i1)
1363 1080 : || !nonimmediate_operand (operands[2], i1)
1364 2164 : || !nonimm_or_0_operand (operands[3], i1))
1365 4 : return -1;
1366 : return 0;
1367 : }
1368 :
1369 : int
1370 171 : pattern313 (rtx x1, machine_mode i1)
1371 : {
1372 171 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1373 171 : rtx x2, x3;
1374 171 : int res ATTRIBUTE_UNUSED;
1375 171 : if (!register_operand (operands[0], i1)
1376 171 : || GET_MODE (x1) != i1)
1377 : return -1;
1378 171 : x2 = XEXP (x1, 0);
1379 171 : if (GET_MODE (x2) != i1)
1380 : return -1;
1381 171 : x3 = XEXP (x2, 0);
1382 171 : if (GET_MODE (x3) != E_SImode
1383 171 : || !nonimmediate_operand (operands[1], E_HImode)
1384 180 : || !const0_operand (operands[2], i1))
1385 162 : return -1;
1386 : return 0;
1387 : }
1388 :
1389 : int
1390 17690 : pattern320 (rtx x1)
1391 : {
1392 17690 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1393 17690 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1394 17690 : rtx x10, x11;
1395 17690 : int res ATTRIBUTE_UNUSED;
1396 17690 : x2 = XEXP (x1, 2);
1397 17690 : switch (GET_CODE (x2))
1398 : {
1399 3937 : case UNSPEC:
1400 3937 : if (XVECLEN (x2, 0) != 3)
1401 : return -1;
1402 3934 : x3 = XEXP (x1, 0);
1403 3934 : operands[1] = x3;
1404 3934 : x4 = XEXP (x1, 1);
1405 3934 : operands[2] = x4;
1406 3934 : x5 = XVECEXP (x2, 0, 0);
1407 3934 : operands[3] = x5;
1408 3934 : x6 = XVECEXP (x2, 0, 1);
1409 3934 : operands[4] = x6;
1410 3934 : switch (XINT (x2, 1))
1411 : {
1412 : case 60:
1413 : return 0;
1414 :
1415 389 : case 158:
1416 389 : x7 = XVECEXP (x2, 0, 2);
1417 389 : operands[5] = x7;
1418 389 : if (!const_0_to_7_operand (operands[5], E_SImode))
1419 : return -1;
1420 389 : switch (GET_MODE (operands[0]))
1421 : {
1422 0 : case E_V16QImode:
1423 0 : if (pattern318 (x1,
1424 : E_V16QImode,
1425 : E_HImode) != 0)
1426 : return -1;
1427 : return 1;
1428 :
1429 0 : case E_V8HImode:
1430 0 : if (pattern318 (x1,
1431 : E_V8HImode,
1432 : E_QImode) != 0)
1433 : return -1;
1434 : return 2;
1435 :
1436 17 : case E_V4SImode:
1437 17 : if (pattern318 (x1,
1438 : E_V4SImode,
1439 : E_QImode) != 0)
1440 : return -1;
1441 : return 3;
1442 :
1443 0 : case E_V2DImode:
1444 0 : if (pattern318 (x1,
1445 : E_V2DImode,
1446 : E_QImode) != 0)
1447 : return -1;
1448 : return 4;
1449 :
1450 12 : case E_V32QImode:
1451 12 : if (pattern318 (x1,
1452 : E_V32QImode,
1453 : E_SImode) != 0)
1454 : return -1;
1455 : return 5;
1456 :
1457 12 : case E_V16HImode:
1458 12 : if (pattern318 (x1,
1459 : E_V16HImode,
1460 : E_HImode) != 0)
1461 : return -1;
1462 : return 6;
1463 :
1464 12 : case E_V8SImode:
1465 12 : if (pattern318 (x1,
1466 : E_V8SImode,
1467 : E_QImode) != 0)
1468 : return -1;
1469 : return 7;
1470 :
1471 12 : case E_V4DImode:
1472 12 : if (pattern318 (x1,
1473 : E_V4DImode,
1474 : E_QImode) != 0)
1475 : return -1;
1476 : return 8;
1477 :
1478 : default:
1479 : return -1;
1480 : }
1481 :
1482 : default:
1483 : return -1;
1484 : }
1485 :
1486 2 : case NOT:
1487 2 : x8 = XEXP (x2, 0);
1488 2 : if (GET_CODE (x8) != UNSPEC
1489 0 : || XVECLEN (x8, 0) != 3
1490 0 : || XINT (x8, 1) != 60)
1491 : return -1;
1492 0 : x3 = XEXP (x1, 0);
1493 0 : operands[1] = x3;
1494 0 : x4 = XEXP (x1, 1);
1495 0 : operands[2] = x4;
1496 0 : x9 = XVECEXP (x8, 0, 0);
1497 0 : operands[3] = x9;
1498 0 : x10 = XVECEXP (x8, 0, 1);
1499 0 : operands[4] = x10;
1500 0 : x11 = XVECEXP (x8, 0, 2);
1501 0 : operands[5] = x11;
1502 0 : switch (GET_MODE (operands[0]))
1503 : {
1504 0 : case E_V8SImode:
1505 0 : if (!register_operand (operands[0], E_V8SImode)
1506 0 : || GET_MODE (x1) != E_V8SImode
1507 0 : || !vector_all_ones_operand (operands[1], E_V8SImode)
1508 0 : || !const0_operand (operands[2], E_V8SImode)
1509 0 : || GET_MODE (x2) != E_QImode
1510 0 : || GET_MODE (x8) != E_QImode)
1511 0 : return -1;
1512 0 : switch (GET_MODE (operands[3]))
1513 : {
1514 0 : case E_V8SFmode:
1515 0 : if (!register_operand (operands[3], E_V8SFmode)
1516 0 : || !nonimmediate_operand (operands[4], E_V8SFmode)
1517 0 : || !const_0_to_31_operand (operands[5], E_SImode))
1518 0 : return -1;
1519 : return 9;
1520 :
1521 0 : case E_V8SImode:
1522 0 : if (!nonimmediate_operand (operands[3], E_V8SImode)
1523 0 : || !nonimmediate_operand (operands[4], E_V8SImode)
1524 0 : || !const_0_to_7_operand (operands[5], E_SImode))
1525 0 : return -1;
1526 : return 10;
1527 :
1528 : default:
1529 : return -1;
1530 : }
1531 :
1532 0 : case E_V4SImode:
1533 0 : if (!register_operand (operands[0], E_V4SImode)
1534 0 : || GET_MODE (x1) != E_V4SImode
1535 0 : || !vector_all_ones_operand (operands[1], E_V4SImode)
1536 0 : || !const0_operand (operands[2], E_V4SImode)
1537 0 : || GET_MODE (x2) != E_QImode
1538 0 : || GET_MODE (x8) != E_QImode)
1539 0 : return -1;
1540 0 : switch (GET_MODE (operands[3]))
1541 : {
1542 0 : case E_V4SFmode:
1543 0 : if (!register_operand (operands[3], E_V4SFmode)
1544 0 : || !nonimmediate_operand (operands[4], E_V4SFmode)
1545 0 : || !const_0_to_31_operand (operands[5], E_SImode))
1546 0 : return -1;
1547 : return 11;
1548 :
1549 0 : case E_V4SImode:
1550 0 : if (!nonimmediate_operand (operands[3], E_V4SImode)
1551 0 : || !nonimmediate_operand (operands[4], E_V4SImode)
1552 0 : || !const_0_to_7_operand (operands[5], E_SImode))
1553 0 : return -1;
1554 : return 12;
1555 :
1556 : default:
1557 : return -1;
1558 : }
1559 :
1560 0 : case E_V4DImode:
1561 0 : if (!register_operand (operands[0], E_V4DImode)
1562 0 : || GET_MODE (x1) != E_V4DImode
1563 0 : || !vector_all_ones_operand (operands[1], E_V4DImode)
1564 0 : || !const0_operand (operands[2], E_V4DImode)
1565 0 : || GET_MODE (x2) != E_QImode
1566 0 : || GET_MODE (x8) != E_QImode)
1567 0 : return -1;
1568 0 : switch (GET_MODE (operands[3]))
1569 : {
1570 0 : case E_V4DFmode:
1571 0 : if (!register_operand (operands[3], E_V4DFmode)
1572 0 : || !nonimmediate_operand (operands[4], E_V4DFmode)
1573 0 : || !const_0_to_31_operand (operands[5], E_SImode))
1574 0 : return -1;
1575 : return 13;
1576 :
1577 0 : case E_V4DImode:
1578 0 : if (!nonimmediate_operand (operands[3], E_V4DImode)
1579 0 : || !nonimmediate_operand (operands[4], E_V4DImode)
1580 0 : || !const_0_to_7_operand (operands[5], E_SImode))
1581 0 : return -1;
1582 : return 14;
1583 :
1584 : default:
1585 : return -1;
1586 : }
1587 :
1588 0 : case E_V2DImode:
1589 0 : if (!register_operand (operands[0], E_V2DImode)
1590 0 : || GET_MODE (x1) != E_V2DImode
1591 0 : || !vector_all_ones_operand (operands[1], E_V2DImode)
1592 0 : || !const0_operand (operands[2], E_V2DImode)
1593 0 : || GET_MODE (x2) != E_QImode
1594 0 : || GET_MODE (x8) != E_QImode)
1595 0 : return -1;
1596 0 : switch (GET_MODE (operands[3]))
1597 : {
1598 0 : case E_V2DFmode:
1599 0 : if (!register_operand (operands[3], E_V2DFmode)
1600 0 : || !nonimmediate_operand (operands[4], E_V2DFmode)
1601 0 : || !const_0_to_31_operand (operands[5], E_SImode))
1602 0 : return -1;
1603 : return 15;
1604 :
1605 0 : case E_V2DImode:
1606 0 : if (!nonimmediate_operand (operands[3], E_V2DImode)
1607 0 : || !nonimmediate_operand (operands[4], E_V2DImode)
1608 0 : || !const_0_to_7_operand (operands[5], E_SImode))
1609 0 : return -1;
1610 : return 16;
1611 :
1612 : default:
1613 : return -1;
1614 : }
1615 :
1616 0 : case E_V16QImode:
1617 0 : if (pattern319 (x1,
1618 : E_V16QImode,
1619 : E_HImode) != 0)
1620 : return -1;
1621 : return 17;
1622 :
1623 0 : case E_V8HImode:
1624 0 : if (pattern319 (x1,
1625 : E_V8HImode,
1626 : E_QImode) != 0)
1627 : return -1;
1628 : return 18;
1629 :
1630 0 : case E_V32QImode:
1631 0 : if (pattern319 (x1,
1632 : E_V32QImode,
1633 : E_SImode) != 0)
1634 : return -1;
1635 : return 19;
1636 :
1637 0 : case E_V16HImode:
1638 0 : if (pattern319 (x1,
1639 : E_V16HImode,
1640 : E_HImode) != 0)
1641 : return -1;
1642 : return 20;
1643 :
1644 : default:
1645 : return -1;
1646 : }
1647 :
1648 12118 : case REG:
1649 12118 : case SUBREG:
1650 12118 : operands[1] = x2;
1651 12118 : x3 = XEXP (x1, 0);
1652 12118 : operands[2] = x3;
1653 12118 : x4 = XEXP (x1, 1);
1654 12118 : operands[3] = x4;
1655 12118 : return 21;
1656 :
1657 : default:
1658 : return -1;
1659 : }
1660 : }
1661 :
1662 : int
1663 46156 : pattern384 (rtx x1, int i1, int i2)
1664 : {
1665 46156 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1666 46156 : rtx x2;
1667 46156 : int res ATTRIBUTE_UNUSED;
1668 46156 : if (GET_CODE (x1) != UNSPEC
1669 25942 : || XVECLEN (x1, 0) != 1
1670 25942 : || XINT (x1, 1) != i1)
1671 : return -1;
1672 25942 : x2 = XVECEXP (x1, 0, 0);
1673 25942 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + i2])
1674 0 : return -1;
1675 : return 0;
1676 : }
1677 :
1678 : int
1679 0 : pattern388 (rtx x1)
1680 : {
1681 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1682 0 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1683 0 : rtx x10, x11;
1684 0 : int res ATTRIBUTE_UNUSED;
1685 0 : x2 = XVECEXP (x1, 0, 0);
1686 0 : x3 = XEXP (x2, 1);
1687 0 : if (GET_MODE (x3) != E_SImode)
1688 : return -1;
1689 0 : x4 = XVECEXP (x1, 0, 1);
1690 0 : if (GET_CODE (x4) != USE)
1691 : return -1;
1692 0 : x5 = XVECEXP (x1, 0, 2);
1693 0 : if (GET_CODE (x5) != CLOBBER)
1694 : return -1;
1695 0 : x6 = XEXP (x2, 0);
1696 0 : operands[0] = x6;
1697 0 : if (!register_operand (operands[0], E_SImode))
1698 : return -1;
1699 0 : x7 = XEXP (x3, 0);
1700 0 : operands[3] = x7;
1701 0 : x8 = XEXP (x4, 0);
1702 0 : operands[4] = x8;
1703 0 : x9 = XEXP (x5, 0);
1704 0 : operands[1] = x9;
1705 0 : x10 = XVECEXP (x1, 0, 3);
1706 0 : x11 = XEXP (x10, 0);
1707 0 : operands[2] = x11;
1708 0 : switch (GET_MODE (operands[3]))
1709 : {
1710 0 : case E_SFmode:
1711 0 : return pattern387 (
1712 : E_V4SFmode,
1713 0 : E_SFmode); /* [-1, 0] */
1714 :
1715 0 : case E_DFmode:
1716 0 : if (pattern387 (
1717 : E_V2DFmode,
1718 : E_DFmode) != 0)
1719 : return -1;
1720 : return 1;
1721 :
1722 : default:
1723 : return -1;
1724 : }
1725 : }
1726 :
1727 : int
1728 1801 : pattern404 (rtx x1, machine_mode i1, machine_mode i2)
1729 : {
1730 1801 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1731 1801 : rtx x2;
1732 1801 : int res ATTRIBUTE_UNUSED;
1733 1801 : if (!nonimmediate_operand (operands[0], i1)
1734 1801 : || GET_MODE (x1) != i1)
1735 : return -1;
1736 1795 : x2 = XEXP (x1, 0);
1737 1795 : if (GET_MODE (x2) != i1
1738 1795 : || !nonimmediate_operand (operands[1], i2)
1739 3098 : || !const_scalar_int_operand (operands[2], i1))
1740 492 : return -1;
1741 : return 0;
1742 : }
1743 :
1744 : int
1745 36 : pattern412 (rtx x1, machine_mode i1, machine_mode i2)
1746 : {
1747 36 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1748 36 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1749 36 : int res ATTRIBUTE_UNUSED;
1750 36 : x2 = XEXP (x1, 0);
1751 36 : x3 = XEXP (x2, 0);
1752 36 : x4 = XEXP (x3, 1);
1753 36 : x5 = XVECEXP (x4, 0, 0);
1754 36 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1755 : return -1;
1756 36 : x6 = XVECEXP (x4, 0, 1);
1757 36 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
1758 : return -1;
1759 36 : x7 = XVECEXP (x4, 0, 2);
1760 36 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
1761 : return -1;
1762 36 : x8 = XVECEXP (x4, 0, 3);
1763 36 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 3]
1764 36 : || GET_MODE (x3) != i2)
1765 : return -1;
1766 36 : x9 = XEXP (x3, 0);
1767 36 : if (GET_MODE (x9) != i1)
1768 : return -1;
1769 36 : switch (GET_MODE (operands[0]))
1770 : {
1771 18 : case E_V4SImode:
1772 18 : return pattern143 (x1,
1773 18 : E_V4SImode); /* [-1, 0] */
1774 :
1775 18 : case E_V4DImode:
1776 18 : if (pattern143 (x1,
1777 : E_V4DImode) != 0)
1778 : return -1;
1779 : return 1;
1780 :
1781 : default:
1782 : return -1;
1783 : }
1784 : }
1785 :
1786 : int
1787 8608165 : pattern420 (rtx x1, machine_mode i1)
1788 : {
1789 8608165 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1790 8608165 : rtx x2, x3, x4, x5, x6, x7, x8;
1791 8608165 : int res ATTRIBUTE_UNUSED;
1792 8608165 : if (!general_reg_operand (operands[0], i1)
1793 3683777 : || GET_CODE (x1) != PARALLEL
1794 9272198 : || XVECLEN (x1, 0) != 2)
1795 : return -1;
1796 636924 : x2 = XVECEXP (x1, 0, 0);
1797 636924 : if (GET_CODE (x2) != SET)
1798 : return -1;
1799 633404 : x3 = XEXP (x2, 1);
1800 633404 : if (!commutative_operator (x3, i1))
1801 : return -1;
1802 209380 : operands[3] = x3;
1803 209380 : x4 = XVECEXP (x1, 0, 1);
1804 209380 : if (GET_CODE (x4) != CLOBBER)
1805 : return -1;
1806 209366 : x5 = XEXP (x4, 0);
1807 209366 : if (GET_CODE (x5) != REG
1808 209366 : || REGNO (x5) != 17
1809 418732 : || GET_MODE (x5) != E_CCmode)
1810 : return -1;
1811 209366 : x6 = XEXP (x3, 1);
1812 209366 : operands[2] = x6;
1813 209366 : if (!memory_operand (operands[2], i1))
1814 : return -1;
1815 39594 : x7 = XEXP (x3, 0);
1816 39594 : if (!rtx_equal_p (x7, operands[0]))
1817 : return -1;
1818 38522 : x8 = XEXP (x2, 0);
1819 38522 : if (!rtx_equal_p (x8, operands[0]))
1820 : return -1;
1821 : return 0;
1822 : }
1823 :
1824 : int
1825 201794 : pattern433 (rtx x1)
1826 : {
1827 201794 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1828 201794 : rtx x2, x3, x4;
1829 201794 : int res ATTRIBUTE_UNUSED;
1830 201794 : x2 = XEXP (x1, 0);
1831 201794 : x3 = XEXP (x2, 1);
1832 201794 : operands[3] = x3;
1833 201794 : x4 = XEXP (x1, 1);
1834 201794 : operands[4] = x4;
1835 201794 : switch (GET_MODE (operands[0]))
1836 : {
1837 169 : case E_QImode:
1838 169 : return pattern432 (x1,
1839 169 : E_QImode); /* [-1, 0] */
1840 :
1841 258 : case E_HImode:
1842 258 : if (pattern432 (x1,
1843 : E_HImode) != 0)
1844 : return -1;
1845 : return 1;
1846 :
1847 : default:
1848 : return -1;
1849 : }
1850 : }
1851 :
1852 : int
1853 1690020 : pattern440 (rtx x1, int i1)
1854 : {
1855 1690020 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1856 1690020 : rtx x2, x3;
1857 1690020 : int res ATTRIBUTE_UNUSED;
1858 1690020 : x2 = XEXP (x1, 1);
1859 1690020 : if (GET_CODE (x2) != CONST
1860 137173 : || GET_MODE (x2) != E_SImode)
1861 : return -1;
1862 137173 : x3 = XEXP (x2, 0);
1863 137173 : if (GET_CODE (x3) != UNSPEC
1864 132538 : || XVECLEN (x3, 0) != 1
1865 132538 : || XINT (x3, 1) != i1
1866 0 : || GET_MODE (x3) != E_SImode
1867 0 : || !register_operand (operands[0], E_SImode)
1868 137173 : || GET_MODE (x1) != E_SImode)
1869 137173 : return -1;
1870 : return 0;
1871 : }
1872 :
1873 : int
1874 3150 : pattern448 (rtx x1, int *pnum_clobbers)
1875 : {
1876 3150 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1877 3150 : rtx x2, x3;
1878 3150 : int res ATTRIBUTE_UNUSED;
1879 3150 : if (pnum_clobbers == NULL)
1880 : return -1;
1881 3150 : operands[2] = x1;
1882 3150 : x2 = XEXP (x1, 0);
1883 3150 : if (GET_CODE (x2) != REG
1884 3150 : || REGNO (x2) != 17)
1885 : return -1;
1886 1343 : x3 = XEXP (x1, 1);
1887 1343 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1888 : return -1;
1889 1343 : switch (GET_MODE (operands[0]))
1890 : {
1891 : case E_SImode:
1892 : return 0;
1893 :
1894 271 : case E_DImode:
1895 271 : return 1;
1896 :
1897 : default:
1898 : return -1;
1899 : }
1900 : }
1901 :
1902 : int
1903 0 : pattern455 (rtx x1, machine_mode i1)
1904 : {
1905 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1906 0 : rtx x2, x3;
1907 0 : int res ATTRIBUTE_UNUSED;
1908 0 : if (!register_operand (operands[0], i1)
1909 0 : || GET_MODE (x1) != i1)
1910 : return -1;
1911 0 : x2 = XVECEXP (x1, 0, 0);
1912 0 : if (GET_MODE (x2) != i1)
1913 : return -1;
1914 0 : x3 = XEXP (x2, 0);
1915 0 : switch (GET_MODE (x3))
1916 : {
1917 0 : case E_HFmode:
1918 0 : if (!register_operand (operands[1], E_V8HFmode))
1919 : return -1;
1920 : return 0;
1921 :
1922 0 : case E_SFmode:
1923 0 : if (!register_operand (operands[1], E_V4SFmode))
1924 : return -1;
1925 : return 1;
1926 :
1927 0 : case E_DFmode:
1928 0 : if (!register_operand (operands[1], E_V2DFmode))
1929 : return -1;
1930 : return 2;
1931 :
1932 : default:
1933 : return -1;
1934 : }
1935 : }
1936 :
1937 : int
1938 1370 : pattern465 (rtx x1)
1939 : {
1940 1370 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1941 1370 : rtx x2, x3, x4, x5, x6;
1942 1370 : int res ATTRIBUTE_UNUSED;
1943 1370 : x2 = XEXP (x1, 0);
1944 1370 : x3 = XVECEXP (x2, 0, 0);
1945 1370 : operands[1] = x3;
1946 1370 : x4 = XVECEXP (x2, 0, 1);
1947 1370 : operands[2] = x4;
1948 1370 : x5 = XEXP (x1, 1);
1949 1370 : operands[3] = x5;
1950 1370 : x6 = XEXP (x1, 2);
1951 1370 : operands[4] = x6;
1952 1370 : switch (GET_MODE (operands[0]))
1953 : {
1954 472 : case E_V64QImode:
1955 472 : return pattern458 (x1,
1956 : E_V64QImode,
1957 472 : E_DImode); /* [-1, 0] */
1958 :
1959 462 : case E_V32QImode:
1960 462 : if (pattern458 (x1,
1961 : E_V32QImode,
1962 : E_SImode) != 0)
1963 : return -1;
1964 : return 1;
1965 :
1966 436 : case E_V16QImode:
1967 436 : if (pattern458 (x1,
1968 : E_V16QImode,
1969 : E_HImode) != 0)
1970 : return -1;
1971 : return 2;
1972 :
1973 : default:
1974 : return -1;
1975 : }
1976 : }
1977 :
1978 : int
1979 534 : pattern472 (rtx x1, machine_mode i1, machine_mode i2)
1980 : {
1981 534 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1982 534 : rtx x2, x3;
1983 534 : int res ATTRIBUTE_UNUSED;
1984 534 : if (!register_operand (operands[0], i2)
1985 534 : || GET_MODE (x1) != i2)
1986 : return -1;
1987 506 : x2 = XEXP (x1, 0);
1988 506 : if (GET_MODE (x2) != i2
1989 506 : || !vector_operand (operands[1], i2)
1990 506 : || !vector_operand (operands[2], i2)
1991 506 : || !vector_operand (operands[3], i2)
1992 1012 : || !const0_operand (operands[4], i2))
1993 0 : return -1;
1994 506 : x3 = XEXP (x1, 2);
1995 506 : if (GET_MODE (x3) != i1
1996 506 : || !register_operand (operands[5], E_QImode))
1997 50 : return -1;
1998 : return 0;
1999 : }
2000 :
2001 : int
2002 7409 : pattern482 (rtx x1, machine_mode i1, machine_mode i2)
2003 : {
2004 7409 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2005 7409 : rtx x2;
2006 7409 : int res ATTRIBUTE_UNUSED;
2007 7409 : if (!register_operand (operands[0], i1)
2008 7409 : || GET_MODE (x1) != i1)
2009 : return -1;
2010 7075 : x2 = XEXP (x1, 0);
2011 7075 : if (GET_MODE (x2) != i1
2012 7075 : || !register_operand (operands[1], i1)
2013 7063 : || !register_operand (operands[2], i1)
2014 7063 : || !nonimmediate_operand (operands[3], i1)
2015 14138 : || !register_operand (operands[4], i2))
2016 340 : return -1;
2017 : return 0;
2018 : }
2019 :
2020 : int
2021 65652 : pattern490 (rtx x1)
2022 : {
2023 65652 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2024 65652 : rtx x2, x3;
2025 65652 : int res ATTRIBUTE_UNUSED;
2026 65652 : x2 = XEXP (x1, 2);
2027 65652 : switch (GET_CODE (x2))
2028 : {
2029 27134 : case REG:
2030 27134 : case SUBREG:
2031 27134 : operands[4] = x2;
2032 27134 : x3 = XEXP (x1, 1);
2033 27134 : operands[3] = x3;
2034 27134 : switch (GET_MODE (operands[0]))
2035 : {
2036 443 : case E_V32HFmode:
2037 443 : return pattern489 (x1,
2038 : E_V32HFmode,
2039 443 : E_SImode); /* [-1, 0] */
2040 :
2041 491 : case E_V16HFmode:
2042 491 : if (pattern489 (x1,
2043 : E_V16HFmode,
2044 : E_HImode) != 0)
2045 : return -1;
2046 : return 1;
2047 :
2048 425 : case E_V8HFmode:
2049 425 : if (pattern489 (x1,
2050 : E_V8HFmode,
2051 : E_QImode) != 0)
2052 : return -1;
2053 : return 2;
2054 :
2055 1109 : case E_V16SFmode:
2056 1109 : if (pattern489 (x1,
2057 : E_V16SFmode,
2058 : E_HImode) != 0)
2059 : return -1;
2060 : return 3;
2061 :
2062 605 : case E_V8SFmode:
2063 605 : if (pattern489 (x1,
2064 : E_V8SFmode,
2065 : E_QImode) != 0)
2066 : return -1;
2067 : return 4;
2068 :
2069 455 : case E_V4SFmode:
2070 455 : if (pattern489 (x1,
2071 : E_V4SFmode,
2072 : E_QImode) != 0)
2073 : return -1;
2074 : return 5;
2075 :
2076 2626 : case E_V8DFmode:
2077 2626 : if (pattern489 (x1,
2078 : E_V8DFmode,
2079 : E_QImode) != 0)
2080 : return -1;
2081 : return 6;
2082 :
2083 950 : case E_V4DFmode:
2084 950 : if (pattern489 (x1,
2085 : E_V4DFmode,
2086 : E_QImode) != 0)
2087 : return -1;
2088 : return 7;
2089 :
2090 563 : case E_V2DFmode:
2091 563 : if (pattern489 (x1,
2092 : E_V2DFmode,
2093 : E_QImode) != 0)
2094 : return -1;
2095 : return 8;
2096 :
2097 4657 : case E_V16SImode:
2098 4657 : if (pattern134 (x1,
2099 : E_V16SImode,
2100 : E_HImode) != 0)
2101 : return -1;
2102 : return 9;
2103 :
2104 3916 : case E_V8SImode:
2105 3916 : if (pattern134 (x1,
2106 : E_V8SImode,
2107 : E_QImode) != 0)
2108 : return -1;
2109 : return 10;
2110 :
2111 4783 : case E_V4SImode:
2112 4783 : if (pattern134 (x1,
2113 : E_V4SImode,
2114 : E_QImode) != 0)
2115 : return -1;
2116 : return 11;
2117 :
2118 686 : case E_V8DImode:
2119 686 : if (pattern134 (x1,
2120 : E_V8DImode,
2121 : E_QImode) != 0)
2122 : return -1;
2123 : return 12;
2124 :
2125 626 : case E_V4DImode:
2126 626 : if (pattern134 (x1,
2127 : E_V4DImode,
2128 : E_QImode) != 0)
2129 : return -1;
2130 : return 13;
2131 :
2132 379 : case E_V2DImode:
2133 379 : if (pattern134 (x1,
2134 : E_V2DImode,
2135 : E_QImode) != 0)
2136 : return -1;
2137 : return 14;
2138 :
2139 674 : case E_V64QImode:
2140 674 : if (pattern134 (x1,
2141 : E_V64QImode,
2142 : E_DImode) != 0)
2143 : return -1;
2144 : return 15;
2145 :
2146 352 : case E_V16QImode:
2147 352 : if (pattern134 (x1,
2148 : E_V16QImode,
2149 : E_HImode) != 0)
2150 : return -1;
2151 : return 16;
2152 :
2153 508 : case E_V32QImode:
2154 508 : if (pattern134 (x1,
2155 : E_V32QImode,
2156 : E_SImode) != 0)
2157 : return -1;
2158 : return 17;
2159 :
2160 674 : case E_V32HImode:
2161 674 : if (pattern134 (x1,
2162 : E_V32HImode,
2163 : E_SImode) != 0)
2164 : return -1;
2165 : return 18;
2166 :
2167 640 : case E_V16HImode:
2168 640 : if (pattern134 (x1,
2169 : E_V16HImode,
2170 : E_HImode) != 0)
2171 : return -1;
2172 : return 19;
2173 :
2174 352 : case E_V8HImode:
2175 352 : if (pattern134 (x1,
2176 : E_V8HImode,
2177 : E_QImode) != 0)
2178 : return -1;
2179 : return 20;
2180 :
2181 408 : case E_V32BFmode:
2182 408 : if (pattern136 (x1,
2183 : E_V32BFmode,
2184 : E_SImode) != 0)
2185 : return -1;
2186 : return 21;
2187 :
2188 408 : case E_V16BFmode:
2189 408 : if (pattern136 (x1,
2190 : E_V16BFmode,
2191 : E_HImode) != 0)
2192 : return -1;
2193 : return 22;
2194 :
2195 404 : case E_V8BFmode:
2196 404 : if (pattern136 (x1,
2197 : E_V8BFmode,
2198 : E_QImode) != 0)
2199 : return -1;
2200 : return 23;
2201 :
2202 : default:
2203 : return -1;
2204 : }
2205 :
2206 35904 : case CONST_INT:
2207 35904 : res = pattern138 (x1);
2208 35904 : if (res >= 0)
2209 404 : return res + 24; /* [24, 26] */
2210 : return -1;
2211 :
2212 : default:
2213 : return -1;
2214 : }
2215 : }
2216 :
2217 : int
2218 388 : pattern520 (rtx x1, machine_mode i1)
2219 : {
2220 388 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2221 388 : int res ATTRIBUTE_UNUSED;
2222 388 : if (!register_operand (operands[0], i1)
2223 388 : || GET_MODE (x1) != i1)
2224 : return -1;
2225 351 : switch (GET_MODE (operands[1]))
2226 : {
2227 245 : case E_V8SImode:
2228 245 : if (!nonimmediate_operand (operands[1], E_V8SImode))
2229 : return -1;
2230 : return 0;
2231 :
2232 104 : case E_V8DImode:
2233 104 : if (!nonimmediate_operand (operands[1], E_V8DImode))
2234 : return -1;
2235 : return 1;
2236 :
2237 : default:
2238 : return -1;
2239 : }
2240 : }
2241 :
2242 : int
2243 217866 : pattern525 (rtx x1)
2244 : {
2245 217866 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2246 217866 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2247 217866 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
2248 217866 : rtx x18, x19, x20, x21, x22;
2249 217866 : int res ATTRIBUTE_UNUSED;
2250 217866 : x2 = XEXP (x1, 0);
2251 217866 : if (maybe_ne (SUBREG_BYTE (x2), 0))
2252 : return -1;
2253 217866 : x3 = XEXP (x2, 0);
2254 217866 : if (GET_CODE (x3) != UNSPEC
2255 18922 : || XVECLEN (x3, 0) != 2
2256 7970 : || XINT (x3, 1) != 152)
2257 : return -1;
2258 106 : x4 = XVECEXP (x3, 0, 0);
2259 106 : operands[1] = x4;
2260 106 : x5 = XVECEXP (x3, 0, 1);
2261 106 : operands[2] = x5;
2262 106 : x6 = XEXP (x1, 1);
2263 106 : switch (XVECLEN (x6, 0))
2264 : {
2265 3 : case 16:
2266 3 : x7 = XVECEXP (x6, 0, 0);
2267 3 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2268 : return -1;
2269 3 : x8 = XVECEXP (x6, 0, 1);
2270 3 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
2271 : return -1;
2272 3 : x9 = XVECEXP (x6, 0, 2);
2273 3 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
2274 : return -1;
2275 3 : x10 = XVECEXP (x6, 0, 3);
2276 3 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
2277 : return -1;
2278 3 : x11 = XVECEXP (x6, 0, 4);
2279 3 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
2280 : return -1;
2281 3 : x12 = XVECEXP (x6, 0, 5);
2282 3 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
2283 : return -1;
2284 3 : x13 = XVECEXP (x6, 0, 6);
2285 3 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
2286 : return -1;
2287 3 : x14 = XVECEXP (x6, 0, 7);
2288 3 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
2289 : return -1;
2290 3 : x15 = XVECEXP (x6, 0, 8);
2291 3 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
2292 : return -1;
2293 3 : x16 = XVECEXP (x6, 0, 9);
2294 3 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
2295 : return -1;
2296 3 : x17 = XVECEXP (x6, 0, 10);
2297 3 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
2298 : return -1;
2299 3 : x18 = XVECEXP (x6, 0, 11);
2300 3 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 11])
2301 : return -1;
2302 3 : x19 = XVECEXP (x6, 0, 12);
2303 3 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
2304 : return -1;
2305 3 : x20 = XVECEXP (x6, 0, 13);
2306 3 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 13])
2307 : return -1;
2308 3 : x21 = XVECEXP (x6, 0, 14);
2309 3 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 14])
2310 : return -1;
2311 3 : x22 = XVECEXP (x6, 0, 15);
2312 3 : if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 15]
2313 3 : || pattern524 (x1,
2314 : E_V32HImode,
2315 : E_V32HFmode,
2316 : E_V16HFmode) != 0)
2317 1 : return -1;
2318 : return 0;
2319 :
2320 3 : case 8:
2321 3 : x7 = XVECEXP (x6, 0, 0);
2322 3 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2323 : return -1;
2324 3 : x8 = XVECEXP (x6, 0, 1);
2325 3 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
2326 : return -1;
2327 3 : x9 = XVECEXP (x6, 0, 2);
2328 3 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
2329 : return -1;
2330 3 : x10 = XVECEXP (x6, 0, 3);
2331 3 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
2332 : return -1;
2333 3 : x11 = XVECEXP (x6, 0, 4);
2334 3 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
2335 : return -1;
2336 3 : x12 = XVECEXP (x6, 0, 5);
2337 3 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
2338 : return -1;
2339 3 : x13 = XVECEXP (x6, 0, 6);
2340 3 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
2341 : return -1;
2342 3 : x14 = XVECEXP (x6, 0, 7);
2343 3 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
2344 3 : || pattern524 (x1,
2345 : E_V16HImode,
2346 : E_V16HFmode,
2347 : E_V8HFmode) != 0)
2348 1 : return -1;
2349 : return 1;
2350 :
2351 : default:
2352 : return -1;
2353 : }
2354 : }
2355 :
2356 : int
2357 1330 : pattern551 (rtx x1)
2358 : {
2359 1330 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2360 1330 : rtx x2, x3, x4, x5, x6, x7;
2361 1330 : int res ATTRIBUTE_UNUSED;
2362 1330 : x2 = XVECEXP (x1, 0, 0);
2363 1330 : x3 = XEXP (x2, 1);
2364 1330 : if (GET_MODE (x3) != E_XFmode)
2365 : return -1;
2366 1330 : x4 = XVECEXP (x1, 0, 1);
2367 1330 : if (GET_CODE (x4) != CLOBBER)
2368 : return -1;
2369 1325 : x5 = XEXP (x4, 0);
2370 1325 : if (GET_CODE (x5) != REG
2371 1325 : || REGNO (x5) != 17
2372 2650 : || GET_MODE (x5) != E_CCmode)
2373 : return -1;
2374 1325 : x6 = XEXP (x2, 0);
2375 1325 : operands[0] = x6;
2376 1325 : if (!register_operand (operands[0], E_XFmode))
2377 : return -1;
2378 1325 : x7 = XVECEXP (x3, 0, 0);
2379 1325 : operands[1] = x7;
2380 1325 : if (!register_operand (operands[1], E_XFmode))
2381 : return -1;
2382 : return 0;
2383 : }
2384 :
2385 : int
2386 35 : pattern557 (rtx x1, int *pnum_clobbers)
2387 : {
2388 35 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2389 35 : rtx x2, x3, x4, x5, x6, x7;
2390 35 : int res ATTRIBUTE_UNUSED;
2391 35 : x2 = XVECEXP (x1, 0, 0);
2392 35 : x3 = XEXP (x2, 1);
2393 35 : x4 = XEXP (x3, 0);
2394 35 : x5 = XEXP (x4, 0);
2395 35 : operands[1] = x5;
2396 35 : x6 = XVECEXP (x1, 0, 1);
2397 35 : switch (GET_CODE (x6))
2398 : {
2399 35 : case CLOBBER:
2400 35 : x7 = XEXP (x6, 0);
2401 35 : if (GET_CODE (x7) != REG
2402 35 : || REGNO (x7) != 17
2403 70 : || GET_MODE (x7) != E_CCmode)
2404 0 : return -1;
2405 : return 0;
2406 :
2407 0 : case UNSPEC:
2408 0 : if (pnum_clobbers == NULL
2409 0 : || XVECLEN (x6, 0) != 1
2410 0 : || XINT (x6, 1) != 39)
2411 0 : return -1;
2412 : return 1;
2413 :
2414 : default:
2415 : return -1;
2416 : }
2417 : }
2418 :
2419 : int
2420 464545 : pattern565 (rtx x1, rtx_code i1)
2421 : {
2422 464545 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2423 464545 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2424 464545 : int res ATTRIBUTE_UNUSED;
2425 464545 : x2 = XVECEXP (x1, 0, 0);
2426 464545 : x3 = XEXP (x2, 1);
2427 464545 : x4 = XEXP (x3, 1);
2428 464545 : if (GET_CODE (x4) != i1)
2429 : return -1;
2430 255596 : x5 = XVECEXP (x1, 0, 1);
2431 255596 : if (GET_CODE (x5) != CLOBBER)
2432 : return -1;
2433 236937 : x6 = XEXP (x5, 0);
2434 236937 : if (GET_CODE (x6) != REG
2435 236937 : || REGNO (x6) != 17
2436 473874 : || GET_MODE (x6) != E_CCmode)
2437 : return -1;
2438 236937 : x7 = XEXP (x3, 0);
2439 236937 : x8 = XEXP (x7, 0);
2440 236937 : operands[1] = x8;
2441 236937 : x9 = XEXP (x4, 0);
2442 236937 : operands[2] = x9;
2443 236937 : switch (GET_MODE (operands[0]))
2444 : {
2445 124254 : case E_DImode:
2446 124254 : return pattern564 (x3,
2447 : E_SImode,
2448 124254 : E_DImode); /* [-1, 0] */
2449 :
2450 107077 : case E_TImode:
2451 107077 : if (pattern564 (x3,
2452 : E_DImode,
2453 : E_TImode) != 0)
2454 : return -1;
2455 : return 1;
2456 :
2457 4932 : case E_HImode:
2458 4932 : if (pattern564 (x3,
2459 : E_QImode,
2460 : E_HImode) != 0)
2461 : return -1;
2462 : return 2;
2463 :
2464 : default:
2465 : return -1;
2466 : }
2467 : }
2468 :
2469 : int
2470 638 : pattern576 (rtx x1)
2471 : {
2472 638 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2473 638 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2474 638 : int res ATTRIBUTE_UNUSED;
2475 638 : x2 = XVECEXP (x1, 0, 0);
2476 638 : x3 = XEXP (x2, 0);
2477 638 : operands[0] = x3;
2478 638 : x4 = XEXP (x2, 1);
2479 638 : x5 = XEXP (x4, 0);
2480 638 : operands[1] = x5;
2481 638 : if (!nonimmediate_operand (operands[1], E_SImode))
2482 : return -1;
2483 605 : x6 = XVECEXP (x1, 0, 1);
2484 605 : x7 = XEXP (x6, 0);
2485 605 : operands[2] = x7;
2486 605 : if (!memory_operand (operands[2], E_DImode))
2487 : return -1;
2488 605 : x8 = XVECEXP (x1, 0, 2);
2489 605 : x9 = XEXP (x8, 0);
2490 605 : operands[3] = x9;
2491 605 : if (!scratch_operand (operands[3], E_DImode))
2492 : return -1;
2493 604 : return pattern389 (x4); /* [-1, 2] */
2494 : }
2495 :
2496 : int
2497 372108 : pattern586 (rtx x1, rtx_code i1, machine_mode i2)
2498 : {
2499 372108 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2500 372108 : rtx x2, x3, x4, x5;
2501 372108 : int res ATTRIBUTE_UNUSED;
2502 372108 : x2 = XVECEXP (x1, 0, 0);
2503 372108 : x3 = XEXP (x2, 0);
2504 372108 : if (GET_CODE (x3) != REG
2505 372108 : || REGNO (x3) != 17
2506 744216 : || GET_MODE (x3) != i2)
2507 : return -1;
2508 115992 : x4 = XVECEXP (x1, 0, 1);
2509 115992 : if (GET_CODE (x4) != SET)
2510 : return -1;
2511 92013 : x5 = XEXP (x4, 1);
2512 92013 : if (GET_CODE (x5) != i1)
2513 736 : return -1;
2514 : return 0;
2515 : }
2516 :
2517 : int
2518 307352 : pattern590 (rtx x1, rtx_code i1)
2519 : {
2520 307352 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2521 307352 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2522 307352 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
2523 307352 : rtx x18;
2524 307352 : int res ATTRIBUTE_UNUSED;
2525 307352 : x2 = XVECEXP (x1, 0, 0);
2526 307352 : x3 = XEXP (x2, 1);
2527 307352 : x4 = XEXP (x3, 0);
2528 307352 : if (GET_MODE (x4) != E_QImode)
2529 : return -1;
2530 45246 : x5 = XEXP (x4, 0);
2531 45246 : if (GET_CODE (x5) != SUBREG
2532 1898 : || maybe_ne (SUBREG_BYTE (x5), 0)
2533 47144 : || GET_MODE (x5) != E_QImode)
2534 : return -1;
2535 1898 : x6 = XEXP (x5, 0);
2536 1898 : switch (GET_CODE (x6))
2537 : {
2538 778 : case ASHIFTRT:
2539 778 : case LSHIFTRT:
2540 778 : case SIGN_EXTRACT:
2541 778 : case ZERO_EXTRACT:
2542 778 : operands[3] = x6;
2543 778 : x7 = XEXP (x3, 1);
2544 778 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2545 : return -1;
2546 756 : x8 = XVECEXP (x1, 0, 1);
2547 756 : if (GET_CODE (x8) != SET)
2548 : return -1;
2549 0 : x9 = XEXP (x8, 1);
2550 0 : if (GET_CODE (x9) != SUBREG
2551 0 : || maybe_ne (SUBREG_BYTE (x9), 0))
2552 : return -1;
2553 0 : x10 = XEXP (x9, 0);
2554 0 : if (GET_CODE (x10) != i1
2555 0 : || GET_MODE (x10) != E_QImode)
2556 : return -1;
2557 0 : x11 = XEXP (x10, 0);
2558 0 : if (GET_CODE (x11) != SUBREG
2559 0 : || maybe_ne (SUBREG_BYTE (x11), 0)
2560 0 : || GET_MODE (x11) != E_QImode)
2561 : return -1;
2562 0 : x12 = XEXP (x11, 0);
2563 0 : if (GET_CODE (x12) != ZERO_EXTRACT)
2564 : return -1;
2565 0 : x13 = XEXP (x12, 1);
2566 0 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
2567 : return -1;
2568 0 : x14 = XEXP (x12, 2);
2569 0 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
2570 : return -1;
2571 0 : x15 = XEXP (x8, 0);
2572 0 : if (GET_CODE (x15) != ZERO_EXTRACT)
2573 : return -1;
2574 0 : x16 = XEXP (x15, 1);
2575 0 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
2576 : return -1;
2577 0 : x17 = XEXP (x15, 2);
2578 0 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
2579 : return -1;
2580 0 : x18 = XEXP (x2, 0);
2581 0 : operands[4] = x18;
2582 0 : if (!flags_reg_operand (operands[4], E_VOIDmode))
2583 : return -1;
2584 0 : operands[5] = x3;
2585 0 : if (!compare_operator (operands[5], E_VOIDmode))
2586 : return -1;
2587 0 : return pattern589 (x1); /* [-1, 2] */
2588 :
2589 : default:
2590 : return -1;
2591 : }
2592 : }
2593 :
2594 : int
2595 336 : pattern613 (rtx x1)
2596 : {
2597 336 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2598 336 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2599 336 : rtx x10, x11, x12, x13;
2600 336 : int res ATTRIBUTE_UNUSED;
2601 336 : x2 = XEXP (x1, 1);
2602 336 : x3 = XVECEXP (x2, 0, 0);
2603 336 : x4 = XEXP (x3, 0);
2604 336 : if (GET_CODE (x4) != EQ)
2605 : return -1;
2606 114 : x5 = XVECEXP (x2, 0, 1);
2607 114 : if (GET_CODE (x5) != EQ)
2608 : return -1;
2609 114 : x6 = XEXP (x5, 0);
2610 114 : if (GET_CODE (x6) != EQ)
2611 : return -1;
2612 114 : x7 = XEXP (x1, 0);
2613 114 : if (GET_MODE (x7) != E_CCZmode
2614 114 : || GET_MODE (x2) != E_CCZmode)
2615 : return -1;
2616 114 : x8 = XEXP (x4, 0);
2617 114 : operands[0] = x8;
2618 114 : x9 = XEXP (x4, 1);
2619 114 : operands[1] = x9;
2620 114 : x10 = XEXP (x3, 1);
2621 114 : operands[2] = x10;
2622 114 : x11 = XEXP (x6, 0);
2623 114 : if (!rtx_equal_p (x11, operands[0]))
2624 : return -1;
2625 114 : x12 = XEXP (x6, 1);
2626 114 : if (!rtx_equal_p (x12, operands[1]))
2627 : return -1;
2628 114 : x13 = XEXP (x5, 1);
2629 114 : if (!rtx_equal_p (x13, operands[2]))
2630 : return -1;
2631 114 : switch (GET_MODE (x3))
2632 : {
2633 14 : case E_V32QImode:
2634 14 : return pattern612 (x2,
2635 14 : E_V32QImode); /* [-1, 0] */
2636 :
2637 0 : case E_V16QImode:
2638 0 : if (pattern612 (x2,
2639 : E_V16QImode) != 0)
2640 : return -1;
2641 : return 1;
2642 :
2643 0 : case E_V16HImode:
2644 0 : if (pattern612 (x2,
2645 : E_V16HImode) != 0)
2646 : return -1;
2647 : return 2;
2648 :
2649 0 : case E_V8HImode:
2650 0 : if (pattern612 (x2,
2651 : E_V8HImode) != 0)
2652 : return -1;
2653 : return 3;
2654 :
2655 7 : case E_V8SImode:
2656 7 : if (pattern612 (x2,
2657 : E_V8SImode) != 0)
2658 : return -1;
2659 : return 4;
2660 :
2661 0 : case E_V4SImode:
2662 0 : if (pattern612 (x2,
2663 : E_V4SImode) != 0)
2664 : return -1;
2665 : return 5;
2666 :
2667 71 : case E_V4DImode:
2668 71 : if (pattern612 (x2,
2669 : E_V4DImode) != 0)
2670 : return -1;
2671 : return 6;
2672 :
2673 22 : case E_V2DImode:
2674 22 : if (pattern612 (x2,
2675 : E_V2DImode) != 0)
2676 : return -1;
2677 : return 7;
2678 :
2679 : default:
2680 : return -1;
2681 : }
2682 : }
2683 :
2684 : int
2685 658 : pattern636 (rtx x1, machine_mode i1)
2686 : {
2687 658 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2688 658 : rtx x2;
2689 658 : int res ATTRIBUTE_UNUSED;
2690 658 : if (!memory_operand (operands[0], i1)
2691 658 : || GET_MODE (x1) != i1)
2692 : return -1;
2693 626 : x2 = XVECEXP (x1, 0, 0);
2694 626 : if (GET_MODE (x2) != i1
2695 626 : || !register_operand (operands[1], i1))
2696 23 : return -1;
2697 : return 0;
2698 : }
2699 :
2700 : int
2701 2960 : pattern642 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
2702 : {
2703 2960 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2704 2960 : rtx x2;
2705 2960 : int res ATTRIBUTE_UNUSED;
2706 2960 : if (!register_operand (operands[0], i1)
2707 2960 : || GET_MODE (x1) != i1)
2708 : return -1;
2709 2838 : x2 = XEXP (x1, 0);
2710 2838 : if (GET_MODE (x2) != i1
2711 2838 : || !nonimmediate_operand (operands[1], i3)
2712 2838 : || !nonimm_or_0_operand (operands[2], i1)
2713 5605 : || !register_operand (operands[3], i2))
2714 206 : return -1;
2715 : return 0;
2716 : }
2717 :
2718 : int
2719 6178 : pattern647 (rtx x1)
2720 : {
2721 6178 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2722 6178 : rtx x2, x3, x4;
2723 6178 : int res ATTRIBUTE_UNUSED;
2724 6178 : x2 = XEXP (x1, 0);
2725 6178 : x3 = XVECEXP (x2, 0, 0);
2726 6178 : operands[1] = x3;
2727 6178 : x4 = XEXP (x1, 2);
2728 6178 : operands[3] = x4;
2729 6178 : switch (GET_MODE (operands[0]))
2730 : {
2731 512 : case E_V16SImode:
2732 512 : return pattern644 (x1,
2733 : E_V16SImode,
2734 : E_HImode,
2735 512 : E_V16SFmode); /* [-1, 0] */
2736 :
2737 1032 : case E_V8SImode:
2738 1032 : if (!register_operand (operands[0], E_V8SImode)
2739 980 : || GET_MODE (x1) != E_V8SImode
2740 980 : || GET_MODE (x2) != E_V8SImode
2741 980 : || !nonimm_or_0_operand (operands[2], E_V8SImode)
2742 1980 : || !register_operand (operands[3], E_QImode))
2743 124 : return -1;
2744 908 : switch (GET_MODE (operands[1]))
2745 : {
2746 448 : case E_V8SFmode:
2747 448 : if (!vector_operand (operands[1], E_V8SFmode))
2748 : return -1;
2749 : return 1;
2750 :
2751 460 : case E_V8DFmode:
2752 460 : if (!vector_operand (operands[1], E_V8DFmode))
2753 : return -1;
2754 : return 2;
2755 :
2756 : default:
2757 : return -1;
2758 : }
2759 :
2760 1480 : case E_V4SImode:
2761 1480 : if (!register_operand (operands[0], E_V4SImode)
2762 1468 : || GET_MODE (x1) != E_V4SImode
2763 1468 : || GET_MODE (x2) != E_V4SImode
2764 1468 : || !nonimm_or_0_operand (operands[2], E_V4SImode)
2765 2898 : || !register_operand (operands[3], E_QImode))
2766 126 : return -1;
2767 1354 : switch (GET_MODE (operands[1]))
2768 : {
2769 450 : case E_V4SFmode:
2770 450 : if (!vector_operand (operands[1], E_V4SFmode))
2771 : return -1;
2772 : return 3;
2773 :
2774 452 : case E_V4DFmode:
2775 452 : if (!vector_operand (operands[1], E_V4DFmode))
2776 : return -1;
2777 : return 4;
2778 :
2779 452 : case E_V2DFmode:
2780 452 : if (!vector_operand (operands[1], E_V2DFmode))
2781 : return -1;
2782 : return 5;
2783 :
2784 : default:
2785 : return -1;
2786 : }
2787 :
2788 1072 : case E_V8DImode:
2789 1072 : if (!register_operand (operands[0], E_V8DImode)
2790 988 : || GET_MODE (x1) != E_V8DImode
2791 988 : || GET_MODE (x2) != E_V8DImode
2792 988 : || !nonimm_or_0_operand (operands[2], E_V8DImode)
2793 2024 : || !register_operand (operands[3], E_QImode))
2794 160 : return -1;
2795 912 : switch (GET_MODE (operands[1]))
2796 : {
2797 460 : case E_V8DFmode:
2798 460 : if (!vector_operand (operands[1], E_V8DFmode))
2799 : return -1;
2800 : return 6;
2801 :
2802 452 : case E_V8SFmode:
2803 452 : if (!vector_operand (operands[1], E_V8SFmode))
2804 : return -1;
2805 : return 7;
2806 :
2807 : default:
2808 : return -1;
2809 : }
2810 :
2811 1059 : case E_V4DImode:
2812 1059 : if (!register_operand (operands[0], E_V4DImode)
2813 975 : || GET_MODE (x1) != E_V4DImode
2814 975 : || GET_MODE (x2) != E_V4DImode
2815 975 : || !nonimm_or_0_operand (operands[2], E_V4DImode)
2816 1999 : || !register_operand (operands[3], E_QImode))
2817 159 : return -1;
2818 900 : switch (GET_MODE (operands[1]))
2819 : {
2820 456 : case E_V4DFmode:
2821 456 : if (!vector_operand (operands[1], E_V4DFmode))
2822 : return -1;
2823 : return 8;
2824 :
2825 444 : case E_V4SFmode:
2826 444 : if (!vector_operand (operands[1], E_V4SFmode))
2827 : return -1;
2828 : return 9;
2829 :
2830 : default:
2831 : return -1;
2832 : }
2833 :
2834 1023 : case E_V2DImode:
2835 1023 : if (!register_operand (operands[0], E_V2DImode)
2836 983 : || GET_MODE (x1) != E_V2DImode
2837 983 : || GET_MODE (x2) != E_V2DImode
2838 983 : || !nonimm_or_0_operand (operands[2], E_V2DImode)
2839 1967 : || !register_operand (operands[3], E_QImode))
2840 118 : return -1;
2841 905 : switch (GET_MODE (operands[1]))
2842 : {
2843 454 : case E_V2DFmode:
2844 454 : if (!vector_operand (operands[1], E_V2DFmode))
2845 : return -1;
2846 : return 10;
2847 :
2848 451 : case E_V4SFmode:
2849 451 : if (!vector_operand (operands[1], E_V4SFmode))
2850 : return -1;
2851 : return 11;
2852 :
2853 : default:
2854 : return -1;
2855 : }
2856 :
2857 : default:
2858 : return -1;
2859 : }
2860 : }
2861 :
2862 : int
2863 2368 : pattern686 (rtx x1)
2864 : {
2865 2368 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2866 2368 : rtx x2, x3, x4, x5, x6;
2867 2368 : int res ATTRIBUTE_UNUSED;
2868 2368 : x2 = XEXP (x1, 0);
2869 2368 : x3 = XEXP (x2, 0);
2870 2368 : x4 = XEXP (x3, 0);
2871 2368 : operands[2] = x4;
2872 2368 : x5 = XEXP (x3, 1);
2873 2368 : operands[3] = x5;
2874 2368 : x6 = XEXP (x1, 1);
2875 2368 : operands[4] = x6;
2876 2368 : switch (GET_MODE (operands[0]))
2877 : {
2878 90 : case E_V8SFmode:
2879 90 : return pattern685 (x1,
2880 90 : E_V8SFmode); /* [-1, 0] */
2881 :
2882 87 : case E_V4SFmode:
2883 87 : if (pattern685 (x1,
2884 : E_V4SFmode) != 0)
2885 : return -1;
2886 : return 1;
2887 :
2888 0 : case E_V4DFmode:
2889 0 : if (pattern685 (x1,
2890 : E_V4DFmode) != 0)
2891 : return -1;
2892 : return 2;
2893 :
2894 82 : case E_V2DFmode:
2895 82 : if (pattern685 (x1,
2896 : E_V2DFmode) != 0)
2897 : return -1;
2898 : return 3;
2899 :
2900 : default:
2901 : return -1;
2902 : }
2903 : }
2904 :
2905 : int
2906 120 : pattern693 (rtx x1, machine_mode i1, machine_mode i2)
2907 : {
2908 120 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2909 120 : rtx x2, x3, x4, x5;
2910 120 : int res ATTRIBUTE_UNUSED;
2911 120 : x2 = XVECEXP (x1, 0, 1);
2912 120 : if (XVECLEN (x2, 0) != 1
2913 120 : || XINT (x2, 1) != 111)
2914 : return -1;
2915 120 : x3 = XVECEXP (x2, 0, 0);
2916 120 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
2917 120 : || !register_operand (operands[0], i2))
2918 0 : return -1;
2919 120 : x4 = XVECEXP (x1, 0, 0);
2920 120 : x5 = XEXP (x4, 1);
2921 120 : if (GET_MODE (x5) != i2
2922 120 : || !nonimmediate_operand (operands[1], i1))
2923 0 : return -1;
2924 : return 0;
2925 : }
2926 :
2927 : int
2928 247 : pattern699 (rtx x1, machine_mode i1)
2929 : {
2930 247 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2931 247 : rtx x2;
2932 247 : int res ATTRIBUTE_UNUSED;
2933 247 : if (!nonimmediate_operand (operands[0], i1)
2934 247 : || GET_MODE (x1) != i1
2935 494 : || !general_operand (operands[1], i1))
2936 0 : return -1;
2937 247 : x2 = XEXP (x1, 1);
2938 247 : if (GET_MODE (x2) != i1)
2939 : return -1;
2940 : return 0;
2941 : }
2942 :
2943 : int
2944 1934908 : pattern703 (rtx x1)
2945 : {
2946 1934908 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2947 1934908 : rtx x2, x3, x4, x5, x6, x7;
2948 1934908 : int res ATTRIBUTE_UNUSED;
2949 1934908 : x2 = XVECEXP (x1, 0, 1);
2950 1934908 : if (GET_CODE (x2) != CLOBBER)
2951 : return -1;
2952 272975 : x3 = XEXP (x2, 0);
2953 272975 : if (GET_CODE (x3) != REG
2954 272975 : || REGNO (x3) != 17
2955 508507 : || GET_MODE (x3) != E_CCmode)
2956 : return -1;
2957 52023 : x4 = XVECEXP (x1, 0, 0);
2958 52023 : x5 = XEXP (x4, 1);
2959 52023 : x6 = XEXP (x5, 0);
2960 52023 : x7 = XEXP (x6, 0);
2961 52023 : switch (GET_CODE (x7))
2962 : {
2963 : case REG:
2964 : case SUBREG:
2965 : return 0;
2966 :
2967 17428 : case ZERO_EXTRACT:
2968 17428 : return 1;
2969 :
2970 : default:
2971 : return -1;
2972 : }
2973 : }
2974 :
2975 : int
2976 166 : pattern713 (rtx x1, machine_mode i1, int i2)
2977 : {
2978 166 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2979 166 : rtx x2, x3, x4, x5, x6, x7, x8;
2980 166 : int res ATTRIBUTE_UNUSED;
2981 166 : x2 = XVECEXP (x1, 0, 0);
2982 166 : x3 = XEXP (x2, 1);
2983 166 : if (GET_MODE (x3) != E_DImode)
2984 : return -1;
2985 166 : x4 = XVECEXP (x3, 0, 0);
2986 166 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2987 : return -1;
2988 166 : x5 = XVECEXP (x1, 0, 1);
2989 166 : if (GET_CODE (x5) != SET)
2990 : return -1;
2991 166 : x6 = XEXP (x5, 1);
2992 166 : if (GET_CODE (x6) != UNSPEC_VOLATILE
2993 166 : || XVECLEN (x6, 0) != 1
2994 166 : || XINT (x6, 1) != i2
2995 166 : || GET_MODE (x6) != i1)
2996 : return -1;
2997 166 : x7 = XVECEXP (x6, 0, 0);
2998 166 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
2999 166 : || !register_operand (operands[0], E_DImode))
3000 0 : return -1;
3001 166 : x8 = XEXP (x5, 0);
3002 166 : operands[1] = x8;
3003 166 : if (!register_operand (operands[1], i1))
3004 : return -1;
3005 : return 0;
3006 : }
3007 :
3008 : int
3009 94656 : pattern721 (rtx x1, machine_mode i1, machine_mode i2)
3010 : {
3011 94656 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3012 94656 : rtx x2, x3, x4;
3013 94656 : int res ATTRIBUTE_UNUSED;
3014 94656 : if (!nonimmediate_operand (operands[0], i2)
3015 94656 : || GET_MODE (x1) != i2)
3016 : return -1;
3017 94596 : x2 = XEXP (x1, 0);
3018 94596 : if (GET_MODE (x2) != i2)
3019 : return -1;
3020 94596 : x3 = XEXP (x2, 0);
3021 94596 : if (GET_MODE (x3) != i2
3022 94596 : || !nonimmediate_operand (operands[1], i1))
3023 1952 : return -1;
3024 92644 : x4 = XEXP (x1, 1);
3025 92644 : if (GET_MODE (x4) != i2
3026 92644 : || !nonimmediate_operand (operands[3], i1))
3027 1173 : return -1;
3028 : return 0;
3029 : }
3030 :
3031 : int
3032 858 : pattern730 (rtx x1, int i1, int i2)
3033 : {
3034 858 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3035 858 : rtx x2, x3, x4, x5, x6, x7;
3036 858 : int res ATTRIBUTE_UNUSED;
3037 858 : x2 = XVECEXP (x1, 0, 0);
3038 858 : x3 = XEXP (x2, 1);
3039 858 : if (XINT (x3, 1) != i1
3040 858 : || GET_MODE (x3) != E_SImode)
3041 : return -1;
3042 448 : x4 = XVECEXP (x1, 0, 1);
3043 448 : if (GET_CODE (x4) != SET)
3044 : return -1;
3045 448 : x5 = XEXP (x4, 1);
3046 448 : if (GET_CODE (x5) != UNSPEC
3047 448 : || XVECLEN (x5, 0) != i2
3048 448 : || XINT (x5, 1) != i1
3049 448 : || GET_MODE (x5) != E_V16QImode)
3050 : return -1;
3051 448 : x6 = XVECEXP (x1, 0, 2);
3052 448 : if (GET_CODE (x6) != SET)
3053 : return -1;
3054 448 : x7 = XEXP (x6, 1);
3055 448 : if (GET_CODE (x7) != UNSPEC
3056 448 : || XVECLEN (x7, 0) != i2
3057 448 : || XINT (x7, 1) != i1
3058 896 : || pattern729 (x6,
3059 : E_CCmode,
3060 : 17) != 0)
3061 0 : return -1;
3062 : return 0;
3063 : }
3064 :
3065 : int
3066 290 : pattern738 (rtx x1, machine_mode i1)
3067 : {
3068 290 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3069 290 : int res ATTRIBUTE_UNUSED;
3070 290 : if (!register_operand (operands[0], i1)
3071 290 : || GET_MODE (x1) != i1
3072 290 : || !register_operand (operands[1], i1)
3073 540 : || !register_mmxmem_operand (operands[2], i1))
3074 56 : return -1;
3075 : return 0;
3076 : }
3077 :
3078 : int
3079 1280 : pattern743 (rtx x1)
3080 : {
3081 1280 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3082 1280 : rtx x2, x3, x4, x5, x6;
3083 1280 : int res ATTRIBUTE_UNUSED;
3084 1280 : x2 = XVECEXP (x1, 0, 2);
3085 1280 : x3 = XEXP (x2, 0);
3086 1280 : if (GET_CODE (x3) != EQ)
3087 : return -1;
3088 290 : x4 = XEXP (x3, 0);
3089 290 : operands[3] = x4;
3090 290 : x5 = XEXP (x3, 1);
3091 290 : operands[4] = x5;
3092 290 : x6 = XEXP (x2, 1);
3093 290 : operands[5] = x6;
3094 290 : switch (GET_MODE (operands[0]))
3095 : {
3096 0 : case E_V8QImode:
3097 0 : return pattern742 (x1,
3098 0 : E_V8QImode); /* [-1, 0] */
3099 :
3100 90 : case E_V4QImode:
3101 90 : if (pattern742 (x1,
3102 : E_V4QImode) != 0)
3103 : return -1;
3104 : return 1;
3105 :
3106 180 : case E_V2QImode:
3107 180 : if (pattern742 (x1,
3108 : E_V2QImode) != 0)
3109 : return -1;
3110 : return 2;
3111 :
3112 0 : case E_V2HImode:
3113 0 : if (pattern742 (x1,
3114 : E_V2HImode) != 0)
3115 : return -1;
3116 : return 3;
3117 :
3118 : default:
3119 : return -1;
3120 : }
3121 : }
3122 :
3123 : int
3124 542493 : pattern754 (rtx x1)
3125 : {
3126 542493 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3127 542493 : rtx x2, x3, x4;
3128 542493 : int res ATTRIBUTE_UNUSED;
3129 542493 : if (!const_0_to_3_operand (operands[2], E_VOIDmode))
3130 : return -1;
3131 475638 : x2 = XVECEXP (x1, 0, 1);
3132 475638 : operands[3] = x2;
3133 475638 : if (!const_0_to_3_operand (operands[3], E_VOIDmode))
3134 : return -1;
3135 475456 : x3 = XVECEXP (x1, 0, 2);
3136 475456 : operands[4] = x3;
3137 475456 : if (!const_0_to_3_operand (operands[4], E_VOIDmode))
3138 : return -1;
3139 470469 : x4 = XVECEXP (x1, 0, 3);
3140 470469 : operands[5] = x4;
3141 470469 : if (!const_0_to_3_operand (operands[5], E_VOIDmode))
3142 : return -1;
3143 : return 0;
3144 : }
3145 :
3146 : int
3147 84 : pattern763 (rtx x1, machine_mode i1)
3148 : {
3149 84 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3150 84 : rtx x2, x3;
3151 84 : int res ATTRIBUTE_UNUSED;
3152 84 : if (!register_operand (operands[0], i1)
3153 84 : || GET_MODE (x1) != i1)
3154 : return -1;
3155 84 : x2 = XEXP (x1, 0);
3156 84 : if (GET_MODE (x2) != i1
3157 84 : || !nonimmediate_operand (operands[1], i1))
3158 0 : return -1;
3159 84 : x3 = XEXP (x1, 1);
3160 84 : if (GET_MODE (x3) != i1)
3161 : return -1;
3162 : return 0;
3163 : }
3164 :
3165 : int
3166 2 : pattern771 (rtx x1)
3167 : {
3168 2 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3169 2 : rtx x2, x3, x4, x5, x6, x7;
3170 2 : int res ATTRIBUTE_UNUSED;
3171 2 : x2 = XEXP (x1, 2);
3172 2 : switch (GET_CODE (x2))
3173 : {
3174 1 : case UNSPEC:
3175 1 : if (XVECLEN (x2, 0) != 3
3176 1 : || XINT (x2, 1) != 60)
3177 : return -1;
3178 1 : x3 = XVECEXP (x2, 0, 2);
3179 1 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
3180 : return -1;
3181 0 : x4 = XEXP (x1, 0);
3182 0 : operands[3] = x4;
3183 0 : x5 = XEXP (x1, 1);
3184 0 : operands[4] = x5;
3185 0 : x6 = XVECEXP (x2, 0, 0);
3186 0 : operands[1] = x6;
3187 0 : x7 = XVECEXP (x2, 0, 1);
3188 0 : operands[2] = x7;
3189 0 : switch (GET_MODE (x1))
3190 : {
3191 0 : case E_V32QImode:
3192 0 : return pattern770 (x2,
3193 : E_V32QImode,
3194 0 : E_SImode); /* [-1, 0] */
3195 :
3196 0 : case E_V16QImode:
3197 0 : if (pattern770 (x2,
3198 : E_V16QImode,
3199 : E_HImode) != 0)
3200 : return -1;
3201 : return 1;
3202 :
3203 : default:
3204 : return -1;
3205 : }
3206 :
3207 1 : case REG:
3208 1 : case SUBREG:
3209 1 : operands[1] = x2;
3210 1 : x4 = XEXP (x1, 0);
3211 1 : operands[2] = x4;
3212 1 : x5 = XEXP (x1, 1);
3213 1 : operands[3] = x5;
3214 1 : switch (GET_MODE (x1))
3215 : {
3216 1 : case E_V16QImode:
3217 1 : if (!vector_all_ones_operand (operands[2], E_V16QImode)
3218 1 : || !const0_operand (operands[3], E_V16QImode)
3219 2 : || !register_operand (operands[1], E_HImode))
3220 0 : return -1;
3221 : return 2;
3222 :
3223 0 : case E_V32QImode:
3224 0 : if (!vector_all_ones_operand (operands[2], E_V32QImode)
3225 0 : || !const0_operand (operands[3], E_V32QImode)
3226 0 : || !register_operand (operands[1], E_SImode))
3227 0 : return -1;
3228 : return 3;
3229 :
3230 : default:
3231 : return -1;
3232 : }
3233 :
3234 : default:
3235 : return -1;
3236 : }
3237 : }
3238 :
3239 : int
3240 152 : pattern797 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
3241 : {
3242 152 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3243 152 : rtx x2, x3;
3244 152 : int res ATTRIBUTE_UNUSED;
3245 152 : if (!register_operand (operands[0], i3)
3246 152 : || GET_MODE (x1) != i3)
3247 : return -1;
3248 142 : x2 = XEXP (x1, 0);
3249 142 : if (GET_MODE (x2) != i2
3250 142 : || !vector_operand (operands[2], i1))
3251 0 : return -1;
3252 142 : x3 = XEXP (x1, 1);
3253 142 : if (GET_MODE (x3) != i2
3254 142 : || !register_operand (operands[1], i1))
3255 7 : return -1;
3256 : return 0;
3257 : }
3258 :
3259 : int
3260 818 : pattern809 (rtx x1, machine_mode i1, machine_mode i2)
3261 : {
3262 818 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3263 818 : rtx x2;
3264 818 : int res ATTRIBUTE_UNUSED;
3265 818 : if (!register_operand (operands[0], i1)
3266 818 : || GET_MODE (x1) != i1)
3267 : return -1;
3268 796 : x2 = XEXP (x1, 0);
3269 796 : if (GET_MODE (x2) != i2
3270 792 : || !nonimmediate_operand (operands[1], i1)
3271 647 : || !const0_operand (operands[2], i1)
3272 1190 : || !movq_parallel (operands[3], E_VOIDmode))
3273 507 : return -1;
3274 : return 0;
3275 : }
3276 :
3277 : int
3278 278 : pattern818 (rtx x1, machine_mode i1)
3279 : {
3280 278 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3281 278 : int res ATTRIBUTE_UNUSED;
3282 278 : if (!register_operand (operands[0], i1)
3283 278 : || GET_MODE (x1) != i1
3284 278 : || !nonimmediate_operand (operands[3], i1)
3285 278 : || !register_operand (operands[1], i1)
3286 517 : || !nonimmediate_operand (operands[2], i1))
3287 63 : return -1;
3288 : return 0;
3289 : }
3290 :
3291 : int
3292 8700132 : pattern821 (rtx x1)
3293 : {
3294 8700132 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3295 8700132 : rtx x2, x3, x4, x5, x6, x7, x8;
3296 8700132 : int res ATTRIBUTE_UNUSED;
3297 8700132 : x2 = XVECEXP (x1, 0, 0);
3298 8700132 : x3 = XEXP (x2, 1);
3299 8700132 : x4 = XEXP (x3, 1);
3300 8700132 : switch (GET_CODE (x4))
3301 : {
3302 637268 : case SUBREG:
3303 637268 : if (maybe_ne (SUBREG_BYTE (x4), 0)
3304 637268 : || GET_MODE (x4) != E_QImode)
3305 : return -1;
3306 637215 : x5 = XEXP (x4, 0);
3307 637215 : if (GET_CODE (x5) != AND)
3308 : return -1;
3309 32343 : x6 = XVECEXP (x1, 0, 1);
3310 32343 : if (GET_CODE (x6) != CLOBBER)
3311 : return -1;
3312 28226 : x7 = XEXP (x6, 0);
3313 28226 : if (GET_CODE (x7) != REG
3314 28226 : || REGNO (x7) != 17
3315 56452 : || GET_MODE (x7) != E_CCmode)
3316 : return -1;
3317 28226 : return pattern819 (x3); /* [-1, 1] */
3318 :
3319 7954934 : case CONST_INT:
3320 7954934 : operands[2] = x4;
3321 7954934 : if (!const_0_to_255_operand (operands[2], E_VOIDmode))
3322 : return -1;
3323 7954859 : x6 = XVECEXP (x1, 0, 1);
3324 7954859 : if (GET_CODE (x6) != UNSPEC
3325 13607 : || XVECLEN (x6, 0) != 1
3326 13607 : || XINT (x6, 1) != 175)
3327 : return -1;
3328 13607 : x8 = XVECEXP (x6, 0, 0);
3329 13607 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3330 : return -1;
3331 13607 : res = pattern820 (x3);
3332 13607 : if (res >= 0)
3333 10453 : return res + 2; /* [2, 5] */
3334 : return -1;
3335 :
3336 : default:
3337 : return -1;
3338 : }
3339 : }
3340 :
3341 : int
3342 439 : pattern833 (rtx x1)
3343 : {
3344 439 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3345 439 : rtx x2, x3, x4, x5, x6, x7;
3346 439 : int res ATTRIBUTE_UNUSED;
3347 439 : x2 = XVECEXP (x1, 0, 0);
3348 439 : x3 = XEXP (x2, 1);
3349 439 : if (GET_MODE (x3) != E_XFmode)
3350 : return -1;
3351 439 : x4 = XVECEXP (x1, 0, 1);
3352 439 : if (GET_CODE (x4) != USE)
3353 : return -1;
3354 434 : x5 = XVECEXP (x1, 0, 2);
3355 434 : if (GET_CODE (x5) != USE
3356 434 : || !register_operand (operands[0], E_XFmode)
3357 868 : || !register_operand (operands[1], E_XFmode))
3358 68 : return -1;
3359 366 : x6 = XEXP (x4, 0);
3360 366 : operands[2] = x6;
3361 366 : if (!memory_operand (operands[2], E_HImode))
3362 : return -1;
3363 366 : x7 = XEXP (x5, 0);
3364 366 : operands[3] = x7;
3365 366 : if (!memory_operand (operands[3], E_HImode))
3366 : return -1;
3367 : return 0;
3368 : }
3369 :
3370 : int
3371 4533 : pattern841 (rtx x1)
3372 : {
3373 4533 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3374 4533 : rtx x2, x3, x4;
3375 4533 : int res ATTRIBUTE_UNUSED;
3376 4533 : x2 = XEXP (x1, 1);
3377 4533 : x3 = XEXP (x2, 0);
3378 4533 : operands[1] = x3;
3379 4533 : x4 = XEXP (x2, 1);
3380 4533 : operands[3] = x4;
3381 4533 : return pattern445 (x1); /* [-1, 1] */
3382 : }
3383 :
3384 : int
3385 5103 : pattern844 (rtx x1)
3386 : {
3387 5103 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3388 5103 : rtx x2, x3, x4, x5;
3389 5103 : int res ATTRIBUTE_UNUSED;
3390 5103 : x2 = XVECEXP (x1, 0, 1);
3391 5103 : x3 = XEXP (x2, 0);
3392 5103 : operands[2] = x3;
3393 5103 : switch (GET_MODE (operands[0]))
3394 : {
3395 72 : case E_V2SFmode:
3396 72 : x4 = XVECEXP (x1, 0, 0);
3397 72 : x5 = XEXP (x4, 1);
3398 72 : return pattern707 (x5); /* [-1, 0] */
3399 :
3400 4 : case E_V2BFmode:
3401 4 : x4 = XVECEXP (x1, 0, 0);
3402 4 : x5 = XEXP (x4, 1);
3403 4 : if (pattern708 (x5,
3404 : E_V2BFmode) != 0)
3405 : return -1;
3406 : return 1;
3407 :
3408 4 : case E_V4BFmode:
3409 4 : x4 = XVECEXP (x1, 0, 0);
3410 4 : x5 = XEXP (x4, 1);
3411 4 : if (pattern708 (x5,
3412 : E_V4BFmode) != 0)
3413 : return -1;
3414 : return 2;
3415 :
3416 4 : case E_V2HFmode:
3417 4 : x4 = XVECEXP (x1, 0, 0);
3418 4 : x5 = XEXP (x4, 1);
3419 4 : if (pattern708 (x5,
3420 : E_V2HFmode) != 0)
3421 : return -1;
3422 : return 3;
3423 :
3424 6 : case E_V4HFmode:
3425 6 : x4 = XVECEXP (x1, 0, 0);
3426 6 : x5 = XEXP (x4, 1);
3427 6 : if (pattern708 (x5,
3428 : E_V4HFmode) != 0)
3429 : return -1;
3430 : return 4;
3431 :
3432 4 : case E_V32BFmode:
3433 4 : x4 = XVECEXP (x1, 0, 0);
3434 4 : x5 = XEXP (x4, 1);
3435 4 : if (pattern706 (x5,
3436 : E_V32BFmode) != 0)
3437 : return -1;
3438 : return 5;
3439 :
3440 4 : case E_V16BFmode:
3441 4 : x4 = XVECEXP (x1, 0, 0);
3442 4 : x5 = XEXP (x4, 1);
3443 4 : if (pattern706 (x5,
3444 : E_V16BFmode) != 0)
3445 : return -1;
3446 : return 6;
3447 :
3448 4 : case E_V8BFmode:
3449 4 : x4 = XVECEXP (x1, 0, 0);
3450 4 : x5 = XEXP (x4, 1);
3451 4 : if (pattern706 (x5,
3452 : E_V8BFmode) != 0)
3453 : return -1;
3454 : return 7;
3455 :
3456 14 : case E_V32HFmode:
3457 14 : x4 = XVECEXP (x1, 0, 0);
3458 14 : x5 = XEXP (x4, 1);
3459 14 : if (pattern706 (x5,
3460 : E_V32HFmode) != 0)
3461 : return -1;
3462 : return 8;
3463 :
3464 10 : case E_V16HFmode:
3465 10 : x4 = XVECEXP (x1, 0, 0);
3466 10 : x5 = XEXP (x4, 1);
3467 10 : if (pattern706 (x5,
3468 : E_V16HFmode) != 0)
3469 : return -1;
3470 : return 9;
3471 :
3472 157 : case E_V8HFmode:
3473 157 : x4 = XVECEXP (x1, 0, 0);
3474 157 : x5 = XEXP (x4, 1);
3475 157 : if (pattern706 (x5,
3476 : E_V8HFmode) != 0)
3477 : return -1;
3478 : return 10;
3479 :
3480 66 : case E_V16SFmode:
3481 66 : x4 = XVECEXP (x1, 0, 0);
3482 66 : x5 = XEXP (x4, 1);
3483 66 : if (pattern706 (x5,
3484 : E_V16SFmode) != 0)
3485 : return -1;
3486 : return 11;
3487 :
3488 536 : case E_V8SFmode:
3489 536 : x4 = XVECEXP (x1, 0, 0);
3490 536 : x5 = XEXP (x4, 1);
3491 536 : if (pattern706 (x5,
3492 : E_V8SFmode) != 0)
3493 : return -1;
3494 : return 12;
3495 :
3496 682 : case E_V4SFmode:
3497 682 : x4 = XVECEXP (x1, 0, 0);
3498 682 : x5 = XEXP (x4, 1);
3499 682 : if (pattern706 (x5,
3500 : E_V4SFmode) != 0)
3501 : return -1;
3502 : return 13;
3503 :
3504 42 : case E_V8DFmode:
3505 42 : x4 = XVECEXP (x1, 0, 0);
3506 42 : x5 = XEXP (x4, 1);
3507 42 : if (pattern706 (x5,
3508 : E_V8DFmode) != 0)
3509 : return -1;
3510 : return 14;
3511 :
3512 1050 : case E_V4DFmode:
3513 1050 : x4 = XVECEXP (x1, 0, 0);
3514 1050 : x5 = XEXP (x4, 1);
3515 1050 : if (pattern706 (x5,
3516 : E_V4DFmode) != 0)
3517 : return -1;
3518 : return 15;
3519 :
3520 522 : case E_V2DFmode:
3521 522 : x4 = XVECEXP (x1, 0, 0);
3522 522 : x5 = XEXP (x4, 1);
3523 522 : if (pattern706 (x5,
3524 : E_V2DFmode) != 0)
3525 : return -1;
3526 : return 16;
3527 :
3528 : default:
3529 : return -1;
3530 : }
3531 : }
3532 :
3533 : int
3534 0 : pattern880 (rtx x1, machine_mode i1)
3535 : {
3536 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3537 0 : rtx x2;
3538 0 : int res ATTRIBUTE_UNUSED;
3539 0 : if (!register_operand (operands[0], i1)
3540 0 : || GET_MODE (x1) != i1)
3541 : return -1;
3542 0 : x2 = XEXP (x1, 0);
3543 0 : switch (GET_MODE (x2))
3544 : {
3545 0 : case E_DImode:
3546 0 : if (!register_operand (operands[1], E_V64QImode)
3547 0 : || !nonimmediate_operand (operands[2], E_V64QImode))
3548 0 : return -1;
3549 : return 0;
3550 :
3551 0 : case E_SImode:
3552 0 : res = pattern879 ();
3553 0 : if (res >= 0)
3554 0 : return res + 1; /* [1, 2] */
3555 : return -1;
3556 :
3557 0 : case E_HImode:
3558 0 : res = pattern746 ();
3559 0 : if (res >= 0)
3560 0 : return res + 3; /* [3, 5] */
3561 : return -1;
3562 :
3563 0 : case E_QImode:
3564 0 : res = pattern747 ();
3565 0 : if (res >= 0)
3566 0 : return res + 6; /* [6, 11] */
3567 : return -1;
3568 :
3569 : default:
3570 : return -1;
3571 : }
3572 : }
3573 :
3574 : int
3575 5678 : pattern891 (rtx x1)
3576 : {
3577 5678 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3578 5678 : rtx x2, x3, x4;
3579 5678 : int res ATTRIBUTE_UNUSED;
3580 5678 : x2 = XVECEXP (x1, 0, 0);
3581 5678 : x3 = XEXP (x2, 1);
3582 5678 : operands[1] = x3;
3583 5678 : x4 = XEXP (x2, 0);
3584 5678 : if (!rtx_equal_p (x4, operands[0]))
3585 : return -1;
3586 3555 : switch (GET_MODE (operands[0]))
3587 : {
3588 2395 : case E_SImode:
3589 2395 : return pattern868 (x1,
3590 2395 : E_SImode); /* [-1, 0] */
3591 :
3592 616 : case E_DImode:
3593 616 : if (pattern868 (x1,
3594 : E_DImode) != 0)
3595 : return -1;
3596 : return 1;
3597 :
3598 : default:
3599 : return -1;
3600 : }
3601 : }
3602 :
3603 : int
3604 1104 : pattern901 (rtx x1)
3605 : {
3606 1104 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3607 1104 : rtx x2;
3608 1104 : int res ATTRIBUTE_UNUSED;
3609 1104 : if (!register_operand (operands[0], E_V8HFmode)
3610 1104 : || GET_MODE (x1) != E_V8HFmode)
3611 : return -1;
3612 1038 : x2 = XEXP (x1, 0);
3613 1038 : if (GET_MODE (x2) != E_V8HFmode
3614 1038 : || !nonimm_or_0_operand (operands[2], E_V8HFmode)
3615 2074 : || !register_operand (operands[3], E_QImode))
3616 82 : return -1;
3617 956 : switch (GET_MODE (operands[1]))
3618 : {
3619 408 : case E_V8HImode:
3620 408 : if (!vector_operand (operands[1], E_V8HImode))
3621 : return -1;
3622 : return 0;
3623 :
3624 406 : case E_V8SImode:
3625 406 : if (!vector_operand (operands[1], E_V8SImode))
3626 : return -1;
3627 : return 1;
3628 :
3629 142 : case E_V8DImode:
3630 142 : if (!vector_operand (operands[1], E_V8DImode))
3631 : return -1;
3632 : return 2;
3633 :
3634 : default:
3635 : return -1;
3636 : }
3637 : }
3638 :
3639 : int
3640 3955 : pattern915 (rtx x1, machine_mode i1, machine_mode i2)
3641 : {
3642 3955 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3643 3955 : int res ATTRIBUTE_UNUSED;
3644 3955 : if (!register_operand (operands[0], i2)
3645 3764 : || GET_MODE (x1) != i2
3646 3764 : || !register_operand (operands[1], i2)
3647 3712 : || !nonimm_or_0_operand (operands[2], i2)
3648 7625 : || !register_operand (operands[3], i1))
3649 654 : return -1;
3650 : return 0;
3651 : }
3652 :
3653 : int
3654 225 : pattern919 (rtx x1, machine_mode i1, machine_mode i2)
3655 : {
3656 225 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3657 225 : int res ATTRIBUTE_UNUSED;
3658 225 : if (!register_operand (operands[0], i2)
3659 213 : || GET_MODE (x1) != i2
3660 213 : || !register_operand (operands[1], i2)
3661 210 : || !register_operand (operands[2], i1)
3662 435 : || !nonimmediate_operand (operands[3], i1))
3663 15 : return -1;
3664 : return 0;
3665 : }
3666 :
3667 : int
3668 241 : pattern924 (rtx x1, machine_mode i1)
3669 : {
3670 241 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3671 241 : int res ATTRIBUTE_UNUSED;
3672 241 : if (!register_operand (operands[0], i1)
3673 232 : || GET_MODE (x1) != i1
3674 232 : || !nonimmediate_operand (operands[1], i1)
3675 223 : || !nonimmediate_operand (operands[2], i1)
3676 464 : || !nonimmediate_operand (operands[3], i1))
3677 18 : return -1;
3678 : return 0;
3679 : }
3680 :
3681 : int
3682 232 : pattern927 (rtx x1, machine_mode i1)
3683 : {
3684 232 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3685 232 : rtx x2, x3;
3686 232 : int res ATTRIBUTE_UNUSED;
3687 232 : if (!register_operand (operands[0], i1)
3688 232 : || GET_MODE (x1) != i1)
3689 : return -1;
3690 223 : x2 = XEXP (x1, 0);
3691 223 : if (GET_MODE (x2) != i1
3692 223 : || !nonimmediate_operand (operands[1], i1)
3693 443 : || !nonimmediate_operand (operands[2], i1))
3694 3 : return -1;
3695 220 : x3 = XEXP (x1, 2);
3696 220 : if (GET_MODE (x3) != i1
3697 220 : || !nonimmediate_operand (operands[3], i1))
3698 0 : return -1;
3699 : return 0;
3700 : }
3701 :
3702 : int
3703 50383 : pattern933 (rtx x1, machine_mode i1)
3704 : {
3705 50383 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3706 50383 : rtx x2;
3707 50383 : int res ATTRIBUTE_UNUSED;
3708 50383 : if (!register_operand (operands[0], i1)
3709 50383 : || GET_MODE (x1) != i1)
3710 : return -1;
3711 49803 : x2 = XEXP (x1, 0);
3712 49803 : if (GET_MODE (x2) != i1
3713 49803 : || !bcst_vector_operand (operands[1], i1)
3714 99174 : || !bcst_vector_operand (operands[2], i1))
3715 1863 : return -1;
3716 : return 0;
3717 : }
3718 :
3719 : int
3720 2334303 : pattern937 (rtx x1)
3721 : {
3722 2334303 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3723 2334303 : rtx x2, x3, x4, x5, x6, x7;
3724 2334303 : int res ATTRIBUTE_UNUSED;
3725 2334303 : x2 = XEXP (x1, 1);
3726 2334303 : x3 = XEXP (x2, 0);
3727 2334303 : switch (GET_CODE (x3))
3728 : {
3729 2048020 : case REG:
3730 2048020 : case SUBREG:
3731 2048020 : case MEM:
3732 2048020 : return pattern935 (x1); /* [-1, 7] */
3733 :
3734 35124 : case ASHIFT:
3735 35124 : x4 = XEXP (x1, 0);
3736 35124 : operands[0] = x4;
3737 35124 : x5 = XEXP (x3, 0);
3738 35124 : operands[1] = x5;
3739 35124 : x6 = XEXP (x3, 1);
3740 35124 : operands[2] = x6;
3741 35124 : if (!const_int_operand (operands[2], E_QImode))
3742 : return -1;
3743 34719 : x7 = XEXP (x2, 1);
3744 34719 : operands[3] = x7;
3745 34719 : if (!const_int_operand (operands[3], E_QImode))
3746 : return -1;
3747 34719 : switch (GET_MODE (operands[0]))
3748 : {
3749 11626 : case E_DImode:
3750 11626 : if (pattern936 (x2,
3751 : E_DImode) != 0)
3752 : return -1;
3753 : return 8;
3754 :
3755 14744 : case E_TImode:
3756 14744 : if (pattern936 (x2,
3757 : E_TImode) != 0)
3758 : return -1;
3759 : return 9;
3760 :
3761 : default:
3762 : return -1;
3763 : }
3764 :
3765 : default:
3766 : return -1;
3767 : }
3768 : }
3769 :
3770 : int
3771 18846 : pattern954 (rtx x1, machine_mode i1, machine_mode i2)
3772 : {
3773 18846 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3774 18846 : rtx x2, x3;
3775 18846 : int res ATTRIBUTE_UNUSED;
3776 18846 : if (!nonimmediate_operand (operands[0], i2)
3777 18846 : || GET_MODE (x1) != i2)
3778 : return -1;
3779 18846 : x2 = XEXP (x1, 0);
3780 18846 : if (GET_MODE (x2) != i2
3781 18846 : || !register_operand (operands[1], i2))
3782 11 : return -1;
3783 18835 : x3 = XEXP (x1, 1);
3784 18835 : if (GET_MODE (x3) != i2
3785 18835 : || !nonimmediate_operand (operands[3], i1))
3786 12901 : return -1;
3787 : return 0;
3788 : }
3789 :
3790 : int
3791 5690826 : pattern962 (rtx x1, machine_mode i1, machine_mode i2)
3792 : {
3793 5690826 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3794 5690826 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
3795 5690826 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
3796 5690826 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
3797 5690826 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
3798 5690826 : rtx x34, x35, x36, x37, x38;
3799 5690826 : int res ATTRIBUTE_UNUSED;
3800 5690826 : x2 = XEXP (x1, 0);
3801 5690826 : operands[6] = x2;
3802 5690826 : x3 = XEXP (x1, 1);
3803 5690826 : operands[7] = x3;
3804 5690826 : if (!memory_operand (operands[7], i1))
3805 : return -1;
3806 1487584 : x4 = PATTERN (peep2_next_insn (1));
3807 1487584 : x5 = XEXP (x4, 1);
3808 1487584 : operands[9] = x5;
3809 1487584 : if (!memory_operand (operands[9], i1))
3810 : return -1;
3811 881636 : x6 = PATTERN (peep2_next_insn (2));
3812 881636 : if (GET_CODE (x6) != PARALLEL
3813 74130 : || XVECLEN (x6, 0) != 2)
3814 : return -1;
3815 72594 : x7 = XVECEXP (x6, 0, 0);
3816 72594 : if (GET_CODE (x7) != SET)
3817 : return -1;
3818 72576 : x8 = XEXP (x7, 1);
3819 72576 : if (GET_CODE (x8) != COMPARE
3820 6446 : || GET_MODE (x8) != E_CCCmode)
3821 : return -1;
3822 2203 : x9 = XEXP (x8, 0);
3823 2203 : if (GET_CODE (x9) != ZERO_EXTEND
3824 49 : || GET_MODE (x9) != i2)
3825 : return -1;
3826 49 : x10 = XEXP (x8, 1);
3827 49 : if (GET_CODE (x10) != PLUS
3828 49 : || GET_MODE (x10) != i2)
3829 : return -1;
3830 49 : x11 = XEXP (x10, 0);
3831 49 : if (!ix86_carry_flag_operator (x11, i2))
3832 : return -1;
3833 49 : operands[4] = x11;
3834 49 : x12 = XEXP (x11, 1);
3835 49 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3836 : return -1;
3837 49 : x13 = XEXP (x10, 1);
3838 49 : if (GET_CODE (x13) != ZERO_EXTEND
3839 49 : || GET_MODE (x13) != i2)
3840 : return -1;
3841 49 : x14 = XEXP (x7, 0);
3842 49 : if (GET_CODE (x14) != REG
3843 49 : || REGNO (x14) != 17
3844 98 : || GET_MODE (x14) != E_CCCmode)
3845 : return -1;
3846 49 : x15 = XVECEXP (x6, 0, 1);
3847 49 : if (GET_CODE (x15) != SET)
3848 : return -1;
3849 7 : x16 = XEXP (x15, 1);
3850 7 : if (GET_CODE (x16) != MINUS
3851 7 : || GET_MODE (x16) != i1)
3852 : return -1;
3853 7 : x17 = XEXP (x16, 0);
3854 7 : if (GET_CODE (x17) != MINUS
3855 7 : || GET_MODE (x17) != i1)
3856 : return -1;
3857 7 : x18 = XEXP (x17, 1);
3858 7 : if (!ix86_carry_flag_operator (x18, i1))
3859 : return -1;
3860 7 : operands[5] = x18;
3861 7 : x19 = XEXP (x18, 1);
3862 7 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3863 : return -1;
3864 7 : x20 = XEXP (x9, 0);
3865 7 : operands[0] = x20;
3866 7 : if (!general_reg_operand (operands[0], i1))
3867 : return -1;
3868 7 : x21 = XEXP (x11, 0);
3869 7 : operands[3] = x21;
3870 7 : if (!flags_reg_operand (operands[3], E_VOIDmode))
3871 : return -1;
3872 7 : x22 = XEXP (x13, 0);
3873 7 : operands[2] = x22;
3874 7 : if (!general_reg_operand (operands[2], i1))
3875 : return -1;
3876 7 : x23 = XEXP (x17, 0);
3877 7 : if (!rtx_equal_p (x23, operands[0]))
3878 : return -1;
3879 7 : x24 = XEXP (x18, 0);
3880 7 : if (!rtx_equal_p (x24, operands[3]))
3881 : return -1;
3882 7 : x25 = XEXP (x16, 1);
3883 7 : if (!rtx_equal_p (x25, operands[2]))
3884 : return -1;
3885 7 : x26 = XEXP (x15, 0);
3886 7 : if (!rtx_equal_p (x26, operands[0]))
3887 : return -1;
3888 7 : x27 = PATTERN (peep2_next_insn (3));
3889 7 : if (GET_CODE (x27) != SET)
3890 : return -1;
3891 7 : x28 = XEXP (x27, 1);
3892 7 : switch (GET_CODE (x28))
3893 : {
3894 1 : case REG:
3895 1 : if (!rtx_equal_p (x28, operands[0]))
3896 : return -1;
3897 1 : x29 = XEXP (x27, 0);
3898 1 : operands[1] = x29;
3899 1 : if (!memory_operand (operands[1], i1))
3900 : return -1;
3901 : return 0;
3902 :
3903 6 : case LTU:
3904 6 : if (peep2_current_count < 5
3905 6 : || peep2_current_count < 6
3906 6 : || GET_MODE (x28) != E_QImode)
3907 : return -1;
3908 6 : x30 = XEXP (x28, 0);
3909 6 : if (GET_CODE (x30) != REG
3910 6 : || REGNO (x30) != 17
3911 12 : || GET_MODE (x30) != E_CCCmode)
3912 : return -1;
3913 6 : x31 = XEXP (x28, 1);
3914 6 : if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3915 : return -1;
3916 6 : x29 = XEXP (x27, 0);
3917 6 : operands[10] = x29;
3918 6 : if (!general_reg_operand (operands[10], E_QImode))
3919 : return -1;
3920 6 : x32 = PATTERN (peep2_next_insn (4));
3921 6 : if (GET_CODE (x32) != SET)
3922 : return -1;
3923 0 : x33 = XEXP (x32, 1);
3924 0 : if (GET_CODE (x33) != ZERO_EXTEND
3925 0 : || GET_MODE (x33) != i1)
3926 : return -1;
3927 0 : x34 = XEXP (x32, 0);
3928 0 : operands[11] = x34;
3929 0 : if (!general_reg_operand (operands[11], i1))
3930 : return -1;
3931 0 : x35 = XEXP (x33, 0);
3932 0 : if (!rtx_equal_p (x35, operands[10]))
3933 : return -1;
3934 0 : x36 = PATTERN (peep2_next_insn (5));
3935 0 : if (GET_CODE (x36) != SET)
3936 : return -1;
3937 0 : x37 = XEXP (x36, 0);
3938 0 : operands[1] = x37;
3939 0 : if (!memory_operand (operands[1], i1))
3940 : return -1;
3941 0 : x38 = XEXP (x36, 1);
3942 0 : if (!rtx_equal_p (x38, operands[0]))
3943 : return -1;
3944 : return 1;
3945 :
3946 : default:
3947 : return -1;
3948 : }
3949 : }
3950 :
3951 : int
3952 875 : pattern996 (rtx x1, machine_mode i1)
3953 : {
3954 875 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3955 875 : rtx x2;
3956 875 : int res ATTRIBUTE_UNUSED;
3957 875 : if (!register_operand (operands[0], i1)
3958 875 : || GET_MODE (x1) != i1)
3959 : return -1;
3960 789 : x2 = XEXP (x1, 0);
3961 789 : if (GET_MODE (x2) != i1
3962 789 : || !nonimm_or_0_operand (operands[2], i1)
3963 1539 : || !register_operand (operands[3], E_QImode))
3964 105 : return -1;
3965 684 : switch (GET_MODE (operands[1]))
3966 : {
3967 291 : case E_V8HFmode:
3968 291 : if (!vector_operand (operands[1], E_V8HFmode))
3969 : return -1;
3970 : return 0;
3971 :
3972 274 : case E_V8SFmode:
3973 274 : if (!nonimmediate_operand (operands[1], E_V8SFmode))
3974 : return -1;
3975 : return 1;
3976 :
3977 119 : case E_V8DFmode:
3978 119 : if (!vector_operand (operands[1], E_V8DFmode))
3979 : return -1;
3980 : return 2;
3981 :
3982 : default:
3983 : return -1;
3984 : }
3985 : }
3986 :
3987 : int
3988 582 : pattern1004 (rtx x1, machine_mode i1, machine_mode i2)
3989 : {
3990 582 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3991 582 : rtx x2;
3992 582 : int res ATTRIBUTE_UNUSED;
3993 582 : if (!register_operand (operands[0], i2)
3994 582 : || GET_MODE (x1) != i2)
3995 : return -1;
3996 582 : x2 = XEXP (x1, 0);
3997 582 : if (GET_MODE (x2) != i2
3998 582 : || !nonimmediate_operand (operands[1], i2)
3999 582 : || !reg_or_0_operand (operands[2], i2)
4000 1164 : || !register_operand (operands[3], i1))
4001 12 : return -1;
4002 : return 0;
4003 : }
4004 :
4005 : int
4006 1308 : pattern1012 (rtx x1, machine_mode i1, machine_mode i2)
4007 : {
4008 1308 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4009 1308 : rtx x2;
4010 1308 : int res ATTRIBUTE_UNUSED;
4011 1308 : if (!register_operand (operands[0], i1)
4012 1308 : || GET_MODE (x1) != i1)
4013 : return -1;
4014 916 : x2 = XEXP (x1, 0);
4015 916 : if (GET_MODE (x2) != i1
4016 916 : || !nonimmediate_operand (operands[2], i2)
4017 1832 : || !const0_operand (operands[1], i1))
4018 46 : return -1;
4019 : return 0;
4020 : }
4021 :
4022 : int
4023 1961 : pattern1020 (rtx x1, machine_mode i1, machine_mode i2)
4024 : {
4025 1961 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4026 1961 : rtx x2, x3;
4027 1961 : int res ATTRIBUTE_UNUSED;
4028 1961 : if (!register_operand (operands[0], i1)
4029 1961 : || GET_MODE (x1) != i1)
4030 : return -1;
4031 1867 : x2 = XEXP (x1, 0);
4032 1867 : if (GET_MODE (x2) != i1)
4033 : return -1;
4034 1867 : x3 = XEXP (x2, 0);
4035 1867 : if (GET_MODE (x3) != i1
4036 1867 : || !register_operand (operands[1], i1)
4037 1857 : || !nonimmediate_operand (operands[2], i1)
4038 1760 : || !nonimm_or_0_operand (operands[3], i1)
4039 3576 : || !register_operand (operands[4], i2))
4040 289 : return -1;
4041 : return 0;
4042 : }
4043 :
4044 : int
4045 420 : pattern1027 (rtx x1)
4046 : {
4047 420 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4048 420 : rtx x2;
4049 420 : int res ATTRIBUTE_UNUSED;
4050 420 : if (!register_operand (operands[0], E_V16SImode)
4051 420 : || GET_MODE (x1) != E_V16SImode)
4052 : return -1;
4053 408 : x2 = XVECEXP (x1, 0, 0);
4054 408 : if (GET_MODE (x2) != E_V16SImode)
4055 : return -1;
4056 408 : switch (GET_MODE (operands[1]))
4057 : {
4058 213 : case E_V16HFmode:
4059 213 : if (!register_operand (operands[1], E_V16HFmode))
4060 : return -1;
4061 : return 0;
4062 :
4063 195 : case E_V16SFmode:
4064 195 : if (!register_operand (operands[1], E_V16SFmode))
4065 : return -1;
4066 : return 1;
4067 :
4068 : default:
4069 : return -1;
4070 : }
4071 : }
4072 :
4073 : int
4074 7021 : pattern1038 (rtx x1, machine_mode i1, machine_mode i2)
4075 : {
4076 7021 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4077 7021 : int res ATTRIBUTE_UNUSED;
4078 7021 : if (!register_operand (operands[0], i2)
4079 6853 : || GET_MODE (x1) != i2
4080 6853 : || !nonimmediate_operand (operands[1], i2)
4081 6829 : || !nonimm_or_0_operand (operands[2], i2)
4082 13746 : || !register_operand (operands[3], i1))
4083 296 : return -1;
4084 : return 0;
4085 : }
4086 :
4087 : int
4088 156 : pattern1046 (rtx x1)
4089 : {
4090 156 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4091 156 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
4092 156 : rtx x10, x11;
4093 156 : int res ATTRIBUTE_UNUSED;
4094 156 : x2 = XEXP (x1, 1);
4095 156 : x3 = XEXP (x2, 0);
4096 156 : x4 = XEXP (x3, 0);
4097 156 : if (GET_CODE (x4) != SUBREG
4098 156 : || maybe_ne (SUBREG_BYTE (x4), 0)
4099 312 : || GET_MODE (x4) != E_QImode)
4100 : return -1;
4101 156 : x5 = XEXP (x4, 0);
4102 156 : switch (GET_CODE (x5))
4103 : {
4104 156 : case ASHIFTRT:
4105 156 : case LSHIFTRT:
4106 156 : case SIGN_EXTRACT:
4107 156 : case ZERO_EXTRACT:
4108 156 : operands[3] = x5;
4109 156 : x6 = XEXP (x1, 0);
4110 156 : if (GET_CODE (x6) != ZERO_EXTRACT)
4111 : return -1;
4112 156 : x7 = XEXP (x6, 1);
4113 156 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
4114 : return -1;
4115 156 : x8 = XEXP (x6, 2);
4116 156 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
4117 : return -1;
4118 156 : x9 = XEXP (x6, 0);
4119 156 : operands[0] = x9;
4120 156 : if (!int248_register_operand (operands[0], E_VOIDmode))
4121 : return -1;
4122 156 : x10 = XEXP (x5, 0);
4123 156 : operands[1] = x10;
4124 156 : if (!int248_register_operand (operands[1], E_VOIDmode))
4125 : return -1;
4126 156 : x11 = XEXP (x3, 1);
4127 156 : operands[2] = x11;
4128 156 : if (!nonmemory_operand (operands[2], E_QImode))
4129 : return -1;
4130 155 : return pattern1045 (x1); /* [-1, 2] */
4131 :
4132 : default:
4133 : return -1;
4134 : }
4135 : }
4136 :
4137 : int
4138 507 : pattern1055 (rtx x1)
4139 : {
4140 507 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4141 507 : rtx x2, x3, x4, x5;
4142 507 : int res ATTRIBUTE_UNUSED;
4143 507 : x2 = XEXP (x1, 1);
4144 507 : x3 = XEXP (x2, 0);
4145 507 : x4 = XEXP (x3, 0);
4146 507 : x5 = XEXP (x4, 0);
4147 507 : operands[1] = x5;
4148 507 : if (!int248_register_operand (operands[1], E_VOIDmode))
4149 : return -1;
4150 356 : return pattern1054 (x1); /* [-1, 5] */
4151 : }
4152 :
4153 : int
4154 845 : pattern1059 (rtx x1, machine_mode i1)
4155 : {
4156 845 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4157 845 : rtx x2, x3;
4158 845 : int res ATTRIBUTE_UNUSED;
4159 845 : if (!register_operand (operands[0], i1)
4160 845 : || GET_MODE (x1) != i1)
4161 : return -1;
4162 844 : x2 = XEXP (x1, 0);
4163 844 : if (GET_MODE (x2) != i1)
4164 : return -1;
4165 844 : x3 = XEXP (x2, 0);
4166 844 : if (GET_MODE (x3) != i1
4167 844 : || !nonimmediate_operand (operands[1], i1)
4168 844 : || !nonimmediate_operand (operands[2], i1)
4169 1640 : || !nonimmediate_operand (operands[3], i1))
4170 48 : return -1;
4171 : return 0;
4172 : }
4173 :
4174 : int
4175 0 : pattern1062 (rtx x1, machine_mode i1, machine_mode i2)
4176 : {
4177 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4178 0 : rtx x2;
4179 0 : int res ATTRIBUTE_UNUSED;
4180 0 : if (!register_operand (operands[0], i2)
4181 0 : || GET_MODE (x1) != i2)
4182 : return -1;
4183 0 : x2 = XEXP (x1, 0);
4184 0 : if (GET_MODE (x2) != i2
4185 0 : || !register_operand (operands[1], i2)
4186 0 : || !vector_operand (operands[2], i1))
4187 0 : return -1;
4188 : return 0;
4189 : }
4190 :
4191 : int
4192 7271 : pattern1066 (rtx x1)
4193 : {
4194 7271 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4195 7271 : rtx x2, x3, x4, x5, x6, x7;
4196 7271 : int res ATTRIBUTE_UNUSED;
4197 7271 : x2 = XEXP (x1, 1);
4198 7271 : x3 = XEXP (x2, 0);
4199 7271 : x4 = XEXP (x3, 0);
4200 7271 : if (GET_CODE (x4) != ASHIFT)
4201 : return -1;
4202 2186 : x5 = XEXP (x4, 0);
4203 2186 : if (GET_CODE (x5) != ZERO_EXTEND)
4204 : return -1;
4205 1693 : x6 = XEXP (x3, 1);
4206 1693 : if (GET_CODE (x6) != ZERO_EXTEND)
4207 : return -1;
4208 1693 : x7 = XEXP (x1, 0);
4209 1693 : operands[0] = x7;
4210 1693 : return pattern358 (x2); /* [-1, 3] */
4211 : }
4212 :
4213 : int
4214 4540 : pattern1072 (rtx x1, machine_mode i1, machine_mode i2)
4215 : {
4216 4540 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4217 4540 : rtx x2;
4218 4540 : int res ATTRIBUTE_UNUSED;
4219 4540 : if (!sse_reg_operand (operands[0], i1)
4220 4540 : || GET_MODE (x1) != i1)
4221 : return -1;
4222 3605 : x2 = XEXP (x1, 0);
4223 3605 : if (GET_MODE (x2) != i1
4224 3605 : || !sse_reg_operand (operands[2], i2)
4225 3664 : || !sse_reg_operand (operands[1], i1))
4226 3546 : return -1;
4227 : return 0;
4228 : }
4229 :
4230 : int
4231 212 : pattern1078 (rtx x1, machine_mode i1)
4232 : {
4233 212 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4234 212 : rtx x2, x3, x4;
4235 212 : int res ATTRIBUTE_UNUSED;
4236 212 : if (!register_operand (operands[1], i1))
4237 : return -1;
4238 196 : x2 = XVECEXP (x1, 0, 1);
4239 196 : operands[2] = x2;
4240 196 : if (!register_operand (operands[2], i1))
4241 : return -1;
4242 185 : x3 = XVECEXP (x1, 0, 2);
4243 185 : x4 = XEXP (x3, 0);
4244 185 : if (!rtx_equal_p (x4, operands[0]))
4245 : return -1;
4246 185 : switch (GET_MODE (operands[0]))
4247 : {
4248 0 : case E_SImode:
4249 0 : if (!register_operand (operands[0], E_SImode))
4250 : return -1;
4251 : return 0;
4252 :
4253 185 : case E_DImode:
4254 185 : if (!register_operand (operands[0], E_DImode))
4255 : return -1;
4256 : return 1;
4257 :
4258 : default:
4259 : return -1;
4260 : }
4261 : }
4262 :
4263 : int
4264 34351 : pattern1086 (rtx x1)
4265 : {
4266 34351 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4267 34351 : rtx x2;
4268 34351 : int res ATTRIBUTE_UNUSED;
4269 34351 : x2 = XEXP (x1, 1);
4270 34351 : operands[4] = x2;
4271 34351 : switch (GET_MODE (operands[0]))
4272 : {
4273 9187 : case E_HImode:
4274 9187 : return pattern1085 (x1,
4275 9187 : E_HImode); /* [-1, 0] */
4276 :
4277 17862 : case E_QImode:
4278 17862 : if (pattern1085 (x1,
4279 : E_QImode) != 0)
4280 : return -1;
4281 : return 1;
4282 :
4283 : default:
4284 : return -1;
4285 : }
4286 : }
4287 :
4288 : int
4289 6083 : pattern1093 (rtx x1, machine_mode i1)
4290 : {
4291 6083 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4292 6083 : int res ATTRIBUTE_UNUSED;
4293 6083 : if (!nonimmediate_operand (operands[0], i1)
4294 6083 : || GET_MODE (x1) != i1
4295 6083 : || !ix86_carry_flag_operator (operands[2], i1)
4296 12166 : || !nonimmediate_operand (operands[1], i1))
4297 804 : return -1;
4298 : return 0;
4299 : }
4300 :
4301 : int
4302 146 : pattern1100 (rtx x1, machine_mode i1)
4303 : {
4304 146 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4305 146 : rtx x2;
4306 146 : int res ATTRIBUTE_UNUSED;
4307 146 : if (!register_operand (operands[0], i1)
4308 146 : || GET_MODE (x1) != i1)
4309 : return -1;
4310 146 : x2 = XEXP (x1, 0);
4311 146 : return pattern1099 (x2); /* [-1, 11] */
4312 : }
4313 :
4314 : int
4315 0 : pattern1106 (rtx x1)
4316 : {
4317 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4318 0 : rtx x2, x3, x4, x5, x6, x7, x8;
4319 0 : int res ATTRIBUTE_UNUSED;
4320 0 : x2 = XEXP (x1, 0);
4321 0 : x3 = XEXP (x2, 2);
4322 0 : if (GET_CODE (x3) != UNSPEC
4323 0 : || XVECLEN (x3, 0) != 3
4324 0 : || XINT (x3, 1) != 60
4325 0 : || GET_MODE (x3) != E_QImode)
4326 : return -1;
4327 0 : x4 = XVECEXP (x3, 0, 2);
4328 0 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
4329 : return -1;
4330 0 : x5 = XEXP (x2, 0);
4331 0 : operands[3] = x5;
4332 0 : x6 = XEXP (x2, 1);
4333 0 : operands[4] = x6;
4334 0 : x7 = XVECEXP (x3, 0, 0);
4335 0 : operands[1] = x7;
4336 0 : x8 = XVECEXP (x3, 0, 1);
4337 0 : operands[2] = x8;
4338 0 : switch (GET_MODE (x1))
4339 : {
4340 0 : case E_V8SFmode:
4341 0 : return pattern1105 (x2,
4342 0 : E_V8SImode); /* [-1, 0] */
4343 :
4344 0 : case E_V4SFmode:
4345 0 : if (pattern1105 (x2,
4346 : E_V4SImode) != 0)
4347 : return -1;
4348 : return 1;
4349 :
4350 0 : case E_V4DFmode:
4351 0 : if (pattern1105 (x2,
4352 : E_V4DImode) != 0)
4353 : return -1;
4354 : return 2;
4355 :
4356 0 : case E_V2DFmode:
4357 0 : if (pattern1105 (x2,
4358 : E_V2DImode) != 0)
4359 : return -1;
4360 : return 3;
4361 :
4362 : default:
4363 : return -1;
4364 : }
4365 : }
4366 :
4367 : int
4368 1427 : pattern1115 (rtx x1, machine_mode i1)
4369 : {
4370 1427 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4371 1427 : rtx x2;
4372 1427 : int res ATTRIBUTE_UNUSED;
4373 1427 : if (!register_operand (operands[0], i1)
4374 1427 : || GET_MODE (x1) != i1)
4375 : return -1;
4376 1364 : x2 = XEXP (x1, 0);
4377 1364 : if (GET_MODE (x2) != i1
4378 1364 : || !nonimm_or_0_operand (operands[2], i1)
4379 2701 : || !register_operand (operands[3], E_QImode))
4380 92 : return -1;
4381 1272 : switch (GET_MODE (operands[1]))
4382 : {
4383 : case E_V8HFmode:
4384 : return 0;
4385 :
4386 415 : case E_V4SFmode:
4387 415 : return 1;
4388 :
4389 418 : case E_V4DFmode:
4390 418 : return 2;
4391 :
4392 : default:
4393 : return -1;
4394 : }
4395 : }
4396 :
4397 : int
4398 3137 : pattern1120 (rtx x1, machine_mode i1, machine_mode i2)
4399 : {
4400 3137 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4401 3137 : rtx x2;
4402 3137 : int res ATTRIBUTE_UNUSED;
4403 3137 : if (!register_operand (operands[0], i1)
4404 3137 : || GET_MODE (x1) != i1)
4405 : return -1;
4406 2951 : x2 = XEXP (x1, 0);
4407 2951 : if (GET_MODE (x2) != i1
4408 2951 : || !register_operand (operands[1], i1)
4409 2914 : || !nonimmediate_operand (operands[2], i1)
4410 2914 : || !nonimm_or_0_operand (operands[3], i1)
4411 5817 : || !register_operand (operands[4], i2))
4412 163 : return -1;
4413 : return 0;
4414 : }
4415 :
4416 : int
4417 47410 : pattern1128 (rtx x1, machine_mode i1)
4418 : {
4419 47410 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4420 47410 : int res ATTRIBUTE_UNUSED;
4421 47410 : if (!register_operand (operands[0], i1)
4422 47120 : || GET_MODE (x1) != i1
4423 47120 : || !vector_operand (operands[2], i1)
4424 37274 : || !register_operand (operands[1], i1)
4425 73014 : || !const_0_to_255_operand (operands[3], E_SImode))
4426 22179 : return -1;
4427 : return 0;
4428 : }
4429 :
4430 : int
4431 1410 : pattern1134 (rtx x1, rtx_code i1)
4432 : {
4433 1410 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4434 1410 : rtx x2, x3, x4, x5, x6, x7, x8;
4435 1410 : int res ATTRIBUTE_UNUSED;
4436 1410 : x2 = XEXP (x1, 0);
4437 1410 : x3 = XEXP (x2, 0);
4438 1410 : x4 = XEXP (x3, 0);
4439 1410 : x5 = XEXP (x4, 1);
4440 1410 : if (GET_CODE (x5) != i1)
4441 : return -1;
4442 1278 : x6 = XEXP (x4, 0);
4443 1278 : x7 = XEXP (x6, 0);
4444 1278 : operands[1] = x7;
4445 1278 : x8 = XEXP (x5, 0);
4446 1278 : operands[2] = x8;
4447 1278 : switch (GET_MODE (operands[0]))
4448 : {
4449 474 : case E_V32HImode:
4450 474 : return pattern1133 (x1,
4451 : E_SImode,
4452 : E_V32HImode,
4453 474 : E_V32SImode); /* [-1, 0] */
4454 :
4455 434 : case E_V16HImode:
4456 434 : if (pattern1133 (x1,
4457 : E_HImode,
4458 : E_V16HImode,
4459 : E_V16SImode) != 0)
4460 : return -1;
4461 : return 1;
4462 :
4463 370 : case E_V8HImode:
4464 370 : if (pattern1133 (x1,
4465 : E_QImode,
4466 : E_V8HImode,
4467 : E_V8SImode) != 0)
4468 : return -1;
4469 : return 2;
4470 :
4471 : default:
4472 : return -1;
4473 : }
4474 : }
4475 :
4476 : int
4477 548 : pattern1149 (rtx x1, machine_mode i1, machine_mode i2)
4478 : {
4479 548 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4480 548 : int res ATTRIBUTE_UNUSED;
4481 548 : if (!register_operand (operands[0], i2)
4482 526 : || GET_MODE (x1) != i2
4483 526 : || !register_operand (operands[1], i2)
4484 480 : || !nonimmediate_operand (operands[2], i2)
4485 1028 : || !nonimmediate_operand (operands[3], i1))
4486 68 : return -1;
4487 : return 0;
4488 : }
4489 :
4490 : int
4491 18138 : pattern1155 (rtx x1, machine_mode i1)
4492 : {
4493 18138 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4494 18138 : int res ATTRIBUTE_UNUSED;
4495 18138 : if (!register_operand (operands[0], i1)
4496 17999 : || GET_MODE (x1) != i1
4497 17999 : || !register_operand (operands[1], i1)
4498 34650 : || !palignr_operand (operands[2], E_VOIDmode))
4499 16589 : return -1;
4500 : return 0;
4501 : }
4502 :
4503 : int
4504 0 : pattern1160 (rtx x1, machine_mode i1)
4505 : {
4506 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4507 0 : int res ATTRIBUTE_UNUSED;
4508 0 : if (!register_operand (operands[0], i1)
4509 0 : || GET_MODE (x1) != i1
4510 0 : || !register_operand (operands[5], i1)
4511 0 : || !immediate_operand (operands[3], i1)
4512 0 : || !register_operand (operands[4], i1)
4513 0 : || !register_operand (operands[1], i1))
4514 0 : return -1;
4515 : return 0;
4516 : }
4517 :
4518 : int
4519 149 : pattern1166 (rtx x1)
4520 : {
4521 149 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4522 149 : rtx x2, x3, x4, x5;
4523 149 : int res ATTRIBUTE_UNUSED;
4524 149 : x2 = XEXP (x1, 0);
4525 149 : if (GET_MODE (x2) != E_SImode)
4526 : return -1;
4527 149 : x3 = XEXP (x2, 0);
4528 149 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 31])
4529 : return -1;
4530 125 : x4 = XEXP (x2, 1);
4531 125 : if (GET_CODE (x4) != CLZ
4532 125 : || GET_MODE (x4) != E_SImode)
4533 : return -1;
4534 125 : x5 = XEXP (x1, 1);
4535 125 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 31])
4536 0 : return -1;
4537 : return 0;
4538 : }
4539 :
4540 : int
4541 24341 : pattern1174 (rtx x1, machine_mode i1, machine_mode i2)
4542 : {
4543 24341 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4544 24341 : rtx x2;
4545 24341 : int res ATTRIBUTE_UNUSED;
4546 24341 : if (!nonimmediate_operand (operands[0], i2)
4547 24294 : || GET_MODE (x1) != i2
4548 48635 : || !nonimmediate_operand (operands[1], i2))
4549 1023 : return -1;
4550 23318 : x2 = XEXP (x1, 1);
4551 23318 : if (GET_MODE (x2) != i2
4552 23318 : || !nonimmediate_operand (operands[2], i1))
4553 10508 : return -1;
4554 : return 0;
4555 : }
4556 :
4557 : int
4558 448134 : pattern1181 (rtx x1, machine_mode i1, int i2)
4559 : {
4560 448134 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4561 448134 : rtx x2;
4562 448134 : int res ATTRIBUTE_UNUSED;
4563 448134 : if (GET_CODE (x1) != UNSPEC_VOLATILE
4564 448134 : || XVECLEN (x1, 0) != 1
4565 448134 : || XINT (x1, 1) != i2
4566 448134 : || GET_MODE (x1) != i1)
4567 : return -1;
4568 448134 : x2 = XVECEXP (x1, 0, 0);
4569 448134 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
4570 0 : return -1;
4571 : return 0;
4572 : }
4573 :
4574 : int
4575 1325207 : pattern1188 (rtx x1)
4576 : {
4577 1325207 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4578 1325207 : rtx x2, x3, x4;
4579 1325207 : int res ATTRIBUTE_UNUSED;
4580 1325207 : x2 = XEXP (x1, 1);
4581 1325207 : x3 = XEXP (x2, 1);
4582 1325207 : operands[2] = x3;
4583 1325207 : x4 = XEXP (x1, 0);
4584 1325207 : switch (GET_CODE (x4))
4585 : {
4586 2732 : case STRICT_LOW_PART:
4587 2732 : return pattern559 (x1); /* [-1, 1] */
4588 :
4589 1322475 : case REG:
4590 1322475 : case SUBREG:
4591 1322475 : case MEM:
4592 1322475 : operands[0] = x4;
4593 1322475 : switch (GET_MODE (operands[0]))
4594 : {
4595 473491 : case E_DImode:
4596 473491 : if (GET_MODE (x2) != E_DImode)
4597 : return -1;
4598 : return 2;
4599 :
4600 4738 : case E_TImode:
4601 4738 : if (pattern566 (x2,
4602 : E_TImode) != 0)
4603 : return -1;
4604 : return 3;
4605 :
4606 53959 : case E_HImode:
4607 53959 : if (GET_MODE (x2) != E_HImode
4608 53959 : || !const_int_operand (operands[2], E_HImode))
4609 24206 : return -1;
4610 : return 4;
4611 :
4612 549338 : case E_SImode:
4613 549338 : if (GET_MODE (x2) != E_SImode
4614 549338 : || !const_int_operand (operands[2], E_SImode))
4615 358610 : return -1;
4616 : return 5;
4617 :
4618 : default:
4619 : return -1;
4620 : }
4621 :
4622 : default:
4623 : return -1;
4624 : }
4625 : }
4626 :
4627 : int
4628 8843 : pattern1204 (rtx x1, machine_mode i1)
4629 : {
4630 8843 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4631 8843 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
4632 8843 : rtx x10, x11, x12;
4633 8843 : int res ATTRIBUTE_UNUSED;
4634 8843 : x2 = XVECEXP (x1, 0, 0);
4635 8843 : x3 = XEXP (x2, 1);
4636 8843 : if (GET_MODE (x3) != i1)
4637 : return -1;
4638 8773 : x4 = XEXP (x3, 0);
4639 8773 : if (GET_CODE (x4) != MINUS
4640 8 : || GET_MODE (x4) != i1)
4641 : return -1;
4642 8 : x5 = XEXP (x4, 1);
4643 8 : if (!ix86_carry_flag_operator (x5, i1))
4644 : return -1;
4645 8 : operands[4] = x5;
4646 8 : x6 = XEXP (x5, 1);
4647 8 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
4648 : return -1;
4649 8 : x7 = XVECEXP (x1, 0, 1);
4650 8 : if (GET_CODE (x7) != CLOBBER)
4651 : return -1;
4652 8 : x8 = XEXP (x7, 0);
4653 8 : if (GET_CODE (x8) != REG
4654 8 : || REGNO (x8) != 17
4655 16 : || GET_MODE (x8) != E_CCmode)
4656 : return -1;
4657 8 : x9 = XEXP (x5, 0);
4658 8 : operands[3] = x9;
4659 8 : if (!flags_reg_operand (operands[3], E_VOIDmode))
4660 : return -1;
4661 8 : x10 = XEXP (x3, 1);
4662 8 : operands[2] = x10;
4663 8 : if (!memory_operand (operands[2], i1))
4664 : return -1;
4665 8 : x11 = XEXP (x4, 0);
4666 8 : if (!rtx_equal_p (x11, operands[0]))
4667 : return -1;
4668 8 : x12 = XEXP (x2, 0);
4669 8 : return pattern1202 (x12,
4670 8 : i1); /* [-1, 1] */
4671 : }
4672 :
4673 : int
4674 698 : pattern1215 (rtx x1, machine_mode i1)
4675 : {
4676 698 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4677 698 : rtx x2, x3;
4678 698 : int res ATTRIBUTE_UNUSED;
4679 698 : if (!nonimmediate_operand (operands[0], i1)
4680 698 : || GET_MODE (x1) != i1)
4681 : return -1;
4682 698 : x2 = XEXP (x1, 0);
4683 698 : if (GET_MODE (x2) != i1)
4684 : return -1;
4685 698 : x3 = XEXP (x2, 0);
4686 698 : if (GET_MODE (x3) != i1
4687 698 : || !nonimmediate_operand (operands[1], i1)
4688 1024 : || !x86_64_immediate_operand (operands[2], i1))
4689 683 : return -1;
4690 : return 0;
4691 : }
4692 :
4693 : int
4694 1010 : pattern1224 (rtx x1)
4695 : {
4696 1010 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4697 1010 : rtx x2, x3, x4, x5;
4698 1010 : int res ATTRIBUTE_UNUSED;
4699 1010 : x2 = XEXP (x1, 0);
4700 1010 : x3 = XEXP (x2, 1);
4701 1010 : switch (GET_CODE (x3))
4702 : {
4703 827 : case REG:
4704 827 : case SUBREG:
4705 827 : case MEM:
4706 827 : x4 = XEXP (x2, 2);
4707 827 : operands[4] = x4;
4708 827 : switch (GET_MODE (operands[0]))
4709 : {
4710 : case E_V8HFmode:
4711 : return 0;
4712 :
4713 : case E_V4SFmode:
4714 : return 1;
4715 :
4716 : case E_V2DFmode:
4717 : return 2;
4718 :
4719 : default:
4720 : return -1;
4721 : }
4722 :
4723 183 : case CONST_INT:
4724 183 : case CONST_DOUBLE:
4725 183 : case CONST_VECTOR:
4726 183 : operands[4] = x3;
4727 183 : x4 = XEXP (x2, 2);
4728 183 : operands[5] = x4;
4729 183 : x5 = XEXP (x1, 1);
4730 183 : if (!rtx_equal_p (x5, operands[1]))
4731 : return -1;
4732 183 : switch (GET_MODE (operands[0]))
4733 : {
4734 : case E_V8HFmode:
4735 : return 3;
4736 :
4737 : case E_V4SFmode:
4738 : return 4;
4739 :
4740 : case E_V2DFmode:
4741 : return 5;
4742 :
4743 : default:
4744 : return -1;
4745 : }
4746 :
4747 : default:
4748 : return -1;
4749 : }
4750 : }
4751 :
4752 : int
4753 37 : pattern1238 (rtx x1, int i1, int i2, int i3, int i4, int i5)
4754 : {
4755 37 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4756 37 : rtx x2, x3, x4, x5, x6;
4757 37 : int res ATTRIBUTE_UNUSED;
4758 37 : x2 = XVECEXP (x1, 0, 3);
4759 37 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + i5])
4760 : return -1;
4761 37 : x3 = XVECEXP (x1, 0, 4);
4762 37 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + i4])
4763 : return -1;
4764 37 : x4 = XVECEXP (x1, 0, 5);
4765 37 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + i3])
4766 : return -1;
4767 37 : x5 = XVECEXP (x1, 0, 6);
4768 37 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + i2])
4769 : return -1;
4770 37 : x6 = XVECEXP (x1, 0, 7);
4771 37 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
4772 0 : return -1;
4773 : return 0;
4774 : }
4775 :
4776 : int
4777 127099 : pattern1244 (rtx x1, machine_mode i1)
4778 : {
4779 127099 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4780 127099 : rtx x2, x3, x4;
4781 127099 : int res ATTRIBUTE_UNUSED;
4782 127099 : x2 = XEXP (x1, 1);
4783 127099 : x3 = XEXP (x2, 1);
4784 127099 : if (maybe_ne (SUBREG_BYTE (x3), 0)
4785 127099 : || GET_MODE (x3) != E_QImode)
4786 : return -1;
4787 127099 : x4 = XEXP (x1, 0);
4788 127099 : operands[0] = x4;
4789 127099 : return pattern1243 (x2,
4790 127099 : i1); /* [-1, 2] */
4791 : }
4792 :
4793 : int
4794 8 : pattern1248 (rtx x1)
4795 : {
4796 8 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4797 8 : rtx x2, x3, x4, x5, x6, x7;
4798 8 : int res ATTRIBUTE_UNUSED;
4799 8 : x2 = XVECEXP (x1, 0, 1);
4800 8 : x3 = XEXP (x2, 0);
4801 8 : operands[0] = x3;
4802 8 : x4 = XVECEXP (x1, 0, 0);
4803 8 : x5 = XEXP (x4, 1);
4804 8 : x6 = XEXP (x5, 0);
4805 8 : switch (GET_MODE (x6))
4806 : {
4807 6 : case E_SImode:
4808 6 : x7 = XEXP (x6, 0);
4809 6 : if (GET_MODE (x7) != E_SImode
4810 6 : || !nonimmediate_operand (operands[1], E_SImode)
4811 12 : || !scratch_operand (operands[0], E_SImode))
4812 0 : return -1;
4813 : return 0;
4814 :
4815 2 : case E_DImode:
4816 2 : x7 = XEXP (x6, 0);
4817 2 : if (GET_MODE (x7) != E_DImode
4818 2 : || !nonimmediate_operand (operands[1], E_DImode)
4819 4 : || !scratch_operand (operands[0], E_DImode))
4820 0 : return -1;
4821 : return 1;
4822 :
4823 : default:
4824 : return -1;
4825 : }
4826 : }
4827 :
4828 : int
4829 504 : pattern1256 (rtx x1, machine_mode i1)
4830 : {
4831 504 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4832 504 : rtx x2, x3;
4833 504 : int res ATTRIBUTE_UNUSED;
4834 504 : if (!register_operand (operands[0], i1)
4835 504 : || GET_MODE (x1) != i1)
4836 : return -1;
4837 494 : x2 = XEXP (x1, 0);
4838 494 : if (GET_MODE (x2) != i1)
4839 : return -1;
4840 494 : x3 = XEXP (x2, 0);
4841 494 : if (GET_MODE (x3) != i1
4842 494 : || !nonimmediate_operand (operands[1], i1))
4843 2 : return -1;
4844 : return 0;
4845 : }
4846 :
4847 : int
4848 2801884 : pattern1261 (rtx x1, machine_mode i1)
4849 : {
4850 2801884 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4851 2801884 : int res ATTRIBUTE_UNUSED;
4852 2801884 : if (!mask_reg_operand (operands[0], i1)
4853 466 : || GET_MODE (x1) != i1
4854 466 : || !mask_reg_operand (operands[1], i1)
4855 2802350 : || !mask_reg_operand (operands[2], i1))
4856 2801418 : return -1;
4857 : return 0;
4858 : }
4859 :
4860 : int
4861 119995 : pattern1268 (rtx x1, machine_mode i1)
4862 : {
4863 119995 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4864 119995 : rtx x2, x3, x4, x5, x6;
4865 119995 : int res ATTRIBUTE_UNUSED;
4866 119995 : if (peep2_current_count < 4
4867 111435 : || GET_CODE (x1) != SET)
4868 : return -1;
4869 105388 : x2 = XEXP (x1, 1);
4870 105388 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
4871 : return -1;
4872 54783 : x3 = XEXP (x1, 0);
4873 54783 : operands[3] = x3;
4874 54783 : if (!memory_operand (operands[3], i1))
4875 : return -1;
4876 46832 : x4 = PATTERN (peep2_next_insn (3));
4877 46832 : if (GET_CODE (x4) != SET)
4878 : return -1;
4879 44622 : x5 = XEXP (x4, 1);
4880 44622 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
4881 : return -1;
4882 27466 : x6 = XEXP (x4, 0);
4883 27466 : operands[4] = x6;
4884 27466 : if (!memory_operand (operands[4], i1))
4885 : return -1;
4886 : return 0;
4887 : }
4888 :
4889 : int
4890 5145 : pattern1278 (rtx x1, machine_mode i1)
4891 : {
4892 5145 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4893 5145 : rtx x2;
4894 5145 : int res ATTRIBUTE_UNUSED;
4895 5145 : if (!nonimmediate_operand (operands[0], i1)
4896 5145 : || GET_MODE (x1) != i1)
4897 : return -1;
4898 5145 : x2 = XEXP (x1, 0);
4899 5145 : if (GET_MODE (x2) != i1
4900 5145 : || !nonimmediate_operand (operands[1], i1)
4901 4218 : || !ix86_carry_flag_operator (operands[4], i1)
4902 9363 : || !x86_64_general_operand (operands[2], i1))
4903 1855 : return -1;
4904 : return 0;
4905 : }
4906 :
4907 : int
4908 1105 : pattern1287 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
4909 : {
4910 1105 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4911 1105 : rtx x2, x3;
4912 1105 : int res ATTRIBUTE_UNUSED;
4913 1105 : if (!register_operand (operands[0], i1)
4914 1105 : || GET_MODE (x1) != i1)
4915 : return -1;
4916 1075 : x2 = XEXP (x1, 0);
4917 1075 : if (GET_MODE (x2) != i1
4918 1075 : || !register_operand (operands[1], i1))
4919 0 : return -1;
4920 1075 : x3 = XEXP (x2, 1);
4921 1075 : if (GET_MODE (x3) != i1
4922 1075 : || !nonimmediate_operand (operands[2], i2)
4923 1075 : || !nonimm_or_0_operand (operands[4], i1)
4924 2136 : || !register_operand (operands[5], i3))
4925 74 : return -1;
4926 : return 0;
4927 : }
4928 :
4929 : int
4930 3440 : pattern1295 (rtx x1)
4931 : {
4932 3440 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4933 3440 : rtx x2;
4934 3440 : int res ATTRIBUTE_UNUSED;
4935 3440 : if (!const_0_to_7_operand (operands[5], E_SImode))
4936 : return -1;
4937 3285 : switch (GET_MODE (operands[0]))
4938 : {
4939 94 : case E_V16QImode:
4940 94 : if (!register_operand (operands[0], E_V16QImode)
4941 94 : || GET_MODE (x1) != E_V16QImode)
4942 : return -1;
4943 94 : x2 = XEXP (x1, 2);
4944 94 : if (GET_MODE (x2) != E_HImode)
4945 : return -1;
4946 : return 0;
4947 :
4948 119 : case E_V8HImode:
4949 119 : if (!register_operand (operands[0], E_V8HImode)
4950 119 : || GET_MODE (x1) != E_V8HImode)
4951 : return -1;
4952 119 : x2 = XEXP (x1, 2);
4953 119 : if (GET_MODE (x2) != E_QImode)
4954 : return -1;
4955 : return 1;
4956 :
4957 805 : case E_V4SImode:
4958 805 : if (!register_operand (operands[0], E_V4SImode)
4959 805 : || GET_MODE (x1) != E_V4SImode)
4960 : return -1;
4961 797 : x2 = XEXP (x1, 2);
4962 797 : if (GET_MODE (x2) != E_QImode)
4963 : return -1;
4964 : return 2;
4965 :
4966 73 : case E_V2DImode:
4967 73 : if (!register_operand (operands[0], E_V2DImode)
4968 73 : || GET_MODE (x1) != E_V2DImode)
4969 : return -1;
4970 73 : x2 = XEXP (x1, 2);
4971 73 : if (GET_MODE (x2) != E_QImode)
4972 : return -1;
4973 : return 3;
4974 :
4975 88 : case E_V32QImode:
4976 88 : if (!register_operand (operands[0], E_V32QImode)
4977 88 : || GET_MODE (x1) != E_V32QImode)
4978 : return -1;
4979 88 : x2 = XEXP (x1, 2);
4980 88 : if (GET_MODE (x2) != E_SImode)
4981 : return -1;
4982 : return 4;
4983 :
4984 105 : case E_V16HImode:
4985 105 : if (!register_operand (operands[0], E_V16HImode)
4986 105 : || GET_MODE (x1) != E_V16HImode)
4987 : return -1;
4988 105 : x2 = XEXP (x1, 2);
4989 105 : if (GET_MODE (x2) != E_HImode)
4990 : return -1;
4991 : return 5;
4992 :
4993 741 : case E_V8SImode:
4994 741 : if (!register_operand (operands[0], E_V8SImode)
4995 741 : || GET_MODE (x1) != E_V8SImode)
4996 : return -1;
4997 741 : x2 = XEXP (x1, 2);
4998 741 : if (GET_MODE (x2) != E_QImode)
4999 : return -1;
5000 : return 6;
5001 :
5002 75 : case E_V4DImode:
5003 75 : if (!register_operand (operands[0], E_V4DImode)
5004 75 : || GET_MODE (x1) != E_V4DImode)
5005 : return -1;
5006 75 : x2 = XEXP (x1, 2);
5007 75 : if (GET_MODE (x2) != E_QImode)
5008 : return -1;
5009 : return 7;
5010 :
5011 : default:
5012 : return -1;
5013 : }
5014 : }
5015 :
5016 : int
5017 6861 : pattern1326 (rtx x1)
5018 : {
5019 6861 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5020 6861 : rtx x2, x3, x4, x5, x6, x7;
5021 6861 : int res ATTRIBUTE_UNUSED;
5022 6861 : x2 = XEXP (x1, 1);
5023 6861 : x3 = XEXP (x2, 2);
5024 6861 : if (maybe_ne (SUBREG_BYTE (x3), 0)
5025 6861 : || GET_MODE (x3) != E_QImode)
5026 : return -1;
5027 6861 : x4 = XEXP (x3, 0);
5028 6861 : if (GET_CODE (x4) != AND)
5029 : return -1;
5030 1001 : x5 = XEXP (x1, 0);
5031 1001 : operands[0] = x5;
5032 1001 : x6 = XEXP (x4, 0);
5033 1001 : operands[2] = x6;
5034 1001 : x7 = XEXP (x4, 1);
5035 1001 : operands[3] = x7;
5036 1001 : if (!const_int_operand (operands[3], E_VOIDmode))
5037 : return -1;
5038 1001 : switch (GET_MODE (operands[0]))
5039 : {
5040 653 : case E_SImode:
5041 653 : return pattern1325 (x2,
5042 653 : E_SImode); /* [-1, 0] */
5043 :
5044 250 : case E_DImode:
5045 250 : if (pattern1325 (x2,
5046 : E_DImode) != 0)
5047 : return -1;
5048 : return 1;
5049 :
5050 : default:
5051 : return -1;
5052 : }
5053 : }
5054 :
5055 : int
5056 2034255 : pattern1335 (rtx x1, machine_mode i1)
5057 : {
5058 2034255 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5059 2034255 : int res ATTRIBUTE_UNUSED;
5060 2034255 : if (!register_operand (operands[0], i1)
5061 2027227 : || GET_MODE (x1) != i1
5062 2027227 : || !nonimmediate_operand (operands[1], i1)
5063 4050490 : || !x86_64_general_operand (operands[2], i1))
5064 102130 : return -1;
5065 : return 0;
5066 : }
5067 :
5068 : int
5069 81 : pattern1341 (rtx x1, machine_mode i1, machine_mode i2)
5070 : {
5071 81 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5072 81 : int res ATTRIBUTE_UNUSED;
5073 81 : if (!register_operand (operands[0], i1)
5074 81 : || GET_MODE (x1) != i1
5075 81 : || !vector_all_ones_operand (operands[2], i1)
5076 81 : || !const0_operand (operands[3], i1)
5077 81 : || !register_operand (operands[1], i2)
5078 162 : || !register_operand (operands[4], i1))
5079 0 : return -1;
5080 : return 0;
5081 : }
5082 :
5083 : int
5084 585 : pattern1348 (rtx x1)
5085 : {
5086 585 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5087 585 : int res ATTRIBUTE_UNUSED;
5088 585 : switch (GET_MODE (operands[0]))
5089 : {
5090 203 : case E_SImode:
5091 203 : if (!register_operand (operands[0], E_SImode)
5092 203 : || GET_MODE (x1) != E_SImode
5093 406 : || !nonimmediate_operand (operands[1], E_SImode))
5094 0 : return -1;
5095 : return 0;
5096 :
5097 201 : case E_DImode:
5098 201 : if (!register_operand (operands[0], E_DImode)
5099 201 : || GET_MODE (x1) != E_DImode
5100 402 : || !nonimmediate_operand (operands[1], E_DImode))
5101 0 : return -1;
5102 : return 1;
5103 :
5104 : default:
5105 : return -1;
5106 : }
5107 : }
5108 :
5109 : int
5110 215588 : pattern1357 (rtx x1, machine_mode i1)
5111 : {
5112 215588 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5113 215588 : rtx x2, x3, x4, x5, x6, x7, x8;
5114 215588 : int res ATTRIBUTE_UNUSED;
5115 215588 : x2 = XVECEXP (x1, 0, 0);
5116 215588 : x3 = XEXP (x2, 0);
5117 215588 : if (GET_CODE (x3) != REG
5118 215588 : || REGNO (x3) != 17)
5119 : return -1;
5120 6433 : x4 = XVECEXP (x1, 0, 1);
5121 6433 : if (GET_CODE (x4) != SET)
5122 : return -1;
5123 5664 : x5 = XEXP (x2, 1);
5124 5664 : operands[5] = x5;
5125 5664 : x6 = XEXP (x4, 1);
5126 5664 : operands[6] = x6;
5127 5664 : x7 = XEXP (x4, 0);
5128 5664 : if (!rtx_equal_p (x7, operands[0]))
5129 : return -1;
5130 5484 : x8 = PATTERN (peep2_next_insn (2));
5131 5484 : return pattern1356 (x8,
5132 5484 : i1); /* [-1, 0] */
5133 : }
5134 :
5135 : int
5136 0 : pattern1366 (rtx x1, machine_mode i1)
5137 : {
5138 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5139 0 : rtx x2, x3, x4;
5140 0 : int res ATTRIBUTE_UNUSED;
5141 0 : if (!register_operand (operands[0], i1)
5142 0 : || GET_MODE (x1) != i1)
5143 : return -1;
5144 0 : x2 = XVECEXP (x1, 0, 0);
5145 0 : if (GET_MODE (x2) != i1)
5146 : return -1;
5147 0 : x3 = XEXP (x2, 0);
5148 0 : if (GET_MODE (x3) != i1
5149 0 : || !nonimmediate_operand (operands[1], i1)
5150 0 : || !nonimmediate_operand (operands[2], i1))
5151 0 : return -1;
5152 0 : x4 = XEXP (x2, 2);
5153 0 : if (GET_MODE (x4) != i1
5154 0 : || !nonimmediate_operand (operands[3], i1))
5155 0 : return -1;
5156 : return 0;
5157 : }
5158 :
5159 : int
5160 5816 : pattern1376 (rtx x1, machine_mode i1)
5161 : {
5162 5816 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5163 5816 : int res ATTRIBUTE_UNUSED;
5164 5816 : if (!register_operand (operands[0], i1)
5165 5800 : || GET_MODE (x1) != i1
5166 5800 : || !nonimmediate_operand (operands[2], i1)
5167 10790 : || !nonimmediate_operand (operands[3], i1))
5168 2600 : return -1;
5169 3216 : return pattern1375 (); /* [-1, 3] */
5170 : }
5171 :
5172 : int
5173 454 : pattern1378 (rtx x1, machine_mode i1, machine_mode i2)
5174 : {
5175 454 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5176 454 : rtx x2, x3;
5177 454 : int res ATTRIBUTE_UNUSED;
5178 454 : if (!register_operand (operands[0], i1)
5179 454 : || GET_MODE (x1) != i1)
5180 : return -1;
5181 404 : x2 = XEXP (x1, 0);
5182 404 : if (GET_MODE (x2) != i1
5183 404 : || !vector_operand (operands[1], i1)
5184 808 : || !vector_operand (operands[2], i1))
5185 0 : return -1;
5186 404 : x3 = XVECEXP (x2, 0, 2);
5187 404 : if (GET_MODE (x3) != i1
5188 404 : || !vector_operand (operands[3], i1)
5189 404 : || !const0_operand (operands[4], i1)
5190 808 : || !register_operand (operands[5], i2))
5191 33 : return -1;
5192 : return 0;
5193 : }
5194 :
5195 : int
5196 950 : pattern1390 (rtx x1, machine_mode i1, machine_mode i2)
5197 : {
5198 950 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5199 950 : rtx x2, x3;
5200 950 : int res ATTRIBUTE_UNUSED;
5201 950 : if (!register_operand (operands[0], i1)
5202 950 : || GET_MODE (x1) != i1)
5203 : return -1;
5204 903 : x2 = XEXP (x1, 0);
5205 903 : if (GET_MODE (x2) != i1
5206 903 : || !bcst_vector_operand (operands[1], i1))
5207 0 : return -1;
5208 903 : x3 = XEXP (x2, 2);
5209 903 : return pattern1389 (x3,
5210 : i2,
5211 903 : i1); /* [-1, 0] */
5212 : }
5213 :
5214 : int
5215 269 : pattern1399 (rtx x1, machine_mode i1)
5216 : {
5217 269 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5218 269 : rtx x2, x3;
5219 269 : int res ATTRIBUTE_UNUSED;
5220 269 : if (!register_operand (operands[0], i1)
5221 269 : || GET_MODE (x1) != i1)
5222 : return -1;
5223 258 : x2 = XEXP (x1, 0);
5224 258 : if (GET_MODE (x2) != i1)
5225 : return -1;
5226 258 : x3 = XEXP (x2, 0);
5227 258 : if (GET_MODE (x3) != i1
5228 258 : || !nonimmediate_operand (operands[1], i1)
5229 258 : || !nonimmediate_operand (operands[2], i1)
5230 516 : || !nonimmediate_operand (operands[3], i1))
5231 0 : return -1;
5232 : return 0;
5233 : }
5234 :
5235 : int
5236 1188 : pattern1407 (rtx x1)
5237 : {
5238 1188 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5239 1188 : rtx x2, x3, x4, x5, x6, x7;
5240 1188 : int res ATTRIBUTE_UNUSED;
5241 1188 : x2 = XVECEXP (x1, 0, 0);
5242 1188 : x3 = XEXP (x2, 0);
5243 1188 : x4 = XEXP (x3, 1);
5244 1188 : operands[4] = x4;
5245 1188 : x5 = XEXP (x3, 2);
5246 1188 : operands[5] = x5;
5247 1188 : if (!register_operand (operands[5], E_QImode))
5248 : return -1;
5249 1141 : x6 = XVECEXP (x1, 0, 1);
5250 1141 : operands[6] = x6;
5251 1141 : if (!const48_operand (operands[6], E_SImode))
5252 : return -1;
5253 1141 : x7 = XEXP (x2, 1);
5254 1141 : if (!rtx_equal_p (x7, operands[1]))
5255 : return -1;
5256 1141 : switch (GET_MODE (operands[0]))
5257 : {
5258 519 : case E_V8HFmode:
5259 519 : return pattern1406 (x1,
5260 519 : E_V8HFmode); /* [-1, 0] */
5261 :
5262 311 : case E_V4SFmode:
5263 311 : if (pattern1406 (x1,
5264 : E_V4SFmode) != 0)
5265 : return -1;
5266 : return 1;
5267 :
5268 311 : case E_V2DFmode:
5269 311 : if (pattern1406 (x1,
5270 : E_V2DFmode) != 0)
5271 : return -1;
5272 : return 2;
5273 :
5274 : default:
5275 : return -1;
5276 : }
5277 : }
5278 :
5279 : int
5280 321 : pattern1421 (rtx x1, machine_mode i1)
5281 : {
5282 321 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5283 321 : rtx x2, x3;
5284 321 : int res ATTRIBUTE_UNUSED;
5285 321 : if (!register_operand (operands[0], i1)
5286 321 : || GET_MODE (x1) != i1)
5287 : return -1;
5288 312 : x2 = XVECEXP (x1, 0, 0);
5289 312 : if (GET_MODE (x2) != i1
5290 312 : || !register_operand (operands[1], i1)
5291 624 : || !register_operand (operands[2], i1))
5292 5 : return -1;
5293 307 : x3 = XEXP (x2, 2);
5294 307 : if (GET_MODE (x3) != i1
5295 307 : || !register_operand (operands[3], i1))
5296 0 : return -1;
5297 : return 0;
5298 : }
5299 :
5300 : int
5301 2563 : pattern1428 (rtx x1)
5302 : {
5303 2563 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5304 2563 : int res ATTRIBUTE_UNUSED;
5305 2563 : switch (GET_MODE (operands[0]))
5306 : {
5307 742 : case E_SImode:
5308 742 : if (!register_operand (operands[0], E_SImode)
5309 741 : || GET_MODE (x1) != E_SImode
5310 1483 : || !register_operand (operands[1], E_SImode))
5311 317 : return -1;
5312 : return 0;
5313 :
5314 1226 : case E_DImode:
5315 1226 : if (!register_operand (operands[0], E_DImode)
5316 1185 : || GET_MODE (x1) != E_DImode
5317 2411 : || !register_operand (operands[1], E_DImode))
5318 350 : return -1;
5319 : return 1;
5320 :
5321 : default:
5322 : return -1;
5323 : }
5324 : }
5325 :
5326 : int
5327 1514 : pattern1441 (rtx x1, machine_mode i1)
5328 : {
5329 1514 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5330 1514 : rtx x2;
5331 1514 : int res ATTRIBUTE_UNUSED;
5332 1514 : if (!register_operand (operands[0], i1)
5333 1514 : || GET_MODE (x1) != i1)
5334 : return -1;
5335 1514 : x2 = XEXP (x1, 1);
5336 1514 : if (GET_MODE (x2) != i1
5337 1514 : || !nonimmediate_operand (operands[1], i1))
5338 194 : return -1;
5339 : return 0;
5340 : }
5341 :
5342 : int
5343 0 : pattern1448 (rtx x1, machine_mode i1)
5344 : {
5345 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5346 0 : int res ATTRIBUTE_UNUSED;
5347 0 : if (!register_operand (operands[0], i1)
5348 0 : || GET_MODE (x1) != i1
5349 0 : || !register_operand (operands[1], i1)
5350 0 : || !const_int_operand (operands[2], i1))
5351 0 : return -1;
5352 : return 0;
5353 : }
5354 :
5355 : int
5356 299874 : pattern1454 (rtx x1, int i1, machine_mode i2)
5357 : {
5358 299874 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5359 299874 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5360 299874 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
5361 299874 : rtx x18, x19, x20, x21, x22;
5362 299874 : int res ATTRIBUTE_UNUSED;
5363 299874 : x2 = XVECEXP (x1, 0, 2);
5364 299874 : x3 = XEXP (x2, 1);
5365 299874 : switch (GET_CODE (x3))
5366 : {
5367 174508 : case PLUS:
5368 174508 : x4 = XEXP (x3, 0);
5369 174508 : if (GET_CODE (x4) != ASHIFT)
5370 : return -1;
5371 146889 : x5 = XEXP (x4, 1);
5372 146889 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
5373 : return -1;
5374 146889 : x6 = XVECEXP (x1, 0, 3);
5375 146889 : if (GET_CODE (x6) != SET)
5376 : return -1;
5377 146889 : x7 = XEXP (x6, 1);
5378 146889 : if (GET_CODE (x7) != MEM
5379 146889 : || GET_MODE (x7) != E_BLKmode)
5380 : return -1;
5381 146889 : x8 = XEXP (x6, 0);
5382 146889 : if (GET_CODE (x8) != MEM
5383 146889 : || GET_MODE (x8) != E_BLKmode)
5384 : return -1;
5385 146889 : x9 = XVECEXP (x1, 0, 0);
5386 146889 : x10 = XEXP (x9, 0);
5387 146889 : operands[2] = x10;
5388 146889 : x11 = XVECEXP (x1, 0, 1);
5389 146889 : x12 = XEXP (x11, 1);
5390 146889 : x13 = XEXP (x12, 0);
5391 146889 : x14 = XEXP (x13, 0);
5392 146889 : operands[5] = x14;
5393 146889 : x15 = XEXP (x2, 0);
5394 146889 : operands[1] = x15;
5395 146889 : x16 = XEXP (x3, 1);
5396 146889 : operands[4] = x16;
5397 146889 : x17 = XEXP (x4, 0);
5398 146889 : if (!rtx_equal_p (x17, operands[5]))
5399 : return -1;
5400 146889 : x18 = XEXP (x7, 0);
5401 146889 : if (!rtx_equal_p (x18, operands[4]))
5402 : return -1;
5403 146652 : x19 = XEXP (x8, 0);
5404 146652 : if (!rtx_equal_p (x19, operands[3]))
5405 : return -1;
5406 146567 : x20 = XVECEXP (x1, 0, 4);
5407 146567 : x21 = XEXP (x20, 0);
5408 146567 : if (!rtx_equal_p (x21, operands[5]))
5409 : return -1;
5410 146466 : switch (GET_MODE (operands[2]))
5411 : {
5412 3594 : case E_SImode:
5413 3594 : return pattern1452 (x1,
5414 3594 : E_SImode); /* [-1, 0] */
5415 :
5416 142872 : case E_DImode:
5417 142872 : if (pattern1452 (x1,
5418 : E_DImode) != 0)
5419 : return -1;
5420 : return 1;
5421 :
5422 : default:
5423 : return -1;
5424 : }
5425 :
5426 115323 : case CONST_INT:
5427 115323 : if (XWINT (x3, 0) != 0L)
5428 : return -1;
5429 115321 : x15 = XEXP (x2, 0);
5430 115321 : if (GET_CODE (x15) != MEM
5431 115321 : || GET_MODE (x15) != E_BLKmode)
5432 : return -1;
5433 115321 : x6 = XVECEXP (x1, 0, 3);
5434 115321 : if (GET_CODE (x6) != USE)
5435 : return -1;
5436 115321 : x9 = XVECEXP (x1, 0, 0);
5437 115321 : x10 = XEXP (x9, 0);
5438 115321 : operands[1] = x10;
5439 115321 : x11 = XVECEXP (x1, 0, 1);
5440 115321 : x12 = XEXP (x11, 1);
5441 115321 : x13 = XEXP (x12, 0);
5442 115321 : x14 = XEXP (x13, 0);
5443 115321 : operands[4] = x14;
5444 115321 : x8 = XEXP (x6, 0);
5445 115321 : operands[2] = x8;
5446 115321 : if (!register_operand (operands[2], i2))
5447 : return -1;
5448 82924 : x22 = XEXP (x15, 0);
5449 82924 : if (!rtx_equal_p (x22, operands[3]))
5450 : return -1;
5451 82693 : x20 = XVECEXP (x1, 0, 4);
5452 82693 : x21 = XEXP (x20, 0);
5453 82693 : if (!rtx_equal_p (x21, operands[4]))
5454 : return -1;
5455 82693 : switch (GET_MODE (operands[1]))
5456 : {
5457 1478 : case E_SImode:
5458 1478 : if (pattern1453 (x12,
5459 : E_SImode) != 0)
5460 : return -1;
5461 : return 2;
5462 :
5463 81215 : case E_DImode:
5464 81215 : if (pattern1453 (x12,
5465 : E_DImode) != 0)
5466 : return -1;
5467 : return 3;
5468 :
5469 : default:
5470 : return -1;
5471 : }
5472 :
5473 : default:
5474 : return -1;
5475 : }
5476 : }
5477 :
5478 : int
5479 372 : pattern1502 (rtx x1, machine_mode i1)
5480 : {
5481 372 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5482 372 : rtx x2, x3, x4, x5, x6, x7, x8;
5483 372 : int res ATTRIBUTE_UNUSED;
5484 372 : x2 = XVECEXP (x1, 0, 0);
5485 372 : x3 = XEXP (x2, 1);
5486 372 : x4 = XEXP (x3, 0);
5487 372 : x5 = XEXP (x4, 0);
5488 372 : if (GET_MODE (x5) != i1
5489 372 : || !nonimmediate_operand (operands[1], i1)
5490 744 : || !register_operand (operands[0], i1))
5491 0 : return -1;
5492 372 : x6 = XVECEXP (x1, 0, 1);
5493 372 : x7 = XEXP (x6, 1);
5494 372 : if (GET_MODE (x7) != i1)
5495 : return -1;
5496 372 : x8 = XEXP (x7, 0);
5497 372 : if (GET_MODE (x8) != i1)
5498 : return -1;
5499 : return 0;
5500 : }
5501 :
5502 : int
5503 0 : pattern1508 (rtx x1, rtx_code i1)
5504 : {
5505 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5506 0 : rtx x2, x3, x4, x5, x6, x7, x8;
5507 0 : int res ATTRIBUTE_UNUSED;
5508 0 : x2 = XEXP (x1, 0);
5509 0 : x3 = XEXP (x2, 0);
5510 0 : x4 = XEXP (x3, 1);
5511 0 : if (GET_CODE (x4) != i1)
5512 : return -1;
5513 0 : x5 = XEXP (x3, 0);
5514 0 : x6 = XEXP (x5, 0);
5515 0 : operands[1] = x6;
5516 0 : x7 = XEXP (x4, 0);
5517 0 : operands[2] = x7;
5518 0 : x8 = XEXP (x2, 1);
5519 0 : switch (XWINT (x8, 0))
5520 : {
5521 0 : case 64L:
5522 0 : return pattern1507 (x1,
5523 : E_DImode,
5524 0 : E_TImode); /* [-1, 0] */
5525 :
5526 0 : case 32L:
5527 0 : if (pattern1507 (x1,
5528 : E_SImode,
5529 : E_DImode) != 0)
5530 : return -1;
5531 : return 1;
5532 :
5533 : default:
5534 : return -1;
5535 : }
5536 : }
5537 :
5538 : int
5539 2294 : pattern1520 ()
5540 : {
5541 2294 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5542 2294 : int res ATTRIBUTE_UNUSED;
5543 2294 : switch (GET_MODE (operands[1]))
5544 : {
5545 190 : case E_V8HFmode:
5546 190 : if (!register_operand (operands[1], E_V8HFmode)
5547 190 : || !nonimmediate_operand (operands[2], E_V8HFmode))
5548 14 : return -1;
5549 : return 0;
5550 :
5551 1052 : case E_V4SFmode:
5552 1052 : if (!register_operand (operands[1], E_V4SFmode)
5553 1052 : || !nonimmediate_operand (operands[2], E_V4SFmode))
5554 3 : return -1;
5555 : return 1;
5556 :
5557 1052 : case E_V2DFmode:
5558 1052 : if (!register_operand (operands[1], E_V2DFmode)
5559 1052 : || !nonimmediate_operand (operands[2], E_V2DFmode))
5560 3 : return -1;
5561 : return 2;
5562 :
5563 : default:
5564 : return -1;
5565 : }
5566 : }
5567 :
5568 : int
5569 855269 : pattern1531 (rtx x1, machine_mode i1, machine_mode i2)
5570 : {
5571 855269 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5572 855269 : rtx x2;
5573 855269 : int res ATTRIBUTE_UNUSED;
5574 855269 : if (!register_operand (operands[0], i1)
5575 855269 : || GET_MODE (x1) != i1)
5576 : return -1;
5577 798922 : x2 = XEXP (x1, 0);
5578 798922 : if (GET_MODE (x2) != i2
5579 798268 : || !register_operand (operands[1], i1)
5580 707020 : || !vector_operand (operands[2], i1)
5581 1472360 : || pattern1530 () != 0)
5582 374437 : return -1;
5583 : return 0;
5584 : }
5585 :
5586 : int
5587 68 : pattern1539 (rtx x1)
5588 : {
5589 68 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5590 68 : rtx x2, x3, x4, x5, x6;
5591 68 : int res ATTRIBUTE_UNUSED;
5592 68 : if (!register_operand (operands[0], E_QImode)
5593 68 : || GET_MODE (x1) != E_QImode)
5594 : return -1;
5595 68 : x2 = XEXP (x1, 0);
5596 68 : if (GET_MODE (x2) != E_QImode)
5597 : return -1;
5598 68 : x3 = XEXP (x2, 0);
5599 68 : x4 = XEXP (x3, 0);
5600 68 : x5 = XEXP (x4, 0);
5601 68 : operands[1] = x5;
5602 68 : x6 = XEXP (x4, 1);
5603 68 : operands[2] = x6;
5604 68 : if (!register_operand (operands[2], E_QImode))
5605 : return -1;
5606 56 : switch (GET_MODE (x4))
5607 : {
5608 31 : case E_SImode:
5609 31 : if (!register_operand (operands[1], E_SImode))
5610 : return -1;
5611 : return 0;
5612 :
5613 25 : case E_DImode:
5614 25 : if (!register_operand (operands[1], E_DImode))
5615 : return -1;
5616 : return 1;
5617 :
5618 : default:
5619 : return -1;
5620 : }
5621 : }
5622 :
5623 : int
5624 165 : pattern1552 (rtx x1, machine_mode i1)
5625 : {
5626 165 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5627 165 : rtx x2, x3;
5628 165 : int res ATTRIBUTE_UNUSED;
5629 165 : if (!register_operand (operands[0], i1)
5630 165 : || GET_MODE (x1) != i1)
5631 : return -1;
5632 151 : x2 = XEXP (x1, 0);
5633 151 : if (GET_MODE (x2) != i1)
5634 : return -1;
5635 151 : x3 = XEXP (x2, 0);
5636 151 : if (GET_MODE (x3) != i1
5637 151 : || !nonimmediate_operand (operands[1], i1)
5638 151 : || !nonimmediate_operand (operands[2], i1)
5639 151 : || !nonimmediate_operand (operands[3], i1)
5640 302 : || !const0_operand (operands[4], i1))
5641 0 : return -1;
5642 : return 0;
5643 : }
5644 :
5645 : int
5646 973 : pattern1561 (rtx x1, machine_mode i1, machine_mode i2)
5647 : {
5648 973 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5649 973 : rtx x2, x3;
5650 973 : int res ATTRIBUTE_UNUSED;
5651 973 : if (!register_operand (operands[0], i1)
5652 973 : || GET_MODE (x1) != i1)
5653 : return -1;
5654 915 : x2 = XVECEXP (x1, 0, 0);
5655 915 : if (GET_MODE (x2) != i1)
5656 : return -1;
5657 915 : x3 = XEXP (x2, 0);
5658 915 : if (GET_MODE (x3) != i1
5659 915 : || !register_operand (operands[1], i1)
5660 907 : || !nonimm_or_0_operand (operands[3], i1)
5661 1810 : || !register_operand (operands[4], i2))
5662 53 : return -1;
5663 : return 0;
5664 : }
5665 :
5666 : int
5667 6895 : pattern1569 (rtx x1)
5668 : {
5669 6895 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5670 6895 : rtx x2, x3;
5671 6895 : int res ATTRIBUTE_UNUSED;
5672 6895 : if (!register_operand (operands[0], E_V4SFmode)
5673 6895 : || GET_MODE (x1) != E_V4SFmode)
5674 : return -1;
5675 3758 : x2 = XEXP (x1, 0);
5676 3758 : if (GET_MODE (x2) != E_V8SFmode
5677 3758 : || !vector_operand (operands[1], E_V4SFmode))
5678 84 : return -1;
5679 3674 : x3 = XEXP (x2, 1);
5680 3674 : if (!rtx_equal_p (x3, operands[1]))
5681 : return -1;
5682 : return 0;
5683 : }
5684 :
5685 : int
5686 25373 : pattern1579 (rtx x1)
5687 : {
5688 25373 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5689 25373 : int res ATTRIBUTE_UNUSED;
5690 25373 : switch (GET_MODE (operands[0]))
5691 : {
5692 21067 : case E_SImode:
5693 21067 : if (!register_operand (operands[0], E_SImode)
5694 21067 : || GET_MODE (x1) != E_SImode)
5695 : return -1;
5696 : return 0;
5697 :
5698 4306 : case E_DImode:
5699 4306 : if (!register_operand (operands[0], E_DImode)
5700 4306 : || GET_MODE (x1) != E_DImode)
5701 : return -1;
5702 : return 1;
5703 :
5704 : default:
5705 : return -1;
5706 : }
5707 : }
5708 :
5709 : int
5710 704 : pattern1587 (rtx x1, machine_mode i1)
5711 : {
5712 704 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5713 704 : rtx x2;
5714 704 : int res ATTRIBUTE_UNUSED;
5715 704 : if (!register_operand (operands[0], i1)
5716 704 : || GET_MODE (x1) != i1
5717 1408 : || !register_operand (operands[2], i1))
5718 0 : return -1;
5719 704 : x2 = XEXP (x1, 1);
5720 704 : if (GET_MODE (x2) != i1
5721 704 : || !nonimmediate_operand (operands[3], i1))
5722 495 : return -1;
5723 : return 0;
5724 : }
5725 :
5726 : int
5727 1852 : pattern1591 (rtx x1, machine_mode i1, machine_mode i2)
5728 : {
5729 1852 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5730 1852 : rtx x2;
5731 1852 : int res ATTRIBUTE_UNUSED;
5732 1852 : if (!register_operand (operands[1], i2)
5733 1852 : || GET_MODE (x1) != i1)
5734 : return -1;
5735 1852 : x2 = XEXP (x1, 0);
5736 1852 : if (GET_MODE (x2) != i1
5737 1852 : || !x86_64_dwzext_immediate_operand (operands[2], i1))
5738 1552 : return -1;
5739 : return 0;
5740 : }
5741 :
5742 : int
5743 1015 : pattern1599 (rtx x1, machine_mode i1, machine_mode i2)
5744 : {
5745 1015 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5746 1015 : rtx x2, x3, x4;
5747 1015 : int res ATTRIBUTE_UNUSED;
5748 1015 : if (!register_operand (operands[0], i1)
5749 1015 : || GET_MODE (x1) != i1)
5750 : return -1;
5751 980 : x2 = XVECEXP (x1, 0, 0);
5752 980 : if (GET_MODE (x2) != i1)
5753 : return -1;
5754 980 : x3 = XEXP (x2, 0);
5755 980 : if (GET_MODE (x3) != i1
5756 980 : || !nonimmediate_operand (operands[1], i1)
5757 1960 : || !register_operand (operands[2], i1))
5758 14 : return -1;
5759 966 : x4 = XVECEXP (x3, 0, 2);
5760 966 : if (GET_MODE (x4) != i1
5761 966 : || !register_operand (operands[4], i2))
5762 10 : return -1;
5763 : return 0;
5764 : }
5765 :
5766 : int
5767 1223 : pattern1609 (rtx x1, machine_mode i1, machine_mode i2)
5768 : {
5769 1223 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5770 1223 : rtx x2, x3, x4;
5771 1223 : int res ATTRIBUTE_UNUSED;
5772 1223 : if (!register_operand (operands[0], i2)
5773 1223 : || GET_MODE (x1) != i2)
5774 : return -1;
5775 1200 : x2 = XVECEXP (x1, 0, 0);
5776 1200 : if (GET_MODE (x2) != i2)
5777 : return -1;
5778 1200 : x3 = XEXP (x2, 0);
5779 1200 : if (GET_MODE (x3) != i2)
5780 : return -1;
5781 1200 : x4 = XEXP (x3, 0);
5782 1200 : if (GET_MODE (x4) != i2
5783 1200 : || !register_operand (operands[2], i2)
5784 2390 : || !register_operand (operands[4], i1))
5785 10 : return -1;
5786 : return 0;
5787 : }
5788 :
5789 : int
5790 156 : pattern1617 (machine_mode i1)
5791 : {
5792 156 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5793 156 : int res ATTRIBUTE_UNUSED;
5794 156 : if (!vsib_address_operand (operands[0], i1))
5795 : return -1;
5796 122 : switch (GET_MODE (operands[2]))
5797 : {
5798 74 : case E_V4SImode:
5799 74 : if (!register_operand (operands[2], E_V4SImode))
5800 : return -1;
5801 : return 0;
5802 :
5803 48 : case E_V4DImode:
5804 48 : if (!register_operand (operands[2], E_V4DImode))
5805 : return -1;
5806 : return 1;
5807 :
5808 : default:
5809 : return -1;
5810 : }
5811 : }
5812 :
5813 : int
5814 29 : pattern1625 (machine_mode i1)
5815 : {
5816 29 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5817 29 : int res ATTRIBUTE_UNUSED;
5818 29 : if (!vsib_address_operand (operands[3], i1))
5819 : return -1;
5820 21 : switch (GET_MODE (operands[2]))
5821 : {
5822 5 : case E_V8SImode:
5823 5 : if (!register_operand (operands[2], E_V8SImode))
5824 : return -1;
5825 : return 0;
5826 :
5827 16 : case E_V4DImode:
5828 16 : if (!register_operand (operands[2], E_V4DImode))
5829 : return -1;
5830 : return 1;
5831 :
5832 : default:
5833 : return -1;
5834 : }
5835 : }
5836 :
5837 : int
5838 1494 : pattern1632 (rtx x1, machine_mode i1)
5839 : {
5840 1494 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5841 1494 : int res ATTRIBUTE_UNUSED;
5842 1494 : if (!register_operand (operands[0], i1)
5843 1481 : || GET_MODE (x1) != i1
5844 1481 : || !register_operand (operands[1], i1)
5845 1463 : || !const_0_to_7_operand (operands[2], E_VOIDmode)
5846 1463 : || !const_0_to_7_operand (operands[3], E_VOIDmode)
5847 1463 : || !const_0_to_7_operand (operands[4], E_VOIDmode)
5848 1463 : || !const_0_to_7_operand (operands[5], E_VOIDmode)
5849 1463 : || !const_0_to_7_operand (operands[6], E_VOIDmode)
5850 1463 : || !const_0_to_7_operand (operands[7], E_VOIDmode)
5851 1463 : || !const_0_to_7_operand (operands[8], E_VOIDmode)
5852 2957 : || !const_0_to_7_operand (operands[9], E_VOIDmode))
5853 31 : return -1;
5854 : return 0;
5855 : }
5856 :
5857 : int
5858 1550 : pattern1647 (rtx x1, machine_mode i1)
5859 : {
5860 1550 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5861 1550 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5862 1550 : rtx x10, x11, x12, x13, x14, x15, x16;
5863 1550 : int res ATTRIBUTE_UNUSED;
5864 1550 : x2 = XVECEXP (x1, 0, 0);
5865 1550 : x3 = XEXP (x2, 1);
5866 1550 : if (GET_MODE (x3) != E_SImode)
5867 : return -1;
5868 596 : x4 = XVECEXP (x1, 0, 1);
5869 596 : if (GET_CODE (x4) != CLOBBER)
5870 : return -1;
5871 596 : x5 = XEXP (x4, 0);
5872 596 : if (GET_CODE (x5) != REG
5873 596 : || REGNO (x5) != 17
5874 1192 : || GET_MODE (x5) != E_CCmode)
5875 : return -1;
5876 596 : x6 = XEXP (x2, 0);
5877 596 : operands[4] = x6;
5878 596 : if (!register_operand (operands[4], E_SImode))
5879 : return -1;
5880 596 : x7 = XEXP (x3, 0);
5881 596 : operands[3] = x7;
5882 596 : if (!register_operand (operands[3], E_SImode))
5883 : return -1;
5884 596 : x8 = XEXP (x3, 1);
5885 596 : operands[2] = x8;
5886 596 : if (!nonmemory_operand (operands[2], E_SImode))
5887 : return -1;
5888 589 : x9 = PATTERN (peep2_next_insn (2));
5889 589 : x10 = XEXP (x9, 1);
5890 589 : operands[5] = x10;
5891 589 : if (!register_operand (operands[5], i1))
5892 : return -1;
5893 99 : x11 = XEXP (x9, 0);
5894 99 : if (!rtx_equal_p (x11, operands[1]))
5895 : return -1;
5896 12 : x12 = PATTERN (peep2_next_insn (3));
5897 12 : if (GET_CODE (x12) != SET)
5898 : return -1;
5899 12 : x13 = XEXP (x12, 1);
5900 12 : if (GET_CODE (x13) != COMPARE
5901 4 : || GET_MODE (x13) != E_CCZmode)
5902 : return -1;
5903 4 : x14 = XEXP (x12, 0);
5904 4 : if (GET_CODE (x14) != REG
5905 4 : || REGNO (x14) != 17
5906 8 : || GET_MODE (x14) != E_CCZmode)
5907 : return -1;
5908 4 : x15 = XEXP (x13, 0);
5909 4 : operands[6] = x15;
5910 4 : if (!register_operand (operands[6], i1))
5911 : return -1;
5912 4 : x16 = XEXP (x13, 1);
5913 4 : operands[7] = x16;
5914 4 : if (!nonmemory_operand (operands[7], i1))
5915 : return -1;
5916 : return 0;
5917 : }
5918 :
5919 : int
5920 141 : pattern1670 (machine_mode i1)
5921 : {
5922 141 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5923 141 : int res ATTRIBUTE_UNUSED;
5924 141 : if (!vsib_address_operand (operands[4], i1))
5925 : return -1;
5926 141 : switch (GET_MODE (operands[3]))
5927 : {
5928 93 : case E_V8SImode:
5929 93 : if (!register_operand (operands[3], E_V8SImode))
5930 : return -1;
5931 : return 0;
5932 :
5933 48 : case E_V8DImode:
5934 48 : if (!register_operand (operands[3], E_V8DImode))
5935 : return -1;
5936 : return 1;
5937 :
5938 : default:
5939 : return -1;
5940 : }
5941 : }
5942 :
5943 : int
5944 898 : pattern1679 (rtx x1, machine_mode i1)
5945 : {
5946 898 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5947 898 : rtx x2, x3, x4, x5;
5948 898 : int res ATTRIBUTE_UNUSED;
5949 898 : if (!register_operand (operands[0], i1))
5950 : return -1;
5951 898 : x2 = XVECEXP (x1, 0, 0);
5952 898 : x3 = XEXP (x2, 1);
5953 898 : if (GET_MODE (x3) != i1)
5954 : return -1;
5955 898 : x4 = XVECEXP (x1, 0, 1);
5956 898 : if (GET_MODE (x4) != i1)
5957 : return -1;
5958 898 : x5 = XVECEXP (x4, 0, 0);
5959 898 : if (GET_MODE (x5) != i1
5960 898 : || !register_operand (operands[3], i1))
5961 0 : return -1;
5962 : return 0;
5963 : }
5964 :
5965 : int
5966 1279 : pattern1689 (machine_mode i1)
5967 : {
5968 1279 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5969 1279 : int res ATTRIBUTE_UNUSED;
5970 1279 : if (!register_operand (operands[1], i1)
5971 477 : || !const_0_to_15_operand (operands[2], E_VOIDmode)
5972 477 : || !const_0_to_15_operand (operands[3], E_VOIDmode)
5973 477 : || !const_0_to_15_operand (operands[4], E_VOIDmode)
5974 1756 : || !const_0_to_15_operand (operands[5], E_VOIDmode))
5975 802 : return -1;
5976 : return 0;
5977 : }
5978 :
5979 : int
5980 2 : pattern1698 (rtx x1, machine_mode i1)
5981 : {
5982 2 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5983 2 : rtx x2, x3, x4;
5984 2 : int res ATTRIBUTE_UNUSED;
5985 2 : if (!register_operand (operands[0], i1)
5986 2 : || GET_MODE (x1) != i1)
5987 : return -1;
5988 2 : x2 = XEXP (x1, 0);
5989 2 : if (GET_MODE (x2) != i1
5990 2 : || !nonimmediate_operand (operands[1], i1))
5991 0 : return -1;
5992 2 : x3 = XEXP (x1, 1);
5993 2 : if (GET_MODE (x3) != i1)
5994 : return -1;
5995 2 : x4 = XEXP (x3, 0);
5996 2 : if (GET_MODE (x4) != i1)
5997 : return -1;
5998 : return 0;
5999 : }
6000 :
6001 : int
6002 509 : pattern1707 (rtx x1, machine_mode i1)
6003 : {
6004 509 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6005 509 : int res ATTRIBUTE_UNUSED;
6006 509 : if (!register_operand (operands[1], i1))
6007 : return -1;
6008 225 : switch (GET_MODE (x1))
6009 : {
6010 0 : case E_HImode:
6011 0 : if (!register_operand (operands[2], E_HImode))
6012 : return -1;
6013 : return 0;
6014 :
6015 205 : case E_SImode:
6016 205 : if (!register_operand (operands[2], E_SImode))
6017 : return -1;
6018 : return 1;
6019 :
6020 20 : case E_DImode:
6021 20 : if (!register_operand (operands[2], E_DImode))
6022 : return -1;
6023 : return 2;
6024 :
6025 : default:
6026 : return -1;
6027 : }
6028 : }
6029 :
6030 : int
6031 36 : pattern1716 (rtx x1, machine_mode i1)
6032 : {
6033 36 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6034 36 : rtx x2, x3, x4, x5, x6, x7, x8;
6035 36 : int res ATTRIBUTE_UNUSED;
6036 36 : x2 = XEXP (x1, 0);
6037 36 : x3 = XEXP (x2, 0);
6038 36 : x4 = XEXP (x3, 0);
6039 36 : x5 = XEXP (x4, 0);
6040 36 : operands[1] = x5;
6041 36 : x6 = XEXP (x3, 2);
6042 36 : if (GET_MODE (x6) != i1
6043 36 : || !nonimmediate_operand (operands[3], i1))
6044 0 : return -1;
6045 36 : x7 = XEXP (x2, 1);
6046 36 : if (!rtx_equal_p (x7, operands[1]))
6047 : return -1;
6048 12 : x8 = XEXP (x1, 1);
6049 12 : if (!rtx_equal_p (x8, operands[1]))
6050 : return -1;
6051 : return 0;
6052 : }
6053 :
6054 : int
6055 215 : pattern1722 (machine_mode i1)
6056 : {
6057 215 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6058 215 : int res ATTRIBUTE_UNUSED;
6059 215 : if (!vsib_address_operand (operands[2], i1))
6060 : return -1;
6061 165 : switch (GET_MODE (operands[3]))
6062 : {
6063 66 : case E_V4SImode:
6064 66 : if (!register_operand (operands[3], E_V4SImode))
6065 : return -1;
6066 : return 0;
6067 :
6068 99 : case E_V2DImode:
6069 99 : if (!register_operand (operands[3], E_V2DImode))
6070 : return -1;
6071 : return 1;
6072 :
6073 : default:
6074 : return -1;
6075 : }
6076 : }
6077 :
6078 : int
6079 1110 : pattern1729 (machine_mode i1)
6080 : {
6081 1110 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6082 1110 : int res ATTRIBUTE_UNUSED;
6083 1110 : if (!vsib_address_operand (operands[0], i1))
6084 : return -1;
6085 1068 : switch (GET_MODE (operands[2]))
6086 : {
6087 615 : case E_V8SImode:
6088 615 : if (!register_operand (operands[2], E_V8SImode))
6089 : return -1;
6090 : return 0;
6091 :
6092 453 : case E_V8DImode:
6093 453 : if (!register_operand (operands[2], E_V8DImode))
6094 : return -1;
6095 : return 1;
6096 :
6097 : default:
6098 : return -1;
6099 : }
6100 : }
6101 :
6102 : int
6103 1443 : pattern1739 (rtx x1, machine_mode i1, machine_mode i2)
6104 : {
6105 1443 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6106 1443 : rtx x2, x3;
6107 1443 : int res ATTRIBUTE_UNUSED;
6108 1443 : if (!register_operand (operands[0], i2)
6109 1415 : || GET_MODE (x1) != i2
6110 1415 : || !register_operand (operands[6], E_QImode)
6111 855 : || !vsib_mem_operator (operands[5], i1)
6112 2298 : || !scratch_operand (operands[1], E_QImode))
6113 588 : return -1;
6114 855 : x2 = XVECEXP (x1, 0, 2);
6115 855 : x3 = XEXP (x2, 0);
6116 855 : switch (GET_MODE (x3))
6117 : {
6118 0 : case E_SImode:
6119 0 : return pattern1738 (
6120 0 : E_SImode); /* [-1, 1] */
6121 :
6122 855 : case E_DImode:
6123 855 : res = pattern1738 (
6124 : E_DImode);
6125 855 : if (res >= 0)
6126 776 : return res + 2; /* [2, 3] */
6127 : return -1;
6128 :
6129 : default:
6130 : return -1;
6131 : }
6132 : }
6133 :
6134 : int
6135 13976 : pattern1750 (rtx x1, machine_mode i1)
6136 : {
6137 13976 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6138 13976 : rtx x2, x3, x4, x5;
6139 13976 : int res ATTRIBUTE_UNUSED;
6140 13976 : if (!register_operand (operands[0], i1))
6141 : return -1;
6142 13976 : x2 = XVECEXP (x1, 0, 0);
6143 13976 : x3 = XEXP (x2, 1);
6144 13976 : if (GET_MODE (x3) != i1)
6145 : return -1;
6146 13976 : x4 = XVECEXP (x1, 0, 1);
6147 13976 : if (GET_MODE (x4) != i1)
6148 : return -1;
6149 13976 : x5 = XVECEXP (x4, 0, 1);
6150 13976 : if (GET_MODE (x5) != i1
6151 13976 : || !register_operand (operands[4], i1))
6152 0 : return -1;
6153 : return 0;
6154 : }
6155 :
6156 : int
6157 81 : pattern1758 (rtx x1, machine_mode i1)
6158 : {
6159 81 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6160 81 : rtx x2, x3, x4, x5, x6;
6161 81 : int res ATTRIBUTE_UNUSED;
6162 81 : if (!register_operand (operands[0], i1)
6163 81 : || GET_MODE (x1) != i1)
6164 : return -1;
6165 78 : x2 = XVECEXP (x1, 0, 0);
6166 78 : if (GET_MODE (x2) != i1)
6167 : return -1;
6168 78 : x3 = XEXP (x2, 0);
6169 78 : if (GET_MODE (x3) != i1)
6170 : return -1;
6171 78 : x4 = XEXP (x3, 0);
6172 78 : if (GET_MODE (x4) != i1)
6173 : return -1;
6174 78 : x5 = XEXP (x4, 0);
6175 78 : if (GET_MODE (x5) != i1
6176 78 : || !register_operand (operands[2], i1)
6177 156 : || !nonimmediate_operand (operands[1], i1))
6178 0 : return -1;
6179 78 : x6 = XEXP (x4, 2);
6180 78 : if (GET_MODE (x6) != i1
6181 78 : || !register_operand (operands[3], i1)
6182 156 : || !const0_operand (operands[4], i1))
6183 0 : return -1;
6184 : return 0;
6185 : }
6186 :
6187 : int
6188 580 : pattern1767 (rtx x1, machine_mode i1, machine_mode i2)
6189 : {
6190 580 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6191 580 : int res ATTRIBUTE_UNUSED;
6192 580 : if (!register_operand (operands[0], i2)
6193 580 : || GET_MODE (x1) != i2
6194 580 : || !register_operand (operands[7], E_QImode)
6195 580 : || !vsib_mem_operator (operands[6], i1)
6196 1160 : || !scratch_operand (operands[2], E_QImode))
6197 0 : return -1;
6198 : return 0;
6199 : }
6200 :
6201 : int
6202 62 : pattern1774 (rtx x1, machine_mode i1)
6203 : {
6204 62 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6205 62 : int res ATTRIBUTE_UNUSED;
6206 62 : if (!nonimmediate_operand (operands[1], i1)
6207 62 : || !ix86_carry_flag_operator (operands[2], i1)
6208 62 : || !nonimmediate_operand (operands[0], i1)
6209 124 : || GET_MODE (x1) != i1)
6210 0 : return -1;
6211 : return 0;
6212 : }
6213 :
6214 : int
6215 792 : pattern1782 (rtx x1, machine_mode i1, machine_mode i2)
6216 : {
6217 792 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6218 792 : rtx x2;
6219 792 : int res ATTRIBUTE_UNUSED;
6220 792 : if (!register_operand (operands[1], i1)
6221 792 : || GET_MODE (x1) != i2)
6222 : return -1;
6223 792 : x2 = XEXP (x1, 0);
6224 792 : if (GET_MODE (x2) != i2
6225 792 : || !x86_64_dwzext_immediate_operand (operands[2], i2)
6226 864 : || !scratch_operand (operands[0], i1))
6227 720 : return -1;
6228 : return 0;
6229 : }
6230 :
6231 : int
6232 878 : pattern1789 (rtx x1, machine_mode i1, machine_mode i2)
6233 : {
6234 878 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6235 878 : rtx x2, x3, x4, x5;
6236 878 : int res ATTRIBUTE_UNUSED;
6237 878 : if (!register_operand (operands[0], i1)
6238 878 : || GET_MODE (x1) != i1)
6239 : return -1;
6240 864 : x2 = XVECEXP (x1, 0, 0);
6241 864 : if (GET_MODE (x2) != i1)
6242 : return -1;
6243 864 : x3 = XEXP (x2, 0);
6244 864 : if (GET_MODE (x3) != i1)
6245 : return -1;
6246 864 : x4 = XEXP (x3, 0);
6247 864 : if (GET_MODE (x4) != i1)
6248 : return -1;
6249 864 : x5 = XEXP (x4, 0);
6250 864 : if (GET_MODE (x5) != i2
6251 864 : || !nonimm_or_0_operand (operands[3], i1)
6252 1728 : || !register_operand (operands[2], i1))
6253 10 : return -1;
6254 : return 0;
6255 : }
6256 :
6257 : int
6258 1396 : pattern1798 (rtx x1, machine_mode i1, machine_mode i2)
6259 : {
6260 1396 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6261 1396 : rtx x2, x3;
6262 1396 : int res ATTRIBUTE_UNUSED;
6263 1396 : if (!register_operand (operands[0], i1)
6264 1381 : || GET_MODE (x1) != i1
6265 1381 : || !vsib_mem_operator (operands[6], i2)
6266 1381 : || !register_operand (operands[4], i1)
6267 2412 : || !scratch_operand (operands[1], i1))
6268 380 : return -1;
6269 1016 : x2 = XVECEXP (x1, 0, 1);
6270 1016 : x3 = XEXP (x2, 0);
6271 1016 : switch (GET_MODE (x3))
6272 : {
6273 52 : case E_SImode:
6274 52 : return pattern1797 (
6275 52 : E_SImode); /* [-1, 1] */
6276 :
6277 964 : case E_DImode:
6278 964 : res = pattern1797 (
6279 : E_DImode);
6280 964 : if (res >= 0)
6281 868 : return res + 2; /* [2, 3] */
6282 : return -1;
6283 :
6284 : default:
6285 : return -1;
6286 : }
6287 : }
6288 :
6289 : int
6290 298 : pattern1810 (rtx x1, machine_mode i1)
6291 : {
6292 298 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6293 298 : int res ATTRIBUTE_UNUSED;
6294 298 : if (!register_operand (operands[3], i1))
6295 : return -1;
6296 257 : switch (GET_MODE (x1))
6297 : {
6298 0 : case E_SImode:
6299 0 : if (!vsib_address_operand (operands[4], E_SImode))
6300 : return -1;
6301 : return 0;
6302 :
6303 257 : case E_DImode:
6304 257 : if (!vsib_address_operand (operands[4], E_DImode))
6305 : return -1;
6306 : return 1;
6307 :
6308 : default:
6309 : return -1;
6310 : }
6311 : }
6312 :
6313 : int
6314 1083 : pattern1816 (rtx x1, machine_mode i1, machine_mode i2)
6315 : {
6316 1083 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6317 1083 : rtx x2, x3;
6318 1083 : int res ATTRIBUTE_UNUSED;
6319 1083 : if (!register_operand (operands[0], i1)
6320 1075 : || GET_MODE (x1) != i1
6321 1075 : || !register_operand (operands[2], i1)
6322 1075 : || !vsib_mem_operator (operands[7], i2)
6323 1075 : || !register_operand (operands[5], i1)
6324 2103 : || !scratch_operand (operands[1], i1))
6325 63 : return -1;
6326 1020 : x2 = XVECEXP (x1, 0, 1);
6327 1020 : x3 = XEXP (x2, 0);
6328 1020 : switch (GET_MODE (x3))
6329 : {
6330 0 : case E_SImode:
6331 0 : return pattern1815 (
6332 0 : E_SImode); /* [-1, 1] */
6333 :
6334 1020 : case E_DImode:
6335 1020 : res = pattern1815 (
6336 : E_DImode);
6337 1020 : if (res >= 0)
6338 921 : return res + 2; /* [2, 3] */
6339 : return -1;
6340 :
6341 : default:
6342 : return -1;
6343 : }
6344 : }
6345 :
6346 : int
6347 15002 : pattern1828 (rtx x1, machine_mode i1, machine_mode i2)
6348 : {
6349 15002 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6350 15002 : rtx x2, x3, x4, x5, x6;
6351 15002 : int res ATTRIBUTE_UNUSED;
6352 15002 : x2 = XVECEXP (x1, 0, 0);
6353 15002 : x3 = XEXP (x2, 1);
6354 15002 : x4 = XEXP (x3, 0);
6355 15002 : x5 = XEXP (x4, 0);
6356 15002 : if (GET_MODE (x5) != i2
6357 15002 : || !nonimmediate_operand (operands[1], i1))
6358 136 : return -1;
6359 14866 : x6 = XEXP (x4, 1);
6360 14866 : if (GET_MODE (x6) != i2
6361 14866 : || !nonimmediate_operand (operands[2], i1)
6362 29696 : || pattern1826 (x1,
6363 : i1,
6364 : i2) != 0)
6365 36 : return -1;
6366 : return 0;
6367 : }
6368 :
6369 : int
6370 749 : pattern1838 (rtx x1, machine_mode i1)
6371 : {
6372 749 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6373 749 : rtx x2, x3, x4, x5, x6, x7;
6374 749 : int res ATTRIBUTE_UNUSED;
6375 749 : x2 = XEXP (x1, 0);
6376 749 : x3 = XEXP (x2, 0);
6377 749 : x4 = XEXP (x3, 0);
6378 749 : x5 = XEXP (x4, 0);
6379 749 : operands[1] = x5;
6380 749 : if (!nonimmediate_operand (operands[1], i1)
6381 749 : || !register_operand (operands[3], i1))
6382 10 : return -1;
6383 739 : x6 = XEXP (x2, 1);
6384 739 : if (!rtx_equal_p (x6, operands[1]))
6385 : return -1;
6386 326 : x7 = XEXP (x1, 1);
6387 326 : if (!rtx_equal_p (x7, operands[1]))
6388 : return -1;
6389 : return 0;
6390 : }
6391 :
6392 : int
6393 96 : pattern1845 (rtx x1, rtx_code i1)
6394 : {
6395 96 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6396 96 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6397 96 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
6398 96 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
6399 96 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
6400 96 : rtx x34, x35, x36, x37, x38, x39, x40, x41;
6401 96 : rtx x42, x43, x44, x45, x46, x47, x48, x49;
6402 96 : rtx x50, x51, x52, x53, x54, x55;
6403 96 : int res ATTRIBUTE_UNUSED;
6404 96 : x2 = XEXP (x1, 0);
6405 96 : x3 = XEXP (x2, 0);
6406 96 : x4 = XEXP (x3, 0);
6407 96 : x5 = XEXP (x4, 0);
6408 96 : if (GET_CODE (x5) != VEC_SELECT
6409 96 : || GET_MODE (x5) != E_V2QImode)
6410 : return -1;
6411 96 : x6 = XEXP (x5, 1);
6412 96 : if (GET_CODE (x6) != PARALLEL
6413 96 : || XVECLEN (x6, 0) != 2)
6414 : return -1;
6415 96 : x7 = XVECEXP (x6, 0, 0);
6416 96 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6417 : return -1;
6418 96 : x8 = XVECEXP (x6, 0, 1);
6419 96 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
6420 : return -1;
6421 96 : x9 = XEXP (x3, 1);
6422 96 : if (GET_CODE (x9) != i1)
6423 : return -1;
6424 96 : x10 = XEXP (x9, 0);
6425 96 : if (GET_CODE (x10) != VEC_SELECT
6426 96 : || GET_MODE (x10) != E_V2QImode)
6427 : return -1;
6428 96 : x11 = XEXP (x10, 1);
6429 96 : if (GET_CODE (x11) != PARALLEL
6430 96 : || XVECLEN (x11, 0) != 2)
6431 : return -1;
6432 96 : x12 = XVECEXP (x11, 0, 0);
6433 96 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
6434 : return -1;
6435 96 : x13 = XVECEXP (x11, 0, 1);
6436 96 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
6437 : return -1;
6438 96 : x14 = XEXP (x2, 1);
6439 96 : x15 = XEXP (x14, 0);
6440 96 : if (GET_CODE (x15) != i1)
6441 : return -1;
6442 96 : x16 = XEXP (x15, 0);
6443 96 : if (GET_CODE (x16) != VEC_SELECT
6444 96 : || GET_MODE (x16) != E_V2QImode)
6445 : return -1;
6446 96 : x17 = XEXP (x16, 1);
6447 96 : if (GET_CODE (x17) != PARALLEL
6448 96 : || XVECLEN (x17, 0) != 2)
6449 : return -1;
6450 96 : x18 = XVECEXP (x17, 0, 0);
6451 96 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
6452 : return -1;
6453 96 : x19 = XVECEXP (x17, 0, 1);
6454 96 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
6455 : return -1;
6456 96 : x20 = XEXP (x14, 1);
6457 96 : if (GET_CODE (x20) != i1)
6458 : return -1;
6459 96 : x21 = XEXP (x20, 0);
6460 96 : if (GET_CODE (x21) != VEC_SELECT
6461 96 : || GET_MODE (x21) != E_V2QImode)
6462 : return -1;
6463 96 : x22 = XEXP (x21, 1);
6464 96 : if (GET_CODE (x22) != PARALLEL
6465 96 : || XVECLEN (x22, 0) != 2)
6466 : return -1;
6467 96 : x23 = XVECEXP (x22, 0, 0);
6468 96 : if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
6469 : return -1;
6470 96 : x24 = XVECEXP (x22, 0, 1);
6471 96 : if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 11])
6472 : return -1;
6473 96 : x25 = XEXP (x1, 1);
6474 96 : x26 = XEXP (x25, 0);
6475 96 : x27 = XEXP (x26, 0);
6476 96 : if (GET_CODE (x27) != i1)
6477 : return -1;
6478 96 : x28 = XEXP (x27, 0);
6479 96 : if (GET_CODE (x28) != VEC_SELECT
6480 96 : || GET_MODE (x28) != E_V2QImode)
6481 : return -1;
6482 96 : x29 = XEXP (x28, 1);
6483 96 : if (GET_CODE (x29) != PARALLEL
6484 96 : || XVECLEN (x29, 0) != 2)
6485 : return -1;
6486 96 : x30 = XVECEXP (x29, 0, 0);
6487 96 : if (x30 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
6488 : return -1;
6489 96 : x31 = XVECEXP (x29, 0, 1);
6490 96 : if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
6491 : return -1;
6492 96 : x32 = XEXP (x26, 1);
6493 96 : if (GET_CODE (x32) != i1)
6494 : return -1;
6495 96 : x33 = XEXP (x32, 0);
6496 96 : if (GET_CODE (x33) != VEC_SELECT
6497 96 : || GET_MODE (x33) != E_V2QImode)
6498 : return -1;
6499 96 : x34 = XEXP (x33, 1);
6500 96 : if (GET_CODE (x34) != PARALLEL
6501 96 : || XVECLEN (x34, 0) != 2)
6502 : return -1;
6503 96 : x35 = XVECEXP (x34, 0, 0);
6504 96 : if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
6505 : return -1;
6506 96 : x36 = XVECEXP (x34, 0, 1);
6507 96 : if (x36 != const_int_rtx[MAX_SAVED_CONST_INT + 13])
6508 : return -1;
6509 96 : x37 = XEXP (x25, 1);
6510 96 : x38 = XEXP (x37, 0);
6511 96 : if (GET_CODE (x38) != i1)
6512 : return -1;
6513 96 : x39 = XEXP (x38, 0);
6514 96 : if (GET_CODE (x39) != VEC_SELECT
6515 96 : || GET_MODE (x39) != E_V2QImode)
6516 : return -1;
6517 96 : x40 = XEXP (x39, 1);
6518 96 : if (GET_CODE (x40) != PARALLEL
6519 96 : || XVECLEN (x40, 0) != 2)
6520 : return -1;
6521 96 : x41 = XVECEXP (x40, 0, 0);
6522 96 : if (x41 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
6523 : return -1;
6524 96 : x42 = XVECEXP (x40, 0, 1);
6525 96 : if (x42 != const_int_rtx[MAX_SAVED_CONST_INT + 14])
6526 : return -1;
6527 96 : x43 = XEXP (x37, 1);
6528 96 : if (GET_CODE (x43) != i1)
6529 : return -1;
6530 96 : x44 = XEXP (x43, 0);
6531 96 : if (GET_CODE (x44) != VEC_SELECT
6532 96 : || GET_MODE (x44) != E_V2QImode)
6533 : return -1;
6534 96 : x45 = XEXP (x44, 1);
6535 96 : if (GET_CODE (x45) != PARALLEL
6536 96 : || XVECLEN (x45, 0) != 2)
6537 : return -1;
6538 96 : x46 = XVECEXP (x45, 0, 0);
6539 96 : if (x46 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
6540 : return -1;
6541 96 : x47 = XVECEXP (x45, 0, 1);
6542 96 : if (x47 != const_int_rtx[MAX_SAVED_CONST_INT + 15])
6543 : return -1;
6544 96 : x48 = XEXP (x5, 0);
6545 96 : operands[1] = x48;
6546 96 : if (!nonimmediate_operand (operands[1], E_V16QImode))
6547 : return -1;
6548 96 : x49 = XEXP (x10, 0);
6549 96 : if (!rtx_equal_p (x49, operands[1]))
6550 : return -1;
6551 96 : x50 = XEXP (x16, 0);
6552 96 : if (!rtx_equal_p (x50, operands[1]))
6553 : return -1;
6554 96 : x51 = XEXP (x21, 0);
6555 96 : if (!rtx_equal_p (x51, operands[1]))
6556 : return -1;
6557 96 : x52 = XEXP (x28, 0);
6558 96 : if (!rtx_equal_p (x52, operands[1]))
6559 : return -1;
6560 96 : x53 = XEXP (x33, 0);
6561 96 : if (!rtx_equal_p (x53, operands[1]))
6562 : return -1;
6563 96 : x54 = XEXP (x39, 0);
6564 96 : if (!rtx_equal_p (x54, operands[1]))
6565 : return -1;
6566 96 : x55 = XEXP (x44, 0);
6567 96 : if (!rtx_equal_p (x55, operands[1]))
6568 : return -1;
6569 : return 0;
6570 : }
6571 :
6572 : int
6573 1108 : pattern1901 (rtx x1, machine_mode i1, machine_mode i2)
6574 : {
6575 1108 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6576 1108 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6577 1108 : int res ATTRIBUTE_UNUSED;
6578 1108 : x2 = XVECEXP (x1, 0, 0);
6579 1108 : x3 = XEXP (x2, 1);
6580 1108 : x4 = XEXP (x3, 1);
6581 1108 : if (GET_MODE (x4) != i2)
6582 : return -1;
6583 1108 : x5 = XEXP (x4, 0);
6584 1108 : if (GET_MODE (x5) != i1)
6585 : return -1;
6586 1108 : x6 = XEXP (x5, 0);
6587 1108 : if (GET_MODE (x6) != i1
6588 1108 : || !ix86_carry_flag_operator (operands[5], i1)
6589 2216 : || !nonimmediate_operand (operands[0], i1))
6590 0 : return -1;
6591 1108 : x7 = XVECEXP (x1, 0, 1);
6592 1108 : x8 = XEXP (x7, 1);
6593 1108 : if (GET_MODE (x8) != i1)
6594 : return -1;
6595 1108 : x9 = XEXP (x8, 0);
6596 1108 : if (GET_MODE (x9) != i1)
6597 : return -1;
6598 : return 0;
6599 : }
6600 :
6601 : int
6602 178 : pattern1909 (rtx x1, machine_mode i1, machine_mode i2)
6603 : {
6604 178 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6605 178 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6606 178 : rtx x10, x11;
6607 178 : int res ATTRIBUTE_UNUSED;
6608 178 : x2 = XVECEXP (x1, 0, 0);
6609 178 : x3 = XEXP (x2, 1);
6610 178 : x4 = XEXP (x3, 0);
6611 178 : x5 = XEXP (x4, 0);
6612 178 : if (GET_MODE (x5) != i2)
6613 : return -1;
6614 178 : x6 = XEXP (x5, 0);
6615 178 : if (GET_MODE (x6) != i2
6616 178 : || !nonimmediate_operand (operands[1], i1)
6617 178 : || !ix86_carry_flag_operator (operands[4], i2)
6618 356 : || !const_int_operand (operands[6], i2))
6619 0 : return -1;
6620 178 : x7 = XEXP (x3, 1);
6621 178 : if (GET_MODE (x7) != i2)
6622 : return -1;
6623 178 : x8 = XEXP (x7, 0);
6624 178 : if (GET_MODE (x8) != i1)
6625 : return -1;
6626 178 : x9 = XEXP (x8, 0);
6627 178 : if (GET_MODE (x9) != i1
6628 178 : || !ix86_carry_flag_operator (operands[5], i1))
6629 0 : return -1;
6630 178 : x10 = XVECEXP (x1, 0, 1);
6631 178 : x11 = XEXP (x10, 1);
6632 178 : return pattern1904 (x11,
6633 178 : i1); /* [-1, 0] */
6634 : }
6635 :
6636 : int
6637 5616 : pattern1919 (rtx x1)
6638 : {
6639 5616 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6640 5616 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6641 5616 : int res ATTRIBUTE_UNUSED;
6642 5616 : x2 = XVECEXP (x1, 0, 24);
6643 5616 : if (XWINT (x2, 0) != 28L)
6644 : return -1;
6645 5616 : x3 = XVECEXP (x1, 0, 25);
6646 5616 : if (XWINT (x3, 0) != 60L)
6647 : return -1;
6648 5616 : x4 = XVECEXP (x1, 0, 26);
6649 5616 : if (XWINT (x4, 0) != 29L)
6650 : return -1;
6651 5616 : x5 = XVECEXP (x1, 0, 27);
6652 5616 : if (XWINT (x5, 0) != 61L)
6653 : return -1;
6654 5616 : x6 = XVECEXP (x1, 0, 28);
6655 5616 : if (XWINT (x6, 0) != 30L)
6656 : return -1;
6657 5616 : x7 = XVECEXP (x1, 0, 29);
6658 5616 : if (XWINT (x7, 0) != 62L)
6659 : return -1;
6660 5616 : x8 = XVECEXP (x1, 0, 30);
6661 5616 : if (XWINT (x8, 0) != 31L)
6662 : return -1;
6663 5616 : x9 = XVECEXP (x1, 0, 31);
6664 5616 : if (XWINT (x9, 0) != 63L)
6665 0 : return -1;
6666 : return 0;
6667 : }
6668 :
6669 : int
6670 3182781 : recog_7 (rtx x1 ATTRIBUTE_UNUSED,
6671 : rtx_insn *insn ATTRIBUTE_UNUSED,
6672 : int *pnum_clobbers ATTRIBUTE_UNUSED)
6673 : {
6674 3182781 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6675 3182781 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6676 3182781 : rtx x10, x11, x12;
6677 3182781 : int res ATTRIBUTE_UNUSED;
6678 3182781 : if (pattern59 (x1,
6679 : E_CCFPmode) != 0)
6680 : return -1;
6681 3151595 : x2 = XEXP (x1, 1);
6682 3151595 : x3 = XVECEXP (x2, 0, 0);
6683 3151595 : if (GET_MODE (x3) != E_CCFPmode)
6684 : return -1;
6685 3151595 : switch (GET_CODE (x3))
6686 : {
6687 3134859 : case COMPARE:
6688 3134859 : x4 = XEXP (x3, 0);
6689 3134859 : switch (GET_CODE (x4))
6690 : {
6691 2789892 : case REG:
6692 2789892 : case SUBREG:
6693 2789892 : operands[0] = x4;
6694 2789892 : x5 = XEXP (x3, 1);
6695 2789892 : operands[1] = x5;
6696 2789892 : switch (GET_MODE (operands[0]))
6697 : {
6698 637135 : case E_XFmode:
6699 637135 : if (!register_operand (operands[0], E_XFmode)
6700 637135 : || !register_operand (operands[1], E_XFmode)
6701 1162649 : || !
6702 : #line 2034 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6703 : (TARGET_80387 && TARGET_CMOVE))
6704 : return -1;
6705 : return 53; /* *cmpiuxf_i387 */
6706 :
6707 : case E_SFmode:
6708 : if (!register_operand (operands[0], E_SFmode)
6709 : || !register_ssemem_operand (operands[1], E_SFmode)
6710 : || !
6711 : #line 2074 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6712 : ((SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)
6713 : || (TARGET_80387 && TARGET_CMOVE)))
6714 : return -1;
6715 : return 61; /* *cmpiusf */
6716 :
6717 : case E_DFmode:
6718 : if (!register_operand (operands[0], E_DFmode)
6719 : || !register_ssemem_operand (operands[1], E_DFmode)
6720 : || !
6721 : #line 2074 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6722 : ((SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)
6723 : || (TARGET_80387 && TARGET_CMOVE)))
6724 : return -1;
6725 : return 63; /* *cmpiudf */
6726 :
6727 : case E_HFmode:
6728 : if (!register_operand (operands[0], E_HFmode)
6729 : || !nonimmediate_operand (operands[1], E_HFmode)
6730 : || !
6731 : #line 2111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6732 : (TARGET_AVX512FP16))
6733 : return -1;
6734 : return 65; /* *cmpiuhf */
6735 :
6736 : default:
6737 : return -1;
6738 : }
6739 :
6740 : case VEC_SELECT:
6741 : if (pattern610 (x3) != 0)
6742 : return -1;
6743 : x6 = XEXP (x4, 0);
6744 : operands[0] = x6;
6745 : x5 = XEXP (x3, 1);
6746 : x7 = XEXP (x5, 0);
6747 : operands[1] = x7;
6748 : switch (GET_MODE (x4))
6749 : {
6750 : case E_HFmode:
6751 : if (!register_operand (operands[0], E_V8HFmode)
6752 : || GET_MODE (x5) != E_HFmode
6753 : || !nonimmediate_operand (operands[1], E_V8HFmode)
6754 : || !(
6755 : #line 5223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6756 : (SSE_FLOAT_MODE_P (HFmode) || HFmode == E_HFmode) &&
6757 : #line 1356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6758 : (TARGET_AVX512FP16)))
6759 : return -1;
6760 : return 3753; /* avx512fp16_ucomi */
6761 :
6762 : case E_SFmode:
6763 : if (!register_operand (operands[0], E_V4SFmode)
6764 : || GET_MODE (x5) != E_SFmode
6765 : || !nonimmediate_operand (operands[1], E_V4SFmode)
6766 : || !
6767 : #line 5223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6768 : (SSE_FLOAT_MODE_P (SFmode) || SFmode == E_HFmode))
6769 : return -1;
6770 : return 3757; /* sse_ucomi */
6771 :
6772 : case E_DFmode:
6773 : if (!register_operand (operands[0], E_V2DFmode)
6774 : || GET_MODE (x5) != E_DFmode
6775 : || !nonimmediate_operand (operands[1], E_V2DFmode)
6776 : || !
6777 : #line 5223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6778 : (SSE_FLOAT_MODE_P (DFmode) || DFmode == E_HFmode))
6779 : return -1;
6780 : return 3761; /* sse2_ucomi */
6781 :
6782 : default:
6783 : return -1;
6784 : }
6785 :
6786 : default:
6787 : return -1;
6788 : }
6789 :
6790 : case UNSPEC:
6791 : switch (XVECLEN (x3, 0))
6792 : {
6793 : case 1:
6794 : if (XINT (x3, 1) != 45)
6795 : return -1;
6796 : x8 = XVECEXP (x3, 0, 0);
6797 : if (GET_CODE (x8) != COMPARE
6798 : || GET_MODE (x8) != E_CCFPmode)
6799 : return -1;
6800 : x9 = XEXP (x8, 0);
6801 : operands[0] = x9;
6802 : x10 = XEXP (x8, 1);
6803 : operands[1] = x10;
6804 : switch (GET_MODE (operands[0]))
6805 : {
6806 : case E_SFmode:
6807 : if (!register_operand (operands[0], E_SFmode)
6808 : || !nonimmediate_operand (operands[1], E_SFmode)
6809 : || !
6810 : #line 2050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6811 : (TARGET_AVX10_2))
6812 : return -1;
6813 : return 55; /* *cmpxusf */
6814 :
6815 : case E_DFmode:
6816 : if (!register_operand (operands[0], E_DFmode)
6817 : || !nonimmediate_operand (operands[1], E_DFmode)
6818 : || !
6819 : #line 2050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6820 : (TARGET_AVX10_2))
6821 : return -1;
6822 : return 57; /* *cmpxudf */
6823 :
6824 : case E_HFmode:
6825 : if (!register_operand (operands[0], E_HFmode)
6826 : || !nonimmediate_operand (operands[1], E_HFmode)
6827 : || !
6828 : #line 2063 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6829 : (TARGET_AVX10_2))
6830 : return -1;
6831 : return 59; /* *cmpxuhf */
6832 :
6833 : default:
6834 : return -1;
6835 : }
6836 :
6837 : case 2:
6838 : if (XINT (x3, 1) != 62
6839 : || pattern855 (x3) != 0)
6840 : return -1;
6841 : x8 = XVECEXP (x3, 0, 0);
6842 : x9 = XEXP (x8, 0);
6843 : operands[0] = x9;
6844 : x11 = XVECEXP (x3, 0, 1);
6845 : x12 = XEXP (x11, 0);
6846 : operands[1] = x12;
6847 : switch (GET_MODE (x8))
6848 : {
6849 : case E_HFmode:
6850 : if (!register_operand (operands[0], E_V8HFmode)
6851 : || GET_MODE (x11) != E_HFmode
6852 : || !nonimmediate_operand (operands[1], E_V8HFmode)
6853 : || !(
6854 : #line 5208 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6855 : (TARGET_AVX10_2) &&
6856 : #line 1356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6857 : (TARGET_AVX512FP16)))
6858 : return -1;
6859 : return 3741; /* avx10_2_ucomxhf */
6860 :
6861 : case E_SFmode:
6862 : if (!register_operand (operands[0], E_V4SFmode)
6863 : || GET_MODE (x11) != E_SFmode
6864 : || !nonimmediate_operand (operands[1], E_V4SFmode)
6865 : || !
6866 : #line 5208 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6867 : (TARGET_AVX10_2))
6868 : return -1;
6869 : return 3745; /* avx10_2_ucomxsf */
6870 :
6871 : case E_DFmode:
6872 : if (!register_operand (operands[0], E_V2DFmode)
6873 : || GET_MODE (x11) != E_DFmode
6874 : || !nonimmediate_operand (operands[1], E_V2DFmode)
6875 : || !
6876 : #line 5208 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6877 : (TARGET_AVX10_2))
6878 : return -1;
6879 : return 3749; /* avx10_2_ucomxdf */
6880 :
6881 : default:
6882 : return -1;
6883 : }
6884 :
6885 : default:
6886 : return -1;
6887 : }
6888 :
6889 : default:
6890 : return -1;
6891 : }
6892 : }
6893 :
6894 : int
6895 : recog_17 (rtx x1 ATTRIBUTE_UNUSED,
6896 : rtx_insn *insn ATTRIBUTE_UNUSED,
6897 : int *pnum_clobbers ATTRIBUTE_UNUSED)
6898 : {
6899 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6900 : rtx x2, x3, x4;
6901 : int res ATTRIBUTE_UNUSED;
6902 : x2 = XEXP (x1, 0);
6903 : operands[0] = x2;
6904 : x3 = XEXP (x1, 1);
6905 : operands[1] = x3;
6906 : switch (GET_MODE (operands[0]))
6907 : {
6908 : case E_V1TImode:
6909 : if (push_operand (operands[0], E_V1TImode)
6910 : && register_operand (operands[1], E_V1TImode))
6911 : {
6912 : if ((
6913 : #line 2180 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6914 : (TARGET_64BIT && TARGET_STV) &&
6915 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6916 : (Pmode == SImode)))
6917 : return 69; /* *pushv1ti2 */
6918 : if ((
6919 : #line 2180 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6920 : (TARGET_64BIT && TARGET_STV) &&
6921 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6922 : (Pmode == DImode)))
6923 : return 70; /* *pushv1ti2 */
6924 : }
6925 : break;
6926 :
6927 : case E_DImode:
6928 : if (push_operand (operands[0], E_DImode)
6929 : && general_no_elim_operand (operands[1], E_DImode))
6930 : {
6931 : if (
6932 : #line 1196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6933 : (!TARGET_64BIT))
6934 : return 71; /* *pushdi2 */
6935 : if (
6936 : #line 2211 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6937 : (TARGET_64BIT))
6938 : return 73; /* *pushdi2_rex64 */
6939 : }
6940 : if (nonimmediate_operand (operands[0], E_DImode)
6941 : && pop_operand (operands[1], E_DImode)
6942 : &&
6943 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6944 : (word_mode == DImode))
6945 : return 81; /* *popdi1 */
6946 : if (pnum_clobbers != NULL
6947 : && const0_operand (operands[1], E_DImode))
6948 : {
6949 : if (register_operand (operands[0], E_DImode)
6950 : && (
6951 : #line 2429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6952 : (reload_completed) &&
6953 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6954 : (TARGET_64BIT)))
6955 : {
6956 : *pnum_clobbers = 1;
6957 : return 89; /* *movdi_xor */
6958 : }
6959 : if (memory_operand (operands[0], E_DImode)
6960 : && (
6961 : #line 2441 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6962 : (reload_completed) &&
6963 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6964 : (TARGET_64BIT)))
6965 : {
6966 : *pnum_clobbers = 1;
6967 : return 92; /* *movdi_and */
6968 : }
6969 : }
6970 : if (nonimmediate_operand (operands[0], E_DImode))
6971 : {
6972 : if (pnum_clobbers != NULL
6973 : && constm1_operand (operands[1], E_DImode)
6974 : && (
6975 : #line 2456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6976 : (reload_completed) &&
6977 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6978 : (TARGET_64BIT)))
6979 : {
6980 : *pnum_clobbers = 1;
6981 : return 95; /* *movdi_or */
6982 : }
6983 : if (general_operand (operands[1], E_DImode)
6984 : &&
6985 : #line 2599 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6986 : (!(MEM_P (operands[0]) && MEM_P (operands[1]))
6987 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
6988 : return 99; /* *movdi_internal */
6989 : }
6990 : break;
6991 :
6992 : case E_TImode:
6993 : if (push_operand (operands[0], E_TImode)
6994 : && general_no_elim_operand (operands[1], E_TImode)
6995 : &&
6996 : #line 1197 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6997 : (TARGET_64BIT))
6998 : return 72; /* *pushti2 */
6999 : if (nonimmediate_operand (operands[0], E_TImode)
7000 : && general_operand (operands[1], E_TImode)
7001 : &&
7002 : #line 2515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7003 : ((TARGET_64BIT
7004 : && !(MEM_P (operands[0]) && MEM_P (operands[1])))
7005 : || (TARGET_SSE
7006 : && nonimmediate_or_sse_const_operand (operands[1], TImode)
7007 : && (register_operand (operands[0], TImode)
7008 : || register_operand (operands[1], TImode)))))
7009 : return 98; /* *movti_internal */
7010 : break;
7011 :
7012 : case E_SImode:
7013 : res = recog_16 (x1, insn, pnum_clobbers);
7014 : if (res >= 0)
7015 : return res;
7016 : break;
7017 :
7018 : case E_QImode:
7019 : if (push_operand (operands[0], E_QImode)
7020 : && nonmemory_no_elim_operand (operands[1], E_QImode))
7021 : return 76; /* *pushqi2 */
7022 : if (nonimmediate_operand (operands[0], E_QImode)
7023 : && general_operand (operands[1], E_QImode)
7024 : &&
7025 : #line 3161 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7026 : (!(MEM_P (operands[0]) && MEM_P (operands[1]))
7027 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
7028 : return 102; /* *movqi_internal */
7029 : break;
7030 :
7031 : case E_HImode:
7032 : if (push_operand (operands[0], E_HImode)
7033 : && nonmemory_no_elim_operand (operands[1], E_HImode))
7034 : return 77; /* *pushhi2 */
7035 : if (pnum_clobbers != NULL
7036 : && memory_operand (operands[0], E_HImode)
7037 : && const0_operand (operands[1], E_HImode)
7038 : &&
7039 : #line 2441 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7040 : (reload_completed))
7041 : {
7042 : *pnum_clobbers = 1;
7043 : return 90; /* *movhi_and */
7044 : }
7045 : if (nonimmediate_operand (operands[0], E_HImode))
7046 : {
7047 : if (pnum_clobbers != NULL
7048 : && constm1_operand (operands[1], E_HImode)
7049 : &&
7050 : #line 2456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7051 : (reload_completed))
7052 : {
7053 : *pnum_clobbers = 1;
7054 : return 93; /* *movhi_or */
7055 : }
7056 : if (general_operand (operands[1], E_HImode)
7057 : &&
7058 : #line 2998 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7059 : (!(MEM_P (operands[0]) && MEM_P (operands[1]))
7060 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
7061 : return 101; /* *movhi_internal */
7062 : }
7063 : break;
7064 :
7065 : case E_TFmode:
7066 : if (push_operand (operands[0], E_TFmode)
7067 : && general_no_elim_operand (operands[1], E_TFmode)
7068 : &&
7069 : #line 3776 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7070 : (TARGET_64BIT || TARGET_SSE))
7071 : return 156; /* *pushtf */
7072 : if (nonimmediate_operand (operands[0], E_TFmode)
7073 : && general_operand (operands[1], E_TFmode)
7074 : &&
7075 : #line 4045 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7076 : ((TARGET_64BIT || TARGET_SSE)
7077 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))
7078 : && (lra_in_progress || reload_completed
7079 : || !CONST_DOUBLE_P (operands[1])
7080 : || (standard_sse_constant_p (operands[1], TFmode) == 1
7081 : && !memory_operand (operands[0], TFmode))
7082 : || (!TARGET_MEMORY_MISMATCH_STALL
7083 : && memory_operand (operands[0], TFmode)))))
7084 : return 171; /* *movtf_internal */
7085 : break;
7086 :
7087 : case E_XFmode:
7088 : if (push_operand (operands[0], E_XFmode)
7089 : && general_no_elim_operand (operands[1], E_XFmode))
7090 : return 157; /* *pushxf */
7091 : if (nonimmediate_operand (operands[0], E_XFmode)
7092 : && general_operand (operands[1], E_XFmode)
7093 : &&
7094 : #line 4105 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7095 : (!(MEM_P (operands[0]) && MEM_P (operands[1]))
7096 : && (lra_in_progress || reload_completed
7097 : || !CONST_DOUBLE_P (operands[1])
7098 : || ((optimize_function_for_size_p (cfun)
7099 : || (ix86_cmodel == CM_LARGE || ix86_cmodel == CM_LARGE_PIC))
7100 : && standard_80387_constant_p (operands[1]) > 0
7101 : && !memory_operand (operands[0], XFmode))
7102 : || (!TARGET_MEMORY_MISMATCH_STALL
7103 : && memory_operand (operands[0], XFmode))
7104 : || !TARGET_HARD_XF_REGS)))
7105 : return 172; /* *movxf_internal */
7106 : break;
7107 :
7108 : case E_DFmode:
7109 : if (push_operand (operands[0], E_DFmode)
7110 : && general_no_elim_operand (operands[1], E_DFmode))
7111 : return 158; /* *pushdf */
7112 : if (nonimmediate_operand (operands[0], E_DFmode)
7113 : && general_operand (operands[1], E_DFmode)
7114 : &&
7115 : #line 4177 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7116 : (!(MEM_P (operands[0]) && MEM_P (operands[1]))
7117 : && (lra_in_progress || reload_completed
7118 : || !CONST_DOUBLE_P (operands[1])
7119 : || ((optimize_function_for_size_p (cfun)
7120 : || (ix86_cmodel == CM_LARGE || ix86_cmodel == CM_LARGE_PIC))
7121 : && IS_STACK_MODE (DFmode)
7122 : && standard_80387_constant_p (operands[1]) > 0
7123 : && !memory_operand (operands[0], DFmode))
7124 : || (TARGET_SSE2 && TARGET_SSE_MATH
7125 : && standard_sse_constant_p (operands[1], DFmode) == 1
7126 : && !memory_operand (operands[0], DFmode))
7127 : || ((TARGET_64BIT || !TARGET_MEMORY_MISMATCH_STALL)
7128 : && memory_operand (operands[0], DFmode))
7129 : || !TARGET_HARD_DF_REGS)))
7130 : return 173; /* *movdf_internal */
7131 : break;
7132 :
7133 : case E_HFmode:
7134 : if (push_operand (operands[0], E_HFmode))
7135 : {
7136 : if (nonmemory_no_elim_operand (operands[1], E_HFmode)
7137 : &&
7138 : #line 3872 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7139 : (TARGET_64BIT))
7140 : return 159; /* *pushhf_rex64 */
7141 : if (general_no_elim_operand (operands[1], E_HFmode)
7142 : &&
7143 : #line 3885 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7144 : (!TARGET_64BIT))
7145 : return 161; /* *pushhf */
7146 : }
7147 : if (nonimmediate_operand (operands[0], E_HFmode)
7148 : && general_operand (operands[1], E_HFmode)
7149 : &&
7150 : #line 4489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7151 : (!(MEM_P (operands[0]) && MEM_P (operands[1]))
7152 : && (lra_in_progress
7153 : || reload_completed
7154 : || !CONST_DOUBLE_P (operands[1])
7155 : || (TARGET_SSE2
7156 : && standard_sse_constant_p (operands[1], HFmode) == 1)
7157 : || memory_operand (operands[0], HFmode))))
7158 : return 175; /* *movhf_internal */
7159 : break;
7160 :
7161 : case E_BFmode:
7162 : if (push_operand (operands[0], E_BFmode))
7163 : {
7164 : if (nonmemory_no_elim_operand (operands[1], E_BFmode)
7165 : &&
7166 : #line 3872 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7167 : (TARGET_64BIT))
7168 : return 160; /* *pushbf_rex64 */
7169 : if (general_no_elim_operand (operands[1], E_BFmode)
7170 : &&
7171 : #line 3885 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7172 : (!TARGET_64BIT))
7173 : return 162; /* *pushbf */
7174 : }
7175 : if (nonimmediate_operand (operands[0], E_BFmode)
7176 : && general_operand (operands[1], E_BFmode)
7177 : &&
7178 : #line 4489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7179 : (!(MEM_P (operands[0]) && MEM_P (operands[1]))
7180 : && (lra_in_progress
7181 : || reload_completed
7182 : || !CONST_DOUBLE_P (operands[1])
7183 : || (TARGET_SSE2
7184 : && standard_sse_constant_p (operands[1], BFmode) == 1)
7185 : || memory_operand (operands[0], BFmode))))
7186 : return 176; /* *movbf_internal */
7187 : break;
7188 :
7189 : case E_SFmode:
7190 : if (push_operand (operands[0], E_SFmode))
7191 : {
7192 : if (nonmemory_no_elim_operand (operands[1], E_SFmode)
7193 : &&
7194 : #line 3960 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7195 : (TARGET_64BIT))
7196 : return 169; /* *pushsf_rex64 */
7197 : if (general_no_elim_operand (operands[1], E_SFmode)
7198 : &&
7199 : #line 3974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7200 : (!TARGET_64BIT))
7201 : return 170; /* *pushsf */
7202 : }
7203 : if (nonimmediate_operand (operands[0], E_SFmode)
7204 : && general_operand (operands[1], E_SFmode)
7205 : &&
7206 : #line 4354 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7207 : (!(MEM_P (operands[0]) && MEM_P (operands[1]))
7208 : && (lra_in_progress || reload_completed
7209 : || !CONST_DOUBLE_P (operands[1])
7210 : || ((optimize_function_for_size_p (cfun)
7211 : || (ix86_cmodel == CM_LARGE || ix86_cmodel == CM_LARGE_PIC))
7212 : && IS_STACK_MODE (SFmode)
7213 : && standard_80387_constant_p (operands[1]) > 0)
7214 : || (TARGET_SSE && TARGET_SSE_MATH
7215 : && standard_sse_constant_p (operands[1], SFmode) == 1)
7216 : || memory_operand (operands[0], SFmode)
7217 : || !TARGET_HARD_SF_REGS)))
7218 : return 174; /* *movsf_internal */
7219 : break;
7220 :
7221 : case E_V8QImode:
7222 : if (nonimmediate_operand (operands[0], E_V8QImode)
7223 : && nonimm_or_0_operand (operands[1], E_V8QImode)
7224 : &&
7225 : #line 191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7226 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
7227 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))
7228 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
7229 : return 2072; /* *movv8qi_internal */
7230 : if (memory_operand (operands[0], E_V8QImode)
7231 : && x86_64_const_vector_operand (operands[1], E_V8QImode)
7232 : &&
7233 : #line 87 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7234 : (TARGET_64BIT))
7235 : return 2096; /* *movv8qi_imm */
7236 : break;
7237 :
7238 : case E_V4HImode:
7239 : if (nonimmediate_operand (operands[0], E_V4HImode)
7240 : && nonimm_or_0_operand (operands[1], E_V4HImode)
7241 : &&
7242 : #line 191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7243 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
7244 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))
7245 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
7246 : return 2073; /* *movv4hi_internal */
7247 : if (memory_operand (operands[0], E_V4HImode)
7248 : && x86_64_const_vector_operand (operands[1], E_V4HImode)
7249 : &&
7250 : #line 87 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7251 : (TARGET_64BIT))
7252 : return 2097; /* *movv4hi_imm */
7253 : break;
7254 :
7255 : case E_V2SImode:
7256 : if (nonimmediate_operand (operands[0], E_V2SImode)
7257 : && nonimm_or_0_operand (operands[1], E_V2SImode)
7258 : &&
7259 : #line 191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7260 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
7261 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))
7262 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
7263 : return 2074; /* *movv2si_internal */
7264 : if (memory_operand (operands[0], E_V2SImode)
7265 : && x86_64_const_vector_operand (operands[1], E_V2SImode)
7266 : &&
7267 : #line 89 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7268 : (TARGET_64BIT))
7269 : return 2100; /* *movv2si_imm */
7270 : break;
7271 :
7272 : case E_V1DImode:
7273 : if (nonimmediate_operand (operands[0], E_V1DImode)
7274 : && nonimm_or_0_operand (operands[1], E_V1DImode)
7275 : &&
7276 : #line 191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7277 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
7278 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))
7279 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
7280 : return 2075; /* *movv1di_internal */
7281 : if (memory_operand (operands[0], E_V1DImode)
7282 : && x86_64_const_vector_operand (operands[1], E_V1DImode)
7283 : &&
7284 : #line 90 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7285 : (TARGET_64BIT))
7286 : return 2102; /* *movv1di_imm */
7287 : break;
7288 :
7289 : case E_V2SFmode:
7290 : if (nonimmediate_operand (operands[0], E_V2SFmode)
7291 : && nonimm_or_0_operand (operands[1], E_V2SFmode)
7292 : &&
7293 : #line 191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7294 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
7295 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))
7296 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
7297 : return 2076; /* *movv2sf_internal */
7298 : if (memory_operand (operands[0], E_V2SFmode)
7299 : && x86_64_const_vector_operand (operands[1], E_V2SFmode)
7300 : &&
7301 : #line 89 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7302 : (TARGET_64BIT))
7303 : return 2101; /* *movv2sf_imm */
7304 : break;
7305 :
7306 : case E_V4HFmode:
7307 : if (nonimmediate_operand (operands[0], E_V4HFmode)
7308 : && nonimm_or_0_operand (operands[1], E_V4HFmode)
7309 : &&
7310 : #line 191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7311 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
7312 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))
7313 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
7314 : return 2077; /* *movv4hf_internal */
7315 : if (memory_operand (operands[0], E_V4HFmode)
7316 : && x86_64_const_vector_operand (operands[1], E_V4HFmode)
7317 : &&
7318 : #line 88 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7319 : (TARGET_64BIT))
7320 : return 2098; /* *movv4hf_imm */
7321 : break;
7322 :
7323 : case E_V4BFmode:
7324 : if (nonimmediate_operand (operands[0], E_V4BFmode)
7325 : && nonimm_or_0_operand (operands[1], E_V4BFmode)
7326 : &&
7327 : #line 191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7328 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
7329 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))
7330 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
7331 : return 2078; /* *movv4bf_internal */
7332 : if (memory_operand (operands[0], E_V4BFmode)
7333 : && x86_64_const_vector_operand (operands[1], E_V4BFmode)
7334 : &&
7335 : #line 88 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7336 : (TARGET_64BIT))
7337 : return 2099; /* *movv4bf_imm */
7338 : break;
7339 :
7340 : case E_V4QImode:
7341 : if (nonimmediate_operand (operands[0], E_V4QImode)
7342 : && nonimm_or_0_operand (operands[1], E_V4QImode)
7343 : &&
7344 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7345 : (!(MEM_P (operands[0]) && MEM_P (operands[1]))
7346 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
7347 : return 2079; /* *movv4qi_internal */
7348 : if (push_operand (operands[0], E_V4QImode)
7349 : && nonmemory_no_elim_operand (operands[1], E_V4QImode)
7350 : &&
7351 : #line 416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7352 : (TARGET_64BIT))
7353 : return 2084; /* *pushv4qi2_rex64 */
7354 : if (memory_operand (operands[0], E_V4QImode)
7355 : && x86_64_const_vector_operand (operands[1], E_V4QImode))
7356 : return 2091; /* *movv4qi_imm */
7357 : break;
7358 :
7359 : case E_V2HImode:
7360 : if (nonimmediate_operand (operands[0], E_V2HImode)
7361 : && nonimm_or_0_operand (operands[1], E_V2HImode)
7362 : &&
7363 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7364 : (!(MEM_P (operands[0]) && MEM_P (operands[1]))
7365 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
7366 : return 2080; /* *movv2hi_internal */
7367 : if (push_operand (operands[0], E_V2HImode)
7368 : && nonmemory_no_elim_operand (operands[1], E_V2HImode)
7369 : &&
7370 : #line 416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7371 : (TARGET_64BIT))
7372 : return 2085; /* *pushv2hi2_rex64 */
7373 : if (memory_operand (operands[0], E_V2HImode)
7374 : && x86_64_const_vector_operand (operands[1], E_V2HImode))
7375 : return 2092; /* *movv2hi_imm */
7376 : break;
7377 :
7378 : case E_V1SImode:
7379 : if (nonimmediate_operand (operands[0], E_V1SImode)
7380 : && nonimm_or_0_operand (operands[1], E_V1SImode)
7381 : &&
7382 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7383 : (!(MEM_P (operands[0]) && MEM_P (operands[1]))
7384 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
7385 : return 2081; /* *movv1si_internal */
7386 : if (push_operand (operands[0], E_V1SImode)
7387 : && nonmemory_no_elim_operand (operands[1], E_V1SImode)
7388 : &&
7389 : #line 416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7390 : (TARGET_64BIT))
7391 : return 2086; /* *pushv1si2_rex64 */
7392 : if (memory_operand (operands[0], E_V1SImode)
7393 : && x86_64_const_vector_operand (operands[1], E_V1SImode))
7394 : return 2093; /* *movv1si_imm */
7395 : break;
7396 :
7397 : case E_V2HFmode:
7398 : if (nonimmediate_operand (operands[0], E_V2HFmode)
7399 : && nonimm_or_0_operand (operands[1], E_V2HFmode)
7400 : &&
7401 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7402 : (!(MEM_P (operands[0]) && MEM_P (operands[1]))
7403 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
7404 : return 2082; /* *movv2hf_internal */
7405 : if (push_operand (operands[0], E_V2HFmode)
7406 : && nonmemory_no_elim_operand (operands[1], E_V2HFmode)
7407 : &&
7408 : #line 416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7409 : (TARGET_64BIT))
7410 : return 2087; /* *pushv2hf2_rex64 */
7411 : if (memory_operand (operands[0], E_V2HFmode)
7412 : && x86_64_const_vector_operand (operands[1], E_V2HFmode))
7413 : return 2094; /* *movv2hf_imm */
7414 : break;
7415 :
7416 : case E_V2BFmode:
7417 : if (nonimmediate_operand (operands[0], E_V2BFmode)
7418 : && nonimm_or_0_operand (operands[1], E_V2BFmode)
7419 : &&
7420 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7421 : (!(MEM_P (operands[0]) && MEM_P (operands[1]))
7422 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
7423 : return 2083; /* *movv2bf_internal */
7424 : if (push_operand (operands[0], E_V2BFmode)
7425 : && nonmemory_no_elim_operand (operands[1], E_V2BFmode)
7426 : &&
7427 : #line 416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7428 : (TARGET_64BIT))
7429 : return 2088; /* *pushv2bf2_rex64 */
7430 : if (memory_operand (operands[0], E_V2BFmode)
7431 : && x86_64_const_vector_operand (operands[1], E_V2BFmode))
7432 : return 2095; /* *movv2bf_imm */
7433 : break;
7434 :
7435 : case E_V2QImode:
7436 : if (nonimmediate_operand (operands[0], E_V2QImode)
7437 : && nonimm_or_0_operand (operands[1], E_V2QImode)
7438 : &&
7439 : #line 458 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7440 : (!(MEM_P (operands[0]) && MEM_P (operands[1]))
7441 : && ix86_hardreg_mov_ok (operands[0], operands[1])))
7442 : return 2089; /* *movv2qi_internal */
7443 : if (memory_operand (operands[0], E_V2QImode)
7444 : && x86_64_const_vector_operand (operands[1], E_V2QImode))
7445 : return 2090; /* *movv2qi_imm */
7446 : if (push_operand (operands[0], E_V2QImode)
7447 : && nonmemory_no_elim_operand (operands[1], E_V2QImode))
7448 : return 2103; /* *pushv2qi2 */
7449 : break;
7450 :
7451 : case E_P2QImode:
7452 : if (nonimmediate_operand (operands[0], E_P2QImode)
7453 : && nonimmediate_operand (operands[1], E_P2QImode)
7454 : &&
7455 : #line 31661 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7456 : (TARGET_AVX512VP2INTERSECT
7457 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
7458 : return 10403; /* *movp2qi_internal */
7459 : break;
7460 :
7461 : case E_P2HImode:
7462 : if (nonimmediate_operand (operands[0], E_P2HImode)
7463 : && nonimmediate_operand (operands[1], E_P2HImode)
7464 : &&
7465 : #line 31661 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7466 : (TARGET_AVX512VP2INTERSECT
7467 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
7468 : return 10404; /* *movp2hi_internal */
7469 : break;
7470 :
7471 : default:
7472 : break;
7473 : }
7474 : if (GET_CODE (x2) != MEM)
7475 : return -1;
7476 : x4 = XEXP (x2, 0);
7477 : operands[0] = x4;
7478 : if (!x86_64_movabs_operand (operands[0], E_DImode))
7479 : return -1;
7480 : operands[1] = x3;
7481 : switch (GET_MODE (x2))
7482 : {
7483 : case E_QImode:
7484 : if (!nonmemory_operand (operands[1], E_QImode)
7485 : || !
7486 : #line 3312 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7487 : (TARGET_LP64 && ix86_check_movabs (insn, 0)))
7488 : return -1;
7489 : return 103; /* *movabsqi_1 */
7490 :
7491 : case E_HImode:
7492 : if (!nonmemory_operand (operands[1], E_HImode)
7493 : || !
7494 : #line 3312 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7495 : (TARGET_LP64 && ix86_check_movabs (insn, 0)))
7496 : return -1;
7497 : return 104; /* *movabshi_1 */
7498 :
7499 : case E_SImode:
7500 : if (!nonmemory_operand (operands[1], E_SImode)
7501 : || !
7502 : #line 3312 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7503 : (TARGET_LP64 && ix86_check_movabs (insn, 0)))
7504 : return -1;
7505 : return 105; /* *movabssi_1 */
7506 :
7507 : case E_DImode:
7508 : if (!nonmemory_operand (operands[1], E_DImode)
7509 : || !
7510 : #line 3312 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7511 : (TARGET_LP64 && ix86_check_movabs (insn, 0)))
7512 : return -1;
7513 : return 106; /* *movabsdi_1 */
7514 :
7515 : default:
7516 : return -1;
7517 : }
7518 : }
7519 :
7520 : int
7521 : recog_34 (rtx x1 ATTRIBUTE_UNUSED,
7522 : rtx_insn *insn ATTRIBUTE_UNUSED,
7523 : int *pnum_clobbers ATTRIBUTE_UNUSED)
7524 : {
7525 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
7526 : rtx x2, x3, x4;
7527 : int res ATTRIBUTE_UNUSED;
7528 : x2 = XEXP (x1, 0);
7529 : operands[0] = x2;
7530 : x3 = XEXP (x1, 1);
7531 : x4 = XEXP (x3, 0);
7532 : operands[1] = x4;
7533 : switch (GET_MODE (operands[0]))
7534 : {
7535 : case E_SImode:
7536 : if (GET_MODE (x3) != E_SImode)
7537 : return -1;
7538 : if (register_operand (operands[0], E_SImode))
7539 : {
7540 : switch (pattern262 ())
7541 : {
7542 : case 0:
7543 : if (
7544 : #line 5778 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7545 : (TARGET_AVX512FP16))
7546 : return 216; /* fix_trunchfsi2 */
7547 : break;
7548 :
7549 : case 1:
7550 : if (
7551 : #line 5954 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7552 : (SSE_FLOAT_MODE_P (SFmode)
7553 : && (!TARGET_FISTTP || TARGET_SSE_MATH)))
7554 : return 229; /* fix_truncsfsi_sse */
7555 : break;
7556 :
7557 : case 2:
7558 : if (
7559 : #line 5954 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7560 : (SSE_FLOAT_MODE_P (DFmode)
7561 : && (!TARGET_FISTTP || TARGET_SSE_MATH)))
7562 : return 231; /* fix_truncdfsi_sse */
7563 : break;
7564 :
7565 : default:
7566 : break;
7567 : }
7568 : }
7569 : if (pnum_clobbers == NULL
7570 : || !nonimmediate_operand (operands[0], E_SImode)
7571 : || !register_operand (operands[1], E_VOIDmode))
7572 : return -1;
7573 : if (
7574 : #line 5984 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7575 : (X87_FLOAT_MODE_P (GET_MODE (operands[1]))
7576 : && TARGET_FISTTP
7577 : && !((SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
7578 : && (TARGET_64BIT || SImode != DImode))
7579 : && TARGET_SSE_MATH)))
7580 : {
7581 : *pnum_clobbers = 1;
7582 : return 234; /* fix_truncsi_i387_fisttp */
7583 : }
7584 : if (!
7585 : #line 6002 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7586 : (X87_FLOAT_MODE_P (GET_MODE (operands[1]))
7587 : && !TARGET_FISTTP
7588 : && !(SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
7589 : && (TARGET_64BIT || SImode != DImode))
7590 : && ix86_pre_reload_split ()))
7591 : return -1;
7592 : *pnum_clobbers = 1;
7593 : return 237; /* *fix_truncsi_i387_1 */
7594 :
7595 : case E_DImode:
7596 : if (GET_MODE (x3) != E_DImode)
7597 : return -1;
7598 : if (register_operand (operands[0], E_DImode))
7599 : {
7600 : switch (pattern262 ())
7601 : {
7602 : case 0:
7603 : if ((
7604 : #line 5778 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7605 : (TARGET_AVX512FP16) &&
7606 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7607 : (TARGET_64BIT)))
7608 : return 218; /* fix_trunchfdi2 */
7609 : break;
7610 :
7611 : case 1:
7612 : if ((
7613 : #line 5954 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7614 : (SSE_FLOAT_MODE_P (SFmode)
7615 : && (!TARGET_FISTTP || TARGET_SSE_MATH)) &&
7616 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7617 : (TARGET_64BIT)))
7618 : return 230; /* fix_truncsfdi_sse */
7619 : break;
7620 :
7621 : case 2:
7622 : if ((
7623 : #line 5954 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7624 : (SSE_FLOAT_MODE_P (DFmode)
7625 : && (!TARGET_FISTTP || TARGET_SSE_MATH)) &&
7626 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7627 : (TARGET_64BIT)))
7628 : return 232; /* fix_truncdfdi_sse */
7629 : break;
7630 :
7631 : default:
7632 : break;
7633 : }
7634 : }
7635 : if (pnum_clobbers == NULL
7636 : || !nonimmediate_operand (operands[0], E_DImode)
7637 : || !register_operand (operands[1], E_VOIDmode))
7638 : return -1;
7639 : if (
7640 : #line 5984 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7641 : (X87_FLOAT_MODE_P (GET_MODE (operands[1]))
7642 : && TARGET_FISTTP
7643 : && !((SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
7644 : && (TARGET_64BIT || DImode != DImode))
7645 : && TARGET_SSE_MATH)))
7646 : {
7647 : *pnum_clobbers = 1;
7648 : return 235; /* fix_truncdi_i387_fisttp */
7649 : }
7650 : if (!
7651 : #line 6002 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7652 : (X87_FLOAT_MODE_P (GET_MODE (operands[1]))
7653 : && !TARGET_FISTTP
7654 : && !(SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
7655 : && (TARGET_64BIT || DImode != DImode))
7656 : && ix86_pre_reload_split ()))
7657 : return -1;
7658 : *pnum_clobbers = 1;
7659 : return 238; /* *fix_truncdi_i387_1 */
7660 :
7661 : case E_HImode:
7662 : if (pattern261 (x3, pnum_clobbers,
7663 : E_VOIDmode,
7664 : E_HImode) != 0)
7665 : return -1;
7666 : if (
7667 : #line 5984 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7668 : (X87_FLOAT_MODE_P (GET_MODE (operands[1]))
7669 : && TARGET_FISTTP
7670 : && !((SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
7671 : && (TARGET_64BIT || HImode != DImode))
7672 : && TARGET_SSE_MATH)))
7673 : {
7674 : *pnum_clobbers = 1;
7675 : return 233; /* fix_trunchi_i387_fisttp */
7676 : }
7677 : if (!
7678 : #line 6002 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7679 : (X87_FLOAT_MODE_P (GET_MODE (operands[1]))
7680 : && !TARGET_FISTTP
7681 : && !(SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
7682 : && (TARGET_64BIT || HImode != DImode))
7683 : && ix86_pre_reload_split ()))
7684 : return -1;
7685 : *pnum_clobbers = 1;
7686 : return 236; /* *fix_trunchi_i387_1 */
7687 :
7688 : case E_V2SImode:
7689 : if (!register_operand (operands[0], E_V2SImode)
7690 : || GET_MODE (x3) != E_V2SImode
7691 : || !vector_operand (operands[1], E_V2DFmode)
7692 : || !
7693 : #line 9265 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7694 : (TARGET_SSE2))
7695 : return -1;
7696 : return 4937; /* sse2_cvttpd2pi */
7697 :
7698 : default:
7699 : return -1;
7700 : }
7701 : }
7702 :
7703 : int
7704 : recog_42 (rtx x1 ATTRIBUTE_UNUSED,
7705 : rtx_insn *insn ATTRIBUTE_UNUSED,
7706 : int *pnum_clobbers ATTRIBUTE_UNUSED)
7707 : {
7708 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
7709 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
7710 : rtx x10, x11, x12, x13, x14, x15, x16;
7711 : int res ATTRIBUTE_UNUSED;
7712 : x2 = XEXP (x1, 1);
7713 : x3 = XEXP (x2, 0);
7714 : switch (GET_CODE (x3))
7715 : {
7716 : case REG:
7717 : case SUBREG:
7718 : case MEM:
7719 : operands[1] = x3;
7720 : res = recog_38 (x1, insn, pnum_clobbers);
7721 : if (res >= 0)
7722 : return res;
7723 : if (pnum_clobbers == NULL
7724 : || GET_CODE (x3) != SUBREG
7725 : || maybe_ne (SUBREG_BYTE (x3), 0))
7726 : return -1;
7727 : x4 = XEXP (x3, 0);
7728 : switch (GET_CODE (x4))
7729 : {
7730 : case ASHIFTRT:
7731 : case LSHIFTRT:
7732 : case SIGN_EXTRACT:
7733 : case ZERO_EXTRACT:
7734 : operands[3] = x4;
7735 : if (GET_MODE (x2) != E_QImode
7736 : || GET_MODE (x3) != E_QImode)
7737 : return -1;
7738 : x5 = XEXP (x4, 0);
7739 : operands[2] = x5;
7740 : switch (pattern1080 (x1))
7741 : {
7742 : case 0:
7743 : if (
7744 : #line 13108 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7745 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
7746 : {
7747 : *pnum_clobbers = 1;
7748 : return 759; /* *andqi_exthi_1_slp */
7749 : }
7750 : break;
7751 :
7752 : case 1:
7753 : if (
7754 : #line 13108 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7755 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
7756 : {
7757 : *pnum_clobbers = 1;
7758 : return 762; /* *andqi_extsi_1_slp */
7759 : }
7760 : break;
7761 :
7762 : case 2:
7763 : if ((
7764 : #line 13108 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7765 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
7766 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7767 : (TARGET_64BIT)))
7768 : {
7769 : *pnum_clobbers = 1;
7770 : return 765; /* *andqi_extdi_1_slp */
7771 : }
7772 : break;
7773 :
7774 : case 3:
7775 : *pnum_clobbers = 1;
7776 : return 783; /* *andqi_exthi_0 */
7777 :
7778 : case 4:
7779 : *pnum_clobbers = 1;
7780 : return 786; /* *andqi_extsi_0 */
7781 :
7782 : case 5:
7783 : if (
7784 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7785 : (TARGET_64BIT))
7786 : {
7787 : *pnum_clobbers = 1;
7788 : return 789; /* *andqi_extdi_0 */
7789 : }
7790 : break;
7791 :
7792 : default:
7793 : break;
7794 : }
7795 : x6 = XEXP (x2, 1);
7796 : if (GET_CODE (x6) != SUBREG)
7797 : return -1;
7798 : switch (pattern1083 (x1))
7799 : {
7800 : case 0:
7801 : if (!
7802 : #line 13137 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7803 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
7804 : return -1;
7805 : *pnum_clobbers = 1;
7806 : return 768; /* *andqi_exthi_2_slp */
7807 :
7808 : case 1:
7809 : if (!
7810 : #line 13137 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7811 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
7812 : return -1;
7813 : *pnum_clobbers = 1;
7814 : return 771; /* *andqi_extsi_2_slp */
7815 :
7816 : case 2:
7817 : if (!(
7818 : #line 13137 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7819 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
7820 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7821 : (TARGET_64BIT)))
7822 : return -1;
7823 : *pnum_clobbers = 1;
7824 : return 774; /* *andqi_extdi_2_slp */
7825 :
7826 : case 3:
7827 : *pnum_clobbers = 1;
7828 : return 792; /* *andqi_ext2hi_0 */
7829 :
7830 : case 4:
7831 : *pnum_clobbers = 1;
7832 : return 795; /* *andqi_ext2si_0 */
7833 :
7834 : case 5:
7835 : if (!
7836 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7837 : (TARGET_64BIT))
7838 : return -1;
7839 : *pnum_clobbers = 1;
7840 : return 798; /* *andqi_ext2di_0 */
7841 :
7842 : default:
7843 : return -1;
7844 : }
7845 :
7846 : case ROTATE:
7847 : if (GET_MODE (x4) != E_SImode)
7848 : return -1;
7849 : x5 = XEXP (x4, 0);
7850 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + -2])
7851 : return -1;
7852 : x7 = XEXP (x1, 0);
7853 : operands[0] = x7;
7854 : x8 = XEXP (x4, 1);
7855 : operands[2] = x8;
7856 : if (!register_operand (operands[2], E_QImode))
7857 : return -1;
7858 : x6 = XEXP (x2, 1);
7859 : operands[1] = x6;
7860 : switch (GET_MODE (operands[0]))
7861 : {
7862 : case E_QImode:
7863 : if (pattern1367 (x2,
7864 : E_QImode) != 0
7865 : || !
7866 : #line 19302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7867 : (TARGET_USE_BT && ix86_pre_reload_split ()))
7868 : return -1;
7869 : *pnum_clobbers = 1;
7870 : return 1441; /* *btrqi_1 */
7871 :
7872 : case E_HImode:
7873 : if (pattern1367 (x2,
7874 : E_HImode) != 0
7875 : || !
7876 : #line 19302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7877 : (TARGET_USE_BT && ix86_pre_reload_split ()))
7878 : return -1;
7879 : *pnum_clobbers = 1;
7880 : return 1442; /* *btrhi_1 */
7881 :
7882 : default:
7883 : return -1;
7884 : }
7885 :
7886 : default:
7887 : return -1;
7888 : }
7889 :
7890 : case NOT:
7891 : x7 = XEXP (x1, 0);
7892 : operands[0] = x7;
7893 : x4 = XEXP (x3, 0);
7894 : operands[1] = x4;
7895 : res = recog_39 (x1, insn, pnum_clobbers);
7896 : if (res >= 0)
7897 : return res;
7898 : if (pnum_clobbers == NULL
7899 : || !register_operand (operands[0], E_QImode)
7900 : || GET_CODE (x4) != SUBREG
7901 : || maybe_ne (SUBREG_BYTE (x4), 0)
7902 : || GET_MODE (x4) != E_QImode)
7903 : return -1;
7904 : x5 = XEXP (x4, 0);
7905 : if (GET_CODE (x5) != LSHIFTRT)
7906 : return -1;
7907 : x6 = XEXP (x2, 1);
7908 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
7909 : || GET_MODE (x2) != E_QImode
7910 : || GET_MODE (x3) != E_QImode)
7911 : return -1;
7912 : x9 = XEXP (x5, 0);
7913 : operands[1] = x9;
7914 : x10 = XEXP (x5, 1);
7915 : operands[2] = x10;
7916 : if (!register_operand (operands[2], E_QImode))
7917 : return -1;
7918 : switch (GET_MODE (x5))
7919 : {
7920 : case E_SImode:
7921 : if (!register_operand (operands[1], E_SImode)
7922 : || !
7923 : #line 19704 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7924 : (TARGET_USE_BT && ix86_pre_reload_split ()))
7925 : return -1;
7926 : *pnum_clobbers = 1;
7927 : return 1468; /* *btsi_setncqi */
7928 :
7929 : case E_DImode:
7930 : if (!register_operand (operands[1], E_DImode)
7931 : || !(
7932 : #line 19704 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7933 : (TARGET_USE_BT && ix86_pre_reload_split ()) &&
7934 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7935 : (TARGET_64BIT)))
7936 : return -1;
7937 : *pnum_clobbers = 1;
7938 : return 1469; /* *btdi_setncqi */
7939 :
7940 : default:
7941 : return -1;
7942 : }
7943 :
7944 : case UNSPEC:
7945 : x7 = XEXP (x1, 0);
7946 : operands[0] = x7;
7947 : switch (XVECLEN (x3, 0))
7948 : {
7949 : case 3:
7950 : x11 = XVECEXP (x3, 0, 2);
7951 : if (GET_CODE (x11) != CONST_INT)
7952 : return -1;
7953 : x12 = XVECEXP (x3, 0, 0);
7954 : operands[1] = x12;
7955 : x13 = XVECEXP (x3, 0, 1);
7956 : operands[2] = x13;
7957 : switch (XINT (x3, 1))
7958 : {
7959 : case 60:
7960 : operands[3] = x11;
7961 : res = recog_40 (x1, insn, pnum_clobbers);
7962 : if (res >= 0)
7963 : return res;
7964 : if (XWINT (x11, 0) != 0L)
7965 : return -1;
7966 : switch (pattern973 (x2))
7967 : {
7968 : case 0:
7969 : if (!(
7970 : #line 4751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7971 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
7972 : #line 525 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7973 : (TARGET_AVX512VL)))
7974 : return -1;
7975 : return 3472; /* *avx512vl_eqv4si3_and15 */
7976 :
7977 : case 1:
7978 : if (!(
7979 : #line 4751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7980 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
7981 : #line 525 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7982 : (TARGET_AVX512VL)))
7983 : return -1;
7984 : return 3474; /* *avx512vl_eqv4di3_and15 */
7985 :
7986 : case 2:
7987 : if (!
7988 : #line 4800 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7989 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
7990 : return -1;
7991 : return 3479; /* *avx512vl_eqv2di_and3 */
7992 :
7993 : case 3:
7994 : if (!(
7995 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
7996 : (TARGET_AVX512F) && (
7997 : #line 4935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7998 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
7999 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8000 : (TARGET_AVX512VL))))
8001 : return -1;
8002 : return 3570; /* *avx512vl_eqv16qi3_mask_1 */
8003 :
8004 : case 4:
8005 : if (!(
8006 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8007 : (TARGET_AVX512F) && (
8008 : #line 4935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8009 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
8010 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8011 : (TARGET_AVX512VL))))
8012 : return -1;
8013 : return 3582; /* *avx512vl_eqv16hi3_mask_1 */
8014 :
8015 : case 5:
8016 : if (!(
8017 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8018 : (TARGET_AVX512F) &&
8019 : #line 5024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8020 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
8021 : return -1;
8022 : return 3638; /* *avx512f_eqv16si3_mask_1 */
8023 :
8024 : case 6:
8025 : if (!(
8026 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8027 : (TARGET_AVX512F) && (
8028 : #line 4935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8029 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
8030 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8031 : (TARGET_AVX512VL))))
8032 : return -1;
8033 : return 3586; /* *avx512vl_eqv8hi3_mask_1 */
8034 :
8035 : case 7:
8036 : if (!(
8037 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8038 : (TARGET_AVX512F) && (
8039 : #line 5024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8040 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
8041 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8042 : (TARGET_AVX512VL))))
8043 : return -1;
8044 : return 3642; /* *avx512vl_eqv8si3_mask_1 */
8045 :
8046 : case 8:
8047 : if (!(
8048 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8049 : (TARGET_AVX512F) && (
8050 : #line 5024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8051 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
8052 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8053 : (TARGET_AVX512VL))))
8054 : return -1;
8055 : return 3646; /* *avx512vl_eqv4si3_mask_1 */
8056 :
8057 : case 9:
8058 : if (!(
8059 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8060 : (TARGET_AVX512F) &&
8061 : #line 5024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8062 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
8063 : return -1;
8064 : return 3650; /* *avx512f_eqv8di3_mask_1 */
8065 :
8066 : case 10:
8067 : if (!(
8068 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8069 : (TARGET_AVX512F) && (
8070 : #line 5024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8071 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
8072 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8073 : (TARGET_AVX512VL))))
8074 : return -1;
8075 : return 3654; /* *avx512vl_eqv4di3_mask_1 */
8076 :
8077 : case 11:
8078 : if (!(
8079 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8080 : (TARGET_AVX512F) && (
8081 : #line 5024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8082 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
8083 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8084 : (TARGET_AVX512VL))))
8085 : return -1;
8086 : return 3658; /* *avx512vl_eqv2di3_mask_1 */
8087 :
8088 : default:
8089 : return -1;
8090 : }
8091 :
8092 : case 158:
8093 : if (GET_MODE (x3) == E_QImode)
8094 : {
8095 : res = recog_41 (x1, insn, pnum_clobbers);
8096 : if (res >= 0)
8097 : return res;
8098 : }
8099 : if (XWINT (x11, 0) == 0L)
8100 : {
8101 : switch (pattern973 (x2))
8102 : {
8103 : case 0:
8104 : if ((
8105 : #line 4751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8106 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
8107 : #line 525 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8108 : (TARGET_AVX512VL)))
8109 : return 3473; /* *avx512vl_eqv4si3_and15 */
8110 : break;
8111 :
8112 : case 1:
8113 : if ((
8114 : #line 4751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8115 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
8116 : #line 525 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8117 : (TARGET_AVX512VL)))
8118 : return 3475; /* *avx512vl_eqv4di3_and15 */
8119 : break;
8120 :
8121 : case 2:
8122 : if (
8123 : #line 4800 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8124 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8125 : return 3480; /* *avx512vl_eqv2di_and3 */
8126 : break;
8127 :
8128 : case 3:
8129 : if ((
8130 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8131 : (TARGET_AVX512F) && (
8132 : #line 4935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8133 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
8134 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8135 : (TARGET_AVX512VL))))
8136 : return 3572; /* *avx512vl_eqv16qi3_mask_1 */
8137 : break;
8138 :
8139 : case 4:
8140 : if ((
8141 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8142 : (TARGET_AVX512F) && (
8143 : #line 4935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8144 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
8145 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8146 : (TARGET_AVX512VL))))
8147 : return 3584; /* *avx512vl_eqv16hi3_mask_1 */
8148 : break;
8149 :
8150 : case 5:
8151 : if ((
8152 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8153 : (TARGET_AVX512F) &&
8154 : #line 5024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8155 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
8156 : return 3640; /* *avx512f_eqv16si3_mask_1 */
8157 : break;
8158 :
8159 : case 6:
8160 : if ((
8161 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8162 : (TARGET_AVX512F) && (
8163 : #line 4935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8164 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
8165 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8166 : (TARGET_AVX512VL))))
8167 : return 3588; /* *avx512vl_eqv8hi3_mask_1 */
8168 : break;
8169 :
8170 : case 7:
8171 : if ((
8172 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8173 : (TARGET_AVX512F) && (
8174 : #line 5024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8175 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
8176 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8177 : (TARGET_AVX512VL))))
8178 : return 3644; /* *avx512vl_eqv8si3_mask_1 */
8179 : break;
8180 :
8181 : case 8:
8182 : if ((
8183 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8184 : (TARGET_AVX512F) && (
8185 : #line 5024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8186 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
8187 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8188 : (TARGET_AVX512VL))))
8189 : return 3648; /* *avx512vl_eqv4si3_mask_1 */
8190 : break;
8191 :
8192 : case 9:
8193 : if ((
8194 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8195 : (TARGET_AVX512F) &&
8196 : #line 5024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8197 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
8198 : return 3652; /* *avx512f_eqv8di3_mask_1 */
8199 : break;
8200 :
8201 : case 10:
8202 : if ((
8203 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8204 : (TARGET_AVX512F) && (
8205 : #line 5024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8206 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
8207 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8208 : (TARGET_AVX512VL))))
8209 : return 3656; /* *avx512vl_eqv4di3_mask_1 */
8210 : break;
8211 :
8212 : case 11:
8213 : if ((
8214 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8215 : (TARGET_AVX512F) && (
8216 : #line 5024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8217 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
8218 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8219 : (TARGET_AVX512VL))))
8220 : return 3660; /* *avx512vl_eqv2di3_mask_1 */
8221 : break;
8222 :
8223 : default:
8224 : break;
8225 : }
8226 : }
8227 : operands[3] = x11;
8228 : if (!const_0_to_7_operand (operands[3], E_SImode))
8229 : return -1;
8230 : switch (pattern1086 (x2))
8231 : {
8232 : case 0:
8233 : switch (pattern746 ())
8234 : {
8235 : case 0:
8236 : if (!(
8237 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8238 : (TARGET_AVX512F) && (
8239 : #line 4950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8240 : (TARGET_AVX512BW) &&
8241 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8242 : (TARGET_AVX512VL))))
8243 : return -1;
8244 : return 3592; /* avx512vl_ucmpv16qi3_mask */
8245 :
8246 : case 1:
8247 : if (!(
8248 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8249 : (TARGET_AVX512F) && (
8250 : #line 4950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8251 : (TARGET_AVX512BW) &&
8252 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8253 : (TARGET_AVX512VL))))
8254 : return -1;
8255 : return 3598; /* avx512vl_ucmpv16hi3_mask */
8256 :
8257 : case 2:
8258 : if (!
8259 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8260 : (TARGET_AVX512F))
8261 : return -1;
8262 : return 3662; /* avx512f_ucmpv16si3_mask */
8263 :
8264 : default:
8265 : return -1;
8266 : }
8267 :
8268 : case 1:
8269 : switch (pattern747 ())
8270 : {
8271 : case 0:
8272 : if (!(
8273 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8274 : (TARGET_AVX512F) && (
8275 : #line 4950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8276 : (TARGET_AVX512BW) &&
8277 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8278 : (TARGET_AVX512VL))))
8279 : return -1;
8280 : return 3600; /* avx512vl_ucmpv8hi3_mask */
8281 :
8282 : case 1:
8283 : if (!(
8284 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8285 : (TARGET_AVX512F) && (
8286 : #line 5039 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8287 : (TARGET_AVX512F) &&
8288 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8289 : (TARGET_AVX512VL))))
8290 : return -1;
8291 : return 3664; /* avx512vl_ucmpv8si3_mask */
8292 :
8293 : case 2:
8294 : if (!(
8295 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8296 : (TARGET_AVX512F) && (
8297 : #line 5039 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8298 : (TARGET_AVX512F) &&
8299 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8300 : (TARGET_AVX512VL))))
8301 : return -1;
8302 : return 3666; /* avx512vl_ucmpv4si3_mask */
8303 :
8304 : case 3:
8305 : if (!
8306 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8307 : (TARGET_AVX512F))
8308 : return -1;
8309 : return 3668; /* avx512f_ucmpv8di3_mask */
8310 :
8311 : case 4:
8312 : if (!(
8313 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8314 : (TARGET_AVX512F) && (
8315 : #line 5039 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8316 : (TARGET_AVX512F) &&
8317 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8318 : (TARGET_AVX512VL))))
8319 : return -1;
8320 : return 3670; /* avx512vl_ucmpv4di3_mask */
8321 :
8322 : case 5:
8323 : if (!(
8324 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8325 : (TARGET_AVX512F) && (
8326 : #line 5039 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8327 : (TARGET_AVX512F) &&
8328 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8329 : (TARGET_AVX512VL))))
8330 : return -1;
8331 : return 3672; /* avx512vl_ucmpv2di3_mask */
8332 :
8333 : default:
8334 : return -1;
8335 : }
8336 :
8337 : default:
8338 : return -1;
8339 : }
8340 :
8341 : default:
8342 : return -1;
8343 : }
8344 :
8345 : case 2:
8346 : x12 = XVECEXP (x3, 0, 0);
8347 : operands[1] = x12;
8348 : x13 = XVECEXP (x3, 0, 1);
8349 : operands[2] = x13;
8350 : switch (XINT (x3, 1))
8351 : {
8352 : case 159:
8353 : switch (pattern748 (x2))
8354 : {
8355 : case 0:
8356 : if (!(
8357 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8358 : (TARGET_AVX512F) && (
8359 : #line 19390 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8360 : (TARGET_AVX512F) &&
8361 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8362 : (TARGET_AVX512VL && TARGET_AVX512BW))))
8363 : return -1;
8364 : return 8158; /* avx512vl_testmv16qi3_mask */
8365 :
8366 : case 1:
8367 : if (!(
8368 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8369 : (TARGET_AVX512F) && (
8370 : #line 19390 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8371 : (TARGET_AVX512F) &&
8372 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8373 : (TARGET_AVX512VL && TARGET_AVX512BW))))
8374 : return -1;
8375 : return 8162; /* avx512vl_testmv16hi3_mask */
8376 :
8377 : case 2:
8378 : if (!
8379 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8380 : (TARGET_AVX512F))
8381 : return -1;
8382 : return 8166; /* avx512f_testmv16si3_mask */
8383 :
8384 : case 3:
8385 : if (!(
8386 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8387 : (TARGET_AVX512F) && (
8388 : #line 19390 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8389 : (TARGET_AVX512F) &&
8390 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8391 : (TARGET_AVX512VL && TARGET_AVX512BW))))
8392 : return -1;
8393 : return 8164; /* avx512vl_testmv8hi3_mask */
8394 :
8395 : case 4:
8396 : if (!(
8397 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8398 : (TARGET_AVX512F) && (
8399 : #line 19390 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8400 : (TARGET_AVX512F) &&
8401 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8402 : (TARGET_AVX512VL))))
8403 : return -1;
8404 : return 8168; /* avx512vl_testmv8si3_mask */
8405 :
8406 : case 5:
8407 : if (!(
8408 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8409 : (TARGET_AVX512F) && (
8410 : #line 19390 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8411 : (TARGET_AVX512F) &&
8412 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8413 : (TARGET_AVX512VL))))
8414 : return -1;
8415 : return 8170; /* avx512vl_testmv4si3_mask */
8416 :
8417 : case 6:
8418 : if (!
8419 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8420 : (TARGET_AVX512F))
8421 : return -1;
8422 : return 8172; /* avx512f_testmv8di3_mask */
8423 :
8424 : case 7:
8425 : if (!(
8426 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8427 : (TARGET_AVX512F) && (
8428 : #line 19390 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8429 : (TARGET_AVX512F) &&
8430 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8431 : (TARGET_AVX512VL))))
8432 : return -1;
8433 : return 8174; /* avx512vl_testmv4di3_mask */
8434 :
8435 : case 8:
8436 : if (!(
8437 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8438 : (TARGET_AVX512F) && (
8439 : #line 19390 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8440 : (TARGET_AVX512F) &&
8441 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8442 : (TARGET_AVX512VL))))
8443 : return -1;
8444 : return 8176; /* avx512vl_testmv2di3_mask */
8445 :
8446 : default:
8447 : return -1;
8448 : }
8449 :
8450 : case 160:
8451 : switch (pattern748 (x2))
8452 : {
8453 : case 0:
8454 : if (!(
8455 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8456 : (TARGET_AVX512F) && (
8457 : #line 19401 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8458 : (TARGET_AVX512F) &&
8459 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8460 : (TARGET_AVX512VL && TARGET_AVX512BW))))
8461 : return -1;
8462 : return 8182; /* avx512vl_testnmv16qi3_mask */
8463 :
8464 : case 1:
8465 : if (!(
8466 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8467 : (TARGET_AVX512F) && (
8468 : #line 19401 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8469 : (TARGET_AVX512F) &&
8470 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8471 : (TARGET_AVX512VL && TARGET_AVX512BW))))
8472 : return -1;
8473 : return 8186; /* avx512vl_testnmv16hi3_mask */
8474 :
8475 : case 2:
8476 : if (!
8477 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8478 : (TARGET_AVX512F))
8479 : return -1;
8480 : return 8190; /* avx512f_testnmv16si3_mask */
8481 :
8482 : case 3:
8483 : if (!(
8484 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8485 : (TARGET_AVX512F) && (
8486 : #line 19401 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8487 : (TARGET_AVX512F) &&
8488 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8489 : (TARGET_AVX512VL && TARGET_AVX512BW))))
8490 : return -1;
8491 : return 8188; /* avx512vl_testnmv8hi3_mask */
8492 :
8493 : case 4:
8494 : if (!(
8495 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8496 : (TARGET_AVX512F) && (
8497 : #line 19401 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8498 : (TARGET_AVX512F) &&
8499 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8500 : (TARGET_AVX512VL))))
8501 : return -1;
8502 : return 8192; /* avx512vl_testnmv8si3_mask */
8503 :
8504 : case 5:
8505 : if (!(
8506 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8507 : (TARGET_AVX512F) && (
8508 : #line 19401 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8509 : (TARGET_AVX512F) &&
8510 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8511 : (TARGET_AVX512VL))))
8512 : return -1;
8513 : return 8194; /* avx512vl_testnmv4si3_mask */
8514 :
8515 : case 6:
8516 : if (!
8517 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8518 : (TARGET_AVX512F))
8519 : return -1;
8520 : return 8196; /* avx512f_testnmv8di3_mask */
8521 :
8522 : case 7:
8523 : if (!(
8524 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8525 : (TARGET_AVX512F) && (
8526 : #line 19401 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8527 : (TARGET_AVX512F) &&
8528 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8529 : (TARGET_AVX512VL))))
8530 : return -1;
8531 : return 8198; /* avx512vl_testnmv4di3_mask */
8532 :
8533 : case 8:
8534 : if (!(
8535 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8536 : (TARGET_AVX512F) && (
8537 : #line 19401 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8538 : (TARGET_AVX512F) &&
8539 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8540 : (TARGET_AVX512VL))))
8541 : return -1;
8542 : return 8200; /* avx512vl_testnmv2di3_mask */
8543 :
8544 : default:
8545 : return -1;
8546 : }
8547 :
8548 : case 194:
8549 : if (!const_0_to_255_operand (operands[2], E_VOIDmode))
8550 : return -1;
8551 : x6 = XEXP (x2, 1);
8552 : switch (GET_CODE (x6))
8553 : {
8554 : case REG:
8555 : case SUBREG:
8556 : operands[3] = x6;
8557 : switch (GET_MODE (operands[0]))
8558 : {
8559 : case E_HImode:
8560 : if (pattern284 (x2,
8561 : E_HImode) != 0)
8562 : return -1;
8563 : switch (GET_MODE (operands[1]))
8564 : {
8565 : case E_V16HFmode:
8566 : if (!vector_operand (operands[1], E_V16HFmode)
8567 : || !(
8568 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8569 : (TARGET_AVX512F) && (
8570 : #line 30555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8571 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V16HFmode)) &&
8572 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8573 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
8574 : return -1;
8575 : return 10058; /* avx512dq_fpclassv16hf_mask */
8576 :
8577 : case E_V16SFmode:
8578 : if (!vector_operand (operands[1], E_V16SFmode)
8579 : || !(
8580 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8581 : (TARGET_AVX512F) &&
8582 : #line 30555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8583 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V16SFmode))))
8584 : return -1;
8585 : return 10062; /* avx512dq_fpclassv16sf_mask */
8586 :
8587 : default:
8588 : return -1;
8589 : }
8590 :
8591 : case E_QImode:
8592 : if (pattern284 (x2,
8593 : E_QImode) != 0)
8594 : return -1;
8595 : switch (GET_MODE (operands[1]))
8596 : {
8597 : case E_V8HFmode:
8598 : if (!vector_operand (operands[1], E_V8HFmode)
8599 : || !(
8600 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8601 : (TARGET_AVX512F) && (
8602 : #line 30555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8603 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V8HFmode)) &&
8604 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8605 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
8606 : return -1;
8607 : return 10060; /* avx512dq_fpclassv8hf_mask */
8608 :
8609 : case E_V8SFmode:
8610 : if (!vector_operand (operands[1], E_V8SFmode)
8611 : || !(
8612 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8613 : (TARGET_AVX512F) && (
8614 : #line 30555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8615 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V8SFmode)) &&
8616 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8617 : (TARGET_AVX512VL))))
8618 : return -1;
8619 : return 10064; /* avx512dq_fpclassv8sf_mask */
8620 :
8621 : case E_V4SFmode:
8622 : if (!vector_operand (operands[1], E_V4SFmode)
8623 : || !(
8624 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8625 : (TARGET_AVX512F) && (
8626 : #line 30555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8627 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V4SFmode)) &&
8628 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8629 : (TARGET_AVX512VL))))
8630 : return -1;
8631 : return 10066; /* avx512dq_fpclassv4sf_mask */
8632 :
8633 : case E_V8DFmode:
8634 : if (!vector_operand (operands[1], E_V8DFmode)
8635 : || !(
8636 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8637 : (TARGET_AVX512F) &&
8638 : #line 30555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8639 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V8DFmode))))
8640 : return -1;
8641 : return 10068; /* avx512dq_fpclassv8df_mask */
8642 :
8643 : case E_V4DFmode:
8644 : if (!vector_operand (operands[1], E_V4DFmode)
8645 : || !(
8646 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8647 : (TARGET_AVX512F) && (
8648 : #line 30555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8649 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V4DFmode)) &&
8650 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8651 : (TARGET_AVX512VL))))
8652 : return -1;
8653 : return 10070; /* avx512dq_fpclassv4df_mask */
8654 :
8655 : case E_V2DFmode:
8656 : if (!vector_operand (operands[1], E_V2DFmode)
8657 : || !(
8658 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8659 : (TARGET_AVX512F) && (
8660 : #line 30555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8661 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V2DFmode)) &&
8662 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8663 : (TARGET_AVX512VL))))
8664 : return -1;
8665 : return 10072; /* avx512dq_fpclassv2df_mask */
8666 :
8667 : default:
8668 : return -1;
8669 : }
8670 :
8671 : default:
8672 : return -1;
8673 : }
8674 :
8675 : case CONST_INT:
8676 : if (XWINT (x6, 0) != 1L
8677 : || !register_operand (operands[0], E_QImode)
8678 : || GET_MODE (x2) != E_QImode
8679 : || GET_MODE (x3) != E_QImode)
8680 : return -1;
8681 : switch (GET_MODE (operands[1]))
8682 : {
8683 : case E_V8HFmode:
8684 : if (!nonimmediate_operand (operands[1], E_V8HFmode)
8685 : || !(
8686 : #line 30570 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8687 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V8HFmode)) &&
8688 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8689 : (TARGET_AVX512FP16)))
8690 : return -1;
8691 : return 10073; /* avx512dq_vmfpclassv8hf */
8692 :
8693 : case E_V4SFmode:
8694 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
8695 : || !
8696 : #line 30570 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8697 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V4SFmode)))
8698 : return -1;
8699 : return 10075; /* avx512dq_vmfpclassv4sf */
8700 :
8701 : case E_V2DFmode:
8702 : if (!nonimmediate_operand (operands[1], E_V2DFmode)
8703 : || !(
8704 : #line 30570 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8705 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V2DFmode)) &&
8706 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8707 : (TARGET_SSE2)))
8708 : return -1;
8709 : return 10077; /* avx512dq_vmfpclassv2df */
8710 :
8711 : default:
8712 : return -1;
8713 : }
8714 :
8715 : default:
8716 : return -1;
8717 : }
8718 :
8719 : case 215:
8720 : if (GET_MODE (x3) != E_HImode
8721 : || !register_operand (operands[0], E_HImode)
8722 : || GET_MODE (x2) != E_HImode
8723 : || !register_operand (operands[1], E_V16QImode)
8724 : || !nonimmediate_operand (operands[2], E_V16QImode))
8725 : return -1;
8726 : x6 = XEXP (x2, 1);
8727 : operands[3] = x6;
8728 : if (!register_operand (operands[3], E_HImode)
8729 : || !(
8730 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8731 : (TARGET_AVX512F) && (
8732 : #line 31638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8733 : (TARGET_AVX512BITALG) &&
8734 : #line 338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8735 : (TARGET_AVX512VL))))
8736 : return -1;
8737 : return 10400; /* avx512vl_vpshufbitqmbv16qi_mask */
8738 :
8739 : case 263:
8740 : if (!const_0_to_255_operand (operands[2], E_VOIDmode))
8741 : return -1;
8742 : x6 = XEXP (x2, 1);
8743 : operands[3] = x6;
8744 : switch (GET_MODE (operands[0]))
8745 : {
8746 : case E_HImode:
8747 : if (pattern1087 (x2,
8748 : E_HImode,
8749 : E_V16BFmode) != 0
8750 : || !(
8751 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8752 : (TARGET_AVX512F) &&
8753 : #line 33156 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8754 : (TARGET_AVX10_2)))
8755 : return -1;
8756 : return 10794; /* avx10_2_fpclassbf16_v16bf_mask */
8757 :
8758 : case E_QImode:
8759 : if (pattern1087 (x2,
8760 : E_QImode,
8761 : E_V8BFmode) != 0
8762 : || !(
8763 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8764 : (TARGET_AVX512F) &&
8765 : #line 33156 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8766 : (TARGET_AVX10_2)))
8767 : return -1;
8768 : return 10796; /* avx10_2_fpclassbf16_v8bf_mask */
8769 :
8770 : default:
8771 : return -1;
8772 : }
8773 :
8774 : default:
8775 : return -1;
8776 : }
8777 :
8778 : default:
8779 : return -1;
8780 : }
8781 :
8782 : case AND:
8783 : if (GET_MODE (x3) != E_QImode)
8784 : return -1;
8785 : x4 = XEXP (x3, 0);
8786 : if (pattern89 (x4,
8787 : E_QImode,
8788 : 194,
8789 : 2) != 0)
8790 : return -1;
8791 : x14 = XEXP (x3, 1);
8792 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
8793 : return -1;
8794 : x7 = XEXP (x1, 0);
8795 : operands[0] = x7;
8796 : if (!register_operand (operands[0], E_QImode)
8797 : || GET_MODE (x2) != E_QImode)
8798 : return -1;
8799 : x15 = XVECEXP (x4, 0, 0);
8800 : operands[1] = x15;
8801 : x16 = XVECEXP (x4, 0, 1);
8802 : operands[2] = x16;
8803 : if (!const_0_to_255_operand (operands[2], E_VOIDmode))
8804 : return -1;
8805 : x6 = XEXP (x2, 1);
8806 : operands[3] = x6;
8807 : if (!register_operand (operands[3], E_QImode))
8808 : return -1;
8809 : switch (GET_MODE (operands[1]))
8810 : {
8811 : case E_V8HFmode:
8812 : if (!nonimmediate_operand (operands[1], E_V8HFmode)
8813 : || !(
8814 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8815 : (TARGET_AVX512F) && (
8816 : #line 30570 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8817 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V8HFmode)) &&
8818 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8819 : (TARGET_AVX512FP16))))
8820 : return -1;
8821 : return 10074; /* avx512dq_vmfpclassv8hf_mask */
8822 :
8823 : case E_V4SFmode:
8824 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
8825 : || !(
8826 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8827 : (TARGET_AVX512F) &&
8828 : #line 30570 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8829 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V4SFmode))))
8830 : return -1;
8831 : return 10076; /* avx512dq_vmfpclassv4sf_mask */
8832 :
8833 : case E_V2DFmode:
8834 : if (!nonimmediate_operand (operands[1], E_V2DFmode)
8835 : || !(
8836 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8837 : (TARGET_AVX512F) && (
8838 : #line 30570 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8839 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V2DFmode)) &&
8840 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8841 : (TARGET_SSE2))))
8842 : return -1;
8843 : return 10078; /* avx512dq_vmfpclassv2df_mask */
8844 :
8845 : default:
8846 : return -1;
8847 : }
8848 :
8849 : default:
8850 : return -1;
8851 : }
8852 : }
8853 :
8854 : int
8855 : recog_80 (rtx x1 ATTRIBUTE_UNUSED,
8856 : rtx_insn *insn ATTRIBUTE_UNUSED,
8857 : int *pnum_clobbers ATTRIBUTE_UNUSED)
8858 : {
8859 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
8860 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
8861 : rtx x10, x11, x12, x13;
8862 : int res ATTRIBUTE_UNUSED;
8863 : x2 = XEXP (x1, 0);
8864 : operands[0] = x2;
8865 : x3 = XEXP (x1, 1);
8866 : x4 = XEXP (x3, 0);
8867 : switch (GET_CODE (x4))
8868 : {
8869 : case PLUS:
8870 : return recog_75 (x1, insn, pnum_clobbers);
8871 :
8872 : case MINUS:
8873 : return recog_77 (x1, insn, pnum_clobbers);
8874 :
8875 : case MULT:
8876 : x5 = XEXP (x4, 0);
8877 : operands[1] = x5;
8878 : x6 = XEXP (x4, 1);
8879 : operands[2] = x6;
8880 : switch (GET_MODE (operands[0]))
8881 : {
8882 : case E_SImode:
8883 : if (!register_operand (operands[0], E_SImode)
8884 : || GET_MODE (x3) != E_SImode
8885 : || GET_MODE (x4) != E_HImode
8886 : || !nonimmediate_operand (operands[1], E_HImode)
8887 : || !immediate_operand (operands[2], E_HImode))
8888 : return -1;
8889 : if (
8890 : #line 10986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8891 : (TARGET_APX_ZU && TARGET_APX_NF))
8892 : return 624; /* *imulhisizu_nf */
8893 : if (pnum_clobbers == NULL
8894 : || !
8895 : #line 10986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8896 : (TARGET_APX_ZU && true))
8897 : return -1;
8898 : *pnum_clobbers = 1;
8899 : return 625; /* *imulhisizu */
8900 :
8901 : case E_DImode:
8902 : if (!register_operand (operands[0], E_DImode)
8903 : || GET_MODE (x3) != E_DImode)
8904 : return -1;
8905 : switch (GET_MODE (x4))
8906 : {
8907 : case E_HImode:
8908 : if (!nonimmediate_operand (operands[1], E_HImode)
8909 : || !immediate_operand (operands[2], E_HImode))
8910 : return -1;
8911 : if (
8912 : #line 10986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8913 : (TARGET_APX_ZU && TARGET_APX_NF))
8914 : return 626; /* *imulhidizu_nf */
8915 : if (pnum_clobbers == NULL
8916 : || !
8917 : #line 10986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8918 : (TARGET_APX_ZU && true))
8919 : return -1;
8920 : *pnum_clobbers = 1;
8921 : return 627; /* *imulhidizu */
8922 :
8923 : case E_SImode:
8924 : if (!nonimmediate_operand (operands[1], E_SImode)
8925 : || !x86_64_general_operand (operands[2], E_SImode))
8926 : return -1;
8927 : if (
8928 : #line 10998 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8929 : (TARGET_64BIT
8930 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
8931 : && TARGET_APX_NF))
8932 : return 628; /* *mulsi3_1_zext_nf */
8933 : if (pnum_clobbers == NULL
8934 : || !
8935 : #line 10998 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8936 : (TARGET_64BIT
8937 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
8938 : && true))
8939 : return -1;
8940 : *pnum_clobbers = 1;
8941 : return 629; /* *mulsi3_1_zext */
8942 :
8943 : default:
8944 : return -1;
8945 : }
8946 :
8947 : default:
8948 : return -1;
8949 : }
8950 :
8951 : case SMUL_HIGHPART:
8952 : if (pattern113 (x3, pnum_clobbers) != 0
8953 : || !
8954 : #line 11493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8955 : (TARGET_64BIT))
8956 : return -1;
8957 : *pnum_clobbers = 2;
8958 : return 659; /* *smulsi3_highpart_zext */
8959 :
8960 : case UMUL_HIGHPART:
8961 : if (pattern113 (x3, pnum_clobbers) != 0
8962 : || !
8963 : #line 11493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8964 : (TARGET_64BIT))
8965 : return -1;
8966 : *pnum_clobbers = 2;
8967 : return 660; /* *umulsi3_highpart_zext */
8968 :
8969 : case TRUNCATE:
8970 : if (pnum_clobbers == NULL
8971 : || GET_MODE (x4) != E_SImode)
8972 : return -1;
8973 : x5 = XEXP (x4, 0);
8974 : if (GET_CODE (x5) != LSHIFTRT
8975 : || GET_MODE (x5) != E_DImode)
8976 : return -1;
8977 : x7 = XEXP (x5, 0);
8978 : if (GET_CODE (x7) != MULT
8979 : || GET_MODE (x7) != E_DImode)
8980 : return -1;
8981 : x8 = XEXP (x5, 1);
8982 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 32]
8983 : || !register_operand (operands[0], E_DImode)
8984 : || GET_MODE (x3) != E_DImode)
8985 : return -1;
8986 : x9 = XEXP (x7, 0);
8987 : if (GET_MODE (x9) != E_DImode)
8988 : return -1;
8989 : x10 = XEXP (x7, 1);
8990 : if (GET_MODE (x10) != E_DImode)
8991 : return -1;
8992 : switch (GET_CODE (x9))
8993 : {
8994 : case SIGN_EXTEND:
8995 : if (GET_CODE (x10) != SIGN_EXTEND)
8996 : return -1;
8997 : x11 = XEXP (x9, 0);
8998 : operands[1] = x11;
8999 : if (!nonimmediate_operand (operands[1], E_SImode))
9000 : return -1;
9001 : x12 = XEXP (x10, 0);
9002 : operands[2] = x12;
9003 : if (!nonimmediate_operand (operands[2], E_SImode)
9004 : || !
9005 : #line 11541 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9006 : (TARGET_64BIT
9007 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9008 : return -1;
9009 : *pnum_clobbers = 2;
9010 : return 663; /* *smulsi3_highpart_zext */
9011 :
9012 : case ZERO_EXTEND:
9013 : if (GET_CODE (x10) != ZERO_EXTEND)
9014 : return -1;
9015 : x11 = XEXP (x9, 0);
9016 : operands[1] = x11;
9017 : if (!nonimmediate_operand (operands[1], E_SImode))
9018 : return -1;
9019 : x12 = XEXP (x10, 0);
9020 : operands[2] = x12;
9021 : if (!nonimmediate_operand (operands[2], E_SImode)
9022 : || !
9023 : #line 11541 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9024 : (TARGET_64BIT
9025 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9026 : return -1;
9027 : *pnum_clobbers = 2;
9028 : return 664; /* *umulsi3_highpart_zext */
9029 :
9030 : default:
9031 : return -1;
9032 : }
9033 :
9034 : case AND:
9035 : return recog_76 (x1, insn, pnum_clobbers);
9036 :
9037 : case IOR:
9038 : switch (pattern115 (x3, pnum_clobbers))
9039 : {
9040 : case 0:
9041 : if (
9042 : #line 14035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9043 : (TARGET_APX_NDD && TARGET_APX_NF
9044 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9045 : return 875; /* *iorqi_1_zextsi_nf */
9046 : if (pnum_clobbers == NULL
9047 : || !
9048 : #line 14035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9049 : (TARGET_APX_NDD && true
9050 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9051 : return -1;
9052 : *pnum_clobbers = 1;
9053 : return 876; /* *iorqi_1_zextsi */
9054 :
9055 : case 1:
9056 : if (
9057 : #line 14049 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9058 : (TARGET_APX_NDD && TARGET_APX_NF
9059 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9060 : return 883; /* *iorhi_1_zextsi_nf */
9061 : if (pnum_clobbers == NULL
9062 : || !
9063 : #line 14049 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9064 : (TARGET_APX_NDD && true
9065 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9066 : return -1;
9067 : *pnum_clobbers = 1;
9068 : return 884; /* *iorhi_1_zextsi */
9069 :
9070 : case 2:
9071 : if (
9072 : #line 14035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9073 : (TARGET_APX_NDD && TARGET_APX_NF
9074 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9075 : return 879; /* *iorqi_1_zextdi_nf */
9076 : if (pnum_clobbers == NULL
9077 : || !
9078 : #line 14035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9079 : (TARGET_APX_NDD && true
9080 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9081 : return -1;
9082 : *pnum_clobbers = 1;
9083 : return 880; /* *iorqi_1_zextdi */
9084 :
9085 : case 3:
9086 : if (
9087 : #line 14049 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9088 : (TARGET_APX_NDD && TARGET_APX_NF
9089 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9090 : return 887; /* *iorhi_1_zextdi_nf */
9091 : if (pnum_clobbers == NULL
9092 : || !
9093 : #line 14049 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9094 : (TARGET_APX_NDD && true
9095 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9096 : return -1;
9097 : *pnum_clobbers = 1;
9098 : return 888; /* *iorhi_1_zextdi */
9099 :
9100 : case 4:
9101 : if (!
9102 : #line 14065 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9103 : (TARGET_64BIT
9104 : && ix86_binary_operator_ok (IOR, SImode, operands, TARGET_APX_NDD)))
9105 : return -1;
9106 : *pnum_clobbers = 1;
9107 : return 891; /* *iorsi_1_zext */
9108 :
9109 : default:
9110 : return -1;
9111 : }
9112 :
9113 : case XOR:
9114 : return recog_79 (x1, insn, pnum_clobbers);
9115 :
9116 : case NEG:
9117 : x5 = XEXP (x4, 0);
9118 : operands[1] = x5;
9119 : switch (pattern282 (x3, pnum_clobbers))
9120 : {
9121 : case 0:
9122 : if (
9123 : #line 14696 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9124 : (TARGET_APX_NDD && TARGET_APX_NF))
9125 : return 996; /* *negqi_1_zextsi_nf */
9126 : if (pnum_clobbers == NULL
9127 : || !
9128 : #line 14696 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9129 : (TARGET_APX_NDD && true))
9130 : return -1;
9131 : *pnum_clobbers = 1;
9132 : return 997; /* *negqi_1_zextsi */
9133 :
9134 : case 1:
9135 : if (
9136 : #line 14706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9137 : (TARGET_APX_NDD && TARGET_APX_NF))
9138 : return 1000; /* *neghi_1_zextsi_nf */
9139 : if (pnum_clobbers == NULL
9140 : || !
9141 : #line 14706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9142 : (TARGET_APX_NDD && true))
9143 : return -1;
9144 : *pnum_clobbers = 1;
9145 : return 1001; /* *neghi_1_zextsi */
9146 :
9147 : case 2:
9148 : if (
9149 : #line 14696 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9150 : (TARGET_APX_NDD && TARGET_APX_NF))
9151 : return 998; /* *negqi_1_zextdi_nf */
9152 : if (pnum_clobbers == NULL
9153 : || !
9154 : #line 14696 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9155 : (TARGET_APX_NDD && true))
9156 : return -1;
9157 : *pnum_clobbers = 1;
9158 : return 999; /* *negqi_1_zextdi */
9159 :
9160 : case 3:
9161 : if (
9162 : #line 14706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9163 : (TARGET_APX_NDD && TARGET_APX_NF))
9164 : return 1002; /* *neghi_1_zextdi_nf */
9165 : if (pnum_clobbers == NULL
9166 : || !
9167 : #line 14706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9168 : (TARGET_APX_NDD && true))
9169 : return -1;
9170 : *pnum_clobbers = 1;
9171 : return 1003; /* *neghi_1_zextdi */
9172 :
9173 : case 4:
9174 : if (!
9175 : #line 14717 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9176 : (TARGET_64BIT
9177 : && ix86_unary_operator_ok (NEG, SImode, operands, TARGET_APX_NDD)))
9178 : return -1;
9179 : *pnum_clobbers = 1;
9180 : return 1004; /* *negsi_1_zext */
9181 :
9182 : default:
9183 : return -1;
9184 : }
9185 :
9186 : case NOT:
9187 : x5 = XEXP (x4, 0);
9188 : operands[1] = x5;
9189 : switch (GET_MODE (operands[0]))
9190 : {
9191 : case E_SImode:
9192 : switch (pattern281 (x3))
9193 : {
9194 : case 0:
9195 : if (!
9196 : #line 15347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9197 : (TARGET_APX_NDD))
9198 : return -1;
9199 : return 1068; /* *one_cmplqi2_1_zextsi */
9200 :
9201 : case 1:
9202 : if (!
9203 : #line 15356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9204 : (TARGET_APX_NDD))
9205 : return -1;
9206 : return 1070; /* *one_cmplhi2_1_zextsi */
9207 :
9208 : default:
9209 : return -1;
9210 : }
9211 :
9212 : case E_DImode:
9213 : if (!register_operand (operands[0], E_DImode)
9214 : || GET_MODE (x3) != E_DImode)
9215 : return -1;
9216 : switch (GET_MODE (x4))
9217 : {
9218 : case E_QImode:
9219 : if (!nonimmediate_operand (operands[1], E_QImode)
9220 : || !
9221 : #line 15347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9222 : (TARGET_APX_NDD))
9223 : return -1;
9224 : return 1069; /* *one_cmplqi2_1_zextdi */
9225 :
9226 : case E_HImode:
9227 : if (!nonimmediate_operand (operands[1], E_HImode)
9228 : || !
9229 : #line 15356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9230 : (TARGET_APX_NDD))
9231 : return -1;
9232 : return 1071; /* *one_cmplhi2_1_zextdi */
9233 :
9234 : case E_SImode:
9235 : if (!nonimmediate_operand (operands[1], E_SImode)
9236 : || !
9237 : #line 15365 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9238 : (TARGET_64BIT
9239 : && ix86_unary_operator_ok (NOT, SImode, operands, TARGET_APX_NDD)))
9240 : return -1;
9241 : return 1072; /* *one_cmplsi2_1_zext */
9242 :
9243 : default:
9244 : return -1;
9245 : }
9246 :
9247 : default:
9248 : return -1;
9249 : }
9250 :
9251 : case ASHIFT:
9252 : switch (pattern116 (x3))
9253 : {
9254 : case 0:
9255 : if (register_operand (operands[2], E_SImode)
9256 : &&
9257 : #line 16336 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9258 : (TARGET_64BIT && TARGET_BMI2))
9259 : return 1124; /* *bmi2_ashlsi3_1_zext */
9260 : if (pnum_clobbers == NULL
9261 : || !nonmemory_operand (operands[2], E_QImode)
9262 : || !
9263 : #line 16369 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9264 : (TARGET_64BIT
9265 : && ix86_binary_operator_ok (ASHIFT, SImode, operands, TARGET_APX_NDD)))
9266 : return -1;
9267 : *pnum_clobbers = 1;
9268 : return 1135; /* *ashlsi3_1_zext */
9269 :
9270 : case 1:
9271 : if (
9272 : #line 16346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9273 : (TARGET_APX_NDD && TARGET_APX_NF))
9274 : return 1129; /* *ashlqi3_1_zextdi_nf */
9275 : if (pnum_clobbers == NULL
9276 : || !
9277 : #line 16346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9278 : (TARGET_APX_NDD && true))
9279 : return -1;
9280 : *pnum_clobbers = 1;
9281 : return 1130; /* *ashlqi3_1_zextdi */
9282 :
9283 : case 2:
9284 : if (
9285 : #line 16357 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9286 : (TARGET_APX_NDD && TARGET_APX_NF))
9287 : return 1133; /* *ashlhi3_1_zextdi_nf */
9288 : if (pnum_clobbers == NULL
9289 : || !
9290 : #line 16357 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9291 : (TARGET_APX_NDD && true))
9292 : return -1;
9293 : *pnum_clobbers = 1;
9294 : return 1134; /* *ashlhi3_1_zextdi */
9295 :
9296 : case 3:
9297 : if (
9298 : #line 16346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9299 : (TARGET_APX_NDD && TARGET_APX_NF))
9300 : return 1127; /* *ashlqi3_1_zextsi_nf */
9301 : if (pnum_clobbers == NULL
9302 : || !
9303 : #line 16346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9304 : (TARGET_APX_NDD && true))
9305 : return -1;
9306 : *pnum_clobbers = 1;
9307 : return 1128; /* *ashlqi3_1_zextsi */
9308 :
9309 : case 4:
9310 : if (
9311 : #line 16357 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9312 : (TARGET_APX_NDD && TARGET_APX_NF))
9313 : return 1131; /* *ashlhi3_1_zextsi_nf */
9314 : if (pnum_clobbers == NULL
9315 : || !
9316 : #line 16357 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9317 : (TARGET_APX_NDD && true))
9318 : return -1;
9319 : *pnum_clobbers = 1;
9320 : return 1132; /* *ashlhi3_1_zextsi */
9321 :
9322 : default:
9323 : return -1;
9324 : }
9325 :
9326 : case ASHIFTRT:
9327 : if (GET_MODE (x4) == E_SImode
9328 : && register_operand (operands[0], E_DImode))
9329 : {
9330 : res = recog_73 (x1, insn, pnum_clobbers);
9331 : if (res >= 0)
9332 : return res;
9333 : }
9334 : x5 = XEXP (x4, 0);
9335 : operands[1] = x5;
9336 : switch (pattern283 (x3, pnum_clobbers))
9337 : {
9338 : case 0:
9339 : if (
9340 : #line 17791 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9341 : (TARGET_APX_NDD && TARGET_APX_NF))
9342 : return 1224; /* *ashrqi3_1_zextsi_nf */
9343 : if (pnum_clobbers == NULL
9344 : || !
9345 : #line 17791 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9346 : (TARGET_APX_NDD && true))
9347 : return -1;
9348 : *pnum_clobbers = 1;
9349 : return 1225; /* *ashrqi3_1_zextsi */
9350 :
9351 : case 1:
9352 : if (
9353 : #line 17802 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9354 : (TARGET_APX_NDD && TARGET_APX_NF))
9355 : return 1232; /* *ashrhi3_1_zextsi_nf */
9356 : if (pnum_clobbers == NULL
9357 : || !
9358 : #line 17802 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9359 : (TARGET_APX_NDD && true))
9360 : return -1;
9361 : *pnum_clobbers = 1;
9362 : return 1233; /* *ashrhi3_1_zextsi */
9363 :
9364 : case 2:
9365 : if (
9366 : #line 17791 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9367 : (TARGET_APX_NDD && TARGET_APX_NF))
9368 : return 1228; /* *ashrqi3_1_zextdi_nf */
9369 : if (pnum_clobbers == NULL
9370 : || !
9371 : #line 17791 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9372 : (TARGET_APX_NDD && true))
9373 : return -1;
9374 : *pnum_clobbers = 1;
9375 : return 1229; /* *ashrqi3_1_zextdi */
9376 :
9377 : case 3:
9378 : if (
9379 : #line 17802 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9380 : (TARGET_APX_NDD && TARGET_APX_NF))
9381 : return 1236; /* *ashrhi3_1_zextdi_nf */
9382 : if (pnum_clobbers == NULL
9383 : || !
9384 : #line 17802 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9385 : (TARGET_APX_NDD && true))
9386 : return -1;
9387 : *pnum_clobbers = 1;
9388 : return 1237; /* *ashrhi3_1_zextdi */
9389 :
9390 : case 4:
9391 : if (!
9392 : #line 17814 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9393 : (TARGET_64BIT
9394 : && ix86_binary_operator_ok (ASHIFTRT, SImode, operands, TARGET_APX_NDD)))
9395 : return -1;
9396 : *pnum_clobbers = 1;
9397 : return 1239; /* *ashrsi3_1_zext */
9398 :
9399 : default:
9400 : return -1;
9401 : }
9402 :
9403 : case LSHIFTRT:
9404 : switch (pattern116 (x3))
9405 : {
9406 : case 0:
9407 : if (register_operand (operands[2], E_SImode)
9408 : &&
9409 : #line 17781 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9410 : (TARGET_64BIT && TARGET_BMI2))
9411 : return 1216; /* *bmi2_lshrsi3_1_zext */
9412 : if (pnum_clobbers == NULL
9413 : || !nonmemory_operand (operands[2], E_QImode)
9414 : || !
9415 : #line 17814 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9416 : (TARGET_64BIT
9417 : && ix86_binary_operator_ok (LSHIFTRT, SImode, operands, TARGET_APX_NDD)))
9418 : return -1;
9419 : *pnum_clobbers = 1;
9420 : return 1238; /* *lshrsi3_1_zext */
9421 :
9422 : case 1:
9423 : if (
9424 : #line 17791 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9425 : (TARGET_APX_NDD && TARGET_APX_NF))
9426 : return 1226; /* *lshrqi3_1_zextdi_nf */
9427 : if (pnum_clobbers == NULL
9428 : || !
9429 : #line 17791 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9430 : (TARGET_APX_NDD && true))
9431 : return -1;
9432 : *pnum_clobbers = 1;
9433 : return 1227; /* *lshrqi3_1_zextdi */
9434 :
9435 : case 2:
9436 : if (
9437 : #line 17802 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9438 : (TARGET_APX_NDD && TARGET_APX_NF))
9439 : return 1234; /* *lshrhi3_1_zextdi_nf */
9440 : if (pnum_clobbers == NULL
9441 : || !
9442 : #line 17802 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9443 : (TARGET_APX_NDD && true))
9444 : return -1;
9445 : *pnum_clobbers = 1;
9446 : return 1235; /* *lshrhi3_1_zextdi */
9447 :
9448 : case 3:
9449 : if (
9450 : #line 17791 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9451 : (TARGET_APX_NDD && TARGET_APX_NF))
9452 : return 1222; /* *lshrqi3_1_zextsi_nf */
9453 : if (pnum_clobbers == NULL
9454 : || !
9455 : #line 17791 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9456 : (TARGET_APX_NDD && true))
9457 : return -1;
9458 : *pnum_clobbers = 1;
9459 : return 1223; /* *lshrqi3_1_zextsi */
9460 :
9461 : case 4:
9462 : if (
9463 : #line 17802 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9464 : (TARGET_APX_NDD && TARGET_APX_NF))
9465 : return 1230; /* *lshrhi3_1_zextsi_nf */
9466 : if (pnum_clobbers == NULL
9467 : || !
9468 : #line 17802 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9469 : (TARGET_APX_NDD && true))
9470 : return -1;
9471 : *pnum_clobbers = 1;
9472 : return 1231; /* *lshrhi3_1_zextsi */
9473 :
9474 : default:
9475 : return -1;
9476 : }
9477 :
9478 : case ROTATERT:
9479 : switch (pattern116 (x3))
9480 : {
9481 : case 0:
9482 : if (const_0_to_31_operand (operands[2], E_QImode)
9483 : &&
9484 : #line 18920 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9485 : (TARGET_64BIT && TARGET_BMI2 && !optimize_function_for_size_p (cfun)))
9486 : return 1382; /* *bmi2_rorxsi3_1_zext */
9487 : if (pnum_clobbers == NULL
9488 : || !nonmemory_operand (operands[2], E_QImode)
9489 : || !
9490 : #line 18953 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9491 : (TARGET_64BIT && ix86_binary_operator_ok (ROTATERT, SImode, operands)))
9492 : return -1;
9493 : *pnum_clobbers = 1;
9494 : return 1404; /* *rotrsi3_1_zext */
9495 :
9496 : case 1:
9497 : if (
9498 : #line 18930 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9499 : (TARGET_APX_NDD && TARGET_APX_NF))
9500 : return 1393; /* *rotrqi3_1_zextdi_nf */
9501 : if (pnum_clobbers == NULL
9502 : || !
9503 : #line 18930 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9504 : (TARGET_APX_NDD && true))
9505 : return -1;
9506 : *pnum_clobbers = 1;
9507 : return 1394; /* *rotrqi3_1_zextdi */
9508 :
9509 : case 2:
9510 : if (
9511 : #line 18941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9512 : (TARGET_APX_NDD && TARGET_APX_NF))
9513 : return 1401; /* *rotrhi3_1_zextdi_nf */
9514 : if (pnum_clobbers == NULL
9515 : || !
9516 : #line 18941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9517 : (TARGET_APX_NDD && true))
9518 : return -1;
9519 : *pnum_clobbers = 1;
9520 : return 1402; /* *rotrhi3_1_zextdi */
9521 :
9522 : case 3:
9523 : if (
9524 : #line 18930 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9525 : (TARGET_APX_NDD && TARGET_APX_NF))
9526 : return 1389; /* *rotrqi3_1_zextsi_nf */
9527 : if (pnum_clobbers == NULL
9528 : || !
9529 : #line 18930 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9530 : (TARGET_APX_NDD && true))
9531 : return -1;
9532 : *pnum_clobbers = 1;
9533 : return 1390; /* *rotrqi3_1_zextsi */
9534 :
9535 : case 4:
9536 : if (
9537 : #line 18941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9538 : (TARGET_APX_NDD && TARGET_APX_NF))
9539 : return 1397; /* *rotrhi3_1_zextsi_nf */
9540 : if (pnum_clobbers == NULL
9541 : || !
9542 : #line 18941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9543 : (TARGET_APX_NDD && true))
9544 : return -1;
9545 : *pnum_clobbers = 1;
9546 : return 1398; /* *rotrhi3_1_zextsi */
9547 :
9548 : default:
9549 : return -1;
9550 : }
9551 :
9552 : case ROTATE:
9553 : x5 = XEXP (x4, 0);
9554 : operands[1] = x5;
9555 : switch (pattern283 (x3, pnum_clobbers))
9556 : {
9557 : case 0:
9558 : if (
9559 : #line 18930 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9560 : (TARGET_APX_NDD && TARGET_APX_NF))
9561 : return 1387; /* *rotlqi3_1_zextsi_nf */
9562 : if (pnum_clobbers == NULL
9563 : || !
9564 : #line 18930 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9565 : (TARGET_APX_NDD && true))
9566 : return -1;
9567 : *pnum_clobbers = 1;
9568 : return 1388; /* *rotlqi3_1_zextsi */
9569 :
9570 : case 1:
9571 : if (
9572 : #line 18941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9573 : (TARGET_APX_NDD && TARGET_APX_NF))
9574 : return 1395; /* *rotlhi3_1_zextsi_nf */
9575 : if (pnum_clobbers == NULL
9576 : || !
9577 : #line 18941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9578 : (TARGET_APX_NDD && true))
9579 : return -1;
9580 : *pnum_clobbers = 1;
9581 : return 1396; /* *rotlhi3_1_zextsi */
9582 :
9583 : case 2:
9584 : if (
9585 : #line 18930 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9586 : (TARGET_APX_NDD && TARGET_APX_NF))
9587 : return 1391; /* *rotlqi3_1_zextdi_nf */
9588 : if (pnum_clobbers == NULL
9589 : || !
9590 : #line 18930 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9591 : (TARGET_APX_NDD && true))
9592 : return -1;
9593 : *pnum_clobbers = 1;
9594 : return 1392; /* *rotlqi3_1_zextdi */
9595 :
9596 : case 3:
9597 : if (
9598 : #line 18941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9599 : (TARGET_APX_NDD && TARGET_APX_NF))
9600 : return 1399; /* *rotlhi3_1_zextdi_nf */
9601 : if (pnum_clobbers == NULL
9602 : || !
9603 : #line 18941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9604 : (TARGET_APX_NDD && true))
9605 : return -1;
9606 : *pnum_clobbers = 1;
9607 : return 1400; /* *rotlhi3_1_zextdi */
9608 :
9609 : case 4:
9610 : if (!
9611 : #line 18953 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9612 : (TARGET_64BIT && ix86_binary_operator_ok (ROTATE, SImode, operands)))
9613 : return -1;
9614 : *pnum_clobbers = 1;
9615 : return 1403; /* *rotlsi3_1_zext */
9616 :
9617 : default:
9618 : return -1;
9619 : }
9620 :
9621 : case CTZ:
9622 : if (pattern117 (x3, pnum_clobbers,
9623 : E_SImode,
9624 : E_DImode) != 0
9625 : || !
9626 : #line 21532 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9627 : (TARGET_64BIT))
9628 : return -1;
9629 : *pnum_clobbers = 1;
9630 : return 1553; /* *ctzsidi2_uext */
9631 :
9632 : case CLZ:
9633 : if (pattern117 (x3, pnum_clobbers,
9634 : E_SImode,
9635 : E_DImode) != 0
9636 : || !
9637 : #line 21969 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9638 : (TARGET_LZCNT && TARGET_64BIT))
9639 : return -1;
9640 : *pnum_clobbers = 1;
9641 : return 1577; /* *clzsi2_lzcnt_zext_2 */
9642 :
9643 : case POPCOUNT:
9644 : if (pnum_clobbers == NULL)
9645 : return -1;
9646 : x5 = XEXP (x4, 0);
9647 : operands[1] = x5;
9648 : switch (GET_MODE (operands[0]))
9649 : {
9650 : case E_DImode:
9651 : if (pattern628 (x3,
9652 : E_DImode,
9653 : E_SImode) != 0
9654 : || !
9655 : #line 22808 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9656 : (TARGET_POPCNT && TARGET_64BIT))
9657 : return -1;
9658 : *pnum_clobbers = 1;
9659 : return 1668; /* *popcountsi2_zext_2 */
9660 :
9661 : case E_SImode:
9662 : if (pattern628 (x3,
9663 : E_SImode,
9664 : E_HImode) != 0
9665 : || !
9666 : #line 22874 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9667 : (TARGET_POPCNT
9668 : && ix86_pre_reload_split ()))
9669 : return -1;
9670 : *pnum_clobbers = 1;
9671 : return 1671; /* *popcounthi2_2 */
9672 :
9673 : default:
9674 : return -1;
9675 : }
9676 :
9677 : case UNSPEC:
9678 : return recog_74 (x1, insn, pnum_clobbers);
9679 :
9680 : case IF_THEN_ELSE:
9681 : if (GET_MODE (x4) != E_SImode)
9682 : return -1;
9683 : x5 = XEXP (x4, 0);
9684 : if (!ix86_comparison_operator (x5, E_VOIDmode))
9685 : return -1;
9686 : operands[1] = x5;
9687 : x7 = XEXP (x5, 0);
9688 : if (GET_CODE (x7) != REG
9689 : || REGNO (x7) != 17)
9690 : return -1;
9691 : x8 = XEXP (x5, 1);
9692 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
9693 : || !nonimmediate_operand (operands[0], E_DImode)
9694 : || GET_MODE (x3) != E_DImode)
9695 : return -1;
9696 : x6 = XEXP (x4, 1);
9697 : operands[2] = x6;
9698 : if (!nonimmediate_operand (operands[2], E_SImode))
9699 : return -1;
9700 : x13 = XEXP (x4, 2);
9701 : operands[3] = x13;
9702 : if (!nonimmediate_operand (operands[3], E_SImode)
9703 : || !
9704 : #line 26817 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9705 : (TARGET_64BIT
9706 : && TARGET_CMOVE && !(MEM_P (operands[2]) && MEM_P (operands[3]))))
9707 : return -1;
9708 : return 1841; /* *movsicc_noc_zext_1 */
9709 :
9710 : case VEC_SELECT:
9711 : return recog_78 (x1, insn, pnum_clobbers);
9712 :
9713 : case SUBREG:
9714 : if (pattern118 (x3) != 0
9715 : || !
9716 : #line 22491 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9717 : (TARGET_SSE2 && ix86_pre_reload_split ()))
9718 : return -1;
9719 : return 8605; /* *sse2_pmovskb_zexthisi */
9720 :
9721 : default:
9722 : return -1;
9723 : }
9724 : }
9725 :
9726 : int
9727 : recog_107 (rtx x1 ATTRIBUTE_UNUSED,
9728 : rtx_insn *insn ATTRIBUTE_UNUSED,
9729 : int *pnum_clobbers ATTRIBUTE_UNUSED)
9730 : {
9731 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
9732 : rtx x2, x3;
9733 : int res ATTRIBUTE_UNUSED;
9734 : switch (pattern18 (x1, pnum_clobbers))
9735 : {
9736 : case 0:
9737 : if (!
9738 : #line 18532 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9739 : (ix86_binary_operator_ok (ROTATERT, SImode, operands)
9740 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
9741 : == GET_MODE_BITSIZE (SImode)-1
9742 : && ix86_pre_reload_split ()))
9743 : return -1;
9744 : *pnum_clobbers = 1;
9745 : return 1329; /* *rotrsi3_mask_1 */
9746 :
9747 : case 1:
9748 : if (!(
9749 : #line 18532 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9750 : (ix86_binary_operator_ok (ROTATERT, DImode, operands)
9751 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
9752 : == GET_MODE_BITSIZE (DImode)-1
9753 : && ix86_pre_reload_split ()) &&
9754 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9755 : (TARGET_64BIT)))
9756 : return -1;
9757 : *pnum_clobbers = 1;
9758 : return 1331; /* *rotrdi3_mask_1 */
9759 :
9760 : case 2:
9761 : if (!
9762 : #line 18613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9763 : (ix86_binary_operator_ok (ROTATERT, SImode, operands)
9764 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
9765 : && ix86_pre_reload_split ()))
9766 : return -1;
9767 : *pnum_clobbers = 1;
9768 : return 1345; /* *rotrsi3_add_1 */
9769 :
9770 : case 3:
9771 : if (!(
9772 : #line 18613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9773 : (ix86_binary_operator_ok (ROTATERT, DImode, operands)
9774 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
9775 : && ix86_pre_reload_split ()) &&
9776 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9777 : (TARGET_64BIT)))
9778 : return -1;
9779 : *pnum_clobbers = 1;
9780 : return 1347; /* *rotrdi3_add_1 */
9781 :
9782 : case 4:
9783 : if (!
9784 : #line 18682 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9785 : (ix86_binary_operator_ok (ROTATERT, SImode, operands)
9786 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
9787 : && ix86_pre_reload_split ()))
9788 : return -1;
9789 : *pnum_clobbers = 1;
9790 : return 1361; /* *rotrsi3_sub_1 */
9791 :
9792 : case 5:
9793 : if (!(
9794 : #line 18682 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9795 : (ix86_binary_operator_ok (ROTATERT, DImode, operands)
9796 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
9797 : && ix86_pre_reload_split ()) &&
9798 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9799 : (TARGET_64BIT)))
9800 : return -1;
9801 : *pnum_clobbers = 1;
9802 : return 1363; /* *rotrdi3_sub_1 */
9803 :
9804 : case 6:
9805 : x2 = XEXP (x1, 1);
9806 : x3 = XEXP (x2, 1);
9807 : switch (GET_CODE (x3))
9808 : {
9809 : case SUBREG:
9810 : switch (pattern454 (x2, pnum_clobbers))
9811 : {
9812 : case 0:
9813 : if (
9814 : #line 18484 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9815 : (ix86_binary_operator_ok (ROTATERT, SImode, operands)
9816 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
9817 : == GET_MODE_BITSIZE (SImode)-1
9818 : && ix86_pre_reload_split ()))
9819 : {
9820 : *pnum_clobbers = 1;
9821 : return 1321; /* *rotrsi3_mask */
9822 : }
9823 : break;
9824 :
9825 : case 1:
9826 : if ((
9827 : #line 18484 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9828 : (ix86_binary_operator_ok (ROTATERT, DImode, operands)
9829 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
9830 : == GET_MODE_BITSIZE (DImode)-1
9831 : && ix86_pre_reload_split ()) &&
9832 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9833 : (TARGET_64BIT)))
9834 : {
9835 : *pnum_clobbers = 1;
9836 : return 1323; /* *rotrdi3_mask */
9837 : }
9838 : break;
9839 :
9840 : case 2:
9841 : if (
9842 : #line 18577 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9843 : (ix86_binary_operator_ok (ROTATERT, SImode, operands)
9844 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
9845 : && ix86_pre_reload_split ()))
9846 : {
9847 : *pnum_clobbers = 1;
9848 : return 1337; /* *rotrsi3_add */
9849 : }
9850 : break;
9851 :
9852 : case 3:
9853 : if ((
9854 : #line 18577 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9855 : (ix86_binary_operator_ok (ROTATERT, DImode, operands)
9856 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
9857 : && ix86_pre_reload_split ()) &&
9858 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9859 : (TARGET_64BIT)))
9860 : {
9861 : *pnum_clobbers = 1;
9862 : return 1339; /* *rotrdi3_add */
9863 : }
9864 : break;
9865 :
9866 : case 4:
9867 : if (
9868 : #line 18646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9869 : (ix86_binary_operator_ok (ROTATERT, SImode, operands)
9870 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
9871 : && ix86_pre_reload_split ()))
9872 : {
9873 : *pnum_clobbers = 1;
9874 : return 1353; /* *rotrsi3_sub */
9875 : }
9876 : break;
9877 :
9878 : case 5:
9879 : if ((
9880 : #line 18646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9881 : (ix86_binary_operator_ok (ROTATERT, DImode, operands)
9882 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
9883 : && ix86_pre_reload_split ()) &&
9884 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9885 : (TARGET_64BIT)))
9886 : {
9887 : *pnum_clobbers = 1;
9888 : return 1355; /* *rotrdi3_sub */
9889 : }
9890 : break;
9891 :
9892 : default:
9893 : break;
9894 : }
9895 : break;
9896 :
9897 : case CONST_INT:
9898 : operands[2] = x3;
9899 : switch (GET_MODE (operands[0]))
9900 : {
9901 : case E_DImode:
9902 : if (pattern624 (x2, pnum_clobbers,
9903 : E_DImode) == 0
9904 : && const_1_to_31_operand (operands[2], E_QImode)
9905 : &&
9906 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9907 : (!TARGET_64BIT))
9908 : {
9909 : *pnum_clobbers = 2;
9910 : return 1366; /* ix86_rotrdi3_doubleword */
9911 : }
9912 : break;
9913 :
9914 : case E_SImode:
9915 : if (register_operand (operands[0], E_SImode)
9916 : && GET_MODE (x2) == E_SImode
9917 : && nonimmediate_operand (operands[1], E_SImode)
9918 : && const_0_to_31_operand (operands[2], E_QImode)
9919 : &&
9920 : #line 18828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9921 : (TARGET_BMI2 && !optimize_function_for_size_p (cfun)))
9922 : return 1372; /* *bmi2_rorxsi3_1 */
9923 : break;
9924 :
9925 : default:
9926 : break;
9927 : }
9928 : if (register_operand (operands[0], E_DImode)
9929 : && GET_MODE (x2) == E_DImode)
9930 : {
9931 : if (XWINT (x3, 0) == 32L
9932 : && register_operand (operands[1], E_DImode)
9933 : &&
9934 : #line 18787 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9935 : (!TARGET_64BIT))
9936 : return 1369; /* rotr32di2_doubleword */
9937 : if (nonimmediate_operand (operands[1], E_DImode))
9938 : {
9939 : operands[2] = x3;
9940 : if (const_0_to_63_operand (operands[2], E_QImode)
9941 : && (
9942 : #line 18828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9943 : (TARGET_BMI2 && !optimize_function_for_size_p (cfun)) &&
9944 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9945 : (TARGET_64BIT)))
9946 : return 1373; /* *bmi2_rorxdi3_1 */
9947 : }
9948 : }
9949 : break;
9950 :
9951 : default:
9952 : break;
9953 : }
9954 : operands[2] = x3;
9955 : if (!nonmemory_operand (operands[2], E_QImode))
9956 : return -1;
9957 : switch (pattern14 (x2))
9958 : {
9959 : case 0:
9960 : if (
9961 : #line 18838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9962 : (ix86_binary_operator_ok (ROTATERT, SImode, operands, TARGET_APX_NDD)
9963 : && TARGET_APX_NF))
9964 : return 1376; /* *rotrsi3_1_nf */
9965 : if (pnum_clobbers == NULL
9966 : || !
9967 : #line 18838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9968 : (ix86_binary_operator_ok (ROTATERT, SImode, operands, TARGET_APX_NDD)
9969 : && true))
9970 : return -1;
9971 : *pnum_clobbers = 1;
9972 : return 1377; /* *rotrsi3_1 */
9973 :
9974 : case 1:
9975 : if ((
9976 : #line 18838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9977 : (ix86_binary_operator_ok (ROTATERT, DImode, operands, TARGET_APX_NDD)
9978 : && TARGET_APX_NF) &&
9979 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9980 : (TARGET_64BIT)))
9981 : return 1380; /* *rotrdi3_1_nf */
9982 : if (pnum_clobbers == NULL
9983 : || !(
9984 : #line 18838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9985 : (ix86_binary_operator_ok (ROTATERT, DImode, operands, TARGET_APX_NDD)
9986 : && true) &&
9987 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9988 : (TARGET_64BIT)))
9989 : return -1;
9990 : *pnum_clobbers = 1;
9991 : return 1381; /* *rotrdi3_1 */
9992 :
9993 : default:
9994 : return -1;
9995 : }
9996 :
9997 : default:
9998 : return -1;
9999 : }
10000 : }
10001 :
10002 : int
10003 : recog_119 (rtx x1 ATTRIBUTE_UNUSED,
10004 : rtx_insn *insn ATTRIBUTE_UNUSED,
10005 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10006 : {
10007 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10008 : rtx x2, x3, x4;
10009 : int res ATTRIBUTE_UNUSED;
10010 : x2 = XEXP (x1, 0);
10011 : operands[0] = x2;
10012 : x3 = XEXP (x1, 1);
10013 : x4 = XEXP (x3, 0);
10014 : switch (GET_CODE (x4))
10015 : {
10016 : case REG:
10017 : case SUBREG:
10018 : case MEM:
10019 : operands[1] = x4;
10020 : switch (pattern132 (x3))
10021 : {
10022 : case 0:
10023 : if (
10024 : #line 22660 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10025 : (TARGET_APX_NF && TARGET_POPCNT))
10026 : return 1658; /* popcountsi2_nf */
10027 : if (pnum_clobbers == NULL
10028 : || !
10029 : #line 22686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10030 : (TARGET_POPCNT))
10031 : return -1;
10032 : *pnum_clobbers = 1;
10033 : return 1660; /* popcountsi2 */
10034 :
10035 : case 1:
10036 : if ((
10037 : #line 22660 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10038 : (TARGET_APX_NF && TARGET_POPCNT) &&
10039 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10040 : (TARGET_64BIT)))
10041 : return 1659; /* popcountdi2_nf */
10042 : if (pnum_clobbers == NULL
10043 : || !(
10044 : #line 22686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10045 : (TARGET_POPCNT) &&
10046 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10047 : (TARGET_64BIT)))
10048 : return -1;
10049 : *pnum_clobbers = 1;
10050 : return 1661; /* popcountdi2 */
10051 :
10052 : default:
10053 : return -1;
10054 : }
10055 :
10056 : case ZERO_EXTEND:
10057 : if (pattern117 (x3, pnum_clobbers,
10058 : E_HImode,
10059 : E_SImode) != 0
10060 : || !
10061 : #line 22856 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10062 : (TARGET_POPCNT
10063 : && ix86_pre_reload_split ()))
10064 : return -1;
10065 : *pnum_clobbers = 1;
10066 : return 1670; /* *popcounthi2_1 */
10067 :
10068 : default:
10069 : return -1;
10070 : }
10071 : }
10072 :
10073 : int
10074 : recog_123 (rtx x1 ATTRIBUTE_UNUSED,
10075 : rtx_insn *insn ATTRIBUTE_UNUSED,
10076 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10077 : {
10078 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10079 : rtx x2, x3, x4, x5, x6;
10080 : int res ATTRIBUTE_UNUSED;
10081 : x2 = XEXP (x1, 1);
10082 : x3 = XEXP (x2, 0);
10083 : if (GET_CODE (x3) != SUBREG
10084 : || maybe_ne (SUBREG_BYTE (x3), 0)
10085 : || GET_MODE (x3) != E_V2DImode)
10086 : return -1;
10087 : x4 = XEXP (x2, 1);
10088 : x5 = XVECEXP (x4, 0, 0);
10089 : if (XWINT (x5, 0) != 0L
10090 : || GET_MODE (x2) != E_DImode)
10091 : return -1;
10092 : x6 = XEXP (x3, 0);
10093 : switch (pattern1220 (x6))
10094 : {
10095 : case 0:
10096 : if (pshufb_truncv8hiv8qi_operand (operands[2], E_V16QImode)
10097 : &&
10098 : #line 15707 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10099 : (TARGET_AVX512VL && TARGET_AVX512BW && ix86_pre_reload_split ()))
10100 : return 7330; /* *avx512f_pshufb_truncv8hiv8qi_1 */
10101 : if (!pshufb_truncv4siv4hi_operand (operands[2], E_V16QImode)
10102 : || !
10103 : #line 16062 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10104 : (TARGET_AVX512VL && ix86_pre_reload_split ()))
10105 : return -1;
10106 : return 7415; /* *avx512f_pshufb_truncv4siv4hi_1 */
10107 :
10108 : case 1:
10109 : if (!
10110 : #line 16303 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10111 : (TARGET_AVX512VL && ix86_pre_reload_split ()))
10112 : return -1;
10113 : return 7464; /* *avx512f_pshufd_truncv2div2si_1 */
10114 :
10115 : default:
10116 : return -1;
10117 : }
10118 : }
10119 :
10120 : int
10121 : recog_124 (rtx x1 ATTRIBUTE_UNUSED,
10122 : rtx_insn *insn ATTRIBUTE_UNUSED,
10123 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10124 : {
10125 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10126 : rtx x2, x3, x4, x5, x6;
10127 : int res ATTRIBUTE_UNUSED;
10128 : x2 = XEXP (x1, 1);
10129 : x3 = XEXP (x2, 1);
10130 : if (GET_CODE (x3) != PARALLEL
10131 : || XVECLEN (x3, 0) != 1)
10132 : return -1;
10133 : x4 = XVECEXP (x3, 0, 0);
10134 : if (GET_CODE (x4) != CONST_INT)
10135 : return -1;
10136 : x5 = XEXP (x1, 0);
10137 : operands[0] = x5;
10138 : x6 = XEXP (x2, 0);
10139 : operands[1] = x6;
10140 : res = recog_122 (x1, insn, pnum_clobbers);
10141 : if (res >= 0)
10142 : return res;
10143 : if (register_operand (operands[0], E_DImode))
10144 : {
10145 : res = recog_123 (x1, insn, pnum_clobbers);
10146 : if (res >= 0)
10147 : return res;
10148 : }
10149 : if (!nonimmediate_operand (operands[0], E_DImode)
10150 : || XWINT (x4, 0) != 0L
10151 : || GET_MODE (x2) != E_DImode)
10152 : return -1;
10153 : operands[1] = x6;
10154 : if (!nonimmediate_operand (operands[1], E_V2DImode))
10155 : return -1;
10156 : if ((
10157 : #line 21497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10158 : (TARGET_SSE && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
10159 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10160 : (TARGET_64BIT)))
10161 : return 8512; /* *vec_extractv2di_0 */
10162 : if (!
10163 : #line 21511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10164 : (TARGET_SSE && !TARGET_64BIT
10165 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
10166 : return -1;
10167 : return 8513; /* *vec_extractv2di_0_sse */
10168 : }
10169 :
10170 : int
10171 : recog_126 (rtx x1 ATTRIBUTE_UNUSED,
10172 : rtx_insn *insn ATTRIBUTE_UNUSED,
10173 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10174 : {
10175 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10176 : rtx x2;
10177 : int res ATTRIBUTE_UNUSED;
10178 : x2 = XEXP (x1, 1);
10179 : switch (pattern641 (x2))
10180 : {
10181 : case 0:
10182 : if (pattern644 (x2,
10183 : E_V32HImode,
10184 : E_SImode,
10185 : E_V32HFmode) != 0
10186 : || !(
10187 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10188 : (TARGET_AVX512F) &&
10189 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10190 : (TARGET_AVX512FP16)))
10191 : return -1;
10192 : return 4451; /* avx512fp16_vcvtph2w_v32hi_mask */
10193 :
10194 : case 1:
10195 : switch (pattern997 (x2))
10196 : {
10197 : case 0:
10198 : if (!(
10199 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10200 : (TARGET_AVX512F) &&
10201 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10202 : (TARGET_AVX512FP16)))
10203 : return -1;
10204 : return 4459; /* avx512fp16_vcvtph2dq_v16si_mask */
10205 :
10206 : case 1:
10207 : if (!
10208 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10209 : (TARGET_AVX512F))
10210 : return -1;
10211 : return 4879; /* avx512f_fix_notruncv16sfv16si_mask */
10212 :
10213 : default:
10214 : return -1;
10215 : }
10216 :
10217 : case 2:
10218 : switch (pattern996 (x2,
10219 : E_V8DImode))
10220 : {
10221 : case 0:
10222 : if (!(
10223 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10224 : (TARGET_AVX512F) &&
10225 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10226 : (TARGET_AVX512FP16)))
10227 : return -1;
10228 : return 4467; /* avx512fp16_vcvtph2qq_v8di_mask */
10229 :
10230 : case 1:
10231 : if (!(
10232 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10233 : (TARGET_AVX512F) &&
10234 : #line 9050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10235 : (TARGET_AVX512DQ && 1)))
10236 : return -1;
10237 : return 4895; /* avx512dq_cvtps2qqv8di_mask */
10238 :
10239 : case 2:
10240 : if (!(
10241 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10242 : (TARGET_AVX512F) &&
10243 : #line 10040 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10244 : (TARGET_AVX512DQ && 1)))
10245 : return -1;
10246 : return 5121; /* fix_notruncv8dfv8di2_mask */
10247 :
10248 : default:
10249 : return -1;
10250 : }
10251 :
10252 : case 3:
10253 : if (pattern644 (x2,
10254 : E_V16HImode,
10255 : E_HImode,
10256 : E_V16HFmode) != 0
10257 : || !(
10258 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10259 : (TARGET_AVX512F) && (
10260 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10261 : (TARGET_AVX512FP16) &&
10262 : #line 751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10263 : (TARGET_AVX512VL))))
10264 : return -1;
10265 : return 4475; /* avx512fp16_vcvtph2w_v16hi_mask */
10266 :
10267 : case 4:
10268 : if (pattern142 (x2,
10269 : E_V8SImode,
10270 : E_QImode) != 0)
10271 : return -1;
10272 : switch (GET_MODE (operands[1]))
10273 : {
10274 : case E_V8HFmode:
10275 : if (!vector_operand (operands[1], E_V8HFmode)
10276 : || !(
10277 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10278 : (TARGET_AVX512F) && (
10279 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10280 : (TARGET_AVX512FP16) &&
10281 : #line 751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10282 : (TARGET_AVX512VL))))
10283 : return -1;
10284 : return 4483; /* avx512fp16_vcvtph2dq_v8si_mask */
10285 :
10286 : case E_V8SFmode:
10287 : if (!vector_operand (operands[1], E_V8SFmode)
10288 : || !(
10289 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10290 : (TARGET_AVX512F) && (
10291 : #line 9013 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10292 : (TARGET_SSE2 && (32 == 64 || TARGET_AVX512VL)) &&
10293 : #line 659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10294 : (TARGET_AVX))))
10295 : return -1;
10296 : return 4874; /* avx_fix_notruncv8sfv8si_mask */
10297 :
10298 : case E_V8DFmode:
10299 : if (!vector_operand (operands[1], E_V8DFmode)
10300 : || !
10301 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10302 : (TARGET_AVX512F))
10303 : return -1;
10304 : return 5039; /* avx512f_cvtpd2dq512_mask */
10305 :
10306 : default:
10307 : return -1;
10308 : }
10309 :
10310 : case 5:
10311 : switch (pattern1115 (x2,
10312 : E_V4DImode))
10313 : {
10314 : case 0:
10315 : if (!vector_operand (operands[1], E_V8HFmode)
10316 : || !(
10317 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10318 : (TARGET_AVX512F) && (
10319 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10320 : (TARGET_AVX512FP16) &&
10321 : #line 752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10322 : (TARGET_AVX512VL))))
10323 : return -1;
10324 : return 4491; /* avx512fp16_vcvtph2qq_v4di_mask */
10325 :
10326 : case 1:
10327 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
10328 : || !(
10329 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10330 : (TARGET_AVX512F) && (
10331 : #line 9050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10332 : (TARGET_AVX512DQ && 1) &&
10333 : #line 620 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10334 : (TARGET_AVX512VL))))
10335 : return -1;
10336 : return 4898; /* avx512dq_cvtps2qqv4di_mask */
10337 :
10338 : case 2:
10339 : if (!vector_operand (operands[1], E_V4DFmode)
10340 : || !(
10341 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10342 : (TARGET_AVX512F) && (
10343 : #line 10040 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10344 : (TARGET_AVX512DQ && 1) &&
10345 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10346 : (TARGET_AVX512VL))))
10347 : return -1;
10348 : return 5124; /* fix_notruncv4dfv4di2_mask */
10349 :
10350 : default:
10351 : return -1;
10352 : }
10353 :
10354 : case 6:
10355 : if (pattern644 (x2,
10356 : E_V8HImode,
10357 : E_QImode,
10358 : E_V8HFmode) != 0
10359 : || !(
10360 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10361 : (TARGET_AVX512F) && (
10362 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10363 : (TARGET_AVX512FP16) &&
10364 : #line 752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10365 : (TARGET_AVX512VL))))
10366 : return -1;
10367 : return 4499; /* avx512fp16_vcvtph2w_v8hi_mask */
10368 :
10369 : case 7:
10370 : switch (pattern1115 (x2,
10371 : E_V4SImode))
10372 : {
10373 : case 0:
10374 : if (!vector_operand (operands[1], E_V8HFmode)
10375 : || !(
10376 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10377 : (TARGET_AVX512F) && (
10378 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10379 : (TARGET_AVX512FP16) &&
10380 : #line 753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10381 : (TARGET_AVX512VL))))
10382 : return -1;
10383 : return 4507; /* avx512fp16_vcvtph2dq_v4si_mask */
10384 :
10385 : case 1:
10386 : if (!vector_operand (operands[1], E_V4SFmode)
10387 : || !(
10388 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10389 : (TARGET_AVX512F) &&
10390 : #line 9013 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10391 : (TARGET_SSE2 && (16 == 64 || TARGET_AVX512VL))))
10392 : return -1;
10393 : return 4876; /* sse2_fix_notruncv4sfv4si_mask */
10394 :
10395 : case 2:
10396 : if (!nonimmediate_operand (operands[1], E_V4DFmode)
10397 : || !(
10398 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10399 : (TARGET_AVX512F) &&
10400 : #line 9741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10401 : (TARGET_AVX && TARGET_AVX512VL)))
10402 : return -1;
10403 : return 5042; /* avx_cvtpd2dq256_mask */
10404 :
10405 : default:
10406 : return -1;
10407 : }
10408 :
10409 : case 8:
10410 : switch (pattern1114 (x2))
10411 : {
10412 : case 0:
10413 : if (!vector_operand (operands[1], E_V8HFmode)
10414 : || !(
10415 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10416 : (TARGET_AVX512F) && (
10417 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10418 : (TARGET_AVX512FP16) &&
10419 : #line 753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10420 : (TARGET_AVX512VL))))
10421 : return -1;
10422 : return 4515; /* avx512fp16_vcvtph2qq_v2di_mask */
10423 :
10424 : case 1:
10425 : if (!vector_operand (operands[1], E_V2DFmode)
10426 : || !(
10427 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10428 : (TARGET_AVX512F) && (
10429 : #line 10040 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10430 : (TARGET_AVX512DQ && 1) &&
10431 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10432 : (TARGET_AVX512VL))))
10433 : return -1;
10434 : return 5126; /* fix_notruncv2dfv2di2_mask */
10435 :
10436 : default:
10437 : return -1;
10438 : }
10439 :
10440 : case 9:
10441 : if (!(
10442 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10443 : (TARGET_AVX512F) &&
10444 : #line 9063 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10445 : (TARGET_AVX512DQ && TARGET_AVX512VL)))
10446 : return -1;
10447 : return 4900; /* avx512dq_cvtps2qqv2di_mask */
10448 :
10449 : default:
10450 : return -1;
10451 : }
10452 : }
10453 :
10454 : int
10455 : recog_130 (rtx x1 ATTRIBUTE_UNUSED,
10456 : rtx_insn *insn ATTRIBUTE_UNUSED,
10457 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10458 : {
10459 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10460 : rtx x2, x3, x4, x5;
10461 : int res ATTRIBUTE_UNUSED;
10462 : x2 = XEXP (x1, 1);
10463 : x3 = XEXP (x2, 0);
10464 : x4 = XVECEXP (x3, 0, 0);
10465 : operands[1] = x4;
10466 : x5 = XEXP (x2, 2);
10467 : operands[3] = x5;
10468 : switch (GET_MODE (operands[0]))
10469 : {
10470 : case E_V64QImode:
10471 : if (pattern1003 (x2,
10472 : E_V64QImode,
10473 : E_DImode) != 0
10474 : || !(
10475 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10476 : (TARGET_AVX512F) && (
10477 : #line 33386 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10478 : (TARGET_AVX10_2 && TARGET_MOVRS) &&
10479 : #line 500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10480 : (TARGET_AVX512BW))))
10481 : return -1;
10482 : return 11026; /* avx10_2_vmovrsbv64qi_mask */
10483 :
10484 : case E_V32QImode:
10485 : if (pattern1003 (x2,
10486 : E_V32QImode,
10487 : E_SImode) != 0
10488 : || !(
10489 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10490 : (TARGET_AVX512F) && (
10491 : #line 33386 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10492 : (TARGET_AVX10_2 && TARGET_MOVRS) &&
10493 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10494 : (TARGET_AVX512VL && TARGET_AVX512BW))))
10495 : return -1;
10496 : return 11028; /* avx10_2_vmovrsbv32qi_mask */
10497 :
10498 : case E_V16QImode:
10499 : if (pattern1003 (x2,
10500 : E_V16QImode,
10501 : E_HImode) != 0
10502 : || !(
10503 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10504 : (TARGET_AVX512F) && (
10505 : #line 33386 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10506 : (TARGET_AVX10_2 && TARGET_MOVRS) &&
10507 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10508 : (TARGET_AVX512VL && TARGET_AVX512BW))))
10509 : return -1;
10510 : return 11030; /* avx10_2_vmovrsbv16qi_mask */
10511 :
10512 : case E_V32HImode:
10513 : if (pattern1003 (x2,
10514 : E_V32HImode,
10515 : E_SImode) != 0
10516 : || !(
10517 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10518 : (TARGET_AVX512F) && (
10519 : #line 33386 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10520 : (TARGET_AVX10_2 && TARGET_MOVRS) &&
10521 : #line 503 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10522 : (TARGET_AVX512BW))))
10523 : return -1;
10524 : return 11032; /* avx10_2_vmovrswv32hi_mask */
10525 :
10526 : case E_V16HImode:
10527 : if (pattern1003 (x2,
10528 : E_V16HImode,
10529 : E_HImode) != 0
10530 : || !(
10531 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10532 : (TARGET_AVX512F) && (
10533 : #line 33386 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10534 : (TARGET_AVX10_2 && TARGET_MOVRS) &&
10535 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10536 : (TARGET_AVX512VL && TARGET_AVX512BW))))
10537 : return -1;
10538 : return 11034; /* avx10_2_vmovrswv16hi_mask */
10539 :
10540 : case E_V8HImode:
10541 : if (pattern1003 (x2,
10542 : E_V8HImode,
10543 : E_QImode) != 0
10544 : || !(
10545 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10546 : (TARGET_AVX512F) && (
10547 : #line 33386 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10548 : (TARGET_AVX10_2 && TARGET_MOVRS) &&
10549 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10550 : (TARGET_AVX512VL && TARGET_AVX512BW))))
10551 : return -1;
10552 : return 11036; /* avx10_2_vmovrswv8hi_mask */
10553 :
10554 : case E_V16SImode:
10555 : if (pattern1003 (x2,
10556 : E_V16SImode,
10557 : E_HImode) != 0
10558 : || !(
10559 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10560 : (TARGET_AVX512F) &&
10561 : #line 33386 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10562 : (TARGET_AVX10_2 && TARGET_MOVRS)))
10563 : return -1;
10564 : return 11038; /* avx10_2_vmovrsdv16si_mask */
10565 :
10566 : case E_V8SImode:
10567 : if (pattern1003 (x2,
10568 : E_V8SImode,
10569 : E_QImode) != 0
10570 : || !(
10571 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10572 : (TARGET_AVX512F) && (
10573 : #line 33386 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10574 : (TARGET_AVX10_2 && TARGET_MOVRS) &&
10575 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10576 : (TARGET_AVX512VL))))
10577 : return -1;
10578 : return 11040; /* avx10_2_vmovrsdv8si_mask */
10579 :
10580 : case E_V4SImode:
10581 : if (pattern1003 (x2,
10582 : E_V4SImode,
10583 : E_QImode) != 0
10584 : || !(
10585 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10586 : (TARGET_AVX512F) && (
10587 : #line 33386 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10588 : (TARGET_AVX10_2 && TARGET_MOVRS) &&
10589 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10590 : (TARGET_AVX512VL))))
10591 : return -1;
10592 : return 11042; /* avx10_2_vmovrsdv4si_mask */
10593 :
10594 : case E_V8DImode:
10595 : if (pattern1003 (x2,
10596 : E_V8DImode,
10597 : E_QImode) != 0
10598 : || !(
10599 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10600 : (TARGET_AVX512F) &&
10601 : #line 33386 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10602 : (TARGET_AVX10_2 && TARGET_MOVRS)))
10603 : return -1;
10604 : return 11044; /* avx10_2_vmovrsqv8di_mask */
10605 :
10606 : case E_V4DImode:
10607 : if (pattern1003 (x2,
10608 : E_V4DImode,
10609 : E_QImode) != 0
10610 : || !(
10611 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10612 : (TARGET_AVX512F) && (
10613 : #line 33386 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10614 : (TARGET_AVX10_2 && TARGET_MOVRS) &&
10615 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10616 : (TARGET_AVX512VL))))
10617 : return -1;
10618 : return 11046; /* avx10_2_vmovrsqv4di_mask */
10619 :
10620 : case E_V2DImode:
10621 : if (pattern1003 (x2,
10622 : E_V2DImode,
10623 : E_QImode) != 0
10624 : || !(
10625 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10626 : (TARGET_AVX512F) && (
10627 : #line 33386 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10628 : (TARGET_AVX10_2 && TARGET_MOVRS) &&
10629 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10630 : (TARGET_AVX512VL))))
10631 : return -1;
10632 : return 11048; /* avx10_2_vmovrsqv2di_mask */
10633 :
10634 : default:
10635 : return -1;
10636 : }
10637 : }
10638 :
10639 : int
10640 : recog_138 (rtx x1 ATTRIBUTE_UNUSED,
10641 : rtx_insn *insn ATTRIBUTE_UNUSED,
10642 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10643 : {
10644 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10645 : rtx x2, x3, x4, x5, x6, x7, x8;
10646 : int res ATTRIBUTE_UNUSED;
10647 : x2 = XEXP (x1, 1);
10648 : x3 = XEXP (x2, 0);
10649 : x4 = XVECEXP (x3, 0, 0);
10650 : operands[1] = x4;
10651 : x5 = XVECEXP (x3, 0, 1);
10652 : operands[2] = x5;
10653 : x6 = XVECEXP (x3, 0, 2);
10654 : operands[3] = x6;
10655 : if (!const_0_to_255_operand (operands[3], E_SImode))
10656 : return -1;
10657 : x7 = XEXP (x2, 2);
10658 : switch (GET_CODE (x7))
10659 : {
10660 : case REG:
10661 : case SUBREG:
10662 : operands[5] = x7;
10663 : x8 = XEXP (x2, 1);
10664 : operands[4] = x8;
10665 : switch (GET_MODE (operands[0]))
10666 : {
10667 : case E_V32HFmode:
10668 : if (pattern475 (x2,
10669 : E_V32HFmode,
10670 : E_SImode) != 0
10671 : || !(
10672 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10673 : (TARGET_AVX512F) && (
10674 : #line 33361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10675 : (TARGET_AVX10_2) &&
10676 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10677 : (TARGET_AVX512FP16))))
10678 : return -1;
10679 : return 10979; /* avx10_2_minmaxpv32hf_mask */
10680 :
10681 : case E_V16HFmode:
10682 : if (pattern475 (x2,
10683 : E_V16HFmode,
10684 : E_HImode) != 0
10685 : || !(
10686 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10687 : (TARGET_AVX512F) && (
10688 : #line 33361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10689 : (TARGET_AVX10_2) &&
10690 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10691 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
10692 : return -1;
10693 : return 10983; /* avx10_2_minmaxpv16hf_mask */
10694 :
10695 : case E_V8HFmode:
10696 : if (pattern475 (x2,
10697 : E_V8HFmode,
10698 : E_QImode) != 0
10699 : || !(
10700 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10701 : (TARGET_AVX512F) && (
10702 : #line 33361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10703 : (TARGET_AVX10_2) &&
10704 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10705 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
10706 : return -1;
10707 : return 10987; /* avx10_2_minmaxpv8hf_mask */
10708 :
10709 : case E_V16SFmode:
10710 : if (pattern475 (x2,
10711 : E_V16SFmode,
10712 : E_HImode) != 0
10713 : || !(
10714 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10715 : (TARGET_AVX512F) &&
10716 : #line 33361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10717 : (TARGET_AVX10_2)))
10718 : return -1;
10719 : return 10991; /* avx10_2_minmaxpv16sf_mask */
10720 :
10721 : case E_V8SFmode:
10722 : if (pattern475 (x2,
10723 : E_V8SFmode,
10724 : E_QImode) != 0
10725 : || !(
10726 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10727 : (TARGET_AVX512F) && (
10728 : #line 33361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10729 : (TARGET_AVX10_2) &&
10730 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10731 : (TARGET_AVX512VL))))
10732 : return -1;
10733 : return 10995; /* avx10_2_minmaxpv8sf_mask */
10734 :
10735 : case E_V4SFmode:
10736 : if (pattern475 (x2,
10737 : E_V4SFmode,
10738 : E_QImode) != 0
10739 : || !(
10740 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10741 : (TARGET_AVX512F) && (
10742 : #line 33361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10743 : (TARGET_AVX10_2) &&
10744 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10745 : (TARGET_AVX512VL))))
10746 : return -1;
10747 : return 10999; /* avx10_2_minmaxpv4sf_mask */
10748 :
10749 : case E_V8DFmode:
10750 : if (pattern475 (x2,
10751 : E_V8DFmode,
10752 : E_QImode) != 0
10753 : || !(
10754 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10755 : (TARGET_AVX512F) &&
10756 : #line 33361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10757 : (TARGET_AVX10_2)))
10758 : return -1;
10759 : return 11003; /* avx10_2_minmaxpv8df_mask */
10760 :
10761 : case E_V4DFmode:
10762 : if (pattern475 (x2,
10763 : E_V4DFmode,
10764 : E_QImode) != 0
10765 : || !(
10766 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10767 : (TARGET_AVX512F) && (
10768 : #line 33361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10769 : (TARGET_AVX10_2) &&
10770 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10771 : (TARGET_AVX512VL))))
10772 : return -1;
10773 : return 11007; /* avx10_2_minmaxpv4df_mask */
10774 :
10775 : case E_V2DFmode:
10776 : if (pattern475 (x2,
10777 : E_V2DFmode,
10778 : E_QImode) != 0
10779 : || !(
10780 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10781 : (TARGET_AVX512F) && (
10782 : #line 33361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10783 : (TARGET_AVX10_2) &&
10784 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10785 : (TARGET_AVX512VL))))
10786 : return -1;
10787 : return 11011; /* avx10_2_minmaxpv2df_mask */
10788 :
10789 : default:
10790 : return -1;
10791 : }
10792 :
10793 : case CONST_INT:
10794 : if (XWINT (x7, 0) != 1L)
10795 : return -1;
10796 : switch (pattern460 (x2))
10797 : {
10798 : case 0:
10799 : if (!(
10800 : #line 33376 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10801 : (TARGET_AVX10_2) &&
10802 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10803 : (TARGET_AVX512FP16)))
10804 : return -1;
10805 : return 11013; /* avx10_2_minmaxsv8hf */
10806 :
10807 : case 1:
10808 : if (!
10809 : #line 33376 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10810 : (TARGET_AVX10_2))
10811 : return -1;
10812 : return 11017; /* avx10_2_minmaxsv4sf */
10813 :
10814 : case 2:
10815 : if (!(
10816 : #line 33376 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10817 : (TARGET_AVX10_2) &&
10818 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10819 : (TARGET_SSE2)))
10820 : return -1;
10821 : return 11021; /* avx10_2_minmaxsv2df */
10822 :
10823 : default:
10824 : return -1;
10825 : }
10826 :
10827 : default:
10828 : return -1;
10829 : }
10830 : }
10831 :
10832 : int
10833 : recog_145 (rtx x1 ATTRIBUTE_UNUSED,
10834 : rtx_insn *insn ATTRIBUTE_UNUSED,
10835 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10836 : {
10837 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10838 : rtx x2;
10839 : int res ATTRIBUTE_UNUSED;
10840 : x2 = XEXP (x1, 1);
10841 : switch (pattern481 (x2))
10842 : {
10843 : case 0:
10844 : if (!(
10845 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10846 : (TARGET_AVX512F) &&
10847 : #line 31097 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10848 : (TARGET_AVX512VBMI2)))
10849 : return -1;
10850 : return 10257; /* vpshrd_v32hi_mask */
10851 :
10852 : case 1:
10853 : if (!(
10854 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10855 : (TARGET_AVX512F) &&
10856 : #line 31097 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10857 : (TARGET_AVX512VBMI2)))
10858 : return -1;
10859 : return 10259; /* vpshrd_v16si_mask */
10860 :
10861 : case 2:
10862 : if (!(
10863 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10864 : (TARGET_AVX512F) &&
10865 : #line 31097 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10866 : (TARGET_AVX512VBMI2)))
10867 : return -1;
10868 : return 10261; /* vpshrd_v8di_mask */
10869 :
10870 : case 3:
10871 : if (!(
10872 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10873 : (TARGET_AVX512F) && (
10874 : #line 31097 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10875 : (TARGET_AVX512VBMI2) &&
10876 : #line 751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10877 : (TARGET_AVX512VL))))
10878 : return -1;
10879 : return 10263; /* vpshrd_v16hi_mask */
10880 :
10881 : case 4:
10882 : if (!(
10883 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10884 : (TARGET_AVX512F) && (
10885 : #line 31097 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10886 : (TARGET_AVX512VBMI2) &&
10887 : #line 751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10888 : (TARGET_AVX512VL))))
10889 : return -1;
10890 : return 10265; /* vpshrd_v8si_mask */
10891 :
10892 : case 5:
10893 : if (!(
10894 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10895 : (TARGET_AVX512F) && (
10896 : #line 31097 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10897 : (TARGET_AVX512VBMI2) &&
10898 : #line 752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10899 : (TARGET_AVX512VL))))
10900 : return -1;
10901 : return 10267; /* vpshrd_v4di_mask */
10902 :
10903 : case 6:
10904 : if (!(
10905 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10906 : (TARGET_AVX512F) && (
10907 : #line 31097 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10908 : (TARGET_AVX512VBMI2) &&
10909 : #line 752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10910 : (TARGET_AVX512VL))))
10911 : return -1;
10912 : return 10269; /* vpshrd_v8hi_mask */
10913 :
10914 : case 7:
10915 : if (!(
10916 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10917 : (TARGET_AVX512F) && (
10918 : #line 31097 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10919 : (TARGET_AVX512VBMI2) &&
10920 : #line 753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10921 : (TARGET_AVX512VL))))
10922 : return -1;
10923 : return 10271; /* vpshrd_v4si_mask */
10924 :
10925 : case 8:
10926 : if (!(
10927 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10928 : (TARGET_AVX512F) && (
10929 : #line 31097 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10930 : (TARGET_AVX512VBMI2) &&
10931 : #line 753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10932 : (TARGET_AVX512VL))))
10933 : return -1;
10934 : return 10273; /* vpshrd_v2di_mask */
10935 :
10936 : default:
10937 : return -1;
10938 : }
10939 : }
10940 :
10941 : int
10942 : recog_152 (rtx x1 ATTRIBUTE_UNUSED,
10943 : rtx_insn *insn ATTRIBUTE_UNUSED,
10944 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10945 : {
10946 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10947 : rtx x2, x3, x4, x5, x6;
10948 : int res ATTRIBUTE_UNUSED;
10949 : x2 = XEXP (x1, 1);
10950 : x3 = XEXP (x2, 2);
10951 : switch (GET_CODE (x3))
10952 : {
10953 : case CONST_INT:
10954 : x4 = XEXP (x2, 0);
10955 : x5 = XEXP (x4, 0);
10956 : operands[2] = x5;
10957 : x6 = XEXP (x2, 1);
10958 : operands[1] = x6;
10959 : switch (XWINT (x3, 0))
10960 : {
10961 : case 3L:
10962 : switch (GET_MODE (operands[0]))
10963 : {
10964 : case E_V8HFmode:
10965 : if (pattern1010 (x2,
10966 : E_V8HFmode,
10967 : E_V2HFmode) == 0
10968 : &&
10969 : #line 12190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10970 : (TARGET_SSE))
10971 : return 5307; /* *vec_concatv8hf_movss */
10972 : break;
10973 :
10974 : case E_V8BFmode:
10975 : if (pattern1010 (x2,
10976 : E_V8BFmode,
10977 : E_V2BFmode) == 0
10978 : &&
10979 : #line 12190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10980 : (TARGET_SSE))
10981 : return 5308; /* *vec_concatv8bf_movss */
10982 : break;
10983 :
10984 : case E_V8HImode:
10985 : if (pattern1010 (x2,
10986 : E_V8HImode,
10987 : E_V2HImode) == 0
10988 : &&
10989 : #line 12190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10990 : (TARGET_SSE))
10991 : return 5309; /* *vec_concatv8hi_movss */
10992 : break;
10993 :
10994 : default:
10995 : break;
10996 : }
10997 : break;
10998 :
10999 : case 1L:
11000 : switch (GET_MODE (operands[0]))
11001 : {
11002 : case E_V4SImode:
11003 : if (pattern1011 (x2,
11004 : E_V4SImode,
11005 : E_SImode) == 0
11006 : &&
11007 : #line 12212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11008 : (TARGET_SSE))
11009 : return 5310; /* vec_setv4si_0 */
11010 : break;
11011 :
11012 : case E_V4SFmode:
11013 : if (pattern1011 (x2,
11014 : E_V4SFmode,
11015 : E_SFmode) == 0
11016 : &&
11017 : #line 12212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11018 : (TARGET_SSE))
11019 : return 5311; /* vec_setv4sf_0 */
11020 : break;
11021 :
11022 : case E_V8HImode:
11023 : if (pattern1010 (x2,
11024 : E_V8HImode,
11025 : E_HImode) == 0
11026 : &&
11027 : #line 12293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11028 : (TARGET_SSE2))
11029 : return 5312; /* vec_setv8hi_0 */
11030 : break;
11031 :
11032 : case E_V8HFmode:
11033 : if (pattern1010 (x2,
11034 : E_V8HFmode,
11035 : E_HFmode) == 0
11036 : &&
11037 : #line 12293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11038 : (TARGET_SSE2))
11039 : return 5313; /* vec_setv8hf_0 */
11040 : break;
11041 :
11042 : case E_V8BFmode:
11043 : if (pattern1010 (x2,
11044 : E_V8BFmode,
11045 : E_BFmode) == 0
11046 : &&
11047 : #line 12293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11048 : (TARGET_SSE2))
11049 : return 5314; /* vec_setv8bf_0 */
11050 : break;
11051 :
11052 : case E_V16HImode:
11053 : if (pattern1012 (x2,
11054 : E_V16HImode,
11055 : E_HImode) == 0
11056 : &&
11057 : #line 12388 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11058 : (TARGET_AVX512FP16))
11059 : return 5318; /* vec_setv16hi_0 */
11060 : break;
11061 :
11062 : case E_V32HImode:
11063 : if (pattern1012 (x2,
11064 : E_V32HImode,
11065 : E_HImode) == 0
11066 : &&
11067 : #line 12388 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11068 : (TARGET_AVX512FP16))
11069 : return 5319; /* vec_setv32hi_0 */
11070 : break;
11071 :
11072 : case E_V16HFmode:
11073 : if (pattern1012 (x2,
11074 : E_V16HFmode,
11075 : E_HFmode) == 0
11076 : &&
11077 : #line 12388 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11078 : (TARGET_AVX512FP16))
11079 : return 5320; /* vec_setv16hf_0 */
11080 : break;
11081 :
11082 : case E_V32HFmode:
11083 : if (pattern1012 (x2,
11084 : E_V32HFmode,
11085 : E_HFmode) == 0
11086 : &&
11087 : #line 12388 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11088 : (TARGET_AVX512FP16))
11089 : return 5321; /* vec_setv32hf_0 */
11090 : break;
11091 :
11092 : case E_V16BFmode:
11093 : if (pattern1012 (x2,
11094 : E_V16BFmode,
11095 : E_BFmode) == 0
11096 : &&
11097 : #line 12388 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11098 : (TARGET_AVX512FP16))
11099 : return 5322; /* vec_setv16bf_0 */
11100 : break;
11101 :
11102 : case E_V32BFmode:
11103 : if (pattern1012 (x2,
11104 : E_V32BFmode,
11105 : E_BFmode) == 0
11106 : &&
11107 : #line 12388 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11108 : (TARGET_AVX512FP16))
11109 : return 5323; /* vec_setv32bf_0 */
11110 : break;
11111 :
11112 : case E_V8SImode:
11113 : if (pattern1012 (x2,
11114 : E_V8SImode,
11115 : E_SImode) == 0
11116 : &&
11117 : #line 12495 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11118 : (TARGET_AVX))
11119 : return 5335; /* vec_setv8si_0 */
11120 : break;
11121 :
11122 : case E_V8SFmode:
11123 : if (pattern1012 (x2,
11124 : E_V8SFmode,
11125 : E_SFmode) == 0
11126 : &&
11127 : #line 12495 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11128 : (TARGET_AVX))
11129 : return 5336; /* vec_setv8sf_0 */
11130 : break;
11131 :
11132 : case E_V16SImode:
11133 : if (pattern1012 (x2,
11134 : E_V16SImode,
11135 : E_SImode) == 0
11136 : && (
11137 : #line 12495 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11138 : (TARGET_AVX) &&
11139 : #line 979 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11140 : (TARGET_AVX512F)))
11141 : return 5337; /* vec_setv16si_0 */
11142 : break;
11143 :
11144 : case E_V16SFmode:
11145 : if (pattern1012 (x2,
11146 : E_V16SFmode,
11147 : E_SFmode) == 0
11148 : && (
11149 : #line 12495 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11150 : (TARGET_AVX) &&
11151 : #line 979 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11152 : (TARGET_AVX512F)))
11153 : return 5338; /* vec_setv16sf_0 */
11154 : break;
11155 :
11156 : case E_V2DFmode:
11157 : if (pattern873 (x2,
11158 : E_V2DFmode,
11159 : E_DFmode) == 0
11160 : &&
11161 : #line 12609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11162 : (TARGET_SSE2))
11163 : return 5345; /* vec_setv2df_0 */
11164 : break;
11165 :
11166 : case E_V8DFmode:
11167 : if (pattern1012 (x2,
11168 : E_V8DFmode,
11169 : E_DFmode) == 0
11170 : && (
11171 : #line 15283 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11172 : (TARGET_AVX) &&
11173 : #line 466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11174 : (TARGET_AVX512F)))
11175 : return 7257; /* vec_setv8df_0 */
11176 : break;
11177 :
11178 : case E_V4DFmode:
11179 : if (pattern1012 (x2,
11180 : E_V4DFmode,
11181 : E_DFmode) == 0
11182 : &&
11183 : #line 15283 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11184 : (TARGET_AVX))
11185 : return 7258; /* vec_setv4df_0 */
11186 : break;
11187 :
11188 : case E_V8DImode:
11189 : if (pattern1012 (x2,
11190 : E_V8DImode,
11191 : E_DImode) == 0
11192 : && (
11193 : #line 22099 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11194 : (TARGET_AVX) &&
11195 : #line 703 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11196 : (TARGET_AVX512F)))
11197 : return 8535; /* vec_setv8di_0 */
11198 : break;
11199 :
11200 : case E_V4DImode:
11201 : if (pattern1012 (x2,
11202 : E_V4DImode,
11203 : E_DImode) == 0
11204 : &&
11205 : #line 22099 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11206 : (TARGET_AVX))
11207 : return 8536; /* vec_setv4di_0 */
11208 : break;
11209 :
11210 : default:
11211 : break;
11212 : }
11213 : break;
11214 :
11215 : default:
11216 : break;
11217 : }
11218 : operands[3] = x3;
11219 : if (const_int_operand (operands[3], E_SImode))
11220 : {
11221 : switch (GET_MODE (operands[0]))
11222 : {
11223 : case E_V4SFmode:
11224 : if (pattern896 (x2,
11225 : E_V4SFmode,
11226 : E_SFmode) == 0
11227 : &&
11228 : #line 12462 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11229 : (TARGET_SSE4_1
11230 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
11231 : < GET_MODE_NUNITS (V4SFmode))))
11232 : return 5334; /* *vec_setv4sf_sse4_1 */
11233 : break;
11234 :
11235 : case E_V16QImode:
11236 : if (pattern896 (x2,
11237 : E_V16QImode,
11238 : E_QImode) == 0
11239 : && (
11240 : #line 20219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11241 : (TARGET_SSE2
11242 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
11243 : < GET_MODE_NUNITS (V16QImode))) &&
11244 : #line 20199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11245 : (TARGET_SSE4_1)))
11246 : return 8423; /* sse4_1_pinsrb */
11247 : break;
11248 :
11249 : case E_V8HImode:
11250 : if (pattern896 (x2,
11251 : E_V8HImode,
11252 : E_HImode) == 0
11253 : &&
11254 : #line 20219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11255 : (TARGET_SSE2
11256 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
11257 : < GET_MODE_NUNITS (V8HImode))))
11258 : return 8424; /* sse2_pinsrw */
11259 : break;
11260 :
11261 : case E_V8HFmode:
11262 : if (pattern896 (x2,
11263 : E_V8HFmode,
11264 : E_HFmode) == 0
11265 : &&
11266 : #line 20219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11267 : (TARGET_SSE2
11268 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
11269 : < GET_MODE_NUNITS (V8HFmode))))
11270 : return 8425; /* sse2_pinsrph */
11271 : break;
11272 :
11273 : case E_V8BFmode:
11274 : if (pattern896 (x2,
11275 : E_V8BFmode,
11276 : E_BFmode) == 0
11277 : &&
11278 : #line 20219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11279 : (TARGET_SSE2
11280 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
11281 : < GET_MODE_NUNITS (V8BFmode))))
11282 : return 8426; /* sse2_pinsrbf */
11283 : break;
11284 :
11285 : case E_V4SImode:
11286 : if (pattern896 (x2,
11287 : E_V4SImode,
11288 : E_SImode) == 0
11289 : && (
11290 : #line 20219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11291 : (TARGET_SSE2
11292 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
11293 : < GET_MODE_NUNITS (V4SImode))) &&
11294 : #line 20200 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11295 : (TARGET_SSE4_1)))
11296 : return 8427; /* sse4_1_pinsrd */
11297 : break;
11298 :
11299 : case E_V2DImode:
11300 : if (pattern896 (x2,
11301 : E_V2DImode,
11302 : E_DImode) == 0
11303 : && (
11304 : #line 20219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11305 : (TARGET_SSE2
11306 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
11307 : < GET_MODE_NUNITS (V2DImode))) &&
11308 : #line 20201 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11309 : (TARGET_SSE4_1 && TARGET_64BIT)))
11310 : return 8428; /* sse4_1_pinsrq */
11311 : break;
11312 :
11313 : case E_V8DFmode:
11314 : if (pattern897 (x2,
11315 : E_V8DFmode,
11316 : E_V2DFmode) == 0
11317 : && (
11318 : #line 20323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11319 : (TARGET_AVX512F
11320 : && (INTVAL (operands[3])
11321 : == (GET_MODE_UNIT_SIZE (V8DFmode) == 4 ? 0xF : 0x3))) &&
11322 : #line 12722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11323 : (TARGET_AVX512DQ)))
11324 : return 8429; /* *avx512dq_vinsertf64x2_0 */
11325 : break;
11326 :
11327 : case E_V8DImode:
11328 : if (pattern897 (x2,
11329 : E_V8DImode,
11330 : E_V2DImode) == 0
11331 : && (
11332 : #line 20323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11333 : (TARGET_AVX512F
11334 : && (INTVAL (operands[3])
11335 : == (GET_MODE_UNIT_SIZE (V8DImode) == 4 ? 0xF : 0x3))) &&
11336 : #line 12722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11337 : (TARGET_AVX512DQ)))
11338 : return 8430; /* *avx512dq_vinserti64x2_0 */
11339 : break;
11340 :
11341 : case E_V16SFmode:
11342 : if (pattern897 (x2,
11343 : E_V16SFmode,
11344 : E_V4SFmode) == 0
11345 : &&
11346 : #line 20323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11347 : (TARGET_AVX512F
11348 : && (INTVAL (operands[3])
11349 : == (GET_MODE_UNIT_SIZE (V16SFmode) == 4 ? 0xF : 0x3))))
11350 : return 8431; /* *avx512f_vinsertf32x4_0 */
11351 : break;
11352 :
11353 : case E_V16SImode:
11354 : if (pattern897 (x2,
11355 : E_V16SImode,
11356 : E_V4SImode) == 0
11357 : &&
11358 : #line 20323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11359 : (TARGET_AVX512F
11360 : && (INTVAL (operands[3])
11361 : == (GET_MODE_UNIT_SIZE (V16SImode) == 4 ? 0xF : 0x3))))
11362 : return 8432; /* *avx512f_vinserti32x4_0 */
11363 : break;
11364 :
11365 : default:
11366 : break;
11367 : }
11368 : }
11369 : if (XWINT (x3, 0) != 1L
11370 : || !register_operand (operands[0], E_V4SImode)
11371 : || GET_MODE (x2) != E_V4SImode
11372 : || GET_MODE (x4) != E_V4SImode)
11373 : return -1;
11374 : operands[2] = x5;
11375 : if (!nonimmediate_operand (operands[2], E_SImode))
11376 : return -1;
11377 : operands[1] = x6;
11378 : if (!reg_or_0_operand (operands[1], E_V4SImode)
11379 : || !
11380 : #line 21378 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11381 : (TARGET_SSE))
11382 : return -1;
11383 : return 8499; /* sse2_loadld */
11384 :
11385 : case REG:
11386 : case SUBREG:
11387 : operands[3] = x3;
11388 : x4 = XEXP (x2, 0);
11389 : x5 = XEXP (x4, 0);
11390 : operands[1] = x5;
11391 : x6 = XEXP (x2, 1);
11392 : operands[2] = x6;
11393 : switch (GET_MODE (operands[0]))
11394 : {
11395 : case E_V2DFmode:
11396 : if (pattern155 (x2,
11397 : E_V2DFmode,
11398 : E_DFmode,
11399 : E_QImode) != 0)
11400 : return -1;
11401 : if ((
11402 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11403 : (TARGET_AVX512F) &&
11404 : #line 15211 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11405 : (TARGET_SSE2)))
11406 : return 7255; /* vec_dupv2df_mask */
11407 : if (!(
11408 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11409 : (TARGET_AVX512F) && (
11410 : #line 28468 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11411 : (TARGET_AVX512F) &&
11412 : #line 302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11413 : (TARGET_AVX512VL))))
11414 : return -1;
11415 : return 9354; /* avx512vl_vec_dup_gprv2df_mask */
11416 :
11417 : case E_V16SFmode:
11418 : if (pattern142 (x2,
11419 : E_V16SFmode,
11420 : E_HImode) != 0)
11421 : return -1;
11422 : switch (GET_MODE (operands[1]))
11423 : {
11424 : case E_V4SFmode:
11425 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
11426 : || !
11427 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11428 : (TARGET_AVX512F))
11429 : return -1;
11430 : return 9300; /* avx512f_broadcastv16sf_mask */
11431 :
11432 : case E_SFmode:
11433 : if (!nonimmediate_operand (operands[1], E_SFmode)
11434 : || !
11435 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11436 : (TARGET_AVX512F))
11437 : return -1;
11438 : return 9344; /* avx512f_vec_dup_gprv16sf_mask */
11439 :
11440 : case E_V8SFmode:
11441 : if (!nonimmediate_operand (operands[1], E_V8SFmode)
11442 : || !(
11443 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11444 : (TARGET_AVX512F) &&
11445 : #line 28767 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11446 : (TARGET_AVX512DQ)))
11447 : return -1;
11448 : return 9408; /* avx512dq_broadcastv16sf_mask_1 */
11449 :
11450 : default:
11451 : return -1;
11452 : }
11453 :
11454 : case E_V16SImode:
11455 : if (pattern142 (x2,
11456 : E_V16SImode,
11457 : E_HImode) != 0)
11458 : return -1;
11459 : switch (GET_MODE (operands[1]))
11460 : {
11461 : case E_V4SImode:
11462 : if (!nonimmediate_operand (operands[1], E_V4SImode)
11463 : || !
11464 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11465 : (TARGET_AVX512F))
11466 : return -1;
11467 : return 9302; /* avx512f_broadcastv16si_mask */
11468 :
11469 : case E_SImode:
11470 : if (!nonimmediate_operand (operands[1], E_SImode)
11471 : || !
11472 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11473 : (TARGET_AVX512F))
11474 : return -1;
11475 : return 9332; /* avx512f_vec_dup_gprv16si_mask */
11476 :
11477 : case E_V8SImode:
11478 : if (!nonimmediate_operand (operands[1], E_V8SImode)
11479 : || !(
11480 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11481 : (TARGET_AVX512F) &&
11482 : #line 28767 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11483 : (TARGET_AVX512DQ)))
11484 : return -1;
11485 : return 9410; /* avx512dq_broadcastv16si_mask_1 */
11486 :
11487 : default:
11488 : return -1;
11489 : }
11490 :
11491 : case E_V8DFmode:
11492 : if (pattern142 (x2,
11493 : E_V8DFmode,
11494 : E_QImode) != 0)
11495 : return -1;
11496 : switch (GET_MODE (operands[1]))
11497 : {
11498 : case E_V4DFmode:
11499 : if (!nonimmediate_operand (operands[1], E_V4DFmode)
11500 : || !
11501 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11502 : (TARGET_AVX512F))
11503 : return -1;
11504 : return 9304; /* avx512f_broadcastv8df_mask */
11505 :
11506 : case E_DFmode:
11507 : if (!nonimmediate_operand (operands[1], E_DFmode)
11508 : || !
11509 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11510 : (TARGET_AVX512F))
11511 : return -1;
11512 : return 9350; /* avx512f_vec_dup_gprv8df_mask */
11513 :
11514 : case E_V2DFmode:
11515 : if (!nonimmediate_operand (operands[1], E_V2DFmode)
11516 : || !(
11517 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11518 : (TARGET_AVX512F) &&
11519 : #line 28784 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11520 : (TARGET_AVX512DQ)))
11521 : return -1;
11522 : return 9414; /* avx512dq_broadcastv8df_mask_1 */
11523 :
11524 : default:
11525 : return -1;
11526 : }
11527 :
11528 : case E_V8DImode:
11529 : if (pattern142 (x2,
11530 : E_V8DImode,
11531 : E_QImode) != 0)
11532 : return -1;
11533 : switch (GET_MODE (operands[1]))
11534 : {
11535 : case E_V4DImode:
11536 : if (!nonimmediate_operand (operands[1], E_V4DImode)
11537 : || !
11538 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11539 : (TARGET_AVX512F))
11540 : return -1;
11541 : return 9306; /* avx512f_broadcastv8di_mask */
11542 :
11543 : case E_DImode:
11544 : if (!nonimmediate_operand (operands[1], E_DImode)
11545 : || !
11546 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11547 : (TARGET_AVX512F))
11548 : return -1;
11549 : return 9338; /* avx512f_vec_dup_gprv8di_mask */
11550 :
11551 : case E_V2DImode:
11552 : if (!nonimmediate_operand (operands[1], E_V2DImode)
11553 : || !(
11554 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11555 : (TARGET_AVX512F) &&
11556 : #line 28784 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11557 : (TARGET_AVX512DQ)))
11558 : return -1;
11559 : return 9412; /* avx512dq_broadcastv8di_mask_1 */
11560 :
11561 : default:
11562 : return -1;
11563 : }
11564 :
11565 : case E_V64QImode:
11566 : if (pattern155 (x2,
11567 : E_V64QImode,
11568 : E_QImode,
11569 : E_DImode) != 0
11570 : || !(
11571 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11572 : (TARGET_AVX512F) &&
11573 : #line 28456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11574 : (TARGET_AVX512BW)))
11575 : return -1;
11576 : return 9308; /* avx512bw_vec_dup_gprv64qi_mask */
11577 :
11578 : case E_V16QImode:
11579 : if (pattern155 (x2,
11580 : E_V16QImode,
11581 : E_QImode,
11582 : E_HImode) != 0
11583 : || !(
11584 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11585 : (TARGET_AVX512F) && (
11586 : #line 28456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11587 : (TARGET_AVX512BW) &&
11588 : #line 332 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11589 : (TARGET_AVX512VL))))
11590 : return -1;
11591 : return 9310; /* avx512vl_vec_dup_gprv16qi_mask */
11592 :
11593 : case E_V32QImode:
11594 : if (pattern155 (x2,
11595 : E_V32QImode,
11596 : E_QImode,
11597 : E_SImode) != 0
11598 : || !(
11599 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11600 : (TARGET_AVX512F) && (
11601 : #line 28456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11602 : (TARGET_AVX512BW) &&
11603 : #line 332 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11604 : (TARGET_AVX512VL))))
11605 : return -1;
11606 : return 9312; /* avx512vl_vec_dup_gprv32qi_mask */
11607 :
11608 : case E_V32HImode:
11609 : if (pattern155 (x2,
11610 : E_V32HImode,
11611 : E_HImode,
11612 : E_SImode) != 0
11613 : || !(
11614 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11615 : (TARGET_AVX512F) &&
11616 : #line 28456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11617 : (TARGET_AVX512BW)))
11618 : return -1;
11619 : return 9314; /* avx512bw_vec_dup_gprv32hi_mask */
11620 :
11621 : case E_V16HImode:
11622 : if (pattern153 (x2,
11623 : E_HImode) != 0
11624 : || !(
11625 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11626 : (TARGET_AVX512F) && (
11627 : #line 28456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11628 : (TARGET_AVX512BW) &&
11629 : #line 333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11630 : (TARGET_AVX512VL))))
11631 : return -1;
11632 : return 9316; /* avx512vl_vec_dup_gprv16hi_mask */
11633 :
11634 : case E_V8HImode:
11635 : if (pattern155 (x2,
11636 : E_V8HImode,
11637 : E_HImode,
11638 : E_QImode) != 0
11639 : || !(
11640 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11641 : (TARGET_AVX512F) && (
11642 : #line 28456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11643 : (TARGET_AVX512BW) &&
11644 : #line 333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11645 : (TARGET_AVX512VL))))
11646 : return -1;
11647 : return 9318; /* avx512vl_vec_dup_gprv8hi_mask */
11648 :
11649 : case E_V32HFmode:
11650 : if (pattern155 (x2,
11651 : E_V32HFmode,
11652 : E_HFmode,
11653 : E_SImode) != 0
11654 : || !(
11655 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11656 : (TARGET_AVX512F) &&
11657 : #line 28456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11658 : (TARGET_AVX512BW)))
11659 : return -1;
11660 : return 9320; /* avx512bw_vec_dup_gprv32hf_mask */
11661 :
11662 : case E_V16HFmode:
11663 : if (pattern155 (x2,
11664 : E_V16HFmode,
11665 : E_HFmode,
11666 : E_HImode) != 0
11667 : || !(
11668 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11669 : (TARGET_AVX512F) && (
11670 : #line 28456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11671 : (TARGET_AVX512BW) &&
11672 : #line 334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11673 : (TARGET_AVX512VL))))
11674 : return -1;
11675 : return 9322; /* avx512vl_vec_dup_gprv16hf_mask */
11676 :
11677 : case E_V8HFmode:
11678 : if (pattern155 (x2,
11679 : E_V8HFmode,
11680 : E_HFmode,
11681 : E_QImode) != 0
11682 : || !(
11683 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11684 : (TARGET_AVX512F) && (
11685 : #line 28456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11686 : (TARGET_AVX512BW) &&
11687 : #line 334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11688 : (TARGET_AVX512VL))))
11689 : return -1;
11690 : return 9324; /* avx512fp16_vec_dup_gprv8hf_mask */
11691 :
11692 : case E_V32BFmode:
11693 : if (pattern155 (x2,
11694 : E_V32BFmode,
11695 : E_BFmode,
11696 : E_SImode) != 0
11697 : || !(
11698 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11699 : (TARGET_AVX512F) &&
11700 : #line 28456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11701 : (TARGET_AVX512BW)))
11702 : return -1;
11703 : return 9326; /* avx512bw_vec_dup_gprv32bf_mask */
11704 :
11705 : case E_V16BFmode:
11706 : if (pattern155 (x2,
11707 : E_V16BFmode,
11708 : E_BFmode,
11709 : E_HImode) != 0
11710 : || !(
11711 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11712 : (TARGET_AVX512F) && (
11713 : #line 28456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11714 : (TARGET_AVX512BW) &&
11715 : #line 335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11716 : (TARGET_AVX512VL))))
11717 : return -1;
11718 : return 9328; /* avx512vl_vec_dup_gprv16bf_mask */
11719 :
11720 : case E_V8BFmode:
11721 : if (pattern155 (x2,
11722 : E_V8BFmode,
11723 : E_BFmode,
11724 : E_QImode) != 0
11725 : || !(
11726 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11727 : (TARGET_AVX512F) && (
11728 : #line 28456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11729 : (TARGET_AVX512BW) &&
11730 : #line 335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11731 : (TARGET_AVX512VL))))
11732 : return -1;
11733 : return 9330; /* avx512vl_vec_dup_gprv8bf_mask */
11734 :
11735 : case E_V8SImode:
11736 : if (pattern142 (x2,
11737 : E_V8SImode,
11738 : E_QImode) != 0)
11739 : return -1;
11740 : switch (GET_MODE (operands[1]))
11741 : {
11742 : case E_SImode:
11743 : if (!nonimmediate_operand (operands[1], E_SImode)
11744 : || !(
11745 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11746 : (TARGET_AVX512F) && (
11747 : #line 28468 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11748 : (TARGET_AVX512F) &&
11749 : #line 299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11750 : (TARGET_AVX512VL))))
11751 : return -1;
11752 : return 9334; /* avx512vl_vec_dup_gprv8si_mask */
11753 :
11754 : case E_V4SImode:
11755 : if (!nonimmediate_operand (operands[1], E_V4SImode)
11756 : || !(
11757 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11758 : (TARGET_AVX512F) &&
11759 : #line 28754 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11760 : (TARGET_AVX512VL)))
11761 : return -1;
11762 : return 9404; /* avx512vl_broadcastv8si_mask_1 */
11763 :
11764 : default:
11765 : return -1;
11766 : }
11767 :
11768 : case E_V4SImode:
11769 : if (pattern155 (x2,
11770 : E_V4SImode,
11771 : E_SImode,
11772 : E_QImode) != 0
11773 : || !(
11774 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11775 : (TARGET_AVX512F) && (
11776 : #line 28468 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11777 : (TARGET_AVX512F) &&
11778 : #line 299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11779 : (TARGET_AVX512VL))))
11780 : return -1;
11781 : return 9336; /* avx512vl_vec_dup_gprv4si_mask */
11782 :
11783 : case E_V4DImode:
11784 : if (pattern142 (x2,
11785 : E_V4DImode,
11786 : E_QImode) != 0)
11787 : return -1;
11788 : switch (GET_MODE (operands[1]))
11789 : {
11790 : case E_DImode:
11791 : if (!nonimmediate_operand (operands[1], E_DImode)
11792 : || !(
11793 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11794 : (TARGET_AVX512F) && (
11795 : #line 28468 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11796 : (TARGET_AVX512F) &&
11797 : #line 300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11798 : (TARGET_AVX512VL))))
11799 : return -1;
11800 : return 9340; /* avx512vl_vec_dup_gprv4di_mask */
11801 :
11802 : case E_V2DImode:
11803 : if (!nonimmediate_operand (operands[1], E_V2DImode)
11804 : || !(
11805 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11806 : (TARGET_AVX512F) && (
11807 : #line 28784 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11808 : (TARGET_AVX512DQ) &&
11809 : #line 28778 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11810 : (TARGET_AVX512VL))))
11811 : return -1;
11812 : return 9416; /* avx512dq_broadcastv4di_mask_1 */
11813 :
11814 : default:
11815 : return -1;
11816 : }
11817 :
11818 : case E_V2DImode:
11819 : if (pattern155 (x2,
11820 : E_V2DImode,
11821 : E_DImode,
11822 : E_QImode) != 0
11823 : || !(
11824 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11825 : (TARGET_AVX512F) && (
11826 : #line 28468 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11827 : (TARGET_AVX512F) &&
11828 : #line 300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11829 : (TARGET_AVX512VL))))
11830 : return -1;
11831 : return 9342; /* avx512vl_vec_dup_gprv2di_mask */
11832 :
11833 : case E_V8SFmode:
11834 : if (pattern142 (x2,
11835 : E_V8SFmode,
11836 : E_QImode) != 0)
11837 : return -1;
11838 : switch (GET_MODE (operands[1]))
11839 : {
11840 : case E_SFmode:
11841 : if (!nonimmediate_operand (operands[1], E_SFmode)
11842 : || !(
11843 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11844 : (TARGET_AVX512F) && (
11845 : #line 28468 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11846 : (TARGET_AVX512F) &&
11847 : #line 301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11848 : (TARGET_AVX512VL))))
11849 : return -1;
11850 : return 9346; /* avx512vl_vec_dup_gprv8sf_mask */
11851 :
11852 : case E_V4SFmode:
11853 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
11854 : || !(
11855 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11856 : (TARGET_AVX512F) &&
11857 : #line 28754 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11858 : (TARGET_AVX512VL)))
11859 : return -1;
11860 : return 9406; /* avx512vl_broadcastv8sf_mask_1 */
11861 :
11862 : default:
11863 : return -1;
11864 : }
11865 :
11866 : case E_V4SFmode:
11867 : if (pattern155 (x2,
11868 : E_V4SFmode,
11869 : E_SFmode,
11870 : E_QImode) != 0
11871 : || !(
11872 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11873 : (TARGET_AVX512F) && (
11874 : #line 28468 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11875 : (TARGET_AVX512F) &&
11876 : #line 301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11877 : (TARGET_AVX512VL))))
11878 : return -1;
11879 : return 9348; /* avx512vl_vec_dup_gprv4sf_mask */
11880 :
11881 : case E_V4DFmode:
11882 : if (pattern142 (x2,
11883 : E_V4DFmode,
11884 : E_QImode) != 0)
11885 : return -1;
11886 : switch (GET_MODE (operands[1]))
11887 : {
11888 : case E_DFmode:
11889 : if (!nonimmediate_operand (operands[1], E_DFmode)
11890 : || !(
11891 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11892 : (TARGET_AVX512F) && (
11893 : #line 28468 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11894 : (TARGET_AVX512F) &&
11895 : #line 302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11896 : (TARGET_AVX512VL))))
11897 : return -1;
11898 : return 9352; /* avx512vl_vec_dup_gprv4df_mask */
11899 :
11900 : case E_V2DFmode:
11901 : if (!nonimmediate_operand (operands[1], E_V2DFmode)
11902 : || !(
11903 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11904 : (TARGET_AVX512F) && (
11905 : #line 28784 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11906 : (TARGET_AVX512DQ) &&
11907 : #line 28778 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11908 : (TARGET_AVX512VL))))
11909 : return -1;
11910 : return 9418; /* avx512dq_broadcastv4df_mask_1 */
11911 :
11912 : default:
11913 : return -1;
11914 : }
11915 :
11916 : default:
11917 : return -1;
11918 : }
11919 :
11920 : default:
11921 : return -1;
11922 : }
11923 : }
11924 :
11925 : int
11926 : recog_165 (rtx x1 ATTRIBUTE_UNUSED,
11927 : rtx_insn *insn ATTRIBUTE_UNUSED,
11928 : int *pnum_clobbers ATTRIBUTE_UNUSED)
11929 : {
11930 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
11931 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
11932 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
11933 : rtx x18, x19, x20, x21, x22, x23, x24;
11934 : int res ATTRIBUTE_UNUSED;
11935 : x2 = XEXP (x1, 1);
11936 : x3 = XEXP (x2, 0);
11937 : x4 = XEXP (x3, 1);
11938 : x5 = XVECEXP (x4, 0, 2);
11939 : if (GET_CODE (x5) != CONST_INT)
11940 : return -1;
11941 : x6 = XVECEXP (x4, 0, 3);
11942 : if (GET_CODE (x6) != CONST_INT
11943 : || pattern1305 (x4) != 0)
11944 : return -1;
11945 : x7 = XVECEXP (x4, 0, 12);
11946 : if (GET_CODE (x7) != CONST_INT)
11947 : return -1;
11948 : x8 = XVECEXP (x4, 0, 13);
11949 : if (GET_CODE (x8) != CONST_INT)
11950 : return -1;
11951 : x9 = XVECEXP (x4, 0, 14);
11952 : if (GET_CODE (x9) != CONST_INT)
11953 : return -1;
11954 : x10 = XVECEXP (x4, 0, 15);
11955 : if (GET_CODE (x10) != CONST_INT)
11956 : return -1;
11957 : x11 = XEXP (x2, 2);
11958 : if (!register_operand (x11, E_HImode))
11959 : return -1;
11960 : x12 = XVECEXP (x4, 0, 0);
11961 : switch (XWINT (x12, 0))
11962 : {
11963 : case 2L:
11964 : x13 = XVECEXP (x4, 0, 1);
11965 : if (XWINT (x13, 0) != 18L
11966 : || XWINT (x5, 0) != 3L
11967 : || XWINT (x6, 0) != 19L
11968 : || pattern1867 (x4) != 0)
11969 : return -1;
11970 : x14 = XVECEXP (x4, 0, 8);
11971 : if (XWINT (x14, 0) != 10L)
11972 : return -1;
11973 : x15 = XVECEXP (x4, 0, 9);
11974 : if (XWINT (x15, 0) != 26L)
11975 : return -1;
11976 : x16 = XVECEXP (x4, 0, 10);
11977 : if (XWINT (x16, 0) != 11L)
11978 : return -1;
11979 : x17 = XVECEXP (x4, 0, 11);
11980 : if (XWINT (x17, 0) != 27L
11981 : || pattern1899 (x2) != 0)
11982 : return -1;
11983 : switch (GET_MODE (operands[0]))
11984 : {
11985 : case E_V16SFmode:
11986 : if (pattern1593 (x2,
11987 : E_V16SFmode,
11988 : E_V32SFmode) != 0
11989 : || !
11990 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11991 : (TARGET_AVX512F))
11992 : return -1;
11993 : return 5260; /* avx512f_unpckhps512_mask */
11994 :
11995 : case E_V16SImode:
11996 : if (pattern1593 (x2,
11997 : E_V16SImode,
11998 : E_V32SImode) != 0
11999 : || !
12000 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12001 : (TARGET_AVX512F))
12002 : return -1;
12003 : return 8414; /* avx512f_interleave_highv16si_mask */
12004 :
12005 : default:
12006 : return -1;
12007 : }
12008 :
12009 : case 0L:
12010 : x13 = XVECEXP (x4, 0, 1);
12011 : switch (XWINT (x13, 0))
12012 : {
12013 : case 16L:
12014 : if (XWINT (x5, 0) != 1L
12015 : || XWINT (x6, 0) != 17L)
12016 : return -1;
12017 : x18 = XEXP (x3, 0);
12018 : x19 = XEXP (x18, 1);
12019 : operands[2] = x19;
12020 : x20 = XEXP (x2, 1);
12021 : operands[3] = x20;
12022 : operands[4] = x11;
12023 : x21 = XVECEXP (x4, 0, 4);
12024 : switch (XWINT (x21, 0))
12025 : {
12026 : case 4L:
12027 : x22 = XVECEXP (x4, 0, 5);
12028 : if (XWINT (x22, 0) != 20L)
12029 : return -1;
12030 : x23 = XVECEXP (x4, 0, 6);
12031 : if (XWINT (x23, 0) != 5L)
12032 : return -1;
12033 : x24 = XVECEXP (x4, 0, 7);
12034 : if (XWINT (x24, 0) != 21L)
12035 : return -1;
12036 : x14 = XVECEXP (x4, 0, 8);
12037 : if (XWINT (x14, 0) != 8L)
12038 : return -1;
12039 : x15 = XVECEXP (x4, 0, 9);
12040 : if (XWINT (x15, 0) != 24L)
12041 : return -1;
12042 : x16 = XVECEXP (x4, 0, 10);
12043 : if (XWINT (x16, 0) != 9L)
12044 : return -1;
12045 : x17 = XVECEXP (x4, 0, 11);
12046 : if (XWINT (x17, 0) != 25L
12047 : || XWINT (x7, 0) != 12L
12048 : || XWINT (x8, 0) != 28L
12049 : || XWINT (x9, 0) != 13L
12050 : || XWINT (x10, 0) != 29L)
12051 : return -1;
12052 : switch (GET_MODE (operands[0]))
12053 : {
12054 : case E_V16SFmode:
12055 : if (pattern1593 (x2,
12056 : E_V16SFmode,
12057 : E_V32SFmode) != 0
12058 : || !
12059 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12060 : (TARGET_AVX512F))
12061 : return -1;
12062 : return 5266; /* avx512f_unpcklps512_mask */
12063 :
12064 : case E_V16SImode:
12065 : if (pattern1593 (x2,
12066 : E_V16SImode,
12067 : E_V32SImode) != 0
12068 : || !
12069 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12070 : (TARGET_AVX512F))
12071 : return -1;
12072 : return 8420; /* avx512f_interleave_lowv16si_mask */
12073 :
12074 : default:
12075 : return -1;
12076 : }
12077 :
12078 : case 2L:
12079 : x22 = XVECEXP (x4, 0, 5);
12080 : if (XWINT (x22, 0) != 18L)
12081 : return -1;
12082 : x23 = XVECEXP (x4, 0, 6);
12083 : if (XWINT (x23, 0) != 3L)
12084 : return -1;
12085 : x24 = XVECEXP (x4, 0, 7);
12086 : if (XWINT (x24, 0) != 19L)
12087 : return -1;
12088 : x14 = XVECEXP (x4, 0, 8);
12089 : switch (XWINT (x14, 0))
12090 : {
12091 : case 4L:
12092 : x15 = XVECEXP (x4, 0, 9);
12093 : if (XWINT (x15, 0) != 20L)
12094 : return -1;
12095 : x16 = XVECEXP (x4, 0, 10);
12096 : if (XWINT (x16, 0) != 5L)
12097 : return -1;
12098 : x17 = XVECEXP (x4, 0, 11);
12099 : if (XWINT (x17, 0) != 21L
12100 : || XWINT (x7, 0) != 6L
12101 : || XWINT (x8, 0) != 22L
12102 : || XWINT (x9, 0) != 7L
12103 : || XWINT (x10, 0) != 23L
12104 : || pattern1594 (x2,
12105 : E_V16QImode,
12106 : E_V32QImode) != 0
12107 : || !(
12108 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12109 : (TARGET_AVX512F) &&
12110 : #line 19906 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12111 : (TARGET_SSE2 && TARGET_AVX512VL && TARGET_AVX512BW)))
12112 : return -1;
12113 : return 8374; /* vec_interleave_lowv16qi_mask */
12114 :
12115 : case 8L:
12116 : x15 = XVECEXP (x4, 0, 9);
12117 : if (XWINT (x15, 0) != 24L)
12118 : return -1;
12119 : x16 = XVECEXP (x4, 0, 10);
12120 : if (XWINT (x16, 0) != 9L)
12121 : return -1;
12122 : x17 = XVECEXP (x4, 0, 11);
12123 : if (XWINT (x17, 0) != 25L
12124 : || XWINT (x7, 0) != 10L
12125 : || XWINT (x8, 0) != 26L
12126 : || XWINT (x9, 0) != 11L
12127 : || XWINT (x10, 0) != 27L)
12128 : return -1;
12129 : switch (GET_MODE (operands[0]))
12130 : {
12131 : case E_V16HImode:
12132 : if (pattern1593 (x2,
12133 : E_V16HImode,
12134 : E_V32HImode) != 0
12135 : || !(
12136 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12137 : (TARGET_AVX512F) &&
12138 : #line 20026 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12139 : (TARGET_AVX2 && TARGET_AVX512VL && TARGET_AVX512BW)))
12140 : return -1;
12141 : return 8400; /* avx2_interleave_lowv16hi_mask */
12142 :
12143 : case E_V16HFmode:
12144 : if (pattern1593 (x2,
12145 : E_V16HFmode,
12146 : E_V32HFmode) != 0
12147 : || !(
12148 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12149 : (TARGET_AVX512F) &&
12150 : #line 20026 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12151 : (TARGET_AVX2 && TARGET_AVX512VL && TARGET_AVX512BW)))
12152 : return -1;
12153 : return 8402; /* avx2_interleave_lowv16hf_mask */
12154 :
12155 : case E_V16BFmode:
12156 : if (pattern1593 (x2,
12157 : E_V16BFmode,
12158 : E_V32BFmode) != 0
12159 : || !(
12160 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12161 : (TARGET_AVX512F) &&
12162 : #line 20026 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12163 : (TARGET_AVX2 && TARGET_AVX512VL && TARGET_AVX512BW)))
12164 : return -1;
12165 : return 8404; /* avx2_interleave_lowv16bf_mask */
12166 :
12167 : default:
12168 : return -1;
12169 : }
12170 :
12171 : default:
12172 : return -1;
12173 : }
12174 :
12175 : default:
12176 : return -1;
12177 : }
12178 :
12179 : case 0L:
12180 : if (pattern1688 (x4) != 0)
12181 : return -1;
12182 : x14 = XVECEXP (x4, 0, 8);
12183 : if (XWINT (x14, 0) != 8L)
12184 : return -1;
12185 : x15 = XVECEXP (x4, 0, 9);
12186 : if (XWINT (x15, 0) != 8L)
12187 : return -1;
12188 : x16 = XVECEXP (x4, 0, 10);
12189 : if (XWINT (x16, 0) != 10L)
12190 : return -1;
12191 : x17 = XVECEXP (x4, 0, 11);
12192 : if (XWINT (x17, 0) != 10L
12193 : || XWINT (x7, 0) != 12L
12194 : || XWINT (x8, 0) != 12L
12195 : || XWINT (x9, 0) != 14L
12196 : || XWINT (x10, 0) != 14L
12197 : || pattern1836 (x2,
12198 : E_V16SFmode,
12199 : E_V32SFmode) != 0
12200 : || !
12201 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12202 : (TARGET_AVX512F))
12203 : return -1;
12204 : return 5282; /* avx512f_movsldup512_mask */
12205 :
12206 : default:
12207 : return -1;
12208 : }
12209 :
12210 : case 1L:
12211 : x13 = XVECEXP (x4, 0, 1);
12212 : if (XWINT (x13, 0) != 1L
12213 : || XWINT (x5, 0) != 3L
12214 : || XWINT (x6, 0) != 3L)
12215 : return -1;
12216 : x21 = XVECEXP (x4, 0, 4);
12217 : if (XWINT (x21, 0) != 5L)
12218 : return -1;
12219 : x22 = XVECEXP (x4, 0, 5);
12220 : if (XWINT (x22, 0) != 5L)
12221 : return -1;
12222 : x23 = XVECEXP (x4, 0, 6);
12223 : if (XWINT (x23, 0) != 7L)
12224 : return -1;
12225 : x24 = XVECEXP (x4, 0, 7);
12226 : if (XWINT (x24, 0) != 7L)
12227 : return -1;
12228 : x14 = XVECEXP (x4, 0, 8);
12229 : if (XWINT (x14, 0) != 9L)
12230 : return -1;
12231 : x15 = XVECEXP (x4, 0, 9);
12232 : if (XWINT (x15, 0) != 9L)
12233 : return -1;
12234 : x16 = XVECEXP (x4, 0, 10);
12235 : if (XWINT (x16, 0) != 11L)
12236 : return -1;
12237 : x17 = XVECEXP (x4, 0, 11);
12238 : if (XWINT (x17, 0) != 11L
12239 : || XWINT (x7, 0) != 13L
12240 : || XWINT (x8, 0) != 13L
12241 : || XWINT (x9, 0) != 15L
12242 : || XWINT (x10, 0) != 15L
12243 : || pattern1836 (x2,
12244 : E_V16SFmode,
12245 : E_V32SFmode) != 0
12246 : || !
12247 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12248 : (TARGET_AVX512F))
12249 : return -1;
12250 : return 5276; /* avx512f_movshdup512_mask */
12251 :
12252 : case 8L:
12253 : x13 = XVECEXP (x4, 0, 1);
12254 : if (XWINT (x13, 0) != 24L
12255 : || XWINT (x5, 0) != 9L
12256 : || XWINT (x6, 0) != 25L)
12257 : return -1;
12258 : x21 = XVECEXP (x4, 0, 4);
12259 : if (XWINT (x21, 0) != 10L)
12260 : return -1;
12261 : x22 = XVECEXP (x4, 0, 5);
12262 : if (XWINT (x22, 0) != 26L)
12263 : return -1;
12264 : x23 = XVECEXP (x4, 0, 6);
12265 : if (XWINT (x23, 0) != 11L)
12266 : return -1;
12267 : x24 = XVECEXP (x4, 0, 7);
12268 : if (XWINT (x24, 0) != 27L
12269 : || pattern1882 (x4) != 0
12270 : || XWINT (x7, 0) != 14L
12271 : || XWINT (x8, 0) != 30L
12272 : || XWINT (x9, 0) != 15L
12273 : || XWINT (x10, 0) != 31L
12274 : || pattern778 (x2,
12275 : E_V32QImode,
12276 : E_V16QImode) != 0
12277 : || !register_operand (operands[1], E_V16QImode))
12278 : return -1;
12279 : x18 = XEXP (x3, 0);
12280 : x19 = XEXP (x18, 1);
12281 : operands[2] = x19;
12282 : if (!vector_operand (operands[2], E_V16QImode))
12283 : return -1;
12284 : x20 = XEXP (x2, 1);
12285 : operands[3] = x20;
12286 : if (!nonimm_or_0_operand (operands[3], E_V16QImode))
12287 : return -1;
12288 : operands[4] = x11;
12289 : if (!(
12290 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12291 : (TARGET_AVX512F) &&
12292 : #line 19810 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12293 : (TARGET_SSE2 && TARGET_AVX512VL && TARGET_AVX512BW)))
12294 : return -1;
12295 : return 8368; /* vec_interleave_highv16qi_mask */
12296 :
12297 : case 4L:
12298 : x13 = XVECEXP (x4, 0, 1);
12299 : if (XWINT (x13, 0) != 20L
12300 : || XWINT (x5, 0) != 5L
12301 : || XWINT (x6, 0) != 21L
12302 : || pattern1867 (x4) != 0
12303 : || pattern1882 (x4) != 0
12304 : || pattern1899 (x2) != 0)
12305 : return -1;
12306 : switch (GET_MODE (operands[0]))
12307 : {
12308 : case E_V16HImode:
12309 : if (pattern1593 (x2,
12310 : E_V16HImode,
12311 : E_V32HImode) != 0
12312 : || !(
12313 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12314 : (TARGET_AVX512F) &&
12315 : #line 19958 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12316 : (TARGET_AVX2 && TARGET_AVX512VL && TARGET_AVX512BW)))
12317 : return -1;
12318 : return 8382; /* avx2_interleave_highv16hi_mask */
12319 :
12320 : case E_V16HFmode:
12321 : if (pattern1593 (x2,
12322 : E_V16HFmode,
12323 : E_V32HFmode) != 0
12324 : || !(
12325 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12326 : (TARGET_AVX512F) &&
12327 : #line 19958 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12328 : (TARGET_AVX2 && TARGET_AVX512VL && TARGET_AVX512BW)))
12329 : return -1;
12330 : return 8384; /* avx2_interleave_highv16hf_mask */
12331 :
12332 : case E_V16BFmode:
12333 : if (pattern1593 (x2,
12334 : E_V16BFmode,
12335 : E_V32BFmode) != 0
12336 : || !(
12337 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12338 : (TARGET_AVX512F) &&
12339 : #line 19958 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12340 : (TARGET_AVX2 && TARGET_AVX512VL && TARGET_AVX512BW)))
12341 : return -1;
12342 : return 8386; /* avx2_interleave_highv16bf_mask */
12343 :
12344 : default:
12345 : return -1;
12346 : }
12347 :
12348 : default:
12349 : return -1;
12350 : }
12351 : }
12352 :
12353 : int
12354 : recog_177 (rtx x1 ATTRIBUTE_UNUSED,
12355 : rtx_insn *insn ATTRIBUTE_UNUSED,
12356 : int *pnum_clobbers ATTRIBUTE_UNUSED)
12357 : {
12358 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
12359 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
12360 : rtx x10;
12361 : int res ATTRIBUTE_UNUSED;
12362 : x2 = XEXP (x1, 1);
12363 : x3 = XEXP (x2, 0);
12364 : x4 = XEXP (x3, 1);
12365 : x5 = XVECEXP (x4, 0, 0);
12366 : if (GET_CODE (x5) != CONST_INT)
12367 : return -1;
12368 : x6 = XVECEXP (x4, 0, 1);
12369 : if (GET_CODE (x6) == CONST_INT)
12370 : {
12371 : res = recog_174 (x1, insn, pnum_clobbers);
12372 : if (res >= 0)
12373 : return res;
12374 : }
12375 : operands[2] = x5;
12376 : res = recog_176 (x1, insn, pnum_clobbers);
12377 : if (res >= 0)
12378 : return res;
12379 : if (XWINT (x5, 0) != 0L
12380 : || x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12381 : return -1;
12382 : x7 = XVECEXP (x4, 0, 2);
12383 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
12384 : return -1;
12385 : x8 = XVECEXP (x4, 0, 3);
12386 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 3]
12387 : || pattern1306 (x2,
12388 : E_V8HImode) != 0
12389 : || pattern1558 (x4) != 0)
12390 : return -1;
12391 : x9 = XEXP (x2, 1);
12392 : operands[6] = x9;
12393 : if (!nonimm_or_0_operand (operands[6], E_V8HImode))
12394 : return -1;
12395 : x10 = XEXP (x2, 2);
12396 : operands[7] = x10;
12397 : if (!register_operand (operands[7], E_QImode)
12398 : || !(
12399 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12400 : (TARGET_AVX512F) &&
12401 : #line 21343 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12402 : (TARGET_SSE2 && TARGET_AVX512BW && TARGET_AVX512VL)))
12403 : return -1;
12404 : return 8498; /* sse2_pshufhw_1_mask */
12405 : }
12406 :
12407 : int
12408 : recog_181 (rtx x1 ATTRIBUTE_UNUSED,
12409 : rtx_insn *insn ATTRIBUTE_UNUSED,
12410 : int *pnum_clobbers ATTRIBUTE_UNUSED)
12411 : {
12412 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
12413 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
12414 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
12415 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
12416 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
12417 : rtx x34, x35, x36, x37, x38, x39, x40, x41;
12418 : rtx x42, x43, x44, x45;
12419 : int res ATTRIBUTE_UNUSED;
12420 : x2 = XEXP (x1, 1);
12421 : x3 = XEXP (x2, 0);
12422 : x4 = XEXP (x3, 0);
12423 : x5 = XEXP (x4, 0);
12424 : x6 = XEXP (x5, 1);
12425 : if (GET_CODE (x6) != CONST_VECTOR
12426 : || XVECLEN (x6, 0) != 32
12427 : || GET_MODE (x6) != E_V32HImode)
12428 : return -1;
12429 : x7 = XVECEXP (x6, 0, 0);
12430 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12431 : return -1;
12432 : x8 = XVECEXP (x6, 0, 1);
12433 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12434 : return -1;
12435 : x9 = XVECEXP (x6, 0, 2);
12436 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12437 : return -1;
12438 : x10 = XVECEXP (x6, 0, 3);
12439 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12440 : return -1;
12441 : x11 = XVECEXP (x6, 0, 4);
12442 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12443 : return -1;
12444 : x12 = XVECEXP (x6, 0, 5);
12445 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12446 : return -1;
12447 : x13 = XVECEXP (x6, 0, 6);
12448 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12449 : return -1;
12450 : x14 = XVECEXP (x6, 0, 7);
12451 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12452 : return -1;
12453 : x15 = XVECEXP (x6, 0, 8);
12454 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12455 : return -1;
12456 : x16 = XVECEXP (x6, 0, 9);
12457 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12458 : return -1;
12459 : x17 = XVECEXP (x6, 0, 10);
12460 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12461 : return -1;
12462 : x18 = XVECEXP (x6, 0, 11);
12463 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12464 : return -1;
12465 : x19 = XVECEXP (x6, 0, 12);
12466 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12467 : return -1;
12468 : x20 = XVECEXP (x6, 0, 13);
12469 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12470 : return -1;
12471 : x21 = XVECEXP (x6, 0, 14);
12472 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12473 : return -1;
12474 : x22 = XVECEXP (x6, 0, 15);
12475 : if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12476 : return -1;
12477 : x23 = XVECEXP (x6, 0, 16);
12478 : if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12479 : return -1;
12480 : x24 = XVECEXP (x6, 0, 17);
12481 : if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12482 : return -1;
12483 : x25 = XVECEXP (x6, 0, 18);
12484 : if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12485 : return -1;
12486 : x26 = XVECEXP (x6, 0, 19);
12487 : if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12488 : return -1;
12489 : x27 = XVECEXP (x6, 0, 20);
12490 : if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12491 : return -1;
12492 : x28 = XVECEXP (x6, 0, 21);
12493 : if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12494 : return -1;
12495 : x29 = XVECEXP (x6, 0, 22);
12496 : if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12497 : return -1;
12498 : x30 = XVECEXP (x6, 0, 23);
12499 : if (x30 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12500 : return -1;
12501 : x31 = XVECEXP (x6, 0, 24);
12502 : if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12503 : return -1;
12504 : x32 = XVECEXP (x6, 0, 25);
12505 : if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12506 : return -1;
12507 : x33 = XVECEXP (x6, 0, 26);
12508 : if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12509 : return -1;
12510 : x34 = XVECEXP (x6, 0, 27);
12511 : if (x34 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12512 : return -1;
12513 : x35 = XVECEXP (x6, 0, 28);
12514 : if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12515 : return -1;
12516 : x36 = XVECEXP (x6, 0, 29);
12517 : if (x36 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12518 : return -1;
12519 : x37 = XVECEXP (x6, 0, 30);
12520 : if (x37 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12521 : return -1;
12522 : x38 = XVECEXP (x6, 0, 31);
12523 : if (x38 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
12524 : || !register_operand (operands[0], E_V32HImode)
12525 : || GET_MODE (x2) != E_V32HImode
12526 : || GET_MODE (x3) != E_V32HImode
12527 : || GET_MODE (x4) != E_V32SImode
12528 : || GET_MODE (x5) != E_V32SImode)
12529 : return -1;
12530 : x39 = XEXP (x5, 0);
12531 : if (GET_MODE (x39) != E_V32SImode)
12532 : return -1;
12533 : x40 = XEXP (x39, 0);
12534 : if (GET_MODE (x40) != E_V32SImode)
12535 : return -1;
12536 : x41 = XEXP (x40, 0);
12537 : if (GET_MODE (x41) != E_V32SImode)
12538 : return -1;
12539 : x42 = XEXP (x40, 1);
12540 : if (GET_MODE (x42) != E_V32SImode)
12541 : return -1;
12542 : x43 = XEXP (x42, 0);
12543 : operands[2] = x43;
12544 : if (!nonimmediate_operand (operands[2], E_V32HImode))
12545 : return -1;
12546 : x44 = XEXP (x2, 1);
12547 : operands[3] = x44;
12548 : if (!nonimm_or_0_operand (operands[3], E_V32HImode))
12549 : return -1;
12550 : x45 = XEXP (x2, 2);
12551 : operands[4] = x45;
12552 : if (!register_operand (operands[4], E_SImode)
12553 : || !(
12554 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12555 : (TARGET_AVX512F) &&
12556 : #line 23182 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12557 : (TARGET_AVX512BW)))
12558 : return -1;
12559 : return 8657; /* avx512bw_umulhrswv32hi3_mask */
12560 : }
12561 :
12562 : int
12563 : recog_190 (rtx x1 ATTRIBUTE_UNUSED,
12564 : rtx_insn *insn ATTRIBUTE_UNUSED,
12565 : int *pnum_clobbers ATTRIBUTE_UNUSED)
12566 : {
12567 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
12568 : rtx x2, x3, x4, x5, x6, x7;
12569 : int res ATTRIBUTE_UNUSED;
12570 : x2 = XEXP (x1, 1);
12571 : x3 = XEXP (x2, 0);
12572 : x4 = XEXP (x3, 0);
12573 : switch (GET_CODE (x4))
12574 : {
12575 : case REG:
12576 : case SUBREG:
12577 : case MEM:
12578 : case VEC_DUPLICATE:
12579 : operands[1] = x4;
12580 : x5 = XEXP (x3, 1);
12581 : operands[2] = x5;
12582 : x6 = XEXP (x2, 2);
12583 : switch (GET_CODE (x6))
12584 : {
12585 : case REG:
12586 : case SUBREG:
12587 : operands[4] = x6;
12588 : x7 = XEXP (x2, 1);
12589 : operands[3] = x7;
12590 : switch (GET_MODE (operands[0]))
12591 : {
12592 : case E_V32HFmode:
12593 : if (pattern489 (x2,
12594 : E_V32HFmode,
12595 : E_SImode) != 0
12596 : || !(
12597 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12598 : (TARGET_AVX512F) && (
12599 : #line 2773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12600 : (TARGET_SSE && ix86_binary_operator_ok (MULT, V32HFmode, operands)
12601 : && (64 == 64 || TARGET_AVX512VL) && 1) &&
12602 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12603 : (TARGET_AVX512FP16))))
12604 : return -1;
12605 : return 2849; /* *mulv32hf3_mask */
12606 :
12607 : case E_V16HFmode:
12608 : if (pattern489 (x2,
12609 : E_V16HFmode,
12610 : E_HImode) != 0
12611 : || !(
12612 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12613 : (TARGET_AVX512F) && (
12614 : #line 2773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12615 : (TARGET_SSE && ix86_binary_operator_ok (MULT, V16HFmode, operands)
12616 : && (32 == 64 || TARGET_AVX512VL) && 1) &&
12617 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12618 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
12619 : return -1;
12620 : return 2853; /* *mulv16hf3_mask */
12621 :
12622 : case E_V8HFmode:
12623 : if (pattern489 (x2,
12624 : E_V8HFmode,
12625 : E_QImode) != 0
12626 : || !(
12627 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12628 : (TARGET_AVX512F) && (
12629 : #line 2773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12630 : (TARGET_SSE && ix86_binary_operator_ok (MULT, V8HFmode, operands)
12631 : && (16 == 64 || TARGET_AVX512VL) && 1) &&
12632 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12633 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
12634 : return -1;
12635 : return 2857; /* *mulv8hf3_mask */
12636 :
12637 : case E_V16SFmode:
12638 : if (pattern489 (x2,
12639 : E_V16SFmode,
12640 : E_HImode) != 0
12641 : || !(
12642 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12643 : (TARGET_AVX512F) && (
12644 : #line 2773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12645 : (TARGET_SSE && ix86_binary_operator_ok (MULT, V16SFmode, operands)
12646 : && (64 == 64 || TARGET_AVX512VL) && 1) &&
12647 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12648 : (TARGET_AVX512F))))
12649 : return -1;
12650 : return 2861; /* *mulv16sf3_mask */
12651 :
12652 : case E_V8SFmode:
12653 : if (pattern489 (x2,
12654 : E_V8SFmode,
12655 : E_QImode) != 0
12656 : || !(
12657 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12658 : (TARGET_AVX512F) && (
12659 : #line 2773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12660 : (TARGET_SSE && ix86_binary_operator_ok (MULT, V8SFmode, operands)
12661 : && (32 == 64 || TARGET_AVX512VL) && 1) &&
12662 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12663 : (TARGET_AVX))))
12664 : return -1;
12665 : return 2865; /* *mulv8sf3_mask */
12666 :
12667 : case E_V4SFmode:
12668 : if (pattern489 (x2,
12669 : E_V4SFmode,
12670 : E_QImode) != 0
12671 : || !(
12672 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12673 : (TARGET_AVX512F) &&
12674 : #line 2773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12675 : (TARGET_SSE && ix86_binary_operator_ok (MULT, V4SFmode, operands)
12676 : && (16 == 64 || TARGET_AVX512VL) && 1)))
12677 : return -1;
12678 : return 2869; /* *mulv4sf3_mask */
12679 :
12680 : case E_V8DFmode:
12681 : if (pattern489 (x2,
12682 : E_V8DFmode,
12683 : E_QImode) != 0
12684 : || !(
12685 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12686 : (TARGET_AVX512F) && (
12687 : #line 2773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12688 : (TARGET_SSE && ix86_binary_operator_ok (MULT, V8DFmode, operands)
12689 : && (64 == 64 || TARGET_AVX512VL) && 1) &&
12690 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12691 : (TARGET_AVX512F))))
12692 : return -1;
12693 : return 2873; /* *mulv8df3_mask */
12694 :
12695 : case E_V4DFmode:
12696 : if (pattern489 (x2,
12697 : E_V4DFmode,
12698 : E_QImode) != 0
12699 : || !(
12700 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12701 : (TARGET_AVX512F) && (
12702 : #line 2773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12703 : (TARGET_SSE && ix86_binary_operator_ok (MULT, V4DFmode, operands)
12704 : && (32 == 64 || TARGET_AVX512VL) && 1) &&
12705 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12706 : (TARGET_AVX))))
12707 : return -1;
12708 : return 2877; /* *mulv4df3_mask */
12709 :
12710 : case E_V2DFmode:
12711 : if (pattern489 (x2,
12712 : E_V2DFmode,
12713 : E_QImode) != 0
12714 : || !(
12715 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12716 : (TARGET_AVX512F) && (
12717 : #line 2773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12718 : (TARGET_SSE && ix86_binary_operator_ok (MULT, V2DFmode, operands)
12719 : && (16 == 64 || TARGET_AVX512VL) && 1) &&
12720 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12721 : (TARGET_SSE2))))
12722 : return -1;
12723 : return 2881; /* *mulv2df3_mask */
12724 :
12725 : case E_V32HImode:
12726 : if (pattern133 (x2,
12727 : E_V32HImode,
12728 : E_SImode) != 0
12729 : || !(
12730 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12731 : (TARGET_AVX512F) && (
12732 : #line 16710 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12733 : (TARGET_SSE2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))
12734 : && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) &&
12735 : #line 646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12736 : (TARGET_AVX512BW))))
12737 : return -1;
12738 : return 7595; /* *mulv32hi3_mask */
12739 :
12740 : case E_V16HImode:
12741 : if (pattern133 (x2,
12742 : E_V16HImode,
12743 : E_HImode) != 0
12744 : || !(
12745 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12746 : (TARGET_AVX512F) && (
12747 : #line 16710 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12748 : (TARGET_SSE2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))
12749 : && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) &&
12750 : #line 646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12751 : (TARGET_AVX2))))
12752 : return -1;
12753 : return 7597; /* *mulv16hi3_mask */
12754 :
12755 : case E_V8HImode:
12756 : if (pattern133 (x2,
12757 : E_V8HImode,
12758 : E_QImode) != 0
12759 : || !(
12760 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12761 : (TARGET_AVX512F) &&
12762 : #line 16710 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12763 : (TARGET_SSE2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))
12764 : && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW)))
12765 : return -1;
12766 : return 7599; /* *mulv8hi3_mask */
12767 :
12768 : case E_V8DImode:
12769 : if (pattern489 (x2,
12770 : E_V8DImode,
12771 : E_QImode) != 0
12772 : || !(
12773 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12774 : (TARGET_AVX512F) &&
12775 : #line 17164 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12776 : (TARGET_AVX512DQ && (64 == 64 || TARGET_AVX512VL)
12777 : && ix86_binary_operator_ok (MULT, V8DImode, operands))))
12778 : return -1;
12779 : return 7633; /* *avx512dq_mulv8di3_mask */
12780 :
12781 : case E_V4DImode:
12782 : if (pattern489 (x2,
12783 : E_V4DImode,
12784 : E_QImode) != 0
12785 : || !(
12786 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12787 : (TARGET_AVX512F) && (
12788 : #line 17164 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12789 : (TARGET_AVX512DQ && (32 == 64 || TARGET_AVX512VL)
12790 : && ix86_binary_operator_ok (MULT, V4DImode, operands)) &&
12791 : #line 617 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12792 : (TARGET_AVX512VL))))
12793 : return -1;
12794 : return 7635; /* *avx512dq_mulv4di3_mask */
12795 :
12796 : case E_V2DImode:
12797 : if (pattern489 (x2,
12798 : E_V2DImode,
12799 : E_QImode) != 0
12800 : || !(
12801 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12802 : (TARGET_AVX512F) && (
12803 : #line 17164 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12804 : (TARGET_AVX512DQ && (16 == 64 || TARGET_AVX512VL)
12805 : && ix86_binary_operator_ok (MULT, V2DImode, operands)) &&
12806 : #line 617 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12807 : (TARGET_AVX512VL))))
12808 : return -1;
12809 : return 7637; /* *avx512dq_mulv2di3_mask */
12810 :
12811 : case E_V16SImode:
12812 : if (pattern489 (x2,
12813 : E_V16SImode,
12814 : E_HImode) != 0
12815 : || !(
12816 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12817 : (TARGET_AVX512F) && (
12818 : #line 17223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12819 : (TARGET_SSE4_1 && ix86_binary_operator_ok (MULT, V16SImode, operands)
12820 : && (64 == 64 || TARGET_AVX512VL)) &&
12821 : #line 665 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12822 : (TARGET_AVX512F))))
12823 : return -1;
12824 : return 7639; /* *avx512f_mulv16si3_mask */
12825 :
12826 : case E_V8SImode:
12827 : if (pattern489 (x2,
12828 : E_V8SImode,
12829 : E_QImode) != 0
12830 : || !(
12831 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12832 : (TARGET_AVX512F) && (
12833 : #line 17223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12834 : (TARGET_SSE4_1 && ix86_binary_operator_ok (MULT, V8SImode, operands)
12835 : && (32 == 64 || TARGET_AVX512VL)) &&
12836 : #line 665 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12837 : (TARGET_AVX2))))
12838 : return -1;
12839 : return 7641; /* *avx2_mulv8si3_mask */
12840 :
12841 : case E_V4SImode:
12842 : if (pattern489 (x2,
12843 : E_V4SImode,
12844 : E_QImode) != 0
12845 : || !(
12846 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12847 : (TARGET_AVX512F) &&
12848 : #line 17223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12849 : (TARGET_SSE4_1 && ix86_binary_operator_ok (MULT, V4SImode, operands)
12850 : && (16 == 64 || TARGET_AVX512VL))))
12851 : return -1;
12852 : return 7643; /* *sse4_1_mulv4si3_mask */
12853 :
12854 : case E_V32BFmode:
12855 : if (pattern136 (x2,
12856 : E_V32BFmode,
12857 : E_SImode) != 0
12858 : || !(
12859 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12860 : (TARGET_AVX512F) &&
12861 : #line 32831 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12862 : (TARGET_AVX10_2)))
12863 : return -1;
12864 : return 10682; /* avx10_2_mulbf16_v32bf_mask */
12865 :
12866 : case E_V16BFmode:
12867 : if (pattern136 (x2,
12868 : E_V16BFmode,
12869 : E_HImode) != 0
12870 : || !(
12871 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12872 : (TARGET_AVX512F) &&
12873 : #line 32831 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12874 : (TARGET_AVX10_2)))
12875 : return -1;
12876 : return 10690; /* avx10_2_mulbf16_v16bf_mask */
12877 :
12878 : case E_V8BFmode:
12879 : if (pattern136 (x2,
12880 : E_V8BFmode,
12881 : E_QImode) != 0
12882 : || !(
12883 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12884 : (TARGET_AVX512F) &&
12885 : #line 32831 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12886 : (TARGET_AVX10_2)))
12887 : return -1;
12888 : return 10698; /* avx10_2_mulbf16_v8bf_mask */
12889 :
12890 : default:
12891 : return -1;
12892 : }
12893 :
12894 : case CONST_INT:
12895 : switch (pattern138 (x2))
12896 : {
12897 : case 0:
12898 : if (!(
12899 : #line 2824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12900 : (TARGET_SSE) &&
12901 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12902 : (TARGET_AVX512FP16)))
12903 : return -1;
12904 : return 2889; /* avx512fp16_vmmulv8hf3 */
12905 :
12906 : case 1:
12907 : if (!
12908 : #line 2824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12909 : (TARGET_SSE))
12910 : return -1;
12911 : return 2897; /* sse_vmmulv4sf3 */
12912 :
12913 : case 2:
12914 : if (!(
12915 : #line 2824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12916 : (TARGET_SSE) &&
12917 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12918 : (TARGET_SSE2)))
12919 : return -1;
12920 : return 2905; /* sse2_vmmulv2df3 */
12921 :
12922 : default:
12923 : return -1;
12924 : }
12925 :
12926 : default:
12927 : return -1;
12928 : }
12929 :
12930 : case ZERO_EXTEND:
12931 : switch (pattern317 (x2,
12932 : ZERO_EXTEND))
12933 : {
12934 : case 0:
12935 : if (!(
12936 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12937 : (TARGET_AVX512F) &&
12938 : #line 16793 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12939 : (TARGET_AVX512F
12940 : && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
12941 : return -1;
12942 : return 7613; /* *vec_widen_umult_even_v16si_mask */
12943 :
12944 : case 1:
12945 : if (!(
12946 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12947 : (TARGET_AVX512F) &&
12948 : #line 16829 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12949 : (TARGET_AVX2 && TARGET_AVX512VL
12950 : && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
12951 : return -1;
12952 : return 7615; /* *vec_widen_umult_even_v8si_mask */
12953 :
12954 : case 2:
12955 : if (!(
12956 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12957 : (TARGET_AVX512F) &&
12958 : #line 16861 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12959 : (TARGET_SSE2 && TARGET_AVX512VL
12960 : && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
12961 : return -1;
12962 : return 7617; /* *vec_widen_umult_even_v4si_mask */
12963 :
12964 : default:
12965 : return -1;
12966 : }
12967 :
12968 : case SIGN_EXTEND:
12969 : switch (pattern317 (x2,
12970 : SIGN_EXTEND))
12971 : {
12972 : case 0:
12973 : if (!(
12974 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12975 : (TARGET_AVX512F) &&
12976 : #line 16909 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12977 : (TARGET_AVX512F
12978 : && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
12979 : return -1;
12980 : return 7619; /* *vec_widen_smult_even_v16si_mask */
12981 :
12982 : case 1:
12983 : if (!(
12984 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12985 : (TARGET_AVX512F) &&
12986 : #line 16945 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12987 : (TARGET_AVX2 && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
12988 : return -1;
12989 : return 7621; /* *vec_widen_smult_even_v8si_mask */
12990 :
12991 : case 2:
12992 : if (!(
12993 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12994 : (TARGET_AVX512F) &&
12995 : #line 16977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12996 : (TARGET_SSE4_1 && TARGET_AVX512VL
12997 : && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
12998 : return -1;
12999 : return 7623; /* *sse4_1_mulv2siv2di3_mask */
13000 :
13001 : default:
13002 : return -1;
13003 : }
13004 :
13005 : default:
13006 : return -1;
13007 : }
13008 : }
13009 :
13010 : int
13011 : recog_195 (rtx x1 ATTRIBUTE_UNUSED,
13012 : rtx_insn *insn ATTRIBUTE_UNUSED,
13013 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13014 : {
13015 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13016 : rtx x2, x3, x4, x5, x6, x7, x8;
13017 : int res ATTRIBUTE_UNUSED;
13018 : x2 = XEXP (x1, 1);
13019 : x3 = XEXP (x2, 0);
13020 : x4 = XEXP (x3, 1);
13021 : operands[2] = x4;
13022 : x5 = XEXP (x2, 1);
13023 : operands[3] = x5;
13024 : x6 = XEXP (x2, 2);
13025 : operands[4] = x6;
13026 : x7 = XEXP (x3, 0);
13027 : switch (GET_CODE (x7))
13028 : {
13029 : case NOT:
13030 : x8 = XEXP (x7, 0);
13031 : operands[1] = x8;
13032 : switch (GET_MODE (operands[0]))
13033 : {
13034 : case E_V8SFmode:
13035 : if (pattern1019 (x2,
13036 : E_V8SFmode) != 0
13037 : || !(
13038 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13039 : (TARGET_AVX512F) && (
13040 : #line 5590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13041 : (TARGET_SSE && TARGET_AVX512VL
13042 : && (!true || 32 != 16)) &&
13043 : #line 432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13044 : (TARGET_AVX))))
13045 : return -1;
13046 : return 3769; /* avx_andnotv8sf3_mask */
13047 :
13048 : case E_V4SFmode:
13049 : if (pattern1019 (x2,
13050 : E_V4SFmode) != 0
13051 : || !(
13052 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13053 : (TARGET_AVX512F) &&
13054 : #line 5590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13055 : (TARGET_SSE && TARGET_AVX512VL
13056 : && (!true || 32 != 16))))
13057 : return -1;
13058 : return 3771; /* sse_andnotv4sf3_mask */
13059 :
13060 : case E_V4DFmode:
13061 : if (pattern1019 (x2,
13062 : E_V4DFmode) != 0
13063 : || !(
13064 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13065 : (TARGET_AVX512F) && (
13066 : #line 5590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13067 : (TARGET_SSE && TARGET_AVX512VL
13068 : && (!true || 64 != 16)) &&
13069 : #line 433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13070 : (TARGET_AVX))))
13071 : return -1;
13072 : return 3773; /* avx_andnotv4df3_mask */
13073 :
13074 : case E_V2DFmode:
13075 : if (pattern1019 (x2,
13076 : E_V2DFmode) != 0
13077 : || !(
13078 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13079 : (TARGET_AVX512F) && (
13080 : #line 5590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13081 : (TARGET_SSE && TARGET_AVX512VL
13082 : && (!true || 64 != 16)) &&
13083 : #line 433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13084 : (TARGET_SSE2))))
13085 : return -1;
13086 : return 3775; /* sse2_andnotv2df3_mask */
13087 :
13088 : case E_V16SFmode:
13089 : if (pattern1020 (x2,
13090 : E_V16SFmode,
13091 : E_HImode) != 0
13092 : || !(
13093 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13094 : (TARGET_AVX512F) &&
13095 : #line 5665 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13096 : (TARGET_AVX512F && (!true || 32 != 16))))
13097 : return -1;
13098 : return 3779; /* avx512f_andnotv16sf3_mask */
13099 :
13100 : case E_V8DFmode:
13101 : if (pattern1020 (x2,
13102 : E_V8DFmode,
13103 : E_QImode) != 0
13104 : || !(
13105 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13106 : (TARGET_AVX512F) &&
13107 : #line 5665 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13108 : (TARGET_AVX512F && (!true || 64 != 16))))
13109 : return -1;
13110 : return 3781; /* avx512f_andnotv8df3_mask */
13111 :
13112 : case E_V16SImode:
13113 : if (pattern1020 (x2,
13114 : E_V16SImode,
13115 : E_HImode) != 0
13116 : || !
13117 : #line 19018 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13118 : (TARGET_AVX512F))
13119 : return -1;
13120 : return 8042; /* *andnotv16si3_mask */
13121 :
13122 : case E_V8SImode:
13123 : if (pattern1020 (x2,
13124 : E_V8SImode,
13125 : E_QImode) != 0
13126 : || !(
13127 : #line 19018 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13128 : (TARGET_AVX512F) &&
13129 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13130 : (TARGET_AVX512VL)))
13131 : return -1;
13132 : return 8043; /* *andnotv8si3_mask */
13133 :
13134 : case E_V4SImode:
13135 : if (pattern1020 (x2,
13136 : E_V4SImode,
13137 : E_QImode) != 0
13138 : || !(
13139 : #line 19018 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13140 : (TARGET_AVX512F) &&
13141 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13142 : (TARGET_AVX512VL)))
13143 : return -1;
13144 : return 8044; /* *andnotv4si3_mask */
13145 :
13146 : case E_V8DImode:
13147 : if (pattern1020 (x2,
13148 : E_V8DImode,
13149 : E_QImode) != 0
13150 : || !
13151 : #line 19018 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13152 : (TARGET_AVX512F))
13153 : return -1;
13154 : return 8045; /* *andnotv8di3_mask */
13155 :
13156 : case E_V4DImode:
13157 : if (pattern1020 (x2,
13158 : E_V4DImode,
13159 : E_QImode) != 0
13160 : || !(
13161 : #line 19018 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13162 : (TARGET_AVX512F) &&
13163 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13164 : (TARGET_AVX512VL)))
13165 : return -1;
13166 : return 8046; /* *andnotv4di3_mask */
13167 :
13168 : case E_V2DImode:
13169 : if (pattern1020 (x2,
13170 : E_V2DImode,
13171 : E_QImode) != 0
13172 : || !(
13173 : #line 19018 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13174 : (TARGET_AVX512F) &&
13175 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13176 : (TARGET_AVX512VL)))
13177 : return -1;
13178 : return 8047; /* *andnotv2di3_mask */
13179 :
13180 : default:
13181 : return -1;
13182 : }
13183 :
13184 : case REG:
13185 : case SUBREG:
13186 : case MEM:
13187 : case VEC_DUPLICATE:
13188 : operands[1] = x7;
13189 : switch (GET_MODE (operands[0]))
13190 : {
13191 : case E_V8SFmode:
13192 : if (pattern133 (x2,
13193 : E_V8SFmode,
13194 : E_QImode) != 0
13195 : || !(
13196 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13197 : (TARGET_AVX512F) && (
13198 : #line 5717 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13199 : (TARGET_SSE && TARGET_AVX512VL
13200 : && (!true || 32 != 16)
13201 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
13202 : #line 432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13203 : (TARGET_AVX))))
13204 : return -1;
13205 : return 3795; /* *andv8sf3_mask */
13206 :
13207 : case E_V4SFmode:
13208 : if (pattern133 (x2,
13209 : E_V4SFmode,
13210 : E_QImode) != 0
13211 : || !(
13212 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13213 : (TARGET_AVX512F) &&
13214 : #line 5717 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13215 : (TARGET_SSE && TARGET_AVX512VL
13216 : && (!true || 32 != 16)
13217 : && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
13218 : return -1;
13219 : return 3801; /* *andv4sf3_mask */
13220 :
13221 : case E_V4DFmode:
13222 : if (pattern133 (x2,
13223 : E_V4DFmode,
13224 : E_QImode) != 0
13225 : || !(
13226 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13227 : (TARGET_AVX512F) && (
13228 : #line 5717 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13229 : (TARGET_SSE && TARGET_AVX512VL
13230 : && (!true || 64 != 16)
13231 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
13232 : #line 433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13233 : (TARGET_AVX))))
13234 : return -1;
13235 : return 3807; /* *andv4df3_mask */
13236 :
13237 : case E_V2DFmode:
13238 : if (pattern133 (x2,
13239 : E_V2DFmode,
13240 : E_QImode) != 0
13241 : || !(
13242 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13243 : (TARGET_AVX512F) && (
13244 : #line 5717 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13245 : (TARGET_SSE && TARGET_AVX512VL
13246 : && (!true || 64 != 16)
13247 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
13248 : #line 433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13249 : (TARGET_SSE2))))
13250 : return -1;
13251 : return 3813; /* *andv2df3_mask */
13252 :
13253 : case E_V16SFmode:
13254 : if (pattern134 (x2,
13255 : E_V16SFmode,
13256 : E_HImode) != 0
13257 : || !(
13258 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13259 : (TARGET_AVX512F) &&
13260 : #line 5787 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13261 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13262 : && (!true || 32 != 16))))
13263 : return -1;
13264 : return 3825; /* *andv16sf3_mask */
13265 :
13266 : case E_V8DFmode:
13267 : if (pattern134 (x2,
13268 : E_V8DFmode,
13269 : E_QImode) != 0
13270 : || !(
13271 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13272 : (TARGET_AVX512F) &&
13273 : #line 5787 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13274 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13275 : && (!true || 64 != 16))))
13276 : return -1;
13277 : return 3831; /* *andv8df3_mask */
13278 :
13279 : case E_V16SImode:
13280 : if (pattern489 (x2,
13281 : E_V16SImode,
13282 : E_HImode) != 0
13283 : || !(
13284 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13285 : (TARGET_AVX512F) && (
13286 : #line 19069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13287 : (TARGET_SSE && (64 == 64 || TARGET_AVX512VL)
13288 : && ix86_binary_operator_ok (AND, V16SImode, operands)) &&
13289 : #line 799 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13290 : (TARGET_AVX512F))))
13291 : return -1;
13292 : return 8049; /* *andv16si3_mask */
13293 :
13294 : case E_V8SImode:
13295 : if (pattern489 (x2,
13296 : E_V8SImode,
13297 : E_QImode) != 0
13298 : || !(
13299 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13300 : (TARGET_AVX512F) && (
13301 : #line 19069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13302 : (TARGET_SSE && (32 == 64 || TARGET_AVX512VL)
13303 : && ix86_binary_operator_ok (AND, V8SImode, operands)) &&
13304 : #line 799 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13305 : (TARGET_AVX))))
13306 : return -1;
13307 : return 8055; /* *andv8si3_mask */
13308 :
13309 : case E_V4SImode:
13310 : if (pattern489 (x2,
13311 : E_V4SImode,
13312 : E_QImode) != 0
13313 : || !(
13314 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13315 : (TARGET_AVX512F) &&
13316 : #line 19069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13317 : (TARGET_SSE && (16 == 64 || TARGET_AVX512VL)
13318 : && ix86_binary_operator_ok (AND, V4SImode, operands))))
13319 : return -1;
13320 : return 8061; /* *andv4si3_mask */
13321 :
13322 : case E_V8DImode:
13323 : if (pattern489 (x2,
13324 : E_V8DImode,
13325 : E_QImode) != 0
13326 : || !(
13327 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13328 : (TARGET_AVX512F) && (
13329 : #line 19069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13330 : (TARGET_SSE && (64 == 64 || TARGET_AVX512VL)
13331 : && ix86_binary_operator_ok (AND, V8DImode, operands)) &&
13332 : #line 800 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13333 : (TARGET_AVX512F))))
13334 : return -1;
13335 : return 8067; /* *andv8di3_mask */
13336 :
13337 : case E_V4DImode:
13338 : if (pattern489 (x2,
13339 : E_V4DImode,
13340 : E_QImode) != 0
13341 : || !(
13342 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13343 : (TARGET_AVX512F) && (
13344 : #line 19069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13345 : (TARGET_SSE && (32 == 64 || TARGET_AVX512VL)
13346 : && ix86_binary_operator_ok (AND, V4DImode, operands)) &&
13347 : #line 800 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13348 : (TARGET_AVX))))
13349 : return -1;
13350 : return 8073; /* *andv4di3_mask */
13351 :
13352 : case E_V2DImode:
13353 : if (pattern489 (x2,
13354 : E_V2DImode,
13355 : E_QImode) != 0
13356 : || !(
13357 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13358 : (TARGET_AVX512F) &&
13359 : #line 19069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13360 : (TARGET_SSE && (16 == 64 || TARGET_AVX512VL)
13361 : && ix86_binary_operator_ok (AND, V2DImode, operands))))
13362 : return -1;
13363 : return 8079; /* *andv2di3_mask */
13364 :
13365 : default:
13366 : return -1;
13367 : }
13368 :
13369 : default:
13370 : return -1;
13371 : }
13372 : }
13373 :
13374 : int
13375 : recog_204 (rtx x1 ATTRIBUTE_UNUSED,
13376 : rtx_insn *insn ATTRIBUTE_UNUSED,
13377 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13378 : {
13379 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13380 : rtx x2;
13381 : int res ATTRIBUTE_UNUSED;
13382 : x2 = XEXP (x1, 1);
13383 : switch (pattern140 (x2))
13384 : {
13385 : case 0:
13386 : switch (pattern901 (x2))
13387 : {
13388 : case 0:
13389 : if (!(
13390 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13391 : (TARGET_AVX512F) && (
13392 : #line 7993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13393 : (TARGET_AVX512FP16) &&
13394 : #line 687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13395 : (TARGET_AVX512VL))))
13396 : return -1;
13397 : return 4519; /* avx512fp16_vcvtw2ph_v8hi_mask */
13398 :
13399 : case 1:
13400 : if (!(
13401 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13402 : (TARGET_AVX512F) && (
13403 : #line 7993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13404 : (TARGET_AVX512FP16) &&
13405 : #line 688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13406 : (TARGET_AVX512VL))))
13407 : return -1;
13408 : return 4543; /* avx512fp16_vcvtdq2ph_v8si_mask */
13409 :
13410 : case 2:
13411 : if (!(
13412 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13413 : (TARGET_AVX512F) &&
13414 : #line 7993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13415 : (TARGET_AVX512FP16)))
13416 : return -1;
13417 : return 4559; /* avx512fp16_vcvtqq2ph_v8di_mask */
13418 :
13419 : default:
13420 : return -1;
13421 : }
13422 :
13423 : case 1:
13424 : switch (pattern902 (x2))
13425 : {
13426 : case 0:
13427 : if (!(
13428 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13429 : (TARGET_AVX512F) && (
13430 : #line 7993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13431 : (TARGET_AVX512FP16) &&
13432 : #line 687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13433 : (TARGET_AVX512VL))))
13434 : return -1;
13435 : return 4527; /* avx512fp16_vcvtw2ph_v16hi_mask */
13436 :
13437 : case 1:
13438 : if (!(
13439 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13440 : (TARGET_AVX512F) &&
13441 : #line 7993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13442 : (TARGET_AVX512FP16)))
13443 : return -1;
13444 : return 4551; /* avx512fp16_vcvtdq2ph_v16si_mask */
13445 :
13446 : default:
13447 : return -1;
13448 : }
13449 :
13450 : case 2:
13451 : if (pattern141 (x2,
13452 : E_V32HFmode,
13453 : E_SImode,
13454 : E_V32HImode) != 0
13455 : || !(
13456 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13457 : (TARGET_AVX512F) &&
13458 : #line 7993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13459 : (TARGET_AVX512FP16)))
13460 : return -1;
13461 : return 4535; /* avx512fp16_vcvtw2ph_v32hi_mask */
13462 :
13463 : case 3:
13464 : if (pattern141 (x2,
13465 : E_V16SFmode,
13466 : E_HImode,
13467 : E_V16SImode) != 0
13468 : || !(
13469 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13470 : (TARGET_AVX512F) && (
13471 : #line 8971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13472 : (TARGET_SSE2 && (64 == 64 || TARGET_AVX512VL) && 1) &&
13473 : #line 437 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13474 : (TARGET_AVX512F))))
13475 : return -1;
13476 : return 4855; /* floatv16siv16sf2_mask */
13477 :
13478 : case 4:
13479 : if (pattern142 (x2,
13480 : E_V8SFmode,
13481 : E_QImode) != 0)
13482 : return -1;
13483 : switch (GET_MODE (operands[1]))
13484 : {
13485 : case E_V8SImode:
13486 : if (!vector_operand (operands[1], E_V8SImode)
13487 : || !(
13488 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13489 : (TARGET_AVX512F) && (
13490 : #line 8971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13491 : (TARGET_SSE2 && (32 == 64 || TARGET_AVX512VL) && 1) &&
13492 : #line 437 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13493 : (TARGET_AVX))))
13494 : return -1;
13495 : return 4858; /* floatv8siv8sf2_mask */
13496 :
13497 : case E_V8DImode:
13498 : if (!nonimmediate_operand (operands[1], E_V8DImode)
13499 : || !(
13500 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13501 : (TARGET_AVX512F) &&
13502 : #line 9518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13503 : (TARGET_AVX512DQ && 1)))
13504 : return -1;
13505 : return 5011; /* floatv8div8sf2_mask */
13506 :
13507 : default:
13508 : return -1;
13509 : }
13510 :
13511 : case 5:
13512 : if (pattern142 (x2,
13513 : E_V4SFmode,
13514 : E_QImode) != 0)
13515 : return -1;
13516 : switch (GET_MODE (operands[1]))
13517 : {
13518 : case E_V4SImode:
13519 : if (!vector_operand (operands[1], E_V4SImode)
13520 : || !(
13521 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13522 : (TARGET_AVX512F) &&
13523 : #line 8971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13524 : (TARGET_SSE2 && (16 == 64 || TARGET_AVX512VL) && 1)))
13525 : return -1;
13526 : return 4860; /* floatv4siv4sf2_mask */
13527 :
13528 : case E_V4DImode:
13529 : if (!nonimmediate_operand (operands[1], E_V4DImode)
13530 : || !(
13531 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13532 : (TARGET_AVX512F) && (
13533 : #line 9518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13534 : (TARGET_AVX512DQ && 1) &&
13535 : #line 620 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13536 : (TARGET_AVX512VL))))
13537 : return -1;
13538 : return 5018; /* floatv4div4sf2_mask */
13539 :
13540 : default:
13541 : return -1;
13542 : }
13543 :
13544 : case 6:
13545 : switch (pattern903 (x2,
13546 : E_V8DFmode))
13547 : {
13548 : case 0:
13549 : if (!(
13550 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13551 : (TARGET_AVX512F) && (
13552 : #line 9494 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13553 : (TARGET_AVX && (64 == 64 || TARGET_AVX512VL)) &&
13554 : #line 466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13555 : (TARGET_AVX512F))))
13556 : return -1;
13557 : return 4982; /* floatv8siv8df2_mask */
13558 :
13559 : case 1:
13560 : if (!(
13561 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13562 : (TARGET_AVX512F) &&
13563 : #line 9504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13564 : (TARGET_AVX512DQ)))
13565 : return -1;
13566 : return 4987; /* floatv8div8df2_mask */
13567 :
13568 : default:
13569 : return -1;
13570 : }
13571 :
13572 : case 7:
13573 : switch (pattern904 (x2,
13574 : E_V4DFmode))
13575 : {
13576 : case 0:
13577 : if (!(
13578 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13579 : (TARGET_AVX512F) &&
13580 : #line 9494 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13581 : (TARGET_AVX && (32 == 64 || TARGET_AVX512VL))))
13582 : return -1;
13583 : return 4984; /* floatv4siv4df2_mask */
13584 :
13585 : case 1:
13586 : if (!(
13587 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13588 : (TARGET_AVX512F) && (
13589 : #line 9504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13590 : (TARGET_AVX512DQ) &&
13591 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13592 : (TARGET_AVX512VL))))
13593 : return -1;
13594 : return 4995; /* floatv4div4df2_mask */
13595 :
13596 : default:
13597 : return -1;
13598 : }
13599 :
13600 : case 8:
13601 : if (pattern155 (x2,
13602 : E_V2DFmode,
13603 : E_V2DImode,
13604 : E_QImode) != 0
13605 : || !(
13606 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13607 : (TARGET_AVX512F) && (
13608 : #line 9504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13609 : (TARGET_AVX512DQ) &&
13610 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13611 : (TARGET_AVX512VL))))
13612 : return -1;
13613 : return 5003; /* floatv2div2df2_mask */
13614 :
13615 : case 9:
13616 : if (!(
13617 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13618 : (TARGET_AVX512F) &&
13619 : #line 9720 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13620 : (TARGET_SSE2 && TARGET_AVX512VL)))
13621 : return -1;
13622 : return 5036; /* sse2_cvtdq2pd_mask */
13623 :
13624 : default:
13625 : return -1;
13626 : }
13627 : }
13628 :
13629 : int
13630 : recog_214 (rtx x1 ATTRIBUTE_UNUSED,
13631 : rtx_insn *insn ATTRIBUTE_UNUSED,
13632 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13633 : {
13634 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13635 : rtx x2;
13636 : int res ATTRIBUTE_UNUSED;
13637 : x2 = XEXP (x1, 1);
13638 : switch (pattern326 (x2))
13639 : {
13640 : case 0:
13641 : if (!register_operand (operands[0], E_V32HImode)
13642 : || GET_MODE (x2) != E_V32HImode
13643 : || !vector_operand (operands[1], E_V32HFmode)
13644 : || !
13645 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13646 : (TARGET_AVX512FP16))
13647 : return -1;
13648 : return 4445; /* avx512fp16_vcvtph2uw_v32hi */
13649 :
13650 : case 1:
13651 : if (!register_operand (operands[0], E_V16SImode)
13652 : || GET_MODE (x2) != E_V16SImode)
13653 : return -1;
13654 : switch (GET_MODE (operands[1]))
13655 : {
13656 : case E_V16HFmode:
13657 : if (!vector_operand (operands[1], E_V16HFmode)
13658 : || !
13659 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13660 : (TARGET_AVX512FP16))
13661 : return -1;
13662 : return 4453; /* avx512fp16_vcvtph2udq_v16si */
13663 :
13664 : case E_V16SFmode:
13665 : if (!nonimmediate_operand (operands[1], E_V16SFmode)
13666 : || !
13667 : #line 9040 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13668 : (TARGET_AVX512F))
13669 : return -1;
13670 : return 4881; /* *avx512f_fixuns_notruncv16sfv16si */
13671 :
13672 : default:
13673 : return -1;
13674 : }
13675 :
13676 : case 2:
13677 : switch (pattern779 (x2,
13678 : E_V8DImode))
13679 : {
13680 : case 0:
13681 : if (!
13682 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13683 : (TARGET_AVX512FP16))
13684 : return -1;
13685 : return 4461; /* avx512fp16_vcvtph2uqq_v8di */
13686 :
13687 : case 1:
13688 : if (!
13689 : #line 9073 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13690 : (TARGET_AVX512DQ && 1))
13691 : return -1;
13692 : return 4901; /* *avx512dq_cvtps2uqqv8di */
13693 :
13694 : case 2:
13695 : if (!
13696 : #line 10051 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13697 : (TARGET_AVX512DQ && 1))
13698 : return -1;
13699 : return 5127; /* fixuns_notruncv8dfv8di2 */
13700 :
13701 : default:
13702 : return -1;
13703 : }
13704 :
13705 : case 3:
13706 : if (!register_operand (operands[0], E_V16HImode)
13707 : || GET_MODE (x2) != E_V16HImode
13708 : || !vector_operand (operands[1], E_V16HFmode)
13709 : || !(
13710 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13711 : (TARGET_AVX512FP16) &&
13712 : #line 751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13713 : (TARGET_AVX512VL)))
13714 : return -1;
13715 : return 4469; /* avx512fp16_vcvtph2uw_v16hi */
13716 :
13717 : case 4:
13718 : switch (pattern779 (x2,
13719 : E_V8SImode))
13720 : {
13721 : case 0:
13722 : if (!(
13723 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13724 : (TARGET_AVX512FP16) &&
13725 : #line 751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13726 : (TARGET_AVX512VL)))
13727 : return -1;
13728 : return 4477; /* avx512fp16_vcvtph2udq_v8si */
13729 :
13730 : case 1:
13731 : if (!(
13732 : #line 9040 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13733 : (TARGET_AVX512F) &&
13734 : #line 668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13735 : (TARGET_AVX512VL)))
13736 : return -1;
13737 : return 4885; /* *avx512vl_fixuns_notruncv8sfv8si */
13738 :
13739 : case 2:
13740 : if (!
13741 : #line 9832 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13742 : (TARGET_AVX512F))
13743 : return -1;
13744 : return 5047; /* fixuns_notruncv8dfv8si2 */
13745 :
13746 : default:
13747 : return -1;
13748 : }
13749 :
13750 : case 5:
13751 : switch (pattern780 (x2,
13752 : E_V4DImode))
13753 : {
13754 : case 0:
13755 : if (!(
13756 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13757 : (TARGET_AVX512FP16) &&
13758 : #line 752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13759 : (TARGET_AVX512VL)))
13760 : return -1;
13761 : return 4485; /* avx512fp16_vcvtph2uqq_v4di */
13762 :
13763 : case 1:
13764 : if (!(
13765 : #line 9073 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13766 : (TARGET_AVX512DQ && 1) &&
13767 : #line 620 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13768 : (TARGET_AVX512VL)))
13769 : return -1;
13770 : return 4905; /* *avx512dq_cvtps2uqqv4di */
13771 :
13772 : case 2:
13773 : if (!(
13774 : #line 10051 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13775 : (TARGET_AVX512DQ && 1) &&
13776 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13777 : (TARGET_AVX512VL)))
13778 : return -1;
13779 : return 5131; /* fixuns_notruncv4dfv4di2 */
13780 :
13781 : default:
13782 : return -1;
13783 : }
13784 :
13785 : case 6:
13786 : if (!register_operand (operands[0], E_V8HImode)
13787 : || GET_MODE (x2) != E_V8HImode
13788 : || !vector_operand (operands[1], E_V8HFmode)
13789 : || !(
13790 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13791 : (TARGET_AVX512FP16) &&
13792 : #line 752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13793 : (TARGET_AVX512VL)))
13794 : return -1;
13795 : return 4493; /* avx512fp16_vcvtph2uw_v8hi */
13796 :
13797 : case 7:
13798 : switch (pattern780 (x2,
13799 : E_V4SImode))
13800 : {
13801 : case 0:
13802 : if (!(
13803 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13804 : (TARGET_AVX512FP16) &&
13805 : #line 753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13806 : (TARGET_AVX512VL)))
13807 : return -1;
13808 : return 4501; /* avx512fp16_vcvtph2udq_v4si */
13809 :
13810 : case 1:
13811 : if (!(
13812 : #line 9040 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13813 : (TARGET_AVX512F) &&
13814 : #line 668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13815 : (TARGET_AVX512VL)))
13816 : return -1;
13817 : return 4889; /* *avx512vl_fixuns_notruncv4sfv4si */
13818 :
13819 : case 2:
13820 : if (!(
13821 : #line 9832 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13822 : (TARGET_AVX512F) &&
13823 : #line 469 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13824 : (TARGET_AVX512VL)))
13825 : return -1;
13826 : return 5051; /* fixuns_notruncv4dfv4si2 */
13827 :
13828 : default:
13829 : return -1;
13830 : }
13831 :
13832 : case 8:
13833 : if (!register_operand (operands[0], E_V2DImode)
13834 : || GET_MODE (x2) != E_V2DImode)
13835 : return -1;
13836 : switch (GET_MODE (operands[1]))
13837 : {
13838 : case E_V8HFmode:
13839 : if (!vector_operand (operands[1], E_V8HFmode)
13840 : || !(
13841 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13842 : (TARGET_AVX512FP16) &&
13843 : #line 753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13844 : (TARGET_AVX512VL)))
13845 : return -1;
13846 : return 4509; /* avx512fp16_vcvtph2uqq_v2di */
13847 :
13848 : case E_V2DFmode:
13849 : if (!nonimmediate_operand (operands[1], E_V2DFmode)
13850 : || !(
13851 : #line 10051 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13852 : (TARGET_AVX512DQ && 1) &&
13853 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13854 : (TARGET_AVX512VL)))
13855 : return -1;
13856 : return 5133; /* fixuns_notruncv2dfv2di2 */
13857 :
13858 : default:
13859 : return -1;
13860 : }
13861 :
13862 : case 9:
13863 : if (!
13864 : #line 9086 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13865 : (TARGET_AVX512DQ && TARGET_AVX512VL))
13866 : return -1;
13867 : return 4907; /* *avx512dq_cvtps2uqqv2di */
13868 :
13869 : default:
13870 : return -1;
13871 : }
13872 : }
13873 :
13874 : int
13875 : recog_229 (rtx x1 ATTRIBUTE_UNUSED,
13876 : rtx_insn *insn ATTRIBUTE_UNUSED,
13877 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13878 : {
13879 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13880 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
13881 : rtx x10, x11;
13882 : int res ATTRIBUTE_UNUSED;
13883 : x2 = XEXP (x1, 1);
13884 : x3 = XVECEXP (x2, 0, 0);
13885 : x4 = XEXP (x3, 0);
13886 : switch (XVECLEN (x4, 0))
13887 : {
13888 : case 2:
13889 : return recog_224 (x1, insn, pnum_clobbers);
13890 :
13891 : case 3:
13892 : x5 = XVECEXP (x4, 0, 0);
13893 : operands[1] = x5;
13894 : x6 = XVECEXP (x4, 0, 1);
13895 : operands[2] = x6;
13896 : switch (XINT (x4, 1))
13897 : {
13898 : case 193:
13899 : x7 = XEXP (x3, 2);
13900 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
13901 : return -1;
13902 : x8 = XVECEXP (x4, 0, 2);
13903 : operands[3] = x8;
13904 : if (!const_0_to_255_operand (operands[3], E_SImode))
13905 : return -1;
13906 : switch (pattern1418 (x2))
13907 : {
13908 : case 0:
13909 : if (!(
13910 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13911 : (TARGET_AVX512F) && (
13912 : #line 4269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13913 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V8HFmode))) &&
13914 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13915 : (TARGET_AVX512FP16))))
13916 : return -1;
13917 : return 3267; /* reducesv8hf_round */
13918 :
13919 : case 1:
13920 : if (!(
13921 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13922 : (TARGET_AVX512F) &&
13923 : #line 4269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13924 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V4SFmode)))))
13925 : return -1;
13926 : return 3271; /* reducesv4sf_round */
13927 :
13928 : case 2:
13929 : if (!(
13930 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13931 : (TARGET_AVX512F) && (
13932 : #line 4269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13933 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V2DFmode))) &&
13934 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13935 : (TARGET_SSE2))))
13936 : return -1;
13937 : return 3275; /* reducesv2df_round */
13938 :
13939 : default:
13940 : return -1;
13941 : }
13942 :
13943 : case 134:
13944 : return recog_223 (x1, insn, pnum_clobbers);
13945 :
13946 : case 218:
13947 : switch (pattern1142 (x2))
13948 : {
13949 : case 0:
13950 : if (!(
13951 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13952 : (TARGET_AVX512F) &&
13953 : #line 7507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13954 : (TARGET_AVX512FP16 && (64 == 64 || TARGET_AVX512VL) && (V32HFmode == V16SFmode
13955 : || V32HFmode == V8DFmode
13956 : || V32HFmode == V8DImode
13957 : || V32HFmode == V16SImode
13958 : || V32HFmode == V32HFmode))))
13959 : return -1;
13960 : return 4364; /* fma_fmaddc_v32hf_maskz_1_round */
13961 :
13962 : case 1:
13963 : if (!(
13964 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13965 : (TARGET_AVX512F) &&
13966 : #line 7645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13967 : (TARGET_AVX512FP16 && (V32HFmode == V16SFmode
13968 : || V32HFmode == V8DFmode
13969 : || V32HFmode == V8DImode
13970 : || V32HFmode == V16SImode
13971 : || V32HFmode == V32HFmode))))
13972 : return -1;
13973 : return 4402; /* avx512bw_fmaddc_v32hf_mask_round */
13974 :
13975 : case 2:
13976 : if (!(
13977 : #line 437 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13978 : (TARGET_AVX512F) &&
13979 : #line 7834 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13980 : (TARGET_AVX512FP16)))
13981 : return -1;
13982 : return 4427; /* avx512fp16_fma_fmaddcsh_v8hf_round */
13983 :
13984 : default:
13985 : return -1;
13986 : }
13987 :
13988 : case 220:
13989 : switch (pattern1142 (x2))
13990 : {
13991 : case 0:
13992 : if (!(
13993 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13994 : (TARGET_AVX512F) &&
13995 : #line 7507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13996 : (TARGET_AVX512FP16 && (64 == 64 || TARGET_AVX512VL) && (V32HFmode == V16SFmode
13997 : || V32HFmode == V8DFmode
13998 : || V32HFmode == V8DImode
13999 : || V32HFmode == V16SImode
14000 : || V32HFmode == V32HFmode))))
14001 : return -1;
14002 : return 4368; /* fma_fcmaddc_v32hf_maskz_1_round */
14003 :
14004 : case 1:
14005 : if (!(
14006 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14007 : (TARGET_AVX512F) &&
14008 : #line 7645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14009 : (TARGET_AVX512FP16 && (V32HFmode == V16SFmode
14010 : || V32HFmode == V8DFmode
14011 : || V32HFmode == V8DImode
14012 : || V32HFmode == V16SImode
14013 : || V32HFmode == V32HFmode))))
14014 : return -1;
14015 : return 4404; /* avx512bw_fcmaddc_v32hf_mask_round */
14016 :
14017 : case 2:
14018 : if (!(
14019 : #line 437 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14020 : (TARGET_AVX512F) &&
14021 : #line 7834 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14022 : (TARGET_AVX512FP16)))
14023 : return -1;
14024 : return 4431; /* avx512fp16_fma_fcmaddcsh_v8hf_round */
14025 :
14026 : default:
14027 : return -1;
14028 : }
14029 :
14030 : case 195:
14031 : x8 = XVECEXP (x4, 0, 2);
14032 : operands[3] = x8;
14033 : if (!const_0_to_15_operand (operands[3], E_SImode))
14034 : return -1;
14035 : x9 = XVECEXP (x2, 0, 1);
14036 : if (!const48_operand (x9, E_SImode))
14037 : return -1;
14038 : x7 = XEXP (x3, 2);
14039 : switch (GET_CODE (x7))
14040 : {
14041 : case REG:
14042 : case SUBREG:
14043 : operands[5] = x7;
14044 : x10 = XEXP (x3, 1);
14045 : operands[4] = x10;
14046 : operands[6] = x9;
14047 : switch (GET_MODE (operands[0]))
14048 : {
14049 : case E_V16SFmode:
14050 : if (pattern1665 (x2,
14051 : E_V16SFmode,
14052 : E_HImode) != 0
14053 : || !(
14054 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14055 : (TARGET_AVX512F) && (
14056 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14057 : (TARGET_AVX512F) &&
14058 : #line 30513 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14059 : (TARGET_AVX512DQ && (V16SFmode == V16SFmode
14060 : || V16SFmode == V8DFmode
14061 : || V16SFmode == V8DImode
14062 : || V16SFmode == V16SImode
14063 : || V16SFmode == V32HFmode)))))
14064 : return -1;
14065 : return 10034; /* avx512dq_rangepv16sf_mask_round */
14066 :
14067 : case E_V8DFmode:
14068 : if (pattern1665 (x2,
14069 : E_V8DFmode,
14070 : E_QImode) != 0
14071 : || !(
14072 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14073 : (TARGET_AVX512F) && (
14074 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14075 : (TARGET_AVX512F) &&
14076 : #line 30513 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14077 : (TARGET_AVX512DQ && (V8DFmode == V16SFmode
14078 : || V8DFmode == V8DFmode
14079 : || V8DFmode == V8DImode
14080 : || V8DFmode == V16SImode
14081 : || V8DFmode == V32HFmode)))))
14082 : return -1;
14083 : return 10042; /* avx512dq_rangepv8df_mask_round */
14084 :
14085 : default:
14086 : return -1;
14087 : }
14088 :
14089 : case CONST_INT:
14090 : if (XWINT (x7, 0) != 1L)
14091 : return -1;
14092 : operands[4] = x9;
14093 : x10 = XEXP (x3, 1);
14094 : if (!rtx_equal_p (x10, operands[1]))
14095 : return -1;
14096 : switch (GET_MODE (operands[0]))
14097 : {
14098 : case E_V4SFmode:
14099 : if (pattern1416 (x2,
14100 : E_V4SFmode) != 0
14101 : || !(
14102 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14103 : (TARGET_AVX512F) &&
14104 : #line 30536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14105 : (TARGET_AVX512DQ)))
14106 : return -1;
14107 : return 10049; /* avx512dq_rangesv4sf_round */
14108 :
14109 : case E_V2DFmode:
14110 : if (pattern1416 (x2,
14111 : E_V2DFmode) != 0
14112 : || !(
14113 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14114 : (TARGET_AVX512F) && (
14115 : #line 30536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14116 : (TARGET_AVX512DQ) &&
14117 : #line 473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14118 : (TARGET_SSE2))))
14119 : return -1;
14120 : return 10053; /* avx512dq_rangesv2df_round */
14121 :
14122 : default:
14123 : return -1;
14124 : }
14125 :
14126 : default:
14127 : return -1;
14128 : }
14129 :
14130 : case 167:
14131 : x7 = XEXP (x3, 2);
14132 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
14133 : return -1;
14134 : x8 = XVECEXP (x4, 0, 2);
14135 : operands[3] = x8;
14136 : if (!const_0_to_15_operand (operands[3], E_SImode))
14137 : return -1;
14138 : switch (pattern1418 (x2))
14139 : {
14140 : case 0:
14141 : if (!(
14142 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14143 : (TARGET_AVX512F) && (
14144 : #line 30604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14145 : (TARGET_AVX512F) &&
14146 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14147 : (TARGET_AVX512FP16))))
14148 : return -1;
14149 : return 10117; /* avx512f_vgetmantv8hf_round */
14150 :
14151 : case 1:
14152 : if (!
14153 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14154 : (TARGET_AVX512F))
14155 : return -1;
14156 : return 10121; /* avx512f_vgetmantv4sf_round */
14157 :
14158 : case 2:
14159 : if (!(
14160 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14161 : (TARGET_AVX512F) && (
14162 : #line 30604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14163 : (TARGET_AVX512F) &&
14164 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14165 : (TARGET_SSE2))))
14166 : return -1;
14167 : return 10125; /* avx512f_vgetmantv2df_round */
14168 :
14169 : default:
14170 : return -1;
14171 : }
14172 :
14173 : case 279:
14174 : x8 = XVECEXP (x4, 0, 2);
14175 : operands[3] = x8;
14176 : if (!const_0_to_255_operand (operands[3], E_SImode))
14177 : return -1;
14178 : x9 = XVECEXP (x2, 0, 1);
14179 : if (!const48_operand (x9, E_SImode))
14180 : return -1;
14181 : x7 = XEXP (x3, 2);
14182 : switch (GET_CODE (x7))
14183 : {
14184 : case REG:
14185 : case SUBREG:
14186 : operands[5] = x7;
14187 : x10 = XEXP (x3, 1);
14188 : operands[4] = x10;
14189 : operands[6] = x9;
14190 : switch (GET_MODE (operands[0]))
14191 : {
14192 : case E_V32HFmode:
14193 : if (pattern1665 (x2,
14194 : E_V32HFmode,
14195 : E_SImode) != 0
14196 : || !(
14197 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14198 : (TARGET_AVX512F) && (
14199 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14200 : (TARGET_AVX512F) && (
14201 : #line 33361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14202 : (TARGET_AVX10_2) &&
14203 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14204 : (TARGET_AVX512FP16)))))
14205 : return -1;
14206 : return 10980; /* avx10_2_minmaxpv32hf_mask_round */
14207 :
14208 : case E_V16HFmode:
14209 : if (pattern1665 (x2,
14210 : E_V16HFmode,
14211 : E_HImode) != 0
14212 : || !(
14213 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14214 : (TARGET_AVX512F) && (
14215 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14216 : (TARGET_AVX512F) && (
14217 : #line 33361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14218 : (TARGET_AVX10_2) &&
14219 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14220 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))))
14221 : return -1;
14222 : return 10984; /* avx10_2_minmaxpv16hf_mask_round */
14223 :
14224 : case E_V8HFmode:
14225 : if (pattern1665 (x2,
14226 : E_V8HFmode,
14227 : E_QImode) != 0
14228 : || !(
14229 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14230 : (TARGET_AVX512F) && (
14231 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14232 : (TARGET_AVX512F) && (
14233 : #line 33361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14234 : (TARGET_AVX10_2) &&
14235 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14236 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))))
14237 : return -1;
14238 : return 10988; /* avx10_2_minmaxpv8hf_mask_round */
14239 :
14240 : case E_V16SFmode:
14241 : if (pattern1665 (x2,
14242 : E_V16SFmode,
14243 : E_HImode) != 0
14244 : || !(
14245 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14246 : (TARGET_AVX512F) && (
14247 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14248 : (TARGET_AVX512F) &&
14249 : #line 33361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14250 : (TARGET_AVX10_2))))
14251 : return -1;
14252 : return 10992; /* avx10_2_minmaxpv16sf_mask_round */
14253 :
14254 : case E_V8SFmode:
14255 : if (pattern1665 (x2,
14256 : E_V8SFmode,
14257 : E_QImode) != 0
14258 : || !(
14259 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14260 : (TARGET_AVX512F) && (
14261 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14262 : (TARGET_AVX512F) && (
14263 : #line 33361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14264 : (TARGET_AVX10_2) &&
14265 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14266 : (TARGET_AVX512VL)))))
14267 : return -1;
14268 : return 10996; /* avx10_2_minmaxpv8sf_mask_round */
14269 :
14270 : case E_V4SFmode:
14271 : if (pattern1665 (x2,
14272 : E_V4SFmode,
14273 : E_QImode) != 0
14274 : || !(
14275 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14276 : (TARGET_AVX512F) && (
14277 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14278 : (TARGET_AVX512F) && (
14279 : #line 33361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14280 : (TARGET_AVX10_2) &&
14281 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14282 : (TARGET_AVX512VL)))))
14283 : return -1;
14284 : return 11000; /* avx10_2_minmaxpv4sf_mask_round */
14285 :
14286 : case E_V8DFmode:
14287 : if (pattern1665 (x2,
14288 : E_V8DFmode,
14289 : E_QImode) != 0
14290 : || !(
14291 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14292 : (TARGET_AVX512F) && (
14293 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14294 : (TARGET_AVX512F) &&
14295 : #line 33361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14296 : (TARGET_AVX10_2))))
14297 : return -1;
14298 : return 11004; /* avx10_2_minmaxpv8df_mask_round */
14299 :
14300 : case E_V4DFmode:
14301 : if (pattern1665 (x2,
14302 : E_V4DFmode,
14303 : E_QImode) != 0
14304 : || !(
14305 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14306 : (TARGET_AVX512F) && (
14307 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14308 : (TARGET_AVX512F) && (
14309 : #line 33361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14310 : (TARGET_AVX10_2) &&
14311 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14312 : (TARGET_AVX512VL)))))
14313 : return -1;
14314 : return 11008; /* avx10_2_minmaxpv4df_mask_round */
14315 :
14316 : case E_V2DFmode:
14317 : if (pattern1665 (x2,
14318 : E_V2DFmode,
14319 : E_QImode) != 0
14320 : || !(
14321 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14322 : (TARGET_AVX512F) && (
14323 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14324 : (TARGET_AVX512F) && (
14325 : #line 33361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14326 : (TARGET_AVX10_2) &&
14327 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14328 : (TARGET_AVX512VL)))))
14329 : return -1;
14330 : return 11012; /* avx10_2_minmaxpv2df_mask_round */
14331 :
14332 : default:
14333 : return -1;
14334 : }
14335 :
14336 : case CONST_INT:
14337 : if (XWINT (x7, 0) != 1L)
14338 : return -1;
14339 : operands[4] = x9;
14340 : switch (pattern1417 (x2))
14341 : {
14342 : case 0:
14343 : if (!(
14344 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14345 : (TARGET_AVX512F) && (
14346 : #line 33376 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14347 : (TARGET_AVX10_2) &&
14348 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14349 : (TARGET_AVX512FP16))))
14350 : return -1;
14351 : return 11015; /* avx10_2_minmaxsv8hf_round */
14352 :
14353 : case 1:
14354 : if (!(
14355 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14356 : (TARGET_AVX512F) &&
14357 : #line 33376 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14358 : (TARGET_AVX10_2)))
14359 : return -1;
14360 : return 11019; /* avx10_2_minmaxsv4sf_round */
14361 :
14362 : case 2:
14363 : if (!(
14364 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14365 : (TARGET_AVX512F) && (
14366 : #line 33376 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14367 : (TARGET_AVX10_2) &&
14368 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14369 : (TARGET_SSE2))))
14370 : return -1;
14371 : return 11023; /* avx10_2_minmaxsv2df_round */
14372 :
14373 : default:
14374 : return -1;
14375 : }
14376 :
14377 : default:
14378 : return -1;
14379 : }
14380 :
14381 : default:
14382 : return -1;
14383 : }
14384 :
14385 : case 1:
14386 : return recog_225 (x1, insn, pnum_clobbers);
14387 :
14388 : case 4:
14389 : if (XINT (x4, 1) != 164)
14390 : return -1;
14391 : x5 = XVECEXP (x4, 0, 0);
14392 : operands[1] = x5;
14393 : x6 = XVECEXP (x4, 0, 1);
14394 : operands[2] = x6;
14395 : x8 = XVECEXP (x4, 0, 2);
14396 : operands[3] = x8;
14397 : x11 = XVECEXP (x4, 0, 3);
14398 : operands[4] = x11;
14399 : if (!const_0_to_255_operand (operands[4], E_SImode))
14400 : return -1;
14401 : x9 = XVECEXP (x2, 0, 1);
14402 : if (!const48_operand (x9, E_SImode))
14403 : return -1;
14404 : x10 = XEXP (x3, 1);
14405 : switch (GET_CODE (x10))
14406 : {
14407 : case CONST_INT:
14408 : case CONST_DOUBLE:
14409 : case CONST_VECTOR:
14410 : operands[5] = x10;
14411 : x7 = XEXP (x3, 2);
14412 : operands[6] = x7;
14413 : operands[7] = x9;
14414 : switch (GET_MODE (operands[0]))
14415 : {
14416 : case E_V16SFmode:
14417 : if (pattern1694 (x2,
14418 : E_V16SFmode,
14419 : E_V16SImode,
14420 : E_HImode) != 0
14421 : || !
14422 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14423 : (TARGET_AVX512F))
14424 : return -1;
14425 : return 7126; /* avx512f_fixupimmv16sf_maskz_1_round */
14426 :
14427 : case E_V8SFmode:
14428 : if (pattern1694 (x2,
14429 : E_V8SFmode,
14430 : E_V8SImode,
14431 : E_QImode) != 0
14432 : || !(
14433 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14434 : (TARGET_AVX512F) && (
14435 : #line 14471 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14436 : (TARGET_AVX512F) &&
14437 : #line 510 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14438 : (TARGET_AVX512VL))))
14439 : return -1;
14440 : return 7130; /* avx512vl_fixupimmv8sf_maskz_1_round */
14441 :
14442 : case E_V4SFmode:
14443 : if (pattern1694 (x2,
14444 : E_V4SFmode,
14445 : E_V4SImode,
14446 : E_QImode) != 0
14447 : || !(
14448 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14449 : (TARGET_AVX512F) && (
14450 : #line 14471 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14451 : (TARGET_AVX512F) &&
14452 : #line 510 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14453 : (TARGET_AVX512VL))))
14454 : return -1;
14455 : return 7134; /* avx512vl_fixupimmv4sf_maskz_1_round */
14456 :
14457 : case E_V8DFmode:
14458 : if (pattern1694 (x2,
14459 : E_V8DFmode,
14460 : E_V8DImode,
14461 : E_QImode) != 0
14462 : || !
14463 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14464 : (TARGET_AVX512F))
14465 : return -1;
14466 : return 7138; /* avx512f_fixupimmv8df_maskz_1_round */
14467 :
14468 : case E_V4DFmode:
14469 : if (pattern1694 (x2,
14470 : E_V4DFmode,
14471 : E_V4DImode,
14472 : E_QImode) != 0
14473 : || !(
14474 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14475 : (TARGET_AVX512F) && (
14476 : #line 14471 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14477 : (TARGET_AVX512F) &&
14478 : #line 511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14479 : (TARGET_AVX512VL))))
14480 : return -1;
14481 : return 7142; /* avx512vl_fixupimmv4df_maskz_1_round */
14482 :
14483 : case E_V2DFmode:
14484 : if (pattern1694 (x2,
14485 : E_V2DFmode,
14486 : E_V2DImode,
14487 : E_QImode) != 0
14488 : || !(
14489 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14490 : (TARGET_AVX512F) && (
14491 : #line 14471 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14492 : (TARGET_AVX512F) &&
14493 : #line 511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14494 : (TARGET_AVX512VL))))
14495 : return -1;
14496 : return 7146; /* avx512vl_fixupimmv2df_maskz_1_round */
14497 :
14498 : default:
14499 : return -1;
14500 : }
14501 :
14502 : case REG:
14503 : case SUBREG:
14504 : x7 = XEXP (x3, 2);
14505 : switch (GET_CODE (x7))
14506 : {
14507 : case REG:
14508 : case SUBREG:
14509 : operands[5] = x7;
14510 : operands[6] = x9;
14511 : if (!rtx_equal_p (x10, operands[1]))
14512 : return -1;
14513 : switch (GET_MODE (operands[0]))
14514 : {
14515 : case E_V16SFmode:
14516 : if (pattern1718 (x2,
14517 : E_V16SImode,
14518 : E_V16SFmode,
14519 : E_HImode) != 0
14520 : || !
14521 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14522 : (TARGET_AVX512F))
14523 : return -1;
14524 : return 7148; /* avx512f_fixupimmv16sf_mask_round */
14525 :
14526 : case E_V8SFmode:
14527 : if (pattern1718 (x2,
14528 : E_V8SImode,
14529 : E_V8SFmode,
14530 : E_QImode) != 0
14531 : || !(
14532 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14533 : (TARGET_AVX512F) && (
14534 : #line 14487 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14535 : (TARGET_AVX512F) &&
14536 : #line 510 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14537 : (TARGET_AVX512VL))))
14538 : return -1;
14539 : return 7150; /* avx512vl_fixupimmv8sf_mask_round */
14540 :
14541 : case E_V4SFmode:
14542 : if (pattern1718 (x2,
14543 : E_V4SImode,
14544 : E_V4SFmode,
14545 : E_QImode) != 0
14546 : || !(
14547 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14548 : (TARGET_AVX512F) && (
14549 : #line 14487 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14550 : (TARGET_AVX512F) &&
14551 : #line 510 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14552 : (TARGET_AVX512VL))))
14553 : return -1;
14554 : return 7152; /* avx512vl_fixupimmv4sf_mask_round */
14555 :
14556 : case E_V8DFmode:
14557 : if (pattern1718 (x2,
14558 : E_V8DImode,
14559 : E_V8DFmode,
14560 : E_QImode) != 0
14561 : || !
14562 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14563 : (TARGET_AVX512F))
14564 : return -1;
14565 : return 7154; /* avx512f_fixupimmv8df_mask_round */
14566 :
14567 : case E_V4DFmode:
14568 : if (pattern1718 (x2,
14569 : E_V4DImode,
14570 : E_V4DFmode,
14571 : E_QImode) != 0
14572 : || !(
14573 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14574 : (TARGET_AVX512F) && (
14575 : #line 14487 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14576 : (TARGET_AVX512F) &&
14577 : #line 511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14578 : (TARGET_AVX512VL))))
14579 : return -1;
14580 : return 7156; /* avx512vl_fixupimmv4df_mask_round */
14581 :
14582 : case E_V2DFmode:
14583 : if (pattern1718 (x2,
14584 : E_V2DImode,
14585 : E_V2DFmode,
14586 : E_QImode) != 0
14587 : || !(
14588 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14589 : (TARGET_AVX512F) && (
14590 : #line 14487 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14591 : (TARGET_AVX512F) &&
14592 : #line 511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14593 : (TARGET_AVX512VL))))
14594 : return -1;
14595 : return 7158; /* avx512vl_fixupimmv2df_mask_round */
14596 :
14597 : default:
14598 : return -1;
14599 : }
14600 :
14601 : case CONST_INT:
14602 : if (XWINT (x7, 0) != 1L)
14603 : return -1;
14604 : operands[5] = x9;
14605 : if (!rtx_equal_p (x10, operands[2]))
14606 : return -1;
14607 : switch (GET_MODE (operands[0]))
14608 : {
14609 : case E_V4SFmode:
14610 : if (pattern1719 (x2,
14611 : E_V4SImode,
14612 : E_V4SFmode) != 0
14613 : || !
14614 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14615 : (TARGET_AVX512F))
14616 : return -1;
14617 : return 7160; /* avx512f_sfixupimmv4sf_round */
14618 :
14619 : case E_V2DFmode:
14620 : if (pattern1719 (x2,
14621 : E_V2DImode,
14622 : E_V2DFmode) != 0
14623 : || !(
14624 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14625 : (TARGET_AVX512F) && (
14626 : #line 14519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14627 : (TARGET_AVX512F) &&
14628 : #line 473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14629 : (TARGET_SSE2))))
14630 : return -1;
14631 : return 7164; /* avx512f_sfixupimmv2df_round */
14632 :
14633 : default:
14634 : return -1;
14635 : }
14636 :
14637 : default:
14638 : return -1;
14639 : }
14640 :
14641 : default:
14642 : return -1;
14643 : }
14644 :
14645 : default:
14646 : return -1;
14647 : }
14648 : }
14649 :
14650 : int
14651 : recog_237 (rtx x1 ATTRIBUTE_UNUSED,
14652 : rtx_insn *insn ATTRIBUTE_UNUSED,
14653 : int *pnum_clobbers ATTRIBUTE_UNUSED)
14654 : {
14655 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
14656 : rtx x2, x3, x4, x5;
14657 : int res ATTRIBUTE_UNUSED;
14658 : x2 = XEXP (x1, 0);
14659 : if (GET_CODE (x2) != REG
14660 : || REGNO (x2) != 17)
14661 : return -1;
14662 : x3 = XEXP (x1, 1);
14663 : x4 = XVECEXP (x3, 0, 0);
14664 : operands[0] = x4;
14665 : x5 = XVECEXP (x3, 0, 1);
14666 : operands[1] = x5;
14667 : switch (GET_MODE (operands[0]))
14668 : {
14669 : case E_V16QImode:
14670 : if (!register_operand (operands[0], E_V16QImode)
14671 : || !vector_operand (operands[1], E_V16QImode)
14672 : || !
14673 : #line 25902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14674 : (TARGET_SSE4_1 && ix86_match_ptest_ccmode (insn)))
14675 : return -1;
14676 : return 8984; /* *sse4_1_ptestv16qi */
14677 :
14678 : case E_V8HImode:
14679 : if (!register_operand (operands[0], E_V8HImode)
14680 : || !vector_operand (operands[1], E_V8HImode)
14681 : || !
14682 : #line 25902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14683 : (TARGET_SSE4_1 && ix86_match_ptest_ccmode (insn)))
14684 : return -1;
14685 : return 8985; /* *sse4_1_ptestv8hi */
14686 :
14687 : case E_V4SImode:
14688 : if (!register_operand (operands[0], E_V4SImode)
14689 : || !vector_operand (operands[1], E_V4SImode)
14690 : || !
14691 : #line 25902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14692 : (TARGET_SSE4_1 && ix86_match_ptest_ccmode (insn)))
14693 : return -1;
14694 : return 8986; /* *sse4_1_ptestv4si */
14695 :
14696 : case E_V2DImode:
14697 : if (!register_operand (operands[0], E_V2DImode)
14698 : || !vector_operand (operands[1], E_V2DImode)
14699 : || !
14700 : #line 25902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14701 : (TARGET_SSE4_1 && ix86_match_ptest_ccmode (insn)))
14702 : return -1;
14703 : return 8987; /* *sse4_1_ptestv2di */
14704 :
14705 : case E_V1TImode:
14706 : if (!register_operand (operands[0], E_V1TImode)
14707 : || !vector_operand (operands[1], E_V1TImode)
14708 : || !
14709 : #line 25902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14710 : (TARGET_SSE4_1 && ix86_match_ptest_ccmode (insn)))
14711 : return -1;
14712 : return 8988; /* *sse4_1_ptestv1ti */
14713 :
14714 : case E_V4SFmode:
14715 : if (!register_operand (operands[0], E_V4SFmode)
14716 : || !vector_operand (operands[1], E_V4SFmode)
14717 : || !
14718 : #line 25902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14719 : (TARGET_SSE4_1 && ix86_match_ptest_ccmode (insn)))
14720 : return -1;
14721 : return 8989; /* *sse4_1_ptestv4sf */
14722 :
14723 : case E_V2DFmode:
14724 : if (!register_operand (operands[0], E_V2DFmode)
14725 : || !vector_operand (operands[1], E_V2DFmode)
14726 : || !
14727 : #line 25902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14728 : (TARGET_SSE4_1 && ix86_match_ptest_ccmode (insn)))
14729 : return -1;
14730 : return 8990; /* *sse4_1_ptestv2df */
14731 :
14732 : case E_V32QImode:
14733 : if (!register_operand (operands[0], E_V32QImode)
14734 : || !vector_operand (operands[1], E_V32QImode)
14735 : || !(
14736 : #line 25902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14737 : (TARGET_SSE4_1 && ix86_match_ptest_ccmode (insn)) &&
14738 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14739 : (TARGET_AVX)))
14740 : return -1;
14741 : return 8991; /* *avx_ptestv32qi */
14742 :
14743 : case E_V16HImode:
14744 : if (!register_operand (operands[0], E_V16HImode)
14745 : || !vector_operand (operands[1], E_V16HImode)
14746 : || !(
14747 : #line 25902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14748 : (TARGET_SSE4_1 && ix86_match_ptest_ccmode (insn)) &&
14749 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14750 : (TARGET_AVX)))
14751 : return -1;
14752 : return 8992; /* *avx_ptestv16hi */
14753 :
14754 : case E_V8SImode:
14755 : if (!register_operand (operands[0], E_V8SImode)
14756 : || !vector_operand (operands[1], E_V8SImode)
14757 : || !(
14758 : #line 25902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14759 : (TARGET_SSE4_1 && ix86_match_ptest_ccmode (insn)) &&
14760 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14761 : (TARGET_AVX)))
14762 : return -1;
14763 : return 8993; /* *avx_ptestv8si */
14764 :
14765 : case E_V4DImode:
14766 : if (!register_operand (operands[0], E_V4DImode)
14767 : || !vector_operand (operands[1], E_V4DImode)
14768 : || !(
14769 : #line 25902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14770 : (TARGET_SSE4_1 && ix86_match_ptest_ccmode (insn)) &&
14771 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14772 : (TARGET_AVX)))
14773 : return -1;
14774 : return 8994; /* *avx_ptestv4di */
14775 :
14776 : case E_V2TImode:
14777 : if (!register_operand (operands[0], E_V2TImode)
14778 : || !vector_operand (operands[1], E_V2TImode)
14779 : || !(
14780 : #line 25902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14781 : (TARGET_SSE4_1 && ix86_match_ptest_ccmode (insn)) &&
14782 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14783 : (TARGET_AVX)))
14784 : return -1;
14785 : return 8995; /* *avx_ptestv2ti */
14786 :
14787 : case E_V8SFmode:
14788 : if (!register_operand (operands[0], E_V8SFmode)
14789 : || !vector_operand (operands[1], E_V8SFmode)
14790 : || !(
14791 : #line 25902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14792 : (TARGET_SSE4_1 && ix86_match_ptest_ccmode (insn)) &&
14793 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14794 : (TARGET_AVX)))
14795 : return -1;
14796 : return 8996; /* *avx_ptestv8sf */
14797 :
14798 : case E_V4DFmode:
14799 : if (!register_operand (operands[0], E_V4DFmode)
14800 : || !vector_operand (operands[1], E_V4DFmode)
14801 : || !(
14802 : #line 25902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14803 : (TARGET_SSE4_1 && ix86_match_ptest_ccmode (insn)) &&
14804 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14805 : (TARGET_AVX)))
14806 : return -1;
14807 : return 8997; /* *avx_ptestv4df */
14808 :
14809 : default:
14810 : return -1;
14811 : }
14812 : }
14813 :
14814 : int
14815 : recog_238 (rtx x1 ATTRIBUTE_UNUSED,
14816 : rtx_insn *insn ATTRIBUTE_UNUSED,
14817 : int *pnum_clobbers ATTRIBUTE_UNUSED)
14818 : {
14819 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
14820 : rtx x2, x3, x4, x5;
14821 : int res ATTRIBUTE_UNUSED;
14822 : x2 = XEXP (x1, 0);
14823 : operands[0] = x2;
14824 : x3 = XEXP (x1, 1);
14825 : x4 = XVECEXP (x3, 0, 0);
14826 : operands[1] = x4;
14827 : x5 = XVECEXP (x3, 0, 1);
14828 : operands[2] = x5;
14829 : switch (GET_MODE (operands[0]))
14830 : {
14831 : case E_V32HFmode:
14832 : if (pattern785 (x3,
14833 : E_V32HFmode) != 0
14834 : || !(
14835 : #line 14549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14836 : (TARGET_AVX512F) &&
14837 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14838 : (TARGET_AVX512FP16)))
14839 : return -1;
14840 : return 7171; /* avx512bw_rndscalev32hf */
14841 :
14842 : case E_V16HFmode:
14843 : if (pattern785 (x3,
14844 : E_V16HFmode) != 0
14845 : || !(
14846 : #line 14549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14847 : (TARGET_AVX512F) &&
14848 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14849 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
14850 : return -1;
14851 : return 7175; /* avx512vl_rndscalev16hf */
14852 :
14853 : case E_V8HFmode:
14854 : if (pattern785 (x3,
14855 : E_V8HFmode) != 0
14856 : || !(
14857 : #line 14549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14858 : (TARGET_AVX512F) &&
14859 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14860 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
14861 : return -1;
14862 : return 7179; /* avx512fp16_rndscalev8hf */
14863 :
14864 : case E_V16SFmode:
14865 : if (pattern785 (x3,
14866 : E_V16SFmode) != 0
14867 : || !
14868 : #line 14549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14869 : (TARGET_AVX512F))
14870 : return -1;
14871 : return 7183; /* avx512f_rndscalev16sf */
14872 :
14873 : case E_V8SFmode:
14874 : if (!register_operand (operands[0], E_V8SFmode)
14875 : || GET_MODE (x3) != E_V8SFmode)
14876 : return -1;
14877 : if (nonimmediate_operand (operands[1], E_V8SFmode)
14878 : && const_0_to_255_operand (operands[2], E_SImode)
14879 : && (
14880 : #line 14549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14881 : (TARGET_AVX512F) &&
14882 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14883 : (TARGET_AVX512VL)))
14884 : return 7187; /* avx512vl_rndscalev8sf */
14885 : if (!vector_operand (operands[1], E_V8SFmode)
14886 : || !const_0_to_15_operand (operands[2], E_SImode)
14887 : || !(
14888 : #line 26093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14889 : (TARGET_SSE4_1) &&
14890 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14891 : (TARGET_AVX)))
14892 : return -1;
14893 : return 9021; /* avx_roundps256 */
14894 :
14895 : case E_V4SFmode:
14896 : if (!register_operand (operands[0], E_V4SFmode)
14897 : || GET_MODE (x3) != E_V4SFmode)
14898 : return -1;
14899 : if (nonimmediate_operand (operands[1], E_V4SFmode)
14900 : && const_0_to_255_operand (operands[2], E_SImode)
14901 : && (
14902 : #line 14549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14903 : (TARGET_AVX512F) &&
14904 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14905 : (TARGET_AVX512VL)))
14906 : return 7191; /* avx512vl_rndscalev4sf */
14907 : if (!vector_operand (operands[1], E_V4SFmode)
14908 : || !const_0_to_15_operand (operands[2], E_SImode)
14909 : || !
14910 : #line 26093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14911 : (TARGET_SSE4_1))
14912 : return -1;
14913 : return 9022; /* sse4_1_roundps */
14914 :
14915 : case E_V8DFmode:
14916 : if (pattern785 (x3,
14917 : E_V8DFmode) != 0
14918 : || !
14919 : #line 14549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14920 : (TARGET_AVX512F))
14921 : return -1;
14922 : return 7195; /* avx512f_rndscalev8df */
14923 :
14924 : case E_V4DFmode:
14925 : if (!register_operand (operands[0], E_V4DFmode)
14926 : || GET_MODE (x3) != E_V4DFmode)
14927 : return -1;
14928 : if (nonimmediate_operand (operands[1], E_V4DFmode)
14929 : && const_0_to_255_operand (operands[2], E_SImode)
14930 : && (
14931 : #line 14549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14932 : (TARGET_AVX512F) &&
14933 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14934 : (TARGET_AVX512VL)))
14935 : return 7199; /* avx512vl_rndscalev4df */
14936 : if (!vector_operand (operands[1], E_V4DFmode)
14937 : || !const_0_to_15_operand (operands[2], E_SImode)
14938 : || !(
14939 : #line 26093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14940 : (TARGET_SSE4_1) &&
14941 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14942 : (TARGET_AVX)))
14943 : return -1;
14944 : return 9023; /* avx_roundpd256 */
14945 :
14946 : case E_V2DFmode:
14947 : if (!register_operand (operands[0], E_V2DFmode)
14948 : || GET_MODE (x3) != E_V2DFmode)
14949 : return -1;
14950 : if (nonimmediate_operand (operands[1], E_V2DFmode)
14951 : && const_0_to_255_operand (operands[2], E_SImode)
14952 : && (
14953 : #line 14549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14954 : (TARGET_AVX512F) &&
14955 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14956 : (TARGET_AVX512VL)))
14957 : return 7203; /* avx512vl_rndscalev2df */
14958 : if (!vector_operand (operands[1], E_V2DFmode)
14959 : || !const_0_to_15_operand (operands[2], E_SImode)
14960 : || !(
14961 : #line 26093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14962 : (TARGET_SSE4_1) &&
14963 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14964 : (TARGET_SSE2)))
14965 : return -1;
14966 : return 9024; /* sse4_1_roundpd */
14967 :
14968 : default:
14969 : return -1;
14970 : }
14971 : }
14972 :
14973 : int
14974 : recog_241 (rtx x1 ATTRIBUTE_UNUSED,
14975 : rtx_insn *insn ATTRIBUTE_UNUSED,
14976 : int *pnum_clobbers ATTRIBUTE_UNUSED)
14977 : {
14978 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
14979 : rtx x2, x3, x4, x5;
14980 : int res ATTRIBUTE_UNUSED;
14981 : x2 = XEXP (x1, 0);
14982 : operands[0] = x2;
14983 : x3 = XEXP (x1, 1);
14984 : x4 = XVECEXP (x3, 0, 0);
14985 : operands[1] = x4;
14986 : x5 = XVECEXP (x3, 0, 1);
14987 : operands[2] = x5;
14988 : if (!const_0_to_255_operand (operands[2], E_SImode))
14989 : return -1;
14990 : switch (GET_MODE (operands[0]))
14991 : {
14992 : case E_V32HFmode:
14993 : if (!register_operand (operands[0], E_V32HFmode)
14994 : || GET_MODE (x3) != E_V32HFmode
14995 : || !vector_operand (operands[1], E_V32HFmode)
14996 : || !(
14997 : #line 4253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14998 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V32HFmode))) &&
14999 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15000 : (TARGET_AVX512FP16)))
15001 : return -1;
15002 : return 3229; /* *reducepv32hf */
15003 :
15004 : case E_V16HFmode:
15005 : if (!register_operand (operands[0], E_V16HFmode)
15006 : || GET_MODE (x3) != E_V16HFmode
15007 : || !vector_operand (operands[1], E_V16HFmode)
15008 : || !(
15009 : #line 4253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15010 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V16HFmode))) &&
15011 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15012 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
15013 : return -1;
15014 : return 3233; /* *reducepv16hf */
15015 :
15016 : case E_V8HFmode:
15017 : if (!register_operand (operands[0], E_V8HFmode)
15018 : || GET_MODE (x3) != E_V8HFmode
15019 : || !vector_operand (operands[1], E_V8HFmode)
15020 : || !(
15021 : #line 4253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15022 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V8HFmode))) &&
15023 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15024 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
15025 : return -1;
15026 : return 3237; /* *reducepv8hf */
15027 :
15028 : case E_V16SFmode:
15029 : if (!register_operand (operands[0], E_V16SFmode)
15030 : || GET_MODE (x3) != E_V16SFmode
15031 : || !vector_operand (operands[1], E_V16SFmode)
15032 : || !
15033 : #line 4253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15034 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V16SFmode))))
15035 : return -1;
15036 : return 3241; /* *reducepv16sf */
15037 :
15038 : case E_V8SFmode:
15039 : if (!register_operand (operands[0], E_V8SFmode)
15040 : || GET_MODE (x3) != E_V8SFmode
15041 : || !vector_operand (operands[1], E_V8SFmode)
15042 : || !(
15043 : #line 4253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15044 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V8SFmode))) &&
15045 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15046 : (TARGET_AVX512VL)))
15047 : return -1;
15048 : return 3245; /* *reducepv8sf */
15049 :
15050 : case E_V4SFmode:
15051 : if (!register_operand (operands[0], E_V4SFmode)
15052 : || GET_MODE (x3) != E_V4SFmode
15053 : || !vector_operand (operands[1], E_V4SFmode)
15054 : || !(
15055 : #line 4253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15056 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V4SFmode))) &&
15057 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15058 : (TARGET_AVX512VL)))
15059 : return -1;
15060 : return 3249; /* *reducepv4sf */
15061 :
15062 : case E_V8DFmode:
15063 : if (!register_operand (operands[0], E_V8DFmode)
15064 : || GET_MODE (x3) != E_V8DFmode
15065 : || !vector_operand (operands[1], E_V8DFmode)
15066 : || !
15067 : #line 4253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15068 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V8DFmode))))
15069 : return -1;
15070 : return 3253; /* *reducepv8df */
15071 :
15072 : case E_V4DFmode:
15073 : if (!register_operand (operands[0], E_V4DFmode)
15074 : || GET_MODE (x3) != E_V4DFmode
15075 : || !vector_operand (operands[1], E_V4DFmode)
15076 : || !(
15077 : #line 4253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15078 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V4DFmode))) &&
15079 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15080 : (TARGET_AVX512VL)))
15081 : return -1;
15082 : return 3257; /* *reducepv4df */
15083 :
15084 : case E_V2DFmode:
15085 : if (!register_operand (operands[0], E_V2DFmode)
15086 : || GET_MODE (x3) != E_V2DFmode
15087 : || !vector_operand (operands[1], E_V2DFmode)
15088 : || !(
15089 : #line 4253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15090 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V2DFmode))) &&
15091 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15092 : (TARGET_AVX512VL)))
15093 : return -1;
15094 : return 3261; /* *reducepv2df */
15095 :
15096 : default:
15097 : return -1;
15098 : }
15099 : }
15100 :
15101 : int
15102 : recog_247 (rtx x1 ATTRIBUTE_UNUSED,
15103 : rtx_insn *insn ATTRIBUTE_UNUSED,
15104 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15105 : {
15106 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15107 : rtx x2, x3, x4, x5;
15108 : int res ATTRIBUTE_UNUSED;
15109 : x2 = XEXP (x1, 1);
15110 : x3 = XVECEXP (x2, 0, 2);
15111 : if (GET_MODE (x3) != E_V16QImode)
15112 : return -1;
15113 : x4 = XEXP (x1, 0);
15114 : if (GET_CODE (x4) != MEM
15115 : || GET_MODE (x4) != E_V16QImode)
15116 : return -1;
15117 : x5 = XEXP (x4, 0);
15118 : operands[0] = x5;
15119 : if (GET_MODE (x2) != E_V16QImode)
15120 : return -1;
15121 : switch (pattern1078 (x2,
15122 : E_V16QImode))
15123 : {
15124 : case 0:
15125 : if (!(
15126 : #line 22816 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15127 : (TARGET_SSE2) &&
15128 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15129 : (Pmode == SImode)))
15130 : return -1;
15131 : return 8623; /* *sse2_maskmovdqu */
15132 :
15133 : case 1:
15134 : if (!(
15135 : #line 22816 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15136 : (TARGET_SSE2) &&
15137 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15138 : (Pmode == DImode)))
15139 : return -1;
15140 : return 8624; /* *sse2_maskmovdqu */
15141 :
15142 : default:
15143 : return -1;
15144 : }
15145 : }
15146 :
15147 : int
15148 : recog_250 (rtx x1 ATTRIBUTE_UNUSED,
15149 : rtx_insn *insn ATTRIBUTE_UNUSED,
15150 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15151 : {
15152 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15153 : rtx x2, x3, x4, x5, x6, x7;
15154 : int res ATTRIBUTE_UNUSED;
15155 : x2 = XEXP (x1, 0);
15156 : operands[0] = x2;
15157 : x3 = XEXP (x1, 1);
15158 : x4 = XVECEXP (x3, 0, 0);
15159 : operands[1] = x4;
15160 : x5 = XVECEXP (x3, 0, 1);
15161 : operands[2] = x5;
15162 : x6 = XVECEXP (x3, 0, 2);
15163 : switch (GET_CODE (x6))
15164 : {
15165 : case REG:
15166 : case SUBREG:
15167 : case MEM:
15168 : operands[3] = x6;
15169 : switch (GET_MODE (operands[0]))
15170 : {
15171 : case E_V8SFmode:
15172 : if (!register_operand (operands[0], E_V8SFmode)
15173 : || GET_MODE (x3) != E_V8SFmode)
15174 : return -1;
15175 : if (nonimmediate_operand (operands[1], E_V8SFmode)
15176 : && nonimmediate_operand (operands[2], E_V8SFmode)
15177 : && nonimmediate_operand (operands[3], E_V8SFmode)
15178 : && (
15179 : #line 6750 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15180 : (TARGET_FMA || TARGET_FMA4) &&
15181 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15182 : (TARGET_AVX)))
15183 : return 4129; /* *fma_fmaddsub_v8sf */
15184 : if (!vector_operand (operands[1], E_V8SFmode)
15185 : || !vector_operand (operands[2], E_V8SFmode)
15186 : || !vector_operand (operands[3], E_V8SFmode)
15187 : || !(
15188 : #line 6768 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15189 : (TARGET_AVX512F && 1 && 1) &&
15190 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15191 : (TARGET_AVX512VL)))
15192 : return -1;
15193 : return 4145; /* *fma_fmaddsub_v8sf */
15194 :
15195 : case E_V4SFmode:
15196 : if (!register_operand (operands[0], E_V4SFmode)
15197 : || GET_MODE (x3) != E_V4SFmode)
15198 : return -1;
15199 : if (nonimmediate_operand (operands[1], E_V4SFmode)
15200 : && nonimmediate_operand (operands[2], E_V4SFmode)
15201 : && nonimmediate_operand (operands[3], E_V4SFmode)
15202 : &&
15203 : #line 6750 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15204 : (TARGET_FMA || TARGET_FMA4))
15205 : return 4130; /* *fma_fmaddsub_v4sf */
15206 : if (!vector_operand (operands[1], E_V4SFmode)
15207 : || !vector_operand (operands[2], E_V4SFmode)
15208 : || !vector_operand (operands[3], E_V4SFmode)
15209 : || !(
15210 : #line 6768 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15211 : (TARGET_AVX512F && 1 && 1) &&
15212 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15213 : (TARGET_AVX512VL)))
15214 : return -1;
15215 : return 4147; /* *fma_fmaddsub_v4sf */
15216 :
15217 : case E_V4DFmode:
15218 : if (!register_operand (operands[0], E_V4DFmode)
15219 : || GET_MODE (x3) != E_V4DFmode)
15220 : return -1;
15221 : if (nonimmediate_operand (operands[1], E_V4DFmode)
15222 : && nonimmediate_operand (operands[2], E_V4DFmode)
15223 : && nonimmediate_operand (operands[3], E_V4DFmode)
15224 : && (
15225 : #line 6750 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15226 : (TARGET_FMA || TARGET_FMA4) &&
15227 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15228 : (TARGET_AVX)))
15229 : return 4131; /* *fma_fmaddsub_v4df */
15230 : if (!vector_operand (operands[1], E_V4DFmode)
15231 : || !vector_operand (operands[2], E_V4DFmode)
15232 : || !vector_operand (operands[3], E_V4DFmode)
15233 : || !(
15234 : #line 6768 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15235 : (TARGET_AVX512F && 1 && 1) &&
15236 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15237 : (TARGET_AVX512VL)))
15238 : return -1;
15239 : return 4153; /* *fma_fmaddsub_v4df */
15240 :
15241 : case E_V2DFmode:
15242 : if (!register_operand (operands[0], E_V2DFmode)
15243 : || GET_MODE (x3) != E_V2DFmode)
15244 : return -1;
15245 : if (nonimmediate_operand (operands[1], E_V2DFmode)
15246 : && nonimmediate_operand (operands[2], E_V2DFmode)
15247 : && nonimmediate_operand (operands[3], E_V2DFmode)
15248 : && (
15249 : #line 6750 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15250 : (TARGET_FMA || TARGET_FMA4) &&
15251 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15252 : (TARGET_SSE2)))
15253 : return 4132; /* *fma_fmaddsub_v2df */
15254 : if (!vector_operand (operands[1], E_V2DFmode)
15255 : || !vector_operand (operands[2], E_V2DFmode)
15256 : || !vector_operand (operands[3], E_V2DFmode)
15257 : || !(
15258 : #line 6768 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15259 : (TARGET_AVX512F && 1 && 1) &&
15260 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15261 : (TARGET_AVX512VL)))
15262 : return -1;
15263 : return 4155; /* *fma_fmaddsub_v2df */
15264 :
15265 : case E_V32HFmode:
15266 : if (pattern676 (x3,
15267 : E_V32HFmode) != 0
15268 : || !(
15269 : #line 6768 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15270 : (TARGET_AVX512F && 1 && 1) &&
15271 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15272 : (TARGET_AVX512FP16)))
15273 : return -1;
15274 : return 4133; /* *fma_fmaddsub_v32hf */
15275 :
15276 : case E_V16HFmode:
15277 : if (pattern676 (x3,
15278 : E_V16HFmode) != 0
15279 : || !(
15280 : #line 6768 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15281 : (TARGET_AVX512F && 1 && 1) &&
15282 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15283 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
15284 : return -1;
15285 : return 4137; /* *fma_fmaddsub_v16hf */
15286 :
15287 : case E_V8HFmode:
15288 : if (pattern676 (x3,
15289 : E_V8HFmode) != 0
15290 : || !(
15291 : #line 6768 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15292 : (TARGET_AVX512F && 1 && 1) &&
15293 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15294 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
15295 : return -1;
15296 : return 4139; /* *fma_fmaddsub_v8hf */
15297 :
15298 : case E_V16SFmode:
15299 : if (pattern676 (x3,
15300 : E_V16SFmode) != 0
15301 : || !
15302 : #line 6768 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15303 : (TARGET_AVX512F && 1 && 1))
15304 : return -1;
15305 : return 4141; /* *fma_fmaddsub_v16sf */
15306 :
15307 : case E_V8DFmode:
15308 : if (pattern676 (x3,
15309 : E_V8DFmode) != 0
15310 : || !
15311 : #line 6768 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15312 : (TARGET_AVX512F && 1 && 1))
15313 : return -1;
15314 : return 4149; /* *fma_fmaddsub_v8df */
15315 :
15316 : default:
15317 : return -1;
15318 : }
15319 :
15320 : case NEG:
15321 : x7 = XEXP (x6, 0);
15322 : operands[3] = x7;
15323 : switch (GET_MODE (operands[0]))
15324 : {
15325 : case E_V8SFmode:
15326 : if (!register_operand (operands[0], E_V8SFmode)
15327 : || GET_MODE (x3) != E_V8SFmode
15328 : || GET_MODE (x6) != E_V8SFmode)
15329 : return -1;
15330 : if (nonimmediate_operand (operands[1], E_V8SFmode)
15331 : && nonimmediate_operand (operands[2], E_V8SFmode)
15332 : && nonimmediate_operand (operands[3], E_V8SFmode)
15333 : && (
15334 : #line 6819 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15335 : (TARGET_FMA || TARGET_FMA4) &&
15336 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15337 : (TARGET_AVX)))
15338 : return 4193; /* *fma_fmsubadd_v8sf */
15339 : if (!vector_operand (operands[1], E_V8SFmode)
15340 : || !vector_operand (operands[2], E_V8SFmode)
15341 : || !vector_operand (operands[3], E_V8SFmode)
15342 : || !(
15343 : #line 6838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15344 : (TARGET_AVX512F && 1 && 1) &&
15345 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15346 : (TARGET_AVX512VL)))
15347 : return -1;
15348 : return 4209; /* *fma_fmsubadd_v8sf */
15349 :
15350 : case E_V4SFmode:
15351 : if (!register_operand (operands[0], E_V4SFmode)
15352 : || GET_MODE (x3) != E_V4SFmode
15353 : || GET_MODE (x6) != E_V4SFmode)
15354 : return -1;
15355 : if (nonimmediate_operand (operands[1], E_V4SFmode)
15356 : && nonimmediate_operand (operands[2], E_V4SFmode)
15357 : && nonimmediate_operand (operands[3], E_V4SFmode)
15358 : &&
15359 : #line 6819 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15360 : (TARGET_FMA || TARGET_FMA4))
15361 : return 4194; /* *fma_fmsubadd_v4sf */
15362 : if (!vector_operand (operands[1], E_V4SFmode)
15363 : || !vector_operand (operands[2], E_V4SFmode)
15364 : || !vector_operand (operands[3], E_V4SFmode)
15365 : || !(
15366 : #line 6838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15367 : (TARGET_AVX512F && 1 && 1) &&
15368 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15369 : (TARGET_AVX512VL)))
15370 : return -1;
15371 : return 4211; /* *fma_fmsubadd_v4sf */
15372 :
15373 : case E_V4DFmode:
15374 : if (!register_operand (operands[0], E_V4DFmode)
15375 : || GET_MODE (x3) != E_V4DFmode
15376 : || GET_MODE (x6) != E_V4DFmode)
15377 : return -1;
15378 : if (nonimmediate_operand (operands[1], E_V4DFmode)
15379 : && nonimmediate_operand (operands[2], E_V4DFmode)
15380 : && nonimmediate_operand (operands[3], E_V4DFmode)
15381 : && (
15382 : #line 6819 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15383 : (TARGET_FMA || TARGET_FMA4) &&
15384 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15385 : (TARGET_AVX)))
15386 : return 4195; /* *fma_fmsubadd_v4df */
15387 : if (!vector_operand (operands[1], E_V4DFmode)
15388 : || !vector_operand (operands[2], E_V4DFmode)
15389 : || !vector_operand (operands[3], E_V4DFmode)
15390 : || !(
15391 : #line 6838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15392 : (TARGET_AVX512F && 1 && 1) &&
15393 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15394 : (TARGET_AVX512VL)))
15395 : return -1;
15396 : return 4217; /* *fma_fmsubadd_v4df */
15397 :
15398 : case E_V2DFmode:
15399 : if (!register_operand (operands[0], E_V2DFmode)
15400 : || GET_MODE (x3) != E_V2DFmode
15401 : || GET_MODE (x6) != E_V2DFmode)
15402 : return -1;
15403 : if (nonimmediate_operand (operands[1], E_V2DFmode)
15404 : && nonimmediate_operand (operands[2], E_V2DFmode)
15405 : && nonimmediate_operand (operands[3], E_V2DFmode)
15406 : && (
15407 : #line 6819 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15408 : (TARGET_FMA || TARGET_FMA4) &&
15409 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15410 : (TARGET_SSE2)))
15411 : return 4196; /* *fma_fmsubadd_v2df */
15412 : if (!vector_operand (operands[1], E_V2DFmode)
15413 : || !vector_operand (operands[2], E_V2DFmode)
15414 : || !vector_operand (operands[3], E_V2DFmode)
15415 : || !(
15416 : #line 6838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15417 : (TARGET_AVX512F && 1 && 1) &&
15418 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15419 : (TARGET_AVX512VL)))
15420 : return -1;
15421 : return 4219; /* *fma_fmsubadd_v2df */
15422 :
15423 : case E_V32HFmode:
15424 : if (pattern1036 (x3,
15425 : E_V32HFmode) != 0
15426 : || !(
15427 : #line 6838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15428 : (TARGET_AVX512F && 1 && 1) &&
15429 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15430 : (TARGET_AVX512FP16)))
15431 : return -1;
15432 : return 4197; /* *fma_fmsubadd_v32hf */
15433 :
15434 : case E_V16HFmode:
15435 : if (pattern1036 (x3,
15436 : E_V16HFmode) != 0
15437 : || !(
15438 : #line 6838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15439 : (TARGET_AVX512F && 1 && 1) &&
15440 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15441 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
15442 : return -1;
15443 : return 4201; /* *fma_fmsubadd_v16hf */
15444 :
15445 : case E_V8HFmode:
15446 : if (pattern1036 (x3,
15447 : E_V8HFmode) != 0
15448 : || !(
15449 : #line 6838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15450 : (TARGET_AVX512F && 1 && 1) &&
15451 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15452 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
15453 : return -1;
15454 : return 4203; /* *fma_fmsubadd_v8hf */
15455 :
15456 : case E_V16SFmode:
15457 : if (pattern1036 (x3,
15458 : E_V16SFmode) != 0
15459 : || !
15460 : #line 6838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15461 : (TARGET_AVX512F && 1 && 1))
15462 : return -1;
15463 : return 4205; /* *fma_fmsubadd_v16sf */
15464 :
15465 : case E_V8DFmode:
15466 : if (pattern1036 (x3,
15467 : E_V8DFmode) != 0
15468 : || !
15469 : #line 6838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15470 : (TARGET_AVX512F && 1 && 1))
15471 : return -1;
15472 : return 4213; /* *fma_fmsubadd_v8df */
15473 :
15474 : default:
15475 : return -1;
15476 : }
15477 :
15478 : default:
15479 : return -1;
15480 : }
15481 : }
15482 :
15483 : int
15484 : recog_256 (rtx x1 ATTRIBUTE_UNUSED,
15485 : rtx_insn *insn ATTRIBUTE_UNUSED,
15486 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15487 : {
15488 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15489 : rtx x2, x3, x4, x5, x6;
15490 : int res ATTRIBUTE_UNUSED;
15491 : x2 = XEXP (x1, 0);
15492 : operands[0] = x2;
15493 : x3 = XEXP (x1, 1);
15494 : x4 = XVECEXP (x3, 0, 0);
15495 : operands[1] = x4;
15496 : x5 = XVECEXP (x3, 0, 1);
15497 : operands[2] = x5;
15498 : x6 = XVECEXP (x3, 0, 2);
15499 : operands[3] = x6;
15500 : if (!const_0_to_255_operand (operands[3], E_SImode))
15501 : return -1;
15502 : switch (GET_MODE (operands[0]))
15503 : {
15504 : case E_V32HFmode:
15505 : if (pattern158 (x3,
15506 : E_V32HFmode) != 0
15507 : || !(
15508 : #line 33361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15509 : (TARGET_AVX10_2) &&
15510 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15511 : (TARGET_AVX512FP16)))
15512 : return -1;
15513 : return 10977; /* avx10_2_minmaxpv32hf */
15514 :
15515 : case E_V16HFmode:
15516 : if (pattern158 (x3,
15517 : E_V16HFmode) != 0
15518 : || !(
15519 : #line 33361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15520 : (TARGET_AVX10_2) &&
15521 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15522 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
15523 : return -1;
15524 : return 10981; /* avx10_2_minmaxpv16hf */
15525 :
15526 : case E_V8HFmode:
15527 : if (pattern158 (x3,
15528 : E_V8HFmode) != 0
15529 : || !(
15530 : #line 33361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15531 : (TARGET_AVX10_2) &&
15532 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15533 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
15534 : return -1;
15535 : return 10985; /* avx10_2_minmaxpv8hf */
15536 :
15537 : case E_V16SFmode:
15538 : if (pattern158 (x3,
15539 : E_V16SFmode) != 0
15540 : || !
15541 : #line 33361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15542 : (TARGET_AVX10_2))
15543 : return -1;
15544 : return 10989; /* avx10_2_minmaxpv16sf */
15545 :
15546 : case E_V8SFmode:
15547 : if (pattern158 (x3,
15548 : E_V8SFmode) != 0
15549 : || !(
15550 : #line 33361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15551 : (TARGET_AVX10_2) &&
15552 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15553 : (TARGET_AVX512VL)))
15554 : return -1;
15555 : return 10993; /* avx10_2_minmaxpv8sf */
15556 :
15557 : case E_V4SFmode:
15558 : if (pattern158 (x3,
15559 : E_V4SFmode) != 0
15560 : || !(
15561 : #line 33361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15562 : (TARGET_AVX10_2) &&
15563 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15564 : (TARGET_AVX512VL)))
15565 : return -1;
15566 : return 10997; /* avx10_2_minmaxpv4sf */
15567 :
15568 : case E_V8DFmode:
15569 : if (pattern158 (x3,
15570 : E_V8DFmode) != 0
15571 : || !
15572 : #line 33361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15573 : (TARGET_AVX10_2))
15574 : return -1;
15575 : return 11001; /* avx10_2_minmaxpv8df */
15576 :
15577 : case E_V4DFmode:
15578 : if (pattern158 (x3,
15579 : E_V4DFmode) != 0
15580 : || !(
15581 : #line 33361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15582 : (TARGET_AVX10_2) &&
15583 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15584 : (TARGET_AVX512VL)))
15585 : return -1;
15586 : return 11005; /* avx10_2_minmaxpv4df */
15587 :
15588 : case E_V2DFmode:
15589 : if (pattern158 (x3,
15590 : E_V2DFmode) != 0
15591 : || !(
15592 : #line 33361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15593 : (TARGET_AVX10_2) &&
15594 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15595 : (TARGET_AVX512VL)))
15596 : return -1;
15597 : return 11009; /* avx10_2_minmaxpv2df */
15598 :
15599 : default:
15600 : return -1;
15601 : }
15602 : }
15603 :
15604 : int
15605 : recog_261 (rtx x1 ATTRIBUTE_UNUSED,
15606 : rtx_insn *insn ATTRIBUTE_UNUSED,
15607 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15608 : {
15609 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15610 : int res ATTRIBUTE_UNUSED;
15611 : switch (pattern182 (x1))
15612 : {
15613 : case 0:
15614 : if (!
15615 : #line 31119 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15616 : (TARGET_AVX512VBMI2))
15617 : return -1;
15618 : return 10292; /* vpshrdv_v32hi */
15619 :
15620 : case 1:
15621 : if (!
15622 : #line 31119 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15623 : (TARGET_AVX512VBMI2))
15624 : return -1;
15625 : return 10293; /* vpshrdv_v16si */
15626 :
15627 : case 2:
15628 : if (!
15629 : #line 31119 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15630 : (TARGET_AVX512VBMI2))
15631 : return -1;
15632 : return 10294; /* vpshrdv_v8di */
15633 :
15634 : case 3:
15635 : if (!(
15636 : #line 31119 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15637 : (TARGET_AVX512VBMI2) &&
15638 : #line 751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15639 : (TARGET_AVX512VL)))
15640 : return -1;
15641 : return 10295; /* vpshrdv_v16hi */
15642 :
15643 : case 4:
15644 : if (!(
15645 : #line 31119 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15646 : (TARGET_AVX512VBMI2) &&
15647 : #line 751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15648 : (TARGET_AVX512VL)))
15649 : return -1;
15650 : return 10296; /* vpshrdv_v8si */
15651 :
15652 : case 5:
15653 : if (!(
15654 : #line 31119 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15655 : (TARGET_AVX512VBMI2) &&
15656 : #line 752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15657 : (TARGET_AVX512VL)))
15658 : return -1;
15659 : return 10297; /* vpshrdv_v4di */
15660 :
15661 : case 6:
15662 : if (!(
15663 : #line 31119 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15664 : (TARGET_AVX512VBMI2) &&
15665 : #line 752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15666 : (TARGET_AVX512VL)))
15667 : return -1;
15668 : return 10298; /* vpshrdv_v8hi */
15669 :
15670 : case 7:
15671 : if (!(
15672 : #line 31119 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15673 : (TARGET_AVX512VBMI2) &&
15674 : #line 753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15675 : (TARGET_AVX512VL)))
15676 : return -1;
15677 : return 10299; /* vpshrdv_v4si */
15678 :
15679 : case 8:
15680 : if (!(
15681 : #line 31119 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15682 : (TARGET_AVX512VBMI2) &&
15683 : #line 753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15684 : (TARGET_AVX512VL)))
15685 : return -1;
15686 : return 10300; /* vpshrdv_v2di */
15687 :
15688 : default:
15689 : return -1;
15690 : }
15691 : }
15692 :
15693 : int
15694 : recog_267 (rtx x1 ATTRIBUTE_UNUSED,
15695 : rtx_insn *insn ATTRIBUTE_UNUSED,
15696 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15697 : {
15698 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15699 : rtx x2, x3, x4, x5;
15700 : int res ATTRIBUTE_UNUSED;
15701 : x2 = XEXP (x1, 0);
15702 : operands[0] = x2;
15703 : x3 = XEXP (x1, 1);
15704 : x4 = XVECEXP (x3, 0, 0);
15705 : operands[1] = x4;
15706 : x5 = XVECEXP (x3, 0, 1);
15707 : operands[2] = x5;
15708 : switch (pattern677 (x3))
15709 : {
15710 : case 0:
15711 : if (
15712 : #line 7507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15713 : (TARGET_AVX512FP16 && 1 && 1))
15714 : return 4365; /* fma_fcmaddc_v32hf */
15715 : break;
15716 :
15717 : case 1:
15718 : if ((
15719 : #line 7507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15720 : (TARGET_AVX512FP16 && 1 && 1) &&
15721 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15722 : (TARGET_AVX512VL)))
15723 : return 4371; /* fma_fcmaddc_v16hf */
15724 : break;
15725 :
15726 : case 2:
15727 : if ((
15728 : #line 7507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15729 : (TARGET_AVX512FP16 && 1 && 1) &&
15730 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15731 : (TARGET_AVX512VL)))
15732 : return 4375; /* fma_fcmaddc_v8hf */
15733 : break;
15734 :
15735 : default:
15736 : break;
15737 : }
15738 : if (GET_CODE (x5) != SUBREG
15739 : || maybe_ne (SUBREG_BYTE (x5), 0))
15740 : return -1;
15741 : switch (pattern602 (x3))
15742 : {
15743 : case 0:
15744 : if (!
15745 : #line 7613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15746 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()))
15747 : return -1;
15748 : return 4398; /* fma_v32hf_fcmaddc_bcst */
15749 :
15750 : case 1:
15751 : if (!(
15752 : #line 7613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15753 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()) &&
15754 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15755 : (TARGET_AVX512VL)))
15756 : return -1;
15757 : return 4399; /* fma_v16hf_fcmaddc_bcst */
15758 :
15759 : case 2:
15760 : if (!(
15761 : #line 7613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15762 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()) &&
15763 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15764 : (TARGET_AVX512VL)))
15765 : return -1;
15766 : return 4400; /* fma_v8hf_fcmaddc_bcst */
15767 :
15768 : default:
15769 : return -1;
15770 : }
15771 : }
15772 :
15773 : int
15774 : recog_274 (rtx x1 ATTRIBUTE_UNUSED,
15775 : rtx_insn *insn ATTRIBUTE_UNUSED,
15776 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15777 : {
15778 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15779 : rtx x2, x3, x4, x5, x6, x7, x8;
15780 : int res ATTRIBUTE_UNUSED;
15781 : x2 = XEXP (x1, 1);
15782 : x3 = XEXP (x2, 0);
15783 : x4 = XEXP (x3, 1);
15784 : if (GET_CODE (x4) != PARALLEL)
15785 : return -1;
15786 : x5 = XEXP (x3, 0);
15787 : operands[1] = x5;
15788 : x6 = XEXP (x2, 1);
15789 : operands[2] = x6;
15790 : switch (XVECLEN (x4, 0))
15791 : {
15792 : case 1:
15793 : x7 = XVECEXP (x4, 0, 0);
15794 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
15795 : return -1;
15796 : switch (GET_CODE (operands[2]))
15797 : {
15798 : case CONST_INT:
15799 : case CONST_DOUBLE:
15800 : case CONST_VECTOR:
15801 : switch (GET_MODE (operands[0]))
15802 : {
15803 : case E_V2DImode:
15804 : if (pattern1150 (x2,
15805 : E_DImode,
15806 : E_V2DImode) != 0
15807 : || !
15808 : #line 1871 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15809 : (TARGET_SSE2))
15810 : return -1;
15811 : return 2616; /* *sse2_movq128_v2di */
15812 :
15813 : case E_V2DFmode:
15814 : if (pattern1150 (x2,
15815 : E_DFmode,
15816 : E_V2DFmode) != 0
15817 : || !
15818 : #line 1871 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15819 : (TARGET_SSE2))
15820 : return -1;
15821 : return 2617; /* *sse2_movq128_v2df */
15822 :
15823 : default:
15824 : return -1;
15825 : }
15826 :
15827 : case REG:
15828 : case SUBREG:
15829 : case MEM:
15830 : if (!nonimmediate_operand (operands[2], E_DFmode)
15831 : || pattern1151 (x2,
15832 : E_V2DFmode,
15833 : E_DFmode) != 0
15834 : || !
15835 : #line 15053 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15836 : (TARGET_SSE2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
15837 : return -1;
15838 : return 7250; /* sse2_loadhpd */
15839 :
15840 : default:
15841 : return -1;
15842 : }
15843 :
15844 : case 2:
15845 : x7 = XVECEXP (x4, 0, 0);
15846 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
15847 : return -1;
15848 : x8 = XVECEXP (x4, 0, 1);
15849 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
15850 : return -1;
15851 : switch (GET_MODE (operands[0]))
15852 : {
15853 : case E_V4SFmode:
15854 : if (pattern1151 (x2,
15855 : E_V4SFmode,
15856 : E_V2SFmode) != 0
15857 : || !nonimmediate_operand (operands[2], E_V2SFmode)
15858 : || !
15859 : #line 11951 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15860 : (TARGET_SSE))
15861 : return -1;
15862 : return 5289; /* sse_loadhps */
15863 :
15864 : case E_V4DImode:
15865 : if (pattern1152 (x2,
15866 : E_V2DImode,
15867 : E_V4DImode) != 0
15868 : || !
15869 : #line 29159 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15870 : (TARGET_AVX && 1))
15871 : return -1;
15872 : return 9539; /* vec_set_hi_v4di */
15873 :
15874 : case E_V4DFmode:
15875 : if (pattern1152 (x2,
15876 : E_V2DFmode,
15877 : E_V4DFmode) != 0
15878 : || !
15879 : #line 29159 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15880 : (TARGET_AVX && 1))
15881 : return -1;
15882 : return 9541; /* vec_set_hi_v4df */
15883 :
15884 : default:
15885 : return -1;
15886 : }
15887 :
15888 : case 8:
15889 : if (pattern681 (x4) != 0)
15890 : return -1;
15891 : switch (GET_MODE (operands[0]))
15892 : {
15893 : case E_V16SFmode:
15894 : if (pattern1152 (x2,
15895 : E_V8SFmode,
15896 : E_V16SFmode) != 0
15897 : || !
15898 : #line 20450 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15899 : (TARGET_AVX512DQ))
15900 : return -1;
15901 : return 8445; /* vec_set_hi_v16sf */
15902 :
15903 : case E_V16SImode:
15904 : if (pattern1152 (x2,
15905 : E_V8SImode,
15906 : E_V16SImode) != 0
15907 : || !
15908 : #line 20450 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15909 : (TARGET_AVX512DQ))
15910 : return -1;
15911 : return 8447; /* vec_set_hi_v16si */
15912 :
15913 : case E_V16HImode:
15914 : if (pattern1152 (x2,
15915 : E_V8HImode,
15916 : E_V16HImode) != 0
15917 : || !
15918 : #line 29254 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15919 : (TARGET_AVX))
15920 : return -1;
15921 : return 9554; /* vec_set_hi_v16hi */
15922 :
15923 : case E_V16HFmode:
15924 : if (pattern1152 (x2,
15925 : E_V8HFmode,
15926 : E_V16HFmode) != 0
15927 : || !
15928 : #line 29254 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15929 : (TARGET_AVX))
15930 : return -1;
15931 : return 9555; /* vec_set_hi_v16hf */
15932 :
15933 : case E_V16BFmode:
15934 : if (pattern1152 (x2,
15935 : E_V8BFmode,
15936 : E_V16BFmode) != 0
15937 : || !
15938 : #line 29254 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15939 : (TARGET_AVX))
15940 : return -1;
15941 : return 9556; /* vec_set_hi_v16bf */
15942 :
15943 : default:
15944 : return -1;
15945 : }
15946 :
15947 : case 4:
15948 : if (pattern682 (x4,
15949 : 3,
15950 : 2,
15951 : 1) != 0)
15952 : return -1;
15953 : switch (GET_MODE (operands[0]))
15954 : {
15955 : case E_V8DFmode:
15956 : if (pattern1152 (x2,
15957 : E_V4DFmode,
15958 : E_V8DFmode) != 0
15959 : || !
15960 : #line 20480 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15961 : (TARGET_AVX512F))
15962 : return -1;
15963 : return 8453; /* vec_set_hi_v8df */
15964 :
15965 : case E_V8DImode:
15966 : if (pattern1152 (x2,
15967 : E_V4DImode,
15968 : E_V8DImode) != 0
15969 : || !
15970 : #line 20480 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15971 : (TARGET_AVX512F))
15972 : return -1;
15973 : return 8455; /* vec_set_hi_v8di */
15974 :
15975 : case E_V8SImode:
15976 : if (pattern1152 (x2,
15977 : E_V4SImode,
15978 : E_V8SImode) != 0
15979 : || !
15980 : #line 29207 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15981 : (TARGET_AVX))
15982 : return -1;
15983 : return 9547; /* vec_set_hi_v8si */
15984 :
15985 : case E_V8SFmode:
15986 : if (pattern1152 (x2,
15987 : E_V4SFmode,
15988 : E_V8SFmode) != 0
15989 : || !
15990 : #line 29207 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15991 : (TARGET_AVX))
15992 : return -1;
15993 : return 9549; /* vec_set_hi_v8sf */
15994 :
15995 : default:
15996 : return -1;
15997 : }
15998 :
15999 : case 16:
16000 : if (pattern795 (x4,
16001 : 6,
16002 : 5,
16003 : 4) != 0
16004 : || pattern1490 (x4,
16005 : 11,
16006 : 10,
16007 : 9,
16008 : 8,
16009 : 7) != 0
16010 : || pattern1152 (x2,
16011 : E_V16QImode,
16012 : E_V32QImode) != 0
16013 : || !
16014 : #line 29306 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16015 : (TARGET_AVX))
16016 : return -1;
16017 : return 9558; /* vec_set_hi_v32qi */
16018 :
16019 : default:
16020 : return -1;
16021 : }
16022 : }
16023 :
16024 : int
16025 : recog_275 (rtx x1 ATTRIBUTE_UNUSED,
16026 : rtx_insn *insn ATTRIBUTE_UNUSED,
16027 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16028 : {
16029 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16030 : rtx x2, x3, x4, x5, x6;
16031 : int res ATTRIBUTE_UNUSED;
16032 : x2 = XEXP (x1, 1);
16033 : x3 = XEXP (x2, 0);
16034 : switch (XVECLEN (x3, 0))
16035 : {
16036 : case 1:
16037 : x4 = XVECEXP (x3, 0, 0);
16038 : operands[1] = x4;
16039 : switch (XINT (x3, 1))
16040 : {
16041 : case 47:
16042 : if (GET_MODE (x3) == E_V4SImode
16043 : && pattern798 (x2,
16044 : E_V4SImode,
16045 : E_V4DFmode,
16046 : E_V8SImode) == 0
16047 : &&
16048 : #line 9762 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16049 : (TARGET_AVX))
16050 : return 5043; /* *avx_cvtpd2dq256_2 */
16051 : if (GET_MODE (x3) != E_V2SImode)
16052 : return -1;
16053 : x5 = XEXP (x2, 1);
16054 : if (GET_CODE (x5) != CONST_VECTOR
16055 : || pattern512 (x5,
16056 : E_V2SImode,
16057 : 2) != 0
16058 : || !register_operand (operands[0], E_V4SImode)
16059 : || GET_MODE (x2) != E_V4SImode
16060 : || !vector_operand (operands[1], E_V2DFmode)
16061 : || !
16062 : #line 9775 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16063 : (TARGET_SSE2))
16064 : return -1;
16065 : return 5044; /* sse2_cvtpd2dq */
16066 :
16067 : case 157:
16068 : if (pattern679 (x2) != 0
16069 : || !
16070 : #line 9845 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16071 : (TARGET_AVX512VL))
16072 : return -1;
16073 : return 5055; /* fixuns_notruncv2dfv2si2 */
16074 :
16075 : case 174:
16076 : if (pattern679 (x2) != 0
16077 : || !
16078 : #line 9912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16079 : (TARGET_AVX512VL))
16080 : return -1;
16081 : return 5074; /* *unspec_fixuns_truncv2dfv2si2 */
16082 :
16083 : case 254:
16084 : if (GET_MODE (x3) != E_V8QImode
16085 : || pattern798 (x2,
16086 : E_V8QImode,
16087 : E_V8HFmode,
16088 : E_V16QImode) != 0
16089 : || !
16090 : #line 32575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16091 : (TARGET_AVX10_2))
16092 : return -1;
16093 : return 10566; /* *vcvtph2bf8v8hf */
16094 :
16095 : case 255:
16096 : if (GET_MODE (x3) != E_V8QImode
16097 : || pattern798 (x2,
16098 : E_V8QImode,
16099 : E_V8HFmode,
16100 : E_V16QImode) != 0
16101 : || !
16102 : #line 32575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16103 : (TARGET_AVX10_2))
16104 : return -1;
16105 : return 10567; /* *vcvtph2bf8sv8hf */
16106 :
16107 : case 256:
16108 : if (GET_MODE (x3) != E_V8QImode
16109 : || pattern798 (x2,
16110 : E_V8QImode,
16111 : E_V8HFmode,
16112 : E_V16QImode) != 0
16113 : || !
16114 : #line 32575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16115 : (TARGET_AVX10_2))
16116 : return -1;
16117 : return 10568; /* *vcvtph2hf8v8hf */
16118 :
16119 : case 257:
16120 : if (GET_MODE (x3) != E_V8QImode
16121 : || pattern798 (x2,
16122 : E_V8QImode,
16123 : E_V8HFmode,
16124 : E_V16QImode) != 0
16125 : || !
16126 : #line 32575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16127 : (TARGET_AVX10_2))
16128 : return -1;
16129 : return 10569; /* *vcvtph2hf8sv8hf */
16130 :
16131 : default:
16132 : return -1;
16133 : }
16134 :
16135 : case 2:
16136 : x4 = XVECEXP (x3, 0, 0);
16137 : operands[1] = x4;
16138 : x6 = XVECEXP (x3, 0, 1);
16139 : operands[2] = x6;
16140 : x5 = XEXP (x2, 1);
16141 : operands[3] = x5;
16142 : switch (XINT (x3, 1))
16143 : {
16144 : case 151:
16145 : if (GET_MODE (x3) != E_V4HImode
16146 : || !register_operand (operands[0], E_V8HImode)
16147 : || GET_MODE (x2) != E_V8HImode
16148 : || !register_operand (operands[1], E_V4SFmode)
16149 : || !const_0_to_255_operand (operands[2], E_SImode)
16150 : || !const0_operand (operands[3], E_V4HImode)
16151 : || !
16152 : #line 29846 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16153 : ((TARGET_F16C || TARGET_AVX512VL) && 1))
16154 : return -1;
16155 : return 9730; /* *vcvtps2ph */
16156 :
16157 : case 246:
16158 : if (pattern922 (x2) != 0
16159 : || !
16160 : #line 32485 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16161 : (TARGET_AVX10_2))
16162 : return -1;
16163 : return 10542; /* *vcvtbiasph2bf8v8hf */
16164 :
16165 : case 247:
16166 : if (pattern922 (x2) != 0
16167 : || !
16168 : #line 32485 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16169 : (TARGET_AVX10_2))
16170 : return -1;
16171 : return 10543; /* *vcvtbiasph2bf8sv8hf */
16172 :
16173 : case 248:
16174 : if (pattern922 (x2) != 0
16175 : || !
16176 : #line 32485 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16177 : (TARGET_AVX10_2))
16178 : return -1;
16179 : return 10544; /* *vcvtbiasph2hf8v8hf */
16180 :
16181 : case 249:
16182 : if (pattern922 (x2) != 0
16183 : || !
16184 : #line 32485 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16185 : (TARGET_AVX10_2))
16186 : return -1;
16187 : return 10545; /* *vcvtbiasph2hf8sv8hf */
16188 :
16189 : default:
16190 : return -1;
16191 : }
16192 :
16193 : default:
16194 : return -1;
16195 : }
16196 : }
16197 :
16198 : int
16199 : recog_279 (rtx x1 ATTRIBUTE_UNUSED,
16200 : rtx_insn *insn ATTRIBUTE_UNUSED,
16201 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16202 : {
16203 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16204 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
16205 : int res ATTRIBUTE_UNUSED;
16206 : x2 = XEXP (x1, 1);
16207 : x3 = XEXP (x2, 1);
16208 : x4 = XVECEXP (x3, 0, 2);
16209 : if (GET_CODE (x4) != CONST_INT)
16210 : return -1;
16211 : x5 = XVECEXP (x3, 0, 3);
16212 : if (GET_CODE (x5) != CONST_INT)
16213 : return -1;
16214 : x6 = XVECEXP (x3, 0, 0);
16215 : switch (XWINT (x6, 0))
16216 : {
16217 : case 6L:
16218 : x7 = XVECEXP (x3, 0, 1);
16219 : if (XWINT (x7, 0) != 7L
16220 : || XWINT (x4, 0) != 2L
16221 : || XWINT (x5, 0) != 3L
16222 : || pattern1568 (x2) != 0
16223 : || !
16224 : #line 11389 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16225 : (TARGET_SSE && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
16226 : return -1;
16227 : return 5254; /* sse_movhlps */
16228 :
16229 : case 0L:
16230 : x7 = XVECEXP (x3, 0, 1);
16231 : switch (XWINT (x7, 0))
16232 : {
16233 : case 1L:
16234 : if (XWINT (x4, 0) != 4L
16235 : || XWINT (x5, 0) != 5L
16236 : || pattern1568 (x2) != 0
16237 : || !
16238 : #line 11434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16239 : (TARGET_SSE && ix86_binary_operator_ok (UNKNOWN, V4SFmode, operands)))
16240 : return -1;
16241 : return 5255; /* sse_movlhps */
16242 :
16243 : case 4L:
16244 : switch (XWINT (x4, 0))
16245 : {
16246 : case 1L:
16247 : if (XWINT (x5, 0) != 5L
16248 : || pattern1323 (x2,
16249 : E_V4SFmode,
16250 : E_V8SFmode) != 0
16251 : || !
16252 : #line 11651 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16253 : (TARGET_SSE))
16254 : return -1;
16255 : return 5270; /* vec_interleave_lowv4sf */
16256 :
16257 : case 2L:
16258 : if (XWINT (x5, 0) != 6L)
16259 : return -1;
16260 : switch (GET_MODE (operands[0]))
16261 : {
16262 : case E_V4DFmode:
16263 : if (!register_operand (operands[0], E_V4DFmode)
16264 : || GET_MODE (x2) != E_V4DFmode)
16265 : return -1;
16266 : x8 = XEXP (x2, 0);
16267 : if (GET_MODE (x8) != E_V8DFmode)
16268 : return -1;
16269 : if (nonimmediate_operand (operands[1], E_V4DFmode))
16270 : {
16271 : x9 = XEXP (x8, 1);
16272 : if (rtx_equal_p (x9, operands[1])
16273 : &&
16274 : #line 13794 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16275 : (TARGET_AVX && 1))
16276 : return 5423; /* avx_movddup256 */
16277 : }
16278 : if (!register_operand (operands[1], E_V4DFmode))
16279 : return -1;
16280 : x9 = XEXP (x8, 1);
16281 : operands[2] = x9;
16282 : if (!nonimmediate_operand (operands[2], E_V4DFmode)
16283 : || !
16284 : #line 13808 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16285 : (TARGET_AVX && 1))
16286 : return -1;
16287 : return 5425; /* avx_unpcklpd256 */
16288 :
16289 : case E_V4DImode:
16290 : if (pattern1631 (x2,
16291 : E_V4DImode,
16292 : E_V8DImode) != 0
16293 : || !
16294 : #line 14840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16295 : (TARGET_AVX2 && 1))
16296 : return -1;
16297 : return 7238; /* avx2_interleave_lowv4di */
16298 :
16299 : default:
16300 : return -1;
16301 : }
16302 :
16303 : default:
16304 : return -1;
16305 : }
16306 :
16307 : case 0L:
16308 : if (XWINT (x4, 0) != 6L
16309 : || XWINT (x5, 0) != 6L
16310 : || pattern1569 (x2) != 0
16311 : || !
16312 : #line 11741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16313 : (TARGET_SSE3 && 1))
16314 : return -1;
16315 : return 5279; /* sse3_movsldup */
16316 :
16317 : default:
16318 : return -1;
16319 : }
16320 :
16321 : case 2L:
16322 : x7 = XVECEXP (x3, 0, 1);
16323 : if (XWINT (x7, 0) != 6L
16324 : || XWINT (x4, 0) != 3L
16325 : || XWINT (x5, 0) != 7L
16326 : || pattern1323 (x2,
16327 : E_V4SFmode,
16328 : E_V8SFmode) != 0
16329 : || !
16330 : #line 11546 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16331 : (TARGET_SSE && 1))
16332 : return -1;
16333 : return 5263; /* vec_interleave_highv4sf */
16334 :
16335 : case 1L:
16336 : if (XWINT (x5, 0) != 7L)
16337 : return -1;
16338 : x7 = XVECEXP (x3, 0, 1);
16339 : switch (XWINT (x7, 0))
16340 : {
16341 : case 1L:
16342 : if (XWINT (x4, 0) != 7L
16343 : || pattern1569 (x2) != 0
16344 : || !
16345 : #line 11688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16346 : (TARGET_SSE3 && 1))
16347 : return -1;
16348 : return 5273; /* sse3_movshdup */
16349 :
16350 : case 5L:
16351 : if (XWINT (x4, 0) != 3L)
16352 : return -1;
16353 : x8 = XEXP (x2, 0);
16354 : x9 = XEXP (x8, 1);
16355 : operands[2] = x9;
16356 : switch (GET_MODE (operands[0]))
16357 : {
16358 : case E_V4DFmode:
16359 : if (pattern1425 (x2,
16360 : E_V4DFmode,
16361 : E_V8DFmode) != 0
16362 : || !
16363 : #line 13664 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16364 : (TARGET_AVX && 1))
16365 : return -1;
16366 : return 5415; /* avx_unpckhpd256 */
16367 :
16368 : case E_V4DImode:
16369 : if (pattern1425 (x2,
16370 : E_V4DImode,
16371 : E_V8DImode) != 0
16372 : || !
16373 : #line 14790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16374 : (TARGET_AVX2 && 1))
16375 : return -1;
16376 : return 7232; /* avx2_interleave_highv4di */
16377 :
16378 : default:
16379 : return -1;
16380 : }
16381 :
16382 : default:
16383 : return -1;
16384 : }
16385 :
16386 : default:
16387 : return -1;
16388 : }
16389 : }
16390 :
16391 : int
16392 : recog_283 (rtx x1 ATTRIBUTE_UNUSED,
16393 : rtx_insn *insn ATTRIBUTE_UNUSED,
16394 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16395 : {
16396 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16397 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
16398 : rtx x10, x11, x12, x13;
16399 : int res ATTRIBUTE_UNUSED;
16400 : x2 = XEXP (x1, 1);
16401 : x3 = XEXP (x2, 1);
16402 : x4 = XVECEXP (x3, 0, 0);
16403 : if (GET_CODE (x4) != CONST_INT)
16404 : return -1;
16405 : x5 = XVECEXP (x3, 0, 1);
16406 : if (GET_CODE (x5) == CONST_INT)
16407 : {
16408 : res = recog_282 (x1, insn, pnum_clobbers);
16409 : if (res >= 0)
16410 : return res;
16411 : }
16412 : operands[3] = x4;
16413 : x6 = XEXP (x2, 0);
16414 : x7 = XEXP (x6, 1);
16415 : operands[2] = x7;
16416 : operands[4] = x5;
16417 : x8 = XVECEXP (x3, 0, 2);
16418 : operands[5] = x8;
16419 : x9 = XVECEXP (x3, 0, 3);
16420 : operands[6] = x9;
16421 : x10 = XVECEXP (x3, 0, 4);
16422 : operands[7] = x10;
16423 : x11 = XVECEXP (x3, 0, 5);
16424 : operands[8] = x11;
16425 : x12 = XVECEXP (x3, 0, 6);
16426 : operands[9] = x12;
16427 : x13 = XVECEXP (x3, 0, 7);
16428 : operands[10] = x13;
16429 : switch (GET_MODE (operands[0]))
16430 : {
16431 : case E_V8SFmode:
16432 : if (pattern1425 (x2,
16433 : E_V8SFmode,
16434 : E_V16SFmode) != 0)
16435 : return -1;
16436 : if (const_0_to_3_operand (operands[3], E_VOIDmode)
16437 : && const_0_to_3_operand (operands[4], E_VOIDmode)
16438 : && const_8_to_11_operand (operands[5], E_VOIDmode)
16439 : && const_8_to_11_operand (operands[6], E_VOIDmode)
16440 : && const_4_to_7_operand (operands[7], E_VOIDmode)
16441 : && const_4_to_7_operand (operands[8], E_VOIDmode)
16442 : && const_12_to_15_operand (operands[9], E_VOIDmode)
16443 : && const_12_to_15_operand (operands[10], E_VOIDmode)
16444 : &&
16445 : #line 11806 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16446 : (TARGET_AVX
16447 : && 1
16448 : && (INTVAL (operands[3]) == (INTVAL (operands[7]) - 4)
16449 : && INTVAL (operands[4]) == (INTVAL (operands[8]) - 4)
16450 : && INTVAL (operands[5]) == (INTVAL (operands[9]) - 4)
16451 : && INTVAL (operands[6]) == (INTVAL (operands[10]) - 4))))
16452 : return 5283; /* avx_shufps256_1 */
16453 : if (!const_0_to_7_operand (operands[3], E_VOIDmode)
16454 : || pattern1695 () != 0
16455 : || !
16456 : #line 20673 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16457 : (TARGET_AVX512VL
16458 : && (INTVAL (operands[3]) & 3) == 0
16459 : && INTVAL (operands[3]) == INTVAL (operands[4]) - 1
16460 : && INTVAL (operands[3]) == INTVAL (operands[5]) - 2
16461 : && INTVAL (operands[3]) == INTVAL (operands[6]) - 3
16462 : && (INTVAL (operands[7]) & 3) == 0
16463 : && INTVAL (operands[7]) == INTVAL (operands[8]) - 1
16464 : && INTVAL (operands[7]) == INTVAL (operands[9]) - 2
16465 : && INTVAL (operands[7]) == INTVAL (operands[10]) - 3))
16466 : return -1;
16467 : return 8471; /* avx512vl_shuf_f32x4_1 */
16468 :
16469 : case E_V8DFmode:
16470 : if (pattern1425 (x2,
16471 : E_V8DFmode,
16472 : E_V16DFmode) != 0)
16473 : return -1;
16474 : if (const_0_to_1_operand (operands[3], E_VOIDmode)
16475 : && const_8_to_9_operand (operands[4], E_VOIDmode)
16476 : && const_2_to_3_operand (operands[5], E_VOIDmode)
16477 : && const_10_to_11_operand (operands[6], E_VOIDmode)
16478 : && const_4_to_5_operand (operands[7], E_VOIDmode)
16479 : && const_12_to_13_operand (operands[8], E_VOIDmode)
16480 : && const_6_to_7_operand (operands[9], E_VOIDmode)
16481 : && const_14_to_15_operand (operands[10], E_VOIDmode)
16482 : &&
16483 : #line 14674 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16484 : (TARGET_AVX512F))
16485 : return 7227; /* avx512f_shufpd512_1 */
16486 : if (!const_0_to_7_operand (operands[3], E_VOIDmode)
16487 : || pattern1695 () != 0
16488 : || !
16489 : #line 20575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16490 : (TARGET_AVX512F
16491 : && (INTVAL (operands[3]) & 1) == 0
16492 : && INTVAL (operands[3]) == INTVAL (operands[4]) - 1
16493 : && (INTVAL (operands[5]) & 1) == 0
16494 : && INTVAL (operands[5]) == INTVAL (operands[6]) - 1
16495 : && (INTVAL (operands[7]) & 1) == 0
16496 : && INTVAL (operands[7]) == INTVAL (operands[8]) - 1
16497 : && (INTVAL (operands[9]) & 1) == 0
16498 : && INTVAL (operands[9]) == INTVAL (operands[10]) - 1))
16499 : return -1;
16500 : return 8461; /* avx512f_shuf_f64x2_1 */
16501 :
16502 : case E_V8DImode:
16503 : if (pattern1696 (x2,
16504 : E_V8DImode,
16505 : E_V16DImode) != 0
16506 : || !
16507 : #line 20575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16508 : (TARGET_AVX512F
16509 : && (INTVAL (operands[3]) & 1) == 0
16510 : && INTVAL (operands[3]) == INTVAL (operands[4]) - 1
16511 : && (INTVAL (operands[5]) & 1) == 0
16512 : && INTVAL (operands[5]) == INTVAL (operands[6]) - 1
16513 : && (INTVAL (operands[7]) & 1) == 0
16514 : && INTVAL (operands[7]) == INTVAL (operands[8]) - 1
16515 : && (INTVAL (operands[9]) & 1) == 0
16516 : && INTVAL (operands[9]) == INTVAL (operands[10]) - 1))
16517 : return -1;
16518 : return 8463; /* avx512f_shuf_i64x2_1 */
16519 :
16520 : case E_V8SImode:
16521 : if (pattern1696 (x2,
16522 : E_V8SImode,
16523 : E_V16SImode) != 0
16524 : || !
16525 : #line 20673 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16526 : (TARGET_AVX512VL
16527 : && (INTVAL (operands[3]) & 3) == 0
16528 : && INTVAL (operands[3]) == INTVAL (operands[4]) - 1
16529 : && INTVAL (operands[3]) == INTVAL (operands[5]) - 2
16530 : && INTVAL (operands[3]) == INTVAL (operands[6]) - 3
16531 : && (INTVAL (operands[7]) & 3) == 0
16532 : && INTVAL (operands[7]) == INTVAL (operands[8]) - 1
16533 : && INTVAL (operands[7]) == INTVAL (operands[9]) - 2
16534 : && INTVAL (operands[7]) == INTVAL (operands[10]) - 3))
16535 : return -1;
16536 : return 8469; /* avx512vl_shuf_i32x4_1 */
16537 :
16538 : default:
16539 : return -1;
16540 : }
16541 : }
16542 :
16543 : int
16544 : recog_286 (rtx x1 ATTRIBUTE_UNUSED,
16545 : rtx_insn *insn ATTRIBUTE_UNUSED,
16546 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16547 : {
16548 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16549 : rtx x2, x3, x4, x5, x6, x7;
16550 : int res ATTRIBUTE_UNUSED;
16551 : x2 = XEXP (x1, 1);
16552 : x3 = XEXP (x2, 1);
16553 : x4 = XVECEXP (x3, 0, 0);
16554 : if (GET_CODE (x4) != CONST_INT)
16555 : return -1;
16556 : x5 = XVECEXP (x3, 0, 1);
16557 : if (GET_CODE (x5) == CONST_INT)
16558 : {
16559 : x6 = XEXP (x2, 0);
16560 : x7 = XEXP (x6, 1);
16561 : operands[2] = x7;
16562 : switch (XWINT (x4, 0))
16563 : {
16564 : case 1L:
16565 : if (XWINT (x5, 0) == 3L)
16566 : {
16567 : switch (GET_MODE (operands[0]))
16568 : {
16569 : case E_V2DFmode:
16570 : if (pattern1493 (x2,
16571 : E_V2DFmode,
16572 : E_V4DFmode) == 0
16573 : &&
16574 : #line 13737 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16575 : (TARGET_SSE2 && ix86_vec_interleave_v2df_operator_ok (operands, 1)))
16576 : return 5418; /* *vec_interleave_highv2df */
16577 : break;
16578 :
16579 : case E_V2DImode:
16580 : if (pattern1494 (x2,
16581 : E_V2DImode,
16582 : E_V4DImode) == 0
16583 : &&
16584 : #line 14820 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16585 : (TARGET_SSE2 && 1))
16586 : return 7236; /* vec_interleave_highv2di */
16587 : break;
16588 :
16589 : default:
16590 : break;
16591 : }
16592 : }
16593 : break;
16594 :
16595 : case 0L:
16596 : if (XWINT (x5, 0) == 2L)
16597 : {
16598 : switch (GET_MODE (operands[0]))
16599 : {
16600 : case E_V2DFmode:
16601 : if (pattern1493 (x2,
16602 : E_V2DFmode,
16603 : E_V4DFmode) == 0
16604 : &&
16605 : #line 13880 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16606 : (TARGET_SSE2 && ix86_vec_interleave_v2df_operator_ok (operands, 0)))
16607 : return 5428; /* *vec_interleave_lowv2df */
16608 : break;
16609 :
16610 : case E_V2DImode:
16611 : if (pattern1494 (x2,
16612 : E_V2DImode,
16613 : E_V4DImode) == 0
16614 : &&
16615 : #line 14870 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16616 : (TARGET_SSE2 && 1))
16617 : return 7242; /* vec_interleave_lowv2di */
16618 : break;
16619 :
16620 : default:
16621 : break;
16622 : }
16623 : }
16624 : break;
16625 :
16626 : default:
16627 : break;
16628 : }
16629 : }
16630 : operands[3] = x4;
16631 : if (!const_0_to_1_operand (operands[3], E_VOIDmode))
16632 : return -1;
16633 : x6 = XEXP (x2, 0);
16634 : x7 = XEXP (x6, 1);
16635 : operands[2] = x7;
16636 : operands[4] = x5;
16637 : if (!const_2_to_3_operand (operands[4], E_VOIDmode))
16638 : return -1;
16639 : switch (GET_MODE (operands[0]))
16640 : {
16641 : case E_V2DImode:
16642 : if (pattern1494 (x2,
16643 : E_V2DImode,
16644 : E_V4DImode) != 0
16645 : || !
16646 : #line 14888 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16647 : (TARGET_SSE2))
16648 : return -1;
16649 : return 7244; /* sse2_shufpd_v2di */
16650 :
16651 : case E_V2DFmode:
16652 : if (pattern1494 (x2,
16653 : E_V2DFmode,
16654 : E_V4DFmode) != 0
16655 : || !
16656 : #line 14888 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16657 : (TARGET_SSE2))
16658 : return -1;
16659 : return 7245; /* sse2_shufpd_v2df */
16660 :
16661 : default:
16662 : return -1;
16663 : }
16664 : }
16665 :
16666 : int
16667 : recog_288 (rtx x1 ATTRIBUTE_UNUSED,
16668 : rtx_insn *insn ATTRIBUTE_UNUSED,
16669 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16670 : {
16671 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16672 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
16673 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
16674 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
16675 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
16676 : rtx x34, x35, x36, x37;
16677 : int res ATTRIBUTE_UNUSED;
16678 : x2 = XEXP (x1, 1);
16679 : x3 = XEXP (x2, 1);
16680 : if (pattern683 (x3) != 0)
16681 : return -1;
16682 : x4 = XEXP (x2, 0);
16683 : x5 = XEXP (x4, 1);
16684 : operands[2] = x5;
16685 : x6 = XVECEXP (x3, 0, 0);
16686 : switch (XWINT (x6, 0))
16687 : {
16688 : case 8L:
16689 : x7 = XVECEXP (x3, 0, 1);
16690 : if (XWINT (x7, 0) != 40L)
16691 : return -1;
16692 : x8 = XVECEXP (x3, 0, 2);
16693 : if (XWINT (x8, 0) != 9L)
16694 : return -1;
16695 : x9 = XVECEXP (x3, 0, 3);
16696 : if (XWINT (x9, 0) != 41L)
16697 : return -1;
16698 : x10 = XVECEXP (x3, 0, 4);
16699 : if (XWINT (x10, 0) != 10L)
16700 : return -1;
16701 : x11 = XVECEXP (x3, 0, 5);
16702 : if (XWINT (x11, 0) != 42L)
16703 : return -1;
16704 : x12 = XVECEXP (x3, 0, 6);
16705 : if (XWINT (x12, 0) != 11L)
16706 : return -1;
16707 : x13 = XVECEXP (x3, 0, 7);
16708 : if (XWINT (x13, 0) != 43L
16709 : || pattern1913 (x3) != 0)
16710 : return -1;
16711 : x14 = XVECEXP (x3, 0, 16);
16712 : if (XWINT (x14, 0) != 24L)
16713 : return -1;
16714 : x15 = XVECEXP (x3, 0, 17);
16715 : if (XWINT (x15, 0) != 56L)
16716 : return -1;
16717 : x16 = XVECEXP (x3, 0, 18);
16718 : if (XWINT (x16, 0) != 25L)
16719 : return -1;
16720 : x17 = XVECEXP (x3, 0, 19);
16721 : if (XWINT (x17, 0) != 57L)
16722 : return -1;
16723 : x18 = XVECEXP (x3, 0, 20);
16724 : if (XWINT (x18, 0) != 26L)
16725 : return -1;
16726 : x19 = XVECEXP (x3, 0, 21);
16727 : if (XWINT (x19, 0) != 58L)
16728 : return -1;
16729 : x20 = XVECEXP (x3, 0, 22);
16730 : if (XWINT (x20, 0) != 27L)
16731 : return -1;
16732 : x21 = XVECEXP (x3, 0, 23);
16733 : if (XWINT (x21, 0) != 59L
16734 : || pattern1919 (x3) != 0
16735 : || pattern1425 (x2,
16736 : E_V32QImode,
16737 : E_V64QImode) != 0
16738 : || !
16739 : #line 19790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16740 : (TARGET_AVX2 && 1 && 1))
16741 : return -1;
16742 : return 8365; /* avx2_interleave_highv32qi */
16743 :
16744 : case 0L:
16745 : x7 = XVECEXP (x3, 0, 1);
16746 : if (XWINT (x7, 0) != 32L)
16747 : return -1;
16748 : x8 = XVECEXP (x3, 0, 2);
16749 : if (XWINT (x8, 0) != 1L)
16750 : return -1;
16751 : x9 = XVECEXP (x3, 0, 3);
16752 : if (XWINT (x9, 0) != 33L)
16753 : return -1;
16754 : x10 = XVECEXP (x3, 0, 4);
16755 : if (XWINT (x10, 0) != 2L)
16756 : return -1;
16757 : x11 = XVECEXP (x3, 0, 5);
16758 : if (XWINT (x11, 0) != 34L)
16759 : return -1;
16760 : x12 = XVECEXP (x3, 0, 6);
16761 : if (XWINT (x12, 0) != 3L)
16762 : return -1;
16763 : x13 = XVECEXP (x3, 0, 7);
16764 : if (XWINT (x13, 0) != 35L)
16765 : return -1;
16766 : x14 = XVECEXP (x3, 0, 16);
16767 : if (XWINT (x14, 0) != 16L)
16768 : return -1;
16769 : x15 = XVECEXP (x3, 0, 17);
16770 : if (XWINT (x15, 0) != 48L)
16771 : return -1;
16772 : x16 = XVECEXP (x3, 0, 18);
16773 : if (XWINT (x16, 0) != 17L)
16774 : return -1;
16775 : x17 = XVECEXP (x3, 0, 19);
16776 : if (XWINT (x17, 0) != 49L)
16777 : return -1;
16778 : x18 = XVECEXP (x3, 0, 20);
16779 : if (XWINT (x18, 0) != 18L)
16780 : return -1;
16781 : x19 = XVECEXP (x3, 0, 21);
16782 : if (XWINT (x19, 0) != 50L)
16783 : return -1;
16784 : x20 = XVECEXP (x3, 0, 22);
16785 : if (XWINT (x20, 0) != 19L)
16786 : return -1;
16787 : x21 = XVECEXP (x3, 0, 23);
16788 : if (XWINT (x21, 0) != 51L)
16789 : return -1;
16790 : x22 = XVECEXP (x3, 0, 8);
16791 : switch (XWINT (x22, 0))
16792 : {
16793 : case 4L:
16794 : x23 = XVECEXP (x3, 0, 9);
16795 : if (XWINT (x23, 0) != 36L)
16796 : return -1;
16797 : x24 = XVECEXP (x3, 0, 10);
16798 : if (XWINT (x24, 0) != 5L)
16799 : return -1;
16800 : x25 = XVECEXP (x3, 0, 11);
16801 : if (XWINT (x25, 0) != 37L)
16802 : return -1;
16803 : x26 = XVECEXP (x3, 0, 12);
16804 : if (XWINT (x26, 0) != 6L)
16805 : return -1;
16806 : x27 = XVECEXP (x3, 0, 13);
16807 : if (XWINT (x27, 0) != 38L)
16808 : return -1;
16809 : x28 = XVECEXP (x3, 0, 14);
16810 : if (XWINT (x28, 0) != 7L)
16811 : return -1;
16812 : x29 = XVECEXP (x3, 0, 15);
16813 : if (XWINT (x29, 0) != 39L)
16814 : return -1;
16815 : x30 = XVECEXP (x3, 0, 24);
16816 : if (XWINT (x30, 0) != 20L)
16817 : return -1;
16818 : x31 = XVECEXP (x3, 0, 25);
16819 : if (XWINT (x31, 0) != 52L)
16820 : return -1;
16821 : x32 = XVECEXP (x3, 0, 26);
16822 : if (XWINT (x32, 0) != 21L)
16823 : return -1;
16824 : x33 = XVECEXP (x3, 0, 27);
16825 : if (XWINT (x33, 0) != 53L)
16826 : return -1;
16827 : x34 = XVECEXP (x3, 0, 28);
16828 : if (XWINT (x34, 0) != 22L)
16829 : return -1;
16830 : x35 = XVECEXP (x3, 0, 29);
16831 : if (XWINT (x35, 0) != 54L)
16832 : return -1;
16833 : x36 = XVECEXP (x3, 0, 30);
16834 : if (XWINT (x36, 0) != 23L)
16835 : return -1;
16836 : x37 = XVECEXP (x3, 0, 31);
16837 : if (XWINT (x37, 0) != 55L
16838 : || pattern1425 (x2,
16839 : E_V32QImode,
16840 : E_V64QImode) != 0
16841 : || !
16842 : #line 19886 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16843 : (TARGET_AVX2 && 1 && 1))
16844 : return -1;
16845 : return 8371; /* avx2_interleave_lowv32qi */
16846 :
16847 : case 8L:
16848 : x23 = XVECEXP (x3, 0, 9);
16849 : if (XWINT (x23, 0) != 40L)
16850 : return -1;
16851 : x24 = XVECEXP (x3, 0, 10);
16852 : if (XWINT (x24, 0) != 9L)
16853 : return -1;
16854 : x25 = XVECEXP (x3, 0, 11);
16855 : if (XWINT (x25, 0) != 41L)
16856 : return -1;
16857 : x26 = XVECEXP (x3, 0, 12);
16858 : if (XWINT (x26, 0) != 10L)
16859 : return -1;
16860 : x27 = XVECEXP (x3, 0, 13);
16861 : if (XWINT (x27, 0) != 42L)
16862 : return -1;
16863 : x28 = XVECEXP (x3, 0, 14);
16864 : if (XWINT (x28, 0) != 11L)
16865 : return -1;
16866 : x29 = XVECEXP (x3, 0, 15);
16867 : if (XWINT (x29, 0) != 43L)
16868 : return -1;
16869 : x30 = XVECEXP (x3, 0, 24);
16870 : if (XWINT (x30, 0) != 24L)
16871 : return -1;
16872 : x31 = XVECEXP (x3, 0, 25);
16873 : if (XWINT (x31, 0) != 56L)
16874 : return -1;
16875 : x32 = XVECEXP (x3, 0, 26);
16876 : if (XWINT (x32, 0) != 25L)
16877 : return -1;
16878 : x33 = XVECEXP (x3, 0, 27);
16879 : if (XWINT (x33, 0) != 57L)
16880 : return -1;
16881 : x34 = XVECEXP (x3, 0, 28);
16882 : if (XWINT (x34, 0) != 26L)
16883 : return -1;
16884 : x35 = XVECEXP (x3, 0, 29);
16885 : if (XWINT (x35, 0) != 58L)
16886 : return -1;
16887 : x36 = XVECEXP (x3, 0, 30);
16888 : if (XWINT (x36, 0) != 27L)
16889 : return -1;
16890 : x37 = XVECEXP (x3, 0, 31);
16891 : if (XWINT (x37, 0) != 59L)
16892 : return -1;
16893 : switch (GET_MODE (operands[0]))
16894 : {
16895 : case E_V32HImode:
16896 : if (pattern1425 (x2,
16897 : E_V32HImode,
16898 : E_V64HImode) != 0
16899 : || !
16900 : #line 20006 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16901 : (TARGET_AVX512BW))
16902 : return -1;
16903 : return 8393; /* *avx512bw_interleave_lowv32hi */
16904 :
16905 : case E_V32HFmode:
16906 : if (pattern1425 (x2,
16907 : E_V32HFmode,
16908 : E_V64HFmode) != 0
16909 : || !
16910 : #line 20006 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16911 : (TARGET_AVX512BW))
16912 : return -1;
16913 : return 8395; /* *avx512bw_interleave_lowv32hf */
16914 :
16915 : case E_V32BFmode:
16916 : if (pattern1425 (x2,
16917 : E_V32BFmode,
16918 : E_V64BFmode) != 0
16919 : || !
16920 : #line 20006 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16921 : (TARGET_AVX512BW))
16922 : return -1;
16923 : return 8397; /* *avx512bw_interleave_lowv32bf */
16924 :
16925 : default:
16926 : return -1;
16927 : }
16928 :
16929 : default:
16930 : return -1;
16931 : }
16932 :
16933 : case 4L:
16934 : x7 = XVECEXP (x3, 0, 1);
16935 : if (XWINT (x7, 0) != 36L)
16936 : return -1;
16937 : x8 = XVECEXP (x3, 0, 2);
16938 : if (XWINT (x8, 0) != 5L)
16939 : return -1;
16940 : x9 = XVECEXP (x3, 0, 3);
16941 : if (XWINT (x9, 0) != 37L)
16942 : return -1;
16943 : x10 = XVECEXP (x3, 0, 4);
16944 : if (XWINT (x10, 0) != 6L)
16945 : return -1;
16946 : x11 = XVECEXP (x3, 0, 5);
16947 : if (XWINT (x11, 0) != 38L)
16948 : return -1;
16949 : x12 = XVECEXP (x3, 0, 6);
16950 : if (XWINT (x12, 0) != 7L)
16951 : return -1;
16952 : x13 = XVECEXP (x3, 0, 7);
16953 : if (XWINT (x13, 0) != 39L
16954 : || pattern1913 (x3) != 0)
16955 : return -1;
16956 : x14 = XVECEXP (x3, 0, 16);
16957 : if (XWINT (x14, 0) != 20L)
16958 : return -1;
16959 : x15 = XVECEXP (x3, 0, 17);
16960 : if (XWINT (x15, 0) != 52L)
16961 : return -1;
16962 : x16 = XVECEXP (x3, 0, 18);
16963 : if (XWINT (x16, 0) != 21L)
16964 : return -1;
16965 : x17 = XVECEXP (x3, 0, 19);
16966 : if (XWINT (x17, 0) != 53L)
16967 : return -1;
16968 : x18 = XVECEXP (x3, 0, 20);
16969 : if (XWINT (x18, 0) != 22L)
16970 : return -1;
16971 : x19 = XVECEXP (x3, 0, 21);
16972 : if (XWINT (x19, 0) != 54L)
16973 : return -1;
16974 : x20 = XVECEXP (x3, 0, 22);
16975 : if (XWINT (x20, 0) != 23L)
16976 : return -1;
16977 : x21 = XVECEXP (x3, 0, 23);
16978 : if (XWINT (x21, 0) != 55L
16979 : || pattern1919 (x3) != 0)
16980 : return -1;
16981 : switch (GET_MODE (operands[0]))
16982 : {
16983 : case E_V32HImode:
16984 : if (pattern1425 (x2,
16985 : E_V32HImode,
16986 : E_V64HImode) != 0
16987 : || !
16988 : #line 19938 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16989 : (TARGET_AVX512BW))
16990 : return -1;
16991 : return 8375; /* avx512bw_interleave_highv32hi */
16992 :
16993 : case E_V32HFmode:
16994 : if (pattern1425 (x2,
16995 : E_V32HFmode,
16996 : E_V64HFmode) != 0
16997 : || !
16998 : #line 19938 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16999 : (TARGET_AVX512BW))
17000 : return -1;
17001 : return 8377; /* avx512bw_interleave_highv32hf */
17002 :
17003 : case E_V32BFmode:
17004 : if (pattern1425 (x2,
17005 : E_V32BFmode,
17006 : E_V64BFmode) != 0
17007 : || !
17008 : #line 19938 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17009 : (TARGET_AVX512BW))
17010 : return -1;
17011 : return 8379; /* avx512bw_interleave_highv32bf */
17012 :
17013 : default:
17014 : return -1;
17015 : }
17016 :
17017 : default:
17018 : return -1;
17019 : }
17020 : }
17021 :
17022 : int
17023 : recog_298 (rtx x1 ATTRIBUTE_UNUSED,
17024 : rtx_insn *insn ATTRIBUTE_UNUSED,
17025 : int *pnum_clobbers ATTRIBUTE_UNUSED)
17026 : {
17027 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
17028 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
17029 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
17030 : int res ATTRIBUTE_UNUSED;
17031 : x2 = XEXP (x1, 1);
17032 : x3 = XEXP (x2, 1);
17033 : x4 = XVECEXP (x3, 0, 1);
17034 : operands[3] = x4;
17035 : x5 = XVECEXP (x3, 0, 2);
17036 : operands[4] = x5;
17037 : x6 = XVECEXP (x3, 0, 3);
17038 : operands[5] = x6;
17039 : x7 = XVECEXP (x3, 0, 5);
17040 : operands[7] = x7;
17041 : x8 = XVECEXP (x3, 0, 6);
17042 : operands[8] = x8;
17043 : x9 = XVECEXP (x3, 0, 7);
17044 : operands[9] = x9;
17045 : x10 = XVECEXP (x3, 0, 8);
17046 : operands[10] = x10;
17047 : x11 = XVECEXP (x3, 0, 9);
17048 : operands[11] = x11;
17049 : x12 = XVECEXP (x3, 0, 10);
17050 : operands[12] = x12;
17051 : x13 = XVECEXP (x3, 0, 11);
17052 : operands[13] = x13;
17053 : x14 = XVECEXP (x3, 0, 12);
17054 : operands[14] = x14;
17055 : x15 = XVECEXP (x3, 0, 13);
17056 : operands[15] = x15;
17057 : x16 = XVECEXP (x3, 0, 14);
17058 : operands[16] = x16;
17059 : x17 = XVECEXP (x3, 0, 15);
17060 : operands[17] = x17;
17061 : switch (GET_MODE (operands[0]))
17062 : {
17063 : case E_V16SFmode:
17064 : if (!register_operand (operands[0], E_V16SFmode)
17065 : || GET_MODE (x2) != E_V16SFmode
17066 : || !register_operand (operands[1], E_V16SFmode)
17067 : || pattern1861 () != 0
17068 : || !
17069 : #line 20805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17070 : (TARGET_AVX512F
17071 : && (INTVAL (operands[2]) & 3) == 0
17072 : && INTVAL (operands[2]) == INTVAL (operands[3]) - 1
17073 : && INTVAL (operands[2]) == INTVAL (operands[4]) - 2
17074 : && INTVAL (operands[2]) == INTVAL (operands[5]) - 3
17075 : && (INTVAL (operands[6]) & 3) == 0
17076 : && INTVAL (operands[6]) == INTVAL (operands[7]) - 1
17077 : && INTVAL (operands[6]) == INTVAL (operands[8]) - 2
17078 : && INTVAL (operands[6]) == INTVAL (operands[9]) - 3
17079 : && (INTVAL (operands[10]) & 3) == 0
17080 : && INTVAL (operands[10]) == INTVAL (operands[11]) - 1
17081 : && INTVAL (operands[10]) == INTVAL (operands[12]) - 2
17082 : && INTVAL (operands[10]) == INTVAL (operands[13]) - 3
17083 : && (INTVAL (operands[14]) & 3) == 0
17084 : && INTVAL (operands[14]) == INTVAL (operands[15]) - 1
17085 : && INTVAL (operands[14]) == INTVAL (operands[16]) - 2
17086 : && INTVAL (operands[14]) == INTVAL (operands[17]) - 3))
17087 : return -1;
17088 : return 8477; /* *avx512f_shuf_f32x4_1_1 */
17089 :
17090 : case E_V16SImode:
17091 : if (!register_operand (operands[0], E_V16SImode)
17092 : || GET_MODE (x2) != E_V16SImode)
17093 : return -1;
17094 : if (register_operand (operands[1], E_V16SImode)
17095 : && pattern1861 () == 0
17096 : &&
17097 : #line 20805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17098 : (TARGET_AVX512F
17099 : && (INTVAL (operands[2]) & 3) == 0
17100 : && INTVAL (operands[2]) == INTVAL (operands[3]) - 1
17101 : && INTVAL (operands[2]) == INTVAL (operands[4]) - 2
17102 : && INTVAL (operands[2]) == INTVAL (operands[5]) - 3
17103 : && (INTVAL (operands[6]) & 3) == 0
17104 : && INTVAL (operands[6]) == INTVAL (operands[7]) - 1
17105 : && INTVAL (operands[6]) == INTVAL (operands[8]) - 2
17106 : && INTVAL (operands[6]) == INTVAL (operands[9]) - 3
17107 : && (INTVAL (operands[10]) & 3) == 0
17108 : && INTVAL (operands[10]) == INTVAL (operands[11]) - 1
17109 : && INTVAL (operands[10]) == INTVAL (operands[12]) - 2
17110 : && INTVAL (operands[10]) == INTVAL (operands[13]) - 3
17111 : && (INTVAL (operands[14]) & 3) == 0
17112 : && INTVAL (operands[14]) == INTVAL (operands[15]) - 1
17113 : && INTVAL (operands[14]) == INTVAL (operands[16]) - 2
17114 : && INTVAL (operands[14]) == INTVAL (operands[17]) - 3))
17115 : return 8479; /* *avx512f_shuf_i32x4_1_1 */
17116 : if (!nonimmediate_operand (operands[1], E_V16SImode)
17117 : || pattern1728 () != 0
17118 : || !const_8_to_11_operand (operands[10], E_VOIDmode)
17119 : || !const_8_to_11_operand (operands[11], E_VOIDmode)
17120 : || !const_8_to_11_operand (operands[12], E_VOIDmode)
17121 : || !const_8_to_11_operand (operands[13], E_VOIDmode)
17122 : || !const_12_to_15_operand (operands[14], E_VOIDmode)
17123 : || !const_12_to_15_operand (operands[15], E_VOIDmode)
17124 : || !const_12_to_15_operand (operands[16], E_VOIDmode)
17125 : || !const_12_to_15_operand (operands[17], E_VOIDmode)
17126 : || !
17127 : #line 20887 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17128 : (TARGET_AVX512F
17129 : && INTVAL (operands[2]) + 4 == INTVAL (operands[6])
17130 : && INTVAL (operands[3]) + 4 == INTVAL (operands[7])
17131 : && INTVAL (operands[4]) + 4 == INTVAL (operands[8])
17132 : && INTVAL (operands[5]) + 4 == INTVAL (operands[9])
17133 : && INTVAL (operands[2]) + 8 == INTVAL (operands[10])
17134 : && INTVAL (operands[3]) + 8 == INTVAL (operands[11])
17135 : && INTVAL (operands[4]) + 8 == INTVAL (operands[12])
17136 : && INTVAL (operands[5]) + 8 == INTVAL (operands[13])
17137 : && INTVAL (operands[2]) + 12 == INTVAL (operands[14])
17138 : && INTVAL (operands[3]) + 12 == INTVAL (operands[15])
17139 : && INTVAL (operands[4]) + 12 == INTVAL (operands[16])
17140 : && INTVAL (operands[5]) + 12 == INTVAL (operands[17])))
17141 : return -1;
17142 : return 8481; /* avx512f_pshufd_1 */
17143 :
17144 : default:
17145 : return -1;
17146 : }
17147 : }
17148 :
17149 : int
17150 : recog_309 (rtx x1 ATTRIBUTE_UNUSED,
17151 : rtx_insn *insn ATTRIBUTE_UNUSED,
17152 : int *pnum_clobbers ATTRIBUTE_UNUSED)
17153 : {
17154 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
17155 : rtx x2, x3, x4;
17156 : int res ATTRIBUTE_UNUSED;
17157 : x2 = XEXP (x1, 1);
17158 : x3 = XEXP (x2, 0);
17159 : x4 = XEXP (x3, 0);
17160 : switch (GET_CODE (x4))
17161 : {
17162 : case REG:
17163 : case SUBREG:
17164 : case MEM:
17165 : case NOT:
17166 : switch (pattern535 (x2))
17167 : {
17168 : case 0:
17169 : if (!(
17170 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17171 : ((64 == 64 || TARGET_AVX512VL
17172 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17173 : && ix86_pre_reload_split ()
17174 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17175 : STRIP_UNARY (operands[4]))
17176 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17177 : STRIP_UNARY (operands[4]))
17178 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17179 : STRIP_UNARY (operands[3]))
17180 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17181 : STRIP_UNARY (operands[3])))) &&
17182 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17183 : (TARGET_AVX512F)))
17184 : return -1;
17185 : return 5556; /* *avx512bw_vpternlogv64qi_1 */
17186 :
17187 : case 1:
17188 : if (!(
17189 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17190 : ((32 == 64 || TARGET_AVX512VL
17191 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17192 : && ix86_pre_reload_split ()
17193 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17194 : STRIP_UNARY (operands[4]))
17195 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17196 : STRIP_UNARY (operands[4]))
17197 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17198 : STRIP_UNARY (operands[3]))
17199 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17200 : STRIP_UNARY (operands[3])))) &&
17201 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17202 : (TARGET_AVX)))
17203 : return -1;
17204 : return 5583; /* *avx512vl_vpternlogv32qi_1 */
17205 :
17206 : case 2:
17207 : if (!
17208 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17209 : ((16 == 64 || TARGET_AVX512VL
17210 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17211 : && ix86_pre_reload_split ()
17212 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17213 : STRIP_UNARY (operands[4]))
17214 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17215 : STRIP_UNARY (operands[4]))
17216 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17217 : STRIP_UNARY (operands[3]))
17218 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17219 : STRIP_UNARY (operands[3])))))
17220 : return -1;
17221 : return 5610; /* *avx512vl_vpternlogv16qi_1 */
17222 :
17223 : case 3:
17224 : if (!(
17225 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17226 : ((64 == 64 || TARGET_AVX512VL
17227 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17228 : && ix86_pre_reload_split ()
17229 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17230 : STRIP_UNARY (operands[4]))
17231 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17232 : STRIP_UNARY (operands[4]))
17233 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17234 : STRIP_UNARY (operands[3]))
17235 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17236 : STRIP_UNARY (operands[3])))) &&
17237 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17238 : (TARGET_AVX512F)))
17239 : return -1;
17240 : return 5637; /* *avx512bw_vpternlogv32hi_1 */
17241 :
17242 : case 4:
17243 : if (!(
17244 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17245 : ((32 == 64 || TARGET_AVX512VL
17246 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17247 : && ix86_pre_reload_split ()
17248 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17249 : STRIP_UNARY (operands[4]))
17250 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17251 : STRIP_UNARY (operands[4]))
17252 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17253 : STRIP_UNARY (operands[3]))
17254 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17255 : STRIP_UNARY (operands[3])))) &&
17256 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17257 : (TARGET_AVX)))
17258 : return -1;
17259 : return 5664; /* *avx512vl_vpternlogv16hi_1 */
17260 :
17261 : case 5:
17262 : if (!
17263 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17264 : ((16 == 64 || TARGET_AVX512VL
17265 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17266 : && ix86_pre_reload_split ()
17267 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17268 : STRIP_UNARY (operands[4]))
17269 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17270 : STRIP_UNARY (operands[4]))
17271 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17272 : STRIP_UNARY (operands[3]))
17273 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17274 : STRIP_UNARY (operands[3])))))
17275 : return -1;
17276 : return 5691; /* *avx512vl_vpternlogv8hi_1 */
17277 :
17278 : case 6:
17279 : if (!(
17280 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17281 : ((64 == 64 || TARGET_AVX512VL
17282 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17283 : && ix86_pre_reload_split ()
17284 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17285 : STRIP_UNARY (operands[4]))
17286 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17287 : STRIP_UNARY (operands[4]))
17288 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17289 : STRIP_UNARY (operands[3]))
17290 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17291 : STRIP_UNARY (operands[3])))) &&
17292 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17293 : (TARGET_AVX512F)))
17294 : return -1;
17295 : return 5718; /* *avx512f_vpternlogv16si_1 */
17296 :
17297 : case 7:
17298 : if (!(
17299 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17300 : ((32 == 64 || TARGET_AVX512VL
17301 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17302 : && ix86_pre_reload_split ()
17303 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17304 : STRIP_UNARY (operands[4]))
17305 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17306 : STRIP_UNARY (operands[4]))
17307 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17308 : STRIP_UNARY (operands[3]))
17309 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17310 : STRIP_UNARY (operands[3])))) &&
17311 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17312 : (TARGET_AVX)))
17313 : return -1;
17314 : return 5745; /* *avx512vl_vpternlogv8si_1 */
17315 :
17316 : case 8:
17317 : if (!
17318 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17319 : ((16 == 64 || TARGET_AVX512VL
17320 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17321 : && ix86_pre_reload_split ()
17322 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17323 : STRIP_UNARY (operands[4]))
17324 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17325 : STRIP_UNARY (operands[4]))
17326 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17327 : STRIP_UNARY (operands[3]))
17328 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17329 : STRIP_UNARY (operands[3])))))
17330 : return -1;
17331 : return 5772; /* *avx512vl_vpternlogv4si_1 */
17332 :
17333 : case 9:
17334 : if (!(
17335 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17336 : ((64 == 64 || TARGET_AVX512VL
17337 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17338 : && ix86_pre_reload_split ()
17339 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17340 : STRIP_UNARY (operands[4]))
17341 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17342 : STRIP_UNARY (operands[4]))
17343 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17344 : STRIP_UNARY (operands[3]))
17345 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17346 : STRIP_UNARY (operands[3])))) &&
17347 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17348 : (TARGET_AVX512F)))
17349 : return -1;
17350 : return 5799; /* *avx512f_vpternlogv8di_1 */
17351 :
17352 : case 10:
17353 : if (!(
17354 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17355 : ((32 == 64 || TARGET_AVX512VL
17356 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17357 : && ix86_pre_reload_split ()
17358 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17359 : STRIP_UNARY (operands[4]))
17360 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17361 : STRIP_UNARY (operands[4]))
17362 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17363 : STRIP_UNARY (operands[3]))
17364 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17365 : STRIP_UNARY (operands[3])))) &&
17366 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17367 : (TARGET_AVX)))
17368 : return -1;
17369 : return 5826; /* *avx512vl_vpternlogv4di_1 */
17370 :
17371 : case 11:
17372 : if (!
17373 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17374 : ((16 == 64 || TARGET_AVX512VL
17375 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17376 : && ix86_pre_reload_split ()
17377 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17378 : STRIP_UNARY (operands[4]))
17379 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17380 : STRIP_UNARY (operands[4]))
17381 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17382 : STRIP_UNARY (operands[3]))
17383 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17384 : STRIP_UNARY (operands[3])))))
17385 : return -1;
17386 : return 5853; /* *avx512vl_vpternlogv2di_1 */
17387 :
17388 : case 12:
17389 : if (!(
17390 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17391 : ((64 == 64 || TARGET_AVX512VL
17392 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17393 : && ix86_pre_reload_split ()
17394 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17395 : STRIP_UNARY (operands[4]))
17396 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17397 : STRIP_UNARY (operands[4]))
17398 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17399 : STRIP_UNARY (operands[3]))
17400 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17401 : STRIP_UNARY (operands[3])))) &&
17402 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17403 : (TARGET_AVX512F)))
17404 : return -1;
17405 : return 5559; /* *avx512bw_vpternlogv64qi_1 */
17406 :
17407 : case 13:
17408 : if (!(
17409 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17410 : ((32 == 64 || TARGET_AVX512VL
17411 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17412 : && ix86_pre_reload_split ()
17413 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17414 : STRIP_UNARY (operands[4]))
17415 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17416 : STRIP_UNARY (operands[4]))
17417 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17418 : STRIP_UNARY (operands[3]))
17419 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17420 : STRIP_UNARY (operands[3])))) &&
17421 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17422 : (TARGET_AVX)))
17423 : return -1;
17424 : return 5586; /* *avx512vl_vpternlogv32qi_1 */
17425 :
17426 : case 14:
17427 : if (!
17428 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17429 : ((16 == 64 || TARGET_AVX512VL
17430 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17431 : && ix86_pre_reload_split ()
17432 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17433 : STRIP_UNARY (operands[4]))
17434 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17435 : STRIP_UNARY (operands[4]))
17436 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17437 : STRIP_UNARY (operands[3]))
17438 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17439 : STRIP_UNARY (operands[3])))))
17440 : return -1;
17441 : return 5613; /* *avx512vl_vpternlogv16qi_1 */
17442 :
17443 : case 15:
17444 : if (!(
17445 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17446 : ((64 == 64 || TARGET_AVX512VL
17447 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17448 : && ix86_pre_reload_split ()
17449 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17450 : STRIP_UNARY (operands[4]))
17451 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17452 : STRIP_UNARY (operands[4]))
17453 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17454 : STRIP_UNARY (operands[3]))
17455 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17456 : STRIP_UNARY (operands[3])))) &&
17457 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17458 : (TARGET_AVX512F)))
17459 : return -1;
17460 : return 5640; /* *avx512bw_vpternlogv32hi_1 */
17461 :
17462 : case 16:
17463 : if (!(
17464 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17465 : ((32 == 64 || TARGET_AVX512VL
17466 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17467 : && ix86_pre_reload_split ()
17468 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17469 : STRIP_UNARY (operands[4]))
17470 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17471 : STRIP_UNARY (operands[4]))
17472 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17473 : STRIP_UNARY (operands[3]))
17474 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17475 : STRIP_UNARY (operands[3])))) &&
17476 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17477 : (TARGET_AVX)))
17478 : return -1;
17479 : return 5667; /* *avx512vl_vpternlogv16hi_1 */
17480 :
17481 : case 17:
17482 : if (!
17483 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17484 : ((16 == 64 || TARGET_AVX512VL
17485 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17486 : && ix86_pre_reload_split ()
17487 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17488 : STRIP_UNARY (operands[4]))
17489 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17490 : STRIP_UNARY (operands[4]))
17491 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17492 : STRIP_UNARY (operands[3]))
17493 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17494 : STRIP_UNARY (operands[3])))))
17495 : return -1;
17496 : return 5694; /* *avx512vl_vpternlogv8hi_1 */
17497 :
17498 : case 18:
17499 : if (!(
17500 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17501 : ((64 == 64 || TARGET_AVX512VL
17502 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17503 : && ix86_pre_reload_split ()
17504 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17505 : STRIP_UNARY (operands[4]))
17506 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17507 : STRIP_UNARY (operands[4]))
17508 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17509 : STRIP_UNARY (operands[3]))
17510 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17511 : STRIP_UNARY (operands[3])))) &&
17512 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17513 : (TARGET_AVX512F)))
17514 : return -1;
17515 : return 5721; /* *avx512f_vpternlogv16si_1 */
17516 :
17517 : case 19:
17518 : if (!(
17519 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17520 : ((32 == 64 || TARGET_AVX512VL
17521 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17522 : && ix86_pre_reload_split ()
17523 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17524 : STRIP_UNARY (operands[4]))
17525 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17526 : STRIP_UNARY (operands[4]))
17527 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17528 : STRIP_UNARY (operands[3]))
17529 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17530 : STRIP_UNARY (operands[3])))) &&
17531 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17532 : (TARGET_AVX)))
17533 : return -1;
17534 : return 5748; /* *avx512vl_vpternlogv8si_1 */
17535 :
17536 : case 20:
17537 : if (!
17538 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17539 : ((16 == 64 || TARGET_AVX512VL
17540 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17541 : && ix86_pre_reload_split ()
17542 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17543 : STRIP_UNARY (operands[4]))
17544 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17545 : STRIP_UNARY (operands[4]))
17546 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17547 : STRIP_UNARY (operands[3]))
17548 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17549 : STRIP_UNARY (operands[3])))))
17550 : return -1;
17551 : return 5775; /* *avx512vl_vpternlogv4si_1 */
17552 :
17553 : case 21:
17554 : if (!(
17555 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17556 : ((64 == 64 || TARGET_AVX512VL
17557 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17558 : && ix86_pre_reload_split ()
17559 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17560 : STRIP_UNARY (operands[4]))
17561 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17562 : STRIP_UNARY (operands[4]))
17563 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17564 : STRIP_UNARY (operands[3]))
17565 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17566 : STRIP_UNARY (operands[3])))) &&
17567 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17568 : (TARGET_AVX512F)))
17569 : return -1;
17570 : return 5802; /* *avx512f_vpternlogv8di_1 */
17571 :
17572 : case 22:
17573 : if (!(
17574 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17575 : ((32 == 64 || TARGET_AVX512VL
17576 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17577 : && ix86_pre_reload_split ()
17578 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17579 : STRIP_UNARY (operands[4]))
17580 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17581 : STRIP_UNARY (operands[4]))
17582 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17583 : STRIP_UNARY (operands[3]))
17584 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17585 : STRIP_UNARY (operands[3])))) &&
17586 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17587 : (TARGET_AVX)))
17588 : return -1;
17589 : return 5829; /* *avx512vl_vpternlogv4di_1 */
17590 :
17591 : case 23:
17592 : if (!
17593 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17594 : ((16 == 64 || TARGET_AVX512VL
17595 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17596 : && ix86_pre_reload_split ()
17597 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17598 : STRIP_UNARY (operands[4]))
17599 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17600 : STRIP_UNARY (operands[4]))
17601 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17602 : STRIP_UNARY (operands[3]))
17603 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17604 : STRIP_UNARY (operands[3])))))
17605 : return -1;
17606 : return 5856; /* *avx512vl_vpternlogv2di_1 */
17607 :
17608 : case 24:
17609 : if (!(
17610 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17611 : ((64 == 64 || TARGET_AVX512VL
17612 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17613 : && ix86_pre_reload_split ()
17614 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17615 : STRIP_UNARY (operands[4]))
17616 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17617 : STRIP_UNARY (operands[4]))
17618 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17619 : STRIP_UNARY (operands[3]))
17620 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17621 : STRIP_UNARY (operands[3])))) &&
17622 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17623 : (TARGET_AVX512F)))
17624 : return -1;
17625 : return 5562; /* *avx512bw_vpternlogv64qi_1 */
17626 :
17627 : case 25:
17628 : if (!(
17629 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17630 : ((32 == 64 || TARGET_AVX512VL
17631 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17632 : && ix86_pre_reload_split ()
17633 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17634 : STRIP_UNARY (operands[4]))
17635 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17636 : STRIP_UNARY (operands[4]))
17637 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17638 : STRIP_UNARY (operands[3]))
17639 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17640 : STRIP_UNARY (operands[3])))) &&
17641 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17642 : (TARGET_AVX)))
17643 : return -1;
17644 : return 5589; /* *avx512vl_vpternlogv32qi_1 */
17645 :
17646 : case 26:
17647 : if (!
17648 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17649 : ((16 == 64 || TARGET_AVX512VL
17650 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17651 : && ix86_pre_reload_split ()
17652 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17653 : STRIP_UNARY (operands[4]))
17654 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17655 : STRIP_UNARY (operands[4]))
17656 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17657 : STRIP_UNARY (operands[3]))
17658 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17659 : STRIP_UNARY (operands[3])))))
17660 : return -1;
17661 : return 5616; /* *avx512vl_vpternlogv16qi_1 */
17662 :
17663 : case 27:
17664 : if (!(
17665 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17666 : ((64 == 64 || TARGET_AVX512VL
17667 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17668 : && ix86_pre_reload_split ()
17669 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17670 : STRIP_UNARY (operands[4]))
17671 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17672 : STRIP_UNARY (operands[4]))
17673 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17674 : STRIP_UNARY (operands[3]))
17675 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17676 : STRIP_UNARY (operands[3])))) &&
17677 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17678 : (TARGET_AVX512F)))
17679 : return -1;
17680 : return 5643; /* *avx512bw_vpternlogv32hi_1 */
17681 :
17682 : case 28:
17683 : if (!(
17684 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17685 : ((32 == 64 || TARGET_AVX512VL
17686 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17687 : && ix86_pre_reload_split ()
17688 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17689 : STRIP_UNARY (operands[4]))
17690 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17691 : STRIP_UNARY (operands[4]))
17692 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17693 : STRIP_UNARY (operands[3]))
17694 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17695 : STRIP_UNARY (operands[3])))) &&
17696 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17697 : (TARGET_AVX)))
17698 : return -1;
17699 : return 5670; /* *avx512vl_vpternlogv16hi_1 */
17700 :
17701 : case 29:
17702 : if (!
17703 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17704 : ((16 == 64 || TARGET_AVX512VL
17705 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17706 : && ix86_pre_reload_split ()
17707 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17708 : STRIP_UNARY (operands[4]))
17709 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17710 : STRIP_UNARY (operands[4]))
17711 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17712 : STRIP_UNARY (operands[3]))
17713 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17714 : STRIP_UNARY (operands[3])))))
17715 : return -1;
17716 : return 5697; /* *avx512vl_vpternlogv8hi_1 */
17717 :
17718 : case 30:
17719 : if (!(
17720 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17721 : ((64 == 64 || TARGET_AVX512VL
17722 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17723 : && ix86_pre_reload_split ()
17724 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17725 : STRIP_UNARY (operands[4]))
17726 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17727 : STRIP_UNARY (operands[4]))
17728 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17729 : STRIP_UNARY (operands[3]))
17730 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17731 : STRIP_UNARY (operands[3])))) &&
17732 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17733 : (TARGET_AVX512F)))
17734 : return -1;
17735 : return 5724; /* *avx512f_vpternlogv16si_1 */
17736 :
17737 : case 31:
17738 : if (!(
17739 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17740 : ((32 == 64 || TARGET_AVX512VL
17741 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17742 : && ix86_pre_reload_split ()
17743 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17744 : STRIP_UNARY (operands[4]))
17745 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17746 : STRIP_UNARY (operands[4]))
17747 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17748 : STRIP_UNARY (operands[3]))
17749 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17750 : STRIP_UNARY (operands[3])))) &&
17751 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17752 : (TARGET_AVX)))
17753 : return -1;
17754 : return 5751; /* *avx512vl_vpternlogv8si_1 */
17755 :
17756 : case 32:
17757 : if (!
17758 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17759 : ((16 == 64 || TARGET_AVX512VL
17760 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17761 : && ix86_pre_reload_split ()
17762 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17763 : STRIP_UNARY (operands[4]))
17764 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17765 : STRIP_UNARY (operands[4]))
17766 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17767 : STRIP_UNARY (operands[3]))
17768 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17769 : STRIP_UNARY (operands[3])))))
17770 : return -1;
17771 : return 5778; /* *avx512vl_vpternlogv4si_1 */
17772 :
17773 : case 33:
17774 : if (!(
17775 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17776 : ((64 == 64 || TARGET_AVX512VL
17777 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17778 : && ix86_pre_reload_split ()
17779 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17780 : STRIP_UNARY (operands[4]))
17781 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17782 : STRIP_UNARY (operands[4]))
17783 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17784 : STRIP_UNARY (operands[3]))
17785 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17786 : STRIP_UNARY (operands[3])))) &&
17787 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17788 : (TARGET_AVX512F)))
17789 : return -1;
17790 : return 5805; /* *avx512f_vpternlogv8di_1 */
17791 :
17792 : case 34:
17793 : if (!(
17794 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17795 : ((32 == 64 || TARGET_AVX512VL
17796 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17797 : && ix86_pre_reload_split ()
17798 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17799 : STRIP_UNARY (operands[4]))
17800 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17801 : STRIP_UNARY (operands[4]))
17802 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17803 : STRIP_UNARY (operands[3]))
17804 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17805 : STRIP_UNARY (operands[3])))) &&
17806 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17807 : (TARGET_AVX)))
17808 : return -1;
17809 : return 5832; /* *avx512vl_vpternlogv4di_1 */
17810 :
17811 : case 35:
17812 : if (!
17813 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17814 : ((16 == 64 || TARGET_AVX512VL
17815 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17816 : && ix86_pre_reload_split ()
17817 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17818 : STRIP_UNARY (operands[4]))
17819 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17820 : STRIP_UNARY (operands[4]))
17821 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17822 : STRIP_UNARY (operands[3]))
17823 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17824 : STRIP_UNARY (operands[3])))))
17825 : return -1;
17826 : return 5859; /* *avx512vl_vpternlogv2di_1 */
17827 :
17828 : case 36:
17829 : if (!(
17830 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17831 : ((64 == 64 || TARGET_AVX512VL
17832 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17833 : && ix86_pre_reload_split ()) &&
17834 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17835 : (TARGET_AVX512F)))
17836 : return -1;
17837 : return 6840; /* *avx512bw_vpternlogv64qi_3 */
17838 :
17839 : case 37:
17840 : if (!(
17841 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17842 : ((32 == 64 || TARGET_AVX512VL
17843 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17844 : && ix86_pre_reload_split ()) &&
17845 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17846 : (TARGET_AVX)))
17847 : return -1;
17848 : return 6849; /* *avx512vl_vpternlogv32qi_3 */
17849 :
17850 : case 38:
17851 : if (!
17852 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17853 : ((16 == 64 || TARGET_AVX512VL
17854 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17855 : && ix86_pre_reload_split ()))
17856 : return -1;
17857 : return 6858; /* *avx512vl_vpternlogv16qi_3 */
17858 :
17859 : case 39:
17860 : if (!(
17861 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17862 : ((64 == 64 || TARGET_AVX512VL
17863 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17864 : && ix86_pre_reload_split ()) &&
17865 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17866 : (TARGET_AVX512F)))
17867 : return -1;
17868 : return 6867; /* *avx512bw_vpternlogv32hi_3 */
17869 :
17870 : case 40:
17871 : if (!(
17872 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17873 : ((32 == 64 || TARGET_AVX512VL
17874 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17875 : && ix86_pre_reload_split ()) &&
17876 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17877 : (TARGET_AVX)))
17878 : return -1;
17879 : return 6876; /* *avx512vl_vpternlogv16hi_3 */
17880 :
17881 : case 41:
17882 : if (!
17883 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17884 : ((16 == 64 || TARGET_AVX512VL
17885 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17886 : && ix86_pre_reload_split ()))
17887 : return -1;
17888 : return 6885; /* *avx512vl_vpternlogv8hi_3 */
17889 :
17890 : case 42:
17891 : if (!(
17892 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17893 : ((64 == 64 || TARGET_AVX512VL
17894 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17895 : && ix86_pre_reload_split ()) &&
17896 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17897 : (TARGET_AVX512F)))
17898 : return -1;
17899 : return 6894; /* *avx512f_vpternlogv16si_3 */
17900 :
17901 : case 43:
17902 : if (!(
17903 : #line 14271 "/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 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17908 : (TARGET_AVX)))
17909 : return -1;
17910 : return 6903; /* *avx512vl_vpternlogv8si_3 */
17911 :
17912 : case 44:
17913 : if (!
17914 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17915 : ((16 == 64 || TARGET_AVX512VL
17916 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17917 : && ix86_pre_reload_split ()))
17918 : return -1;
17919 : return 6912; /* *avx512vl_vpternlogv4si_3 */
17920 :
17921 : case 45:
17922 : if (!(
17923 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17924 : ((64 == 64 || TARGET_AVX512VL
17925 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17926 : && ix86_pre_reload_split ()) &&
17927 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17928 : (TARGET_AVX512F)))
17929 : return -1;
17930 : return 6921; /* *avx512f_vpternlogv8di_3 */
17931 :
17932 : case 46:
17933 : if (!(
17934 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17935 : ((32 == 64 || TARGET_AVX512VL
17936 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17937 : && ix86_pre_reload_split ()) &&
17938 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17939 : (TARGET_AVX)))
17940 : return -1;
17941 : return 6930; /* *avx512vl_vpternlogv4di_3 */
17942 :
17943 : case 47:
17944 : if (!
17945 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17946 : ((16 == 64 || TARGET_AVX512VL
17947 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17948 : && ix86_pre_reload_split ()))
17949 : return -1;
17950 : return 6939; /* *avx512vl_vpternlogv2di_3 */
17951 :
17952 : default:
17953 : return -1;
17954 : }
17955 :
17956 : case AND:
17957 : switch (pattern537 (x2))
17958 : {
17959 : case 0:
17960 : if (!(
17961 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17962 : ((64 == 64 || TARGET_AVX512VL
17963 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17964 : && ix86_pre_reload_split ()
17965 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17966 : STRIP_UNARY (operands[4]))
17967 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17968 : STRIP_UNARY (operands[4]))
17969 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17970 : STRIP_UNARY (operands[3]))
17971 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17972 : STRIP_UNARY (operands[3])))) &&
17973 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17974 : (TARGET_AVX512F)))
17975 : return -1;
17976 : return 6204; /* *avx512bw_vpternlogv64qi_2 */
17977 :
17978 : case 1:
17979 : if (!(
17980 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17981 : ((32 == 64 || TARGET_AVX512VL
17982 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17983 : && ix86_pre_reload_split ()
17984 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17985 : STRIP_UNARY (operands[4]))
17986 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17987 : STRIP_UNARY (operands[4]))
17988 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17989 : STRIP_UNARY (operands[3]))
17990 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17991 : STRIP_UNARY (operands[3])))) &&
17992 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17993 : (TARGET_AVX)))
17994 : return -1;
17995 : return 6231; /* *avx512vl_vpternlogv32qi_2 */
17996 :
17997 : case 2:
17998 : if (!
17999 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18000 : ((16 == 64 || TARGET_AVX512VL
18001 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18002 : && ix86_pre_reload_split ()
18003 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18004 : STRIP_UNARY (operands[4]))
18005 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18006 : STRIP_UNARY (operands[4]))
18007 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18008 : STRIP_UNARY (operands[3]))
18009 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18010 : STRIP_UNARY (operands[3])))))
18011 : return -1;
18012 : return 6258; /* *avx512vl_vpternlogv16qi_2 */
18013 :
18014 : case 3:
18015 : if (!(
18016 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18017 : ((64 == 64 || TARGET_AVX512VL
18018 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18019 : && ix86_pre_reload_split ()
18020 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18021 : STRIP_UNARY (operands[4]))
18022 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18023 : STRIP_UNARY (operands[4]))
18024 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18025 : STRIP_UNARY (operands[3]))
18026 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18027 : STRIP_UNARY (operands[3])))) &&
18028 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18029 : (TARGET_AVX512F)))
18030 : return -1;
18031 : return 6285; /* *avx512bw_vpternlogv32hi_2 */
18032 :
18033 : case 4:
18034 : if (!(
18035 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18036 : ((32 == 64 || TARGET_AVX512VL
18037 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18038 : && ix86_pre_reload_split ()
18039 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18040 : STRIP_UNARY (operands[4]))
18041 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18042 : STRIP_UNARY (operands[4]))
18043 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18044 : STRIP_UNARY (operands[3]))
18045 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18046 : STRIP_UNARY (operands[3])))) &&
18047 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18048 : (TARGET_AVX)))
18049 : return -1;
18050 : return 6312; /* *avx512vl_vpternlogv16hi_2 */
18051 :
18052 : case 5:
18053 : if (!
18054 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18055 : ((16 == 64 || TARGET_AVX512VL
18056 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18057 : && ix86_pre_reload_split ()
18058 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18059 : STRIP_UNARY (operands[4]))
18060 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18061 : STRIP_UNARY (operands[4]))
18062 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18063 : STRIP_UNARY (operands[3]))
18064 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18065 : STRIP_UNARY (operands[3])))))
18066 : return -1;
18067 : return 6339; /* *avx512vl_vpternlogv8hi_2 */
18068 :
18069 : case 6:
18070 : if (!(
18071 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18072 : ((64 == 64 || TARGET_AVX512VL
18073 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18074 : && ix86_pre_reload_split ()
18075 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18076 : STRIP_UNARY (operands[4]))
18077 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18078 : STRIP_UNARY (operands[4]))
18079 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18080 : STRIP_UNARY (operands[3]))
18081 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18082 : STRIP_UNARY (operands[3])))) &&
18083 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18084 : (TARGET_AVX512F)))
18085 : return -1;
18086 : return 6366; /* *avx512f_vpternlogv16si_2 */
18087 :
18088 : case 7:
18089 : if (!(
18090 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18091 : ((32 == 64 || TARGET_AVX512VL
18092 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18093 : && ix86_pre_reload_split ()
18094 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18095 : STRIP_UNARY (operands[4]))
18096 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18097 : STRIP_UNARY (operands[4]))
18098 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18099 : STRIP_UNARY (operands[3]))
18100 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18101 : STRIP_UNARY (operands[3])))) &&
18102 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18103 : (TARGET_AVX)))
18104 : return -1;
18105 : return 6393; /* *avx512vl_vpternlogv8si_2 */
18106 :
18107 : case 8:
18108 : if (!
18109 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18110 : ((16 == 64 || TARGET_AVX512VL
18111 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18112 : && ix86_pre_reload_split ()
18113 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18114 : STRIP_UNARY (operands[4]))
18115 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18116 : STRIP_UNARY (operands[4]))
18117 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18118 : STRIP_UNARY (operands[3]))
18119 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18120 : STRIP_UNARY (operands[3])))))
18121 : return -1;
18122 : return 6420; /* *avx512vl_vpternlogv4si_2 */
18123 :
18124 : case 9:
18125 : if (!(
18126 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18127 : ((64 == 64 || TARGET_AVX512VL
18128 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18129 : && ix86_pre_reload_split ()
18130 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18131 : STRIP_UNARY (operands[4]))
18132 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18133 : STRIP_UNARY (operands[4]))
18134 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18135 : STRIP_UNARY (operands[3]))
18136 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18137 : STRIP_UNARY (operands[3])))) &&
18138 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18139 : (TARGET_AVX512F)))
18140 : return -1;
18141 : return 6447; /* *avx512f_vpternlogv8di_2 */
18142 :
18143 : case 10:
18144 : if (!(
18145 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18146 : ((32 == 64 || TARGET_AVX512VL
18147 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18148 : && ix86_pre_reload_split ()
18149 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18150 : STRIP_UNARY (operands[4]))
18151 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18152 : STRIP_UNARY (operands[4]))
18153 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18154 : STRIP_UNARY (operands[3]))
18155 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18156 : STRIP_UNARY (operands[3])))) &&
18157 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18158 : (TARGET_AVX)))
18159 : return -1;
18160 : return 6474; /* *avx512vl_vpternlogv4di_2 */
18161 :
18162 : case 11:
18163 : if (!
18164 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18165 : ((16 == 64 || TARGET_AVX512VL
18166 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18167 : && ix86_pre_reload_split ()
18168 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18169 : STRIP_UNARY (operands[4]))
18170 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18171 : STRIP_UNARY (operands[4]))
18172 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18173 : STRIP_UNARY (operands[3]))
18174 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18175 : STRIP_UNARY (operands[3])))))
18176 : return -1;
18177 : return 6501; /* *avx512vl_vpternlogv2di_2 */
18178 :
18179 : default:
18180 : return -1;
18181 : }
18182 :
18183 : case IOR:
18184 : switch (pattern537 (x2))
18185 : {
18186 : case 0:
18187 : if (!(
18188 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18189 : ((64 == 64 || TARGET_AVX512VL
18190 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18191 : && ix86_pre_reload_split ()
18192 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18193 : STRIP_UNARY (operands[4]))
18194 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18195 : STRIP_UNARY (operands[4]))
18196 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18197 : STRIP_UNARY (operands[3]))
18198 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18199 : STRIP_UNARY (operands[3])))) &&
18200 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18201 : (TARGET_AVX512F)))
18202 : return -1;
18203 : return 6207; /* *avx512bw_vpternlogv64qi_2 */
18204 :
18205 : case 1:
18206 : if (!(
18207 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18208 : ((32 == 64 || TARGET_AVX512VL
18209 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18210 : && ix86_pre_reload_split ()
18211 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18212 : STRIP_UNARY (operands[4]))
18213 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18214 : STRIP_UNARY (operands[4]))
18215 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18216 : STRIP_UNARY (operands[3]))
18217 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18218 : STRIP_UNARY (operands[3])))) &&
18219 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18220 : (TARGET_AVX)))
18221 : return -1;
18222 : return 6234; /* *avx512vl_vpternlogv32qi_2 */
18223 :
18224 : case 2:
18225 : if (!
18226 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18227 : ((16 == 64 || TARGET_AVX512VL
18228 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18229 : && ix86_pre_reload_split ()
18230 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18231 : STRIP_UNARY (operands[4]))
18232 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18233 : STRIP_UNARY (operands[4]))
18234 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18235 : STRIP_UNARY (operands[3]))
18236 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18237 : STRIP_UNARY (operands[3])))))
18238 : return -1;
18239 : return 6261; /* *avx512vl_vpternlogv16qi_2 */
18240 :
18241 : case 3:
18242 : if (!(
18243 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18244 : ((64 == 64 || TARGET_AVX512VL
18245 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18246 : && ix86_pre_reload_split ()
18247 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18248 : STRIP_UNARY (operands[4]))
18249 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18250 : STRIP_UNARY (operands[4]))
18251 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18252 : STRIP_UNARY (operands[3]))
18253 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18254 : STRIP_UNARY (operands[3])))) &&
18255 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18256 : (TARGET_AVX512F)))
18257 : return -1;
18258 : return 6288; /* *avx512bw_vpternlogv32hi_2 */
18259 :
18260 : case 4:
18261 : if (!(
18262 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18263 : ((32 == 64 || TARGET_AVX512VL
18264 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18265 : && ix86_pre_reload_split ()
18266 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18267 : STRIP_UNARY (operands[4]))
18268 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18269 : STRIP_UNARY (operands[4]))
18270 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18271 : STRIP_UNARY (operands[3]))
18272 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18273 : STRIP_UNARY (operands[3])))) &&
18274 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18275 : (TARGET_AVX)))
18276 : return -1;
18277 : return 6315; /* *avx512vl_vpternlogv16hi_2 */
18278 :
18279 : case 5:
18280 : if (!
18281 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18282 : ((16 == 64 || TARGET_AVX512VL
18283 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18284 : && ix86_pre_reload_split ()
18285 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18286 : STRIP_UNARY (operands[4]))
18287 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18288 : STRIP_UNARY (operands[4]))
18289 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18290 : STRIP_UNARY (operands[3]))
18291 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18292 : STRIP_UNARY (operands[3])))))
18293 : return -1;
18294 : return 6342; /* *avx512vl_vpternlogv8hi_2 */
18295 :
18296 : case 6:
18297 : if (!(
18298 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18299 : ((64 == 64 || TARGET_AVX512VL
18300 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18301 : && ix86_pre_reload_split ()
18302 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18303 : STRIP_UNARY (operands[4]))
18304 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18305 : STRIP_UNARY (operands[4]))
18306 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18307 : STRIP_UNARY (operands[3]))
18308 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18309 : STRIP_UNARY (operands[3])))) &&
18310 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18311 : (TARGET_AVX512F)))
18312 : return -1;
18313 : return 6369; /* *avx512f_vpternlogv16si_2 */
18314 :
18315 : case 7:
18316 : if (!(
18317 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18318 : ((32 == 64 || TARGET_AVX512VL
18319 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18320 : && ix86_pre_reload_split ()
18321 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18322 : STRIP_UNARY (operands[4]))
18323 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18324 : STRIP_UNARY (operands[4]))
18325 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18326 : STRIP_UNARY (operands[3]))
18327 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18328 : STRIP_UNARY (operands[3])))) &&
18329 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18330 : (TARGET_AVX)))
18331 : return -1;
18332 : return 6396; /* *avx512vl_vpternlogv8si_2 */
18333 :
18334 : case 8:
18335 : if (!
18336 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18337 : ((16 == 64 || TARGET_AVX512VL
18338 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18339 : && ix86_pre_reload_split ()
18340 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18341 : STRIP_UNARY (operands[4]))
18342 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18343 : STRIP_UNARY (operands[4]))
18344 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18345 : STRIP_UNARY (operands[3]))
18346 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18347 : STRIP_UNARY (operands[3])))))
18348 : return -1;
18349 : return 6423; /* *avx512vl_vpternlogv4si_2 */
18350 :
18351 : case 9:
18352 : if (!(
18353 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18354 : ((64 == 64 || TARGET_AVX512VL
18355 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18356 : && ix86_pre_reload_split ()
18357 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18358 : STRIP_UNARY (operands[4]))
18359 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18360 : STRIP_UNARY (operands[4]))
18361 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18362 : STRIP_UNARY (operands[3]))
18363 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18364 : STRIP_UNARY (operands[3])))) &&
18365 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18366 : (TARGET_AVX512F)))
18367 : return -1;
18368 : return 6450; /* *avx512f_vpternlogv8di_2 */
18369 :
18370 : case 10:
18371 : if (!(
18372 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18373 : ((32 == 64 || TARGET_AVX512VL
18374 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18375 : && ix86_pre_reload_split ()
18376 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18377 : STRIP_UNARY (operands[4]))
18378 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18379 : STRIP_UNARY (operands[4]))
18380 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18381 : STRIP_UNARY (operands[3]))
18382 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18383 : STRIP_UNARY (operands[3])))) &&
18384 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18385 : (TARGET_AVX)))
18386 : return -1;
18387 : return 6477; /* *avx512vl_vpternlogv4di_2 */
18388 :
18389 : case 11:
18390 : if (!
18391 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18392 : ((16 == 64 || TARGET_AVX512VL
18393 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18394 : && ix86_pre_reload_split ()
18395 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18396 : STRIP_UNARY (operands[4]))
18397 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18398 : STRIP_UNARY (operands[4]))
18399 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18400 : STRIP_UNARY (operands[3]))
18401 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18402 : STRIP_UNARY (operands[3])))))
18403 : return -1;
18404 : return 6504; /* *avx512vl_vpternlogv2di_2 */
18405 :
18406 : default:
18407 : return -1;
18408 : }
18409 :
18410 : case XOR:
18411 : switch (pattern537 (x2))
18412 : {
18413 : case 0:
18414 : if (!(
18415 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18416 : ((64 == 64 || TARGET_AVX512VL
18417 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18418 : && ix86_pre_reload_split ()
18419 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18420 : STRIP_UNARY (operands[4]))
18421 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18422 : STRIP_UNARY (operands[4]))
18423 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18424 : STRIP_UNARY (operands[3]))
18425 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18426 : STRIP_UNARY (operands[3])))) &&
18427 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18428 : (TARGET_AVX512F)))
18429 : return -1;
18430 : return 6210; /* *avx512bw_vpternlogv64qi_2 */
18431 :
18432 : case 1:
18433 : if (!(
18434 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18435 : ((32 == 64 || TARGET_AVX512VL
18436 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18437 : && ix86_pre_reload_split ()
18438 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18439 : STRIP_UNARY (operands[4]))
18440 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18441 : STRIP_UNARY (operands[4]))
18442 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18443 : STRIP_UNARY (operands[3]))
18444 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18445 : STRIP_UNARY (operands[3])))) &&
18446 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18447 : (TARGET_AVX)))
18448 : return -1;
18449 : return 6237; /* *avx512vl_vpternlogv32qi_2 */
18450 :
18451 : case 2:
18452 : if (!
18453 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18454 : ((16 == 64 || TARGET_AVX512VL
18455 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18456 : && ix86_pre_reload_split ()
18457 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18458 : STRIP_UNARY (operands[4]))
18459 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18460 : STRIP_UNARY (operands[4]))
18461 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18462 : STRIP_UNARY (operands[3]))
18463 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18464 : STRIP_UNARY (operands[3])))))
18465 : return -1;
18466 : return 6264; /* *avx512vl_vpternlogv16qi_2 */
18467 :
18468 : case 3:
18469 : if (!(
18470 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18471 : ((64 == 64 || TARGET_AVX512VL
18472 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18473 : && ix86_pre_reload_split ()
18474 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18475 : STRIP_UNARY (operands[4]))
18476 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18477 : STRIP_UNARY (operands[4]))
18478 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18479 : STRIP_UNARY (operands[3]))
18480 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18481 : STRIP_UNARY (operands[3])))) &&
18482 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18483 : (TARGET_AVX512F)))
18484 : return -1;
18485 : return 6291; /* *avx512bw_vpternlogv32hi_2 */
18486 :
18487 : case 4:
18488 : if (!(
18489 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18490 : ((32 == 64 || TARGET_AVX512VL
18491 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18492 : && ix86_pre_reload_split ()
18493 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18494 : STRIP_UNARY (operands[4]))
18495 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18496 : STRIP_UNARY (operands[4]))
18497 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18498 : STRIP_UNARY (operands[3]))
18499 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18500 : STRIP_UNARY (operands[3])))) &&
18501 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18502 : (TARGET_AVX)))
18503 : return -1;
18504 : return 6318; /* *avx512vl_vpternlogv16hi_2 */
18505 :
18506 : case 5:
18507 : if (!
18508 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18509 : ((16 == 64 || TARGET_AVX512VL
18510 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18511 : && ix86_pre_reload_split ()
18512 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18513 : STRIP_UNARY (operands[4]))
18514 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18515 : STRIP_UNARY (operands[4]))
18516 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18517 : STRIP_UNARY (operands[3]))
18518 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18519 : STRIP_UNARY (operands[3])))))
18520 : return -1;
18521 : return 6345; /* *avx512vl_vpternlogv8hi_2 */
18522 :
18523 : case 6:
18524 : if (!(
18525 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18526 : ((64 == 64 || TARGET_AVX512VL
18527 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18528 : && ix86_pre_reload_split ()
18529 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18530 : STRIP_UNARY (operands[4]))
18531 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18532 : STRIP_UNARY (operands[4]))
18533 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18534 : STRIP_UNARY (operands[3]))
18535 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18536 : STRIP_UNARY (operands[3])))) &&
18537 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18538 : (TARGET_AVX512F)))
18539 : return -1;
18540 : return 6372; /* *avx512f_vpternlogv16si_2 */
18541 :
18542 : case 7:
18543 : if (!(
18544 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18545 : ((32 == 64 || TARGET_AVX512VL
18546 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18547 : && ix86_pre_reload_split ()
18548 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18549 : STRIP_UNARY (operands[4]))
18550 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18551 : STRIP_UNARY (operands[4]))
18552 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18553 : STRIP_UNARY (operands[3]))
18554 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18555 : STRIP_UNARY (operands[3])))) &&
18556 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18557 : (TARGET_AVX)))
18558 : return -1;
18559 : return 6399; /* *avx512vl_vpternlogv8si_2 */
18560 :
18561 : case 8:
18562 : if (!
18563 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18564 : ((16 == 64 || TARGET_AVX512VL
18565 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18566 : && ix86_pre_reload_split ()
18567 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18568 : STRIP_UNARY (operands[4]))
18569 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18570 : STRIP_UNARY (operands[4]))
18571 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18572 : STRIP_UNARY (operands[3]))
18573 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18574 : STRIP_UNARY (operands[3])))))
18575 : return -1;
18576 : return 6426; /* *avx512vl_vpternlogv4si_2 */
18577 :
18578 : case 9:
18579 : if (!(
18580 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18581 : ((64 == 64 || TARGET_AVX512VL
18582 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18583 : && ix86_pre_reload_split ()
18584 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18585 : STRIP_UNARY (operands[4]))
18586 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18587 : STRIP_UNARY (operands[4]))
18588 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18589 : STRIP_UNARY (operands[3]))
18590 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18591 : STRIP_UNARY (operands[3])))) &&
18592 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18593 : (TARGET_AVX512F)))
18594 : return -1;
18595 : return 6453; /* *avx512f_vpternlogv8di_2 */
18596 :
18597 : case 10:
18598 : if (!(
18599 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18600 : ((32 == 64 || TARGET_AVX512VL
18601 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18602 : && ix86_pre_reload_split ()
18603 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18604 : STRIP_UNARY (operands[4]))
18605 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18606 : STRIP_UNARY (operands[4]))
18607 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18608 : STRIP_UNARY (operands[3]))
18609 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18610 : STRIP_UNARY (operands[3])))) &&
18611 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18612 : (TARGET_AVX)))
18613 : return -1;
18614 : return 6480; /* *avx512vl_vpternlogv4di_2 */
18615 :
18616 : case 11:
18617 : if (!
18618 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18619 : ((16 == 64 || TARGET_AVX512VL
18620 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18621 : && ix86_pre_reload_split ()
18622 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18623 : STRIP_UNARY (operands[4]))
18624 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18625 : STRIP_UNARY (operands[4]))
18626 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18627 : STRIP_UNARY (operands[3]))
18628 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18629 : STRIP_UNARY (operands[3])))))
18630 : return -1;
18631 : return 6507; /* *avx512vl_vpternlogv2di_2 */
18632 :
18633 : default:
18634 : return -1;
18635 : }
18636 :
18637 : default:
18638 : return -1;
18639 : }
18640 : }
18641 :
18642 : int
18643 : recog_318 (rtx x1 ATTRIBUTE_UNUSED,
18644 : rtx_insn *insn ATTRIBUTE_UNUSED,
18645 : int *pnum_clobbers ATTRIBUTE_UNUSED)
18646 : {
18647 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
18648 : rtx x2, x3, x4;
18649 : int res ATTRIBUTE_UNUSED;
18650 : x2 = XEXP (x1, 1);
18651 : x3 = XEXP (x2, 0);
18652 : switch (GET_CODE (x3))
18653 : {
18654 : case AND:
18655 : x4 = XEXP (x3, 0);
18656 : switch (GET_CODE (x4))
18657 : {
18658 : case REG:
18659 : case SUBREG:
18660 : case MEM:
18661 : case NOT:
18662 : switch (pattern541 (x2))
18663 : {
18664 : case 0:
18665 : if (!(
18666 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18667 : ((64 == 64 || TARGET_AVX512VL
18668 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18669 : && ix86_pre_reload_split ()
18670 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18671 : STRIP_UNARY (operands[4]))
18672 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18673 : STRIP_UNARY (operands[4]))
18674 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18675 : STRIP_UNARY (operands[3]))
18676 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18677 : STRIP_UNARY (operands[3])))) &&
18678 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18679 : (TARGET_AVX512F)))
18680 : return -1;
18681 : return 5862; /* *avx512bw_vpternlogv32hf_1 */
18682 :
18683 : case 1:
18684 : if (!(
18685 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18686 : ((32 == 64 || TARGET_AVX512VL
18687 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18688 : && ix86_pre_reload_split ()
18689 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18690 : STRIP_UNARY (operands[4]))
18691 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18692 : STRIP_UNARY (operands[4]))
18693 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18694 : STRIP_UNARY (operands[3]))
18695 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18696 : STRIP_UNARY (operands[3])))) &&
18697 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18698 : (TARGET_AVX)))
18699 : return -1;
18700 : return 5889; /* *avx512vl_vpternlogv16hf_1 */
18701 :
18702 : case 2:
18703 : if (!
18704 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18705 : ((16 == 64 || TARGET_AVX512VL
18706 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18707 : && ix86_pre_reload_split ()
18708 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18709 : STRIP_UNARY (operands[4]))
18710 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18711 : STRIP_UNARY (operands[4]))
18712 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18713 : STRIP_UNARY (operands[3]))
18714 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18715 : STRIP_UNARY (operands[3])))))
18716 : return -1;
18717 : return 5916; /* *avx512fp16_vpternlogv8hf_1 */
18718 :
18719 : case 3:
18720 : if (!(
18721 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18722 : ((64 == 64 || TARGET_AVX512VL
18723 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18724 : && ix86_pre_reload_split ()
18725 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18726 : STRIP_UNARY (operands[4]))
18727 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18728 : STRIP_UNARY (operands[4]))
18729 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18730 : STRIP_UNARY (operands[3]))
18731 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18732 : STRIP_UNARY (operands[3])))) &&
18733 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18734 : (TARGET_AVX512F)))
18735 : return -1;
18736 : return 5943; /* *avx512bw_vpternlogv32bf_1 */
18737 :
18738 : case 4:
18739 : if (!(
18740 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18741 : ((32 == 64 || TARGET_AVX512VL
18742 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18743 : && ix86_pre_reload_split ()
18744 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18745 : STRIP_UNARY (operands[4]))
18746 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18747 : STRIP_UNARY (operands[4]))
18748 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18749 : STRIP_UNARY (operands[3]))
18750 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18751 : STRIP_UNARY (operands[3])))) &&
18752 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18753 : (TARGET_AVX)))
18754 : return -1;
18755 : return 5970; /* *avx512vl_vpternlogv16bf_1 */
18756 :
18757 : case 5:
18758 : if (!
18759 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18760 : ((16 == 64 || TARGET_AVX512VL
18761 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18762 : && ix86_pre_reload_split ()
18763 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18764 : STRIP_UNARY (operands[4]))
18765 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18766 : STRIP_UNARY (operands[4]))
18767 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18768 : STRIP_UNARY (operands[3]))
18769 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18770 : STRIP_UNARY (operands[3])))))
18771 : return -1;
18772 : return 5997; /* *avx512vl_vpternlogv8bf_1 */
18773 :
18774 : case 6:
18775 : if (!(
18776 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18777 : ((64 == 64 || TARGET_AVX512VL
18778 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18779 : && ix86_pre_reload_split ()
18780 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18781 : STRIP_UNARY (operands[4]))
18782 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18783 : STRIP_UNARY (operands[4]))
18784 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18785 : STRIP_UNARY (operands[3]))
18786 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18787 : STRIP_UNARY (operands[3])))) &&
18788 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18789 : (TARGET_AVX512F)))
18790 : return -1;
18791 : return 6024; /* *avx512f_vpternlogv16sf_1 */
18792 :
18793 : case 7:
18794 : if (!(
18795 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18796 : ((32 == 64 || TARGET_AVX512VL
18797 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18798 : && ix86_pre_reload_split ()
18799 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18800 : STRIP_UNARY (operands[4]))
18801 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18802 : STRIP_UNARY (operands[4]))
18803 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18804 : STRIP_UNARY (operands[3]))
18805 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18806 : STRIP_UNARY (operands[3])))) &&
18807 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18808 : (TARGET_AVX)))
18809 : return -1;
18810 : return 6051; /* *avx512vl_vpternlogv8sf_1 */
18811 :
18812 : case 8:
18813 : if (!
18814 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18815 : ((16 == 64 || TARGET_AVX512VL
18816 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18817 : && ix86_pre_reload_split ()
18818 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18819 : STRIP_UNARY (operands[4]))
18820 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18821 : STRIP_UNARY (operands[4]))
18822 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18823 : STRIP_UNARY (operands[3]))
18824 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18825 : STRIP_UNARY (operands[3])))))
18826 : return -1;
18827 : return 6078; /* *avx512vl_vpternlogv4sf_1 */
18828 :
18829 : case 9:
18830 : if (!(
18831 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18832 : ((64 == 64 || TARGET_AVX512VL
18833 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18834 : && ix86_pre_reload_split ()
18835 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18836 : STRIP_UNARY (operands[4]))
18837 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18838 : STRIP_UNARY (operands[4]))
18839 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18840 : STRIP_UNARY (operands[3]))
18841 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18842 : STRIP_UNARY (operands[3])))) &&
18843 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18844 : (TARGET_AVX512F)))
18845 : return -1;
18846 : return 6105; /* *avx512f_vpternlogv8df_1 */
18847 :
18848 : case 10:
18849 : if (!(
18850 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18851 : ((32 == 64 || TARGET_AVX512VL
18852 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18853 : && ix86_pre_reload_split ()
18854 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18855 : STRIP_UNARY (operands[4]))
18856 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18857 : STRIP_UNARY (operands[4]))
18858 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18859 : STRIP_UNARY (operands[3]))
18860 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18861 : STRIP_UNARY (operands[3])))) &&
18862 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18863 : (TARGET_AVX)))
18864 : return -1;
18865 : return 6132; /* *avx512vl_vpternlogv4df_1 */
18866 :
18867 : case 11:
18868 : if (!(
18869 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18870 : ((16 == 64 || TARGET_AVX512VL
18871 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18872 : && ix86_pre_reload_split ()
18873 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18874 : STRIP_UNARY (operands[4]))
18875 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18876 : STRIP_UNARY (operands[4]))
18877 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18878 : STRIP_UNARY (operands[3]))
18879 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18880 : STRIP_UNARY (operands[3])))) &&
18881 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18882 : (TARGET_SSE2)))
18883 : return -1;
18884 : return 6159; /* *avx512vl_vpternlogv2df_1 */
18885 :
18886 : case 12:
18887 : if (!(
18888 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18889 : ((64 == 64 || TARGET_AVX512VL
18890 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18891 : && ix86_pre_reload_split ()
18892 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18893 : STRIP_UNARY (operands[4]))
18894 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18895 : STRIP_UNARY (operands[4]))
18896 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18897 : STRIP_UNARY (operands[3]))
18898 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18899 : STRIP_UNARY (operands[3])))) &&
18900 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18901 : (TARGET_AVX512F)))
18902 : return -1;
18903 : return 5865; /* *avx512bw_vpternlogv32hf_1 */
18904 :
18905 : case 13:
18906 : if (!(
18907 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18908 : ((32 == 64 || TARGET_AVX512VL
18909 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18910 : && ix86_pre_reload_split ()
18911 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18912 : STRIP_UNARY (operands[4]))
18913 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18914 : STRIP_UNARY (operands[4]))
18915 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18916 : STRIP_UNARY (operands[3]))
18917 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18918 : STRIP_UNARY (operands[3])))) &&
18919 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18920 : (TARGET_AVX)))
18921 : return -1;
18922 : return 5892; /* *avx512vl_vpternlogv16hf_1 */
18923 :
18924 : case 14:
18925 : if (!
18926 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18927 : ((16 == 64 || TARGET_AVX512VL
18928 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18929 : && ix86_pre_reload_split ()
18930 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18931 : STRIP_UNARY (operands[4]))
18932 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18933 : STRIP_UNARY (operands[4]))
18934 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18935 : STRIP_UNARY (operands[3]))
18936 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18937 : STRIP_UNARY (operands[3])))))
18938 : return -1;
18939 : return 5919; /* *avx512fp16_vpternlogv8hf_1 */
18940 :
18941 : case 15:
18942 : if (!(
18943 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18944 : ((64 == 64 || TARGET_AVX512VL
18945 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18946 : && ix86_pre_reload_split ()
18947 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18948 : STRIP_UNARY (operands[4]))
18949 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18950 : STRIP_UNARY (operands[4]))
18951 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18952 : STRIP_UNARY (operands[3]))
18953 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18954 : STRIP_UNARY (operands[3])))) &&
18955 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18956 : (TARGET_AVX512F)))
18957 : return -1;
18958 : return 5946; /* *avx512bw_vpternlogv32bf_1 */
18959 :
18960 : case 16:
18961 : if (!(
18962 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18963 : ((32 == 64 || TARGET_AVX512VL
18964 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18965 : && ix86_pre_reload_split ()
18966 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18967 : STRIP_UNARY (operands[4]))
18968 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18969 : STRIP_UNARY (operands[4]))
18970 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18971 : STRIP_UNARY (operands[3]))
18972 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18973 : STRIP_UNARY (operands[3])))) &&
18974 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18975 : (TARGET_AVX)))
18976 : return -1;
18977 : return 5973; /* *avx512vl_vpternlogv16bf_1 */
18978 :
18979 : case 17:
18980 : if (!
18981 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18982 : ((16 == 64 || TARGET_AVX512VL
18983 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18984 : && ix86_pre_reload_split ()
18985 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18986 : STRIP_UNARY (operands[4]))
18987 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18988 : STRIP_UNARY (operands[4]))
18989 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18990 : STRIP_UNARY (operands[3]))
18991 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18992 : STRIP_UNARY (operands[3])))))
18993 : return -1;
18994 : return 6000; /* *avx512vl_vpternlogv8bf_1 */
18995 :
18996 : case 18:
18997 : if (!(
18998 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18999 : ((64 == 64 || TARGET_AVX512VL
19000 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19001 : && ix86_pre_reload_split ()
19002 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19003 : STRIP_UNARY (operands[4]))
19004 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19005 : STRIP_UNARY (operands[4]))
19006 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19007 : STRIP_UNARY (operands[3]))
19008 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19009 : STRIP_UNARY (operands[3])))) &&
19010 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19011 : (TARGET_AVX512F)))
19012 : return -1;
19013 : return 6027; /* *avx512f_vpternlogv16sf_1 */
19014 :
19015 : case 19:
19016 : if (!(
19017 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19018 : ((32 == 64 || TARGET_AVX512VL
19019 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19020 : && ix86_pre_reload_split ()
19021 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19022 : STRIP_UNARY (operands[4]))
19023 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19024 : STRIP_UNARY (operands[4]))
19025 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19026 : STRIP_UNARY (operands[3]))
19027 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19028 : STRIP_UNARY (operands[3])))) &&
19029 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19030 : (TARGET_AVX)))
19031 : return -1;
19032 : return 6054; /* *avx512vl_vpternlogv8sf_1 */
19033 :
19034 : case 20:
19035 : if (!
19036 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19037 : ((16 == 64 || TARGET_AVX512VL
19038 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19039 : && ix86_pre_reload_split ()
19040 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19041 : STRIP_UNARY (operands[4]))
19042 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19043 : STRIP_UNARY (operands[4]))
19044 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19045 : STRIP_UNARY (operands[3]))
19046 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19047 : STRIP_UNARY (operands[3])))))
19048 : return -1;
19049 : return 6081; /* *avx512vl_vpternlogv4sf_1 */
19050 :
19051 : case 21:
19052 : if (!(
19053 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19054 : ((64 == 64 || TARGET_AVX512VL
19055 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19056 : && ix86_pre_reload_split ()
19057 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19058 : STRIP_UNARY (operands[4]))
19059 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19060 : STRIP_UNARY (operands[4]))
19061 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19062 : STRIP_UNARY (operands[3]))
19063 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19064 : STRIP_UNARY (operands[3])))) &&
19065 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19066 : (TARGET_AVX512F)))
19067 : return -1;
19068 : return 6108; /* *avx512f_vpternlogv8df_1 */
19069 :
19070 : case 22:
19071 : if (!(
19072 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19073 : ((32 == 64 || TARGET_AVX512VL
19074 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19075 : && ix86_pre_reload_split ()
19076 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19077 : STRIP_UNARY (operands[4]))
19078 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19079 : STRIP_UNARY (operands[4]))
19080 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19081 : STRIP_UNARY (operands[3]))
19082 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19083 : STRIP_UNARY (operands[3])))) &&
19084 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19085 : (TARGET_AVX)))
19086 : return -1;
19087 : return 6135; /* *avx512vl_vpternlogv4df_1 */
19088 :
19089 : case 23:
19090 : if (!(
19091 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19092 : ((16 == 64 || TARGET_AVX512VL
19093 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19094 : && ix86_pre_reload_split ()
19095 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19096 : STRIP_UNARY (operands[4]))
19097 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19098 : STRIP_UNARY (operands[4]))
19099 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19100 : STRIP_UNARY (operands[3]))
19101 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19102 : STRIP_UNARY (operands[3])))) &&
19103 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19104 : (TARGET_SSE2)))
19105 : return -1;
19106 : return 6162; /* *avx512vl_vpternlogv2df_1 */
19107 :
19108 : case 24:
19109 : if (!(
19110 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19111 : ((64 == 64 || TARGET_AVX512VL
19112 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19113 : && ix86_pre_reload_split ()
19114 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19115 : STRIP_UNARY (operands[4]))
19116 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19117 : STRIP_UNARY (operands[4]))
19118 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19119 : STRIP_UNARY (operands[3]))
19120 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19121 : STRIP_UNARY (operands[3])))) &&
19122 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19123 : (TARGET_AVX512F)))
19124 : return -1;
19125 : return 5868; /* *avx512bw_vpternlogv32hf_1 */
19126 :
19127 : case 25:
19128 : if (!(
19129 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19130 : ((32 == 64 || TARGET_AVX512VL
19131 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19132 : && ix86_pre_reload_split ()
19133 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19134 : STRIP_UNARY (operands[4]))
19135 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19136 : STRIP_UNARY (operands[4]))
19137 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19138 : STRIP_UNARY (operands[3]))
19139 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19140 : STRIP_UNARY (operands[3])))) &&
19141 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19142 : (TARGET_AVX)))
19143 : return -1;
19144 : return 5895; /* *avx512vl_vpternlogv16hf_1 */
19145 :
19146 : case 26:
19147 : if (!
19148 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19149 : ((16 == 64 || TARGET_AVX512VL
19150 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19151 : && ix86_pre_reload_split ()
19152 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19153 : STRIP_UNARY (operands[4]))
19154 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19155 : STRIP_UNARY (operands[4]))
19156 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19157 : STRIP_UNARY (operands[3]))
19158 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19159 : STRIP_UNARY (operands[3])))))
19160 : return -1;
19161 : return 5922; /* *avx512fp16_vpternlogv8hf_1 */
19162 :
19163 : case 27:
19164 : if (!(
19165 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19166 : ((64 == 64 || TARGET_AVX512VL
19167 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19168 : && ix86_pre_reload_split ()
19169 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19170 : STRIP_UNARY (operands[4]))
19171 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19172 : STRIP_UNARY (operands[4]))
19173 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19174 : STRIP_UNARY (operands[3]))
19175 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19176 : STRIP_UNARY (operands[3])))) &&
19177 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19178 : (TARGET_AVX512F)))
19179 : return -1;
19180 : return 5949; /* *avx512bw_vpternlogv32bf_1 */
19181 :
19182 : case 28:
19183 : if (!(
19184 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19185 : ((32 == 64 || TARGET_AVX512VL
19186 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19187 : && ix86_pre_reload_split ()
19188 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19189 : STRIP_UNARY (operands[4]))
19190 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19191 : STRIP_UNARY (operands[4]))
19192 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19193 : STRIP_UNARY (operands[3]))
19194 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19195 : STRIP_UNARY (operands[3])))) &&
19196 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19197 : (TARGET_AVX)))
19198 : return -1;
19199 : return 5976; /* *avx512vl_vpternlogv16bf_1 */
19200 :
19201 : case 29:
19202 : if (!
19203 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19204 : ((16 == 64 || TARGET_AVX512VL
19205 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19206 : && ix86_pre_reload_split ()
19207 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19208 : STRIP_UNARY (operands[4]))
19209 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19210 : STRIP_UNARY (operands[4]))
19211 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19212 : STRIP_UNARY (operands[3]))
19213 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19214 : STRIP_UNARY (operands[3])))))
19215 : return -1;
19216 : return 6003; /* *avx512vl_vpternlogv8bf_1 */
19217 :
19218 : case 30:
19219 : if (!(
19220 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19221 : ((64 == 64 || TARGET_AVX512VL
19222 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19223 : && ix86_pre_reload_split ()
19224 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19225 : STRIP_UNARY (operands[4]))
19226 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19227 : STRIP_UNARY (operands[4]))
19228 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19229 : STRIP_UNARY (operands[3]))
19230 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19231 : STRIP_UNARY (operands[3])))) &&
19232 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19233 : (TARGET_AVX512F)))
19234 : return -1;
19235 : return 6030; /* *avx512f_vpternlogv16sf_1 */
19236 :
19237 : case 31:
19238 : if (!(
19239 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19240 : ((32 == 64 || TARGET_AVX512VL
19241 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19242 : && ix86_pre_reload_split ()
19243 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19244 : STRIP_UNARY (operands[4]))
19245 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19246 : STRIP_UNARY (operands[4]))
19247 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19248 : STRIP_UNARY (operands[3]))
19249 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19250 : STRIP_UNARY (operands[3])))) &&
19251 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19252 : (TARGET_AVX)))
19253 : return -1;
19254 : return 6057; /* *avx512vl_vpternlogv8sf_1 */
19255 :
19256 : case 32:
19257 : if (!
19258 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19259 : ((16 == 64 || TARGET_AVX512VL
19260 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19261 : && ix86_pre_reload_split ()
19262 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19263 : STRIP_UNARY (operands[4]))
19264 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19265 : STRIP_UNARY (operands[4]))
19266 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19267 : STRIP_UNARY (operands[3]))
19268 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19269 : STRIP_UNARY (operands[3])))))
19270 : return -1;
19271 : return 6084; /* *avx512vl_vpternlogv4sf_1 */
19272 :
19273 : case 33:
19274 : if (!(
19275 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19276 : ((64 == 64 || TARGET_AVX512VL
19277 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19278 : && ix86_pre_reload_split ()
19279 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19280 : STRIP_UNARY (operands[4]))
19281 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19282 : STRIP_UNARY (operands[4]))
19283 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19284 : STRIP_UNARY (operands[3]))
19285 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19286 : STRIP_UNARY (operands[3])))) &&
19287 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19288 : (TARGET_AVX512F)))
19289 : return -1;
19290 : return 6111; /* *avx512f_vpternlogv8df_1 */
19291 :
19292 : case 34:
19293 : if (!(
19294 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19295 : ((32 == 64 || TARGET_AVX512VL
19296 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19297 : && ix86_pre_reload_split ()
19298 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19299 : STRIP_UNARY (operands[4]))
19300 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19301 : STRIP_UNARY (operands[4]))
19302 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19303 : STRIP_UNARY (operands[3]))
19304 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19305 : STRIP_UNARY (operands[3])))) &&
19306 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19307 : (TARGET_AVX)))
19308 : return -1;
19309 : return 6138; /* *avx512vl_vpternlogv4df_1 */
19310 :
19311 : case 35:
19312 : if (!(
19313 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19314 : ((16 == 64 || TARGET_AVX512VL
19315 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19316 : && ix86_pre_reload_split ()
19317 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19318 : STRIP_UNARY (operands[4]))
19319 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19320 : STRIP_UNARY (operands[4]))
19321 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19322 : STRIP_UNARY (operands[3]))
19323 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19324 : STRIP_UNARY (operands[3])))) &&
19325 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19326 : (TARGET_SSE2)))
19327 : return -1;
19328 : return 6165; /* *avx512vl_vpternlogv2df_1 */
19329 :
19330 : case 36:
19331 : if (!(
19332 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19333 : ((64 == 64 || TARGET_AVX512VL
19334 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19335 : && ix86_pre_reload_split ()) &&
19336 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19337 : (TARGET_AVX512F)))
19338 : return -1;
19339 : return 6942; /* *avx512bw_vpternlogv32hf_3 */
19340 :
19341 : case 37:
19342 : if (!(
19343 : #line 14271 "/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 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19348 : (TARGET_AVX)))
19349 : return -1;
19350 : return 6951; /* *avx512vl_vpternlogv16hf_3 */
19351 :
19352 : case 38:
19353 : if (!
19354 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19355 : ((16 == 64 || TARGET_AVX512VL
19356 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19357 : && ix86_pre_reload_split ()))
19358 : return -1;
19359 : return 6960; /* *avx512fp16_vpternlogv8hf_3 */
19360 :
19361 : case 39:
19362 : if (!(
19363 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19364 : ((64 == 64 || TARGET_AVX512VL
19365 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19366 : && ix86_pre_reload_split ()) &&
19367 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19368 : (TARGET_AVX512F)))
19369 : return -1;
19370 : return 6969; /* *avx512bw_vpternlogv32bf_3 */
19371 :
19372 : case 40:
19373 : if (!(
19374 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19375 : ((32 == 64 || TARGET_AVX512VL
19376 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19377 : && ix86_pre_reload_split ()) &&
19378 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19379 : (TARGET_AVX)))
19380 : return -1;
19381 : return 6978; /* *avx512vl_vpternlogv16bf_3 */
19382 :
19383 : case 41:
19384 : if (!
19385 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19386 : ((16 == 64 || TARGET_AVX512VL
19387 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19388 : && ix86_pre_reload_split ()))
19389 : return -1;
19390 : return 6987; /* *avx512vl_vpternlogv8bf_3 */
19391 :
19392 : case 42:
19393 : if (!(
19394 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19395 : ((64 == 64 || TARGET_AVX512VL
19396 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19397 : && ix86_pre_reload_split ()) &&
19398 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19399 : (TARGET_AVX512F)))
19400 : return -1;
19401 : return 6996; /* *avx512f_vpternlogv16sf_3 */
19402 :
19403 : case 43:
19404 : if (!(
19405 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19406 : ((32 == 64 || TARGET_AVX512VL
19407 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19408 : && ix86_pre_reload_split ()) &&
19409 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19410 : (TARGET_AVX)))
19411 : return -1;
19412 : return 7005; /* *avx512vl_vpternlogv8sf_3 */
19413 :
19414 : case 44:
19415 : if (!
19416 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19417 : ((16 == 64 || TARGET_AVX512VL
19418 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19419 : && ix86_pre_reload_split ()))
19420 : return -1;
19421 : return 7014; /* *avx512vl_vpternlogv4sf_3 */
19422 :
19423 : case 45:
19424 : if (!(
19425 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19426 : ((64 == 64 || TARGET_AVX512VL
19427 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19428 : && ix86_pre_reload_split ()) &&
19429 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19430 : (TARGET_AVX512F)))
19431 : return -1;
19432 : return 7023; /* *avx512f_vpternlogv8df_3 */
19433 :
19434 : case 46:
19435 : if (!(
19436 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19437 : ((32 == 64 || TARGET_AVX512VL
19438 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19439 : && ix86_pre_reload_split ()) &&
19440 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19441 : (TARGET_AVX)))
19442 : return -1;
19443 : return 7032; /* *avx512vl_vpternlogv4df_3 */
19444 :
19445 : case 47:
19446 : if (!(
19447 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19448 : ((16 == 64 || TARGET_AVX512VL
19449 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19450 : && ix86_pre_reload_split ()) &&
19451 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19452 : (TARGET_SSE2)))
19453 : return -1;
19454 : return 7041; /* *avx512vl_vpternlogv2df_3 */
19455 :
19456 : default:
19457 : return -1;
19458 : }
19459 :
19460 : case AND:
19461 : switch (pattern542 (x2))
19462 : {
19463 : case 0:
19464 : if (!(
19465 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19466 : ((64 == 64 || TARGET_AVX512VL
19467 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19468 : && ix86_pre_reload_split ()
19469 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19470 : STRIP_UNARY (operands[4]))
19471 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19472 : STRIP_UNARY (operands[4]))
19473 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19474 : STRIP_UNARY (operands[3]))
19475 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19476 : STRIP_UNARY (operands[3])))) &&
19477 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19478 : (TARGET_AVX512F)))
19479 : return -1;
19480 : return 6510; /* *avx512bw_vpternlogv32hf_2 */
19481 :
19482 : case 1:
19483 : if (!(
19484 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19485 : ((32 == 64 || TARGET_AVX512VL
19486 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19487 : && ix86_pre_reload_split ()
19488 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19489 : STRIP_UNARY (operands[4]))
19490 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19491 : STRIP_UNARY (operands[4]))
19492 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19493 : STRIP_UNARY (operands[3]))
19494 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19495 : STRIP_UNARY (operands[3])))) &&
19496 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19497 : (TARGET_AVX)))
19498 : return -1;
19499 : return 6537; /* *avx512vl_vpternlogv16hf_2 */
19500 :
19501 : case 2:
19502 : if (!
19503 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19504 : ((16 == 64 || TARGET_AVX512VL
19505 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19506 : && ix86_pre_reload_split ()
19507 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19508 : STRIP_UNARY (operands[4]))
19509 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19510 : STRIP_UNARY (operands[4]))
19511 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19512 : STRIP_UNARY (operands[3]))
19513 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19514 : STRIP_UNARY (operands[3])))))
19515 : return -1;
19516 : return 6564; /* *avx512fp16_vpternlogv8hf_2 */
19517 :
19518 : case 3:
19519 : if (!(
19520 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19521 : ((64 == 64 || TARGET_AVX512VL
19522 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19523 : && ix86_pre_reload_split ()
19524 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19525 : STRIP_UNARY (operands[4]))
19526 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19527 : STRIP_UNARY (operands[4]))
19528 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19529 : STRIP_UNARY (operands[3]))
19530 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19531 : STRIP_UNARY (operands[3])))) &&
19532 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19533 : (TARGET_AVX512F)))
19534 : return -1;
19535 : return 6591; /* *avx512bw_vpternlogv32bf_2 */
19536 :
19537 : case 4:
19538 : if (!(
19539 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19540 : ((32 == 64 || TARGET_AVX512VL
19541 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19542 : && ix86_pre_reload_split ()
19543 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19544 : STRIP_UNARY (operands[4]))
19545 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19546 : STRIP_UNARY (operands[4]))
19547 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19548 : STRIP_UNARY (operands[3]))
19549 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19550 : STRIP_UNARY (operands[3])))) &&
19551 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19552 : (TARGET_AVX)))
19553 : return -1;
19554 : return 6618; /* *avx512vl_vpternlogv16bf_2 */
19555 :
19556 : case 5:
19557 : if (!
19558 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19559 : ((16 == 64 || TARGET_AVX512VL
19560 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19561 : && ix86_pre_reload_split ()
19562 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19563 : STRIP_UNARY (operands[4]))
19564 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19565 : STRIP_UNARY (operands[4]))
19566 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19567 : STRIP_UNARY (operands[3]))
19568 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19569 : STRIP_UNARY (operands[3])))))
19570 : return -1;
19571 : return 6645; /* *avx512vl_vpternlogv8bf_2 */
19572 :
19573 : case 6:
19574 : if (!(
19575 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19576 : ((64 == 64 || TARGET_AVX512VL
19577 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19578 : && ix86_pre_reload_split ()
19579 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19580 : STRIP_UNARY (operands[4]))
19581 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19582 : STRIP_UNARY (operands[4]))
19583 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19584 : STRIP_UNARY (operands[3]))
19585 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19586 : STRIP_UNARY (operands[3])))) &&
19587 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19588 : (TARGET_AVX512F)))
19589 : return -1;
19590 : return 6672; /* *avx512f_vpternlogv16sf_2 */
19591 :
19592 : case 7:
19593 : if (!(
19594 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19595 : ((32 == 64 || TARGET_AVX512VL
19596 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19597 : && ix86_pre_reload_split ()
19598 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19599 : STRIP_UNARY (operands[4]))
19600 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19601 : STRIP_UNARY (operands[4]))
19602 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19603 : STRIP_UNARY (operands[3]))
19604 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19605 : STRIP_UNARY (operands[3])))) &&
19606 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19607 : (TARGET_AVX)))
19608 : return -1;
19609 : return 6699; /* *avx512vl_vpternlogv8sf_2 */
19610 :
19611 : case 8:
19612 : if (!
19613 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19614 : ((16 == 64 || TARGET_AVX512VL
19615 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19616 : && ix86_pre_reload_split ()
19617 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19618 : STRIP_UNARY (operands[4]))
19619 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19620 : STRIP_UNARY (operands[4]))
19621 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19622 : STRIP_UNARY (operands[3]))
19623 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19624 : STRIP_UNARY (operands[3])))))
19625 : return -1;
19626 : return 6726; /* *avx512vl_vpternlogv4sf_2 */
19627 :
19628 : case 9:
19629 : if (!(
19630 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19631 : ((64 == 64 || TARGET_AVX512VL
19632 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19633 : && ix86_pre_reload_split ()
19634 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19635 : STRIP_UNARY (operands[4]))
19636 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19637 : STRIP_UNARY (operands[4]))
19638 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19639 : STRIP_UNARY (operands[3]))
19640 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19641 : STRIP_UNARY (operands[3])))) &&
19642 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19643 : (TARGET_AVX512F)))
19644 : return -1;
19645 : return 6753; /* *avx512f_vpternlogv8df_2 */
19646 :
19647 : case 10:
19648 : if (!(
19649 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19650 : ((32 == 64 || TARGET_AVX512VL
19651 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19652 : && ix86_pre_reload_split ()
19653 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19654 : STRIP_UNARY (operands[4]))
19655 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19656 : STRIP_UNARY (operands[4]))
19657 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19658 : STRIP_UNARY (operands[3]))
19659 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19660 : STRIP_UNARY (operands[3])))) &&
19661 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19662 : (TARGET_AVX)))
19663 : return -1;
19664 : return 6780; /* *avx512vl_vpternlogv4df_2 */
19665 :
19666 : case 11:
19667 : if (!(
19668 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19669 : ((16 == 64 || TARGET_AVX512VL
19670 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19671 : && ix86_pre_reload_split ()
19672 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19673 : STRIP_UNARY (operands[4]))
19674 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19675 : STRIP_UNARY (operands[4]))
19676 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19677 : STRIP_UNARY (operands[3]))
19678 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19679 : STRIP_UNARY (operands[3])))) &&
19680 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19681 : (TARGET_SSE2)))
19682 : return -1;
19683 : return 6807; /* *avx512vl_vpternlogv2df_2 */
19684 :
19685 : default:
19686 : return -1;
19687 : }
19688 :
19689 : case IOR:
19690 : switch (pattern542 (x2))
19691 : {
19692 : case 0:
19693 : if (!(
19694 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19695 : ((64 == 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 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19707 : (TARGET_AVX512F)))
19708 : return -1;
19709 : return 6513; /* *avx512bw_vpternlogv32hf_2 */
19710 :
19711 : case 1:
19712 : if (!(
19713 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19714 : ((32 == 64 || TARGET_AVX512VL
19715 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19716 : && ix86_pre_reload_split ()
19717 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19718 : STRIP_UNARY (operands[4]))
19719 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19720 : STRIP_UNARY (operands[4]))
19721 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19722 : STRIP_UNARY (operands[3]))
19723 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19724 : STRIP_UNARY (operands[3])))) &&
19725 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19726 : (TARGET_AVX)))
19727 : return -1;
19728 : return 6540; /* *avx512vl_vpternlogv16hf_2 */
19729 :
19730 : case 2:
19731 : if (!
19732 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19733 : ((16 == 64 || TARGET_AVX512VL
19734 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19735 : && ix86_pre_reload_split ()
19736 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19737 : STRIP_UNARY (operands[4]))
19738 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19739 : STRIP_UNARY (operands[4]))
19740 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19741 : STRIP_UNARY (operands[3]))
19742 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19743 : STRIP_UNARY (operands[3])))))
19744 : return -1;
19745 : return 6567; /* *avx512fp16_vpternlogv8hf_2 */
19746 :
19747 : case 3:
19748 : if (!(
19749 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19750 : ((64 == 64 || TARGET_AVX512VL
19751 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19752 : && ix86_pre_reload_split ()
19753 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19754 : STRIP_UNARY (operands[4]))
19755 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19756 : STRIP_UNARY (operands[4]))
19757 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19758 : STRIP_UNARY (operands[3]))
19759 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19760 : STRIP_UNARY (operands[3])))) &&
19761 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19762 : (TARGET_AVX512F)))
19763 : return -1;
19764 : return 6594; /* *avx512bw_vpternlogv32bf_2 */
19765 :
19766 : case 4:
19767 : if (!(
19768 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19769 : ((32 == 64 || TARGET_AVX512VL
19770 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19771 : && ix86_pre_reload_split ()
19772 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19773 : STRIP_UNARY (operands[4]))
19774 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19775 : STRIP_UNARY (operands[4]))
19776 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19777 : STRIP_UNARY (operands[3]))
19778 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19779 : STRIP_UNARY (operands[3])))) &&
19780 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19781 : (TARGET_AVX)))
19782 : return -1;
19783 : return 6621; /* *avx512vl_vpternlogv16bf_2 */
19784 :
19785 : case 5:
19786 : if (!
19787 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19788 : ((16 == 64 || TARGET_AVX512VL
19789 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19790 : && ix86_pre_reload_split ()
19791 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19792 : STRIP_UNARY (operands[4]))
19793 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19794 : STRIP_UNARY (operands[4]))
19795 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19796 : STRIP_UNARY (operands[3]))
19797 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19798 : STRIP_UNARY (operands[3])))))
19799 : return -1;
19800 : return 6648; /* *avx512vl_vpternlogv8bf_2 */
19801 :
19802 : case 6:
19803 : if (!(
19804 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19805 : ((64 == 64 || TARGET_AVX512VL
19806 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19807 : && ix86_pre_reload_split ()
19808 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19809 : STRIP_UNARY (operands[4]))
19810 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19811 : STRIP_UNARY (operands[4]))
19812 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19813 : STRIP_UNARY (operands[3]))
19814 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19815 : STRIP_UNARY (operands[3])))) &&
19816 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19817 : (TARGET_AVX512F)))
19818 : return -1;
19819 : return 6675; /* *avx512f_vpternlogv16sf_2 */
19820 :
19821 : case 7:
19822 : if (!(
19823 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19824 : ((32 == 64 || TARGET_AVX512VL
19825 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19826 : && ix86_pre_reload_split ()
19827 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19828 : STRIP_UNARY (operands[4]))
19829 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19830 : STRIP_UNARY (operands[4]))
19831 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19832 : STRIP_UNARY (operands[3]))
19833 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19834 : STRIP_UNARY (operands[3])))) &&
19835 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19836 : (TARGET_AVX)))
19837 : return -1;
19838 : return 6702; /* *avx512vl_vpternlogv8sf_2 */
19839 :
19840 : case 8:
19841 : if (!
19842 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19843 : ((16 == 64 || TARGET_AVX512VL
19844 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19845 : && ix86_pre_reload_split ()
19846 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19847 : STRIP_UNARY (operands[4]))
19848 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19849 : STRIP_UNARY (operands[4]))
19850 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19851 : STRIP_UNARY (operands[3]))
19852 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19853 : STRIP_UNARY (operands[3])))))
19854 : return -1;
19855 : return 6729; /* *avx512vl_vpternlogv4sf_2 */
19856 :
19857 : case 9:
19858 : if (!(
19859 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19860 : ((64 == 64 || TARGET_AVX512VL
19861 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19862 : && ix86_pre_reload_split ()
19863 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19864 : STRIP_UNARY (operands[4]))
19865 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19866 : STRIP_UNARY (operands[4]))
19867 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19868 : STRIP_UNARY (operands[3]))
19869 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19870 : STRIP_UNARY (operands[3])))) &&
19871 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19872 : (TARGET_AVX512F)))
19873 : return -1;
19874 : return 6756; /* *avx512f_vpternlogv8df_2 */
19875 :
19876 : case 10:
19877 : if (!(
19878 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19879 : ((32 == 64 || TARGET_AVX512VL
19880 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19881 : && ix86_pre_reload_split ()
19882 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19883 : STRIP_UNARY (operands[4]))
19884 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19885 : STRIP_UNARY (operands[4]))
19886 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19887 : STRIP_UNARY (operands[3]))
19888 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19889 : STRIP_UNARY (operands[3])))) &&
19890 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19891 : (TARGET_AVX)))
19892 : return -1;
19893 : return 6783; /* *avx512vl_vpternlogv4df_2 */
19894 :
19895 : case 11:
19896 : if (!(
19897 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19898 : ((16 == 64 || TARGET_AVX512VL
19899 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19900 : && ix86_pre_reload_split ()
19901 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19902 : STRIP_UNARY (operands[4]))
19903 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19904 : STRIP_UNARY (operands[4]))
19905 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19906 : STRIP_UNARY (operands[3]))
19907 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19908 : STRIP_UNARY (operands[3])))) &&
19909 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19910 : (TARGET_SSE2)))
19911 : return -1;
19912 : return 6810; /* *avx512vl_vpternlogv2df_2 */
19913 :
19914 : default:
19915 : return -1;
19916 : }
19917 :
19918 : case XOR:
19919 : switch (pattern542 (x2))
19920 : {
19921 : case 0:
19922 : if (!(
19923 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19924 : ((64 == 64 || TARGET_AVX512VL
19925 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19926 : && ix86_pre_reload_split ()
19927 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19928 : STRIP_UNARY (operands[4]))
19929 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19930 : STRIP_UNARY (operands[4]))
19931 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19932 : STRIP_UNARY (operands[3]))
19933 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19934 : STRIP_UNARY (operands[3])))) &&
19935 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19936 : (TARGET_AVX512F)))
19937 : return -1;
19938 : return 6516; /* *avx512bw_vpternlogv32hf_2 */
19939 :
19940 : case 1:
19941 : if (!(
19942 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19943 : ((32 == 64 || TARGET_AVX512VL
19944 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19945 : && ix86_pre_reload_split ()
19946 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19947 : STRIP_UNARY (operands[4]))
19948 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19949 : STRIP_UNARY (operands[4]))
19950 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19951 : STRIP_UNARY (operands[3]))
19952 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19953 : STRIP_UNARY (operands[3])))) &&
19954 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19955 : (TARGET_AVX)))
19956 : return -1;
19957 : return 6543; /* *avx512vl_vpternlogv16hf_2 */
19958 :
19959 : case 2:
19960 : if (!
19961 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19962 : ((16 == 64 || TARGET_AVX512VL
19963 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19964 : && ix86_pre_reload_split ()
19965 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19966 : STRIP_UNARY (operands[4]))
19967 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19968 : STRIP_UNARY (operands[4]))
19969 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19970 : STRIP_UNARY (operands[3]))
19971 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19972 : STRIP_UNARY (operands[3])))))
19973 : return -1;
19974 : return 6570; /* *avx512fp16_vpternlogv8hf_2 */
19975 :
19976 : case 3:
19977 : if (!(
19978 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19979 : ((64 == 64 || TARGET_AVX512VL
19980 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19981 : && ix86_pre_reload_split ()
19982 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19983 : STRIP_UNARY (operands[4]))
19984 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19985 : STRIP_UNARY (operands[4]))
19986 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19987 : STRIP_UNARY (operands[3]))
19988 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19989 : STRIP_UNARY (operands[3])))) &&
19990 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19991 : (TARGET_AVX512F)))
19992 : return -1;
19993 : return 6597; /* *avx512bw_vpternlogv32bf_2 */
19994 :
19995 : case 4:
19996 : if (!(
19997 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19998 : ((32 == 64 || TARGET_AVX512VL
19999 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20000 : && ix86_pre_reload_split ()
20001 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20002 : STRIP_UNARY (operands[4]))
20003 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20004 : STRIP_UNARY (operands[4]))
20005 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20006 : STRIP_UNARY (operands[3]))
20007 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20008 : STRIP_UNARY (operands[3])))) &&
20009 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20010 : (TARGET_AVX)))
20011 : return -1;
20012 : return 6624; /* *avx512vl_vpternlogv16bf_2 */
20013 :
20014 : case 5:
20015 : if (!
20016 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20017 : ((16 == 64 || TARGET_AVX512VL
20018 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20019 : && ix86_pre_reload_split ()
20020 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20021 : STRIP_UNARY (operands[4]))
20022 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20023 : STRIP_UNARY (operands[4]))
20024 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20025 : STRIP_UNARY (operands[3]))
20026 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20027 : STRIP_UNARY (operands[3])))))
20028 : return -1;
20029 : return 6651; /* *avx512vl_vpternlogv8bf_2 */
20030 :
20031 : case 6:
20032 : if (!(
20033 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20034 : ((64 == 64 || TARGET_AVX512VL
20035 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20036 : && ix86_pre_reload_split ()
20037 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20038 : STRIP_UNARY (operands[4]))
20039 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20040 : STRIP_UNARY (operands[4]))
20041 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20042 : STRIP_UNARY (operands[3]))
20043 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20044 : STRIP_UNARY (operands[3])))) &&
20045 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20046 : (TARGET_AVX512F)))
20047 : return -1;
20048 : return 6678; /* *avx512f_vpternlogv16sf_2 */
20049 :
20050 : case 7:
20051 : if (!(
20052 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20053 : ((32 == 64 || TARGET_AVX512VL
20054 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20055 : && ix86_pre_reload_split ()
20056 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20057 : STRIP_UNARY (operands[4]))
20058 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20059 : STRIP_UNARY (operands[4]))
20060 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20061 : STRIP_UNARY (operands[3]))
20062 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20063 : STRIP_UNARY (operands[3])))) &&
20064 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20065 : (TARGET_AVX)))
20066 : return -1;
20067 : return 6705; /* *avx512vl_vpternlogv8sf_2 */
20068 :
20069 : case 8:
20070 : if (!
20071 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20072 : ((16 == 64 || TARGET_AVX512VL
20073 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20074 : && ix86_pre_reload_split ()
20075 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20076 : STRIP_UNARY (operands[4]))
20077 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20078 : STRIP_UNARY (operands[4]))
20079 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20080 : STRIP_UNARY (operands[3]))
20081 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20082 : STRIP_UNARY (operands[3])))))
20083 : return -1;
20084 : return 6732; /* *avx512vl_vpternlogv4sf_2 */
20085 :
20086 : case 9:
20087 : if (!(
20088 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20089 : ((64 == 64 || TARGET_AVX512VL
20090 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20091 : && ix86_pre_reload_split ()
20092 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20093 : STRIP_UNARY (operands[4]))
20094 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20095 : STRIP_UNARY (operands[4]))
20096 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20097 : STRIP_UNARY (operands[3]))
20098 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20099 : STRIP_UNARY (operands[3])))) &&
20100 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20101 : (TARGET_AVX512F)))
20102 : return -1;
20103 : return 6759; /* *avx512f_vpternlogv8df_2 */
20104 :
20105 : case 10:
20106 : if (!(
20107 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20108 : ((32 == 64 || TARGET_AVX512VL
20109 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20110 : && ix86_pre_reload_split ()
20111 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20112 : STRIP_UNARY (operands[4]))
20113 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20114 : STRIP_UNARY (operands[4]))
20115 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20116 : STRIP_UNARY (operands[3]))
20117 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20118 : STRIP_UNARY (operands[3])))) &&
20119 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20120 : (TARGET_AVX)))
20121 : return -1;
20122 : return 6786; /* *avx512vl_vpternlogv4df_2 */
20123 :
20124 : case 11:
20125 : if (!(
20126 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20127 : ((16 == 64 || TARGET_AVX512VL
20128 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20129 : && ix86_pre_reload_split ()
20130 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20131 : STRIP_UNARY (operands[4]))
20132 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20133 : STRIP_UNARY (operands[4]))
20134 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20135 : STRIP_UNARY (operands[3]))
20136 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20137 : STRIP_UNARY (operands[3])))) &&
20138 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20139 : (TARGET_SSE2)))
20140 : return -1;
20141 : return 6813; /* *avx512vl_vpternlogv2df_2 */
20142 :
20143 : default:
20144 : return -1;
20145 : }
20146 :
20147 : default:
20148 : return -1;
20149 : }
20150 :
20151 : case IOR:
20152 : x4 = XEXP (x3, 0);
20153 : switch (GET_CODE (x4))
20154 : {
20155 : case REG:
20156 : case SUBREG:
20157 : case MEM:
20158 : case NOT:
20159 : switch (pattern541 (x2))
20160 : {
20161 : case 0:
20162 : if (!(
20163 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20164 : ((64 == 64 || TARGET_AVX512VL
20165 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20166 : && ix86_pre_reload_split ()
20167 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20168 : STRIP_UNARY (operands[4]))
20169 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20170 : STRIP_UNARY (operands[4]))
20171 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20172 : STRIP_UNARY (operands[3]))
20173 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20174 : STRIP_UNARY (operands[3])))) &&
20175 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20176 : (TARGET_AVX512F)))
20177 : return -1;
20178 : return 5871; /* *avx512bw_vpternlogv32hf_1 */
20179 :
20180 : case 1:
20181 : if (!(
20182 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20183 : ((32 == 64 || TARGET_AVX512VL
20184 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20185 : && ix86_pre_reload_split ()
20186 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20187 : STRIP_UNARY (operands[4]))
20188 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20189 : STRIP_UNARY (operands[4]))
20190 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20191 : STRIP_UNARY (operands[3]))
20192 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20193 : STRIP_UNARY (operands[3])))) &&
20194 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20195 : (TARGET_AVX)))
20196 : return -1;
20197 : return 5898; /* *avx512vl_vpternlogv16hf_1 */
20198 :
20199 : case 2:
20200 : if (!
20201 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20202 : ((16 == 64 || TARGET_AVX512VL
20203 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20204 : && ix86_pre_reload_split ()
20205 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20206 : STRIP_UNARY (operands[4]))
20207 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20208 : STRIP_UNARY (operands[4]))
20209 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20210 : STRIP_UNARY (operands[3]))
20211 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20212 : STRIP_UNARY (operands[3])))))
20213 : return -1;
20214 : return 5925; /* *avx512fp16_vpternlogv8hf_1 */
20215 :
20216 : case 3:
20217 : if (!(
20218 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20219 : ((64 == 64 || TARGET_AVX512VL
20220 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20221 : && ix86_pre_reload_split ()
20222 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20223 : STRIP_UNARY (operands[4]))
20224 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20225 : STRIP_UNARY (operands[4]))
20226 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20227 : STRIP_UNARY (operands[3]))
20228 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20229 : STRIP_UNARY (operands[3])))) &&
20230 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20231 : (TARGET_AVX512F)))
20232 : return -1;
20233 : return 5952; /* *avx512bw_vpternlogv32bf_1 */
20234 :
20235 : case 4:
20236 : if (!(
20237 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20238 : ((32 == 64 || TARGET_AVX512VL
20239 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20240 : && ix86_pre_reload_split ()
20241 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20242 : STRIP_UNARY (operands[4]))
20243 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20244 : STRIP_UNARY (operands[4]))
20245 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20246 : STRIP_UNARY (operands[3]))
20247 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20248 : STRIP_UNARY (operands[3])))) &&
20249 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20250 : (TARGET_AVX)))
20251 : return -1;
20252 : return 5979; /* *avx512vl_vpternlogv16bf_1 */
20253 :
20254 : case 5:
20255 : if (!
20256 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20257 : ((16 == 64 || TARGET_AVX512VL
20258 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20259 : && ix86_pre_reload_split ()
20260 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20261 : STRIP_UNARY (operands[4]))
20262 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20263 : STRIP_UNARY (operands[4]))
20264 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20265 : STRIP_UNARY (operands[3]))
20266 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20267 : STRIP_UNARY (operands[3])))))
20268 : return -1;
20269 : return 6006; /* *avx512vl_vpternlogv8bf_1 */
20270 :
20271 : case 6:
20272 : if (!(
20273 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20274 : ((64 == 64 || TARGET_AVX512VL
20275 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20276 : && ix86_pre_reload_split ()
20277 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20278 : STRIP_UNARY (operands[4]))
20279 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20280 : STRIP_UNARY (operands[4]))
20281 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20282 : STRIP_UNARY (operands[3]))
20283 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20284 : STRIP_UNARY (operands[3])))) &&
20285 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20286 : (TARGET_AVX512F)))
20287 : return -1;
20288 : return 6033; /* *avx512f_vpternlogv16sf_1 */
20289 :
20290 : case 7:
20291 : if (!(
20292 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20293 : ((32 == 64 || TARGET_AVX512VL
20294 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20295 : && ix86_pre_reload_split ()
20296 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20297 : STRIP_UNARY (operands[4]))
20298 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20299 : STRIP_UNARY (operands[4]))
20300 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20301 : STRIP_UNARY (operands[3]))
20302 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20303 : STRIP_UNARY (operands[3])))) &&
20304 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20305 : (TARGET_AVX)))
20306 : return -1;
20307 : return 6060; /* *avx512vl_vpternlogv8sf_1 */
20308 :
20309 : case 8:
20310 : if (!
20311 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20312 : ((16 == 64 || TARGET_AVX512VL
20313 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20314 : && ix86_pre_reload_split ()
20315 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20316 : STRIP_UNARY (operands[4]))
20317 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20318 : STRIP_UNARY (operands[4]))
20319 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20320 : STRIP_UNARY (operands[3]))
20321 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20322 : STRIP_UNARY (operands[3])))))
20323 : return -1;
20324 : return 6087; /* *avx512vl_vpternlogv4sf_1 */
20325 :
20326 : case 9:
20327 : if (!(
20328 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20329 : ((64 == 64 || TARGET_AVX512VL
20330 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20331 : && ix86_pre_reload_split ()
20332 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20333 : STRIP_UNARY (operands[4]))
20334 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20335 : STRIP_UNARY (operands[4]))
20336 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20337 : STRIP_UNARY (operands[3]))
20338 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20339 : STRIP_UNARY (operands[3])))) &&
20340 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20341 : (TARGET_AVX512F)))
20342 : return -1;
20343 : return 6114; /* *avx512f_vpternlogv8df_1 */
20344 :
20345 : case 10:
20346 : if (!(
20347 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20348 : ((32 == 64 || TARGET_AVX512VL
20349 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20350 : && ix86_pre_reload_split ()
20351 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20352 : STRIP_UNARY (operands[4]))
20353 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20354 : STRIP_UNARY (operands[4]))
20355 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20356 : STRIP_UNARY (operands[3]))
20357 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20358 : STRIP_UNARY (operands[3])))) &&
20359 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20360 : (TARGET_AVX)))
20361 : return -1;
20362 : return 6141; /* *avx512vl_vpternlogv4df_1 */
20363 :
20364 : case 11:
20365 : if (!(
20366 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20367 : ((16 == 64 || TARGET_AVX512VL
20368 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20369 : && ix86_pre_reload_split ()
20370 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20371 : STRIP_UNARY (operands[4]))
20372 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20373 : STRIP_UNARY (operands[4]))
20374 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20375 : STRIP_UNARY (operands[3]))
20376 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20377 : STRIP_UNARY (operands[3])))) &&
20378 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20379 : (TARGET_SSE2)))
20380 : return -1;
20381 : return 6168; /* *avx512vl_vpternlogv2df_1 */
20382 :
20383 : case 12:
20384 : if (!(
20385 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20386 : ((64 == 64 || TARGET_AVX512VL
20387 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20388 : && ix86_pre_reload_split ()
20389 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20390 : STRIP_UNARY (operands[4]))
20391 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20392 : STRIP_UNARY (operands[4]))
20393 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20394 : STRIP_UNARY (operands[3]))
20395 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20396 : STRIP_UNARY (operands[3])))) &&
20397 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20398 : (TARGET_AVX512F)))
20399 : return -1;
20400 : return 5874; /* *avx512bw_vpternlogv32hf_1 */
20401 :
20402 : case 13:
20403 : if (!(
20404 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20405 : ((32 == 64 || TARGET_AVX512VL
20406 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20407 : && ix86_pre_reload_split ()
20408 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20409 : STRIP_UNARY (operands[4]))
20410 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20411 : STRIP_UNARY (operands[4]))
20412 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20413 : STRIP_UNARY (operands[3]))
20414 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20415 : STRIP_UNARY (operands[3])))) &&
20416 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20417 : (TARGET_AVX)))
20418 : return -1;
20419 : return 5901; /* *avx512vl_vpternlogv16hf_1 */
20420 :
20421 : case 14:
20422 : if (!
20423 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20424 : ((16 == 64 || TARGET_AVX512VL
20425 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20426 : && ix86_pre_reload_split ()
20427 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20428 : STRIP_UNARY (operands[4]))
20429 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20430 : STRIP_UNARY (operands[4]))
20431 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20432 : STRIP_UNARY (operands[3]))
20433 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20434 : STRIP_UNARY (operands[3])))))
20435 : return -1;
20436 : return 5928; /* *avx512fp16_vpternlogv8hf_1 */
20437 :
20438 : case 15:
20439 : if (!(
20440 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20441 : ((64 == 64 || TARGET_AVX512VL
20442 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20443 : && ix86_pre_reload_split ()
20444 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20445 : STRIP_UNARY (operands[4]))
20446 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20447 : STRIP_UNARY (operands[4]))
20448 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20449 : STRIP_UNARY (operands[3]))
20450 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20451 : STRIP_UNARY (operands[3])))) &&
20452 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20453 : (TARGET_AVX512F)))
20454 : return -1;
20455 : return 5955; /* *avx512bw_vpternlogv32bf_1 */
20456 :
20457 : case 16:
20458 : if (!(
20459 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20460 : ((32 == 64 || TARGET_AVX512VL
20461 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20462 : && ix86_pre_reload_split ()
20463 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20464 : STRIP_UNARY (operands[4]))
20465 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20466 : STRIP_UNARY (operands[4]))
20467 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20468 : STRIP_UNARY (operands[3]))
20469 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20470 : STRIP_UNARY (operands[3])))) &&
20471 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20472 : (TARGET_AVX)))
20473 : return -1;
20474 : return 5982; /* *avx512vl_vpternlogv16bf_1 */
20475 :
20476 : case 17:
20477 : if (!
20478 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20479 : ((16 == 64 || TARGET_AVX512VL
20480 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20481 : && ix86_pre_reload_split ()
20482 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20483 : STRIP_UNARY (operands[4]))
20484 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20485 : STRIP_UNARY (operands[4]))
20486 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20487 : STRIP_UNARY (operands[3]))
20488 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20489 : STRIP_UNARY (operands[3])))))
20490 : return -1;
20491 : return 6009; /* *avx512vl_vpternlogv8bf_1 */
20492 :
20493 : case 18:
20494 : if (!(
20495 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20496 : ((64 == 64 || TARGET_AVX512VL
20497 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20498 : && ix86_pre_reload_split ()
20499 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20500 : STRIP_UNARY (operands[4]))
20501 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20502 : STRIP_UNARY (operands[4]))
20503 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20504 : STRIP_UNARY (operands[3]))
20505 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20506 : STRIP_UNARY (operands[3])))) &&
20507 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20508 : (TARGET_AVX512F)))
20509 : return -1;
20510 : return 6036; /* *avx512f_vpternlogv16sf_1 */
20511 :
20512 : case 19:
20513 : if (!(
20514 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20515 : ((32 == 64 || TARGET_AVX512VL
20516 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20517 : && ix86_pre_reload_split ()
20518 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20519 : STRIP_UNARY (operands[4]))
20520 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20521 : STRIP_UNARY (operands[4]))
20522 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20523 : STRIP_UNARY (operands[3]))
20524 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20525 : STRIP_UNARY (operands[3])))) &&
20526 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20527 : (TARGET_AVX)))
20528 : return -1;
20529 : return 6063; /* *avx512vl_vpternlogv8sf_1 */
20530 :
20531 : case 20:
20532 : if (!
20533 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20534 : ((16 == 64 || TARGET_AVX512VL
20535 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20536 : && ix86_pre_reload_split ()
20537 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20538 : STRIP_UNARY (operands[4]))
20539 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20540 : STRIP_UNARY (operands[4]))
20541 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20542 : STRIP_UNARY (operands[3]))
20543 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20544 : STRIP_UNARY (operands[3])))))
20545 : return -1;
20546 : return 6090; /* *avx512vl_vpternlogv4sf_1 */
20547 :
20548 : case 21:
20549 : if (!(
20550 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20551 : ((64 == 64 || TARGET_AVX512VL
20552 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20553 : && ix86_pre_reload_split ()
20554 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20555 : STRIP_UNARY (operands[4]))
20556 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20557 : STRIP_UNARY (operands[4]))
20558 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20559 : STRIP_UNARY (operands[3]))
20560 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20561 : STRIP_UNARY (operands[3])))) &&
20562 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20563 : (TARGET_AVX512F)))
20564 : return -1;
20565 : return 6117; /* *avx512f_vpternlogv8df_1 */
20566 :
20567 : case 22:
20568 : if (!(
20569 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20570 : ((32 == 64 || TARGET_AVX512VL
20571 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20572 : && ix86_pre_reload_split ()
20573 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20574 : STRIP_UNARY (operands[4]))
20575 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20576 : STRIP_UNARY (operands[4]))
20577 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20578 : STRIP_UNARY (operands[3]))
20579 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20580 : STRIP_UNARY (operands[3])))) &&
20581 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20582 : (TARGET_AVX)))
20583 : return -1;
20584 : return 6144; /* *avx512vl_vpternlogv4df_1 */
20585 :
20586 : case 23:
20587 : if (!(
20588 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20589 : ((16 == 64 || TARGET_AVX512VL
20590 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20591 : && ix86_pre_reload_split ()
20592 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20593 : STRIP_UNARY (operands[4]))
20594 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20595 : STRIP_UNARY (operands[4]))
20596 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20597 : STRIP_UNARY (operands[3]))
20598 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20599 : STRIP_UNARY (operands[3])))) &&
20600 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20601 : (TARGET_SSE2)))
20602 : return -1;
20603 : return 6171; /* *avx512vl_vpternlogv2df_1 */
20604 :
20605 : case 24:
20606 : if (!(
20607 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20608 : ((64 == 64 || TARGET_AVX512VL
20609 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20610 : && ix86_pre_reload_split ()
20611 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20612 : STRIP_UNARY (operands[4]))
20613 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20614 : STRIP_UNARY (operands[4]))
20615 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20616 : STRIP_UNARY (operands[3]))
20617 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20618 : STRIP_UNARY (operands[3])))) &&
20619 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20620 : (TARGET_AVX512F)))
20621 : return -1;
20622 : return 5877; /* *avx512bw_vpternlogv32hf_1 */
20623 :
20624 : case 25:
20625 : if (!(
20626 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20627 : ((32 == 64 || TARGET_AVX512VL
20628 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20629 : && ix86_pre_reload_split ()
20630 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20631 : STRIP_UNARY (operands[4]))
20632 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20633 : STRIP_UNARY (operands[4]))
20634 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20635 : STRIP_UNARY (operands[3]))
20636 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20637 : STRIP_UNARY (operands[3])))) &&
20638 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20639 : (TARGET_AVX)))
20640 : return -1;
20641 : return 5904; /* *avx512vl_vpternlogv16hf_1 */
20642 :
20643 : case 26:
20644 : if (!
20645 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20646 : ((16 == 64 || TARGET_AVX512VL
20647 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20648 : && ix86_pre_reload_split ()
20649 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20650 : STRIP_UNARY (operands[4]))
20651 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20652 : STRIP_UNARY (operands[4]))
20653 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20654 : STRIP_UNARY (operands[3]))
20655 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20656 : STRIP_UNARY (operands[3])))))
20657 : return -1;
20658 : return 5931; /* *avx512fp16_vpternlogv8hf_1 */
20659 :
20660 : case 27:
20661 : if (!(
20662 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20663 : ((64 == 64 || TARGET_AVX512VL
20664 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20665 : && ix86_pre_reload_split ()
20666 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20667 : STRIP_UNARY (operands[4]))
20668 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20669 : STRIP_UNARY (operands[4]))
20670 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20671 : STRIP_UNARY (operands[3]))
20672 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20673 : STRIP_UNARY (operands[3])))) &&
20674 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20675 : (TARGET_AVX512F)))
20676 : return -1;
20677 : return 5958; /* *avx512bw_vpternlogv32bf_1 */
20678 :
20679 : case 28:
20680 : if (!(
20681 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20682 : ((32 == 64 || TARGET_AVX512VL
20683 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20684 : && ix86_pre_reload_split ()
20685 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20686 : STRIP_UNARY (operands[4]))
20687 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20688 : STRIP_UNARY (operands[4]))
20689 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20690 : STRIP_UNARY (operands[3]))
20691 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20692 : STRIP_UNARY (operands[3])))) &&
20693 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20694 : (TARGET_AVX)))
20695 : return -1;
20696 : return 5985; /* *avx512vl_vpternlogv16bf_1 */
20697 :
20698 : case 29:
20699 : if (!
20700 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20701 : ((16 == 64 || TARGET_AVX512VL
20702 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20703 : && ix86_pre_reload_split ()
20704 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20705 : STRIP_UNARY (operands[4]))
20706 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20707 : STRIP_UNARY (operands[4]))
20708 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20709 : STRIP_UNARY (operands[3]))
20710 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20711 : STRIP_UNARY (operands[3])))))
20712 : return -1;
20713 : return 6012; /* *avx512vl_vpternlogv8bf_1 */
20714 :
20715 : case 30:
20716 : if (!(
20717 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20718 : ((64 == 64 || TARGET_AVX512VL
20719 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20720 : && ix86_pre_reload_split ()
20721 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20722 : STRIP_UNARY (operands[4]))
20723 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20724 : STRIP_UNARY (operands[4]))
20725 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20726 : STRIP_UNARY (operands[3]))
20727 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20728 : STRIP_UNARY (operands[3])))) &&
20729 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20730 : (TARGET_AVX512F)))
20731 : return -1;
20732 : return 6039; /* *avx512f_vpternlogv16sf_1 */
20733 :
20734 : case 31:
20735 : if (!(
20736 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20737 : ((32 == 64 || TARGET_AVX512VL
20738 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20739 : && ix86_pre_reload_split ()
20740 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20741 : STRIP_UNARY (operands[4]))
20742 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20743 : STRIP_UNARY (operands[4]))
20744 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20745 : STRIP_UNARY (operands[3]))
20746 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20747 : STRIP_UNARY (operands[3])))) &&
20748 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20749 : (TARGET_AVX)))
20750 : return -1;
20751 : return 6066; /* *avx512vl_vpternlogv8sf_1 */
20752 :
20753 : case 32:
20754 : if (!
20755 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20756 : ((16 == 64 || TARGET_AVX512VL
20757 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20758 : && ix86_pre_reload_split ()
20759 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20760 : STRIP_UNARY (operands[4]))
20761 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20762 : STRIP_UNARY (operands[4]))
20763 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20764 : STRIP_UNARY (operands[3]))
20765 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20766 : STRIP_UNARY (operands[3])))))
20767 : return -1;
20768 : return 6093; /* *avx512vl_vpternlogv4sf_1 */
20769 :
20770 : case 33:
20771 : if (!(
20772 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20773 : ((64 == 64 || TARGET_AVX512VL
20774 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20775 : && ix86_pre_reload_split ()
20776 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20777 : STRIP_UNARY (operands[4]))
20778 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20779 : STRIP_UNARY (operands[4]))
20780 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20781 : STRIP_UNARY (operands[3]))
20782 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20783 : STRIP_UNARY (operands[3])))) &&
20784 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20785 : (TARGET_AVX512F)))
20786 : return -1;
20787 : return 6120; /* *avx512f_vpternlogv8df_1 */
20788 :
20789 : case 34:
20790 : if (!(
20791 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20792 : ((32 == 64 || TARGET_AVX512VL
20793 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20794 : && ix86_pre_reload_split ()
20795 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20796 : STRIP_UNARY (operands[4]))
20797 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20798 : STRIP_UNARY (operands[4]))
20799 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20800 : STRIP_UNARY (operands[3]))
20801 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20802 : STRIP_UNARY (operands[3])))) &&
20803 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20804 : (TARGET_AVX)))
20805 : return -1;
20806 : return 6147; /* *avx512vl_vpternlogv4df_1 */
20807 :
20808 : case 35:
20809 : if (!(
20810 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20811 : ((16 == 64 || TARGET_AVX512VL
20812 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20813 : && ix86_pre_reload_split ()
20814 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20815 : STRIP_UNARY (operands[4]))
20816 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20817 : STRIP_UNARY (operands[4]))
20818 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20819 : STRIP_UNARY (operands[3]))
20820 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20821 : STRIP_UNARY (operands[3])))) &&
20822 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20823 : (TARGET_SSE2)))
20824 : return -1;
20825 : return 6174; /* *avx512vl_vpternlogv2df_1 */
20826 :
20827 : case 36:
20828 : if (!(
20829 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20830 : ((64 == 64 || TARGET_AVX512VL
20831 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20832 : && ix86_pre_reload_split ()) &&
20833 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20834 : (TARGET_AVX512F)))
20835 : return -1;
20836 : return 6945; /* *avx512bw_vpternlogv32hf_3 */
20837 :
20838 : case 37:
20839 : if (!(
20840 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20841 : ((32 == 64 || TARGET_AVX512VL
20842 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20843 : && ix86_pre_reload_split ()) &&
20844 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20845 : (TARGET_AVX)))
20846 : return -1;
20847 : return 6954; /* *avx512vl_vpternlogv16hf_3 */
20848 :
20849 : case 38:
20850 : if (!
20851 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20852 : ((16 == 64 || TARGET_AVX512VL
20853 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20854 : && ix86_pre_reload_split ()))
20855 : return -1;
20856 : return 6963; /* *avx512fp16_vpternlogv8hf_3 */
20857 :
20858 : case 39:
20859 : if (!(
20860 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20861 : ((64 == 64 || TARGET_AVX512VL
20862 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20863 : && ix86_pre_reload_split ()) &&
20864 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20865 : (TARGET_AVX512F)))
20866 : return -1;
20867 : return 6972; /* *avx512bw_vpternlogv32bf_3 */
20868 :
20869 : case 40:
20870 : if (!(
20871 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20872 : ((32 == 64 || TARGET_AVX512VL
20873 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20874 : && ix86_pre_reload_split ()) &&
20875 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20876 : (TARGET_AVX)))
20877 : return -1;
20878 : return 6981; /* *avx512vl_vpternlogv16bf_3 */
20879 :
20880 : case 41:
20881 : if (!
20882 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20883 : ((16 == 64 || TARGET_AVX512VL
20884 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20885 : && ix86_pre_reload_split ()))
20886 : return -1;
20887 : return 6990; /* *avx512vl_vpternlogv8bf_3 */
20888 :
20889 : case 42:
20890 : if (!(
20891 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20892 : ((64 == 64 || TARGET_AVX512VL
20893 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20894 : && ix86_pre_reload_split ()) &&
20895 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20896 : (TARGET_AVX512F)))
20897 : return -1;
20898 : return 6999; /* *avx512f_vpternlogv16sf_3 */
20899 :
20900 : case 43:
20901 : if (!(
20902 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20903 : ((32 == 64 || TARGET_AVX512VL
20904 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20905 : && ix86_pre_reload_split ()) &&
20906 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20907 : (TARGET_AVX)))
20908 : return -1;
20909 : return 7008; /* *avx512vl_vpternlogv8sf_3 */
20910 :
20911 : case 44:
20912 : if (!
20913 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20914 : ((16 == 64 || TARGET_AVX512VL
20915 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20916 : && ix86_pre_reload_split ()))
20917 : return -1;
20918 : return 7017; /* *avx512vl_vpternlogv4sf_3 */
20919 :
20920 : case 45:
20921 : if (!(
20922 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20923 : ((64 == 64 || TARGET_AVX512VL
20924 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20925 : && ix86_pre_reload_split ()) &&
20926 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20927 : (TARGET_AVX512F)))
20928 : return -1;
20929 : return 7026; /* *avx512f_vpternlogv8df_3 */
20930 :
20931 : case 46:
20932 : if (!(
20933 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20934 : ((32 == 64 || TARGET_AVX512VL
20935 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20936 : && ix86_pre_reload_split ()) &&
20937 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20938 : (TARGET_AVX)))
20939 : return -1;
20940 : return 7035; /* *avx512vl_vpternlogv4df_3 */
20941 :
20942 : case 47:
20943 : if (!(
20944 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20945 : ((16 == 64 || TARGET_AVX512VL
20946 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20947 : && ix86_pre_reload_split ()) &&
20948 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20949 : (TARGET_SSE2)))
20950 : return -1;
20951 : return 7044; /* *avx512vl_vpternlogv2df_3 */
20952 :
20953 : default:
20954 : return -1;
20955 : }
20956 :
20957 : case AND:
20958 : switch (pattern542 (x2))
20959 : {
20960 : case 0:
20961 : if (!(
20962 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20963 : ((64 == 64 || TARGET_AVX512VL
20964 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20965 : && ix86_pre_reload_split ()
20966 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20967 : STRIP_UNARY (operands[4]))
20968 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20969 : STRIP_UNARY (operands[4]))
20970 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20971 : STRIP_UNARY (operands[3]))
20972 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20973 : STRIP_UNARY (operands[3])))) &&
20974 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20975 : (TARGET_AVX512F)))
20976 : return -1;
20977 : return 6519; /* *avx512bw_vpternlogv32hf_2 */
20978 :
20979 : case 1:
20980 : if (!(
20981 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20982 : ((32 == 64 || TARGET_AVX512VL
20983 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20984 : && ix86_pre_reload_split ()
20985 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20986 : STRIP_UNARY (operands[4]))
20987 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20988 : STRIP_UNARY (operands[4]))
20989 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20990 : STRIP_UNARY (operands[3]))
20991 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20992 : STRIP_UNARY (operands[3])))) &&
20993 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20994 : (TARGET_AVX)))
20995 : return -1;
20996 : return 6546; /* *avx512vl_vpternlogv16hf_2 */
20997 :
20998 : case 2:
20999 : if (!
21000 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21001 : ((16 == 64 || TARGET_AVX512VL
21002 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21003 : && ix86_pre_reload_split ()
21004 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21005 : STRIP_UNARY (operands[4]))
21006 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21007 : STRIP_UNARY (operands[4]))
21008 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21009 : STRIP_UNARY (operands[3]))
21010 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21011 : STRIP_UNARY (operands[3])))))
21012 : return -1;
21013 : return 6573; /* *avx512fp16_vpternlogv8hf_2 */
21014 :
21015 : case 3:
21016 : if (!(
21017 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21018 : ((64 == 64 || TARGET_AVX512VL
21019 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21020 : && ix86_pre_reload_split ()
21021 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21022 : STRIP_UNARY (operands[4]))
21023 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21024 : STRIP_UNARY (operands[4]))
21025 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21026 : STRIP_UNARY (operands[3]))
21027 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21028 : STRIP_UNARY (operands[3])))) &&
21029 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21030 : (TARGET_AVX512F)))
21031 : return -1;
21032 : return 6600; /* *avx512bw_vpternlogv32bf_2 */
21033 :
21034 : case 4:
21035 : if (!(
21036 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21037 : ((32 == 64 || TARGET_AVX512VL
21038 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21039 : && ix86_pre_reload_split ()
21040 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21041 : STRIP_UNARY (operands[4]))
21042 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21043 : STRIP_UNARY (operands[4]))
21044 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21045 : STRIP_UNARY (operands[3]))
21046 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21047 : STRIP_UNARY (operands[3])))) &&
21048 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21049 : (TARGET_AVX)))
21050 : return -1;
21051 : return 6627; /* *avx512vl_vpternlogv16bf_2 */
21052 :
21053 : case 5:
21054 : if (!
21055 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21056 : ((16 == 64 || TARGET_AVX512VL
21057 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21058 : && ix86_pre_reload_split ()
21059 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21060 : STRIP_UNARY (operands[4]))
21061 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21062 : STRIP_UNARY (operands[4]))
21063 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21064 : STRIP_UNARY (operands[3]))
21065 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21066 : STRIP_UNARY (operands[3])))))
21067 : return -1;
21068 : return 6654; /* *avx512vl_vpternlogv8bf_2 */
21069 :
21070 : case 6:
21071 : if (!(
21072 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21073 : ((64 == 64 || TARGET_AVX512VL
21074 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21075 : && ix86_pre_reload_split ()
21076 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21077 : STRIP_UNARY (operands[4]))
21078 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21079 : STRIP_UNARY (operands[4]))
21080 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21081 : STRIP_UNARY (operands[3]))
21082 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21083 : STRIP_UNARY (operands[3])))) &&
21084 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21085 : (TARGET_AVX512F)))
21086 : return -1;
21087 : return 6681; /* *avx512f_vpternlogv16sf_2 */
21088 :
21089 : case 7:
21090 : if (!(
21091 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21092 : ((32 == 64 || TARGET_AVX512VL
21093 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21094 : && ix86_pre_reload_split ()
21095 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21096 : STRIP_UNARY (operands[4]))
21097 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21098 : STRIP_UNARY (operands[4]))
21099 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21100 : STRIP_UNARY (operands[3]))
21101 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21102 : STRIP_UNARY (operands[3])))) &&
21103 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21104 : (TARGET_AVX)))
21105 : return -1;
21106 : return 6708; /* *avx512vl_vpternlogv8sf_2 */
21107 :
21108 : case 8:
21109 : if (!
21110 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21111 : ((16 == 64 || TARGET_AVX512VL
21112 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21113 : && ix86_pre_reload_split ()
21114 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21115 : STRIP_UNARY (operands[4]))
21116 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21117 : STRIP_UNARY (operands[4]))
21118 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21119 : STRIP_UNARY (operands[3]))
21120 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21121 : STRIP_UNARY (operands[3])))))
21122 : return -1;
21123 : return 6735; /* *avx512vl_vpternlogv4sf_2 */
21124 :
21125 : case 9:
21126 : if (!(
21127 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21128 : ((64 == 64 || TARGET_AVX512VL
21129 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21130 : && ix86_pre_reload_split ()
21131 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21132 : STRIP_UNARY (operands[4]))
21133 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21134 : STRIP_UNARY (operands[4]))
21135 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21136 : STRIP_UNARY (operands[3]))
21137 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21138 : STRIP_UNARY (operands[3])))) &&
21139 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21140 : (TARGET_AVX512F)))
21141 : return -1;
21142 : return 6762; /* *avx512f_vpternlogv8df_2 */
21143 :
21144 : case 10:
21145 : if (!(
21146 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21147 : ((32 == 64 || TARGET_AVX512VL
21148 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21149 : && ix86_pre_reload_split ()
21150 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21151 : STRIP_UNARY (operands[4]))
21152 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21153 : STRIP_UNARY (operands[4]))
21154 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21155 : STRIP_UNARY (operands[3]))
21156 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21157 : STRIP_UNARY (operands[3])))) &&
21158 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21159 : (TARGET_AVX)))
21160 : return -1;
21161 : return 6789; /* *avx512vl_vpternlogv4df_2 */
21162 :
21163 : case 11:
21164 : if (!(
21165 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21166 : ((16 == 64 || TARGET_AVX512VL
21167 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21168 : && ix86_pre_reload_split ()
21169 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21170 : STRIP_UNARY (operands[4]))
21171 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21172 : STRIP_UNARY (operands[4]))
21173 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21174 : STRIP_UNARY (operands[3]))
21175 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21176 : STRIP_UNARY (operands[3])))) &&
21177 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21178 : (TARGET_SSE2)))
21179 : return -1;
21180 : return 6816; /* *avx512vl_vpternlogv2df_2 */
21181 :
21182 : default:
21183 : return -1;
21184 : }
21185 :
21186 : case IOR:
21187 : switch (pattern542 (x2))
21188 : {
21189 : case 0:
21190 : if (!(
21191 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21192 : ((64 == 64 || TARGET_AVX512VL
21193 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21194 : && ix86_pre_reload_split ()
21195 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21196 : STRIP_UNARY (operands[4]))
21197 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21198 : STRIP_UNARY (operands[4]))
21199 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21200 : STRIP_UNARY (operands[3]))
21201 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21202 : STRIP_UNARY (operands[3])))) &&
21203 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21204 : (TARGET_AVX512F)))
21205 : return -1;
21206 : return 6522; /* *avx512bw_vpternlogv32hf_2 */
21207 :
21208 : case 1:
21209 : if (!(
21210 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21211 : ((32 == 64 || TARGET_AVX512VL
21212 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21213 : && ix86_pre_reload_split ()
21214 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21215 : STRIP_UNARY (operands[4]))
21216 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21217 : STRIP_UNARY (operands[4]))
21218 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21219 : STRIP_UNARY (operands[3]))
21220 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21221 : STRIP_UNARY (operands[3])))) &&
21222 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21223 : (TARGET_AVX)))
21224 : return -1;
21225 : return 6549; /* *avx512vl_vpternlogv16hf_2 */
21226 :
21227 : case 2:
21228 : if (!
21229 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21230 : ((16 == 64 || TARGET_AVX512VL
21231 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21232 : && ix86_pre_reload_split ()
21233 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21234 : STRIP_UNARY (operands[4]))
21235 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21236 : STRIP_UNARY (operands[4]))
21237 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21238 : STRIP_UNARY (operands[3]))
21239 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21240 : STRIP_UNARY (operands[3])))))
21241 : return -1;
21242 : return 6576; /* *avx512fp16_vpternlogv8hf_2 */
21243 :
21244 : case 3:
21245 : if (!(
21246 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21247 : ((64 == 64 || TARGET_AVX512VL
21248 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21249 : && ix86_pre_reload_split ()
21250 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21251 : STRIP_UNARY (operands[4]))
21252 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21253 : STRIP_UNARY (operands[4]))
21254 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21255 : STRIP_UNARY (operands[3]))
21256 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21257 : STRIP_UNARY (operands[3])))) &&
21258 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21259 : (TARGET_AVX512F)))
21260 : return -1;
21261 : return 6603; /* *avx512bw_vpternlogv32bf_2 */
21262 :
21263 : case 4:
21264 : if (!(
21265 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21266 : ((32 == 64 || TARGET_AVX512VL
21267 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21268 : && ix86_pre_reload_split ()
21269 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21270 : STRIP_UNARY (operands[4]))
21271 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21272 : STRIP_UNARY (operands[4]))
21273 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21274 : STRIP_UNARY (operands[3]))
21275 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21276 : STRIP_UNARY (operands[3])))) &&
21277 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21278 : (TARGET_AVX)))
21279 : return -1;
21280 : return 6630; /* *avx512vl_vpternlogv16bf_2 */
21281 :
21282 : case 5:
21283 : if (!
21284 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21285 : ((16 == 64 || TARGET_AVX512VL
21286 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21287 : && ix86_pre_reload_split ()
21288 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21289 : STRIP_UNARY (operands[4]))
21290 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21291 : STRIP_UNARY (operands[4]))
21292 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21293 : STRIP_UNARY (operands[3]))
21294 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21295 : STRIP_UNARY (operands[3])))))
21296 : return -1;
21297 : return 6657; /* *avx512vl_vpternlogv8bf_2 */
21298 :
21299 : case 6:
21300 : if (!(
21301 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21302 : ((64 == 64 || TARGET_AVX512VL
21303 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21304 : && ix86_pre_reload_split ()
21305 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21306 : STRIP_UNARY (operands[4]))
21307 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21308 : STRIP_UNARY (operands[4]))
21309 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21310 : STRIP_UNARY (operands[3]))
21311 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21312 : STRIP_UNARY (operands[3])))) &&
21313 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21314 : (TARGET_AVX512F)))
21315 : return -1;
21316 : return 6684; /* *avx512f_vpternlogv16sf_2 */
21317 :
21318 : case 7:
21319 : if (!(
21320 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21321 : ((32 == 64 || TARGET_AVX512VL
21322 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21323 : && ix86_pre_reload_split ()
21324 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21325 : STRIP_UNARY (operands[4]))
21326 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21327 : STRIP_UNARY (operands[4]))
21328 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21329 : STRIP_UNARY (operands[3]))
21330 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21331 : STRIP_UNARY (operands[3])))) &&
21332 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21333 : (TARGET_AVX)))
21334 : return -1;
21335 : return 6711; /* *avx512vl_vpternlogv8sf_2 */
21336 :
21337 : case 8:
21338 : if (!
21339 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21340 : ((16 == 64 || TARGET_AVX512VL
21341 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21342 : && ix86_pre_reload_split ()
21343 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21344 : STRIP_UNARY (operands[4]))
21345 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21346 : STRIP_UNARY (operands[4]))
21347 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21348 : STRIP_UNARY (operands[3]))
21349 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21350 : STRIP_UNARY (operands[3])))))
21351 : return -1;
21352 : return 6738; /* *avx512vl_vpternlogv4sf_2 */
21353 :
21354 : case 9:
21355 : if (!(
21356 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21357 : ((64 == 64 || TARGET_AVX512VL
21358 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21359 : && ix86_pre_reload_split ()
21360 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21361 : STRIP_UNARY (operands[4]))
21362 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21363 : STRIP_UNARY (operands[4]))
21364 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21365 : STRIP_UNARY (operands[3]))
21366 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21367 : STRIP_UNARY (operands[3])))) &&
21368 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21369 : (TARGET_AVX512F)))
21370 : return -1;
21371 : return 6765; /* *avx512f_vpternlogv8df_2 */
21372 :
21373 : case 10:
21374 : if (!(
21375 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21376 : ((32 == 64 || TARGET_AVX512VL
21377 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21378 : && ix86_pre_reload_split ()
21379 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21380 : STRIP_UNARY (operands[4]))
21381 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21382 : STRIP_UNARY (operands[4]))
21383 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21384 : STRIP_UNARY (operands[3]))
21385 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21386 : STRIP_UNARY (operands[3])))) &&
21387 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21388 : (TARGET_AVX)))
21389 : return -1;
21390 : return 6792; /* *avx512vl_vpternlogv4df_2 */
21391 :
21392 : case 11:
21393 : if (!(
21394 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21395 : ((16 == 64 || TARGET_AVX512VL
21396 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21397 : && ix86_pre_reload_split ()
21398 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21399 : STRIP_UNARY (operands[4]))
21400 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21401 : STRIP_UNARY (operands[4]))
21402 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21403 : STRIP_UNARY (operands[3]))
21404 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21405 : STRIP_UNARY (operands[3])))) &&
21406 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21407 : (TARGET_SSE2)))
21408 : return -1;
21409 : return 6819; /* *avx512vl_vpternlogv2df_2 */
21410 :
21411 : default:
21412 : return -1;
21413 : }
21414 :
21415 : case XOR:
21416 : switch (pattern542 (x2))
21417 : {
21418 : case 0:
21419 : if (!(
21420 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21421 : ((64 == 64 || TARGET_AVX512VL
21422 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21423 : && ix86_pre_reload_split ()
21424 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21425 : STRIP_UNARY (operands[4]))
21426 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21427 : STRIP_UNARY (operands[4]))
21428 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21429 : STRIP_UNARY (operands[3]))
21430 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21431 : STRIP_UNARY (operands[3])))) &&
21432 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21433 : (TARGET_AVX512F)))
21434 : return -1;
21435 : return 6525; /* *avx512bw_vpternlogv32hf_2 */
21436 :
21437 : case 1:
21438 : if (!(
21439 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21440 : ((32 == 64 || TARGET_AVX512VL
21441 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21442 : && ix86_pre_reload_split ()
21443 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21444 : STRIP_UNARY (operands[4]))
21445 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21446 : STRIP_UNARY (operands[4]))
21447 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21448 : STRIP_UNARY (operands[3]))
21449 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21450 : STRIP_UNARY (operands[3])))) &&
21451 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21452 : (TARGET_AVX)))
21453 : return -1;
21454 : return 6552; /* *avx512vl_vpternlogv16hf_2 */
21455 :
21456 : case 2:
21457 : if (!
21458 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21459 : ((16 == 64 || TARGET_AVX512VL
21460 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21461 : && ix86_pre_reload_split ()
21462 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21463 : STRIP_UNARY (operands[4]))
21464 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21465 : STRIP_UNARY (operands[4]))
21466 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21467 : STRIP_UNARY (operands[3]))
21468 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21469 : STRIP_UNARY (operands[3])))))
21470 : return -1;
21471 : return 6579; /* *avx512fp16_vpternlogv8hf_2 */
21472 :
21473 : case 3:
21474 : if (!(
21475 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21476 : ((64 == 64 || TARGET_AVX512VL
21477 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21478 : && ix86_pre_reload_split ()
21479 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21480 : STRIP_UNARY (operands[4]))
21481 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21482 : STRIP_UNARY (operands[4]))
21483 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21484 : STRIP_UNARY (operands[3]))
21485 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21486 : STRIP_UNARY (operands[3])))) &&
21487 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21488 : (TARGET_AVX512F)))
21489 : return -1;
21490 : return 6606; /* *avx512bw_vpternlogv32bf_2 */
21491 :
21492 : case 4:
21493 : if (!(
21494 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21495 : ((32 == 64 || TARGET_AVX512VL
21496 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21497 : && ix86_pre_reload_split ()
21498 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21499 : STRIP_UNARY (operands[4]))
21500 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21501 : STRIP_UNARY (operands[4]))
21502 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21503 : STRIP_UNARY (operands[3]))
21504 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21505 : STRIP_UNARY (operands[3])))) &&
21506 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21507 : (TARGET_AVX)))
21508 : return -1;
21509 : return 6633; /* *avx512vl_vpternlogv16bf_2 */
21510 :
21511 : case 5:
21512 : if (!
21513 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21514 : ((16 == 64 || TARGET_AVX512VL
21515 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21516 : && ix86_pre_reload_split ()
21517 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21518 : STRIP_UNARY (operands[4]))
21519 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21520 : STRIP_UNARY (operands[4]))
21521 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21522 : STRIP_UNARY (operands[3]))
21523 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21524 : STRIP_UNARY (operands[3])))))
21525 : return -1;
21526 : return 6660; /* *avx512vl_vpternlogv8bf_2 */
21527 :
21528 : case 6:
21529 : if (!(
21530 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21531 : ((64 == 64 || TARGET_AVX512VL
21532 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21533 : && ix86_pre_reload_split ()
21534 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21535 : STRIP_UNARY (operands[4]))
21536 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21537 : STRIP_UNARY (operands[4]))
21538 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21539 : STRIP_UNARY (operands[3]))
21540 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21541 : STRIP_UNARY (operands[3])))) &&
21542 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21543 : (TARGET_AVX512F)))
21544 : return -1;
21545 : return 6687; /* *avx512f_vpternlogv16sf_2 */
21546 :
21547 : case 7:
21548 : if (!(
21549 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21550 : ((32 == 64 || TARGET_AVX512VL
21551 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21552 : && ix86_pre_reload_split ()
21553 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21554 : STRIP_UNARY (operands[4]))
21555 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21556 : STRIP_UNARY (operands[4]))
21557 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21558 : STRIP_UNARY (operands[3]))
21559 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21560 : STRIP_UNARY (operands[3])))) &&
21561 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21562 : (TARGET_AVX)))
21563 : return -1;
21564 : return 6714; /* *avx512vl_vpternlogv8sf_2 */
21565 :
21566 : case 8:
21567 : if (!
21568 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21569 : ((16 == 64 || TARGET_AVX512VL
21570 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21571 : && ix86_pre_reload_split ()
21572 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21573 : STRIP_UNARY (operands[4]))
21574 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21575 : STRIP_UNARY (operands[4]))
21576 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21577 : STRIP_UNARY (operands[3]))
21578 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21579 : STRIP_UNARY (operands[3])))))
21580 : return -1;
21581 : return 6741; /* *avx512vl_vpternlogv4sf_2 */
21582 :
21583 : case 9:
21584 : if (!(
21585 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21586 : ((64 == 64 || TARGET_AVX512VL
21587 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21588 : && ix86_pre_reload_split ()
21589 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21590 : STRIP_UNARY (operands[4]))
21591 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21592 : STRIP_UNARY (operands[4]))
21593 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21594 : STRIP_UNARY (operands[3]))
21595 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21596 : STRIP_UNARY (operands[3])))) &&
21597 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21598 : (TARGET_AVX512F)))
21599 : return -1;
21600 : return 6768; /* *avx512f_vpternlogv8df_2 */
21601 :
21602 : case 10:
21603 : if (!(
21604 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21605 : ((32 == 64 || TARGET_AVX512VL
21606 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21607 : && ix86_pre_reload_split ()
21608 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21609 : STRIP_UNARY (operands[4]))
21610 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21611 : STRIP_UNARY (operands[4]))
21612 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21613 : STRIP_UNARY (operands[3]))
21614 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21615 : STRIP_UNARY (operands[3])))) &&
21616 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21617 : (TARGET_AVX)))
21618 : return -1;
21619 : return 6795; /* *avx512vl_vpternlogv4df_2 */
21620 :
21621 : case 11:
21622 : if (!(
21623 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21624 : ((16 == 64 || TARGET_AVX512VL
21625 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21626 : && ix86_pre_reload_split ()
21627 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21628 : STRIP_UNARY (operands[4]))
21629 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21630 : STRIP_UNARY (operands[4]))
21631 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21632 : STRIP_UNARY (operands[3]))
21633 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21634 : STRIP_UNARY (operands[3])))) &&
21635 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21636 : (TARGET_SSE2)))
21637 : return -1;
21638 : return 6822; /* *avx512vl_vpternlogv2df_2 */
21639 :
21640 : default:
21641 : return -1;
21642 : }
21643 :
21644 : default:
21645 : return -1;
21646 : }
21647 :
21648 : case XOR:
21649 : return recog_315 (x1, insn, pnum_clobbers);
21650 :
21651 : default:
21652 : return -1;
21653 : }
21654 : }
21655 :
21656 : int
21657 : recog_382 (rtx x1 ATTRIBUTE_UNUSED,
21658 : rtx_insn *insn ATTRIBUTE_UNUSED,
21659 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21660 : {
21661 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21662 : rtx x2, x3, x4, x5, x6, x7;
21663 : int res ATTRIBUTE_UNUSED;
21664 : if (pnum_clobbers == NULL)
21665 : return -1;
21666 : x2 = XVECEXP (x1, 0, 0);
21667 : x3 = XEXP (x2, 1);
21668 : if (GET_MODE (x3) != E_SImode)
21669 : return -1;
21670 : x4 = XVECEXP (x1, 0, 1);
21671 : if (GET_CODE (x4) != USE)
21672 : return -1;
21673 : x5 = XEXP (x2, 0);
21674 : operands[0] = x5;
21675 : if (!register_operand (operands[0], E_SImode))
21676 : return -1;
21677 : x6 = XEXP (x3, 0);
21678 : operands[3] = x6;
21679 : x7 = XEXP (x4, 0);
21680 : operands[4] = x7;
21681 : switch (GET_MODE (operands[3]))
21682 : {
21683 : case E_SFmode:
21684 : if (!nonimmediate_operand (operands[3], E_SFmode)
21685 : || !nonimmediate_operand (operands[4], E_V4SFmode)
21686 : || !
21687 : #line 5920 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21688 : (!TARGET_64BIT && TARGET_SSE2 && TARGET_SSE_MATH
21689 : && optimize_function_for_speed_p (cfun)))
21690 : return -1;
21691 : *pnum_clobbers = 2;
21692 : return 227; /* *fixuns_truncsf_1 */
21693 :
21694 : case E_DFmode:
21695 : if (!nonimmediate_operand (operands[3], E_DFmode)
21696 : || !nonimmediate_operand (operands[4], E_V2DFmode)
21697 : || !
21698 : #line 5920 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21699 : (!TARGET_64BIT && TARGET_SSE2 && TARGET_SSE_MATH
21700 : && optimize_function_for_speed_p (cfun)))
21701 : return -1;
21702 : *pnum_clobbers = 2;
21703 : return 228; /* *fixuns_truncdf_1 */
21704 :
21705 : default:
21706 : return -1;
21707 : }
21708 : }
21709 :
21710 : int
21711 : recog_384 (rtx x1 ATTRIBUTE_UNUSED,
21712 : rtx_insn *insn ATTRIBUTE_UNUSED,
21713 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21714 : {
21715 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21716 : rtx x2, x3, x4, x5, x6;
21717 : int res ATTRIBUTE_UNUSED;
21718 : x2 = XVECEXP (x1, 0, 0);
21719 : x3 = XEXP (x2, 0);
21720 : operands[0] = x3;
21721 : x4 = XEXP (x2, 1);
21722 : x5 = XEXP (x4, 0);
21723 : operands[1] = x5;
21724 : x6 = XVECEXP (x1, 0, 1);
21725 : switch (GET_CODE (x6))
21726 : {
21727 : case CLOBBER:
21728 : if (pnum_clobbers == NULL
21729 : || !register_operand (operands[1], E_DImode))
21730 : return -1;
21731 : switch (pattern940 (x1))
21732 : {
21733 : case 0:
21734 : if (!
21735 : #line 6215 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21736 : (!TARGET_64BIT && TARGET_INTER_UNIT_MOVES_TO_VEC
21737 : && TARGET_80387 && X87_ENABLE_FLOAT (SFmode, DImode)
21738 : && TARGET_SSE2 && optimize_function_for_speed_p (cfun)))
21739 : return -1;
21740 : *pnum_clobbers = 2;
21741 : return 258; /* floatdisf2_i387_with_xmm */
21742 :
21743 : case 1:
21744 : if (!
21745 : #line 6215 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21746 : (!TARGET_64BIT && TARGET_INTER_UNIT_MOVES_TO_VEC
21747 : && TARGET_80387 && X87_ENABLE_FLOAT (DFmode, DImode)
21748 : && TARGET_SSE2 && optimize_function_for_speed_p (cfun)))
21749 : return -1;
21750 : *pnum_clobbers = 2;
21751 : return 259; /* floatdidf2_i387_with_xmm */
21752 :
21753 : case 2:
21754 : if (!
21755 : #line 6215 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21756 : (!TARGET_64BIT && TARGET_INTER_UNIT_MOVES_TO_VEC
21757 : && TARGET_80387 && X87_ENABLE_FLOAT (XFmode, DImode)
21758 : && TARGET_SSE2 && optimize_function_for_speed_p (cfun)))
21759 : return -1;
21760 : *pnum_clobbers = 2;
21761 : return 260; /* floatdixf2_i387_with_xmm */
21762 :
21763 : default:
21764 : return -1;
21765 : }
21766 :
21767 : case UNSPEC:
21768 : if (pattern693 (x1,
21769 : E_V2SImode,
21770 : E_V2SFmode) != 0
21771 : || !
21772 : #line 1623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
21773 : (TARGET_3DNOW))
21774 : return -1;
21775 : return 2137; /* mmx_floatv2siv2sf2 */
21776 :
21777 : default:
21778 : return -1;
21779 : }
21780 : }
21781 :
21782 : int
21783 : recog_385 (rtx x1 ATTRIBUTE_UNUSED,
21784 : rtx_insn *insn ATTRIBUTE_UNUSED,
21785 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21786 : {
21787 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21788 : rtx x2, x3, x4, x5, x6;
21789 : int res ATTRIBUTE_UNUSED;
21790 : if (pnum_clobbers == NULL)
21791 : return -1;
21792 : x2 = XVECEXP (x1, 0, 1);
21793 : if (GET_CODE (x2) != CLOBBER)
21794 : return -1;
21795 : x3 = XVECEXP (x1, 0, 0);
21796 : x4 = XEXP (x3, 0);
21797 : operands[0] = x4;
21798 : x5 = XEXP (x3, 1);
21799 : x6 = XEXP (x5, 0);
21800 : operands[1] = x6;
21801 : if (!nonimmediate_operand (operands[1], E_SImode))
21802 : return -1;
21803 : switch (pattern940 (x1))
21804 : {
21805 : case 0:
21806 : if (!
21807 : #line 6306 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21808 : (!TARGET_64BIT
21809 : && TARGET_80387 && X87_ENABLE_FLOAT (SFmode, DImode)
21810 : && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_TO_VEC))
21811 : return -1;
21812 : *pnum_clobbers = 1;
21813 : return 265; /* floatunssisf2_i387_with_xmm */
21814 :
21815 : case 1:
21816 : if (!
21817 : #line 6306 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21818 : (!TARGET_64BIT
21819 : && TARGET_80387 && X87_ENABLE_FLOAT (DFmode, DImode)
21820 : && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_TO_VEC))
21821 : return -1;
21822 : *pnum_clobbers = 1;
21823 : return 266; /* floatunssidf2_i387_with_xmm */
21824 :
21825 : case 2:
21826 : if (!
21827 : #line 6306 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21828 : (!TARGET_64BIT
21829 : && TARGET_80387 && X87_ENABLE_FLOAT (XFmode, DImode)
21830 : && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_TO_VEC))
21831 : return -1;
21832 : *pnum_clobbers = 1;
21833 : return 267; /* floatunssixf2_i387_with_xmm */
21834 :
21835 : default:
21836 : return -1;
21837 : }
21838 : }
21839 :
21840 : int
21841 : recog_387 (rtx x1 ATTRIBUTE_UNUSED,
21842 : rtx_insn *insn ATTRIBUTE_UNUSED,
21843 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21844 : {
21845 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21846 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
21847 : rtx x10, x11, x12, x13, x14;
21848 : int res ATTRIBUTE_UNUSED;
21849 : x2 = XVECEXP (x1, 0, 0);
21850 : x3 = XEXP (x2, 1);
21851 : x4 = XEXP (x3, 0);
21852 : switch (GET_CODE (x4))
21853 : {
21854 : case REG:
21855 : case SUBREG:
21856 : case MEM:
21857 : operands[1] = x4;
21858 : res = recog_386 (x1, insn, pnum_clobbers);
21859 : if (res >= 0)
21860 : return res;
21861 : if (GET_CODE (x4) != SUBREG
21862 : || maybe_ne (SUBREG_BYTE (x4), 0)
21863 : || GET_MODE (x4) != E_QImode)
21864 : return -1;
21865 : x5 = XEXP (x4, 0);
21866 : switch (GET_CODE (x5))
21867 : {
21868 : case ASHIFTRT:
21869 : case LSHIFTRT:
21870 : case SIGN_EXTRACT:
21871 : case ZERO_EXTRACT:
21872 : operands[3] = x5;
21873 : x6 = XVECEXP (x1, 0, 1);
21874 : if (GET_CODE (x6) != CLOBBER
21875 : || pattern573 (x1) != 0)
21876 : return -1;
21877 : x7 = XEXP (x5, 0);
21878 : operands[2] = x7;
21879 : switch (pattern1535 (x2))
21880 : {
21881 : case 0:
21882 : if (
21883 : #line 7044 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21884 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
21885 : return 307; /* *addqi_exthi_1_slp */
21886 : break;
21887 :
21888 : case 1:
21889 : if (
21890 : #line 7044 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21891 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
21892 : return 308; /* *addqi_extsi_1_slp */
21893 : break;
21894 :
21895 : case 2:
21896 : if ((
21897 : #line 7044 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21898 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
21899 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21900 : (TARGET_64BIT)))
21901 : return 309; /* *addqi_extdi_1_slp */
21902 : break;
21903 :
21904 : case 3:
21905 : return 331; /* *addqi_exthi_0 */
21906 :
21907 : case 4:
21908 : return 332; /* *addqi_extsi_0 */
21909 :
21910 : case 5:
21911 : if (
21912 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21913 : (TARGET_64BIT))
21914 : return 333; /* *addqi_extdi_0 */
21915 : break;
21916 :
21917 : default:
21918 : break;
21919 : }
21920 : x8 = XEXP (x3, 1);
21921 : if (GET_CODE (x8) != SUBREG)
21922 : return -1;
21923 : switch (pattern1536 (x2))
21924 : {
21925 : case 0:
21926 : if (!
21927 : #line 7073 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21928 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
21929 : return -1;
21930 : return 310; /* *addqi_exthi_2_slp */
21931 :
21932 : case 1:
21933 : if (!
21934 : #line 7073 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21935 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
21936 : return -1;
21937 : return 311; /* *addqi_extsi_2_slp */
21938 :
21939 : case 2:
21940 : if (!(
21941 : #line 7073 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21942 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
21943 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21944 : (TARGET_64BIT)))
21945 : return -1;
21946 : return 312; /* *addqi_extdi_2_slp */
21947 :
21948 : case 3:
21949 : return 334; /* *addqi_ext2hi_0 */
21950 :
21951 : case 4:
21952 : return 335; /* *addqi_ext2si_0 */
21953 :
21954 : case 5:
21955 : if (!
21956 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21957 : (TARGET_64BIT))
21958 : return -1;
21959 : return 336; /* *addqi_ext2di_0 */
21960 :
21961 : default:
21962 : return -1;
21963 : }
21964 :
21965 : default:
21966 : return -1;
21967 : }
21968 :
21969 : case ZERO_EXTEND:
21970 : x6 = XVECEXP (x1, 0, 1);
21971 : if (pattern355 (x6) != 0)
21972 : return -1;
21973 : switch (pattern942 (x2))
21974 : {
21975 : case 0:
21976 : if (!(
21977 : #line 6562 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21978 : (ix86_binary_operator_ok (UNKNOWN, DImode, operands, TARGET_APX_NDD)) &&
21979 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21980 : (!TARGET_64BIT)))
21981 : return -1;
21982 : return 272; /* *adddi3_doubleword_zext */
21983 :
21984 : case 1:
21985 : if (!(
21986 : #line 6562 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21987 : (ix86_binary_operator_ok (UNKNOWN, TImode, operands, TARGET_APX_NDD)) &&
21988 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21989 : (TARGET_64BIT)))
21990 : return -1;
21991 : return 273; /* *addti3_doubleword_zext */
21992 :
21993 : default:
21994 : return -1;
21995 : }
21996 :
21997 : case PLUS:
21998 : if (pattern344 (x1) != 0)
21999 : return -1;
22000 : x5 = XEXP (x4, 0);
22001 : switch (GET_CODE (x5))
22002 : {
22003 : case ASHIFT:
22004 : switch (pattern1167 (x3))
22005 : {
22006 : case 0:
22007 : if (!(
22008 : #line 6593 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22009 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
22010 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22011 : (!TARGET_64BIT)))
22012 : return -1;
22013 : return 274; /* *adddi3_doubleword_concat */
22014 :
22015 : case 1:
22016 : if (!(
22017 : #line 6593 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22018 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
22019 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22020 : (TARGET_64BIT)))
22021 : return -1;
22022 : return 277; /* *addti3_doubleword_concat */
22023 :
22024 : case 2:
22025 : if (!(
22026 : #line 6624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22027 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
22028 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22029 : (!TARGET_64BIT)))
22030 : return -1;
22031 : return 280; /* *adddi3_doubleword_concat_zext */
22032 :
22033 : case 3:
22034 : if (!(
22035 : #line 6624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22036 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
22037 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22038 : (TARGET_64BIT)))
22039 : return -1;
22040 : return 283; /* *addti3_doubleword_concat_zext */
22041 :
22042 : default:
22043 : return -1;
22044 : }
22045 :
22046 : case LTU:
22047 : case UNLT:
22048 : operands[4] = x5;
22049 : x9 = XEXP (x5, 1);
22050 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
22051 : return -1;
22052 : x7 = XEXP (x5, 0);
22053 : operands[3] = x7;
22054 : if (!flags_reg_operand (operands[3], E_VOIDmode))
22055 : return -1;
22056 : x10 = XEXP (x4, 1);
22057 : operands[1] = x10;
22058 : x8 = XEXP (x3, 1);
22059 : operands[2] = x8;
22060 : switch (GET_MODE (operands[0]))
22061 : {
22062 : case E_QImode:
22063 : if (pattern1636 (x3,
22064 : E_QImode) != 0
22065 : || !
22066 : #line 8840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22067 : (ix86_binary_operator_ok (PLUS, QImode, operands, TARGET_APX_NDD)))
22068 : return -1;
22069 : return 457; /* addqi3_carry */
22070 :
22071 : case E_HImode:
22072 : if (pattern1636 (x3,
22073 : E_HImode) != 0
22074 : || !
22075 : #line 8840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22076 : (ix86_binary_operator_ok (PLUS, HImode, operands, TARGET_APX_NDD)))
22077 : return -1;
22078 : return 458; /* addhi3_carry */
22079 :
22080 : case E_SImode:
22081 : if (pattern1637 (x3,
22082 : E_SImode) != 0
22083 : || !
22084 : #line 8840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22085 : (ix86_binary_operator_ok (PLUS, SImode, operands, TARGET_APX_NDD)))
22086 : return -1;
22087 : return 459; /* addsi3_carry */
22088 :
22089 : case E_DImode:
22090 : if (pattern1637 (x3,
22091 : E_DImode) != 0
22092 : || !(
22093 : #line 8840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22094 : (ix86_binary_operator_ok (PLUS, DImode, operands, TARGET_APX_NDD)) &&
22095 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22096 : (TARGET_64BIT)))
22097 : return -1;
22098 : return 460; /* adddi3_carry */
22099 :
22100 : default:
22101 : return -1;
22102 : }
22103 :
22104 : case EQ:
22105 : switch (pattern1170 (x3))
22106 : {
22107 : case 0:
22108 : if (!
22109 : #line 10479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22110 : (ix86_binary_operator_ok (PLUS, QImode, operands, TARGET_APX_NDD)
22111 : && ix86_pre_reload_split ()))
22112 : return -1;
22113 : return 582; /* *addqi3_eq */
22114 :
22115 : case 1:
22116 : if (!
22117 : #line 10479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22118 : (ix86_binary_operator_ok (PLUS, HImode, operands, TARGET_APX_NDD)
22119 : && ix86_pre_reload_split ()))
22120 : return -1;
22121 : return 583; /* *addhi3_eq */
22122 :
22123 : case 2:
22124 : if (!
22125 : #line 10479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22126 : (ix86_binary_operator_ok (PLUS, SImode, operands, TARGET_APX_NDD)
22127 : && ix86_pre_reload_split ()))
22128 : return -1;
22129 : return 584; /* *addsi3_eq */
22130 :
22131 : case 3:
22132 : if (!(
22133 : #line 10479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22134 : (ix86_binary_operator_ok (PLUS, DImode, operands, TARGET_APX_NDD)
22135 : && ix86_pre_reload_split ()) &&
22136 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22137 : (TARGET_64BIT)))
22138 : return -1;
22139 : return 585; /* *adddi3_eq */
22140 :
22141 : default:
22142 : return -1;
22143 : }
22144 :
22145 : case NE:
22146 : switch (pattern1173 (x3))
22147 : {
22148 : case 0:
22149 : if (!
22150 : #line 10500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22151 : (CONST_INT_P (operands[2])
22152 : && (QImode != DImode
22153 : || INTVAL (operands[2]) != HOST_WIDE_INT_C (-0x80000000))
22154 : && ix86_binary_operator_ok (PLUS, QImode, operands, TARGET_APX_NDD)
22155 : && ix86_pre_reload_split ()))
22156 : return -1;
22157 : return 586; /* *addqi3_ne */
22158 :
22159 : case 1:
22160 : if (!
22161 : #line 10500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22162 : (CONST_INT_P (operands[2])
22163 : && (HImode != DImode
22164 : || INTVAL (operands[2]) != HOST_WIDE_INT_C (-0x80000000))
22165 : && ix86_binary_operator_ok (PLUS, HImode, operands, TARGET_APX_NDD)
22166 : && ix86_pre_reload_split ()))
22167 : return -1;
22168 : return 587; /* *addhi3_ne */
22169 :
22170 : case 2:
22171 : if (!
22172 : #line 10500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22173 : (CONST_INT_P (operands[2])
22174 : && (SImode != DImode
22175 : || INTVAL (operands[2]) != HOST_WIDE_INT_C (-0x80000000))
22176 : && ix86_binary_operator_ok (PLUS, SImode, operands, TARGET_APX_NDD)
22177 : && ix86_pre_reload_split ()))
22178 : return -1;
22179 : return 588; /* *addsi3_ne */
22180 :
22181 : case 3:
22182 : if (!(
22183 : #line 10500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22184 : (CONST_INT_P (operands[2])
22185 : && (DImode != DImode
22186 : || INTVAL (operands[2]) != HOST_WIDE_INT_C (-0x80000000))
22187 : && ix86_binary_operator_ok (PLUS, DImode, operands, TARGET_APX_NDD)
22188 : && ix86_pre_reload_split ()) &&
22189 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22190 : (TARGET_64BIT)))
22191 : return -1;
22192 : return 589; /* *adddi3_ne */
22193 :
22194 : default:
22195 : return -1;
22196 : }
22197 :
22198 : default:
22199 : return -1;
22200 : }
22201 :
22202 : case IOR:
22203 : switch (pattern359 (x1))
22204 : {
22205 : case 0:
22206 : if (!(
22207 : #line 6593 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22208 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
22209 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22210 : (!TARGET_64BIT)))
22211 : return -1;
22212 : return 275; /* *adddi3_doubleword_concat */
22213 :
22214 : case 1:
22215 : if (!(
22216 : #line 6593 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22217 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
22218 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22219 : (TARGET_64BIT)))
22220 : return -1;
22221 : return 278; /* *addti3_doubleword_concat */
22222 :
22223 : case 2:
22224 : if (!(
22225 : #line 6624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22226 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
22227 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22228 : (!TARGET_64BIT)))
22229 : return -1;
22230 : return 281; /* *adddi3_doubleword_concat_zext */
22231 :
22232 : case 3:
22233 : if (!(
22234 : #line 6624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22235 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
22236 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22237 : (TARGET_64BIT)))
22238 : return -1;
22239 : return 284; /* *addti3_doubleword_concat_zext */
22240 :
22241 : default:
22242 : return -1;
22243 : }
22244 :
22245 : case XOR:
22246 : switch (pattern359 (x1))
22247 : {
22248 : case 0:
22249 : if (!(
22250 : #line 6593 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22251 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
22252 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22253 : (!TARGET_64BIT)))
22254 : return -1;
22255 : return 276; /* *adddi3_doubleword_concat */
22256 :
22257 : case 1:
22258 : if (!(
22259 : #line 6593 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22260 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
22261 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22262 : (TARGET_64BIT)))
22263 : return -1;
22264 : return 279; /* *addti3_doubleword_concat */
22265 :
22266 : case 2:
22267 : if (!(
22268 : #line 6624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22269 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
22270 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22271 : (!TARGET_64BIT)))
22272 : return -1;
22273 : return 282; /* *adddi3_doubleword_concat_zext */
22274 :
22275 : case 3:
22276 : if (!(
22277 : #line 6624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22278 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
22279 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22280 : (TARGET_64BIT)))
22281 : return -1;
22282 : return 285; /* *addti3_doubleword_concat_zext */
22283 :
22284 : default:
22285 : return -1;
22286 : }
22287 :
22288 : case LTU:
22289 : case UNLT:
22290 : switch (pattern360 (x1))
22291 : {
22292 : case 0:
22293 : if (pattern1537 (x3,
22294 : E_QImode) != 0
22295 : || !
22296 : #line 8941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22297 : (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1])))
22298 : return -1;
22299 : return 465; /* *addqi3_carry_0 */
22300 :
22301 : case 1:
22302 : if (pattern1537 (x3,
22303 : E_HImode) != 0
22304 : || !
22305 : #line 8941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22306 : (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1])))
22307 : return -1;
22308 : return 466; /* *addhi3_carry_0 */
22309 :
22310 : case 2:
22311 : if (pattern1537 (x3,
22312 : E_SImode) != 0
22313 : || !
22314 : #line 8941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22315 : (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1])))
22316 : return -1;
22317 : return 467; /* *addsi3_carry_0 */
22318 :
22319 : case 3:
22320 : if (pattern1537 (x3,
22321 : E_DImode) != 0
22322 : || !(
22323 : #line 8941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22324 : (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1])) &&
22325 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22326 : (TARGET_64BIT)))
22327 : return -1;
22328 : return 468; /* *adddi3_carry_0 */
22329 :
22330 : default:
22331 : return -1;
22332 : }
22333 :
22334 : case GE:
22335 : case GEU:
22336 : switch (pattern360 (x1))
22337 : {
22338 : case 0:
22339 : if (pattern1538 (x3,
22340 : E_QImode) != 0
22341 : || !
22342 : #line 8975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22343 : (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1])))
22344 : return -1;
22345 : return 473; /* *addqi3_carry_0r */
22346 :
22347 : case 1:
22348 : if (pattern1538 (x3,
22349 : E_HImode) != 0
22350 : || !
22351 : #line 8975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22352 : (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1])))
22353 : return -1;
22354 : return 474; /* *addhi3_carry_0r */
22355 :
22356 : case 2:
22357 : if (pattern1538 (x3,
22358 : E_SImode) != 0
22359 : || !
22360 : #line 8975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22361 : (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1])))
22362 : return -1;
22363 : return 475; /* *addsi3_carry_0r */
22364 :
22365 : case 3:
22366 : if (pattern1538 (x3,
22367 : E_DImode) != 0
22368 : || !(
22369 : #line 8975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22370 : (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1])) &&
22371 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22372 : (TARGET_64BIT)))
22373 : return -1;
22374 : return 476; /* *adddi3_carry_0r */
22375 :
22376 : default:
22377 : return -1;
22378 : }
22379 :
22380 : case EQ:
22381 : switch (pattern364 (x1))
22382 : {
22383 : case 0:
22384 : if (!
22385 : #line 10526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22386 : (ix86_unary_operator_ok (PLUS, QImode, operands)
22387 : && ix86_pre_reload_split ()))
22388 : return -1;
22389 : return 590; /* *addqi3_eq_0 */
22390 :
22391 : case 1:
22392 : if (!
22393 : #line 10526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22394 : (ix86_unary_operator_ok (PLUS, HImode, operands)
22395 : && ix86_pre_reload_split ()))
22396 : return -1;
22397 : return 591; /* *addhi3_eq_0 */
22398 :
22399 : case 2:
22400 : if (!
22401 : #line 10526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22402 : (ix86_unary_operator_ok (PLUS, SImode, operands)
22403 : && ix86_pre_reload_split ()))
22404 : return -1;
22405 : return 592; /* *addsi3_eq_0 */
22406 :
22407 : case 3:
22408 : if (!(
22409 : #line 10526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22410 : (ix86_unary_operator_ok (PLUS, DImode, operands)
22411 : && ix86_pre_reload_split ()) &&
22412 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22413 : (TARGET_64BIT)))
22414 : return -1;
22415 : return 593; /* *adddi3_eq_0 */
22416 :
22417 : default:
22418 : return -1;
22419 : }
22420 :
22421 : case NE:
22422 : switch (pattern364 (x1))
22423 : {
22424 : case 0:
22425 : if (!
22426 : #line 10547 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22427 : (ix86_unary_operator_ok (PLUS, QImode, operands)
22428 : && ix86_pre_reload_split ()))
22429 : return -1;
22430 : return 594; /* *addqi3_ne_0 */
22431 :
22432 : case 1:
22433 : if (!
22434 : #line 10547 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22435 : (ix86_unary_operator_ok (PLUS, HImode, operands)
22436 : && ix86_pre_reload_split ()))
22437 : return -1;
22438 : return 595; /* *addhi3_ne_0 */
22439 :
22440 : case 2:
22441 : if (!
22442 : #line 10547 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22443 : (ix86_unary_operator_ok (PLUS, SImode, operands)
22444 : && ix86_pre_reload_split ()))
22445 : return -1;
22446 : return 596; /* *addsi3_ne_0 */
22447 :
22448 : case 3:
22449 : if (!(
22450 : #line 10547 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22451 : (ix86_unary_operator_ok (PLUS, DImode, operands)
22452 : && ix86_pre_reload_split ()) &&
22453 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22454 : (TARGET_64BIT)))
22455 : return -1;
22456 : return 597; /* *adddi3_ne_0 */
22457 :
22458 : default:
22459 : return -1;
22460 : }
22461 :
22462 : case MINUS:
22463 : x6 = XVECEXP (x1, 0, 1);
22464 : if (pattern355 (x6) != 0)
22465 : return -1;
22466 : switch (pattern946 (x2))
22467 : {
22468 : case 0:
22469 : if (!
22470 : #line 10595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22471 : (CONST_INT_P (operands[2])
22472 : && (QImode != DImode
22473 : || INTVAL (operands[2]) != HOST_WIDE_INT_C (-0x80000000))
22474 : && ix86_binary_operator_ok (MINUS, QImode, operands, TARGET_APX_NDD)
22475 : && ix86_pre_reload_split ()))
22476 : return -1;
22477 : return 602; /* *subqi3_ne */
22478 :
22479 : case 1:
22480 : if (!
22481 : #line 10595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22482 : (CONST_INT_P (operands[2])
22483 : && (HImode != DImode
22484 : || INTVAL (operands[2]) != HOST_WIDE_INT_C (-0x80000000))
22485 : && ix86_binary_operator_ok (MINUS, HImode, operands, TARGET_APX_NDD)
22486 : && ix86_pre_reload_split ()))
22487 : return -1;
22488 : return 603; /* *subhi3_ne */
22489 :
22490 : case 2:
22491 : if (!
22492 : #line 10595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22493 : (CONST_INT_P (operands[2])
22494 : && (SImode != DImode
22495 : || INTVAL (operands[2]) != HOST_WIDE_INT_C (-0x80000000))
22496 : && ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)
22497 : && ix86_pre_reload_split ()))
22498 : return -1;
22499 : return 604; /* *subsi3_ne */
22500 :
22501 : case 3:
22502 : if (!(
22503 : #line 10595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22504 : (CONST_INT_P (operands[2])
22505 : && (DImode != DImode
22506 : || INTVAL (operands[2]) != HOST_WIDE_INT_C (-0x80000000))
22507 : && ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)
22508 : && ix86_pre_reload_split ()) &&
22509 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22510 : (TARGET_64BIT)))
22511 : return -1;
22512 : return 605; /* *subdi3_ne */
22513 :
22514 : case 4:
22515 : if (!
22516 : #line 10624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22517 : (CONST_INT_P (operands[2])
22518 : && (QImode != DImode
22519 : || INTVAL (operands[2]) != HOST_WIDE_INT_C (-0x80000000))
22520 : && ix86_binary_operator_ok (MINUS, QImode, operands, TARGET_APX_NDD)
22521 : && ix86_pre_reload_split ()))
22522 : return -1;
22523 : return 606; /* *subqi3_eq_1 */
22524 :
22525 : case 5:
22526 : if (!
22527 : #line 10624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22528 : (CONST_INT_P (operands[2])
22529 : && (HImode != DImode
22530 : || INTVAL (operands[2]) != HOST_WIDE_INT_C (-0x80000000))
22531 : && ix86_binary_operator_ok (MINUS, HImode, operands, TARGET_APX_NDD)
22532 : && ix86_pre_reload_split ()))
22533 : return -1;
22534 : return 607; /* *subhi3_eq_1 */
22535 :
22536 : case 6:
22537 : if (!
22538 : #line 10624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22539 : (CONST_INT_P (operands[2])
22540 : && (SImode != DImode
22541 : || INTVAL (operands[2]) != HOST_WIDE_INT_C (-0x80000000))
22542 : && ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)
22543 : && ix86_pre_reload_split ()))
22544 : return -1;
22545 : return 608; /* *subsi3_eq_1 */
22546 :
22547 : case 7:
22548 : if (!(
22549 : #line 10624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22550 : (CONST_INT_P (operands[2])
22551 : && (DImode != DImode
22552 : || INTVAL (operands[2]) != HOST_WIDE_INT_C (-0x80000000))
22553 : && ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)
22554 : && ix86_pre_reload_split ()) &&
22555 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22556 : (TARGET_64BIT)))
22557 : return -1;
22558 : return 609; /* *subdi3_eq_1 */
22559 :
22560 : default:
22561 : return -1;
22562 : }
22563 :
22564 : case LSHIFTRT:
22565 : x10 = XEXP (x4, 1);
22566 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
22567 : return -1;
22568 : x8 = XEXP (x3, 1);
22569 : if (GET_CODE (x8) != ASHIFT)
22570 : return -1;
22571 : x11 = XEXP (x8, 0);
22572 : if (GET_CODE (x11) != LTU)
22573 : return -1;
22574 : x12 = XEXP (x11, 0);
22575 : if (GET_CODE (x12) != REG
22576 : || REGNO (x12) != 17
22577 : || GET_MODE (x12) != E_CCCmode)
22578 : return -1;
22579 : x13 = XEXP (x11, 1);
22580 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
22581 : return -1;
22582 : x14 = XEXP (x8, 1);
22583 : if (GET_CODE (x14) != CONST_INT
22584 : || pattern349 (x1) != 0)
22585 : return -1;
22586 : switch (XWINT (x14, 0))
22587 : {
22588 : case 31L:
22589 : if (pattern1698 (x3,
22590 : E_SImode) != 0)
22591 : return -1;
22592 : return 1417; /* rcrsi2 */
22593 :
22594 : case 63L:
22595 : if (pattern1698 (x3,
22596 : E_DImode) != 0
22597 : || !
22598 : #line 19114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22599 : (TARGET_64BIT))
22600 : return -1;
22601 : return 1418; /* rcrdi2 */
22602 :
22603 : default:
22604 : return -1;
22605 : }
22606 :
22607 : case UNSPEC:
22608 : x6 = XVECEXP (x1, 0, 1);
22609 : if (pattern355 (x6) != 0)
22610 : return -1;
22611 : switch (pattern950 (x2))
22612 : {
22613 : case 0:
22614 : if (!
22615 : #line 1409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22616 : (ptr_mode == SImode))
22617 : return -1;
22618 : return 1695; /* *add_tp_si */
22619 :
22620 : case 1:
22621 : if (!
22622 : #line 1409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22623 : (ptr_mode == DImode))
22624 : return -1;
22625 : return 1696; /* *add_tp_di */
22626 :
22627 : case 2:
22628 : if (!
22629 : #line 23689 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22630 : (!TARGET_64BIT && TARGET_GNU2_TLS))
22631 : return -1;
22632 : return 1700; /* *tls_dynamic_gnu2_combine_32 */
22633 :
22634 : case 3:
22635 : if (!(
22636 : #line 23752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22637 : (TARGET_64BIT && TARGET_GNU2_TLS) &&
22638 : #line 1409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22639 : (ptr_mode == SImode)))
22640 : return -1;
22641 : return 1705; /* *tls_dynamic_gnu2_combine_64_si */
22642 :
22643 : case 4:
22644 : if (!(
22645 : #line 23752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22646 : (TARGET_64BIT && TARGET_GNU2_TLS) &&
22647 : #line 1409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22648 : (ptr_mode == DImode)))
22649 : return -1;
22650 : return 1706; /* *tls_dynamic_gnu2_combine_64_di */
22651 :
22652 : default:
22653 : return -1;
22654 : }
22655 :
22656 : default:
22657 : return -1;
22658 : }
22659 : }
22660 :
22661 : int
22662 : recog_404 (rtx x1 ATTRIBUTE_UNUSED,
22663 : rtx_insn *insn ATTRIBUTE_UNUSED,
22664 : int *pnum_clobbers ATTRIBUTE_UNUSED)
22665 : {
22666 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
22667 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
22668 : rtx x10, x11;
22669 : int res ATTRIBUTE_UNUSED;
22670 : x2 = XVECEXP (x1, 0, 0);
22671 : x3 = XEXP (x2, 1);
22672 : x4 = XEXP (x3, 0);
22673 : x5 = XEXP (x4, 1);
22674 : if (GET_CODE (x5) != CONST_INT)
22675 : return -1;
22676 : switch (pattern703 (x1))
22677 : {
22678 : case 0:
22679 : switch (XWINT (x5, 0))
22680 : {
22681 : case 0L:
22682 : x6 = XEXP (x3, 1);
22683 : if (GET_CODE (x6) != PLUS)
22684 : return -1;
22685 : x7 = XEXP (x6, 1);
22686 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + -1])
22687 : return -1;
22688 : x8 = XEXP (x2, 0);
22689 : operands[0] = x8;
22690 : operands[1] = x4;
22691 : x9 = XEXP (x4, 0);
22692 : operands[2] = x9;
22693 : switch (pattern1588 (x3))
22694 : {
22695 : case 0:
22696 : if (!
22697 : #line 8797 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22698 : (TARGET_CMOVE))
22699 : return -1;
22700 : return 453; /* *dec_cmovhi */
22701 :
22702 : case 1:
22703 : if (!
22704 : #line 8797 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22705 : (TARGET_CMOVE))
22706 : return -1;
22707 : return 454; /* *dec_cmovsi */
22708 :
22709 : case 2:
22710 : if (!(
22711 : #line 8797 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22712 : (TARGET_CMOVE) &&
22713 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22714 : (TARGET_64BIT)))
22715 : return -1;
22716 : return 455; /* *dec_cmovdi */
22717 :
22718 : default:
22719 : return -1;
22720 : }
22721 :
22722 : case -1L:
22723 : switch (pattern1193 (x2))
22724 : {
22725 : case 0:
22726 : if (!(
22727 : #line 2442 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22728 : (TARGET_AVX512BW) &&
22729 : #line 1556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22730 : (TARGET_AVX512DQ)))
22731 : return -1;
22732 : return 2692; /* *kortest_cmpqi_jcc */
22733 :
22734 : case 1:
22735 : if (!
22736 : #line 2442 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22737 : (TARGET_AVX512BW))
22738 : return -1;
22739 : return 2693; /* *kortest_cmphi_jcc */
22740 :
22741 : case 2:
22742 : if (!
22743 : #line 2442 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22744 : (TARGET_AVX512BW))
22745 : return -1;
22746 : return 2694; /* *kortest_cmpsi_jcc */
22747 :
22748 : case 3:
22749 : if (!(
22750 : #line 2442 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22751 : (TARGET_AVX512BW) &&
22752 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22753 : (TARGET_AVX512BW && TARGET_64BIT)))
22754 : return -1;
22755 : return 2695; /* *kortest_cmpdi_jcc */
22756 :
22757 : case 4:
22758 : if (!(
22759 : #line 2478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22760 : (TARGET_AVX512BW && TARGET_CMOVE && !TARGET_PARTIAL_REG_STALL) &&
22761 : #line 1556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22762 : (TARGET_AVX512DQ)))
22763 : return -1;
22764 : return 2696; /* *kortest_cmpqi_movqicc */
22765 :
22766 : case 5:
22767 : if (!
22768 : #line 2478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22769 : (TARGET_AVX512BW && TARGET_CMOVE && !TARGET_PARTIAL_REG_STALL))
22770 : return -1;
22771 : return 2697; /* *kortest_cmphi_movqicc */
22772 :
22773 : case 6:
22774 : if (!(
22775 : #line 2478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22776 : (TARGET_AVX512BW && TARGET_CMOVE && !TARGET_PARTIAL_REG_STALL) &&
22777 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22778 : (TARGET_AVX512BW)))
22779 : return -1;
22780 : return 2698; /* *kortest_cmpsi_movqicc */
22781 :
22782 : case 7:
22783 : if (!(
22784 : #line 2478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22785 : (TARGET_AVX512BW && TARGET_CMOVE && !TARGET_PARTIAL_REG_STALL) &&
22786 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22787 : (TARGET_AVX512BW && TARGET_64BIT)))
22788 : return -1;
22789 : return 2699; /* *kortest_cmpdi_movqicc */
22790 :
22791 : case 8:
22792 : if (!(
22793 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22794 : (TARGET_AVX512BW && TARGET_CMOVE
22795 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) &&
22796 : #line 1556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22797 : (TARGET_AVX512DQ)))
22798 : return -1;
22799 : return 2700; /* *kortest_cmpqi_movhicc */
22800 :
22801 : case 9:
22802 : if (!
22803 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22804 : (TARGET_AVX512BW && TARGET_CMOVE
22805 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))))
22806 : return -1;
22807 : return 2703; /* *kortest_cmphi_movhicc */
22808 :
22809 : case 10:
22810 : if (!(
22811 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22812 : (TARGET_AVX512BW && TARGET_CMOVE
22813 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) &&
22814 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22815 : (TARGET_AVX512BW)))
22816 : return -1;
22817 : return 2706; /* *kortest_cmpsi_movhicc */
22818 :
22819 : case 11:
22820 : if (!(
22821 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22822 : (TARGET_AVX512BW && TARGET_CMOVE
22823 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) &&
22824 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22825 : (TARGET_AVX512BW && TARGET_64BIT)))
22826 : return -1;
22827 : return 2709; /* *kortest_cmpdi_movhicc */
22828 :
22829 : case 12:
22830 : if (!(
22831 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22832 : (TARGET_AVX512BW && TARGET_CMOVE
22833 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) &&
22834 : #line 1556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22835 : (TARGET_AVX512DQ)))
22836 : return -1;
22837 : return 2701; /* *kortest_cmpqi_movsicc */
22838 :
22839 : case 13:
22840 : if (!
22841 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22842 : (TARGET_AVX512BW && TARGET_CMOVE
22843 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))))
22844 : return -1;
22845 : return 2704; /* *kortest_cmphi_movsicc */
22846 :
22847 : case 14:
22848 : if (!(
22849 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22850 : (TARGET_AVX512BW && TARGET_CMOVE
22851 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) &&
22852 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22853 : (TARGET_AVX512BW)))
22854 : return -1;
22855 : return 2707; /* *kortest_cmpsi_movsicc */
22856 :
22857 : case 15:
22858 : if (!(
22859 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22860 : (TARGET_AVX512BW && TARGET_CMOVE
22861 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) &&
22862 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22863 : (TARGET_AVX512BW && TARGET_64BIT)))
22864 : return -1;
22865 : return 2710; /* *kortest_cmpdi_movsicc */
22866 :
22867 : case 16:
22868 : if (!(
22869 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22870 : (TARGET_AVX512BW && TARGET_CMOVE
22871 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) && ((((
22872 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22873 : (TARGET_64BIT) &&
22874 : #line 1556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22875 : (TARGET_AVX512DQ)) &&
22876 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22877 : (TARGET_64BIT)) &&
22878 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22879 : (TARGET_64BIT)) &&
22880 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22881 : (TARGET_64BIT))))
22882 : return -1;
22883 : return 2702; /* *kortest_cmpqi_movdicc */
22884 :
22885 : case 17:
22886 : if (!(
22887 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22888 : (TARGET_AVX512BW && TARGET_CMOVE
22889 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) &&
22890 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22891 : (TARGET_64BIT)))
22892 : return -1;
22893 : return 2705; /* *kortest_cmphi_movdicc */
22894 :
22895 : case 18:
22896 : if (!(
22897 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22898 : (TARGET_AVX512BW && TARGET_CMOVE
22899 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) && ((((
22900 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22901 : (TARGET_64BIT) &&
22902 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22903 : (TARGET_AVX512BW)) &&
22904 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22905 : (TARGET_64BIT)) &&
22906 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22907 : (TARGET_64BIT)) &&
22908 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22909 : (TARGET_64BIT))))
22910 : return -1;
22911 : return 2708; /* *kortest_cmpsi_movdicc */
22912 :
22913 : case 19:
22914 : if (!(
22915 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22916 : (TARGET_AVX512BW && TARGET_CMOVE
22917 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) && ((((
22918 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22919 : (TARGET_64BIT) &&
22920 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22921 : (TARGET_AVX512BW && TARGET_64BIT)) &&
22922 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22923 : (TARGET_64BIT)) &&
22924 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22925 : (TARGET_64BIT)) &&
22926 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22927 : (TARGET_64BIT))))
22928 : return -1;
22929 : return 2711; /* *kortest_cmpdi_movdicc */
22930 :
22931 : default:
22932 : return -1;
22933 : }
22934 :
22935 : default:
22936 : return -1;
22937 : }
22938 :
22939 : case 1:
22940 : x9 = XEXP (x4, 0);
22941 : x10 = XEXP (x9, 1);
22942 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
22943 : || XWINT (x5, 0) != 0L)
22944 : return -1;
22945 : switch (pattern1346 (x2))
22946 : {
22947 : case 0:
22948 : x11 = XEXP (x9, 2);
22949 : operands[2] = x11;
22950 : switch (pattern1706 (x3))
22951 : {
22952 : case 0:
22953 : if (
22954 : #line 19549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22955 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
22956 : && (CONST_INT_P (operands[2])
22957 : ? (INTVAL (operands[2]) < GET_MODE_BITSIZE (SImode)
22958 : && INTVAL (operands[2])
22959 : >= (optimize_function_for_size_p (cfun) ? 8 : 32))
22960 : : !memory_operand (operands[1], SImode))
22961 : && ix86_pre_reload_split ()))
22962 : return 1456; /* *jcc_btsi */
22963 : break;
22964 :
22965 : case 1:
22966 : if ((
22967 : #line 19549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22968 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
22969 : && (CONST_INT_P (operands[2])
22970 : ? (INTVAL (operands[2]) < GET_MODE_BITSIZE (DImode)
22971 : && INTVAL (operands[2])
22972 : >= (optimize_function_for_size_p (cfun) ? 8 : 32))
22973 : : !memory_operand (operands[1], DImode))
22974 : && ix86_pre_reload_split ()) &&
22975 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22976 : (TARGET_64BIT)))
22977 : return 1457; /* *jcc_btdi */
22978 : break;
22979 :
22980 : default:
22981 : break;
22982 : }
22983 : if (GET_CODE (x11) != SUBREG)
22984 : return -1;
22985 : switch (pattern1708 (x3))
22986 : {
22987 : case 0:
22988 : if (!
22989 : #line 19625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22990 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
22991 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
22992 : == GET_MODE_BITSIZE (SImode)-1
22993 : && ix86_pre_reload_split ()))
22994 : return -1;
22995 : return 1460; /* *jcc_btsi_mask_1 */
22996 :
22997 : case 1:
22998 : if (!
22999 : #line 19625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23000 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
23001 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
23002 : == GET_MODE_BITSIZE (SImode)-1
23003 : && ix86_pre_reload_split ()))
23004 : return -1;
23005 : return 1462; /* *jcc_btsi_mask_1 */
23006 :
23007 : case 2:
23008 : if (!(
23009 : #line 19625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23010 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
23011 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
23012 : == GET_MODE_BITSIZE (SImode)-1
23013 : && ix86_pre_reload_split ()) &&
23014 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23015 : (TARGET_64BIT)))
23016 : return -1;
23017 : return 1464; /* *jcc_btsi_mask_1 */
23018 :
23019 : case 3:
23020 : if (!(
23021 : #line 19625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23022 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
23023 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
23024 : == GET_MODE_BITSIZE (DImode)-1
23025 : && ix86_pre_reload_split ()) &&
23026 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23027 : (TARGET_64BIT)))
23028 : return -1;
23029 : return 1461; /* *jcc_btdi_mask_1 */
23030 :
23031 : case 4:
23032 : if (!(
23033 : #line 19625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23034 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
23035 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
23036 : == GET_MODE_BITSIZE (DImode)-1
23037 : && ix86_pre_reload_split ()) &&
23038 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23039 : (TARGET_64BIT)))
23040 : return -1;
23041 : return 1463; /* *jcc_btdi_mask_1 */
23042 :
23043 : case 5:
23044 : if (!(
23045 : #line 19625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23046 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
23047 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
23048 : == GET_MODE_BITSIZE (DImode)-1
23049 : && ix86_pre_reload_split ()) &&
23050 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23051 : (TARGET_64BIT)))
23052 : return -1;
23053 : return 1465; /* *jcc_btdi_mask_1 */
23054 :
23055 : default:
23056 : return -1;
23057 : }
23058 :
23059 : case 1:
23060 : if (!
23061 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23062 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
23063 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
23064 : == GET_MODE_BITSIZE (SImode)-1
23065 : && ix86_pre_reload_split ()))
23066 : return -1;
23067 : return 1458; /* *jcc_btsi_mask */
23068 :
23069 : case 2:
23070 : if (!(
23071 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23072 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
23073 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
23074 : == GET_MODE_BITSIZE (DImode)-1
23075 : && ix86_pre_reload_split ()) &&
23076 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23077 : (TARGET_64BIT)))
23078 : return -1;
23079 : return 1459; /* *jcc_btdi_mask */
23080 :
23081 : default:
23082 : return -1;
23083 : }
23084 :
23085 : default:
23086 : return -1;
23087 : }
23088 : }
23089 :
23090 : int
23091 : recog_417 (rtx x1 ATTRIBUTE_UNUSED,
23092 : rtx_insn *insn ATTRIBUTE_UNUSED,
23093 : int *pnum_clobbers ATTRIBUTE_UNUSED)
23094 : {
23095 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
23096 : rtx x2, x3, x4, x5, x6, x7;
23097 : int res ATTRIBUTE_UNUSED;
23098 : x2 = XVECEXP (x1, 0, 0);
23099 : x3 = XEXP (x2, 0);
23100 : operands[0] = x3;
23101 : x4 = XEXP (x2, 1);
23102 : x5 = XEXP (x4, 0);
23103 : operands[1] = x5;
23104 : x6 = XVECEXP (x1, 0, 1);
23105 : switch (GET_CODE (x6))
23106 : {
23107 : case CLOBBER:
23108 : x7 = XEXP (x6, 0);
23109 : switch (pattern705 (x7))
23110 : {
23111 : case 0:
23112 : if (!register_operand (operands[0], E_DImode)
23113 : || GET_MODE (x4) != E_DImode
23114 : || !general_operand (operands[1], E_DImode))
23115 : return -1;
23116 : if ((
23117 : #line 14945 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23118 : (TARGET_CMOVE
23119 : && ix86_pre_reload_split ()) &&
23120 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23121 : (!TARGET_64BIT)))
23122 : return 1027; /* *absdi2_doubleword */
23123 : if (!(
23124 : #line 15032 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23125 : (TARGET_CMOVE
23126 : && (DImode != QImode || !TARGET_PARTIAL_REG_STALL)
23127 : && ix86_pre_reload_split ()) &&
23128 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23129 : (TARGET_64BIT)))
23130 : return -1;
23131 : return 1034; /* *absdi2_1 */
23132 :
23133 : case 1:
23134 : if (!register_operand (operands[0], E_TImode)
23135 : || GET_MODE (x4) != E_TImode
23136 : || !general_operand (operands[1], E_TImode)
23137 : || !(
23138 : #line 14945 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23139 : (TARGET_CMOVE
23140 : && ix86_pre_reload_split ()) &&
23141 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23142 : (TARGET_64BIT)))
23143 : return -1;
23144 : return 1028; /* *absti2_doubleword */
23145 :
23146 : case 2:
23147 : if (!register_operand (operands[0], E_QImode)
23148 : || GET_MODE (x4) != E_QImode
23149 : || !general_operand (operands[1], E_QImode)
23150 : || !
23151 : #line 15032 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23152 : (TARGET_CMOVE
23153 : && (QImode != QImode || !TARGET_PARTIAL_REG_STALL)
23154 : && ix86_pre_reload_split ()))
23155 : return -1;
23156 : return 1031; /* *absqi2_1 */
23157 :
23158 : case 3:
23159 : if (!register_operand (operands[0], E_HImode)
23160 : || GET_MODE (x4) != E_HImode
23161 : || !general_operand (operands[1], E_HImode)
23162 : || !
23163 : #line 15032 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23164 : (TARGET_CMOVE
23165 : && (HImode != QImode || !TARGET_PARTIAL_REG_STALL)
23166 : && ix86_pre_reload_split ()))
23167 : return -1;
23168 : return 1032; /* *abshi2_1 */
23169 :
23170 : case 4:
23171 : if (!register_operand (operands[0], E_SImode)
23172 : || GET_MODE (x4) != E_SImode
23173 : || !general_operand (operands[1], E_SImode)
23174 : || !
23175 : #line 15032 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23176 : (TARGET_CMOVE
23177 : && (SImode != QImode || !TARGET_PARTIAL_REG_STALL)
23178 : && ix86_pre_reload_split ()))
23179 : return -1;
23180 : return 1033; /* *abssi2_1 */
23181 :
23182 : case 5:
23183 : if (!register_operand (operands[0], E_SFmode)
23184 : || GET_MODE (x4) != E_SFmode
23185 : || !register_operand (operands[1], E_SFmode)
23186 : || !
23187 : #line 15155 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23188 : (TARGET_80387 && !(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)))
23189 : return -1;
23190 : return 1042; /* *abssf2_i387_1 */
23191 :
23192 : case 6:
23193 : if (!register_operand (operands[0], E_DFmode)
23194 : || GET_MODE (x4) != E_DFmode
23195 : || !register_operand (operands[1], E_DFmode)
23196 : || !
23197 : #line 15155 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23198 : (TARGET_80387 && !(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)))
23199 : return -1;
23200 : return 1044; /* *absdf2_i387_1 */
23201 :
23202 : case 7:
23203 : if (!register_operand (operands[0], E_XFmode)
23204 : || GET_MODE (x4) != E_XFmode
23205 : || !register_operand (operands[1], E_XFmode)
23206 : || !
23207 : #line 15155 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23208 : (TARGET_80387 && !(SSE_FLOAT_MODE_P (XFmode) && TARGET_SSE_MATH)))
23209 : return -1;
23210 : return 1046; /* *absxf2_i387_1 */
23211 :
23212 : default:
23213 : return -1;
23214 : }
23215 :
23216 : case USE:
23217 : switch (pattern709 (x1, pnum_clobbers))
23218 : {
23219 : case 0:
23220 : if (!
23221 : #line 15093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23222 : (TARGET_SSE))
23223 : return -1;
23224 : return 1039; /* *abstf2_1 */
23225 :
23226 : case 1:
23227 : if (!
23228 : #line 15179 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23229 : (TARGET_AVX512FP16))
23230 : return -1;
23231 : *pnum_clobbers = 1;
23232 : return 1048; /* *abshf2_1 */
23233 :
23234 : case 2:
23235 : if (!
23236 : #line 15195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23237 : (TARGET_80387 || (SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)))
23238 : return -1;
23239 : *pnum_clobbers = 1;
23240 : return 1050; /* *abssf2_1 */
23241 :
23242 : case 3:
23243 : if (!
23244 : #line 15195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23245 : (TARGET_80387 || (SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)))
23246 : return -1;
23247 : *pnum_clobbers = 1;
23248 : return 1052; /* *absdf2_1 */
23249 :
23250 : case 4:
23251 : if (!
23252 : #line 706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23253 : (TARGET_MMX_WITH_SSE))
23254 : return -1;
23255 : return 2105; /* *mmx_absv2sf2 */
23256 :
23257 : case 5:
23258 : if (!
23259 : #line 2263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23260 : (TARGET_SSE))
23261 : return -1;
23262 : return 2151; /* *mmx_absv2bf */
23263 :
23264 : case 6:
23265 : if (!(
23266 : #line 2263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23267 : (TARGET_SSE) &&
23268 : #line 2248 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23269 : (TARGET_MMX_WITH_SSE)))
23270 : return -1;
23271 : return 2153; /* *mmx_absv4bf */
23272 :
23273 : case 7:
23274 : if (!
23275 : #line 2263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23276 : (TARGET_SSE))
23277 : return -1;
23278 : return 2155; /* *mmx_absv2hf */
23279 :
23280 : case 8:
23281 : if (!(
23282 : #line 2263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23283 : (TARGET_SSE) &&
23284 : #line 2249 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23285 : (TARGET_MMX_WITH_SSE)))
23286 : return -1;
23287 : return 2157; /* *mmx_absv4hf */
23288 :
23289 : case 9:
23290 : if (!(
23291 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23292 : (TARGET_SSE) &&
23293 : #line 415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23294 : (TARGET_AVX512F)))
23295 : return -1;
23296 : return 2715; /* *absv32bf2 */
23297 :
23298 : case 10:
23299 : if (!(
23300 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23301 : (TARGET_SSE) &&
23302 : #line 416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23303 : (TARGET_AVX)))
23304 : return -1;
23305 : return 2717; /* *absv16bf2 */
23306 :
23307 : case 11:
23308 : if (!(
23309 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23310 : (TARGET_SSE) &&
23311 : #line 416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23312 : (TARGET_SSE2)))
23313 : return -1;
23314 : return 2719; /* *absv8bf2 */
23315 :
23316 : case 12:
23317 : if (!(
23318 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23319 : (TARGET_SSE) &&
23320 : #line 417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23321 : (TARGET_AVX512F)))
23322 : return -1;
23323 : return 2721; /* *absv32hf2 */
23324 :
23325 : case 13:
23326 : if (!(
23327 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23328 : (TARGET_SSE) &&
23329 : #line 418 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23330 : (TARGET_AVX)))
23331 : return -1;
23332 : return 2723; /* *absv16hf2 */
23333 :
23334 : case 14:
23335 : if (!(
23336 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23337 : (TARGET_SSE) &&
23338 : #line 418 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23339 : (TARGET_SSE2)))
23340 : return -1;
23341 : return 2725; /* *absv8hf2 */
23342 :
23343 : case 15:
23344 : if (!(
23345 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23346 : (TARGET_SSE) &&
23347 : #line 419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23348 : (TARGET_AVX512F)))
23349 : return -1;
23350 : return 2727; /* *absv16sf2 */
23351 :
23352 : case 16:
23353 : if (!(
23354 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23355 : (TARGET_SSE) &&
23356 : #line 419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23357 : (TARGET_AVX)))
23358 : return -1;
23359 : return 2729; /* *absv8sf2 */
23360 :
23361 : case 17:
23362 : if (!
23363 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23364 : (TARGET_SSE))
23365 : return -1;
23366 : return 2731; /* *absv4sf2 */
23367 :
23368 : case 18:
23369 : if (!(
23370 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23371 : (TARGET_SSE) &&
23372 : #line 420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23373 : (TARGET_AVX512F)))
23374 : return -1;
23375 : return 2733; /* *absv8df2 */
23376 :
23377 : case 19:
23378 : if (!(
23379 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23380 : (TARGET_SSE) &&
23381 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23382 : (TARGET_AVX)))
23383 : return -1;
23384 : return 2735; /* *absv4df2 */
23385 :
23386 : case 20:
23387 : if (!(
23388 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23389 : (TARGET_SSE) &&
23390 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23391 : (TARGET_SSE2)))
23392 : return -1;
23393 : return 2737; /* *absv2df2 */
23394 :
23395 : default:
23396 : return -1;
23397 : }
23398 :
23399 : default:
23400 : return -1;
23401 : }
23402 : }
23403 :
23404 : int
23405 : recog_427 (rtx x1 ATTRIBUTE_UNUSED,
23406 : rtx_insn *insn ATTRIBUTE_UNUSED,
23407 : int *pnum_clobbers ATTRIBUTE_UNUSED)
23408 : {
23409 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
23410 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
23411 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
23412 : rtx x18, x19, x20, x21;
23413 : int res ATTRIBUTE_UNUSED;
23414 : x2 = XVECEXP (x1, 0, 0);
23415 : x3 = XEXP (x2, 1);
23416 : x4 = XEXP (x3, 0);
23417 : if (GET_CODE (x4) != UNSPEC
23418 : || XVECLEN (x4, 0) != 4
23419 : || XINT (x4, 1) != 154)
23420 : return -1;
23421 : x5 = XVECEXP (x4, 0, 1);
23422 : if (GET_CODE (x5) != MEM)
23423 : return -1;
23424 : x6 = XEXP (x5, 0);
23425 : if (GET_CODE (x6) != UNSPEC
23426 : || XVECLEN (x6, 0) != 3
23427 : || XINT (x6, 1) != 155)
23428 : return -1;
23429 : x7 = XVECEXP (x4, 0, 2);
23430 : if (GET_CODE (x7) != MEM
23431 : || GET_MODE (x7) != E_BLKmode)
23432 : return -1;
23433 : x8 = XEXP (x7, 0);
23434 : if (GET_CODE (x8) != SCRATCH)
23435 : return -1;
23436 : x9 = XEXP (x3, 1);
23437 : if (GET_CODE (x9) != PARALLEL
23438 : || XVECLEN (x9, 0) != 4)
23439 : return -1;
23440 : x10 = XVECEXP (x9, 0, 0);
23441 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
23442 : return -1;
23443 : x11 = XVECEXP (x9, 0, 1);
23444 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
23445 : return -1;
23446 : x12 = XVECEXP (x9, 0, 2);
23447 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
23448 : return -1;
23449 : x13 = XVECEXP (x9, 0, 3);
23450 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
23451 : return -1;
23452 : x14 = XVECEXP (x1, 0, 1);
23453 : if (GET_CODE (x14) != CLOBBER)
23454 : return -1;
23455 : x15 = XEXP (x2, 0);
23456 : operands[0] = x15;
23457 : x16 = XVECEXP (x6, 0, 1);
23458 : if (!register_operand (x16, E_V4DImode))
23459 : return -1;
23460 : x17 = XVECEXP (x6, 0, 2);
23461 : if (!const1248_operand (x17, E_SImode))
23462 : return -1;
23463 : x18 = XEXP (x14, 0);
23464 : operands[1] = x18;
23465 : x19 = XVECEXP (x4, 0, 0);
23466 : switch (GET_CODE (x19))
23467 : {
23468 : case REG:
23469 : case SUBREG:
23470 : operands[2] = x19;
23471 : operands[7] = x5;
23472 : x20 = XVECEXP (x6, 0, 0);
23473 : operands[3] = x20;
23474 : operands[4] = x16;
23475 : operands[6] = x17;
23476 : x21 = XVECEXP (x4, 0, 3);
23477 : operands[5] = x21;
23478 : switch (GET_MODE (operands[0]))
23479 : {
23480 : case E_V4SImode:
23481 : switch (pattern1881 (x3,
23482 : E_V8SImode,
23483 : E_V4SImode,
23484 : E_SImode))
23485 : {
23486 : case 0:
23487 : if (!(
23488 : #line 30105 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23489 : (TARGET_AVX2) &&
23490 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23491 : (Pmode == SImode)))
23492 : return -1;
23493 : return 9807; /* *avx2_gatherdiv8si_3 */
23494 :
23495 : case 1:
23496 : if (!(
23497 : #line 30105 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23498 : (TARGET_AVX2) &&
23499 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23500 : (Pmode == DImode)))
23501 : return -1;
23502 : return 9809; /* *avx2_gatherdiv8si_3 */
23503 :
23504 : default:
23505 : return -1;
23506 : }
23507 :
23508 : case E_V4SFmode:
23509 : switch (pattern1881 (x3,
23510 : E_V8SFmode,
23511 : E_V4SFmode,
23512 : E_SFmode))
23513 : {
23514 : case 0:
23515 : if (!(
23516 : #line 30105 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23517 : (TARGET_AVX2) &&
23518 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23519 : (Pmode == SImode)))
23520 : return -1;
23521 : return 9808; /* *avx2_gatherdiv8sf_3 */
23522 :
23523 : case 1:
23524 : if (!(
23525 : #line 30105 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23526 : (TARGET_AVX2) &&
23527 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23528 : (Pmode == DImode)))
23529 : return -1;
23530 : return 9810; /* *avx2_gatherdiv8sf_3 */
23531 :
23532 : default:
23533 : return -1;
23534 : }
23535 :
23536 : default:
23537 : return -1;
23538 : }
23539 :
23540 : case PC:
23541 : operands[6] = x5;
23542 : x20 = XVECEXP (x6, 0, 0);
23543 : operands[2] = x20;
23544 : operands[3] = x16;
23545 : operands[5] = x17;
23546 : x21 = XVECEXP (x4, 0, 3);
23547 : operands[4] = x21;
23548 : switch (GET_MODE (operands[0]))
23549 : {
23550 : case E_V4SImode:
23551 : switch (pattern1877 (x3,
23552 : E_V8SImode,
23553 : E_V4SImode,
23554 : E_SImode))
23555 : {
23556 : case 0:
23557 : if (!(
23558 : #line 30129 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23559 : (TARGET_AVX2) &&
23560 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23561 : (Pmode == SImode)))
23562 : return -1;
23563 : return 9811; /* *avx2_gatherdiv8si_4 */
23564 :
23565 : case 1:
23566 : if (!(
23567 : #line 30129 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23568 : (TARGET_AVX2) &&
23569 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23570 : (Pmode == DImode)))
23571 : return -1;
23572 : return 9813; /* *avx2_gatherdiv8si_4 */
23573 :
23574 : default:
23575 : return -1;
23576 : }
23577 :
23578 : case E_V4SFmode:
23579 : switch (pattern1877 (x3,
23580 : E_V8SFmode,
23581 : E_V4SFmode,
23582 : E_SFmode))
23583 : {
23584 : case 0:
23585 : if (!(
23586 : #line 30129 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23587 : (TARGET_AVX2) &&
23588 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23589 : (Pmode == SImode)))
23590 : return -1;
23591 : return 9812; /* *avx2_gatherdiv8sf_4 */
23592 :
23593 : case 1:
23594 : if (!(
23595 : #line 30129 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23596 : (TARGET_AVX2) &&
23597 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23598 : (Pmode == DImode)))
23599 : return -1;
23600 : return 9814; /* *avx2_gatherdiv8sf_4 */
23601 :
23602 : default:
23603 : return -1;
23604 : }
23605 :
23606 : default:
23607 : return -1;
23608 : }
23609 :
23610 : default:
23611 : return -1;
23612 : }
23613 : }
23614 :
23615 : int
23616 : recog_434 (rtx x1 ATTRIBUTE_UNUSED,
23617 : rtx_insn *insn ATTRIBUTE_UNUSED,
23618 : int *pnum_clobbers ATTRIBUTE_UNUSED)
23619 : {
23620 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
23621 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
23622 : rtx x10, x11, x12, x13, x14, x15, x16;
23623 : int res ATTRIBUTE_UNUSED;
23624 : x2 = XVECEXP (x1, 0, 0);
23625 : x3 = XEXP (x2, 1);
23626 : x4 = XEXP (x3, 0);
23627 : if (GET_CODE (x4) != MEM
23628 : || GET_MODE (x4) != E_QImode)
23629 : return -1;
23630 : x5 = XEXP (x2, 0);
23631 : operands[0] = x5;
23632 : x6 = XEXP (x4, 0);
23633 : switch (GET_CODE (x6))
23634 : {
23635 : case SUBREG:
23636 : case MEM:
23637 : operands[1] = x6;
23638 : if (!memory_operand (operands[1], E_SImode)
23639 : || pattern386 (x1) != 0)
23640 : return -1;
23641 : x7 = XEXP (x3, 1);
23642 : operands[2] = x7;
23643 : x8 = XVECEXP (x1, 0, 1);
23644 : x9 = XEXP (x8, 1);
23645 : x10 = XEXP (x9, 1);
23646 : operands[3] = x10;
23647 : if (!immediate_operand (operands[3], E_SImode)
23648 : || !
23649 : #line 20827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23650 : (!TARGET_64BIT && !TARGET_INDIRECT_BRANCH_REGISTER))
23651 : return -1;
23652 : return 1517; /* *sibcall_value_pop_memory */
23653 :
23654 : case SYMBOL_REF:
23655 : if (!constant_call_address_operand (x6, E_VOIDmode))
23656 : return -1;
23657 : x8 = XVECEXP (x1, 0, 1);
23658 : if (GET_CODE (x8) != UNSPEC)
23659 : return -1;
23660 : x11 = XVECEXP (x1, 0, 2);
23661 : if (GET_CODE (x11) != CLOBBER)
23662 : return -1;
23663 : switch (pattern1180 (x8))
23664 : {
23665 : case 0:
23666 : operands[2] = x6;
23667 : x7 = XEXP (x3, 1);
23668 : operands[3] = x7;
23669 : x12 = XVECEXP (x8, 0, 0);
23670 : operands[1] = x12;
23671 : if (!tls_symbolic_operand (operands[1], E_VOIDmode))
23672 : return -1;
23673 : x13 = XEXP (x11, 0);
23674 : operands[4] = x13;
23675 : switch (GET_MODE (operands[0]))
23676 : {
23677 : case E_SImode:
23678 : if (pattern1750 (x1,
23679 : E_SImode) != 0
23680 : || !(
23681 : #line 23352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23682 : (TARGET_64BIT) &&
23683 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23684 : (Pmode == SImode)))
23685 : return -1;
23686 : return 1684; /* *tls_global_dynamic_64_si */
23687 :
23688 : case E_DImode:
23689 : if (pattern1750 (x1,
23690 : E_DImode) != 0
23691 : || !(
23692 : #line 23352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23693 : (TARGET_64BIT) &&
23694 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23695 : (Pmode == DImode)))
23696 : return -1;
23697 : return 1685; /* *tls_global_dynamic_64_di */
23698 :
23699 : default:
23700 : return -1;
23701 : }
23702 :
23703 : case 1:
23704 : operands[1] = x6;
23705 : x7 = XEXP (x3, 1);
23706 : operands[2] = x7;
23707 : x13 = XEXP (x11, 0);
23708 : operands[3] = x13;
23709 : switch (GET_MODE (operands[0]))
23710 : {
23711 : case E_SImode:
23712 : if (pattern1679 (x1,
23713 : E_SImode) != 0
23714 : || !(
23715 : #line 23475 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23716 : (TARGET_64BIT) &&
23717 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23718 : (Pmode == SImode)))
23719 : return -1;
23720 : return 1688; /* *tls_local_dynamic_base_64_si */
23721 :
23722 : case E_DImode:
23723 : if (pattern1679 (x1,
23724 : E_DImode) != 0
23725 : || !(
23726 : #line 23475 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23727 : (TARGET_64BIT) &&
23728 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23729 : (Pmode == DImode)))
23730 : return -1;
23731 : return 1689; /* *tls_local_dynamic_base_64_di */
23732 :
23733 : default:
23734 : return -1;
23735 : }
23736 :
23737 : default:
23738 : return -1;
23739 : }
23740 :
23741 : case PLUS:
23742 : if (GET_MODE (x6) != E_DImode)
23743 : return -1;
23744 : x8 = XVECEXP (x1, 0, 1);
23745 : if (GET_CODE (x8) != UNSPEC)
23746 : return -1;
23747 : x11 = XVECEXP (x1, 0, 2);
23748 : if (GET_CODE (x11) != CLOBBER
23749 : || !register_operand (operands[0], E_DImode)
23750 : || GET_MODE (x3) != E_DImode)
23751 : return -1;
23752 : x14 = XEXP (x6, 0);
23753 : if (!register_operand (x14, E_DImode))
23754 : return -1;
23755 : x15 = XEXP (x6, 1);
23756 : if (!immediate_operand (x15, E_DImode)
23757 : || GET_MODE (x8) != E_DImode)
23758 : return -1;
23759 : x13 = XEXP (x11, 0);
23760 : if (!register_operand (x13, E_DImode))
23761 : return -1;
23762 : switch (pattern1180 (x8))
23763 : {
23764 : case 0:
23765 : x16 = XVECEXP (x8, 0, 1);
23766 : if (GET_MODE (x16) != E_DImode)
23767 : return -1;
23768 : operands[2] = x14;
23769 : operands[3] = x15;
23770 : x7 = XEXP (x3, 1);
23771 : operands[4] = x7;
23772 : x12 = XVECEXP (x8, 0, 0);
23773 : operands[1] = x12;
23774 : if (!tls_symbolic_operand (operands[1], E_VOIDmode))
23775 : return -1;
23776 : operands[5] = x13;
23777 : if (!
23778 : #line 23395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23779 : (TARGET_64BIT && ix86_cmodel == CM_LARGE_PIC && !TARGET_PECOFF
23780 : && GET_CODE (operands[3]) == CONST
23781 : && GET_CODE (XEXP (operands[3], 0)) == UNSPEC
23782 : && XINT (XEXP (operands[3], 0), 1) == UNSPEC_PLTOFF))
23783 : return -1;
23784 : return 1686; /* *tls_global_dynamic_64_largepic */
23785 :
23786 : case 1:
23787 : x12 = XVECEXP (x8, 0, 0);
23788 : if (GET_MODE (x12) != E_DImode)
23789 : return -1;
23790 : operands[1] = x14;
23791 : operands[2] = x15;
23792 : x7 = XEXP (x3, 1);
23793 : operands[3] = x7;
23794 : operands[4] = x13;
23795 : if (!
23796 : #line 23497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23797 : (TARGET_64BIT && ix86_cmodel == CM_LARGE_PIC && !TARGET_PECOFF
23798 : && GET_CODE (operands[2]) == CONST
23799 : && GET_CODE (XEXP (operands[2], 0)) == UNSPEC
23800 : && XINT (XEXP (operands[2], 0), 1) == UNSPEC_PLTOFF))
23801 : return -1;
23802 : return 1690; /* *tls_local_dynamic_base_64_largepic */
23803 :
23804 : default:
23805 : return -1;
23806 : }
23807 :
23808 : default:
23809 : return -1;
23810 : }
23811 : }
23812 :
23813 : int
23814 : recog_439 (rtx x1 ATTRIBUTE_UNUSED,
23815 : rtx_insn *insn ATTRIBUTE_UNUSED,
23816 : int *pnum_clobbers ATTRIBUTE_UNUSED)
23817 : {
23818 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
23819 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
23820 : rtx x10, x11, x12, x13, x14, x15, x16;
23821 : int res ATTRIBUTE_UNUSED;
23822 : x2 = XVECEXP (x1, 0, 0);
23823 : if (GET_CODE (x2) != SET)
23824 : return -1;
23825 : x3 = XVECEXP (x1, 0, 3);
23826 : if (GET_CODE (x3) != CLOBBER)
23827 : return -1;
23828 : x4 = XEXP (x2, 1);
23829 : switch (GET_CODE (x4))
23830 : {
23831 : case UNSIGNED_FIX:
23832 : switch (pattern388 (x1))
23833 : {
23834 : case 0:
23835 : if (!
23836 : #line 5920 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23837 : (!TARGET_64BIT && TARGET_SSE2 && TARGET_SSE_MATH
23838 : && optimize_function_for_speed_p (cfun)))
23839 : return -1;
23840 : return 227; /* *fixuns_truncsf_1 */
23841 :
23842 : case 1:
23843 : if (!
23844 : #line 5920 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23845 : (!TARGET_64BIT && TARGET_SSE2 && TARGET_SSE_MATH
23846 : && optimize_function_for_speed_p (cfun)))
23847 : return -1;
23848 : return 228; /* *fixuns_truncdf_1 */
23849 :
23850 : default:
23851 : return -1;
23852 : }
23853 :
23854 : case FIX:
23855 : if (GET_MODE (x4) != E_DImode)
23856 : return -1;
23857 : x5 = XVECEXP (x1, 0, 1);
23858 : if (GET_CODE (x5) != USE)
23859 : return -1;
23860 : x6 = XVECEXP (x1, 0, 2);
23861 : if (GET_CODE (x6) != USE)
23862 : return -1;
23863 : x7 = XEXP (x2, 0);
23864 : operands[0] = x7;
23865 : if (!nonimmediate_operand (operands[0], E_DImode))
23866 : return -1;
23867 : x8 = XEXP (x4, 0);
23868 : operands[1] = x8;
23869 : if (!register_operand (operands[1], E_VOIDmode))
23870 : return -1;
23871 : x9 = XEXP (x5, 0);
23872 : operands[2] = x9;
23873 : if (!memory_operand (operands[2], E_HImode))
23874 : return -1;
23875 : x10 = XEXP (x6, 0);
23876 : operands[3] = x10;
23877 : if (!memory_operand (operands[3], E_HImode))
23878 : return -1;
23879 : x11 = XEXP (x3, 0);
23880 : operands[4] = x11;
23881 : if (!scratch_operand (operands[4], E_XFmode)
23882 : || !
23883 : #line 6030 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23884 : (X87_FLOAT_MODE_P (GET_MODE (operands[1]))
23885 : && !TARGET_FISTTP
23886 : && !(TARGET_64BIT && SSE_FLOAT_MODE_P (GET_MODE (operands[1])))))
23887 : return -1;
23888 : return 239; /* fix_truncdi_i387 */
23889 :
23890 : case FLOAT:
23891 : switch (pattern390 (x1))
23892 : {
23893 : case 0:
23894 : if (!
23895 : #line 6215 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23896 : (!TARGET_64BIT && TARGET_INTER_UNIT_MOVES_TO_VEC
23897 : && TARGET_80387 && X87_ENABLE_FLOAT (SFmode, DImode)
23898 : && TARGET_SSE2 && optimize_function_for_speed_p (cfun)))
23899 : return -1;
23900 : return 258; /* floatdisf2_i387_with_xmm */
23901 :
23902 : case 1:
23903 : if (!
23904 : #line 6215 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23905 : (!TARGET_64BIT && TARGET_INTER_UNIT_MOVES_TO_VEC
23906 : && TARGET_80387 && X87_ENABLE_FLOAT (DFmode, DImode)
23907 : && TARGET_SSE2 && optimize_function_for_speed_p (cfun)))
23908 : return -1;
23909 : return 259; /* floatdidf2_i387_with_xmm */
23910 :
23911 : case 2:
23912 : if (!
23913 : #line 6215 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23914 : (!TARGET_64BIT && TARGET_INTER_UNIT_MOVES_TO_VEC
23915 : && TARGET_80387 && X87_ENABLE_FLOAT (XFmode, DImode)
23916 : && TARGET_SSE2 && optimize_function_for_speed_p (cfun)))
23917 : return -1;
23918 : return 260; /* floatdixf2_i387_with_xmm */
23919 :
23920 : default:
23921 : return -1;
23922 : }
23923 :
23924 : case DIV:
23925 : switch (pattern395 (x1,
23926 : MOD))
23927 : {
23928 : case 0:
23929 : return 667; /* divmodsi4_1 */
23930 :
23931 : case 1:
23932 : if (!
23933 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23934 : (TARGET_64BIT))
23935 : return -1;
23936 : return 668; /* divmoddi4_1 */
23937 :
23938 : case 2:
23939 : if (!
23940 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23941 : (TARGET_HIMODE_MATH))
23942 : return -1;
23943 : return 695; /* *divmodhi4_noext */
23944 :
23945 : case 3:
23946 : return 697; /* *divmodsi4_noext */
23947 :
23948 : case 4:
23949 : if (!
23950 : #line 1193 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23951 : (TARGET_64BIT))
23952 : return -1;
23953 : return 699; /* *divmoddi4_noext */
23954 :
23955 : default:
23956 : return -1;
23957 : }
23958 :
23959 : case UDIV:
23960 : switch (pattern395 (x1,
23961 : UMOD))
23962 : {
23963 : case 0:
23964 : return 669; /* udivmodsi4_1 */
23965 :
23966 : case 1:
23967 : if (!
23968 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23969 : (TARGET_64BIT))
23970 : return -1;
23971 : return 670; /* udivmoddi4_1 */
23972 :
23973 : case 2:
23974 : if (!
23975 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23976 : (TARGET_HIMODE_MATH))
23977 : return -1;
23978 : return 696; /* *udivmodhi4_noext */
23979 :
23980 : case 3:
23981 : return 698; /* *udivmodsi4_noext */
23982 :
23983 : case 4:
23984 : if (!
23985 : #line 1193 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23986 : (TARGET_64BIT))
23987 : return -1;
23988 : return 700; /* *udivmoddi4_noext */
23989 :
23990 : default:
23991 : return -1;
23992 : }
23993 :
23994 : case ZERO_EXTEND:
23995 : if (GET_MODE (x4) != E_DImode)
23996 : return -1;
23997 : x5 = XVECEXP (x1, 0, 1);
23998 : if (GET_CODE (x5) != SET)
23999 : return -1;
24000 : x11 = XEXP (x3, 0);
24001 : if (GET_CODE (x11) != REG
24002 : || REGNO (x11) != 17
24003 : || GET_MODE (x11) != E_CCmode)
24004 : return -1;
24005 : switch (pattern1065 (x1))
24006 : {
24007 : case 0:
24008 : switch (pattern1510 (x1,
24009 : MOD))
24010 : {
24011 : case 0:
24012 : if (!
24013 : #line 11828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24014 : (TARGET_64BIT))
24015 : return -1;
24016 : return 671; /* divmodsi4_zext_1 */
24017 :
24018 : case 1:
24019 : if (!
24020 : #line 12223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24021 : (TARGET_64BIT))
24022 : return -1;
24023 : return 701; /* *divmodsi4_noext_zext_1 */
24024 :
24025 : default:
24026 : return -1;
24027 : }
24028 :
24029 : case 1:
24030 : switch (pattern1510 (x1,
24031 : UMOD))
24032 : {
24033 : case 0:
24034 : if (!
24035 : #line 11864 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24036 : (TARGET_64BIT))
24037 : return -1;
24038 : return 672; /* udivmodsi4_zext_1 */
24039 :
24040 : case 1:
24041 : if (!
24042 : #line 12223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24043 : (TARGET_64BIT))
24044 : return -1;
24045 : return 702; /* *udivmodsi4_noext_zext_1 */
24046 :
24047 : default:
24048 : return -1;
24049 : }
24050 :
24051 : case 2:
24052 : switch (pattern1511 (x1,
24053 : DIV))
24054 : {
24055 : case 0:
24056 : if (!
24057 : #line 11887 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24058 : (TARGET_64BIT))
24059 : return -1;
24060 : return 673; /* divmodsi4_zext_2 */
24061 :
24062 : case 1:
24063 : if (!
24064 : #line 12237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24065 : (TARGET_64BIT))
24066 : return -1;
24067 : return 703; /* *divmodsi4_noext_zext_2 */
24068 :
24069 : default:
24070 : return -1;
24071 : }
24072 :
24073 : case 3:
24074 : switch (pattern1511 (x1,
24075 : UDIV))
24076 : {
24077 : case 0:
24078 : if (!
24079 : #line 11924 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24080 : (TARGET_64BIT))
24081 : return -1;
24082 : return 674; /* udivmodsi4_zext_2 */
24083 :
24084 : case 1:
24085 : if (!
24086 : #line 12237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24087 : (TARGET_64BIT))
24088 : return -1;
24089 : return 704; /* *udivmodsi4_noext_zext_2 */
24090 :
24091 : default:
24092 : return -1;
24093 : }
24094 :
24095 : default:
24096 : return -1;
24097 : }
24098 :
24099 : case UNSPEC:
24100 : x7 = XEXP (x2, 0);
24101 : operands[0] = x7;
24102 : switch (XVECLEN (x4, 0))
24103 : {
24104 : case 4:
24105 : if (XINT (x4, 1) != 21
24106 : || pattern825 (x4) != 0
24107 : || pattern1260 (x1) != 0
24108 : || !tls_symbolic_operand (operands[2], E_VOIDmode))
24109 : return -1;
24110 : x12 = XVECEXP (x4, 0, 2);
24111 : operands[3] = x12;
24112 : if (!constant_call_address_operand (operands[3], E_VOIDmode))
24113 : return -1;
24114 : x5 = XVECEXP (x1, 0, 1);
24115 : x9 = XEXP (x5, 0);
24116 : operands[4] = x9;
24117 : if (!scratch_operand (operands[4], E_SImode))
24118 : return -1;
24119 : x6 = XVECEXP (x1, 0, 2);
24120 : x10 = XEXP (x6, 0);
24121 : operands[5] = x10;
24122 : if (!scratch_operand (operands[5], E_SImode)
24123 : || !
24124 : #line 23308 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24125 : (!TARGET_64BIT && TARGET_GNU_TLS))
24126 : return -1;
24127 : return 1683; /* *tls_global_dynamic_32_gnu */
24128 :
24129 : case 3:
24130 : if (XINT (x4, 1) != 22
24131 : || GET_MODE (x4) != E_SImode)
24132 : return -1;
24133 : x12 = XVECEXP (x4, 0, 2);
24134 : if (GET_CODE (x12) != REG
24135 : || REGNO (x12) != 7
24136 : || GET_MODE (x12) != E_SImode
24137 : || pattern1260 (x1) != 0
24138 : || !constant_call_address_operand (operands[2], E_VOIDmode))
24139 : return -1;
24140 : x5 = XVECEXP (x1, 0, 1);
24141 : x9 = XEXP (x5, 0);
24142 : operands[3] = x9;
24143 : if (!scratch_operand (operands[3], E_SImode))
24144 : return -1;
24145 : x6 = XVECEXP (x1, 0, 2);
24146 : x10 = XEXP (x6, 0);
24147 : operands[4] = x10;
24148 : if (!scratch_operand (operands[4], E_SImode)
24149 : || !
24150 : #line 23436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24151 : (!TARGET_64BIT && TARGET_GNU_TLS))
24152 : return -1;
24153 : return 1687; /* *tls_local_dynamic_base_32_gnu */
24154 :
24155 : case 1:
24156 : x5 = XVECEXP (x1, 0, 1);
24157 : if (GET_CODE (x5) != USE)
24158 : return -1;
24159 : x6 = XVECEXP (x1, 0, 2);
24160 : if (GET_CODE (x6) != USE
24161 : || !nonimmediate_operand (operands[0], E_DImode)
24162 : || GET_MODE (x4) != E_DImode)
24163 : return -1;
24164 : x13 = XVECEXP (x4, 0, 0);
24165 : operands[1] = x13;
24166 : if (!register_operand (operands[1], E_XFmode))
24167 : return -1;
24168 : x9 = XEXP (x5, 0);
24169 : operands[2] = x9;
24170 : if (!memory_operand (operands[2], E_HImode))
24171 : return -1;
24172 : x10 = XEXP (x6, 0);
24173 : operands[3] = x10;
24174 : if (!memory_operand (operands[3], E_HImode))
24175 : return -1;
24176 : x11 = XEXP (x3, 0);
24177 : operands[4] = x11;
24178 : if (!scratch_operand (operands[4], E_XFmode))
24179 : return -1;
24180 : switch (XINT (x4, 1))
24181 : {
24182 : case 79:
24183 : if (!
24184 : #line 25744 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24185 : (TARGET_USE_FANCY_MATH_387
24186 : && flag_unsafe_math_optimizations))
24187 : return -1;
24188 : return 1784; /* fistdi2_floor */
24189 :
24190 : case 80:
24191 : if (!
24192 : #line 25744 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24193 : (TARGET_USE_FANCY_MATH_387
24194 : && flag_unsafe_math_optimizations))
24195 : return -1;
24196 : return 1785; /* fistdi2_ceil */
24197 :
24198 : default:
24199 : return -1;
24200 : }
24201 :
24202 : default:
24203 : return -1;
24204 : }
24205 :
24206 : case PLUS:
24207 : if (pattern396 (x1) != 0)
24208 : return -1;
24209 : return 1691; /* *tls_local_dynamic_32_once */
24210 :
24211 : case UNSPEC_VOLATILE:
24212 : if (XVECLEN (x4, 0) != 1
24213 : || XINT (x4, 1) != 3)
24214 : return -1;
24215 : x5 = XVECEXP (x1, 0, 1);
24216 : if (pattern720 (x5,
24217 : 7,
24218 : MINUS) != 0)
24219 : return -1;
24220 : x6 = XVECEXP (x1, 0, 2);
24221 : if (pattern953 (x6,
24222 : E_CCmode,
24223 : 17) != 0)
24224 : return -1;
24225 : x11 = XEXP (x3, 0);
24226 : if (GET_CODE (x11) != MEM
24227 : || GET_MODE (x11) != E_BLKmode)
24228 : return -1;
24229 : x14 = XEXP (x11, 0);
24230 : if (GET_CODE (x14) != SCRATCH)
24231 : return -1;
24232 : x7 = XEXP (x2, 0);
24233 : operands[0] = x7;
24234 : x13 = XVECEXP (x4, 0, 0);
24235 : operands[1] = x13;
24236 : x15 = XEXP (x5, 1);
24237 : x16 = XEXP (x15, 1);
24238 : operands[2] = x16;
24239 : switch (GET_MODE (operands[0]))
24240 : {
24241 : case E_SImode:
24242 : if (pattern1802 (x1,
24243 : E_SImode) != 0
24244 : || !
24245 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24246 : (Pmode == SImode))
24247 : return -1;
24248 : return 1916; /* adjust_stack_and_probe_si */
24249 :
24250 : case E_DImode:
24251 : if (pattern1802 (x1,
24252 : E_DImode) != 0
24253 : || !
24254 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24255 : (Pmode == DImode))
24256 : return -1;
24257 : return 1917; /* adjust_stack_and_probe_di */
24258 :
24259 : default:
24260 : return -1;
24261 : }
24262 :
24263 : default:
24264 : return -1;
24265 : }
24266 : }
24267 :
24268 : rtx_insn *
24269 : split_8 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
24270 : {
24271 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
24272 : rtx x2, x3, x4, x5, x6, x7;
24273 : rtx_insn *res ATTRIBUTE_UNUSED;
24274 : x2 = XEXP (x1, 0);
24275 : operands[0] = x2;
24276 : x3 = XEXP (x1, 1);
24277 : x4 = XEXP (x3, 0);
24278 : switch (GET_CODE (x4))
24279 : {
24280 : case AND:
24281 : switch (pattern76 (x3))
24282 : {
24283 : case 0:
24284 : if (!(
24285 : #line 3715 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24286 : (TARGET_64BIT
24287 : && CONST_WIDE_INT_P (operands[3])
24288 : && CONST_WIDE_INT_NUNITS (operands[3]) == 2
24289 : && CONST_WIDE_INT_ELT (operands[3], 0) == -1
24290 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0) &&
24291 : #line 3721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24292 : ( reload_completed)))
24293 : return NULL;
24294 : return gen_split_30 (insn, operands);
24295 :
24296 : case 1:
24297 : if (!(
24298 : #line 3737 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24299 : (TARGET_64BIT
24300 : && CONST_WIDE_INT_P (operands[3])
24301 : && CONST_WIDE_INT_NUNITS (operands[3]) == 2
24302 : && CONST_WIDE_INT_ELT (operands[3], 0) == 0
24303 : && CONST_WIDE_INT_ELT (operands[3], 1) == -1) &&
24304 : #line 3743 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24305 : ( reload_completed)))
24306 : return NULL;
24307 : return gen_split_33 (insn, operands);
24308 :
24309 : case 2:
24310 : if (!(
24311 : #line 3759 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24312 : (!TARGET_64BIT
24313 : && CONST_INT_P (operands[3])
24314 : && UINTVAL (operands[3]) == 0xffffffff00000000ll) &&
24315 : #line 3763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24316 : ( reload_completed)))
24317 : return NULL;
24318 : return gen_split_36 (insn, operands);
24319 :
24320 : default:
24321 : return NULL;
24322 : }
24323 :
24324 : case ASHIFT:
24325 : x5 = XEXP (x4, 1);
24326 : operands[2] = x5;
24327 : x6 = XEXP (x4, 0);
24328 : switch (GET_CODE (x6))
24329 : {
24330 : case REG:
24331 : case SUBREG:
24332 : operands[1] = x6;
24333 : x7 = XEXP (x3, 1);
24334 : switch (GET_CODE (x7))
24335 : {
24336 : case CONST_INT:
24337 : case CONST_WIDE_INT:
24338 : operands[3] = x7;
24339 : switch (GET_MODE (operands[0]))
24340 : {
24341 : case E_QImode:
24342 : if (pattern614 (x3,
24343 : E_QImode) != 0
24344 : || !(
24345 : #line 8048 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24346 : ((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
24347 : && ((unsigned HOST_WIDE_INT) INTVAL (operands[3])
24348 : < (HOST_WIDE_INT_1U << INTVAL (operands[2])))) &&
24349 : #line 8052 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24350 : ( reload_completed)))
24351 : return NULL;
24352 : return gen_split_167 (insn, operands);
24353 :
24354 : case E_HImode:
24355 : if (pattern614 (x3,
24356 : E_HImode) != 0
24357 : || !(
24358 : #line 8048 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24359 : ((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
24360 : && ((unsigned HOST_WIDE_INT) INTVAL (operands[3])
24361 : < (HOST_WIDE_INT_1U << INTVAL (operands[2])))) &&
24362 : #line 8052 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24363 : ( reload_completed)))
24364 : return NULL;
24365 : return gen_split_169 (insn, operands);
24366 :
24367 : case E_SImode:
24368 : if (pattern614 (x3,
24369 : E_SImode) != 0
24370 : || !(
24371 : #line 8072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24372 : ((unsigned HOST_WIDE_INT) INTVAL (operands[3])
24373 : < (HOST_WIDE_INT_1U << INTVAL (operands[2]))) &&
24374 : #line 8075 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24375 : ( reload_completed)))
24376 : return NULL;
24377 : return gen_split_171 (insn, operands);
24378 :
24379 : case E_DImode:
24380 : if (GET_MODE (x3) != E_DImode
24381 : || GET_MODE (x4) != E_DImode)
24382 : return NULL;
24383 : if (register_operand (operands[0], E_DImode)
24384 : && register_no_SP_operand (operands[1], E_DImode)
24385 : && const_0_to_3_operand (operands[2], E_VOIDmode)
24386 : && const_int_operand (operands[3], E_VOIDmode)
24387 : && ((
24388 : #line 8072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24389 : ((unsigned HOST_WIDE_INT) INTVAL (operands[3])
24390 : < (HOST_WIDE_INT_1U << INTVAL (operands[2]))) &&
24391 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24392 : (TARGET_64BIT)) &&
24393 : #line 8075 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24394 : ( reload_completed)))
24395 : return gen_split_173 (insn, operands);
24396 : if (!nonimmediate_operand (operands[0], E_DImode)
24397 : || !register_operand (operands[1], E_DImode)
24398 : || !const_int_operand (operands[2], E_QImode)
24399 : || !const_scalar_int_operand (operands[3], E_DImode)
24400 : || !((
24401 : #line 14473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24402 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT / 2
24403 : && (DImode == DImode
24404 : ? CONST_INT_P (operands[3])
24405 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
24406 : : CONST_INT_P (operands[3])
24407 : ? INTVAL (operands[3]) >= 0
24408 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
24409 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
24410 : && !(CONST_INT_P (operands[3])
24411 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
24412 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
24413 : 0)),
24414 : VOIDmode))) &&
24415 : #line 1196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24416 : (!TARGET_64BIT)) &&
24417 : #line 14487 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24418 : ( reload_completed)))
24419 : return NULL;
24420 : return gen_split_474 (insn, operands);
24421 :
24422 : case E_TImode:
24423 : if (pattern615 (x3,
24424 : E_TImode) != 0
24425 : || !((
24426 : #line 14473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24427 : (INTVAL (operands[2]) == 16 * BITS_PER_UNIT / 2
24428 : && (TImode == DImode
24429 : ? CONST_INT_P (operands[3])
24430 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
24431 : : CONST_INT_P (operands[3])
24432 : ? INTVAL (operands[3]) >= 0
24433 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
24434 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
24435 : && !(CONST_INT_P (operands[3])
24436 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
24437 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
24438 : 0)),
24439 : VOIDmode))) &&
24440 : #line 1197 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24441 : (TARGET_64BIT)) &&
24442 : #line 14487 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24443 : ( reload_completed)))
24444 : return NULL;
24445 : return gen_split_477 (insn, operands);
24446 :
24447 : default:
24448 : return NULL;
24449 : }
24450 :
24451 : case ZERO_EXTEND:
24452 : switch (pattern955 (x3))
24453 : {
24454 : case 0:
24455 : if (!((
24456 : #line 14396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24457 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT) &&
24458 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24459 : (!TARGET_64BIT)) &&
24460 : #line 14398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24461 : ( reload_completed)))
24462 : return NULL;
24463 : return gen_split_438 (insn, operands);
24464 :
24465 : case 1:
24466 : if (!((
24467 : #line 14396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24468 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT) &&
24469 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24470 : (TARGET_64BIT)) &&
24471 : #line 14398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24472 : ( reload_completed)))
24473 : return NULL;
24474 : return gen_split_441 (insn, operands);
24475 :
24476 : default:
24477 : return NULL;
24478 : }
24479 :
24480 : default:
24481 : return NULL;
24482 : }
24483 :
24484 : case SIGN_EXTEND:
24485 : switch (pattern723 (x3))
24486 : {
24487 : case 0:
24488 : if (!((
24489 : #line 14432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24490 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT) &&
24491 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24492 : (!TARGET_64BIT)) &&
24493 : #line 14434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24494 : ( reload_completed)))
24495 : return NULL;
24496 : return gen_split_450 (insn, operands);
24497 :
24498 : case 1:
24499 : if (!((
24500 : #line 14432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24501 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT) &&
24502 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24503 : (TARGET_64BIT)) &&
24504 : #line 14434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24505 : ( reload_completed)))
24506 : return NULL;
24507 : return gen_split_456 (insn, operands);
24508 :
24509 : case 2:
24510 : if (!((
24511 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24512 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT
24513 : && (DImode == DImode
24514 : ? CONST_INT_P (operands[3])
24515 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
24516 : : CONST_INT_P (operands[3])
24517 : ? INTVAL (operands[3]) >= 0
24518 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
24519 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
24520 : && !(CONST_INT_P (operands[3])
24521 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
24522 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
24523 : 0)),
24524 : VOIDmode))) &&
24525 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24526 : (!TARGET_64BIT)) &&
24527 : #line 14519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24528 : ( reload_completed)))
24529 : return NULL;
24530 : return gen_split_480 (insn, operands);
24531 :
24532 : case 3:
24533 : if (!((
24534 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24535 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT
24536 : && (TImode == DImode
24537 : ? CONST_INT_P (operands[3])
24538 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
24539 : : CONST_INT_P (operands[3])
24540 : ? INTVAL (operands[3]) >= 0
24541 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
24542 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
24543 : && !(CONST_INT_P (operands[3])
24544 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
24545 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
24546 : 0)),
24547 : VOIDmode))) &&
24548 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24549 : (TARGET_64BIT)) &&
24550 : #line 14519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24551 : ( reload_completed)))
24552 : return NULL;
24553 : return gen_split_486 (insn, operands);
24554 :
24555 : default:
24556 : return NULL;
24557 : }
24558 :
24559 : case ZERO_EXTEND:
24560 : switch (pattern723 (x3))
24561 : {
24562 : case 0:
24563 : if (!((
24564 : #line 14432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24565 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT) &&
24566 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24567 : (!TARGET_64BIT)) &&
24568 : #line 14434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24569 : ( reload_completed)))
24570 : return NULL;
24571 : return gen_split_453 (insn, operands);
24572 :
24573 : case 1:
24574 : if (!((
24575 : #line 14432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24576 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT) &&
24577 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24578 : (TARGET_64BIT)) &&
24579 : #line 14434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24580 : ( reload_completed)))
24581 : return NULL;
24582 : return gen_split_459 (insn, operands);
24583 :
24584 : case 2:
24585 : if (!((
24586 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24587 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT
24588 : && (DImode == DImode
24589 : ? CONST_INT_P (operands[3])
24590 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
24591 : : CONST_INT_P (operands[3])
24592 : ? INTVAL (operands[3]) >= 0
24593 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
24594 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
24595 : && !(CONST_INT_P (operands[3])
24596 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
24597 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
24598 : 0)),
24599 : VOIDmode))) &&
24600 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24601 : (!TARGET_64BIT)) &&
24602 : #line 14519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24603 : ( reload_completed)))
24604 : return NULL;
24605 : return gen_split_483 (insn, operands);
24606 :
24607 : case 3:
24608 : if (!((
24609 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24610 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT
24611 : && (TImode == DImode
24612 : ? CONST_INT_P (operands[3])
24613 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
24614 : : CONST_INT_P (operands[3])
24615 : ? INTVAL (operands[3]) >= 0
24616 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
24617 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
24618 : && !(CONST_INT_P (operands[3])
24619 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
24620 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
24621 : 0)),
24622 : VOIDmode))) &&
24623 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24624 : (TARGET_64BIT)) &&
24625 : #line 14519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24626 : ( reload_completed)))
24627 : return NULL;
24628 : return gen_split_489 (insn, operands);
24629 :
24630 : default:
24631 : return NULL;
24632 : }
24633 :
24634 : default:
24635 : return NULL;
24636 : }
24637 :
24638 : case ZERO_EXTEND:
24639 : switch (pattern405 (x3))
24640 : {
24641 : case 0:
24642 : if (!((
24643 : #line 14413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24644 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
24645 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24646 : (!TARGET_64BIT)) &&
24647 : #line 14415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24648 : ( reload_completed)))
24649 : return NULL;
24650 : return gen_split_444 (insn, operands);
24651 :
24652 : case 1:
24653 : if (!((
24654 : #line 14413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24655 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
24656 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24657 : (TARGET_64BIT)) &&
24658 : #line 14415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24659 : ( reload_completed)))
24660 : return NULL;
24661 : return gen_split_447 (insn, operands);
24662 :
24663 : case 2:
24664 : if (!((
24665 : #line 14457 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24666 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
24667 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24668 : (!TARGET_64BIT)) &&
24669 : #line 14459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24670 : ( reload_completed)))
24671 : return NULL;
24672 : return gen_split_462 (insn, operands);
24673 :
24674 : case 3:
24675 : if (!((
24676 : #line 14457 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24677 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
24678 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24679 : (TARGET_64BIT)) &&
24680 : #line 14459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24681 : ( reload_completed)))
24682 : return NULL;
24683 : return gen_split_468 (insn, operands);
24684 :
24685 : case 4:
24686 : if (!((
24687 : #line 14457 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24688 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
24689 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24690 : (!TARGET_64BIT)) &&
24691 : #line 14459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24692 : ( reload_completed)))
24693 : return NULL;
24694 : return gen_split_465 (insn, operands);
24695 :
24696 : case 5:
24697 : if (!((
24698 : #line 14457 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24699 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
24700 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24701 : (TARGET_64BIT)) &&
24702 : #line 14459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24703 : ( reload_completed)))
24704 : return NULL;
24705 : return gen_split_471 (insn, operands);
24706 :
24707 : case 6:
24708 : if (!((
24709 : #line 14534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24710 : (DImode == DImode
24711 : ? CONST_INT_P (operands[2])
24712 : && (UINTVAL (operands[2]) & GET_MODE_MASK (SImode)) == 0
24713 : && !ix86_endbr_immediate_operand (operands[2], VOIDmode)
24714 : : CONST_WIDE_INT_P (operands[2])
24715 : && CONST_WIDE_INT_NUNITS (operands[2]) == 2
24716 : && CONST_WIDE_INT_ELT (operands[2], 0) == 0
24717 : && !ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[2],
24718 : 1)),
24719 : VOIDmode)) &&
24720 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24721 : (!TARGET_64BIT)) &&
24722 : #line 14545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24723 : ( reload_completed)))
24724 : return NULL;
24725 : return gen_split_492 (insn, operands);
24726 :
24727 : case 7:
24728 : if (!((
24729 : #line 14534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24730 : (TImode == DImode
24731 : ? CONST_INT_P (operands[2])
24732 : && (UINTVAL (operands[2]) & GET_MODE_MASK (SImode)) == 0
24733 : && !ix86_endbr_immediate_operand (operands[2], VOIDmode)
24734 : : CONST_WIDE_INT_P (operands[2])
24735 : && CONST_WIDE_INT_NUNITS (operands[2]) == 2
24736 : && CONST_WIDE_INT_ELT (operands[2], 0) == 0
24737 : && !ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[2],
24738 : 1)),
24739 : VOIDmode)) &&
24740 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24741 : (TARGET_64BIT)) &&
24742 : #line 14545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24743 : ( reload_completed)))
24744 : return NULL;
24745 : return gen_split_495 (insn, operands);
24746 :
24747 : default:
24748 : return NULL;
24749 : }
24750 :
24751 : default:
24752 : return NULL;
24753 : }
24754 : }
24755 :
24756 : rtx_insn *
24757 : split_17 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
24758 : {
24759 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
24760 : rtx x2, x3, x4, x5;
24761 : rtx_insn *res ATTRIBUTE_UNUSED;
24762 : x2 = XVECEXP (x1, 0, 0);
24763 : switch (pattern937 (x2))
24764 : {
24765 : case 0:
24766 : x3 = XEXP (x2, 0);
24767 : operands[0] = x3;
24768 : x4 = XEXP (x2, 1);
24769 : x5 = XEXP (x4, 1);
24770 : if (GET_CODE (x5) == SUBREG)
24771 : {
24772 : switch (pattern1429 (x4))
24773 : {
24774 : case 0:
24775 : if (((
24776 : #line 16918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24777 : (((INTVAL (operands[3]) & (4 * BITS_PER_UNIT)) == 0
24778 : || ((INTVAL (operands[3]) & (2 * 4 * BITS_PER_UNIT - 1))
24779 : == (2 * 4 * BITS_PER_UNIT - 1)))
24780 : && ix86_pre_reload_split ()) &&
24781 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24782 : (!TARGET_64BIT)) &&
24783 : #line 16923 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24784 : ( 1)))
24785 : return gen_split_596 (insn, operands);
24786 : break;
24787 :
24788 : case 1:
24789 : if (((
24790 : #line 16918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24791 : (((INTVAL (operands[3]) & (8 * BITS_PER_UNIT)) == 0
24792 : || ((INTVAL (operands[3]) & (2 * 8 * BITS_PER_UNIT - 1))
24793 : == (2 * 8 * BITS_PER_UNIT - 1)))
24794 : && ix86_pre_reload_split ()) &&
24795 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24796 : (TARGET_64BIT)) &&
24797 : #line 16923 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24798 : ( 1)))
24799 : return gen_split_598 (insn, operands);
24800 : break;
24801 :
24802 : default:
24803 : break;
24804 : }
24805 : }
24806 : if (GET_MODE (x4) == E_SImode
24807 : && nonimmediate_operand (operands[1], E_SImode))
24808 : {
24809 : if (register_operand (operands[0], E_SImode))
24810 : {
24811 : operands[2] = x5;
24812 : if (register_operand (operands[2], E_QImode)
24813 : &&
24814 : #line 17771 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24815 : (TARGET_BMI2 && reload_completed))
24816 : return gen_split_629 (insn, operands);
24817 : }
24818 : if (GET_CODE (x5) == SUBREG)
24819 : {
24820 : switch (pattern1541 (x5))
24821 : {
24822 : case 0:
24823 : if ((
24824 : #line 18174 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24825 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
24826 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
24827 : == 4 * BITS_PER_UNIT - 1
24828 : && ix86_pre_reload_split ()) &&
24829 : #line 18179 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24830 : ( 1)))
24831 : return gen_split_646 (insn, operands);
24832 : break;
24833 :
24834 : case 1:
24835 : if ((
24836 : #line 18222 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24837 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
24838 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
24839 : && ix86_pre_reload_split ()) &&
24840 : #line 18226 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24841 : ( 1)))
24842 : return gen_split_658 (insn, operands);
24843 : break;
24844 :
24845 : case 2:
24846 : if ((
24847 : #line 18268 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24848 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
24849 : && ((INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
24850 : || (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
24851 : == 4 * BITS_PER_UNIT - 1)
24852 : && ix86_pre_reload_split ()) &&
24853 : #line 18274 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24854 : ( 1)))
24855 : return gen_split_670 (insn, operands);
24856 : break;
24857 :
24858 : default:
24859 : break;
24860 : }
24861 : }
24862 : }
24863 : operands[2] = x5;
24864 : switch (pattern1345 (x2))
24865 : {
24866 : case 0:
24867 : if (register_operand (operands[1], E_DImode)
24868 : && nonmemory_operand (operands[2], E_QImode)
24869 : && (
24870 : #line 17030 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24871 : (epilogue_completed) &&
24872 : #line 1196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24873 : (!TARGET_64BIT)))
24874 : return gen_split_604 (insn, operands);
24875 : if (nonimmediate_operand (operands[1], E_DImode)
24876 : && register_operand (operands[2], E_QImode)
24877 : && (
24878 : #line 17771 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24879 : (TARGET_BMI2 && reload_completed) &&
24880 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24881 : (TARGET_64BIT)))
24882 : return gen_split_631 (insn, operands);
24883 : break;
24884 :
24885 : case 1:
24886 : if ((
24887 : #line 17030 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24888 : (epilogue_completed) &&
24889 : #line 1197 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24890 : (TARGET_64BIT)))
24891 : return gen_split_606 (insn, operands);
24892 : break;
24893 :
24894 : case 2:
24895 : if ((
24896 : #line 17974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24897 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
24898 : #line 17985 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24899 : ( reload_completed
24900 : && !(rtx_equal_p (operands[0], operands[1])))))
24901 : return gen_split_635 (insn, operands);
24902 : break;
24903 :
24904 : case 3:
24905 : if ((
24906 : #line 17974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24907 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
24908 : #line 17985 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24909 : ( reload_completed
24910 : && !(rtx_equal_p (operands[0], operands[1])))))
24911 : return gen_split_637 (insn, operands);
24912 : break;
24913 :
24914 : default:
24915 : break;
24916 : }
24917 : if (GET_CODE (x5) != SUBREG)
24918 : return NULL;
24919 : switch (pattern1244 (x2,
24920 : E_DImode))
24921 : {
24922 : case 0:
24923 : if (!((
24924 : #line 18174 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24925 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
24926 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
24927 : == 8 * BITS_PER_UNIT - 1
24928 : && ix86_pre_reload_split ()) &&
24929 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24930 : (TARGET_64BIT)) &&
24931 : #line 18179 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24932 : ( 1)))
24933 : return NULL;
24934 : return gen_split_649 (insn, operands);
24935 :
24936 : case 1:
24937 : if (!((
24938 : #line 18222 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24939 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
24940 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
24941 : && ix86_pre_reload_split ()) &&
24942 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24943 : (TARGET_64BIT)) &&
24944 : #line 18226 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24945 : ( 1)))
24946 : return NULL;
24947 : return gen_split_661 (insn, operands);
24948 :
24949 : case 2:
24950 : if (!((
24951 : #line 18268 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24952 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
24953 : && ((INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
24954 : || (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
24955 : == 8 * BITS_PER_UNIT - 1)
24956 : && ix86_pre_reload_split ()) &&
24957 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24958 : (TARGET_64BIT)) &&
24959 : #line 18274 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24960 : ( 1)))
24961 : return NULL;
24962 : return gen_split_673 (insn, operands);
24963 :
24964 : default:
24965 : return NULL;
24966 : }
24967 :
24968 : case 1:
24969 : if (register_operand (operands[0], E_DImode)
24970 : && register_operand (operands[1], E_DImode)
24971 : && ((
24972 : #line 16979 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24973 : (((INTVAL (operands[3]) & (4 * BITS_PER_UNIT)) == 0
24974 : || ((INTVAL (operands[3]) & (2 * 4 * BITS_PER_UNIT - 1))
24975 : == (2 * 4 * BITS_PER_UNIT - 1)))
24976 : && ix86_pre_reload_split ()) &&
24977 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24978 : (!TARGET_64BIT)) &&
24979 : #line 16984 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24980 : ( 1)))
24981 : return gen_split_600 (insn, operands);
24982 : if (!nonimmediate_operand (operands[0], E_DImode)
24983 : || !nonimmediate_operand (operands[1], E_DImode)
24984 : || !((
24985 : #line 18199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24986 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
24987 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
24988 : == 8 * BITS_PER_UNIT - 1
24989 : && ix86_pre_reload_split ()) &&
24990 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24991 : (TARGET_64BIT)) &&
24992 : #line 18204 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24993 : ( 1)))
24994 : return NULL;
24995 : return gen_split_655 (insn, operands);
24996 :
24997 : case 2:
24998 : if (!((
24999 : #line 16979 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25000 : (((INTVAL (operands[3]) & (8 * BITS_PER_UNIT)) == 0
25001 : || ((INTVAL (operands[3]) & (2 * 8 * BITS_PER_UNIT - 1))
25002 : == (2 * 8 * BITS_PER_UNIT - 1)))
25003 : && ix86_pre_reload_split ()) &&
25004 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25005 : (TARGET_64BIT)) &&
25006 : #line 16984 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25007 : ( 1)))
25008 : return NULL;
25009 : return gen_split_602 (insn, operands);
25010 :
25011 : case 3:
25012 : if (!(
25013 : #line 18199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25014 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
25015 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
25016 : == 4 * BITS_PER_UNIT - 1
25017 : && ix86_pre_reload_split ()) &&
25018 : #line 18204 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25019 : ( 1)))
25020 : return NULL;
25021 : return gen_split_652 (insn, operands);
25022 :
25023 : case 4:
25024 : if (!(
25025 : #line 18246 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25026 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
25027 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
25028 : && ix86_pre_reload_split ()) &&
25029 : #line 18250 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25030 : ( 1)))
25031 : return NULL;
25032 : return gen_split_664 (insn, operands);
25033 :
25034 : case 5:
25035 : if (!((
25036 : #line 18246 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25037 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
25038 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
25039 : && ix86_pre_reload_split ()) &&
25040 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25041 : (TARGET_64BIT)) &&
25042 : #line 18250 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25043 : ( 1)))
25044 : return NULL;
25045 : return gen_split_667 (insn, operands);
25046 :
25047 : case 6:
25048 : if (!(
25049 : #line 18301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25050 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
25051 : && ((INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
25052 : || (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
25053 : == 4 * BITS_PER_UNIT - 1)
25054 : && ix86_pre_reload_split ()) &&
25055 : #line 18307 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25056 : ( 1)))
25057 : return NULL;
25058 : return gen_split_676 (insn, operands);
25059 :
25060 : case 7:
25061 : if (!((
25062 : #line 18301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25063 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
25064 : && ((INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
25065 : || (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
25066 : == 8 * BITS_PER_UNIT - 1)
25067 : && ix86_pre_reload_split ()) &&
25068 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25069 : (TARGET_64BIT)) &&
25070 : #line 18307 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25071 : ( 1)))
25072 : return NULL;
25073 : return gen_split_679 (insn, operands);
25074 :
25075 : case 8:
25076 : if (!((
25077 : #line 18330 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25078 : (INTVAL (operands[2]) == INTVAL (operands[3])
25079 : && UINTVAL (operands[2]) < 4 * BITS_PER_UNIT) &&
25080 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25081 : (!TARGET_64BIT)) &&
25082 : #line 18333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25083 : ( reload_completed)))
25084 : return NULL;
25085 : return gen_split_680 (insn, operands);
25086 :
25087 : case 9:
25088 : if (!((
25089 : #line 18330 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25090 : (INTVAL (operands[2]) == INTVAL (operands[3])
25091 : && UINTVAL (operands[2]) < 8 * BITS_PER_UNIT) &&
25092 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25093 : (TARGET_64BIT)) &&
25094 : #line 18333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25095 : ( reload_completed)))
25096 : return NULL;
25097 : return gen_split_681 (insn, operands);
25098 :
25099 : default:
25100 : return NULL;
25101 : }
25102 : }
25103 :
25104 : rtx_insn *
25105 : split_31 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
25106 : {
25107 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
25108 : rtx x2, x3, x4, x5, x6;
25109 : rtx_insn *res ATTRIBUTE_UNUSED;
25110 : x2 = XVECEXP (x1, 0, 0);
25111 : x3 = XEXP (x2, 1);
25112 : x4 = XEXP (x3, 0);
25113 : switch (GET_CODE (x4))
25114 : {
25115 : case REG:
25116 : case SUBREG:
25117 : case MEM:
25118 : switch (pattern378 (x1))
25119 : {
25120 : case 0:
25121 : x5 = XVECEXP (x1, 0, 1);
25122 : x6 = XEXP (x5, 0);
25123 : if (GET_CODE (x6) != REG
25124 : || REGNO (x6) != 17
25125 : || GET_MODE (x6) != E_CCmode)
25126 : return NULL;
25127 : switch (GET_MODE (operands[0]))
25128 : {
25129 : case E_DImode:
25130 : if (!nonimmediate_operand (operands[0], E_DImode)
25131 : || GET_MODE (x3) != E_DImode
25132 : || !nonimmediate_operand (operands[1], E_DImode)
25133 : || !((
25134 : #line 14573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25135 : (ix86_unary_operator_ok (NEG, DImode, operands, TARGET_APX_NDD)) &&
25136 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25137 : (!TARGET_64BIT)) &&
25138 : #line 14575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25139 : ( reload_completed)))
25140 : return NULL;
25141 : return gen_split_496 (insn, operands);
25142 :
25143 : case E_TImode:
25144 : if (!nonimmediate_operand (operands[0], E_TImode)
25145 : || GET_MODE (x3) != E_TImode
25146 : || !nonimmediate_operand (operands[1], E_TImode)
25147 : || !((
25148 : #line 14573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25149 : (ix86_unary_operator_ok (NEG, TImode, operands, TARGET_APX_NDD)) &&
25150 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25151 : (TARGET_64BIT)) &&
25152 : #line 14575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25153 : ( reload_completed)))
25154 : return NULL;
25155 : return gen_split_497 (insn, operands);
25156 :
25157 : case E_SFmode:
25158 : if (GET_MODE (x3) != E_SFmode)
25159 : return NULL;
25160 : if (fp_register_operand (operands[0], E_SFmode)
25161 : && fp_register_operand (operands[1], E_SFmode)
25162 : &&
25163 : #line 15162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25164 : (TARGET_80387 && reload_completed))
25165 : return gen_split_519 (insn, operands);
25166 : if (!general_reg_operand (operands[0], E_SFmode)
25167 : || !general_reg_operand (operands[1], E_SFmode)
25168 : || !
25169 : #line 15169 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25170 : (TARGET_80387 && reload_completed))
25171 : return NULL;
25172 : return gen_split_525 (insn, operands);
25173 :
25174 : case E_DFmode:
25175 : if (GET_MODE (x3) != E_DFmode)
25176 : return NULL;
25177 : if (fp_register_operand (operands[0], E_DFmode)
25178 : && fp_register_operand (operands[1], E_DFmode)
25179 : &&
25180 : #line 15162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25181 : (TARGET_80387 && reload_completed))
25182 : return gen_split_521 (insn, operands);
25183 : if (!general_reg_operand (operands[0], E_DFmode)
25184 : || !general_reg_operand (operands[1], E_DFmode)
25185 : || !
25186 : #line 15169 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25187 : (TARGET_80387 && reload_completed))
25188 : return NULL;
25189 : return gen_split_527 (insn, operands);
25190 :
25191 : case E_XFmode:
25192 : if (GET_MODE (x3) != E_XFmode)
25193 : return NULL;
25194 : if (fp_register_operand (operands[0], E_XFmode)
25195 : && fp_register_operand (operands[1], E_XFmode)
25196 : &&
25197 : #line 15162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25198 : (TARGET_80387 && reload_completed))
25199 : return gen_split_523 (insn, operands);
25200 : if (!general_reg_operand (operands[0], E_XFmode)
25201 : || !general_reg_operand (operands[1], E_XFmode)
25202 : || !
25203 : #line 15169 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25204 : (TARGET_80387 && reload_completed))
25205 : return NULL;
25206 : return gen_split_529 (insn, operands);
25207 :
25208 : default:
25209 : return NULL;
25210 : }
25211 :
25212 : case 1:
25213 : if (pattern843 (x1) != 0
25214 : || !(
25215 : #line 15093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25216 : (TARGET_SSE) &&
25217 : #line 15095 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25218 : ( reload_completed)))
25219 : return NULL;
25220 : return gen_split_516 (insn, operands);
25221 :
25222 : case 2:
25223 : if (!(
25224 : #line 14731 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25225 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25226 : #line 14735 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25227 : ( reload_completed
25228 : && !(rtx_equal_p (operands[0], operands[1])))))
25229 : return NULL;
25230 : return gen_split_498 (insn, operands);
25231 :
25232 : case 3:
25233 : if (!(
25234 : #line 14731 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25235 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25236 : #line 14735 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25237 : ( reload_completed
25238 : && !(rtx_equal_p (operands[0], operands[1])))))
25239 : return NULL;
25240 : return gen_split_499 (insn, operands);
25241 :
25242 : default:
25243 : return NULL;
25244 : }
25245 :
25246 : case ABS:
25247 : switch (pattern380 (x1))
25248 : {
25249 : case 0:
25250 : if (((
25251 : #line 14989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25252 : (TARGET_CMOVE
25253 : && ix86_pre_reload_split ()) &&
25254 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25255 : (!TARGET_64BIT)) &&
25256 : #line 14992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25257 : ( 1)))
25258 : return gen_split_505 (insn, operands);
25259 : if (!((
25260 : #line 15060 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25261 : (TARGET_CMOVE
25262 : && (DImode != QImode || !TARGET_PARTIAL_REG_STALL)
25263 : && ix86_pre_reload_split ()) &&
25264 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25265 : (TARGET_64BIT)) &&
25266 : #line 15064 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25267 : ( 1)))
25268 : return NULL;
25269 : return gen_split_514 (insn, operands);
25270 :
25271 : case 1:
25272 : if (!((
25273 : #line 14989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25274 : (TARGET_CMOVE
25275 : && ix86_pre_reload_split ()) &&
25276 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25277 : (TARGET_64BIT)) &&
25278 : #line 14992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25279 : ( 1)))
25280 : return NULL;
25281 : return gen_split_506 (insn, operands);
25282 :
25283 : case 2:
25284 : if (!(
25285 : #line 15060 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25286 : (TARGET_CMOVE
25287 : && (QImode != QImode || !TARGET_PARTIAL_REG_STALL)
25288 : && ix86_pre_reload_split ()) &&
25289 : #line 15064 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25290 : ( 1)))
25291 : return NULL;
25292 : return gen_split_511 (insn, operands);
25293 :
25294 : case 3:
25295 : if (!(
25296 : #line 15060 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25297 : (TARGET_CMOVE
25298 : && (HImode != QImode || !TARGET_PARTIAL_REG_STALL)
25299 : && ix86_pre_reload_split ()) &&
25300 : #line 15064 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25301 : ( 1)))
25302 : return NULL;
25303 : return gen_split_512 (insn, operands);
25304 :
25305 : case 4:
25306 : if (!(
25307 : #line 15060 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25308 : (TARGET_CMOVE
25309 : && (SImode != QImode || !TARGET_PARTIAL_REG_STALL)
25310 : && ix86_pre_reload_split ()) &&
25311 : #line 15064 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25312 : ( 1)))
25313 : return NULL;
25314 : return gen_split_513 (insn, operands);
25315 :
25316 : case 5:
25317 : switch (GET_MODE (operands[0]))
25318 : {
25319 : case E_TFmode:
25320 : if (pattern1061 (x3,
25321 : E_TFmode) != 0
25322 : || !(
25323 : #line 15118 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25324 : (TARGET_SSE) &&
25325 : #line 15120 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25326 : ( reload_completed)))
25327 : return NULL;
25328 : return gen_split_517 (insn, operands);
25329 :
25330 : case E_SFmode:
25331 : if (pattern1062 (x3,
25332 : E_V4SFmode,
25333 : E_SFmode) != 0
25334 : || !(
25335 : #line 15254 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25336 : (SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH) &&
25337 : #line 15256 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25338 : ( reload_completed)))
25339 : return NULL;
25340 : return gen_split_544 (insn, operands);
25341 :
25342 : case E_DFmode:
25343 : if (pattern1062 (x3,
25344 : E_V2DFmode,
25345 : E_DFmode) != 0
25346 : || !(
25347 : #line 15254 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25348 : (SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH) &&
25349 : #line 15256 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25350 : ( reload_completed)))
25351 : return NULL;
25352 : return gen_split_545 (insn, operands);
25353 :
25354 : default:
25355 : return NULL;
25356 : }
25357 :
25358 : default:
25359 : return NULL;
25360 : }
25361 :
25362 : default:
25363 : return NULL;
25364 : }
25365 : }
25366 :
25367 : rtx_insn *
25368 : split_32 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
25369 : {
25370 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
25371 : rtx x2, x3, x4, x5, x6, x7, x8;
25372 : rtx_insn *res ATTRIBUTE_UNUSED;
25373 : if (pattern344 (x1) != 0)
25374 : return NULL;
25375 : x2 = XVECEXP (x1, 0, 0);
25376 : x3 = XEXP (x2, 1);
25377 : x4 = XEXP (x3, 0);
25378 : switch (GET_CODE (x4))
25379 : {
25380 : case REG:
25381 : case SUBREG:
25382 : case MEM:
25383 : operands[1] = x4;
25384 : switch (pattern1162 (x3))
25385 : {
25386 : case 0:
25387 : if (!(
25388 : #line 4850 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25389 : (TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)) &&
25390 : #line 4852 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25391 : ( reload_completed)))
25392 : return NULL;
25393 : return gen_split_63 (insn, operands);
25394 :
25395 : case 1:
25396 : if (!(
25397 : #line 4850 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25398 : (TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)) &&
25399 : #line 4852 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25400 : ( reload_completed)))
25401 : return NULL;
25402 : return gen_split_64 (insn, operands);
25403 :
25404 : case 2:
25405 : if (!(
25406 : #line 4904 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25407 : (TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)) &&
25408 : #line 4906 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25409 : ( reload_completed)))
25410 : return NULL;
25411 : return gen_split_65 (insn, operands);
25412 :
25413 : default:
25414 : return NULL;
25415 : }
25416 :
25417 : case PLUS:
25418 : if (GET_MODE (x4) != E_SImode
25419 : || !register_operand (operands[0], E_DImode)
25420 : || GET_MODE (x3) != E_DImode)
25421 : return NULL;
25422 : x5 = XEXP (x4, 0);
25423 : switch (GET_CODE (x5))
25424 : {
25425 : case REG:
25426 : case SUBREG:
25427 : operands[1] = x5;
25428 : if (!register_operand (operands[1], E_SImode))
25429 : return NULL;
25430 : x6 = XEXP (x4, 1);
25431 : operands[2] = x6;
25432 : if (!x86_64_nonmemory_operand (operands[2], E_SImode))
25433 : return NULL;
25434 : if (
25435 : #line 7110 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25436 : (TARGET_64BIT
25437 : && reload_completed && ix86_avoid_lea_for_add (insn, operands)))
25438 : return gen_split_130 (insn, operands);
25439 : if (!
25440 : #line 7160 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25441 : (TARGET_64BIT && reload_completed && ix86_lea_for_add_ok (insn, operands)))
25442 : return NULL;
25443 : return gen_split_139 (insn, operands);
25444 :
25445 : case UNSPEC:
25446 : if (pattern1165 (x5) != 0)
25447 : return NULL;
25448 : x6 = XEXP (x4, 1);
25449 : operands[1] = x6;
25450 : if (!register_operand (operands[1], E_SImode)
25451 : || !(
25452 : #line 23616 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25453 : (TARGET_X32) &&
25454 : #line 23618 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25455 : ( 1)))
25456 : return NULL;
25457 : return gen_split_932 (insn, operands);
25458 :
25459 : default:
25460 : return NULL;
25461 : }
25462 :
25463 : case ASHIFT:
25464 : if (GET_MODE (x4) != E_SImode
25465 : || GET_MODE (x3) != E_DImode)
25466 : return NULL;
25467 : x5 = XEXP (x4, 0);
25468 : operands[1] = x5;
25469 : x6 = XEXP (x4, 1);
25470 : operands[2] = x6;
25471 : switch (GET_CODE (operands[2]))
25472 : {
25473 : case REG:
25474 : case SUBREG:
25475 : if (!register_operand (operands[2], E_QImode)
25476 : || !register_operand (operands[0], E_DImode)
25477 : || !nonimmediate_operand (operands[1], E_SImode)
25478 : || !
25479 : #line 16424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25480 : (TARGET_64BIT && TARGET_BMI2 && reload_completed))
25481 : return NULL;
25482 : return gen_split_580 (insn, operands);
25483 :
25484 : case CONST_INT:
25485 : if (!const_0_to_3_operand (operands[2], E_VOIDmode)
25486 : || !general_reg_operand (operands[0], E_DImode)
25487 : || !index_reg_operand (operands[1], E_SImode)
25488 : || !
25489 : #line 16659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25490 : (TARGET_64BIT && reload_completed
25491 : && REGNO (operands[0]) != REGNO (operands[1])))
25492 : return NULL;
25493 : return gen_split_591 (insn, operands);
25494 :
25495 : default:
25496 : return NULL;
25497 : }
25498 :
25499 : case LSHIFTRT:
25500 : if (pattern1183 (x3) != 0
25501 : || !
25502 : #line 17858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25503 : (TARGET_64BIT && TARGET_BMI2 && reload_completed))
25504 : return NULL;
25505 : return gen_split_632 (insn, operands);
25506 :
25507 : case ASHIFTRT:
25508 : if (pattern1183 (x3) != 0
25509 : || !
25510 : #line 17858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25511 : (TARGET_64BIT && TARGET_BMI2 && reload_completed))
25512 : return NULL;
25513 : return gen_split_633 (insn, operands);
25514 :
25515 : case ROTATE:
25516 : if (pattern1184 (x3) != 0
25517 : || !
25518 : #line 18994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25519 : (TARGET_64BIT && TARGET_BMI2 && reload_completed
25520 : && !optimize_function_for_size_p (cfun)))
25521 : return NULL;
25522 : return gen_split_794 (insn, operands);
25523 :
25524 : case ROTATERT:
25525 : if (pattern1184 (x3) != 0
25526 : || !
25527 : #line 19010 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25528 : (TARGET_64BIT && TARGET_BMI2 && reload_completed
25529 : && !optimize_function_for_size_p (cfun)))
25530 : return NULL;
25531 : return gen_split_795 (insn, operands);
25532 :
25533 : case CTZ:
25534 : if (pattern1185 (x3,
25535 : E_SImode,
25536 : E_DImode) != 0
25537 : || !
25538 : #line 21542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25539 : ((TARGET_BMI || TARGET_CPU_P (GENERIC))
25540 : && (TARGET_AVOID_FALSE_DEP_FOR_BMI || TARGET_AVOID_FALSE_DEP_FOR_TZCNT)
25541 : && epilogue_completed
25542 : && optimize_function_for_speed_p (cfun)
25543 : && !reg_mentioned_p (operands[0], operands[1])))
25544 : return NULL;
25545 : return gen_split_883 (insn, operands);
25546 :
25547 : case XOR:
25548 : if (GET_MODE (x4) != E_SImode)
25549 : return NULL;
25550 : x5 = XEXP (x4, 0);
25551 : if (GET_CODE (x5) != MINUS
25552 : || pattern1166 (x4) != 0
25553 : || !register_operand (operands[0], E_DImode)
25554 : || GET_MODE (x3) != E_DImode)
25555 : return NULL;
25556 : x7 = XEXP (x5, 1);
25557 : x8 = XEXP (x7, 0);
25558 : operands[1] = x8;
25559 : if (!nonimmediate_operand (operands[1], E_SImode)
25560 : || !(
25561 : #line 21705 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25562 : (!TARGET_LZCNT && TARGET_64BIT && ix86_pre_reload_split ()) &&
25563 : #line 21707 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25564 : ( 1)))
25565 : return NULL;
25566 : return gen_split_887 (insn, operands);
25567 :
25568 : case CLZ:
25569 : if (pattern1185 (x3,
25570 : E_SImode,
25571 : E_DImode) != 0
25572 : || !(
25573 : #line 21969 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25574 : (TARGET_LZCNT && TARGET_64BIT) &&
25575 : #line 21971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25576 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
25577 : && optimize_function_for_speed_p (cfun)
25578 : && !reg_mentioned_p (operands[0], operands[1]))))
25579 : return NULL;
25580 : return gen_split_899 (insn, operands);
25581 :
25582 : case POPCOUNT:
25583 : x5 = XEXP (x4, 0);
25584 : operands[1] = x5;
25585 : switch (GET_MODE (operands[0]))
25586 : {
25587 : case E_DImode:
25588 : if (pattern350 (x3,
25589 : E_SImode,
25590 : E_DImode) != 0
25591 : || !(
25592 : #line 22808 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25593 : (TARGET_POPCNT && TARGET_64BIT) &&
25594 : #line 22816 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25595 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
25596 : && optimize_function_for_speed_p (cfun)
25597 : && !reg_mentioned_p (operands[0], operands[1]))))
25598 : return NULL;
25599 : return gen_split_923 (insn, operands);
25600 :
25601 : case E_SImode:
25602 : if (pattern350 (x3,
25603 : E_HImode,
25604 : E_SImode) != 0
25605 : || !(
25606 : #line 22874 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25607 : (TARGET_POPCNT
25608 : && ix86_pre_reload_split ()) &&
25609 : #line 22877 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25610 : ( 1)))
25611 : return NULL;
25612 : return gen_split_925 (insn, operands);
25613 :
25614 : default:
25615 : return NULL;
25616 : }
25617 :
25618 : default:
25619 : return NULL;
25620 : }
25621 : }
25622 :
25623 : rtx_insn *
25624 : split_41 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
25625 : {
25626 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
25627 : rtx x2, x3, x4, x5, x6;
25628 : rtx_insn *res ATTRIBUTE_UNUSED;
25629 : x2 = XEXP (x1, 0);
25630 : operands[0] = x2;
25631 : x3 = XEXP (x1, 1);
25632 : x4 = XEXP (x3, 0);
25633 : switch (GET_CODE (x4))
25634 : {
25635 : case LEU:
25636 : x5 = XEXP (x4, 0);
25637 : operands[1] = x5;
25638 : if (!int_nonimmediate_operand (operands[1], E_VOIDmode))
25639 : return NULL;
25640 : x6 = XEXP (x4, 1);
25641 : operands[2] = x6;
25642 : if (!const_int_operand (operands[2], E_VOIDmode))
25643 : return NULL;
25644 : switch (GET_MODE (operands[0]))
25645 : {
25646 : case E_SImode:
25647 : if (!register_operand (operands[0], E_SImode)
25648 : || GET_MODE (x3) != E_SImode
25649 : || GET_MODE (x4) != E_SImode
25650 : || !
25651 : #line 26744 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25652 : (x86_64_immediate_operand (operands[2], VOIDmode)
25653 : && INTVAL (operands[2]) != -1
25654 : && INTVAL (operands[2]) != 2147483647))
25655 : return NULL;
25656 : return gen_split_947 (insn, operands);
25657 :
25658 : case E_DImode:
25659 : if (!register_operand (operands[0], E_DImode)
25660 : || GET_MODE (x3) != E_DImode
25661 : || GET_MODE (x4) != E_DImode
25662 : || !(
25663 : #line 26744 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25664 : (x86_64_immediate_operand (operands[2], VOIDmode)
25665 : && INTVAL (operands[2]) != -1
25666 : && INTVAL (operands[2]) != 2147483647) &&
25667 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25668 : (TARGET_64BIT)))
25669 : return NULL;
25670 : return gen_split_948 (insn, operands);
25671 :
25672 : default:
25673 : return NULL;
25674 : }
25675 :
25676 : case EQ:
25677 : switch (pattern411 (x3))
25678 : {
25679 : case 0:
25680 : return gen_split_949 (insn, operands);
25681 :
25682 : case 1:
25683 : return gen_split_950 (insn, operands);
25684 :
25685 : case 2:
25686 : return gen_split_951 (insn, operands);
25687 :
25688 : case 3:
25689 : if (!
25690 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25691 : (TARGET_64BIT))
25692 : return NULL;
25693 : return gen_split_952 (insn, operands);
25694 :
25695 : default:
25696 : return NULL;
25697 : }
25698 :
25699 : case NE:
25700 : switch (pattern411 (x3))
25701 : {
25702 : case 0:
25703 : return gen_split_953 (insn, operands);
25704 :
25705 : case 1:
25706 : return gen_split_954 (insn, operands);
25707 :
25708 : case 2:
25709 : return gen_split_955 (insn, operands);
25710 :
25711 : case 3:
25712 : if (!
25713 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25714 : (TARGET_64BIT))
25715 : return NULL;
25716 : return gen_split_956 (insn, operands);
25717 :
25718 : default:
25719 : return NULL;
25720 : }
25721 :
25722 : default:
25723 : return NULL;
25724 : }
25725 : }
25726 :
25727 : rtx_insn *
25728 : split_42 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
25729 : {
25730 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
25731 : rtx x2, x3, x4, x5, x6, x7, x8;
25732 : rtx_insn *res ATTRIBUTE_UNUSED;
25733 : x2 = XEXP (x1, 1);
25734 : x3 = XEXP (x2, 0);
25735 : x4 = XEXP (x3, 0);
25736 : if (GET_CODE (x4) != REG
25737 : || REGNO (x4) != 17)
25738 : return NULL;
25739 : x5 = XEXP (x3, 1);
25740 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
25741 : return NULL;
25742 : x6 = XEXP (x1, 0);
25743 : operands[0] = x6;
25744 : x7 = XEXP (x2, 1);
25745 : operands[2] = x7;
25746 : x8 = XEXP (x2, 2);
25747 : operands[3] = x8;
25748 : switch (GET_MODE (operands[0]))
25749 : {
25750 : case E_HImode:
25751 : if (!register_operand (operands[0], E_HImode)
25752 : || GET_MODE (x2) != E_HImode
25753 : || !ix86_comparison_operator (operands[1], E_VOIDmode))
25754 : return NULL;
25755 : if (nonimmediate_operand (operands[2], E_HImode)
25756 : && nonimmediate_operand (operands[3], E_HImode)
25757 : &&
25758 : #line 26837 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25759 : (!TARGET_64BIT && TARGET_CMOVE
25760 : && TARGET_AVOID_MEM_OPND_FOR_CMOVE
25761 : && (MEM_P (operands[2]) || MEM_P (operands[3]))
25762 : && can_create_pseudo_p ()
25763 : && optimize_insn_for_speed_p ()))
25764 : return gen_split_957 (insn, operands);
25765 : if (!register_operand (operands[2], E_HImode)
25766 : || !register_operand (operands[3], E_HImode)
25767 : || !
25768 : #line 26867 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25769 : (TARGET_CMOVE && !TARGET_PARTIAL_REG_STALL
25770 : && reload_completed))
25771 : return NULL;
25772 : return gen_split_961 (insn, operands);
25773 :
25774 : case E_SImode:
25775 : if (pattern1208 (x2,
25776 : E_SImode) != 0
25777 : || !
25778 : #line 26837 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25779 : (!TARGET_64BIT && TARGET_CMOVE
25780 : && TARGET_AVOID_MEM_OPND_FOR_CMOVE
25781 : && (MEM_P (operands[2]) || MEM_P (operands[3]))
25782 : && can_create_pseudo_p ()
25783 : && optimize_insn_for_speed_p ()))
25784 : return NULL;
25785 : return gen_split_958 (insn, operands);
25786 :
25787 : case E_DImode:
25788 : if (pattern1208 (x2,
25789 : E_DImode) != 0
25790 : || !(
25791 : #line 26837 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25792 : (!TARGET_64BIT && TARGET_CMOVE
25793 : && TARGET_AVOID_MEM_OPND_FOR_CMOVE
25794 : && (MEM_P (operands[2]) || MEM_P (operands[3]))
25795 : && can_create_pseudo_p ()
25796 : && optimize_insn_for_speed_p ()) &&
25797 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25798 : (TARGET_64BIT)))
25799 : return NULL;
25800 : return gen_split_959 (insn, operands);
25801 :
25802 : case E_QImode:
25803 : if (pattern1209 (x2) != 0
25804 : || !
25805 : #line 26867 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25806 : (TARGET_CMOVE && !TARGET_PARTIAL_REG_STALL
25807 : && reload_completed))
25808 : return NULL;
25809 : return gen_split_960 (insn, operands);
25810 :
25811 : case E_DFmode:
25812 : if (GET_MODE (x2) != E_DFmode
25813 : || !nonimmediate_operand (operands[2], E_DFmode)
25814 : || !nonimmediate_operand (operands[3], E_DFmode))
25815 : return NULL;
25816 : if (general_reg_operand (operands[0], E_DFmode)
25817 : && fcmov_comparison_operator (operands[1], E_VOIDmode)
25818 : &&
25819 : #line 27083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25820 : (!TARGET_64BIT && reload_completed))
25821 : return gen_split_962 (insn, operands);
25822 : if (!register_operand (operands[0], E_DFmode)
25823 : || !ix86_comparison_operator (operands[1], E_VOIDmode)
25824 : || !
25825 : #line 27117 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25826 : (!TARGET_64BIT && TARGET_80387 && TARGET_CMOVE
25827 : && TARGET_AVOID_MEM_OPND_FOR_CMOVE
25828 : && (MEM_P (operands[2]) || MEM_P (operands[3]))
25829 : && can_create_pseudo_p ()
25830 : && optimize_insn_for_speed_p ()))
25831 : return NULL;
25832 : return gen_split_964 (insn, operands);
25833 :
25834 : case E_SFmode:
25835 : if (pattern1208 (x2,
25836 : E_SFmode) != 0
25837 : || !
25838 : #line 27117 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25839 : (!TARGET_64BIT && TARGET_80387 && TARGET_CMOVE
25840 : && TARGET_AVOID_MEM_OPND_FOR_CMOVE
25841 : && (MEM_P (operands[2]) || MEM_P (operands[3]))
25842 : && can_create_pseudo_p ()
25843 : && optimize_insn_for_speed_p ()))
25844 : return NULL;
25845 : return gen_split_963 (insn, operands);
25846 :
25847 : default:
25848 : return NULL;
25849 : }
25850 : }
25851 :
25852 : rtx_insn *
25853 : split_45 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
25854 : {
25855 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
25856 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
25857 : rtx x10;
25858 : rtx_insn *res ATTRIBUTE_UNUSED;
25859 : x2 = XEXP (x1, 1);
25860 : x3 = XEXP (x2, 0);
25861 : switch (GET_CODE (x3))
25862 : {
25863 : case AND:
25864 : x4 = XEXP (x2, 1);
25865 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
25866 : return NULL;
25867 : x5 = XEXP (x1, 0);
25868 : operands[0] = x5;
25869 : if (!flags_reg_operand (operands[0], E_VOIDmode))
25870 : return NULL;
25871 : operands[1] = x2;
25872 : if (!compare_operator (operands[1], E_VOIDmode))
25873 : return NULL;
25874 : x6 = XEXP (x3, 0);
25875 : operands[2] = x6;
25876 : if (!aligned_operand (operands[2], E_HImode))
25877 : return NULL;
25878 : x7 = XEXP (x3, 1);
25879 : operands[3] = x7;
25880 : if (!const_int_operand (operands[3], E_HImode)
25881 : || !
25882 : #line 28279 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25883 : (! TARGET_PARTIAL_REG_STALL && reload_completed
25884 : && ! TARGET_FAST_PREFIX
25885 : && optimize_insn_for_speed_p ()
25886 : /* Ensure that the operand will remain sign-extended immediate. */
25887 : && ix86_match_ccmode (insn, INTVAL (operands[3]) >= 0 ? CCNOmode : CCZmode)))
25888 : return NULL;
25889 : return gen_split_1013 (insn, operands);
25890 :
25891 : case UNSPEC:
25892 : if (XVECLEN (x3, 0) != 1
25893 : || XINT (x3, 1) != 50
25894 : || GET_MODE (x3) != E_SImode
25895 : || pattern46 (x1,
25896 : E_CCZmode) != 0)
25897 : return NULL;
25898 : x4 = XEXP (x2, 1);
25899 : operands[2] = x4;
25900 : if (!const_int_operand (operands[2], E_VOIDmode))
25901 : return NULL;
25902 : x8 = XVECEXP (x3, 0, 0);
25903 : switch (GET_CODE (x8))
25904 : {
25905 : case EQ:
25906 : x9 = XEXP (x8, 0);
25907 : operands[0] = x9;
25908 : x10 = XEXP (x8, 1);
25909 : operands[1] = x10;
25910 : switch (GET_MODE (x8))
25911 : {
25912 : case E_V32QImode:
25913 : if (!vector_operand (operands[0], E_V32QImode)
25914 : || !const0_operand (operands[1], E_V32QImode)
25915 : || !(
25916 : #line 22753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25917 : (TARGET_SSE4_1 && (INTVAL (operands[2]) == (int) (0xffffffff))) &&
25918 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25919 : (TARGET_AVX2)))
25920 : return NULL;
25921 : return gen_split_3550 (insn, operands);
25922 :
25923 : case E_V16QImode:
25924 : if (!vector_operand (operands[0], E_V16QImode)
25925 : || !const0_operand (operands[1], E_V16QImode)
25926 : || !
25927 : #line 22753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25928 : (TARGET_SSE4_1 && (INTVAL (operands[2]) == (int) (0xffff))))
25929 : return NULL;
25930 : return gen_split_3551 (insn, operands);
25931 :
25932 : default:
25933 : return NULL;
25934 : }
25935 :
25936 : case VEC_MERGE:
25937 : switch (pattern1271 (x8))
25938 : {
25939 : case 0:
25940 : if (!((
25941 : #line 22770 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25942 : (TARGET_AVX512VL && UINTVAL (operands[2]) <= 0xffffffff) &&
25943 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25944 : (TARGET_AVX2)) &&
25945 : #line 22772 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25946 : ( 1)))
25947 : return NULL;
25948 : return gen_split_3552 (insn, operands);
25949 :
25950 : case 1:
25951 : if (!(
25952 : #line 22770 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25953 : (TARGET_AVX512VL && UINTVAL (operands[2]) <= 0xffff) &&
25954 : #line 22772 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25955 : ( 1)))
25956 : return NULL;
25957 : return gen_split_3553 (insn, operands);
25958 :
25959 : case 2:
25960 : if (!((
25961 : #line 22793 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25962 : (TARGET_AVX512VL && (INTVAL (operands[2]) == (int) (0xffffffff))) &&
25963 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25964 : (TARGET_AVX2)) &&
25965 : #line 22795 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25966 : ( 1)))
25967 : return NULL;
25968 : return gen_split_3554 (insn, operands);
25969 :
25970 : case 3:
25971 : if (!(
25972 : #line 22793 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25973 : (TARGET_AVX512VL && (INTVAL (operands[2]) == (int) (0xffff))) &&
25974 : #line 22795 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25975 : ( 1)))
25976 : return NULL;
25977 : return gen_split_3555 (insn, operands);
25978 :
25979 : default:
25980 : return NULL;
25981 : }
25982 :
25983 : default:
25984 : return NULL;
25985 : }
25986 :
25987 : default:
25988 : return NULL;
25989 : }
25990 : }
25991 :
25992 : rtx_insn *
25993 : split_49 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
25994 : {
25995 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
25996 : rtx x2, x3, x4, x5, x6;
25997 : rtx_insn *res ATTRIBUTE_UNUSED;
25998 : x2 = XEXP (x1, 1);
25999 : x3 = XEXP (x2, 0);
26000 : if (GET_CODE (x3) != VEC_SELECT)
26001 : return NULL;
26002 : switch (pattern98 (x1))
26003 : {
26004 : case 0:
26005 : x4 = XEXP (x3, 0);
26006 : operands[1] = x4;
26007 : if (!register_operand (operands[1], E_V2SFmode)
26008 : || pattern976 (x2) != 0
26009 : || !register_operand (operands[0], E_SFmode)
26010 : || GET_MODE (x2) != E_SFmode
26011 : || GET_MODE (x3) != E_SFmode)
26012 : return NULL;
26013 : x5 = XEXP (x2, 1);
26014 : if (GET_MODE (x5) != E_SFmode)
26015 : return NULL;
26016 : x6 = XEXP (x5, 0);
26017 : if (!rtx_equal_p (x6, operands[1])
26018 : || !(
26019 : #line 1081 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26020 : (TARGET_SSE3 && TARGET_MMX_WITH_SSE && ix86_partial_vec_fp_math
26021 : && ix86_pre_reload_split ()) &&
26022 : #line 1084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26023 : ( 1)))
26024 : return NULL;
26025 : return gen_split_1073 (insn, operands);
26026 :
26027 : case 1:
26028 : switch (pattern864 (x2))
26029 : {
26030 : case 0:
26031 : if (!
26032 : #line 22975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26033 : (TARGET_SSSE3 && reload_completed
26034 : && SSE_REGNO_P (REGNO (operands[0]))))
26035 : return NULL;
26036 : return gen_split_3558 (insn, operands);
26037 :
26038 : case 1:
26039 : if (!
26040 : #line 23062 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26041 : (TARGET_SSSE3 && reload_completed
26042 : && SSE_REGNO_P (REGNO (operands[0]))))
26043 : return NULL;
26044 : return gen_split_3561 (insn, operands);
26045 :
26046 : default:
26047 : return NULL;
26048 : }
26049 :
26050 : default:
26051 : return NULL;
26052 : }
26053 : }
26054 :
26055 : rtx_insn *
26056 : split_51 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
26057 : {
26058 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
26059 : rtx x2, x3, x4, x5, x6, x7, x8;
26060 : rtx_insn *res ATTRIBUTE_UNUSED;
26061 : x2 = XEXP (x1, 1);
26062 : x3 = XEXP (x2, 1);
26063 : if (GET_CODE (x3) != PARALLEL)
26064 : return NULL;
26065 : x4 = XEXP (x1, 0);
26066 : operands[0] = x4;
26067 : x5 = XEXP (x2, 0);
26068 : switch (GET_CODE (x5))
26069 : {
26070 : case VEC_CONCAT:
26071 : switch (pattern274 (x2))
26072 : {
26073 : case 0:
26074 : x6 = XVECEXP (x3, 0, 1);
26075 : if (GET_CODE (x6) == CONST_INT)
26076 : {
26077 : switch (pattern980 (x2))
26078 : {
26079 : case 0:
26080 : if ((
26081 : #line 1714 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26082 : (TARGET_MMX_WITH_SSE) &&
26083 : #line 1716 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26084 : ( reload_completed)))
26085 : return gen_split_1074 (insn, operands);
26086 : break;
26087 :
26088 : case 1:
26089 : if ((
26090 : #line 5019 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26091 : (TARGET_MMX || TARGET_MMX_WITH_SSE) &&
26092 : #line 5024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26093 : ( reload_completed
26094 : && SSE_REGNO_P (REGNO (operands[0])))))
26095 : return gen_split_1157 (insn, operands);
26096 : break;
26097 :
26098 : case 2:
26099 : if ((
26100 : #line 1731 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26101 : (TARGET_MMX_WITH_SSE) &&
26102 : #line 1733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26103 : ( reload_completed)))
26104 : return gen_split_1075 (insn, operands);
26105 : break;
26106 :
26107 : case 3:
26108 : if ((
26109 : #line 4998 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26110 : (TARGET_MMX || TARGET_MMX_WITH_SSE) &&
26111 : #line 5003 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26112 : ( reload_completed
26113 : && SSE_REGNO_P (REGNO (operands[0])))))
26114 : return gen_split_1156 (insn, operands);
26115 : break;
26116 :
26117 : default:
26118 : break;
26119 : }
26120 : }
26121 : x7 = XVECEXP (x3, 0, 0);
26122 : operands[3] = x7;
26123 : switch (pattern981 (x2))
26124 : {
26125 : case 0:
26126 : if (!(
26127 : #line 6225 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26128 : (TARGET_SSE2) &&
26129 : #line 6227 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26130 : ( reload_completed)))
26131 : return NULL;
26132 : return gen_split_1169 (insn, operands);
26133 :
26134 : case 1:
26135 : if (!(
26136 : #line 6225 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26137 : (TARGET_SSE2) &&
26138 : #line 6227 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26139 : ( reload_completed)))
26140 : return NULL;
26141 : return gen_split_1170 (insn, operands);
26142 :
26143 : case 2:
26144 : if (!(
26145 : #line 6225 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26146 : (TARGET_SSE2) &&
26147 : #line 6227 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26148 : ( reload_completed)))
26149 : return NULL;
26150 : return gen_split_1171 (insn, operands);
26151 :
26152 : default:
26153 : return NULL;
26154 : }
26155 :
26156 : case 1:
26157 : if (!(
26158 : #line 4878 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26159 : (TARGET_MMX || TARGET_MMX_WITH_SSE) &&
26160 : #line 4883 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26161 : ( reload_completed
26162 : && SSE_REGNO_P (REGNO (operands[0])))))
26163 : return NULL;
26164 : return gen_split_1150 (insn, operands);
26165 :
26166 : case 2:
26167 : if (!(
26168 : #line 4918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26169 : (TARGET_MMX || TARGET_MMX_WITH_SSE) &&
26170 : #line 4923 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26171 : ( reload_completed
26172 : && SSE_REGNO_P (REGNO (operands[0])))))
26173 : return NULL;
26174 : return gen_split_1152 (insn, operands);
26175 :
26176 : case 3:
26177 : if (!(
26178 : #line 4899 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26179 : (TARGET_SSE2) &&
26180 : #line 4901 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26181 : ( reload_completed)))
26182 : return NULL;
26183 : return gen_split_1151 (insn, operands);
26184 :
26185 : case 4:
26186 : if (!(
26187 : #line 4956 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26188 : (TARGET_MMX || TARGET_MMX_WITH_SSE) &&
26189 : #line 4961 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26190 : ( reload_completed
26191 : && SSE_REGNO_P (REGNO (operands[0])))))
26192 : return NULL;
26193 : return gen_split_1154 (insn, operands);
26194 :
26195 : case 5:
26196 : if (!(
26197 : #line 4939 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26198 : (TARGET_SSE2) &&
26199 : #line 4941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26200 : ( reload_completed)))
26201 : return NULL;
26202 : return gen_split_1153 (insn, operands);
26203 :
26204 : case 6:
26205 : if (!(
26206 : #line 4977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26207 : (TARGET_MMX || TARGET_MMX_WITH_SSE) &&
26208 : #line 4982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26209 : ( reload_completed
26210 : && SSE_REGNO_P (REGNO (operands[0])))))
26211 : return NULL;
26212 : return gen_split_1155 (insn, operands);
26213 :
26214 : default:
26215 : return NULL;
26216 : }
26217 :
26218 : case REG:
26219 : case SUBREG:
26220 : case MEM:
26221 : switch (XVECLEN (x3, 0))
26222 : {
26223 : case 1:
26224 : res = split_50 (x1, insn);
26225 : if (res != NULL_RTX)
26226 : return res;
26227 : break;
26228 :
26229 : case 2:
26230 : x7 = XVECEXP (x3, 0, 0);
26231 : if (x7 == const_int_rtx[MAX_SAVED_CONST_INT + 1])
26232 : {
26233 : x6 = XVECEXP (x3, 0, 1);
26234 : if (x6 == const_int_rtx[MAX_SAVED_CONST_INT + 0]
26235 : && memory_operand (operands[0], E_V2SImode)
26236 : && GET_MODE (x2) == E_V2SImode
26237 : && rtx_equal_p (x5, operands[0])
26238 : &&
26239 : #line 5661 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26240 : (TARGET_64BIT && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())))
26241 : return gen_split_1161 (insn, operands);
26242 : }
26243 : break;
26244 :
26245 : default:
26246 : break;
26247 : }
26248 : if (XVECLEN (x3, 0) != 1)
26249 : return NULL;
26250 : x7 = XVECEXP (x3, 0, 0);
26251 : if (x7 == const_int_rtx[MAX_SAVED_CONST_INT + 0]
26252 : && GET_MODE (x2) == E_DImode)
26253 : {
26254 : if (GET_CODE (x5) == SUBREG
26255 : && known_eq (SUBREG_BYTE (x5), 0)
26256 : && GET_MODE (x5) == E_V2DImode
26257 : && register_operand (operands[0], E_DImode))
26258 : {
26259 : x8 = XEXP (x5, 0);
26260 : switch (pattern1220 (x8))
26261 : {
26262 : case 0:
26263 : if (pshufb_truncv8hiv8qi_operand (operands[2], E_V16QImode)
26264 : && (
26265 : #line 15707 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26266 : (TARGET_AVX512VL && TARGET_AVX512BW && ix86_pre_reload_split ()) &&
26267 : #line 15709 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26268 : ( 1)))
26269 : return gen_split_3267 (insn, operands);
26270 : if (pshufb_truncv4siv4hi_operand (operands[2], E_V16QImode)
26271 : && (
26272 : #line 16062 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26273 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
26274 : #line 16064 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26275 : ( 1)))
26276 : return gen_split_3283 (insn, operands);
26277 : break;
26278 :
26279 : case 1:
26280 : if ((
26281 : #line 16303 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26282 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
26283 : #line 16305 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26284 : ( 1)))
26285 : return gen_split_3293 (insn, operands);
26286 : break;
26287 :
26288 : default:
26289 : break;
26290 : }
26291 : }
26292 : operands[1] = x5;
26293 : if (register_operand (operands[1], E_V2DImode))
26294 : {
26295 : if (general_reg_operand (operands[0], E_DImode)
26296 : &&
26297 : #line 21526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26298 : (TARGET_SSE4_1 && !TARGET_64BIT
26299 : && reload_completed))
26300 : return gen_split_3479 (insn, operands);
26301 : if (nonimmediate_operand (operands[0], E_DImode)
26302 : &&
26303 : #line 21544 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26304 : (TARGET_SSE && reload_completed))
26305 : return gen_split_3481 (insn, operands);
26306 : }
26307 : }
26308 : if (!register_operand (operands[0], E_DImode)
26309 : || GET_MODE (x2) != E_DImode)
26310 : return NULL;
26311 : operands[1] = x5;
26312 : if (!memory_operand (operands[1], E_V2DImode))
26313 : return NULL;
26314 : operands[2] = x7;
26315 : if (!const_0_to_1_operand (operands[2], E_VOIDmode)
26316 : || !
26317 : #line 21731 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26318 : (TARGET_SSE && reload_completed))
26319 : return NULL;
26320 : return gen_split_3487 (insn, operands);
26321 :
26322 : case UNSPEC:
26323 : if (pattern275 (x2) != 0
26324 : || !
26325 : #line 8756 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26326 : (TARGET_SSE2 && reload_completed
26327 : && SSE_REG_P (operands[0])))
26328 : return NULL;
26329 : return gen_split_1601 (insn, operands);
26330 :
26331 : case FIX:
26332 : if (pattern277 (x2) != 0
26333 : || !
26334 : #line 8820 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26335 : (TARGET_SSE2 && reload_completed
26336 : && SSE_REG_P (operands[0])))
26337 : return NULL;
26338 : return gen_split_1603 (insn, operands);
26339 :
26340 : default:
26341 : return NULL;
26342 : }
26343 : }
26344 :
26345 : rtx_insn *
26346 : split_57 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
26347 : {
26348 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
26349 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
26350 : rtx x10, x11, x12, x13, x14;
26351 : rtx_insn *res ATTRIBUTE_UNUSED;
26352 : x2 = XEXP (x1, 1);
26353 : operands[3] = x2;
26354 : x3 = XEXP (x2, 0);
26355 : if (GET_CODE (x3) != UNSPEC
26356 : || XVECLEN (x3, 0) != 2
26357 : || XINT (x3, 1) != 131
26358 : || GET_MODE (x3) != E_CCZmode)
26359 : return NULL;
26360 : x4 = XVECEXP (x3, 0, 0);
26361 : if (GET_CODE (x4) != AND)
26362 : return NULL;
26363 : x5 = XEXP (x4, 0);
26364 : if (GET_CODE (x5) != NOT)
26365 : return NULL;
26366 : x6 = XVECEXP (x3, 0, 1);
26367 : if (GET_CODE (x6) != AND)
26368 : return NULL;
26369 : x7 = XEXP (x6, 0);
26370 : if (GET_CODE (x7) != NOT)
26371 : return NULL;
26372 : x8 = XEXP (x2, 1);
26373 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
26374 : return NULL;
26375 : x9 = XEXP (x5, 0);
26376 : operands[1] = x9;
26377 : x10 = XEXP (x4, 1);
26378 : operands[2] = x10;
26379 : x11 = XEXP (x7, 0);
26380 : if (!rtx_equal_p (x11, operands[1]))
26381 : return NULL;
26382 : x12 = XEXP (x6, 1);
26383 : if (!rtx_equal_p (x12, operands[2]))
26384 : return NULL;
26385 : x13 = XEXP (x1, 0);
26386 : switch (GET_CODE (x13))
26387 : {
26388 : case REG:
26389 : case SUBREG:
26390 : operands[0] = x13;
26391 : switch (GET_MODE (operands[0]))
26392 : {
26393 : case E_QImode:
26394 : if (!register_operand (operands[0], E_QImode))
26395 : return NULL;
26396 : switch (pattern1710 (x3,
26397 : E_QImode))
26398 : {
26399 : case 0:
26400 : if (!
26401 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26402 : (TARGET_SSE4_1))
26403 : return NULL;
26404 : return gen_split_3699 (insn, operands);
26405 :
26406 : case 1:
26407 : if (!
26408 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26409 : (TARGET_SSE4_1))
26410 : return NULL;
26411 : return gen_split_3700 (insn, operands);
26412 :
26413 : case 2:
26414 : if (!
26415 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26416 : (TARGET_SSE4_1))
26417 : return NULL;
26418 : return gen_split_3701 (insn, operands);
26419 :
26420 : case 3:
26421 : if (!
26422 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26423 : (TARGET_SSE4_1))
26424 : return NULL;
26425 : return gen_split_3702 (insn, operands);
26426 :
26427 : case 4:
26428 : if (!
26429 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26430 : (TARGET_SSE4_1))
26431 : return NULL;
26432 : return gen_split_3703 (insn, operands);
26433 :
26434 : case 5:
26435 : if (!
26436 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26437 : (TARGET_SSE4_1))
26438 : return NULL;
26439 : return gen_split_3704 (insn, operands);
26440 :
26441 : case 6:
26442 : if (!
26443 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26444 : (TARGET_SSE4_1))
26445 : return NULL;
26446 : return gen_split_3705 (insn, operands);
26447 :
26448 : case 7:
26449 : if (!(
26450 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26451 : (TARGET_SSE4_1) &&
26452 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26453 : (TARGET_AVX)))
26454 : return NULL;
26455 : return gen_split_3706 (insn, operands);
26456 :
26457 : case 8:
26458 : if (!(
26459 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26460 : (TARGET_SSE4_1) &&
26461 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26462 : (TARGET_AVX)))
26463 : return NULL;
26464 : return gen_split_3707 (insn, operands);
26465 :
26466 : case 9:
26467 : if (!(
26468 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26469 : (TARGET_SSE4_1) &&
26470 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26471 : (TARGET_AVX)))
26472 : return NULL;
26473 : return gen_split_3708 (insn, operands);
26474 :
26475 : case 10:
26476 : if (!(
26477 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26478 : (TARGET_SSE4_1) &&
26479 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26480 : (TARGET_AVX)))
26481 : return NULL;
26482 : return gen_split_3709 (insn, operands);
26483 :
26484 : case 11:
26485 : if (!(
26486 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26487 : (TARGET_SSE4_1) &&
26488 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26489 : (TARGET_AVX)))
26490 : return NULL;
26491 : return gen_split_3710 (insn, operands);
26492 :
26493 : case 12:
26494 : if (!(
26495 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26496 : (TARGET_SSE4_1) &&
26497 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26498 : (TARGET_AVX)))
26499 : return NULL;
26500 : return gen_split_3711 (insn, operands);
26501 :
26502 : case 13:
26503 : if (!(
26504 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26505 : (TARGET_SSE4_1) &&
26506 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26507 : (TARGET_AVX)))
26508 : return NULL;
26509 : return gen_split_3712 (insn, operands);
26510 :
26511 : default:
26512 : return NULL;
26513 : }
26514 :
26515 : case E_HImode:
26516 : if (!register_operand (operands[0], E_HImode))
26517 : return NULL;
26518 : switch (pattern1710 (x3,
26519 : E_HImode))
26520 : {
26521 : case 0:
26522 : if (!
26523 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26524 : (TARGET_SSE4_1))
26525 : return NULL;
26526 : return gen_split_3713 (insn, operands);
26527 :
26528 : case 1:
26529 : if (!
26530 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26531 : (TARGET_SSE4_1))
26532 : return NULL;
26533 : return gen_split_3714 (insn, operands);
26534 :
26535 : case 2:
26536 : if (!
26537 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26538 : (TARGET_SSE4_1))
26539 : return NULL;
26540 : return gen_split_3715 (insn, operands);
26541 :
26542 : case 3:
26543 : if (!
26544 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26545 : (TARGET_SSE4_1))
26546 : return NULL;
26547 : return gen_split_3716 (insn, operands);
26548 :
26549 : case 4:
26550 : if (!
26551 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26552 : (TARGET_SSE4_1))
26553 : return NULL;
26554 : return gen_split_3717 (insn, operands);
26555 :
26556 : case 5:
26557 : if (!
26558 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26559 : (TARGET_SSE4_1))
26560 : return NULL;
26561 : return gen_split_3718 (insn, operands);
26562 :
26563 : case 6:
26564 : if (!
26565 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26566 : (TARGET_SSE4_1))
26567 : return NULL;
26568 : return gen_split_3719 (insn, operands);
26569 :
26570 : case 7:
26571 : if (!(
26572 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26573 : (TARGET_SSE4_1) &&
26574 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26575 : (TARGET_AVX)))
26576 : return NULL;
26577 : return gen_split_3720 (insn, operands);
26578 :
26579 : case 8:
26580 : if (!(
26581 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26582 : (TARGET_SSE4_1) &&
26583 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26584 : (TARGET_AVX)))
26585 : return NULL;
26586 : return gen_split_3721 (insn, operands);
26587 :
26588 : case 9:
26589 : if (!(
26590 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26591 : (TARGET_SSE4_1) &&
26592 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26593 : (TARGET_AVX)))
26594 : return NULL;
26595 : return gen_split_3722 (insn, operands);
26596 :
26597 : case 10:
26598 : if (!(
26599 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26600 : (TARGET_SSE4_1) &&
26601 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26602 : (TARGET_AVX)))
26603 : return NULL;
26604 : return gen_split_3723 (insn, operands);
26605 :
26606 : case 11:
26607 : if (!(
26608 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26609 : (TARGET_SSE4_1) &&
26610 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26611 : (TARGET_AVX)))
26612 : return NULL;
26613 : return gen_split_3724 (insn, operands);
26614 :
26615 : case 12:
26616 : if (!(
26617 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26618 : (TARGET_SSE4_1) &&
26619 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26620 : (TARGET_AVX)))
26621 : return NULL;
26622 : return gen_split_3725 (insn, operands);
26623 :
26624 : case 13:
26625 : if (!(
26626 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26627 : (TARGET_SSE4_1) &&
26628 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26629 : (TARGET_AVX)))
26630 : return NULL;
26631 : return gen_split_3726 (insn, operands);
26632 :
26633 : default:
26634 : return NULL;
26635 : }
26636 :
26637 : case E_SImode:
26638 : if (!register_operand (operands[0], E_SImode))
26639 : return NULL;
26640 : switch (pattern1710 (x3,
26641 : E_SImode))
26642 : {
26643 : case 0:
26644 : if (!
26645 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26646 : (TARGET_SSE4_1))
26647 : return NULL;
26648 : return gen_split_3727 (insn, operands);
26649 :
26650 : case 1:
26651 : if (!
26652 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26653 : (TARGET_SSE4_1))
26654 : return NULL;
26655 : return gen_split_3728 (insn, operands);
26656 :
26657 : case 2:
26658 : if (!
26659 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26660 : (TARGET_SSE4_1))
26661 : return NULL;
26662 : return gen_split_3729 (insn, operands);
26663 :
26664 : case 3:
26665 : if (!
26666 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26667 : (TARGET_SSE4_1))
26668 : return NULL;
26669 : return gen_split_3730 (insn, operands);
26670 :
26671 : case 4:
26672 : if (!
26673 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26674 : (TARGET_SSE4_1))
26675 : return NULL;
26676 : return gen_split_3731 (insn, operands);
26677 :
26678 : case 5:
26679 : if (!
26680 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26681 : (TARGET_SSE4_1))
26682 : return NULL;
26683 : return gen_split_3732 (insn, operands);
26684 :
26685 : case 6:
26686 : if (!
26687 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26688 : (TARGET_SSE4_1))
26689 : return NULL;
26690 : return gen_split_3733 (insn, operands);
26691 :
26692 : case 7:
26693 : if (!(
26694 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26695 : (TARGET_SSE4_1) &&
26696 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26697 : (TARGET_AVX)))
26698 : return NULL;
26699 : return gen_split_3734 (insn, operands);
26700 :
26701 : case 8:
26702 : if (!(
26703 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26704 : (TARGET_SSE4_1) &&
26705 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26706 : (TARGET_AVX)))
26707 : return NULL;
26708 : return gen_split_3735 (insn, operands);
26709 :
26710 : case 9:
26711 : if (!(
26712 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26713 : (TARGET_SSE4_1) &&
26714 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26715 : (TARGET_AVX)))
26716 : return NULL;
26717 : return gen_split_3736 (insn, operands);
26718 :
26719 : case 10:
26720 : if (!(
26721 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26722 : (TARGET_SSE4_1) &&
26723 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26724 : (TARGET_AVX)))
26725 : return NULL;
26726 : return gen_split_3737 (insn, operands);
26727 :
26728 : case 11:
26729 : if (!(
26730 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26731 : (TARGET_SSE4_1) &&
26732 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26733 : (TARGET_AVX)))
26734 : return NULL;
26735 : return gen_split_3738 (insn, operands);
26736 :
26737 : case 12:
26738 : if (!(
26739 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26740 : (TARGET_SSE4_1) &&
26741 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26742 : (TARGET_AVX)))
26743 : return NULL;
26744 : return gen_split_3739 (insn, operands);
26745 :
26746 : case 13:
26747 : if (!(
26748 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26749 : (TARGET_SSE4_1) &&
26750 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26751 : (TARGET_AVX)))
26752 : return NULL;
26753 : return gen_split_3740 (insn, operands);
26754 :
26755 : default:
26756 : return NULL;
26757 : }
26758 :
26759 : case E_DImode:
26760 : if (!register_operand (operands[0], E_DImode))
26761 : return NULL;
26762 : switch (pattern1710 (x3,
26763 : E_DImode))
26764 : {
26765 : case 0:
26766 : if (!(
26767 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26768 : (TARGET_SSE4_1) &&
26769 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26770 : (TARGET_64BIT)))
26771 : return NULL;
26772 : return gen_split_3741 (insn, operands);
26773 :
26774 : case 1:
26775 : if (!(
26776 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26777 : (TARGET_SSE4_1) &&
26778 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26779 : (TARGET_64BIT)))
26780 : return NULL;
26781 : return gen_split_3742 (insn, operands);
26782 :
26783 : case 2:
26784 : if (!(
26785 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26786 : (TARGET_SSE4_1) &&
26787 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26788 : (TARGET_64BIT)))
26789 : return NULL;
26790 : return gen_split_3743 (insn, operands);
26791 :
26792 : case 3:
26793 : if (!(
26794 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26795 : (TARGET_SSE4_1) &&
26796 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26797 : (TARGET_64BIT)))
26798 : return NULL;
26799 : return gen_split_3744 (insn, operands);
26800 :
26801 : case 4:
26802 : if (!(
26803 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26804 : (TARGET_SSE4_1) &&
26805 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26806 : (TARGET_64BIT)))
26807 : return NULL;
26808 : return gen_split_3745 (insn, operands);
26809 :
26810 : case 5:
26811 : if (!(
26812 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26813 : (TARGET_SSE4_1) &&
26814 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26815 : (TARGET_64BIT)))
26816 : return NULL;
26817 : return gen_split_3746 (insn, operands);
26818 :
26819 : case 6:
26820 : if (!(
26821 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26822 : (TARGET_SSE4_1) &&
26823 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26824 : (TARGET_64BIT)))
26825 : return NULL;
26826 : return gen_split_3747 (insn, operands);
26827 :
26828 : case 7:
26829 : if (!(
26830 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26831 : (TARGET_SSE4_1) && ((((((
26832 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26833 : (TARGET_64BIT) &&
26834 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26835 : (TARGET_AVX)) &&
26836 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26837 : (TARGET_AVX)) &&
26838 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26839 : (TARGET_AVX)) &&
26840 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26841 : (TARGET_AVX)) &&
26842 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26843 : (TARGET_AVX)) &&
26844 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26845 : (TARGET_AVX))))
26846 : return NULL;
26847 : return gen_split_3748 (insn, operands);
26848 :
26849 : case 8:
26850 : if (!(
26851 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26852 : (TARGET_SSE4_1) && ((((((
26853 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26854 : (TARGET_64BIT) &&
26855 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26856 : (TARGET_AVX)) &&
26857 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26858 : (TARGET_AVX)) &&
26859 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26860 : (TARGET_AVX)) &&
26861 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26862 : (TARGET_AVX)) &&
26863 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26864 : (TARGET_AVX)) &&
26865 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26866 : (TARGET_AVX))))
26867 : return NULL;
26868 : return gen_split_3749 (insn, operands);
26869 :
26870 : case 9:
26871 : if (!(
26872 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26873 : (TARGET_SSE4_1) && ((((((
26874 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26875 : (TARGET_64BIT) &&
26876 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26877 : (TARGET_AVX)) &&
26878 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26879 : (TARGET_AVX)) &&
26880 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26881 : (TARGET_AVX)) &&
26882 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26883 : (TARGET_AVX)) &&
26884 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26885 : (TARGET_AVX)) &&
26886 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26887 : (TARGET_AVX))))
26888 : return NULL;
26889 : return gen_split_3750 (insn, operands);
26890 :
26891 : case 10:
26892 : if (!(
26893 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26894 : (TARGET_SSE4_1) && ((((((
26895 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26896 : (TARGET_64BIT) &&
26897 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26898 : (TARGET_AVX)) &&
26899 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26900 : (TARGET_AVX)) &&
26901 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26902 : (TARGET_AVX)) &&
26903 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26904 : (TARGET_AVX)) &&
26905 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26906 : (TARGET_AVX)) &&
26907 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26908 : (TARGET_AVX))))
26909 : return NULL;
26910 : return gen_split_3751 (insn, operands);
26911 :
26912 : case 11:
26913 : if (!(
26914 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26915 : (TARGET_SSE4_1) && ((((((
26916 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26917 : (TARGET_64BIT) &&
26918 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26919 : (TARGET_AVX)) &&
26920 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26921 : (TARGET_AVX)) &&
26922 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26923 : (TARGET_AVX)) &&
26924 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26925 : (TARGET_AVX)) &&
26926 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26927 : (TARGET_AVX)) &&
26928 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26929 : (TARGET_AVX))))
26930 : return NULL;
26931 : return gen_split_3752 (insn, operands);
26932 :
26933 : case 12:
26934 : if (!(
26935 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26936 : (TARGET_SSE4_1) && ((((((
26937 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26938 : (TARGET_64BIT) &&
26939 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26940 : (TARGET_AVX)) &&
26941 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26942 : (TARGET_AVX)) &&
26943 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26944 : (TARGET_AVX)) &&
26945 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26946 : (TARGET_AVX)) &&
26947 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26948 : (TARGET_AVX)) &&
26949 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26950 : (TARGET_AVX))))
26951 : return NULL;
26952 : return gen_split_3753 (insn, operands);
26953 :
26954 : case 13:
26955 : if (!(
26956 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26957 : (TARGET_SSE4_1) && ((((((
26958 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26959 : (TARGET_64BIT) &&
26960 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26961 : (TARGET_AVX)) &&
26962 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26963 : (TARGET_AVX)) &&
26964 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26965 : (TARGET_AVX)) &&
26966 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26967 : (TARGET_AVX)) &&
26968 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26969 : (TARGET_AVX)) &&
26970 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26971 : (TARGET_AVX))))
26972 : return NULL;
26973 : return gen_split_3754 (insn, operands);
26974 :
26975 : default:
26976 : return NULL;
26977 : }
26978 :
26979 : default:
26980 : return NULL;
26981 : }
26982 :
26983 : case STRICT_LOW_PART:
26984 : x14 = XEXP (x13, 0);
26985 : operands[0] = x14;
26986 : if (!register_operand (operands[0], E_QImode))
26987 : return NULL;
26988 : switch (pattern1710 (x3,
26989 : E_QImode))
26990 : {
26991 : case 0:
26992 : if (!
26993 : #line 26004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26994 : (TARGET_SSE4_1))
26995 : return NULL;
26996 : return gen_split_3755 (insn, operands);
26997 :
26998 : case 1:
26999 : if (!
27000 : #line 26004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27001 : (TARGET_SSE4_1))
27002 : return NULL;
27003 : return gen_split_3756 (insn, operands);
27004 :
27005 : case 2:
27006 : if (!
27007 : #line 26004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27008 : (TARGET_SSE4_1))
27009 : return NULL;
27010 : return gen_split_3757 (insn, operands);
27011 :
27012 : case 3:
27013 : if (!
27014 : #line 26004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27015 : (TARGET_SSE4_1))
27016 : return NULL;
27017 : return gen_split_3758 (insn, operands);
27018 :
27019 : case 4:
27020 : if (!
27021 : #line 26004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27022 : (TARGET_SSE4_1))
27023 : return NULL;
27024 : return gen_split_3759 (insn, operands);
27025 :
27026 : case 5:
27027 : if (!
27028 : #line 26004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27029 : (TARGET_SSE4_1))
27030 : return NULL;
27031 : return gen_split_3760 (insn, operands);
27032 :
27033 : case 6:
27034 : if (!
27035 : #line 26004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27036 : (TARGET_SSE4_1))
27037 : return NULL;
27038 : return gen_split_3761 (insn, operands);
27039 :
27040 : case 7:
27041 : if (!(
27042 : #line 26004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27043 : (TARGET_SSE4_1) &&
27044 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27045 : (TARGET_AVX)))
27046 : return NULL;
27047 : return gen_split_3762 (insn, operands);
27048 :
27049 : case 8:
27050 : if (!(
27051 : #line 26004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27052 : (TARGET_SSE4_1) &&
27053 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27054 : (TARGET_AVX)))
27055 : return NULL;
27056 : return gen_split_3763 (insn, operands);
27057 :
27058 : case 9:
27059 : if (!(
27060 : #line 26004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27061 : (TARGET_SSE4_1) &&
27062 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27063 : (TARGET_AVX)))
27064 : return NULL;
27065 : return gen_split_3764 (insn, operands);
27066 :
27067 : case 10:
27068 : if (!(
27069 : #line 26004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27070 : (TARGET_SSE4_1) &&
27071 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27072 : (TARGET_AVX)))
27073 : return NULL;
27074 : return gen_split_3765 (insn, operands);
27075 :
27076 : case 11:
27077 : if (!(
27078 : #line 26004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27079 : (TARGET_SSE4_1) &&
27080 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27081 : (TARGET_AVX)))
27082 : return NULL;
27083 : return gen_split_3766 (insn, operands);
27084 :
27085 : case 12:
27086 : if (!(
27087 : #line 26004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27088 : (TARGET_SSE4_1) &&
27089 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27090 : (TARGET_AVX)))
27091 : return NULL;
27092 : return gen_split_3767 (insn, operands);
27093 :
27094 : case 13:
27095 : if (!(
27096 : #line 26004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27097 : (TARGET_SSE4_1) &&
27098 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27099 : (TARGET_AVX)))
27100 : return NULL;
27101 : return gen_split_3768 (insn, operands);
27102 :
27103 : default:
27104 : return NULL;
27105 : }
27106 :
27107 : default:
27108 : return NULL;
27109 : }
27110 : }
27111 :
27112 : rtx_insn *
27113 : split_67 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
27114 : {
27115 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
27116 : rtx x2, x3, x4;
27117 : rtx_insn *res ATTRIBUTE_UNUSED;
27118 : x2 = XEXP (x1, 1);
27119 : x3 = XEXP (x2, 0);
27120 : x4 = XEXP (x3, 0);
27121 : switch (GET_CODE (x4))
27122 : {
27123 : case REG:
27124 : case SUBREG:
27125 : case MEM:
27126 : case NOT:
27127 : switch (pattern535 (x2))
27128 : {
27129 : case 0:
27130 : if (!((
27131 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27132 : ((64 == 64 || TARGET_AVX512VL
27133 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27134 : && ix86_pre_reload_split ()
27135 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27136 : STRIP_UNARY (operands[4]))
27137 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27138 : STRIP_UNARY (operands[4]))
27139 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27140 : STRIP_UNARY (operands[3]))
27141 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27142 : STRIP_UNARY (operands[3])))) &&
27143 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27144 : (TARGET_AVX512F)) &&
27145 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27146 : ( 1)))
27147 : return NULL;
27148 : return gen_split_1752 (insn, operands);
27149 :
27150 : case 1:
27151 : if (!((
27152 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27153 : ((32 == 64 || TARGET_AVX512VL
27154 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27155 : && ix86_pre_reload_split ()
27156 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27157 : STRIP_UNARY (operands[4]))
27158 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27159 : STRIP_UNARY (operands[4]))
27160 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27161 : STRIP_UNARY (operands[3]))
27162 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27163 : STRIP_UNARY (operands[3])))) &&
27164 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27165 : (TARGET_AVX)) &&
27166 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27167 : ( 1)))
27168 : return NULL;
27169 : return gen_split_1779 (insn, operands);
27170 :
27171 : case 2:
27172 : if (!(
27173 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27174 : ((16 == 64 || TARGET_AVX512VL
27175 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27176 : && ix86_pre_reload_split ()
27177 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27178 : STRIP_UNARY (operands[4]))
27179 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27180 : STRIP_UNARY (operands[4]))
27181 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27182 : STRIP_UNARY (operands[3]))
27183 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27184 : STRIP_UNARY (operands[3])))) &&
27185 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27186 : ( 1)))
27187 : return NULL;
27188 : return gen_split_1806 (insn, operands);
27189 :
27190 : case 3:
27191 : if (!((
27192 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27193 : ((64 == 64 || TARGET_AVX512VL
27194 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27195 : && ix86_pre_reload_split ()
27196 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27197 : STRIP_UNARY (operands[4]))
27198 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27199 : STRIP_UNARY (operands[4]))
27200 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27201 : STRIP_UNARY (operands[3]))
27202 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27203 : STRIP_UNARY (operands[3])))) &&
27204 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27205 : (TARGET_AVX512F)) &&
27206 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27207 : ( 1)))
27208 : return NULL;
27209 : return gen_split_1833 (insn, operands);
27210 :
27211 : case 4:
27212 : if (!((
27213 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27214 : ((32 == 64 || TARGET_AVX512VL
27215 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27216 : && ix86_pre_reload_split ()
27217 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27218 : STRIP_UNARY (operands[4]))
27219 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27220 : STRIP_UNARY (operands[4]))
27221 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27222 : STRIP_UNARY (operands[3]))
27223 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27224 : STRIP_UNARY (operands[3])))) &&
27225 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27226 : (TARGET_AVX)) &&
27227 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27228 : ( 1)))
27229 : return NULL;
27230 : return gen_split_1860 (insn, operands);
27231 :
27232 : case 5:
27233 : if (!(
27234 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27235 : ((16 == 64 || TARGET_AVX512VL
27236 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27237 : && ix86_pre_reload_split ()
27238 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27239 : STRIP_UNARY (operands[4]))
27240 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27241 : STRIP_UNARY (operands[4]))
27242 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27243 : STRIP_UNARY (operands[3]))
27244 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27245 : STRIP_UNARY (operands[3])))) &&
27246 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27247 : ( 1)))
27248 : return NULL;
27249 : return gen_split_1887 (insn, operands);
27250 :
27251 : case 6:
27252 : if (!((
27253 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27254 : ((64 == 64 || TARGET_AVX512VL
27255 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27256 : && ix86_pre_reload_split ()
27257 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27258 : STRIP_UNARY (operands[4]))
27259 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27260 : STRIP_UNARY (operands[4]))
27261 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27262 : STRIP_UNARY (operands[3]))
27263 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27264 : STRIP_UNARY (operands[3])))) &&
27265 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27266 : (TARGET_AVX512F)) &&
27267 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27268 : ( 1)))
27269 : return NULL;
27270 : return gen_split_1914 (insn, operands);
27271 :
27272 : case 7:
27273 : if (!((
27274 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27275 : ((32 == 64 || TARGET_AVX512VL
27276 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27277 : && ix86_pre_reload_split ()
27278 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27279 : STRIP_UNARY (operands[4]))
27280 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27281 : STRIP_UNARY (operands[4]))
27282 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27283 : STRIP_UNARY (operands[3]))
27284 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27285 : STRIP_UNARY (operands[3])))) &&
27286 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27287 : (TARGET_AVX)) &&
27288 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27289 : ( 1)))
27290 : return NULL;
27291 : return gen_split_1941 (insn, operands);
27292 :
27293 : case 8:
27294 : if (!(
27295 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27296 : ((16 == 64 || TARGET_AVX512VL
27297 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27298 : && ix86_pre_reload_split ()
27299 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27300 : STRIP_UNARY (operands[4]))
27301 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27302 : STRIP_UNARY (operands[4]))
27303 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27304 : STRIP_UNARY (operands[3]))
27305 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27306 : STRIP_UNARY (operands[3])))) &&
27307 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27308 : ( 1)))
27309 : return NULL;
27310 : return gen_split_1968 (insn, operands);
27311 :
27312 : case 9:
27313 : if (!((
27314 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27315 : ((64 == 64 || TARGET_AVX512VL
27316 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27317 : && ix86_pre_reload_split ()
27318 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27319 : STRIP_UNARY (operands[4]))
27320 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27321 : STRIP_UNARY (operands[4]))
27322 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27323 : STRIP_UNARY (operands[3]))
27324 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27325 : STRIP_UNARY (operands[3])))) &&
27326 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27327 : (TARGET_AVX512F)) &&
27328 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27329 : ( 1)))
27330 : return NULL;
27331 : return gen_split_1995 (insn, operands);
27332 :
27333 : case 10:
27334 : if (!((
27335 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27336 : ((32 == 64 || TARGET_AVX512VL
27337 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27338 : && ix86_pre_reload_split ()
27339 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27340 : STRIP_UNARY (operands[4]))
27341 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27342 : STRIP_UNARY (operands[4]))
27343 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27344 : STRIP_UNARY (operands[3]))
27345 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27346 : STRIP_UNARY (operands[3])))) &&
27347 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27348 : (TARGET_AVX)) &&
27349 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27350 : ( 1)))
27351 : return NULL;
27352 : return gen_split_2022 (insn, operands);
27353 :
27354 : case 11:
27355 : if (!(
27356 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27357 : ((16 == 64 || TARGET_AVX512VL
27358 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27359 : && ix86_pre_reload_split ()
27360 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27361 : STRIP_UNARY (operands[4]))
27362 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27363 : STRIP_UNARY (operands[4]))
27364 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27365 : STRIP_UNARY (operands[3]))
27366 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27367 : STRIP_UNARY (operands[3])))) &&
27368 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27369 : ( 1)))
27370 : return NULL;
27371 : return gen_split_2049 (insn, operands);
27372 :
27373 : case 12:
27374 : if (!((
27375 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27376 : ((64 == 64 || TARGET_AVX512VL
27377 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27378 : && ix86_pre_reload_split ()
27379 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27380 : STRIP_UNARY (operands[4]))
27381 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27382 : STRIP_UNARY (operands[4]))
27383 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27384 : STRIP_UNARY (operands[3]))
27385 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27386 : STRIP_UNARY (operands[3])))) &&
27387 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27388 : (TARGET_AVX512F)) &&
27389 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27390 : ( 1)))
27391 : return NULL;
27392 : return gen_split_1755 (insn, operands);
27393 :
27394 : case 13:
27395 : if (!((
27396 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27397 : ((32 == 64 || TARGET_AVX512VL
27398 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27399 : && ix86_pre_reload_split ()
27400 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27401 : STRIP_UNARY (operands[4]))
27402 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27403 : STRIP_UNARY (operands[4]))
27404 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27405 : STRIP_UNARY (operands[3]))
27406 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27407 : STRIP_UNARY (operands[3])))) &&
27408 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27409 : (TARGET_AVX)) &&
27410 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27411 : ( 1)))
27412 : return NULL;
27413 : return gen_split_1782 (insn, operands);
27414 :
27415 : case 14:
27416 : if (!(
27417 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27418 : ((16 == 64 || TARGET_AVX512VL
27419 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27420 : && ix86_pre_reload_split ()
27421 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27422 : STRIP_UNARY (operands[4]))
27423 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27424 : STRIP_UNARY (operands[4]))
27425 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27426 : STRIP_UNARY (operands[3]))
27427 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27428 : STRIP_UNARY (operands[3])))) &&
27429 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27430 : ( 1)))
27431 : return NULL;
27432 : return gen_split_1809 (insn, operands);
27433 :
27434 : case 15:
27435 : if (!((
27436 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27437 : ((64 == 64 || TARGET_AVX512VL
27438 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27439 : && ix86_pre_reload_split ()
27440 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27441 : STRIP_UNARY (operands[4]))
27442 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27443 : STRIP_UNARY (operands[4]))
27444 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27445 : STRIP_UNARY (operands[3]))
27446 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27447 : STRIP_UNARY (operands[3])))) &&
27448 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27449 : (TARGET_AVX512F)) &&
27450 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27451 : ( 1)))
27452 : return NULL;
27453 : return gen_split_1836 (insn, operands);
27454 :
27455 : case 16:
27456 : if (!((
27457 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27458 : ((32 == 64 || TARGET_AVX512VL
27459 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27460 : && ix86_pre_reload_split ()
27461 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27462 : STRIP_UNARY (operands[4]))
27463 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27464 : STRIP_UNARY (operands[4]))
27465 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27466 : STRIP_UNARY (operands[3]))
27467 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27468 : STRIP_UNARY (operands[3])))) &&
27469 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27470 : (TARGET_AVX)) &&
27471 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27472 : ( 1)))
27473 : return NULL;
27474 : return gen_split_1863 (insn, operands);
27475 :
27476 : case 17:
27477 : if (!(
27478 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27479 : ((16 == 64 || TARGET_AVX512VL
27480 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27481 : && ix86_pre_reload_split ()
27482 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27483 : STRIP_UNARY (operands[4]))
27484 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27485 : STRIP_UNARY (operands[4]))
27486 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27487 : STRIP_UNARY (operands[3]))
27488 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27489 : STRIP_UNARY (operands[3])))) &&
27490 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27491 : ( 1)))
27492 : return NULL;
27493 : return gen_split_1890 (insn, operands);
27494 :
27495 : case 18:
27496 : if (!((
27497 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27498 : ((64 == 64 || TARGET_AVX512VL
27499 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27500 : && ix86_pre_reload_split ()
27501 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27502 : STRIP_UNARY (operands[4]))
27503 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27504 : STRIP_UNARY (operands[4]))
27505 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27506 : STRIP_UNARY (operands[3]))
27507 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27508 : STRIP_UNARY (operands[3])))) &&
27509 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27510 : (TARGET_AVX512F)) &&
27511 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27512 : ( 1)))
27513 : return NULL;
27514 : return gen_split_1917 (insn, operands);
27515 :
27516 : case 19:
27517 : if (!((
27518 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27519 : ((32 == 64 || TARGET_AVX512VL
27520 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27521 : && ix86_pre_reload_split ()
27522 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27523 : STRIP_UNARY (operands[4]))
27524 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27525 : STRIP_UNARY (operands[4]))
27526 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27527 : STRIP_UNARY (operands[3]))
27528 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27529 : STRIP_UNARY (operands[3])))) &&
27530 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27531 : (TARGET_AVX)) &&
27532 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27533 : ( 1)))
27534 : return NULL;
27535 : return gen_split_1944 (insn, operands);
27536 :
27537 : case 20:
27538 : if (!(
27539 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27540 : ((16 == 64 || TARGET_AVX512VL
27541 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27542 : && ix86_pre_reload_split ()
27543 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27544 : STRIP_UNARY (operands[4]))
27545 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27546 : STRIP_UNARY (operands[4]))
27547 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27548 : STRIP_UNARY (operands[3]))
27549 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27550 : STRIP_UNARY (operands[3])))) &&
27551 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27552 : ( 1)))
27553 : return NULL;
27554 : return gen_split_1971 (insn, operands);
27555 :
27556 : case 21:
27557 : if (!((
27558 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27559 : ((64 == 64 || TARGET_AVX512VL
27560 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27561 : && ix86_pre_reload_split ()
27562 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27563 : STRIP_UNARY (operands[4]))
27564 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27565 : STRIP_UNARY (operands[4]))
27566 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27567 : STRIP_UNARY (operands[3]))
27568 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27569 : STRIP_UNARY (operands[3])))) &&
27570 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27571 : (TARGET_AVX512F)) &&
27572 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27573 : ( 1)))
27574 : return NULL;
27575 : return gen_split_1998 (insn, operands);
27576 :
27577 : case 22:
27578 : if (!((
27579 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27580 : ((32 == 64 || TARGET_AVX512VL
27581 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27582 : && ix86_pre_reload_split ()
27583 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27584 : STRIP_UNARY (operands[4]))
27585 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27586 : STRIP_UNARY (operands[4]))
27587 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27588 : STRIP_UNARY (operands[3]))
27589 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27590 : STRIP_UNARY (operands[3])))) &&
27591 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27592 : (TARGET_AVX)) &&
27593 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27594 : ( 1)))
27595 : return NULL;
27596 : return gen_split_2025 (insn, operands);
27597 :
27598 : case 23:
27599 : if (!(
27600 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27601 : ((16 == 64 || TARGET_AVX512VL
27602 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27603 : && ix86_pre_reload_split ()
27604 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27605 : STRIP_UNARY (operands[4]))
27606 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27607 : STRIP_UNARY (operands[4]))
27608 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27609 : STRIP_UNARY (operands[3]))
27610 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27611 : STRIP_UNARY (operands[3])))) &&
27612 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27613 : ( 1)))
27614 : return NULL;
27615 : return gen_split_2052 (insn, operands);
27616 :
27617 : case 24:
27618 : if (!((
27619 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27620 : ((64 == 64 || TARGET_AVX512VL
27621 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27622 : && ix86_pre_reload_split ()
27623 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27624 : STRIP_UNARY (operands[4]))
27625 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27626 : STRIP_UNARY (operands[4]))
27627 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27628 : STRIP_UNARY (operands[3]))
27629 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27630 : STRIP_UNARY (operands[3])))) &&
27631 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27632 : (TARGET_AVX512F)) &&
27633 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27634 : ( 1)))
27635 : return NULL;
27636 : return gen_split_1758 (insn, operands);
27637 :
27638 : case 25:
27639 : if (!((
27640 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27641 : ((32 == 64 || TARGET_AVX512VL
27642 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27643 : && ix86_pre_reload_split ()
27644 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27645 : STRIP_UNARY (operands[4]))
27646 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27647 : STRIP_UNARY (operands[4]))
27648 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27649 : STRIP_UNARY (operands[3]))
27650 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27651 : STRIP_UNARY (operands[3])))) &&
27652 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27653 : (TARGET_AVX)) &&
27654 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27655 : ( 1)))
27656 : return NULL;
27657 : return gen_split_1785 (insn, operands);
27658 :
27659 : case 26:
27660 : if (!(
27661 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27662 : ((16 == 64 || TARGET_AVX512VL
27663 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27664 : && ix86_pre_reload_split ()
27665 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27666 : STRIP_UNARY (operands[4]))
27667 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27668 : STRIP_UNARY (operands[4]))
27669 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27670 : STRIP_UNARY (operands[3]))
27671 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27672 : STRIP_UNARY (operands[3])))) &&
27673 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27674 : ( 1)))
27675 : return NULL;
27676 : return gen_split_1812 (insn, operands);
27677 :
27678 : case 27:
27679 : if (!((
27680 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27681 : ((64 == 64 || TARGET_AVX512VL
27682 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27683 : && ix86_pre_reload_split ()
27684 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27685 : STRIP_UNARY (operands[4]))
27686 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27687 : STRIP_UNARY (operands[4]))
27688 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27689 : STRIP_UNARY (operands[3]))
27690 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27691 : STRIP_UNARY (operands[3])))) &&
27692 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27693 : (TARGET_AVX512F)) &&
27694 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27695 : ( 1)))
27696 : return NULL;
27697 : return gen_split_1839 (insn, operands);
27698 :
27699 : case 28:
27700 : if (!((
27701 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27702 : ((32 == 64 || TARGET_AVX512VL
27703 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27704 : && ix86_pre_reload_split ()
27705 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27706 : STRIP_UNARY (operands[4]))
27707 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27708 : STRIP_UNARY (operands[4]))
27709 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27710 : STRIP_UNARY (operands[3]))
27711 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27712 : STRIP_UNARY (operands[3])))) &&
27713 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27714 : (TARGET_AVX)) &&
27715 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27716 : ( 1)))
27717 : return NULL;
27718 : return gen_split_1866 (insn, operands);
27719 :
27720 : case 29:
27721 : if (!(
27722 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27723 : ((16 == 64 || TARGET_AVX512VL
27724 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27725 : && ix86_pre_reload_split ()
27726 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27727 : STRIP_UNARY (operands[4]))
27728 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27729 : STRIP_UNARY (operands[4]))
27730 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27731 : STRIP_UNARY (operands[3]))
27732 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27733 : STRIP_UNARY (operands[3])))) &&
27734 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27735 : ( 1)))
27736 : return NULL;
27737 : return gen_split_1893 (insn, operands);
27738 :
27739 : case 30:
27740 : if (!((
27741 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27742 : ((64 == 64 || TARGET_AVX512VL
27743 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27744 : && ix86_pre_reload_split ()
27745 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27746 : STRIP_UNARY (operands[4]))
27747 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27748 : STRIP_UNARY (operands[4]))
27749 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27750 : STRIP_UNARY (operands[3]))
27751 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27752 : STRIP_UNARY (operands[3])))) &&
27753 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27754 : (TARGET_AVX512F)) &&
27755 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27756 : ( 1)))
27757 : return NULL;
27758 : return gen_split_1920 (insn, operands);
27759 :
27760 : case 31:
27761 : if (!((
27762 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27763 : ((32 == 64 || TARGET_AVX512VL
27764 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27765 : && ix86_pre_reload_split ()
27766 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27767 : STRIP_UNARY (operands[4]))
27768 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27769 : STRIP_UNARY (operands[4]))
27770 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27771 : STRIP_UNARY (operands[3]))
27772 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27773 : STRIP_UNARY (operands[3])))) &&
27774 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27775 : (TARGET_AVX)) &&
27776 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27777 : ( 1)))
27778 : return NULL;
27779 : return gen_split_1947 (insn, operands);
27780 :
27781 : case 32:
27782 : if (!(
27783 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27784 : ((16 == 64 || TARGET_AVX512VL
27785 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27786 : && ix86_pre_reload_split ()
27787 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27788 : STRIP_UNARY (operands[4]))
27789 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27790 : STRIP_UNARY (operands[4]))
27791 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27792 : STRIP_UNARY (operands[3]))
27793 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27794 : STRIP_UNARY (operands[3])))) &&
27795 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27796 : ( 1)))
27797 : return NULL;
27798 : return gen_split_1974 (insn, operands);
27799 :
27800 : case 33:
27801 : if (!((
27802 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27803 : ((64 == 64 || TARGET_AVX512VL
27804 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27805 : && ix86_pre_reload_split ()
27806 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27807 : STRIP_UNARY (operands[4]))
27808 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27809 : STRIP_UNARY (operands[4]))
27810 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27811 : STRIP_UNARY (operands[3]))
27812 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27813 : STRIP_UNARY (operands[3])))) &&
27814 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27815 : (TARGET_AVX512F)) &&
27816 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27817 : ( 1)))
27818 : return NULL;
27819 : return gen_split_2001 (insn, operands);
27820 :
27821 : case 34:
27822 : if (!((
27823 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27824 : ((32 == 64 || TARGET_AVX512VL
27825 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27826 : && ix86_pre_reload_split ()
27827 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27828 : STRIP_UNARY (operands[4]))
27829 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27830 : STRIP_UNARY (operands[4]))
27831 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27832 : STRIP_UNARY (operands[3]))
27833 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27834 : STRIP_UNARY (operands[3])))) &&
27835 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27836 : (TARGET_AVX)) &&
27837 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27838 : ( 1)))
27839 : return NULL;
27840 : return gen_split_2028 (insn, operands);
27841 :
27842 : case 35:
27843 : if (!(
27844 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27845 : ((16 == 64 || TARGET_AVX512VL
27846 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27847 : && ix86_pre_reload_split ()
27848 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27849 : STRIP_UNARY (operands[4]))
27850 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27851 : STRIP_UNARY (operands[4]))
27852 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27853 : STRIP_UNARY (operands[3]))
27854 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27855 : STRIP_UNARY (operands[3])))) &&
27856 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27857 : ( 1)))
27858 : return NULL;
27859 : return gen_split_2055 (insn, operands);
27860 :
27861 : case 36:
27862 : if (!((
27863 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27864 : ((64 == 64 || TARGET_AVX512VL
27865 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27866 : && ix86_pre_reload_split ()) &&
27867 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27868 : (TARGET_AVX512F)) &&
27869 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27870 : ( 1)))
27871 : return NULL;
27872 : return gen_split_3042 (insn, operands);
27873 :
27874 : case 37:
27875 : if (!((
27876 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27877 : ((32 == 64 || TARGET_AVX512VL
27878 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27879 : && ix86_pre_reload_split ()) &&
27880 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27881 : (TARGET_AVX)) &&
27882 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27883 : ( 1)))
27884 : return NULL;
27885 : return gen_split_3051 (insn, operands);
27886 :
27887 : case 38:
27888 : if (!(
27889 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27890 : ((16 == 64 || TARGET_AVX512VL
27891 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27892 : && ix86_pre_reload_split ()) &&
27893 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27894 : ( 1)))
27895 : return NULL;
27896 : return gen_split_3060 (insn, operands);
27897 :
27898 : case 39:
27899 : if (!((
27900 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27901 : ((64 == 64 || TARGET_AVX512VL
27902 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27903 : && ix86_pre_reload_split ()) &&
27904 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27905 : (TARGET_AVX512F)) &&
27906 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27907 : ( 1)))
27908 : return NULL;
27909 : return gen_split_3069 (insn, operands);
27910 :
27911 : case 40:
27912 : if (!((
27913 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27914 : ((32 == 64 || TARGET_AVX512VL
27915 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27916 : && ix86_pre_reload_split ()) &&
27917 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27918 : (TARGET_AVX)) &&
27919 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27920 : ( 1)))
27921 : return NULL;
27922 : return gen_split_3078 (insn, operands);
27923 :
27924 : case 41:
27925 : if (!(
27926 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27927 : ((16 == 64 || TARGET_AVX512VL
27928 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27929 : && ix86_pre_reload_split ()) &&
27930 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27931 : ( 1)))
27932 : return NULL;
27933 : return gen_split_3087 (insn, operands);
27934 :
27935 : case 42:
27936 : if (!((
27937 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27938 : ((64 == 64 || TARGET_AVX512VL
27939 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27940 : && ix86_pre_reload_split ()) &&
27941 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27942 : (TARGET_AVX512F)) &&
27943 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27944 : ( 1)))
27945 : return NULL;
27946 : return gen_split_3096 (insn, operands);
27947 :
27948 : case 43:
27949 : if (!((
27950 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27951 : ((32 == 64 || TARGET_AVX512VL
27952 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27953 : && ix86_pre_reload_split ()) &&
27954 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27955 : (TARGET_AVX)) &&
27956 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27957 : ( 1)))
27958 : return NULL;
27959 : return gen_split_3105 (insn, operands);
27960 :
27961 : case 44:
27962 : if (!(
27963 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27964 : ((16 == 64 || TARGET_AVX512VL
27965 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27966 : && ix86_pre_reload_split ()) &&
27967 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27968 : ( 1)))
27969 : return NULL;
27970 : return gen_split_3114 (insn, operands);
27971 :
27972 : case 45:
27973 : if (!((
27974 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27975 : ((64 == 64 || TARGET_AVX512VL
27976 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27977 : && ix86_pre_reload_split ()) &&
27978 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27979 : (TARGET_AVX512F)) &&
27980 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27981 : ( 1)))
27982 : return NULL;
27983 : return gen_split_3123 (insn, operands);
27984 :
27985 : case 46:
27986 : if (!((
27987 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27988 : ((32 == 64 || TARGET_AVX512VL
27989 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27990 : && ix86_pre_reload_split ()) &&
27991 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27992 : (TARGET_AVX)) &&
27993 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27994 : ( 1)))
27995 : return NULL;
27996 : return gen_split_3132 (insn, operands);
27997 :
27998 : case 47:
27999 : if (!(
28000 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28001 : ((16 == 64 || TARGET_AVX512VL
28002 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28003 : && ix86_pre_reload_split ()) &&
28004 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28005 : ( 1)))
28006 : return NULL;
28007 : return gen_split_3141 (insn, operands);
28008 :
28009 : default:
28010 : return NULL;
28011 : }
28012 :
28013 : case AND:
28014 : switch (pattern537 (x2))
28015 : {
28016 : case 0:
28017 : if (!((
28018 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28019 : ((64 == 64 || TARGET_AVX512VL
28020 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28021 : && ix86_pre_reload_split ()
28022 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28023 : STRIP_UNARY (operands[4]))
28024 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28025 : STRIP_UNARY (operands[4]))
28026 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28027 : STRIP_UNARY (operands[3]))
28028 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28029 : STRIP_UNARY (operands[3])))) &&
28030 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28031 : (TARGET_AVX512F)) &&
28032 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28033 : ( 1)))
28034 : return NULL;
28035 : return gen_split_2400 (insn, operands);
28036 :
28037 : case 1:
28038 : if (!((
28039 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28040 : ((32 == 64 || TARGET_AVX512VL
28041 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28042 : && ix86_pre_reload_split ()
28043 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28044 : STRIP_UNARY (operands[4]))
28045 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28046 : STRIP_UNARY (operands[4]))
28047 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28048 : STRIP_UNARY (operands[3]))
28049 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28050 : STRIP_UNARY (operands[3])))) &&
28051 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28052 : (TARGET_AVX)) &&
28053 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28054 : ( 1)))
28055 : return NULL;
28056 : return gen_split_2427 (insn, operands);
28057 :
28058 : case 2:
28059 : if (!(
28060 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28061 : ((16 == 64 || TARGET_AVX512VL
28062 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28063 : && ix86_pre_reload_split ()
28064 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28065 : STRIP_UNARY (operands[4]))
28066 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28067 : STRIP_UNARY (operands[4]))
28068 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28069 : STRIP_UNARY (operands[3]))
28070 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28071 : STRIP_UNARY (operands[3])))) &&
28072 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28073 : ( 1)))
28074 : return NULL;
28075 : return gen_split_2454 (insn, operands);
28076 :
28077 : case 3:
28078 : if (!((
28079 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28080 : ((64 == 64 || TARGET_AVX512VL
28081 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28082 : && ix86_pre_reload_split ()
28083 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28084 : STRIP_UNARY (operands[4]))
28085 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28086 : STRIP_UNARY (operands[4]))
28087 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28088 : STRIP_UNARY (operands[3]))
28089 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28090 : STRIP_UNARY (operands[3])))) &&
28091 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28092 : (TARGET_AVX512F)) &&
28093 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28094 : ( 1)))
28095 : return NULL;
28096 : return gen_split_2481 (insn, operands);
28097 :
28098 : case 4:
28099 : if (!((
28100 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28101 : ((32 == 64 || TARGET_AVX512VL
28102 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28103 : && ix86_pre_reload_split ()
28104 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28105 : STRIP_UNARY (operands[4]))
28106 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28107 : STRIP_UNARY (operands[4]))
28108 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28109 : STRIP_UNARY (operands[3]))
28110 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28111 : STRIP_UNARY (operands[3])))) &&
28112 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28113 : (TARGET_AVX)) &&
28114 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28115 : ( 1)))
28116 : return NULL;
28117 : return gen_split_2508 (insn, operands);
28118 :
28119 : case 5:
28120 : if (!(
28121 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28122 : ((16 == 64 || TARGET_AVX512VL
28123 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28124 : && ix86_pre_reload_split ()
28125 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28126 : STRIP_UNARY (operands[4]))
28127 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28128 : STRIP_UNARY (operands[4]))
28129 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28130 : STRIP_UNARY (operands[3]))
28131 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28132 : STRIP_UNARY (operands[3])))) &&
28133 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28134 : ( 1)))
28135 : return NULL;
28136 : return gen_split_2535 (insn, operands);
28137 :
28138 : case 6:
28139 : if (!((
28140 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28141 : ((64 == 64 || TARGET_AVX512VL
28142 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28143 : && ix86_pre_reload_split ()
28144 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28145 : STRIP_UNARY (operands[4]))
28146 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28147 : STRIP_UNARY (operands[4]))
28148 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28149 : STRIP_UNARY (operands[3]))
28150 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28151 : STRIP_UNARY (operands[3])))) &&
28152 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28153 : (TARGET_AVX512F)) &&
28154 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28155 : ( 1)))
28156 : return NULL;
28157 : return gen_split_2562 (insn, operands);
28158 :
28159 : case 7:
28160 : if (!((
28161 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28162 : ((32 == 64 || TARGET_AVX512VL
28163 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28164 : && ix86_pre_reload_split ()
28165 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28166 : STRIP_UNARY (operands[4]))
28167 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28168 : STRIP_UNARY (operands[4]))
28169 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28170 : STRIP_UNARY (operands[3]))
28171 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28172 : STRIP_UNARY (operands[3])))) &&
28173 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28174 : (TARGET_AVX)) &&
28175 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28176 : ( 1)))
28177 : return NULL;
28178 : return gen_split_2589 (insn, operands);
28179 :
28180 : case 8:
28181 : if (!(
28182 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28183 : ((16 == 64 || TARGET_AVX512VL
28184 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28185 : && ix86_pre_reload_split ()
28186 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28187 : STRIP_UNARY (operands[4]))
28188 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28189 : STRIP_UNARY (operands[4]))
28190 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28191 : STRIP_UNARY (operands[3]))
28192 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28193 : STRIP_UNARY (operands[3])))) &&
28194 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28195 : ( 1)))
28196 : return NULL;
28197 : return gen_split_2616 (insn, operands);
28198 :
28199 : case 9:
28200 : if (!((
28201 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28202 : ((64 == 64 || TARGET_AVX512VL
28203 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28204 : && ix86_pre_reload_split ()
28205 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28206 : STRIP_UNARY (operands[4]))
28207 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28208 : STRIP_UNARY (operands[4]))
28209 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28210 : STRIP_UNARY (operands[3]))
28211 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28212 : STRIP_UNARY (operands[3])))) &&
28213 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28214 : (TARGET_AVX512F)) &&
28215 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28216 : ( 1)))
28217 : return NULL;
28218 : return gen_split_2643 (insn, operands);
28219 :
28220 : case 10:
28221 : if (!((
28222 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28223 : ((32 == 64 || TARGET_AVX512VL
28224 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28225 : && ix86_pre_reload_split ()
28226 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28227 : STRIP_UNARY (operands[4]))
28228 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28229 : STRIP_UNARY (operands[4]))
28230 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28231 : STRIP_UNARY (operands[3]))
28232 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28233 : STRIP_UNARY (operands[3])))) &&
28234 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28235 : (TARGET_AVX)) &&
28236 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28237 : ( 1)))
28238 : return NULL;
28239 : return gen_split_2670 (insn, operands);
28240 :
28241 : case 11:
28242 : if (!(
28243 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28244 : ((16 == 64 || TARGET_AVX512VL
28245 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28246 : && ix86_pre_reload_split ()
28247 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28248 : STRIP_UNARY (operands[4]))
28249 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28250 : STRIP_UNARY (operands[4]))
28251 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28252 : STRIP_UNARY (operands[3]))
28253 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28254 : STRIP_UNARY (operands[3])))) &&
28255 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28256 : ( 1)))
28257 : return NULL;
28258 : return gen_split_2697 (insn, operands);
28259 :
28260 : default:
28261 : return NULL;
28262 : }
28263 :
28264 : case IOR:
28265 : switch (pattern537 (x2))
28266 : {
28267 : case 0:
28268 : if (!((
28269 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28270 : ((64 == 64 || TARGET_AVX512VL
28271 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28272 : && ix86_pre_reload_split ()
28273 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28274 : STRIP_UNARY (operands[4]))
28275 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28276 : STRIP_UNARY (operands[4]))
28277 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28278 : STRIP_UNARY (operands[3]))
28279 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28280 : STRIP_UNARY (operands[3])))) &&
28281 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28282 : (TARGET_AVX512F)) &&
28283 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28284 : ( 1)))
28285 : return NULL;
28286 : return gen_split_2403 (insn, operands);
28287 :
28288 : case 1:
28289 : if (!((
28290 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28291 : ((32 == 64 || TARGET_AVX512VL
28292 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28293 : && ix86_pre_reload_split ()
28294 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28295 : STRIP_UNARY (operands[4]))
28296 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28297 : STRIP_UNARY (operands[4]))
28298 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28299 : STRIP_UNARY (operands[3]))
28300 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28301 : STRIP_UNARY (operands[3])))) &&
28302 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28303 : (TARGET_AVX)) &&
28304 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28305 : ( 1)))
28306 : return NULL;
28307 : return gen_split_2430 (insn, operands);
28308 :
28309 : case 2:
28310 : if (!(
28311 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28312 : ((16 == 64 || TARGET_AVX512VL
28313 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28314 : && ix86_pre_reload_split ()
28315 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28316 : STRIP_UNARY (operands[4]))
28317 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28318 : STRIP_UNARY (operands[4]))
28319 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28320 : STRIP_UNARY (operands[3]))
28321 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28322 : STRIP_UNARY (operands[3])))) &&
28323 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28324 : ( 1)))
28325 : return NULL;
28326 : return gen_split_2457 (insn, operands);
28327 :
28328 : case 3:
28329 : if (!((
28330 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28331 : ((64 == 64 || TARGET_AVX512VL
28332 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28333 : && ix86_pre_reload_split ()
28334 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28335 : STRIP_UNARY (operands[4]))
28336 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28337 : STRIP_UNARY (operands[4]))
28338 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28339 : STRIP_UNARY (operands[3]))
28340 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28341 : STRIP_UNARY (operands[3])))) &&
28342 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28343 : (TARGET_AVX512F)) &&
28344 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28345 : ( 1)))
28346 : return NULL;
28347 : return gen_split_2484 (insn, operands);
28348 :
28349 : case 4:
28350 : if (!((
28351 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28352 : ((32 == 64 || TARGET_AVX512VL
28353 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28354 : && ix86_pre_reload_split ()
28355 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28356 : STRIP_UNARY (operands[4]))
28357 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28358 : STRIP_UNARY (operands[4]))
28359 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28360 : STRIP_UNARY (operands[3]))
28361 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28362 : STRIP_UNARY (operands[3])))) &&
28363 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28364 : (TARGET_AVX)) &&
28365 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28366 : ( 1)))
28367 : return NULL;
28368 : return gen_split_2511 (insn, operands);
28369 :
28370 : case 5:
28371 : if (!(
28372 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28373 : ((16 == 64 || TARGET_AVX512VL
28374 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28375 : && ix86_pre_reload_split ()
28376 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28377 : STRIP_UNARY (operands[4]))
28378 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28379 : STRIP_UNARY (operands[4]))
28380 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28381 : STRIP_UNARY (operands[3]))
28382 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28383 : STRIP_UNARY (operands[3])))) &&
28384 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28385 : ( 1)))
28386 : return NULL;
28387 : return gen_split_2538 (insn, operands);
28388 :
28389 : case 6:
28390 : if (!((
28391 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28392 : ((64 == 64 || TARGET_AVX512VL
28393 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28394 : && ix86_pre_reload_split ()
28395 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28396 : STRIP_UNARY (operands[4]))
28397 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28398 : STRIP_UNARY (operands[4]))
28399 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28400 : STRIP_UNARY (operands[3]))
28401 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28402 : STRIP_UNARY (operands[3])))) &&
28403 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28404 : (TARGET_AVX512F)) &&
28405 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28406 : ( 1)))
28407 : return NULL;
28408 : return gen_split_2565 (insn, operands);
28409 :
28410 : case 7:
28411 : if (!((
28412 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28413 : ((32 == 64 || TARGET_AVX512VL
28414 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28415 : && ix86_pre_reload_split ()
28416 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28417 : STRIP_UNARY (operands[4]))
28418 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28419 : STRIP_UNARY (operands[4]))
28420 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28421 : STRIP_UNARY (operands[3]))
28422 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28423 : STRIP_UNARY (operands[3])))) &&
28424 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28425 : (TARGET_AVX)) &&
28426 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28427 : ( 1)))
28428 : return NULL;
28429 : return gen_split_2592 (insn, operands);
28430 :
28431 : case 8:
28432 : if (!(
28433 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28434 : ((16 == 64 || TARGET_AVX512VL
28435 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28436 : && ix86_pre_reload_split ()
28437 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28438 : STRIP_UNARY (operands[4]))
28439 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28440 : STRIP_UNARY (operands[4]))
28441 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28442 : STRIP_UNARY (operands[3]))
28443 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28444 : STRIP_UNARY (operands[3])))) &&
28445 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28446 : ( 1)))
28447 : return NULL;
28448 : return gen_split_2619 (insn, operands);
28449 :
28450 : case 9:
28451 : if (!((
28452 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28453 : ((64 == 64 || TARGET_AVX512VL
28454 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28455 : && ix86_pre_reload_split ()
28456 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28457 : STRIP_UNARY (operands[4]))
28458 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28459 : STRIP_UNARY (operands[4]))
28460 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28461 : STRIP_UNARY (operands[3]))
28462 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28463 : STRIP_UNARY (operands[3])))) &&
28464 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28465 : (TARGET_AVX512F)) &&
28466 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28467 : ( 1)))
28468 : return NULL;
28469 : return gen_split_2646 (insn, operands);
28470 :
28471 : case 10:
28472 : if (!((
28473 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28474 : ((32 == 64 || TARGET_AVX512VL
28475 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28476 : && ix86_pre_reload_split ()
28477 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28478 : STRIP_UNARY (operands[4]))
28479 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28480 : STRIP_UNARY (operands[4]))
28481 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28482 : STRIP_UNARY (operands[3]))
28483 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28484 : STRIP_UNARY (operands[3])))) &&
28485 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28486 : (TARGET_AVX)) &&
28487 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28488 : ( 1)))
28489 : return NULL;
28490 : return gen_split_2673 (insn, operands);
28491 :
28492 : case 11:
28493 : if (!(
28494 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28495 : ((16 == 64 || TARGET_AVX512VL
28496 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28497 : && ix86_pre_reload_split ()
28498 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28499 : STRIP_UNARY (operands[4]))
28500 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28501 : STRIP_UNARY (operands[4]))
28502 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28503 : STRIP_UNARY (operands[3]))
28504 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28505 : STRIP_UNARY (operands[3])))) &&
28506 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28507 : ( 1)))
28508 : return NULL;
28509 : return gen_split_2700 (insn, operands);
28510 :
28511 : default:
28512 : return NULL;
28513 : }
28514 :
28515 : case XOR:
28516 : switch (pattern537 (x2))
28517 : {
28518 : case 0:
28519 : if (!((
28520 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28521 : ((64 == 64 || TARGET_AVX512VL
28522 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28523 : && ix86_pre_reload_split ()
28524 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28525 : STRIP_UNARY (operands[4]))
28526 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28527 : STRIP_UNARY (operands[4]))
28528 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28529 : STRIP_UNARY (operands[3]))
28530 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28531 : STRIP_UNARY (operands[3])))) &&
28532 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28533 : (TARGET_AVX512F)) &&
28534 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28535 : ( 1)))
28536 : return NULL;
28537 : return gen_split_2406 (insn, operands);
28538 :
28539 : case 1:
28540 : if (!((
28541 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28542 : ((32 == 64 || TARGET_AVX512VL
28543 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28544 : && ix86_pre_reload_split ()
28545 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28546 : STRIP_UNARY (operands[4]))
28547 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28548 : STRIP_UNARY (operands[4]))
28549 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28550 : STRIP_UNARY (operands[3]))
28551 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28552 : STRIP_UNARY (operands[3])))) &&
28553 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28554 : (TARGET_AVX)) &&
28555 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28556 : ( 1)))
28557 : return NULL;
28558 : return gen_split_2433 (insn, operands);
28559 :
28560 : case 2:
28561 : if (!(
28562 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28563 : ((16 == 64 || TARGET_AVX512VL
28564 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28565 : && ix86_pre_reload_split ()
28566 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28567 : STRIP_UNARY (operands[4]))
28568 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28569 : STRIP_UNARY (operands[4]))
28570 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28571 : STRIP_UNARY (operands[3]))
28572 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28573 : STRIP_UNARY (operands[3])))) &&
28574 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28575 : ( 1)))
28576 : return NULL;
28577 : return gen_split_2460 (insn, operands);
28578 :
28579 : case 3:
28580 : if (!((
28581 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28582 : ((64 == 64 || TARGET_AVX512VL
28583 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28584 : && ix86_pre_reload_split ()
28585 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28586 : STRIP_UNARY (operands[4]))
28587 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28588 : STRIP_UNARY (operands[4]))
28589 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28590 : STRIP_UNARY (operands[3]))
28591 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28592 : STRIP_UNARY (operands[3])))) &&
28593 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28594 : (TARGET_AVX512F)) &&
28595 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28596 : ( 1)))
28597 : return NULL;
28598 : return gen_split_2487 (insn, operands);
28599 :
28600 : case 4:
28601 : if (!((
28602 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28603 : ((32 == 64 || TARGET_AVX512VL
28604 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28605 : && ix86_pre_reload_split ()
28606 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28607 : STRIP_UNARY (operands[4]))
28608 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28609 : STRIP_UNARY (operands[4]))
28610 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28611 : STRIP_UNARY (operands[3]))
28612 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28613 : STRIP_UNARY (operands[3])))) &&
28614 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28615 : (TARGET_AVX)) &&
28616 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28617 : ( 1)))
28618 : return NULL;
28619 : return gen_split_2514 (insn, operands);
28620 :
28621 : case 5:
28622 : if (!(
28623 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28624 : ((16 == 64 || TARGET_AVX512VL
28625 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28626 : && ix86_pre_reload_split ()
28627 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28628 : STRIP_UNARY (operands[4]))
28629 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28630 : STRIP_UNARY (operands[4]))
28631 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28632 : STRIP_UNARY (operands[3]))
28633 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28634 : STRIP_UNARY (operands[3])))) &&
28635 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28636 : ( 1)))
28637 : return NULL;
28638 : return gen_split_2541 (insn, operands);
28639 :
28640 : case 6:
28641 : if (!((
28642 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28643 : ((64 == 64 || TARGET_AVX512VL
28644 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28645 : && ix86_pre_reload_split ()
28646 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28647 : STRIP_UNARY (operands[4]))
28648 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28649 : STRIP_UNARY (operands[4]))
28650 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28651 : STRIP_UNARY (operands[3]))
28652 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28653 : STRIP_UNARY (operands[3])))) &&
28654 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28655 : (TARGET_AVX512F)) &&
28656 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28657 : ( 1)))
28658 : return NULL;
28659 : return gen_split_2568 (insn, operands);
28660 :
28661 : case 7:
28662 : if (!((
28663 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28664 : ((32 == 64 || TARGET_AVX512VL
28665 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28666 : && ix86_pre_reload_split ()
28667 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28668 : STRIP_UNARY (operands[4]))
28669 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28670 : STRIP_UNARY (operands[4]))
28671 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28672 : STRIP_UNARY (operands[3]))
28673 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28674 : STRIP_UNARY (operands[3])))) &&
28675 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28676 : (TARGET_AVX)) &&
28677 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28678 : ( 1)))
28679 : return NULL;
28680 : return gen_split_2595 (insn, operands);
28681 :
28682 : case 8:
28683 : if (!(
28684 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28685 : ((16 == 64 || TARGET_AVX512VL
28686 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28687 : && ix86_pre_reload_split ()
28688 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28689 : STRIP_UNARY (operands[4]))
28690 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28691 : STRIP_UNARY (operands[4]))
28692 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28693 : STRIP_UNARY (operands[3]))
28694 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28695 : STRIP_UNARY (operands[3])))) &&
28696 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28697 : ( 1)))
28698 : return NULL;
28699 : return gen_split_2622 (insn, operands);
28700 :
28701 : case 9:
28702 : if (!((
28703 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28704 : ((64 == 64 || TARGET_AVX512VL
28705 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28706 : && ix86_pre_reload_split ()
28707 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28708 : STRIP_UNARY (operands[4]))
28709 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28710 : STRIP_UNARY (operands[4]))
28711 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28712 : STRIP_UNARY (operands[3]))
28713 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28714 : STRIP_UNARY (operands[3])))) &&
28715 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28716 : (TARGET_AVX512F)) &&
28717 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28718 : ( 1)))
28719 : return NULL;
28720 : return gen_split_2649 (insn, operands);
28721 :
28722 : case 10:
28723 : if (!((
28724 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28725 : ((32 == 64 || TARGET_AVX512VL
28726 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28727 : && ix86_pre_reload_split ()
28728 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28729 : STRIP_UNARY (operands[4]))
28730 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28731 : STRIP_UNARY (operands[4]))
28732 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28733 : STRIP_UNARY (operands[3]))
28734 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28735 : STRIP_UNARY (operands[3])))) &&
28736 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28737 : (TARGET_AVX)) &&
28738 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28739 : ( 1)))
28740 : return NULL;
28741 : return gen_split_2676 (insn, operands);
28742 :
28743 : case 11:
28744 : if (!(
28745 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28746 : ((16 == 64 || TARGET_AVX512VL
28747 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28748 : && ix86_pre_reload_split ()
28749 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28750 : STRIP_UNARY (operands[4]))
28751 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28752 : STRIP_UNARY (operands[4]))
28753 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28754 : STRIP_UNARY (operands[3]))
28755 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28756 : STRIP_UNARY (operands[3])))) &&
28757 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28758 : ( 1)))
28759 : return NULL;
28760 : return gen_split_2703 (insn, operands);
28761 :
28762 : default:
28763 : return NULL;
28764 : }
28765 :
28766 : default:
28767 : return NULL;
28768 : }
28769 : }
28770 :
28771 : rtx_insn *
28772 : split_75 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
28773 : {
28774 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
28775 : rtx x2, x3, x4, x5, x6, x7;
28776 : rtx_insn *res ATTRIBUTE_UNUSED;
28777 : x2 = XEXP (x1, 1);
28778 : x3 = XEXP (x2, 0);
28779 : x4 = XEXP (x3, 1);
28780 : if (!rtx_equal_p (x4, operands[1]))
28781 : return NULL;
28782 : x5 = XEXP (x2, 1);
28783 : if (XVECLEN (x5, 0) != 2)
28784 : return NULL;
28785 : x6 = XVECEXP (x5, 0, 0);
28786 : if (GET_CODE (x6) != CONST_INT
28787 : || GET_MODE (x2) != E_V2DFmode
28788 : || GET_MODE (x3) != E_V4DFmode)
28789 : return NULL;
28790 : if (XWINT (x6, 0) == 0L)
28791 : {
28792 : x7 = XVECEXP (x5, 0, 1);
28793 : if (x7 == const_int_rtx[MAX_SAVED_CONST_INT + 2]
28794 : && memory_operand (operands[0], E_V2DFmode)
28795 : && register_operand (operands[1], E_V2DFmode)
28796 : &&
28797 : #line 13904 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28798 : (TARGET_SSE3 && reload_completed))
28799 : return gen_split_1667 (insn, operands);
28800 : }
28801 : if (!register_operand (operands[0], E_V2DFmode)
28802 : || !memory_operand (operands[1], E_V2DFmode))
28803 : return NULL;
28804 : operands[2] = x6;
28805 : if (!const_0_to_1_operand (operands[2], E_SImode))
28806 : return NULL;
28807 : x7 = XVECEXP (x5, 0, 1);
28808 : operands[3] = x7;
28809 : if (!const_int_operand (operands[3], E_SImode)
28810 : || !
28811 : #line 13922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28812 : (TARGET_SSE3 && INTVAL (operands[2]) + 2 == INTVAL (operands[3])))
28813 : return NULL;
28814 : return gen_split_1668 (insn, operands);
28815 : }
28816 :
28817 : rtx_insn *
28818 : split_77 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
28819 : {
28820 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
28821 : rtx x2, x3;
28822 : rtx_insn *res ATTRIBUTE_UNUSED;
28823 : x2 = XEXP (x1, 1);
28824 : x3 = XEXP (x2, 1);
28825 : if (pattern845 (x3) != 0)
28826 : return NULL;
28827 : switch (GET_MODE (operands[0]))
28828 : {
28829 : case E_V4SFmode:
28830 : if (!nonimmediate_operand (operands[0], E_V4SFmode)
28831 : || GET_MODE (x2) != E_V4SFmode)
28832 : return NULL;
28833 : switch (GET_MODE (operands[1]))
28834 : {
28835 : case E_V16SFmode:
28836 : if (!register_operand (operands[1], E_V16SFmode)
28837 : || !
28838 : #line 12868 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28839 : (TARGET_AVX512F
28840 : && reload_completed
28841 : && (TARGET_AVX512VL
28842 : || REG_P (operands[0])
28843 : || !EXT_REX_SSE_REG_P (operands[1]))))
28844 : return NULL;
28845 : return gen_split_1643 (insn, operands);
28846 :
28847 : case E_V8SFmode:
28848 : if (!nonimmediate_operand (operands[1], E_V8SFmode)
28849 : || !
28850 : #line 13267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28851 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))
28852 : && reload_completed))
28853 : return NULL;
28854 : return gen_split_1652 (insn, operands);
28855 :
28856 : default:
28857 : return NULL;
28858 : }
28859 :
28860 : case E_V4SImode:
28861 : if (!nonimmediate_operand (operands[0], E_V4SImode)
28862 : || GET_MODE (x2) != E_V4SImode)
28863 : return NULL;
28864 : switch (GET_MODE (operands[1]))
28865 : {
28866 : case E_V16SImode:
28867 : if (!register_operand (operands[1], E_V16SImode)
28868 : || !
28869 : #line 12868 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28870 : (TARGET_AVX512F
28871 : && reload_completed
28872 : && (TARGET_AVX512VL
28873 : || REG_P (operands[0])
28874 : || !EXT_REX_SSE_REG_P (operands[1]))))
28875 : return NULL;
28876 : return gen_split_1644 (insn, operands);
28877 :
28878 : case E_V8SImode:
28879 : if (!nonimmediate_operand (operands[1], E_V8SImode)
28880 : || !
28881 : #line 13267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28882 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))
28883 : && reload_completed))
28884 : return NULL;
28885 : return gen_split_1651 (insn, operands);
28886 :
28887 : default:
28888 : return NULL;
28889 : }
28890 :
28891 : case E_V4DFmode:
28892 : if (!nonimmediate_operand (operands[0], E_V4DFmode)
28893 : || GET_MODE (x2) != E_V4DFmode
28894 : || !nonimmediate_operand (operands[1], E_V8DFmode)
28895 : || !
28896 : #line 12931 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28897 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))
28898 : && reload_completed
28899 : && (TARGET_AVX512VL
28900 : || (REG_P (operands[0]) && !EXT_REX_SSE_REG_P (operands[1])))))
28901 : return NULL;
28902 : return gen_split_1645 (insn, operands);
28903 :
28904 : case E_V4DImode:
28905 : if (!nonimmediate_operand (operands[0], E_V4DImode)
28906 : || GET_MODE (x2) != E_V4DImode
28907 : || !nonimmediate_operand (operands[1], E_V8DImode)
28908 : || !
28909 : #line 12931 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28910 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))
28911 : && reload_completed
28912 : && (TARGET_AVX512VL
28913 : || (REG_P (operands[0]) && !EXT_REX_SSE_REG_P (operands[1])))))
28914 : return NULL;
28915 : return gen_split_1646 (insn, operands);
28916 :
28917 : default:
28918 : return NULL;
28919 : }
28920 : }
28921 :
28922 : rtx_insn *
28923 : split_79 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
28924 : {
28925 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
28926 : rtx x2, x3, x4, x5;
28927 : rtx_insn *res ATTRIBUTE_UNUSED;
28928 : x2 = XEXP (x1, 1);
28929 : x3 = XEXP (x2, 1);
28930 : switch (XVECLEN (x3, 0))
28931 : {
28932 : case 2:
28933 : res = split_76 (x1, insn);
28934 : if (res != NULL_RTX)
28935 : return res;
28936 : break;
28937 :
28938 : case 4:
28939 : res = split_77 (x1, insn);
28940 : if (res != NULL_RTX)
28941 : return res;
28942 : break;
28943 :
28944 : case 8:
28945 : res = split_78 (x1, insn);
28946 : if (res != NULL_RTX)
28947 : return res;
28948 : break;
28949 :
28950 : case 16:
28951 : if (pattern846 (x3,
28952 : 6,
28953 : 5,
28954 : 4) == 0
28955 : && pattern1514 (x3,
28956 : 11,
28957 : 10,
28958 : 9,
28959 : 8,
28960 : 7) == 0)
28961 : {
28962 : switch (pattern1804 (x2))
28963 : {
28964 : case 0:
28965 : if ((
28966 : #line 13350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28967 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
28968 : #line 13359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28969 : ( reload_completed
28970 : && (TARGET_AVX512VL
28971 : || REG_P (operands[0])
28972 : || !EXT_REX_SSE_REG_P (operands[1])))))
28973 : return gen_split_1653 (insn, operands);
28974 : break;
28975 :
28976 : case 1:
28977 : if ((
28978 : #line 13350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28979 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
28980 : #line 13359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28981 : ( reload_completed
28982 : && (TARGET_AVX512VL
28983 : || REG_P (operands[0])
28984 : || !EXT_REX_SSE_REG_P (operands[1])))))
28985 : return gen_split_1654 (insn, operands);
28986 : break;
28987 :
28988 : case 2:
28989 : if ((
28990 : #line 13350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28991 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
28992 : #line 13359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28993 : ( reload_completed
28994 : && (TARGET_AVX512VL
28995 : || REG_P (operands[0])
28996 : || !EXT_REX_SSE_REG_P (operands[1])))))
28997 : return gen_split_1655 (insn, operands);
28998 : break;
28999 :
29000 : case 3:
29001 : if ((
29002 : #line 13520 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29003 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
29004 : #line 13522 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29005 : ( reload_completed)))
29006 : return gen_split_1660 (insn, operands);
29007 : break;
29008 :
29009 : default:
29010 : break;
29011 : }
29012 : }
29013 : break;
29014 :
29015 : case 32:
29016 : if (pattern848 (x3,
29017 : 11,
29018 : 10,
29019 : 9,
29020 : 8) == 0
29021 : && pattern1711 (x3,
29022 : 15,
29023 : 14,
29024 : 13,
29025 : 12,
29026 : 16) == 0
29027 : && pattern1831 (x3,
29028 : 21,
29029 : 20,
29030 : 19,
29031 : 18,
29032 : 17) == 0
29033 : && pattern1873 (x3,
29034 : 26,
29035 : 25,
29036 : 24,
29037 : 23,
29038 : 22) == 0)
29039 : {
29040 : x4 = XVECEXP (x3, 0, 27);
29041 : if (x4 == const_int_rtx[MAX_SAVED_CONST_INT + 27]
29042 : && pattern1891 (x3,
29043 : 31,
29044 : 30,
29045 : 29,
29046 : 28) == 0
29047 : && nonimmediate_operand (operands[0], E_V32QImode)
29048 : && GET_MODE (x2) == E_V32QImode
29049 : && nonimmediate_operand (operands[1], E_V64QImode)
29050 : && (
29051 : #line 13452 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29052 : (TARGET_AVX512F
29053 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
29054 : #line 13462 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29055 : ( reload_completed
29056 : && (TARGET_AVX512VL
29057 : || REG_P (operands[0])
29058 : || !EXT_REX_SSE_REG_P (operands[1])))))
29059 : return gen_split_1659 (insn, operands);
29060 : }
29061 : break;
29062 :
29063 : default:
29064 : break;
29065 : }
29066 : if (XVECLEN (x3, 0) < 1)
29067 : return NULL;
29068 : operands[2] = x3;
29069 : if (!avx_vbroadcast_operand (operands[2], E_VOIDmode))
29070 : return NULL;
29071 : x5 = XVECEXP (x3, 0, 0);
29072 : operands[3] = x5;
29073 : if (!const_int_operand (operands[3], E_VOIDmode))
29074 : return NULL;
29075 : switch (GET_MODE (operands[0]))
29076 : {
29077 : case E_V8SFmode:
29078 : if (!register_operand (operands[0], E_V8SFmode)
29079 : || GET_MODE (x2) != E_V8SFmode
29080 : || !nonimmediate_operand (operands[1], E_V8SFmode)
29081 : || !(
29082 : #line 28078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29083 : (TARGET_AVX
29084 : && (V8SFmode != V4DFmode || !TARGET_AVX2 || operands[3] == const0_rtx)) &&
29085 : #line 28081 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29086 : ( reload_completed)))
29087 : return NULL;
29088 : return gen_split_3826 (insn, operands);
29089 :
29090 : case E_V4DFmode:
29091 : if (!register_operand (operands[0], E_V4DFmode)
29092 : || GET_MODE (x2) != E_V4DFmode
29093 : || !nonimmediate_operand (operands[1], E_V4DFmode)
29094 : || !(
29095 : #line 28078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29096 : (TARGET_AVX
29097 : && (V4DFmode != V4DFmode || !TARGET_AVX2 || operands[3] == const0_rtx)) &&
29098 : #line 28081 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29099 : ( reload_completed)))
29100 : return NULL;
29101 : return gen_split_3827 (insn, operands);
29102 :
29103 : default:
29104 : return NULL;
29105 : }
29106 : }
29107 :
29108 : rtx_insn *
29109 : split_83 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
29110 : {
29111 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
29112 : rtx x2, x3, x4, x5, x6;
29113 : rtx_insn *res ATTRIBUTE_UNUSED;
29114 : x2 = XEXP (x1, 1);
29115 : x3 = XEXP (x2, 1);
29116 : if (GET_CODE (x3) != PARALLEL)
29117 : return NULL;
29118 : x4 = XEXP (x2, 0);
29119 : switch (GET_CODE (x4))
29120 : {
29121 : case VEC_CONCAT:
29122 : x5 = XEXP (x4, 0);
29123 : switch (GET_CODE (x5))
29124 : {
29125 : case MINUS:
29126 : switch (pattern732 (x2,
29127 : PLUS))
29128 : {
29129 : case 0:
29130 : if (pattern1683 (x4,
29131 : E_V8SFmode,
29132 : E_V16SFmode) != 0
29133 : || !(
29134 : #line 3659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29135 : (TARGET_SSE3
29136 : && can_create_pseudo_p ()
29137 : && ((rtx_equal_p (operands[1], operands[3])
29138 : && rtx_equal_p (operands[2], operands[4]))
29139 : || (rtx_equal_p (operands[1], operands[4])
29140 : && rtx_equal_p (operands[2], operands[3])))) &&
29141 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29142 : (TARGET_AVX)))
29143 : return NULL;
29144 : return gen_split_1366 (insn, operands);
29145 :
29146 : case 1:
29147 : if (pattern1683 (x4,
29148 : E_V4SFmode,
29149 : E_V8SFmode) != 0
29150 : || !
29151 : #line 3659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29152 : (TARGET_SSE3
29153 : && can_create_pseudo_p ()
29154 : && ((rtx_equal_p (operands[1], operands[3])
29155 : && rtx_equal_p (operands[2], operands[4]))
29156 : || (rtx_equal_p (operands[1], operands[4])
29157 : && rtx_equal_p (operands[2], operands[3])))))
29158 : return NULL;
29159 : return gen_split_1367 (insn, operands);
29160 :
29161 : case 2:
29162 : if (pattern1683 (x4,
29163 : E_V4DFmode,
29164 : E_V8DFmode) != 0
29165 : || !(
29166 : #line 3659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29167 : (TARGET_SSE3
29168 : && can_create_pseudo_p ()
29169 : && ((rtx_equal_p (operands[1], operands[3])
29170 : && rtx_equal_p (operands[2], operands[4]))
29171 : || (rtx_equal_p (operands[1], operands[4])
29172 : && rtx_equal_p (operands[2], operands[3])))) &&
29173 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29174 : (TARGET_AVX)))
29175 : return NULL;
29176 : return gen_split_1368 (insn, operands);
29177 :
29178 : case 3:
29179 : if (pattern1683 (x4,
29180 : E_V2DFmode,
29181 : E_V4DFmode) != 0
29182 : || !(
29183 : #line 3659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29184 : (TARGET_SSE3
29185 : && can_create_pseudo_p ()
29186 : && ((rtx_equal_p (operands[1], operands[3])
29187 : && rtx_equal_p (operands[2], operands[4]))
29188 : || (rtx_equal_p (operands[1], operands[4])
29189 : && rtx_equal_p (operands[2], operands[3])))) &&
29190 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29191 : (TARGET_SSE2)))
29192 : return NULL;
29193 : return gen_split_1369 (insn, operands);
29194 :
29195 : default:
29196 : return NULL;
29197 : }
29198 :
29199 : case PLUS:
29200 : switch (pattern732 (x2,
29201 : MINUS))
29202 : {
29203 : case 0:
29204 : if (pattern1684 (x4,
29205 : E_V8SFmode,
29206 : E_V16SFmode) != 0
29207 : || !(
29208 : #line 3693 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29209 : (TARGET_SSE3
29210 : && can_create_pseudo_p ()
29211 : && ((rtx_equal_p (operands[1], operands[3])
29212 : && rtx_equal_p (operands[2], operands[4]))
29213 : || (rtx_equal_p (operands[1], operands[4])
29214 : && rtx_equal_p (operands[2], operands[3])))) &&
29215 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29216 : (TARGET_AVX)))
29217 : return NULL;
29218 : return gen_split_1370 (insn, operands);
29219 :
29220 : case 1:
29221 : if (pattern1684 (x4,
29222 : E_V4SFmode,
29223 : E_V8SFmode) != 0
29224 : || !
29225 : #line 3693 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29226 : (TARGET_SSE3
29227 : && can_create_pseudo_p ()
29228 : && ((rtx_equal_p (operands[1], operands[3])
29229 : && rtx_equal_p (operands[2], operands[4]))
29230 : || (rtx_equal_p (operands[1], operands[4])
29231 : && rtx_equal_p (operands[2], operands[3])))))
29232 : return NULL;
29233 : return gen_split_1371 (insn, operands);
29234 :
29235 : case 2:
29236 : if (pattern1684 (x4,
29237 : E_V4DFmode,
29238 : E_V8DFmode) != 0
29239 : || !(
29240 : #line 3693 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29241 : (TARGET_SSE3
29242 : && can_create_pseudo_p ()
29243 : && ((rtx_equal_p (operands[1], operands[3])
29244 : && rtx_equal_p (operands[2], operands[4]))
29245 : || (rtx_equal_p (operands[1], operands[4])
29246 : && rtx_equal_p (operands[2], operands[3])))) &&
29247 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29248 : (TARGET_AVX)))
29249 : return NULL;
29250 : return gen_split_1372 (insn, operands);
29251 :
29252 : case 3:
29253 : if (pattern1684 (x4,
29254 : E_V2DFmode,
29255 : E_V4DFmode) != 0
29256 : || !(
29257 : #line 3693 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29258 : (TARGET_SSE3
29259 : && can_create_pseudo_p ()
29260 : && ((rtx_equal_p (operands[1], operands[3])
29261 : && rtx_equal_p (operands[2], operands[4]))
29262 : || (rtx_equal_p (operands[1], operands[4])
29263 : && rtx_equal_p (operands[2], operands[3])))) &&
29264 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29265 : (TARGET_SSE2)))
29266 : return NULL;
29267 : return gen_split_1373 (insn, operands);
29268 :
29269 : default:
29270 : return NULL;
29271 : }
29272 :
29273 : case REG:
29274 : case SUBREG:
29275 : case MEM:
29276 : operands[1] = x5;
29277 : x6 = XEXP (x4, 1);
29278 : switch (GET_CODE (x6))
29279 : {
29280 : case REG:
29281 : case SUBREG:
29282 : case MEM:
29283 : res = split_75 (x1, insn);
29284 : if (res != NULL_RTX)
29285 : return res;
29286 : break;
29287 :
29288 : case CONST_INT:
29289 : case CONST_DOUBLE:
29290 : case CONST_VECTOR:
29291 : switch (pattern810 (x2))
29292 : {
29293 : case 0:
29294 : if ((
29295 : #line 24481 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29296 : (TARGET_AVX2) &&
29297 : #line 24483 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29298 : ( reload_completed)))
29299 : return gen_split_3600 (insn, operands);
29300 : break;
29301 :
29302 : case 1:
29303 : if ((
29304 : #line 24534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29305 : (TARGET_AVX512BW) &&
29306 : #line 24536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29307 : ( reload_completed)))
29308 : return gen_split_3604 (insn, operands);
29309 : break;
29310 :
29311 : case 2:
29312 : if ((
29313 : #line 24656 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29314 : (TARGET_SSE4_1) &&
29315 : #line 24658 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29316 : ( reload_completed)))
29317 : return gen_split_3612 (insn, operands);
29318 : break;
29319 :
29320 : case 3:
29321 : if ((
29322 : #line 24960 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29323 : (TARGET_AVX512F) &&
29324 : #line 24962 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29325 : ( reload_completed)))
29326 : return gen_split_3626 (insn, operands);
29327 : break;
29328 :
29329 : case 4:
29330 : if ((
29331 : #line 25014 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29332 : (TARGET_AVX2) &&
29333 : #line 25016 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29334 : ( reload_completed)))
29335 : return gen_split_3630 (insn, operands);
29336 : break;
29337 :
29338 : case 5:
29339 : if ((
29340 : #line 25144 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29341 : (TARGET_SSE4_1) &&
29342 : #line 25146 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29343 : ( reload_completed)))
29344 : return gen_split_3638 (insn, operands);
29345 : break;
29346 :
29347 : case 6:
29348 : if (pmovzx_parallel (operands[3], E_VOIDmode)
29349 : && (
29350 : #line 25649 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29351 : (TARGET_AVX512F) &&
29352 : #line 25651 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29353 : ( reload_completed)))
29354 : return gen_split_3661 (insn, operands);
29355 : if (movq_parallel (operands[3], E_VOIDmode)
29356 : && ((
29357 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29358 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29359 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29360 : (TARGET_AVX512F)) &&
29361 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29362 : ( 1)))
29363 : return gen_split_3884 (insn, operands);
29364 : break;
29365 :
29366 : case 7:
29367 : if (pmovzx_parallel (operands[3], E_VOIDmode)
29368 : && (
29369 : #line 25701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29370 : (TARGET_AVX2) &&
29371 : #line 25703 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29372 : ( reload_completed)))
29373 : return gen_split_3663 (insn, operands);
29374 : if (movq_parallel (operands[3], E_VOIDmode)
29375 : && ((
29376 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29377 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29378 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29379 : (TARGET_AVX)) &&
29380 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29381 : ( 1)))
29382 : return gen_split_3885 (insn, operands);
29383 : break;
29384 :
29385 : case 8:
29386 : if (vector_operand (operands[1], E_V4SImode)
29387 : && pmovzx_parallel (operands[3], E_VOIDmode)
29388 : && (
29389 : #line 25809 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29390 : (TARGET_SSE4_1) &&
29391 : #line 25811 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29392 : ( reload_completed)))
29393 : return gen_split_3669 (insn, operands);
29394 : if (nonimmediate_operand (operands[1], E_V4SImode)
29395 : && movq_parallel (operands[3], E_VOIDmode)
29396 : && (
29397 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29398 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29399 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29400 : ( 1)))
29401 : return gen_split_3886 (insn, operands);
29402 : break;
29403 :
29404 : case 9:
29405 : if (((
29406 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29407 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29408 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29409 : (TARGET_AVX512F)) &&
29410 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29411 : ( 1)))
29412 : return gen_split_3887 (insn, operands);
29413 : break;
29414 :
29415 : case 10:
29416 : if (((
29417 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29418 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29419 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29420 : (TARGET_AVX)) &&
29421 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29422 : ( 1)))
29423 : return gen_split_3888 (insn, operands);
29424 : break;
29425 :
29426 : case 11:
29427 : if ((
29428 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29429 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29430 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29431 : ( 1)))
29432 : return gen_split_3889 (insn, operands);
29433 : break;
29434 :
29435 : case 12:
29436 : if (((
29437 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29438 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29439 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29440 : (TARGET_AVX512F)) &&
29441 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29442 : ( 1)))
29443 : return gen_split_3890 (insn, operands);
29444 : break;
29445 :
29446 : case 13:
29447 : if (((
29448 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29449 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29450 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29451 : (TARGET_AVX)) &&
29452 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29453 : ( 1)))
29454 : return gen_split_3891 (insn, operands);
29455 : break;
29456 :
29457 : case 14:
29458 : if ((
29459 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29460 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29461 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29462 : ( 1)))
29463 : return gen_split_3892 (insn, operands);
29464 : break;
29465 :
29466 : case 15:
29467 : if (((
29468 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29469 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29470 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29471 : (TARGET_AVX512F)) &&
29472 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29473 : ( 1)))
29474 : return gen_split_3893 (insn, operands);
29475 : break;
29476 :
29477 : case 16:
29478 : if (((
29479 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29480 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29481 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29482 : (TARGET_AVX)) &&
29483 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29484 : ( 1)))
29485 : return gen_split_3894 (insn, operands);
29486 : break;
29487 :
29488 : case 17:
29489 : if ((
29490 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29491 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29492 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29493 : ( 1)))
29494 : return gen_split_3895 (insn, operands);
29495 : break;
29496 :
29497 : case 18:
29498 : if (((
29499 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29500 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29501 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29502 : (TARGET_AVX512F)) &&
29503 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29504 : ( 1)))
29505 : return gen_split_3896 (insn, operands);
29506 : break;
29507 :
29508 : case 19:
29509 : if (((
29510 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29511 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29512 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29513 : (TARGET_AVX)) &&
29514 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29515 : ( 1)))
29516 : return gen_split_3897 (insn, operands);
29517 : break;
29518 :
29519 : case 20:
29520 : if ((
29521 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29522 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29523 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29524 : ( 1)))
29525 : return gen_split_3898 (insn, operands);
29526 : break;
29527 :
29528 : case 21:
29529 : if (((
29530 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29531 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29532 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29533 : (TARGET_AVX512F)) &&
29534 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29535 : ( 1)))
29536 : return gen_split_3899 (insn, operands);
29537 : break;
29538 :
29539 : case 22:
29540 : if (((
29541 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29542 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29543 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29544 : (TARGET_AVX)) &&
29545 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29546 : ( 1)))
29547 : return gen_split_3900 (insn, operands);
29548 : break;
29549 :
29550 : case 23:
29551 : if (((
29552 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29553 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29554 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29555 : (TARGET_SSE2)) &&
29556 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29557 : ( 1)))
29558 : return gen_split_3901 (insn, operands);
29559 : break;
29560 :
29561 : default:
29562 : break;
29563 : }
29564 : break;
29565 :
29566 : default:
29567 : break;
29568 : }
29569 : if (XVECLEN (x3, 0) >= 1)
29570 : {
29571 : switch (pattern812 (x2))
29572 : {
29573 : case 0:
29574 : if ((
29575 : #line 28719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29576 : (TARGET_AVX && ix86_pre_reload_split ()) &&
29577 : #line 28721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29578 : ( 1)))
29579 : return gen_split_3843 (insn, operands);
29580 : break;
29581 :
29582 : case 1:
29583 : if ((
29584 : #line 28719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29585 : (TARGET_AVX && ix86_pre_reload_split ()) &&
29586 : #line 28721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29587 : ( 1)))
29588 : return gen_split_3844 (insn, operands);
29589 : break;
29590 :
29591 : case 2:
29592 : if ((
29593 : #line 28719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29594 : (TARGET_AVX && ix86_pre_reload_split ()) &&
29595 : #line 28721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29596 : ( 1)))
29597 : return gen_split_3845 (insn, operands);
29598 : break;
29599 :
29600 : case 3:
29601 : if ((
29602 : #line 28719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29603 : (TARGET_AVX && ix86_pre_reload_split ()) &&
29604 : #line 28721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29605 : ( 1)))
29606 : return gen_split_3846 (insn, operands);
29607 : break;
29608 :
29609 : case 4:
29610 : if ((
29611 : #line 28719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29612 : (TARGET_AVX && ix86_pre_reload_split ()) &&
29613 : #line 28721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29614 : ( 1)))
29615 : return gen_split_3847 (insn, operands);
29616 : break;
29617 :
29618 : case 5:
29619 : if ((
29620 : #line 28719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29621 : (TARGET_AVX && ix86_pre_reload_split ()) &&
29622 : #line 28721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29623 : ( 1)))
29624 : return gen_split_3848 (insn, operands);
29625 : break;
29626 :
29627 : case 6:
29628 : if ((
29629 : #line 28719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29630 : (TARGET_AVX && ix86_pre_reload_split ()) &&
29631 : #line 28721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29632 : ( 1)))
29633 : return gen_split_3849 (insn, operands);
29634 : break;
29635 :
29636 : case 7:
29637 : if ((
29638 : #line 28719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29639 : (TARGET_AVX && ix86_pre_reload_split ()) &&
29640 : #line 28721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29641 : ( 1)))
29642 : return gen_split_3850 (insn, operands);
29643 : break;
29644 :
29645 : default:
29646 : break;
29647 : }
29648 : }
29649 : if (XVECLEN (x3, 0) < 1)
29650 : return NULL;
29651 : operands[4] = x3;
29652 : switch (pattern813 (x2))
29653 : {
29654 : case 0:
29655 : if ((
29656 : #line 24501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29657 : (TARGET_AVX2) &&
29658 : #line 24503 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29659 : ( reload_completed)))
29660 : return gen_split_3601 (insn, operands);
29661 : break;
29662 :
29663 : case 1:
29664 : if ((
29665 : #line 24501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29666 : (TARGET_AVX2) &&
29667 : #line 24503 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29668 : ( reload_completed)))
29669 : return gen_split_3602 (insn, operands);
29670 : break;
29671 :
29672 : case 2:
29673 : if ((
29674 : #line 24501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29675 : (TARGET_AVX2) &&
29676 : #line 24503 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29677 : ( reload_completed)))
29678 : return gen_split_3603 (insn, operands);
29679 : break;
29680 :
29681 : case 3:
29682 : if ((
29683 : #line 24554 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29684 : (TARGET_AVX512BW) &&
29685 : #line 24556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29686 : ( reload_completed)))
29687 : return gen_split_3605 (insn, operands);
29688 : break;
29689 :
29690 : case 4:
29691 : if ((
29692 : #line 24554 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29693 : (TARGET_AVX512BW) &&
29694 : #line 24556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29695 : ( reload_completed)))
29696 : return gen_split_3606 (insn, operands);
29697 : break;
29698 :
29699 : case 5:
29700 : if ((
29701 : #line 24554 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29702 : (TARGET_AVX512BW) &&
29703 : #line 24556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29704 : ( reload_completed)))
29705 : return gen_split_3607 (insn, operands);
29706 : break;
29707 :
29708 : case 6:
29709 : if ((
29710 : #line 24691 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29711 : (TARGET_SSE4_1) &&
29712 : #line 24693 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29713 : ( reload_completed)))
29714 : return gen_split_3613 (insn, operands);
29715 : break;
29716 :
29717 : case 7:
29718 : if ((
29719 : #line 24691 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29720 : (TARGET_SSE4_1) &&
29721 : #line 24693 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29722 : ( reload_completed)))
29723 : return gen_split_3614 (insn, operands);
29724 : break;
29725 :
29726 : case 8:
29727 : if ((
29728 : #line 24691 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29729 : (TARGET_SSE4_1) &&
29730 : #line 24693 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29731 : ( reload_completed)))
29732 : return gen_split_3615 (insn, operands);
29733 : break;
29734 :
29735 : case 9:
29736 : if ((
29737 : #line 24980 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29738 : (TARGET_AVX512F) &&
29739 : #line 24982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29740 : ( reload_completed)))
29741 : return gen_split_3627 (insn, operands);
29742 : break;
29743 :
29744 : case 10:
29745 : if ((
29746 : #line 24980 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29747 : (TARGET_AVX512F) &&
29748 : #line 24982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29749 : ( reload_completed)))
29750 : return gen_split_3628 (insn, operands);
29751 : break;
29752 :
29753 : case 11:
29754 : if ((
29755 : #line 24980 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29756 : (TARGET_AVX512F) &&
29757 : #line 24982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29758 : ( reload_completed)))
29759 : return gen_split_3629 (insn, operands);
29760 : break;
29761 :
29762 : case 12:
29763 : if ((
29764 : #line 25034 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29765 : (TARGET_AVX2) &&
29766 : #line 25036 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29767 : ( reload_completed)))
29768 : return gen_split_3631 (insn, operands);
29769 : break;
29770 :
29771 : case 13:
29772 : if ((
29773 : #line 25034 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29774 : (TARGET_AVX2) &&
29775 : #line 25036 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29776 : ( reload_completed)))
29777 : return gen_split_3632 (insn, operands);
29778 : break;
29779 :
29780 : case 14:
29781 : if ((
29782 : #line 25034 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29783 : (TARGET_AVX2) &&
29784 : #line 25036 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29785 : ( reload_completed)))
29786 : return gen_split_3633 (insn, operands);
29787 : break;
29788 :
29789 : case 15:
29790 : if ((
29791 : #line 25177 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29792 : (TARGET_SSE4_1) &&
29793 : #line 25179 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29794 : ( reload_completed)))
29795 : return gen_split_3639 (insn, operands);
29796 : break;
29797 :
29798 : case 16:
29799 : if ((
29800 : #line 25177 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29801 : (TARGET_SSE4_1) &&
29802 : #line 25179 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29803 : ( reload_completed)))
29804 : return gen_split_3640 (insn, operands);
29805 : break;
29806 :
29807 : case 17:
29808 : if ((
29809 : #line 25177 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29810 : (TARGET_SSE4_1) &&
29811 : #line 25179 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29812 : ( reload_completed)))
29813 : return gen_split_3641 (insn, operands);
29814 : break;
29815 :
29816 : default:
29817 : break;
29818 : }
29819 : operands[3] = x3;
29820 : switch (pattern814 (x2))
29821 : {
29822 : case 0:
29823 : if (!((
29824 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29825 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29826 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29827 : (TARGET_AVX512F)) &&
29828 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29829 : ( 1)))
29830 : return NULL;
29831 : return gen_split_3878 (insn, operands);
29832 :
29833 : case 1:
29834 : if (!((
29835 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29836 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29837 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29838 : (TARGET_AVX)) &&
29839 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29840 : ( 1)))
29841 : return NULL;
29842 : return gen_split_3879 (insn, operands);
29843 :
29844 : case 2:
29845 : if (!(
29846 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29847 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29848 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29849 : ( 1)))
29850 : return NULL;
29851 : return gen_split_3880 (insn, operands);
29852 :
29853 : case 3:
29854 : if (!((
29855 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29856 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29857 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29858 : (TARGET_AVX512F)) &&
29859 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29860 : ( 1)))
29861 : return NULL;
29862 : return gen_split_3881 (insn, operands);
29863 :
29864 : case 4:
29865 : if (!((
29866 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29867 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29868 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29869 : (TARGET_AVX)) &&
29870 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29871 : ( 1)))
29872 : return NULL;
29873 : return gen_split_3882 (insn, operands);
29874 :
29875 : case 5:
29876 : if (!(
29877 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29878 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29879 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29880 : ( 1)))
29881 : return NULL;
29882 : return gen_split_3883 (insn, operands);
29883 :
29884 : default:
29885 : return NULL;
29886 : }
29887 :
29888 : case VEC_CONCAT:
29889 : switch (pattern523 (x2))
29890 : {
29891 : case 0:
29892 : if (!(
29893 : #line 25668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29894 : (TARGET_AVX512F) &&
29895 : #line 25670 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29896 : ( reload_completed)))
29897 : return NULL;
29898 : return gen_split_3662 (insn, operands);
29899 :
29900 : case 1:
29901 : if (!(
29902 : #line 25720 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29903 : (TARGET_AVX2) &&
29904 : #line 25722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29905 : ( reload_completed)))
29906 : return NULL;
29907 : return gen_split_3664 (insn, operands);
29908 :
29909 : case 2:
29910 : if (!(
29911 : #line 25839 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29912 : (TARGET_SSE4_1) &&
29913 : #line 25841 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29914 : ( reload_completed)))
29915 : return NULL;
29916 : return gen_split_3670 (insn, operands);
29917 :
29918 : default:
29919 : return NULL;
29920 : }
29921 :
29922 : default:
29923 : return NULL;
29924 : }
29925 :
29926 : case REG:
29927 : case SUBREG:
29928 : case MEM:
29929 : operands[1] = x4;
29930 : res = split_79 (x1, insn);
29931 : if (res != NULL_RTX)
29932 : return res;
29933 : if (GET_CODE (x4) != SUBREG)
29934 : return NULL;
29935 : switch (pattern525 (x2))
29936 : {
29937 : case 0:
29938 : if (!(
29939 : #line 15360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29940 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
29941 : #line 15362 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29942 : ( 1)))
29943 : return NULL;
29944 : return gen_split_3260 (insn, operands);
29945 :
29946 : case 1:
29947 : if (!(
29948 : #line 15413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29949 : (TARGET_AVX512VL && TARGET_AVX512BW && ix86_pre_reload_split ()) &&
29950 : #line 15415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29951 : ( 1)))
29952 : return NULL;
29953 : return gen_split_3262 (insn, operands);
29954 :
29955 : default:
29956 : return NULL;
29957 : }
29958 :
29959 : case UNSPEC:
29960 : if (XVECLEN (x4, 0) != 2)
29961 : return NULL;
29962 : switch (pattern527 (x2))
29963 : {
29964 : case 0:
29965 : if (!(
29966 : #line 15335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29967 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
29968 : #line 15337 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29969 : ( 1)))
29970 : return NULL;
29971 : return gen_split_3259 (insn, operands);
29972 :
29973 : case 1:
29974 : if (!(
29975 : #line 15597 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29976 : (TARGET_AVX512VL && TARGET_AVX512VBMI
29977 : && ix86_pre_reload_split ()) &&
29978 : #line 15600 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29979 : ( 1)))
29980 : return NULL;
29981 : return gen_split_3265 (insn, operands);
29982 :
29983 : case 2:
29984 : if (!(
29985 : #line 15392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29986 : (TARGET_AVX512VL && TARGET_AVX512BW && ix86_pre_reload_split ()) &&
29987 : #line 15394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29988 : ( 1)))
29989 : return NULL;
29990 : return gen_split_3261 (insn, operands);
29991 :
29992 : case 3:
29993 : if (!(
29994 : #line 15444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29995 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
29996 : #line 15446 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29997 : ( 1)))
29998 : return NULL;
29999 : return gen_split_3263 (insn, operands);
30000 :
30001 : case 4:
30002 : if (!(
30003 : #line 15516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30004 : (TARGET_AVX512VBMI && ix86_pre_reload_split ()) &&
30005 : #line 15518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30006 : ( 1)))
30007 : return NULL;
30008 : return gen_split_3264 (insn, operands);
30009 :
30010 : case 5:
30011 : if (!(
30012 : #line 15616 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30013 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
30014 : #line 15618 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30015 : ( 1)))
30016 : return NULL;
30017 : return gen_split_3266 (insn, operands);
30018 :
30019 : default:
30020 : return NULL;
30021 : }
30022 :
30023 : default:
30024 : return NULL;
30025 : }
30026 : }
30027 :
30028 : rtx_insn *
30029 : peephole2_1 (rtx x1 ATTRIBUTE_UNUSED,
30030 : rtx_insn *insn ATTRIBUTE_UNUSED,
30031 : int *pmatch_len_ ATTRIBUTE_UNUSED)
30032 : {
30033 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
30034 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
30035 : rtx x10, x11;
30036 : rtx_insn *res ATTRIBUTE_UNUSED;
30037 : x2 = XEXP (x1, 0);
30038 : if (GET_CODE (x2) != REG
30039 : || REGNO (x2) != 17)
30040 : return NULL;
30041 : x3 = XEXP (x1, 1);
30042 : x4 = XEXP (x3, 0);
30043 : switch (GET_CODE (x4))
30044 : {
30045 : case NEG:
30046 : if (GET_MODE (x4) != E_QImode)
30047 : return NULL;
30048 : x5 = XEXP (x4, 0);
30049 : if (GET_CODE (x5) != LTU
30050 : || GET_MODE (x5) != E_QImode)
30051 : return NULL;
30052 : x6 = XEXP (x5, 0);
30053 : if (GET_CODE (x6) != REG
30054 : || REGNO (x6) != 17
30055 : || GET_MODE (x6) != E_CCCmode)
30056 : return NULL;
30057 : x7 = XEXP (x5, 1);
30058 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
30059 : return NULL;
30060 : x8 = XEXP (x3, 1);
30061 : if (GET_CODE (x8) != GEU
30062 : || GET_MODE (x8) != E_QImode)
30063 : return NULL;
30064 : x9 = XEXP (x8, 0);
30065 : if (GET_CODE (x9) != REG
30066 : || REGNO (x9) != 17
30067 : || GET_MODE (x9) != E_CCCmode)
30068 : return NULL;
30069 : x10 = XEXP (x8, 1);
30070 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
30071 : || GET_MODE (x2) != E_CCCmode
30072 : || GET_MODE (x3) != E_CCCmode
30073 : || !
30074 : #line 2167 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30075 : (TARGET_SLOW_STC && !optimize_insn_for_size_p ()))
30076 : return NULL;
30077 : *pmatch_len_ = 0;
30078 : return gen_peephole2_2 (insn, operands);
30079 :
30080 : case AND:
30081 : x8 = XEXP (x3, 1);
30082 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
30083 : || GET_MODE (x2) != E_CCZmode
30084 : || GET_MODE (x3) != E_CCZmode)
30085 : return NULL;
30086 : x5 = XEXP (x4, 0);
30087 : operands[0] = x5;
30088 : x11 = XEXP (x4, 1);
30089 : operands[1] = x11;
30090 : if (!const_int_operand (operands[1], E_VOIDmode))
30091 : return NULL;
30092 : switch (GET_MODE (x4))
30093 : {
30094 : case E_HImode:
30095 : if (!memory_operand (operands[0], E_HImode)
30096 : || !
30097 : #line 12754 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30098 : (!TARGET_PARTIAL_MEMORY_READ_STALL
30099 : && !MEM_VOLATILE_P (operands[0])
30100 : && offsettable_memref_p (operands[0])))
30101 : return NULL;
30102 : *pmatch_len_ = 0;
30103 : return gen_peephole2_140 (insn, operands);
30104 :
30105 : case E_SImode:
30106 : if (!memory_operand (operands[0], E_SImode)
30107 : || !
30108 : #line 12754 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30109 : (!TARGET_PARTIAL_MEMORY_READ_STALL
30110 : && !MEM_VOLATILE_P (operands[0])
30111 : && offsettable_memref_p (operands[0])))
30112 : return NULL;
30113 : *pmatch_len_ = 0;
30114 : return gen_peephole2_141 (insn, operands);
30115 :
30116 : case E_DImode:
30117 : if (!memory_operand (operands[0], E_DImode)
30118 : || !(
30119 : #line 12754 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30120 : (!TARGET_PARTIAL_MEMORY_READ_STALL
30121 : && !MEM_VOLATILE_P (operands[0])
30122 : && offsettable_memref_p (operands[0])) &&
30123 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30124 : (TARGET_64BIT)))
30125 : return NULL;
30126 : *pmatch_len_ = 0;
30127 : return gen_peephole2_142 (insn, operands);
30128 :
30129 : default:
30130 : return NULL;
30131 : }
30132 :
30133 : default:
30134 : return NULL;
30135 : }
30136 : }
30137 :
30138 : rtx_insn *
30139 : peephole2_2 (rtx x1 ATTRIBUTE_UNUSED,
30140 : rtx_insn *insn ATTRIBUTE_UNUSED,
30141 : int *pmatch_len_ ATTRIBUTE_UNUSED)
30142 : {
30143 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
30144 : rtx x2, x3, x4;
30145 : rtx_insn *res ATTRIBUTE_UNUSED;
30146 : x2 = XEXP (x1, 0);
30147 : operands[0] = x2;
30148 : x3 = XEXP (x1, 1);
30149 : x4 = XEXP (x3, 0);
30150 : operands[1] = x4;
30151 : switch (GET_MODE (operands[0]))
30152 : {
30153 : case E_SImode:
30154 : switch (pattern417 (x3,
30155 : E_SImode))
30156 : {
30157 : case 0:
30158 : if (!
30159 : #line 5974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30160 : (TARGET_AVOID_VECTOR_DECODE
30161 : && SSE_FLOAT_MODE_P (SFmode)
30162 : && optimize_insn_for_speed_p ()))
30163 : return NULL;
30164 : *pmatch_len_ = 0;
30165 : return gen_peephole2_56 (insn, operands);
30166 :
30167 : case 1:
30168 : if (!
30169 : #line 5974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30170 : (TARGET_AVOID_VECTOR_DECODE
30171 : && SSE_FLOAT_MODE_P (DFmode)
30172 : && optimize_insn_for_speed_p ()))
30173 : return NULL;
30174 : *pmatch_len_ = 0;
30175 : return gen_peephole2_58 (insn, operands);
30176 :
30177 : default:
30178 : return NULL;
30179 : }
30180 :
30181 : case E_DImode:
30182 : switch (pattern417 (x3,
30183 : E_DImode))
30184 : {
30185 : case 0:
30186 : if (!(
30187 : #line 5974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30188 : (TARGET_AVOID_VECTOR_DECODE
30189 : && SSE_FLOAT_MODE_P (SFmode)
30190 : && optimize_insn_for_speed_p ()) &&
30191 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30192 : (TARGET_64BIT)))
30193 : return NULL;
30194 : *pmatch_len_ = 0;
30195 : return gen_peephole2_57 (insn, operands);
30196 :
30197 : case 1:
30198 : if (!(
30199 : #line 5974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30200 : (TARGET_AVOID_VECTOR_DECODE
30201 : && SSE_FLOAT_MODE_P (DFmode)
30202 : && optimize_insn_for_speed_p ()) &&
30203 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30204 : (TARGET_64BIT)))
30205 : return NULL;
30206 : *pmatch_len_ = 0;
30207 : return gen_peephole2_59 (insn, operands);
30208 :
30209 : default:
30210 : return NULL;
30211 : }
30212 :
30213 : default:
30214 : return NULL;
30215 : }
30216 : }
30217 :
30218 : rtx_insn *
30219 : peephole2_3 (rtx x1 ATTRIBUTE_UNUSED,
30220 : rtx_insn *insn ATTRIBUTE_UNUSED,
30221 : int *pmatch_len_ ATTRIBUTE_UNUSED)
30222 : {
30223 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
30224 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
30225 : rtx x10;
30226 : rtx_insn *res ATTRIBUTE_UNUSED;
30227 : if (peep2_current_count < 2
30228 : || peep2_current_count < 3)
30229 : return NULL;
30230 : x2 = XEXP (x1, 1);
30231 : operands[1] = x2;
30232 : if (!bt_comparison_operator (operands[1], E_QImode))
30233 : return NULL;
30234 : x3 = XEXP (x2, 0);
30235 : if (GET_CODE (x3) != REG
30236 : || REGNO (x3) != 17
30237 : || GET_MODE (x3) != E_CCZmode)
30238 : return NULL;
30239 : x4 = XEXP (x2, 1);
30240 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
30241 : return NULL;
30242 : x5 = XEXP (x1, 0);
30243 : operands[0] = x5;
30244 : if (!nonimmediate_operand (operands[0], E_QImode))
30245 : return NULL;
30246 : x6 = PATTERN (peep2_next_insn (1));
30247 : if (pattern1265 (x6,
30248 : 0) != 0)
30249 : return NULL;
30250 : x7 = PATTERN (peep2_next_insn (2));
30251 : x8 = XEXP (x7, 1);
30252 : x9 = XEXP (x8, 0);
30253 : operands[2] = x9;
30254 : if (pattern1805 (x7) != 0)
30255 : return NULL;
30256 : x10 = XEXP (x8, 1);
30257 : operands[3] = x10;
30258 : if (!
30259 : #line 20022 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30260 : (peep2_regno_dead_p (3, FLAGS_REG)))
30261 : return NULL;
30262 : *pmatch_len_ = 2;
30263 : return gen_peephole2_188 (insn, operands);
30264 : }
30265 :
30266 : rtx_insn *
30267 : peephole2_4 (rtx x1 ATTRIBUTE_UNUSED,
30268 : rtx_insn *insn ATTRIBUTE_UNUSED,
30269 : int *pmatch_len_ ATTRIBUTE_UNUSED)
30270 : {
30271 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
30272 : rtx x2;
30273 : rtx_insn *res ATTRIBUTE_UNUSED;
30274 : switch (GET_MODE (operands[0]))
30275 : {
30276 : case E_DImode:
30277 : if (register_operand (operands[0], E_DImode)
30278 : && const_int_operand (operands[1], E_DImode)
30279 : &&
30280 : #line 2814 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30281 : (TARGET_64BIT
30282 : && optimize_insn_for_size_p ()
30283 : && LEGACY_INT_REG_P (operands[0])
30284 : && !x86_64_immediate_operand (operands[1], DImode)
30285 : && !x86_64_zext_immediate_operand (operands[1], DImode)
30286 : && !((UINTVAL (operands[1]) >> ctz_hwi (UINTVAL (operands[1])))
30287 : & ~HOST_WIDE_INT_C (0xffffffff))
30288 : && peep2_regno_dead_p (0, FLAGS_REG)))
30289 : {
30290 : *pmatch_len_ = 0;
30291 : res = gen_peephole2_4 (insn, operands);
30292 : if (res != NULL_RTX)
30293 : return res;
30294 : }
30295 : if (!general_reg_operand (operands[0], E_DImode))
30296 : return NULL;
30297 : if (const_int_operand (operands[1], E_DImode))
30298 : {
30299 : if ((
30300 : #line 2963 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30301 : (optimize_insn_for_size_p () && optimize_size > 1
30302 : && operands[1] != const0_rtx
30303 : && (operands[1] != constm1_rtx
30304 : || (DImode == DImode && LEGACY_INT_REG_P (operands[0])))
30305 : && IN_RANGE (INTVAL (operands[1]), -128, 127)
30306 : && !ix86_red_zone_used
30307 : && REGNO (operands[0]) != SP_REG) &&
30308 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30309 : (TARGET_64BIT)))
30310 : {
30311 : *pmatch_len_ = 0;
30312 : res = gen_peephole2_7 (insn, operands);
30313 : if (res != NULL_RTX)
30314 : return res;
30315 : }
30316 : if (peep2_current_count >= 2)
30317 : {
30318 : x2 = PATTERN (peep2_next_insn (1));
30319 : switch (pattern1074 (x2))
30320 : {
30321 : case 0:
30322 : if ((
30323 : #line 3669 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30324 : (REGNO (operands[0]) == REGNO (operands[2])) &&
30325 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30326 : (TARGET_64BIT)))
30327 : {
30328 : *pmatch_len_ = 1;
30329 : res = gen_peephole2_36 (insn, operands);
30330 : if (res != NULL_RTX)
30331 : return res;
30332 : }
30333 : break;
30334 :
30335 : case 1:
30336 : if ((
30337 : #line 3669 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30338 : (REGNO (operands[0]) == REGNO (operands[2])) &&
30339 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30340 : (TARGET_64BIT)))
30341 : {
30342 : *pmatch_len_ = 1;
30343 : res = gen_peephole2_38 (insn, operands);
30344 : if (res != NULL_RTX)
30345 : return res;
30346 : }
30347 : break;
30348 :
30349 : case 2:
30350 : if ((
30351 : #line 3669 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30352 : (REGNO (operands[0]) == REGNO (operands[2])) &&
30353 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30354 : (TARGET_64BIT)))
30355 : {
30356 : *pmatch_len_ = 1;
30357 : res = gen_peephole2_40 (insn, operands);
30358 : if (res != NULL_RTX)
30359 : return res;
30360 : }
30361 : break;
30362 :
30363 : default:
30364 : break;
30365 : }
30366 : }
30367 : }
30368 : if (peep2_current_count < 2)
30369 : return NULL;
30370 : x2 = PATTERN (peep2_next_insn (1));
30371 : if (pattern959 (x2,
30372 : E_DImode) != 0
30373 : || !(
30374 : #line 3300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30375 : (peep2_reg_dead_p (2, operands[0])
30376 : && (const0_operand (operands[1], DImode)
30377 : || (constm1_operand (operands[1], DImode)
30378 : && (8 > 1 || TARGET_AVX512DQ)))) &&
30379 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30380 : (TARGET_64BIT)))
30381 : return NULL;
30382 : *pmatch_len_ = 1;
30383 : return gen_peephole2_14 (insn, operands);
30384 :
30385 : case E_HImode:
30386 : if (!general_reg_operand (operands[0], E_HImode))
30387 : return NULL;
30388 : if (const_int_operand (operands[1], E_HImode)
30389 : &&
30390 : #line 2963 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30391 : (optimize_insn_for_size_p () && optimize_size > 1
30392 : && operands[1] != const0_rtx
30393 : && (operands[1] != constm1_rtx
30394 : || (HImode == DImode && LEGACY_INT_REG_P (operands[0])))
30395 : && IN_RANGE (INTVAL (operands[1]), -128, 127)
30396 : && !ix86_red_zone_used
30397 : && REGNO (operands[0]) != SP_REG))
30398 : {
30399 : *pmatch_len_ = 0;
30400 : res = gen_peephole2_5 (insn, operands);
30401 : if (res != NULL_RTX)
30402 : return res;
30403 : }
30404 : if (peep2_current_count < 2)
30405 : return NULL;
30406 : x2 = PATTERN (peep2_next_insn (1));
30407 : if (pattern959 (x2,
30408 : E_HImode) != 0
30409 : || !
30410 : #line 3300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30411 : (peep2_reg_dead_p (2, operands[0])
30412 : && (const0_operand (operands[1], HImode)
30413 : || (constm1_operand (operands[1], HImode)
30414 : && (2 > 1 || TARGET_AVX512DQ)))))
30415 : return NULL;
30416 : *pmatch_len_ = 1;
30417 : return gen_peephole2_12 (insn, operands);
30418 :
30419 : case E_SImode:
30420 : if (!general_reg_operand (operands[0], E_SImode))
30421 : return NULL;
30422 : if (const_int_operand (operands[1], E_SImode))
30423 : {
30424 : if (
30425 : #line 2963 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30426 : (optimize_insn_for_size_p () && optimize_size > 1
30427 : && operands[1] != const0_rtx
30428 : && (operands[1] != constm1_rtx
30429 : || (SImode == DImode && LEGACY_INT_REG_P (operands[0])))
30430 : && IN_RANGE (INTVAL (operands[1]), -128, 127)
30431 : && !ix86_red_zone_used
30432 : && REGNO (operands[0]) != SP_REG))
30433 : {
30434 : *pmatch_len_ = 0;
30435 : res = gen_peephole2_6 (insn, operands);
30436 : if (res != NULL_RTX)
30437 : return res;
30438 : }
30439 : if (peep2_current_count >= 2)
30440 : {
30441 : x2 = PATTERN (peep2_next_insn (1));
30442 : switch (pattern1074 (x2))
30443 : {
30444 : case 0:
30445 : if (
30446 : #line 3669 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30447 : (REGNO (operands[0]) == REGNO (operands[2])))
30448 : {
30449 : *pmatch_len_ = 1;
30450 : res = gen_peephole2_35 (insn, operands);
30451 : if (res != NULL_RTX)
30452 : return res;
30453 : }
30454 : break;
30455 :
30456 : case 1:
30457 : if (
30458 : #line 3669 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30459 : (REGNO (operands[0]) == REGNO (operands[2])))
30460 : {
30461 : *pmatch_len_ = 1;
30462 : res = gen_peephole2_37 (insn, operands);
30463 : if (res != NULL_RTX)
30464 : return res;
30465 : }
30466 : break;
30467 :
30468 : case 2:
30469 : if ((
30470 : #line 3669 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30471 : (REGNO (operands[0]) == REGNO (operands[2])) &&
30472 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30473 : (TARGET_64BIT)))
30474 : {
30475 : *pmatch_len_ = 1;
30476 : res = gen_peephole2_39 (insn, operands);
30477 : if (res != NULL_RTX)
30478 : return res;
30479 : }
30480 : break;
30481 :
30482 : default:
30483 : break;
30484 : }
30485 : }
30486 : }
30487 : if (peep2_current_count < 2)
30488 : return NULL;
30489 : x2 = PATTERN (peep2_next_insn (1));
30490 : if (pattern959 (x2,
30491 : E_SImode) != 0
30492 : || !
30493 : #line 3300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30494 : (peep2_reg_dead_p (2, operands[0])
30495 : && (const0_operand (operands[1], SImode)
30496 : || (constm1_operand (operands[1], SImode)
30497 : && (4 > 1 || TARGET_AVX512DQ)))))
30498 : return NULL;
30499 : *pmatch_len_ = 1;
30500 : return gen_peephole2_13 (insn, operands);
30501 :
30502 : case E_QImode:
30503 : if (peep2_current_count < 2
30504 : || !general_reg_operand (operands[0], E_QImode))
30505 : return NULL;
30506 : x2 = PATTERN (peep2_next_insn (1));
30507 : if (pattern959 (x2,
30508 : E_QImode) != 0
30509 : || !
30510 : #line 3300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30511 : (peep2_reg_dead_p (2, operands[0])
30512 : && (const0_operand (operands[1], QImode)
30513 : || (constm1_operand (operands[1], QImode)
30514 : && (1 > 1 || TARGET_AVX512DQ)))))
30515 : return NULL;
30516 : *pmatch_len_ = 1;
30517 : return gen_peephole2_11 (insn, operands);
30518 :
30519 : default:
30520 : return NULL;
30521 : }
30522 : }
30523 :
30524 : rtx_insn *
30525 : peephole2_6 (rtx x1 ATTRIBUTE_UNUSED,
30526 : rtx_insn *insn ATTRIBUTE_UNUSED,
30527 : int *pmatch_len_ ATTRIBUTE_UNUSED)
30528 : {
30529 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
30530 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
30531 : rtx x10, x11, x12, x13;
30532 : rtx_insn *res ATTRIBUTE_UNUSED;
30533 : x2 = XEXP (x1, 1);
30534 : operands[1] = x2;
30535 : x3 = XEXP (x1, 0);
30536 : operands[0] = x3;
30537 : switch (GET_CODE (operands[0]))
30538 : {
30539 : case REG:
30540 : switch (GET_MODE (operands[0]))
30541 : {
30542 : case E_QImode:
30543 : x4 = PATTERN (peep2_next_insn (1));
30544 : switch (pattern733 (x4,
30545 : E_QImode))
30546 : {
30547 : case 0:
30548 : if (pattern1351 (x4,
30549 : E_QImode) != 0
30550 : || !
30551 : #line 3402 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30552 : (peep2_reg_dead_p (3, operands[0])
30553 : && optimize_insn_for_size_p ()))
30554 : return NULL;
30555 : *pmatch_len_ = 2;
30556 : return gen_peephole2_15 (insn, operands);
30557 :
30558 : case 1:
30559 : if (XVECLEN (x4, 0) != 2)
30560 : return NULL;
30561 : x5 = XVECEXP (x4, 0, 0);
30562 : if (GET_CODE (x5) != SET)
30563 : return NULL;
30564 : x6 = XEXP (x5, 1);
30565 : if (GET_CODE (x6) != NEG
30566 : || pattern1355 (x4,
30567 : E_QImode) != 0)
30568 : return NULL;
30569 : *pmatch_len_ = 2;
30570 : return gen_peephole2_171 (insn, operands);
30571 :
30572 : default:
30573 : return NULL;
30574 : }
30575 :
30576 : case E_HImode:
30577 : x4 = PATTERN (peep2_next_insn (1));
30578 : switch (pattern733 (x4,
30579 : E_HImode))
30580 : {
30581 : case 0:
30582 : if (pattern1351 (x4,
30583 : E_HImode) != 0
30584 : || !
30585 : #line 3402 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30586 : (peep2_reg_dead_p (3, operands[0])
30587 : && optimize_insn_for_size_p ()))
30588 : return NULL;
30589 : *pmatch_len_ = 2;
30590 : return gen_peephole2_16 (insn, operands);
30591 :
30592 : case 1:
30593 : if (XVECLEN (x4, 0) != 2)
30594 : return NULL;
30595 : x5 = XVECEXP (x4, 0, 0);
30596 : if (GET_CODE (x5) != SET)
30597 : return NULL;
30598 : x6 = XEXP (x5, 1);
30599 : if (GET_CODE (x6) == NEG
30600 : && pattern1355 (x4,
30601 : E_HImode) == 0)
30602 : {
30603 : *pmatch_len_ = 2;
30604 : res = gen_peephole2_172 (insn, operands);
30605 : if (res != NULL_RTX)
30606 : return res;
30607 : }
30608 : if (peep2_current_count < 4
30609 : || pattern1357 (x4,
30610 : E_HImode) != 0
30611 : || !
30612 : #line 26953 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30613 : (TARGET_CMOVE
30614 : && REGNO (operands[2]) != REGNO (operands[0])
30615 : && REGNO (operands[2]) != REGNO (operands[1])
30616 : && peep2_reg_dead_p (1, operands[1])
30617 : && peep2_reg_dead_p (4, operands[2])
30618 : && !reg_overlap_mentioned_p (operands[0], operands[3])))
30619 : return NULL;
30620 : *pmatch_len_ = 3;
30621 : return gen_peephole2_223 (insn, operands);
30622 :
30623 : default:
30624 : return NULL;
30625 : }
30626 :
30627 : case E_SImode:
30628 : if (!general_reg_operand (operands[0], E_SImode)
30629 : || !general_reg_operand (operands[1], E_SImode))
30630 : return NULL;
30631 : if (peep2_current_count >= 2)
30632 : {
30633 : x4 = PATTERN (peep2_next_insn (1));
30634 : if (pattern1075 (x4,
30635 : E_SImode) == 0
30636 : &&
30637 : #line 3402 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30638 : (peep2_reg_dead_p (3, operands[0])
30639 : && optimize_insn_for_size_p ()))
30640 : {
30641 : *pmatch_len_ = 2;
30642 : res = gen_peephole2_17 (insn, operands);
30643 : if (res != NULL_RTX)
30644 : return res;
30645 : }
30646 : }
30647 : if (!
30648 : #line 3435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30649 : (optimize_size > 1
30650 : && ((REGNO (operands[0]) == AX_REG)
30651 : != (REGNO (operands[1]) == AX_REG))
30652 : && optimize_insn_for_size_p ()
30653 : && peep2_reg_dead_p (1, operands[1])))
30654 : return NULL;
30655 : *pmatch_len_ = 0;
30656 : return gen_peephole2_27 (insn, operands);
30657 :
30658 : case E_DImode:
30659 : if (!general_reg_operand (operands[0], E_DImode)
30660 : || !general_reg_operand (operands[1], E_DImode))
30661 : return NULL;
30662 : if (peep2_current_count >= 2)
30663 : {
30664 : x4 = PATTERN (peep2_next_insn (1));
30665 : if (pattern1075 (x4,
30666 : E_DImode) == 0
30667 : && (
30668 : #line 3402 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30669 : (peep2_reg_dead_p (3, operands[0])
30670 : && optimize_insn_for_size_p ()) &&
30671 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30672 : (TARGET_64BIT)))
30673 : {
30674 : *pmatch_len_ = 2;
30675 : res = gen_peephole2_18 (insn, operands);
30676 : if (res != NULL_RTX)
30677 : return res;
30678 : }
30679 : }
30680 : if ((
30681 : #line 3435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30682 : (optimize_size > 1
30683 : && ((REGNO (operands[0]) == AX_REG)
30684 : != (REGNO (operands[1]) == AX_REG))
30685 : && optimize_insn_for_size_p ()
30686 : && peep2_reg_dead_p (1, operands[1])) &&
30687 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30688 : (TARGET_64BIT)))
30689 : {
30690 : *pmatch_len_ = 0;
30691 : res = gen_peephole2_28 (insn, operands);
30692 : if (res != NULL_RTX)
30693 : return res;
30694 : }
30695 : if (peep2_current_count < 2
30696 : || peep2_current_count < 3
30697 : || peep2_current_count < 4)
30698 : return NULL;
30699 : x4 = PATTERN (peep2_next_insn (1));
30700 : if (GET_CODE (x4) != PARALLEL
30701 : || XVECLEN (x4, 0) != 2)
30702 : return NULL;
30703 : x5 = XVECEXP (x4, 0, 0);
30704 : if (GET_CODE (x5) != SET)
30705 : return NULL;
30706 : x6 = XEXP (x5, 1);
30707 : if (GET_CODE (x6) != ASHIFTRT
30708 : || GET_MODE (x6) != E_DImode)
30709 : return NULL;
30710 : x7 = XEXP (x6, 1);
30711 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 63]
30712 : || pattern1353 (x4) != 0)
30713 : return NULL;
30714 : x8 = PATTERN (peep2_next_insn (2));
30715 : if (GET_CODE (x8) != SET)
30716 : return NULL;
30717 : x9 = XEXP (x8, 0);
30718 : operands[2] = x9;
30719 : if (!general_reg_operand (operands[2], E_DImode))
30720 : return NULL;
30721 : x10 = XEXP (x8, 1);
30722 : if (!rtx_equal_p (x10, operands[1]))
30723 : return NULL;
30724 : x11 = PATTERN (peep2_next_insn (3));
30725 : if (GET_CODE (x11) != SET)
30726 : return NULL;
30727 : x12 = XEXP (x11, 0);
30728 : operands[3] = x12;
30729 : if (!general_reg_operand (operands[3], E_DImode))
30730 : return NULL;
30731 : x13 = XEXP (x11, 1);
30732 : if (!rtx_equal_p (x13, operands[0])
30733 : || !
30734 : #line 5127 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30735 : ((optimize_function_for_size_p (cfun) || TARGET_USE_CLTD)
30736 : && REGNO (operands[2]) == AX_REG
30737 : && REGNO (operands[3]) == DX_REG
30738 : && peep2_reg_dead_p (4, operands[0])
30739 : && !reg_mentioned_p (operands[0], operands[1])
30740 : && !reg_mentioned_p (operands[2], operands[0])))
30741 : return NULL;
30742 : *pmatch_len_ = 3;
30743 : return gen_peephole2_53 (insn, operands);
30744 :
30745 : default:
30746 : return NULL;
30747 : }
30748 :
30749 : case SUBREG:
30750 : case MEM:
30751 : if (peep2_current_count < 2
30752 : || peep2_current_count < 3)
30753 : return NULL;
30754 : switch (GET_MODE (operands[0]))
30755 : {
30756 : case E_SImode:
30757 : x4 = PATTERN (peep2_next_insn (1));
30758 : switch (pattern960 (x4,
30759 : E_SImode))
30760 : {
30761 : case 0:
30762 : if (!(
30763 : #line 5050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30764 : (REGNO (operands[1]) != REGNO (operands[2])
30765 : && INTVAL (operands[4]) == (4 * BITS_PER_UNIT - 1)
30766 : && peep2_reg_dead_p (2, operands[1])
30767 : && peep2_reg_dead_p (4, operands[2])
30768 : && !reg_mentioned_p (operands[2], operands[3])) &&
30769 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30770 : (!TARGET_64BIT)))
30771 : return NULL;
30772 : *pmatch_len_ = 3;
30773 : return gen_peephole2_49 (insn, operands);
30774 :
30775 : case 1:
30776 : if (!(
30777 : #line 5068 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30778 : (/* cltd is shorter than sarl $31, %eax */
30779 : !optimize_function_for_size_p (cfun)
30780 : && REGNO (operands[1]) == AX_REG
30781 : && REGNO (operands[2]) == DX_REG
30782 : && INTVAL (operands[4]) == (4 * BITS_PER_UNIT - 1)
30783 : && peep2_reg_dead_p (2, operands[1])
30784 : && peep2_reg_dead_p (3, operands[2])
30785 : && !reg_mentioned_p (operands[2], operands[3])) &&
30786 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30787 : (!TARGET_64BIT)))
30788 : return NULL;
30789 : *pmatch_len_ = 2;
30790 : return gen_peephole2_51 (insn, operands);
30791 :
30792 : default:
30793 : return NULL;
30794 : }
30795 :
30796 : case E_DImode:
30797 : x4 = PATTERN (peep2_next_insn (1));
30798 : switch (pattern960 (x4,
30799 : E_DImode))
30800 : {
30801 : case 0:
30802 : if (!(
30803 : #line 5050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30804 : (REGNO (operands[1]) != REGNO (operands[2])
30805 : && INTVAL (operands[4]) == (8 * BITS_PER_UNIT - 1)
30806 : && peep2_reg_dead_p (2, operands[1])
30807 : && peep2_reg_dead_p (4, operands[2])
30808 : && !reg_mentioned_p (operands[2], operands[3])) &&
30809 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30810 : (TARGET_64BIT)))
30811 : return NULL;
30812 : *pmatch_len_ = 3;
30813 : return gen_peephole2_50 (insn, operands);
30814 :
30815 : case 1:
30816 : if (!(
30817 : #line 5068 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30818 : (/* cltd is shorter than sarl $31, %eax */
30819 : !optimize_function_for_size_p (cfun)
30820 : && REGNO (operands[1]) == AX_REG
30821 : && REGNO (operands[2]) == DX_REG
30822 : && INTVAL (operands[4]) == (8 * BITS_PER_UNIT - 1)
30823 : && peep2_reg_dead_p (2, operands[1])
30824 : && peep2_reg_dead_p (3, operands[2])
30825 : && !reg_mentioned_p (operands[2], operands[3])) &&
30826 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30827 : (TARGET_64BIT)))
30828 : return NULL;
30829 : *pmatch_len_ = 2;
30830 : return gen_peephole2_52 (insn, operands);
30831 :
30832 : default:
30833 : return NULL;
30834 : }
30835 :
30836 : default:
30837 : return NULL;
30838 : }
30839 :
30840 : default:
30841 : return NULL;
30842 : }
30843 : }
30844 :
30845 : rtx_insn *
30846 : peephole2_11 (rtx x1 ATTRIBUTE_UNUSED,
30847 : rtx_insn *insn ATTRIBUTE_UNUSED,
30848 : int *pmatch_len_ ATTRIBUTE_UNUSED)
30849 : {
30850 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
30851 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
30852 : rtx x10, x11, x12, x13, x14;
30853 : rtx_insn *res ATTRIBUTE_UNUSED;
30854 : x2 = PATTERN (peep2_next_insn (1));
30855 : x3 = XEXP (x2, 1);
30856 : if (GET_CODE (x3) != IOR
30857 : || GET_MODE (x3) != E_SImode)
30858 : return NULL;
30859 : x4 = XEXP (x3, 0);
30860 : if (GET_CODE (x4) != AND
30861 : || GET_MODE (x4) != E_SImode)
30862 : return NULL;
30863 : x5 = XEXP (x4, 1);
30864 : if (GET_CODE (x5) != CONST_INT
30865 : || XWINT (x5, 0) != -65536L)
30866 : return NULL;
30867 : x6 = XEXP (x3, 1);
30868 : if (GET_CODE (x6) != LSHIFTRT
30869 : || GET_MODE (x6) != E_SImode)
30870 : return NULL;
30871 : x7 = XEXP (x6, 0);
30872 : if (GET_CODE (x7) != BSWAP
30873 : || GET_MODE (x7) != E_SImode)
30874 : return NULL;
30875 : x8 = XEXP (x6, 1);
30876 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
30877 : return NULL;
30878 : x9 = XEXP (x4, 0);
30879 : if (!rtx_equal_p (x9, operands[0]))
30880 : return NULL;
30881 : x10 = XEXP (x7, 0);
30882 : if (!rtx_equal_p (x10, operands[0]))
30883 : return NULL;
30884 : x11 = XEXP (x2, 0);
30885 : if (!rtx_equal_p (x11, operands[0]))
30886 : return NULL;
30887 : x12 = PATTERN (peep2_next_insn (2));
30888 : if (GET_CODE (x12) != SET)
30889 : return NULL;
30890 : x13 = XEXP (x12, 0);
30891 : operands[2] = x13;
30892 : if (!general_reg_operand (operands[2], E_SImode))
30893 : return NULL;
30894 : x14 = XEXP (x12, 1);
30895 : if (!rtx_equal_p (x14, operands[0])
30896 : || !
30897 : #line 23046 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30898 : (!(TARGET_USE_XCHGB ||
30899 : TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
30900 : && peep2_regno_dead_p (0, FLAGS_REG)
30901 : && peep2_reg_dead_p(3, operands[0])))
30902 : return NULL;
30903 : *pmatch_len_ = 2;
30904 : return gen_peephole2_212 (insn, operands);
30905 : }
30906 :
30907 : rtx_insn *
30908 : peephole2_12 (rtx x1 ATTRIBUTE_UNUSED,
30909 : rtx_insn *insn ATTRIBUTE_UNUSED,
30910 : int *pmatch_len_ ATTRIBUTE_UNUSED)
30911 : {
30912 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
30913 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
30914 : rtx x10, x11, x12, x13, x14;
30915 : rtx_insn *res ATTRIBUTE_UNUSED;
30916 : x2 = XEXP (x1, 1);
30917 : operands[1] = x2;
30918 : if (register_operand (operands[0], E_SImode))
30919 : {
30920 : res = peephole2_10 (x1, insn, pmatch_len_);
30921 : if (res != NULL_RTX)
30922 : return res;
30923 : }
30924 : if (peep2_current_count < 2
30925 : || peep2_current_count < 3
30926 : || !general_reg_operand (operands[0], E_SImode))
30927 : return NULL;
30928 : x3 = PATTERN (peep2_next_insn (1));
30929 : if (GET_CODE (x3) == PARALLEL
30930 : && XVECLEN (x3, 0) == 2)
30931 : {
30932 : x4 = XVECEXP (x3, 0, 0);
30933 : if (GET_CODE (x4) == SET)
30934 : {
30935 : if (memory_operand (operands[1], E_SImode))
30936 : {
30937 : switch (pattern1205 (x3,
30938 : E_SImode,
30939 : E_DImode))
30940 : {
30941 : case 0:
30942 : if (
30943 : #line 8720 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30944 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
30945 : && peep2_reg_dead_p (3, operands[0])
30946 : && !reg_overlap_mentioned_p (operands[0], operands[1])
30947 : && !reg_overlap_mentioned_p (operands[0], operands[2])))
30948 : {
30949 : *pmatch_len_ = 2;
30950 : res = gen_peephole2_76 (insn, operands);
30951 : if (res != NULL_RTX)
30952 : return res;
30953 : }
30954 : break;
30955 :
30956 : case 1:
30957 : if (
30958 : #line 8747 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30959 : (TARGET_APX_NDD
30960 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
30961 : && peep2_reg_dead_p (3, operands[0])
30962 : && !reg_overlap_mentioned_p (operands[0], operands[1])
30963 : && !reg_overlap_mentioned_p (operands[0], operands[2])))
30964 : {
30965 : *pmatch_len_ = 2;
30966 : res = gen_peephole2_80 (insn, operands);
30967 : if (res != NULL_RTX)
30968 : return res;
30969 : }
30970 : break;
30971 :
30972 : case 2:
30973 : if (
30974 : #line 9250 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30975 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
30976 : && peep2_reg_dead_p (3, operands[0])
30977 : && !reg_overlap_mentioned_p (operands[0], operands[1])
30978 : && !reg_overlap_mentioned_p (operands[0], operands[2])))
30979 : {
30980 : *pmatch_len_ = 2;
30981 : res = gen_peephole2_96 (insn, operands);
30982 : if (res != NULL_RTX)
30983 : return res;
30984 : }
30985 : break;
30986 :
30987 : case 3:
30988 : x5 = PATTERN (peep2_next_insn (2));
30989 : x6 = XEXP (x5, 0);
30990 : if (rtx_equal_p (x6, operands[1])
30991 : &&
30992 : #line 9306 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30993 : (TARGET_APX_NDD
30994 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
30995 : && peep2_reg_dead_p (3, operands[0])
30996 : && !reg_overlap_mentioned_p (operands[0], operands[1])
30997 : && !reg_overlap_mentioned_p (operands[0], operands[2])))
30998 : {
30999 : *pmatch_len_ = 2;
31000 : res = gen_peephole2_98 (insn, operands);
31001 : if (res != NULL_RTX)
31002 : return res;
31003 : }
31004 : if (rtx_equal_p (x6, operands[2])
31005 : &&
31006 : #line 9361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31007 : (TARGET_APX_NDD
31008 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31009 : && peep2_reg_dead_p (3, operands[0])
31010 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31011 : && !reg_overlap_mentioned_p (operands[0], operands[2])))
31012 : {
31013 : *pmatch_len_ = 2;
31014 : res = gen_peephole2_100 (insn, operands);
31015 : if (res != NULL_RTX)
31016 : return res;
31017 : }
31018 : break;
31019 :
31020 : case 4:
31021 : if (
31022 : #line 9918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31023 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31024 : && peep2_reg_dead_p (3, operands[0])
31025 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31026 : && !reg_overlap_mentioned_p (operands[0], operands[2])))
31027 : {
31028 : *pmatch_len_ = 2;
31029 : res = gen_peephole2_112 (insn, operands);
31030 : if (res != NULL_RTX)
31031 : return res;
31032 : }
31033 : break;
31034 :
31035 : case 5:
31036 : if (
31037 : #line 9963 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31038 : (TARGET_APX_NDD
31039 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31040 : && peep2_reg_dead_p (3, operands[0])
31041 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31042 : && !reg_overlap_mentioned_p (operands[0], operands[2])))
31043 : {
31044 : *pmatch_len_ = 2;
31045 : res = gen_peephole2_114 (insn, operands);
31046 : if (res != NULL_RTX)
31047 : return res;
31048 : }
31049 : break;
31050 :
31051 : case 6:
31052 : if (
31053 : #line 10330 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31054 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31055 : && peep2_reg_dead_p (3, operands[0])
31056 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31057 : && !reg_overlap_mentioned_p (operands[0], operands[2])))
31058 : {
31059 : *pmatch_len_ = 2;
31060 : res = gen_peephole2_126 (insn, operands);
31061 : if (res != NULL_RTX)
31062 : return res;
31063 : }
31064 : break;
31065 :
31066 : case 7:
31067 : if (
31068 : #line 8865 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31069 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31070 : && peep2_reg_dead_p (3, operands[0])
31071 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31072 : && !reg_overlap_mentioned_p (operands[0], operands[2])))
31073 : {
31074 : *pmatch_len_ = 2;
31075 : res = gen_peephole2_88 (insn, operands);
31076 : if (res != NULL_RTX)
31077 : return res;
31078 : }
31079 : break;
31080 :
31081 : case 8:
31082 : if (
31083 : #line 8891 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31084 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31085 : && peep2_reg_dead_p (3, operands[0])
31086 : && peep2_reg_dead_p (4, operands[5])
31087 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31088 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31089 : && !reg_overlap_mentioned_p (operands[5], operands[1])))
31090 : {
31091 : *pmatch_len_ = 3;
31092 : res = gen_peephole2_92 (insn, operands);
31093 : if (res != NULL_RTX)
31094 : return res;
31095 : }
31096 : break;
31097 :
31098 : case 9:
31099 : if (
31100 : #line 9530 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31101 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31102 : && peep2_reg_dead_p (3, operands[0])
31103 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31104 : && !reg_overlap_mentioned_p (operands[0], operands[2])))
31105 : {
31106 : *pmatch_len_ = 2;
31107 : res = gen_peephole2_106 (insn, operands);
31108 : if (res != NULL_RTX)
31109 : return res;
31110 : }
31111 : break;
31112 :
31113 : case 10:
31114 : if (
31115 : #line 9556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31116 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31117 : && peep2_reg_dead_p (3, operands[0])
31118 : && peep2_reg_dead_p (4, operands[5])
31119 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31120 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31121 : && !reg_overlap_mentioned_p (operands[5], operands[1])))
31122 : {
31123 : *pmatch_len_ = 3;
31124 : res = gen_peephole2_110 (insn, operands);
31125 : if (res != NULL_RTX)
31126 : return res;
31127 : }
31128 : break;
31129 :
31130 : default:
31131 : break;
31132 : }
31133 : }
31134 : if (peep2_current_count >= 4
31135 : && pattern1207 (x3,
31136 : E_SImode) == 0
31137 : &&
31138 : #line 14622 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31139 : (REGNO (operands[0]) != REGNO (operands[2])
31140 : && !reg_mentioned_p (operands[0], operands[1])
31141 : && !reg_mentioned_p (operands[2], operands[1])))
31142 : {
31143 : *pmatch_len_ = 3;
31144 : res = gen_peephole2_167 (insn, operands);
31145 : if (res != NULL_RTX)
31146 : return res;
31147 : }
31148 : if (general_reg_operand (operands[1], E_SImode))
31149 : {
31150 : x7 = XEXP (x4, 1);
31151 : if (GET_CODE (x7) == NEG
31152 : && GET_MODE (x7) == E_SImode
31153 : && pattern1353 (x3) == 0)
31154 : {
31155 : x5 = PATTERN (peep2_next_insn (2));
31156 : if (GET_CODE (x5) == SET
31157 : && pattern1354 (x5) == 0)
31158 : {
31159 : *pmatch_len_ = 2;
31160 : res = gen_peephole2_173 (insn, operands);
31161 : if (res != NULL_RTX)
31162 : return res;
31163 : }
31164 : }
31165 : }
31166 : }
31167 : }
31168 : if (GET_CODE (x3) != SET)
31169 : return NULL;
31170 : if (register_operand (operands[1], E_SImode))
31171 : {
31172 : res = peephole2_11 (x1, insn, pmatch_len_);
31173 : if (res != NULL_RTX)
31174 : return res;
31175 : }
31176 : if (!immediate_operand (operands[1], E_SImode))
31177 : return NULL;
31178 : switch (pattern961 (x3,
31179 : E_DImode,
31180 : E_SImode))
31181 : {
31182 : case 0:
31183 : if (!(
31184 : #line 11428 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31185 : (REGNO (operands[3]) != AX_REG
31186 : && REGNO (operands[0]) != REGNO (operands[2])
31187 : && REGNO (operands[0]) != REGNO (operands[3])
31188 : && (REGNO (operands[0]) == REGNO (operands[4])
31189 : || REGNO (operands[0]) == DX_REG
31190 : || peep2_reg_dead_p (3, operands[0]))) &&
31191 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31192 : (!TARGET_64BIT)))
31193 : return NULL;
31194 : *pmatch_len_ = 2;
31195 : return gen_peephole2_130 (insn, operands);
31196 :
31197 : case 1:
31198 : if (!(
31199 : #line 11450 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31200 : (REGNO (operands[3]) != DX_REG
31201 : && REGNO (operands[0]) != REGNO (operands[2])
31202 : && REGNO (operands[0]) != REGNO (operands[3])
31203 : && (REGNO (operands[0]) == REGNO (operands[4])
31204 : || REGNO (operands[0]) == REGNO (operands[5])
31205 : || peep2_reg_dead_p (3, operands[0]))
31206 : && (REGNO (operands[2]) == REGNO (operands[4])
31207 : || REGNO (operands[2]) == REGNO (operands[5])
31208 : || peep2_reg_dead_p (3, operands[2]))) &&
31209 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31210 : (!TARGET_64BIT)))
31211 : return NULL;
31212 : *pmatch_len_ = 2;
31213 : return gen_peephole2_132 (insn, operands);
31214 :
31215 : case 2:
31216 : x5 = PATTERN (peep2_next_insn (2));
31217 : x8 = XVECEXP (x5, 0, 1);
31218 : x9 = XEXP (x8, 0);
31219 : if (!rtx_equal_p (x9, operands[2]))
31220 : return NULL;
31221 : x10 = XVECEXP (x5, 0, 0);
31222 : x11 = XEXP (x10, 1);
31223 : switch (GET_CODE (x11))
31224 : {
31225 : case SMUL_HIGHPART:
31226 : if (pattern1806 (x11) != 0
31227 : || !
31228 : #line 11589 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31229 : (REGNO (operands[3]) != AX_REG
31230 : && REGNO (operands[0]) != REGNO (operands[2])
31231 : && REGNO (operands[0]) != REGNO (operands[3])
31232 : && (REGNO (operands[0]) == REGNO (operands[4])
31233 : || peep2_reg_dead_p (3, operands[0]))))
31234 : return NULL;
31235 : *pmatch_len_ = 2;
31236 : return gen_peephole2_134 (insn, operands);
31237 :
31238 : case UMUL_HIGHPART:
31239 : if (pattern1806 (x11) != 0
31240 : || !
31241 : #line 11589 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31242 : (REGNO (operands[3]) != AX_REG
31243 : && REGNO (operands[0]) != REGNO (operands[2])
31244 : && REGNO (operands[0]) != REGNO (operands[3])
31245 : && (REGNO (operands[0]) == REGNO (operands[4])
31246 : || peep2_reg_dead_p (3, operands[0]))))
31247 : return NULL;
31248 : *pmatch_len_ = 2;
31249 : return gen_peephole2_135 (insn, operands);
31250 :
31251 : case ZERO_EXTEND:
31252 : if (GET_MODE (x11) != E_DImode
31253 : || !general_reg_operand (operands[4], E_DImode))
31254 : return NULL;
31255 : x12 = XEXP (x11, 0);
31256 : if (GET_MODE (x12) != E_SImode)
31257 : return NULL;
31258 : switch (GET_CODE (x12))
31259 : {
31260 : case SMUL_HIGHPART:
31261 : x13 = XEXP (x12, 0);
31262 : if (!rtx_equal_p (x13, operands[2]))
31263 : return NULL;
31264 : x14 = XEXP (x12, 1);
31265 : if (!rtx_equal_p (x14, operands[0])
31266 : || !
31267 : #line 11610 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31268 : (TARGET_64BIT
31269 : && REGNO (operands[3]) != AX_REG
31270 : && REGNO (operands[0]) != REGNO (operands[2])
31271 : && REGNO (operands[2]) != REGNO (operands[3])
31272 : && REGNO (operands[0]) != REGNO (operands[3])
31273 : && (REGNO (operands[0]) == REGNO (operands[4])
31274 : || peep2_reg_dead_p (3, operands[0]))))
31275 : return NULL;
31276 : *pmatch_len_ = 2;
31277 : return gen_peephole2_138 (insn, operands);
31278 :
31279 : case UMUL_HIGHPART:
31280 : x13 = XEXP (x12, 0);
31281 : if (!rtx_equal_p (x13, operands[2]))
31282 : return NULL;
31283 : x14 = XEXP (x12, 1);
31284 : if (!rtx_equal_p (x14, operands[0])
31285 : || !
31286 : #line 11610 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31287 : (TARGET_64BIT
31288 : && REGNO (operands[3]) != AX_REG
31289 : && REGNO (operands[0]) != REGNO (operands[2])
31290 : && REGNO (operands[2]) != REGNO (operands[3])
31291 : && REGNO (operands[0]) != REGNO (operands[3])
31292 : && (REGNO (operands[0]) == REGNO (operands[4])
31293 : || peep2_reg_dead_p (3, operands[0]))))
31294 : return NULL;
31295 : *pmatch_len_ = 2;
31296 : return gen_peephole2_139 (insn, operands);
31297 :
31298 : default:
31299 : return NULL;
31300 : }
31301 :
31302 : default:
31303 : return NULL;
31304 : }
31305 :
31306 : default:
31307 : return NULL;
31308 : }
31309 : }
31310 :
31311 : rtx_insn *
31312 : peephole2_21 (rtx x1 ATTRIBUTE_UNUSED,
31313 : rtx_insn *insn ATTRIBUTE_UNUSED,
31314 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31315 : {
31316 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31317 : rtx x2, x3, x4, x5, x6;
31318 : rtx_insn *res ATTRIBUTE_UNUSED;
31319 : x2 = PATTERN (peep2_next_insn (1));
31320 : if (GET_CODE (x2) != SET)
31321 : return NULL;
31322 : x3 = XEXP (x2, 1);
31323 : if (!binary_fp_operator (x3, E_VOIDmode))
31324 : return NULL;
31325 : operands[2] = x3;
31326 : x4 = XEXP (x2, 0);
31327 : if (!rtx_equal_p (x4, operands[0]))
31328 : return NULL;
31329 : x5 = XEXP (x3, 0);
31330 : switch (GET_CODE (x5))
31331 : {
31332 : case REG:
31333 : if (!rtx_equal_p (x5, operands[0]))
31334 : return NULL;
31335 : x6 = XEXP (x3, 1);
31336 : operands[3] = x6;
31337 : if (!memory_operand (operands[3], E_VOIDmode)
31338 : || !
31339 : #line 27295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31340 : (REGNO (operands[0]) != REGNO (operands[1])))
31341 : return NULL;
31342 : *pmatch_len_ = 1;
31343 : return gen_peephole2_231 (insn, operands);
31344 :
31345 : case SUBREG:
31346 : case MEM:
31347 : operands[3] = x5;
31348 : if (!memory_operand (operands[3], E_VOIDmode))
31349 : return NULL;
31350 : x6 = XEXP (x3, 1);
31351 : if (!rtx_equal_p (x6, operands[0])
31352 : || !
31353 : #line 27317 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31354 : (REGNO (operands[0]) != REGNO (operands[1])))
31355 : return NULL;
31356 : *pmatch_len_ = 1;
31357 : return gen_peephole2_232 (insn, operands);
31358 :
31359 : default:
31360 : return NULL;
31361 : }
31362 : }
31363 :
31364 : rtx_insn *
31365 : peephole2_23 (rtx x1 ATTRIBUTE_UNUSED,
31366 : rtx_insn *insn ATTRIBUTE_UNUSED,
31367 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31368 : {
31369 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31370 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
31371 : rtx x10, x11, x12;
31372 : rtx_insn *res ATTRIBUTE_UNUSED;
31373 : x2 = PATTERN (peep2_next_insn (1));
31374 : if (pattern421 (x2,
31375 : CALL,
31376 : 2) != 0)
31377 : return NULL;
31378 : x3 = XVECEXP (x2, 0, 0);
31379 : x4 = XEXP (x3, 1);
31380 : x5 = XEXP (x4, 0);
31381 : if (GET_CODE (x5) != MEM
31382 : || GET_MODE (x5) != E_QImode)
31383 : return NULL;
31384 : x6 = XVECEXP (x2, 0, 1);
31385 : if (pattern1266 (x6) != 0)
31386 : return NULL;
31387 : x7 = XEXP (x6, 0);
31388 : if (GET_CODE (x7) != REG
31389 : || REGNO (x7) != 7
31390 : || GET_MODE (x7) != E_SImode)
31391 : return NULL;
31392 : x8 = XEXP (x3, 0);
31393 : operands[2] = x8;
31394 : x9 = XEXP (x4, 1);
31395 : operands[3] = x9;
31396 : x10 = XEXP (x6, 1);
31397 : x11 = XEXP (x10, 1);
31398 : operands[4] = x11;
31399 : if (!immediate_operand (operands[4], E_SImode))
31400 : return NULL;
31401 : x12 = XEXP (x5, 0);
31402 : if (!rtx_equal_p (x12, operands[0])
31403 : || !
31404 : #line 20840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31405 : (!TARGET_64BIT && SIBLING_CALL_P (peep2_next_insn (1))
31406 : && !reg_mentioned_p (operands[0],
31407 : CALL_INSN_FUNCTION_USAGE (peep2_next_insn (1)))))
31408 : return NULL;
31409 : *pmatch_len_ = 1;
31410 : return gen_peephole2_208 (insn, operands);
31411 : }
31412 :
31413 : rtx_insn *
31414 : peephole2_26 (rtx x1 ATTRIBUTE_UNUSED,
31415 : rtx_insn *insn ATTRIBUTE_UNUSED,
31416 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31417 : {
31418 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31419 : rtx x2, x3, x4, x5, x6;
31420 : rtx_insn *res ATTRIBUTE_UNUSED;
31421 : if (!memory_operand (operands[1], E_SImode)
31422 : || !register_operand (operands[0], E_SImode))
31423 : return NULL;
31424 : x2 = PATTERN (peep2_next_insn (1));
31425 : switch (GET_CODE (x2))
31426 : {
31427 : case PARALLEL:
31428 : if (XVECLEN (x2, 0) != 2)
31429 : return NULL;
31430 : x3 = XVECEXP (x2, 0, 0);
31431 : if (GET_CODE (x3) != SET)
31432 : return NULL;
31433 : x4 = PATTERN (peep2_next_insn (2));
31434 : if (GET_CODE (x4) != SET)
31435 : return NULL;
31436 : x5 = XEXP (x3, 1);
31437 : switch (GET_CODE (x5))
31438 : {
31439 : case PLUS:
31440 : case MINUS:
31441 : case AND:
31442 : case IOR:
31443 : case XOR:
31444 : if (peep2_current_count < 4)
31445 : return NULL;
31446 : operands[3] = x5;
31447 : res = peephole2_25 (x1, insn, pmatch_len_);
31448 : if (res != NULL_RTX)
31449 : return res;
31450 : if (GET_CODE (x5) != XOR
31451 : || pattern1362 (x2,
31452 : E_SImode) != 0
31453 : || pattern1832 (x4,
31454 : E_SImode) != 0
31455 : || !
31456 : #line 28843 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31457 : (TARGET_APX_NDD
31458 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31459 : && REGNO (operands[3]) == REGNO (operands[0])
31460 : && (rtx_equal_p (operands[0], operands[5])
31461 : ? rtx_equal_p (operands[2], operands[6])
31462 : : rtx_equal_p (operands[2], operands[5])
31463 : && rtx_equal_p (operands[0], operands[6]))
31464 : && peep2_reg_dead_p (3, operands[4])
31465 : && peep2_reg_dead_p (4, operands[0])
31466 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31467 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31468 : && (SImode != QImode
31469 : || immediate_operand (operands[2], QImode)
31470 : || any_QIreg_operand (operands[2], QImode))))
31471 : return NULL;
31472 : *pmatch_len_ = 3;
31473 : return gen_peephole2_341 (insn, operands);
31474 :
31475 : case COMPARE:
31476 : if (pattern1267 (x2,
31477 : E_SImode) != 0
31478 : || pattern1516 (x2) != 0)
31479 : return NULL;
31480 : x6 = XEXP (x4, 0);
31481 : if (rtx_equal_p (x6, operands[1])
31482 : &&
31483 : #line 28673 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31484 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31485 : && peep2_reg_dead_p (3, operands[0])
31486 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31487 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31488 : && ix86_match_ccmode (peep2_next_insn (1),
31489 : (GET_CODE (operands[3]) == PLUS
31490 : || GET_CODE (operands[3]) == MINUS)
31491 : ? CCGOCmode : CCNOmode)))
31492 : {
31493 : *pmatch_len_ = 2;
31494 : res = gen_peephole2_321 (insn, operands);
31495 : if (res != NULL_RTX)
31496 : return res;
31497 : }
31498 : if (peep2_current_count < 4
31499 : || pattern1833 (x6,
31500 : E_SImode) != 0
31501 : || !
31502 : #line 28996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31503 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31504 : && peep2_reg_dead_p (3, operands[0])
31505 : && peep2_reg_dead_p (4, operands[4])
31506 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31507 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31508 : && !reg_overlap_mentioned_p (operands[4], operands[1])
31509 : && ix86_match_ccmode (peep2_next_insn (1),
31510 : (GET_CODE (operands[3]) == PLUS
31511 : || GET_CODE (operands[3]) == MINUS)
31512 : ? CCGOCmode : CCNOmode)))
31513 : return NULL;
31514 : *pmatch_len_ = 3;
31515 : return gen_peephole2_353 (insn, operands);
31516 :
31517 : default:
31518 : return NULL;
31519 : }
31520 :
31521 : case SET:
31522 : if (pattern852 (x2,
31523 : E_SImode) != 0
31524 : || !
31525 : #line 29032 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31526 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31527 : && (REGNO (operands[4]) == REGNO (operands[0])
31528 : || REGNO (operands[4]) == REGNO (operands[3]))
31529 : && (rtx_equal_p (operands[REGNO (operands[4]) == REGNO (operands[0])
31530 : ? 3 : 0], operands[5])
31531 : ? rtx_equal_p (operands[2], operands[6])
31532 : : rtx_equal_p (operands[2], operands[5])
31533 : && rtx_equal_p (operands[REGNO (operands[4]) == REGNO (operands[0])
31534 : ? 3 : 0], operands[6]))
31535 : && peep2_reg_dead_p (4, operands[4])
31536 : && peep2_reg_dead_p (5, operands[REGNO (operands[4]) == REGNO (operands[0])
31537 : ? 3 : 0])
31538 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31539 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31540 : && !reg_overlap_mentioned_p (operands[3], operands[0])
31541 : && !reg_overlap_mentioned_p (operands[3], operands[1])
31542 : && !reg_overlap_mentioned_p (operands[3], operands[2])
31543 : && (SImode != QImode
31544 : || immediate_operand (operands[2], QImode)
31545 : || any_QIreg_operand (operands[2], QImode))))
31546 : return NULL;
31547 : *pmatch_len_ = 4;
31548 : return gen_peephole2_357 (insn, operands);
31549 :
31550 : default:
31551 : return NULL;
31552 : }
31553 : }
31554 :
31555 : rtx_insn *
31556 : peephole2_30 (rtx x1 ATTRIBUTE_UNUSED,
31557 : rtx_insn *insn ATTRIBUTE_UNUSED,
31558 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31559 : {
31560 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31561 : rtx x2, x3, x4, x5, x6, x7;
31562 : rtx_insn *res ATTRIBUTE_UNUSED;
31563 : x2 = XEXP (x1, 1);
31564 : x3 = XEXP (x2, 0);
31565 : switch (GET_CODE (x3))
31566 : {
31567 : case NE:
31568 : case EQ:
31569 : case GE:
31570 : case GT:
31571 : case LE:
31572 : case LT:
31573 : case LTGT:
31574 : case GEU:
31575 : case GTU:
31576 : case LEU:
31577 : case LTU:
31578 : case UNORDERED:
31579 : case ORDERED:
31580 : case UNEQ:
31581 : case UNGE:
31582 : case UNGT:
31583 : case UNLE:
31584 : case UNLT:
31585 : operands[1] = x3;
31586 : switch (pattern247 (x1))
31587 : {
31588 : case 0:
31589 : switch (GET_MODE (operands[0]))
31590 : {
31591 : case E_HImode:
31592 : if (pattern1208 (x2,
31593 : E_HImode) != 0
31594 : || !
31595 : #line 26885 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31596 : (TARGET_CMOVE && TARGET_AVOID_MEM_OPND_FOR_CMOVE
31597 : && (MEM_P (operands[2]) || MEM_P (operands[3]))
31598 : && optimize_insn_for_speed_p ()))
31599 : return NULL;
31600 : *pmatch_len_ = 0;
31601 : return gen_peephole2_219 (insn, operands);
31602 :
31603 : case E_SImode:
31604 : if (pattern1208 (x2,
31605 : E_SImode) != 0
31606 : || !
31607 : #line 26885 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31608 : (TARGET_CMOVE && TARGET_AVOID_MEM_OPND_FOR_CMOVE
31609 : && (MEM_P (operands[2]) || MEM_P (operands[3]))
31610 : && optimize_insn_for_speed_p ()))
31611 : return NULL;
31612 : *pmatch_len_ = 0;
31613 : return gen_peephole2_220 (insn, operands);
31614 :
31615 : case E_DImode:
31616 : if (pattern1208 (x2,
31617 : E_DImode) != 0
31618 : || !(
31619 : #line 26885 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31620 : (TARGET_CMOVE && TARGET_AVOID_MEM_OPND_FOR_CMOVE
31621 : && (MEM_P (operands[2]) || MEM_P (operands[3]))
31622 : && optimize_insn_for_speed_p ()) &&
31623 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31624 : (TARGET_64BIT)))
31625 : return NULL;
31626 : *pmatch_len_ = 0;
31627 : return gen_peephole2_221 (insn, operands);
31628 :
31629 : case E_SFmode:
31630 : if (!general_reg_operand (operands[0], E_SFmode)
31631 : || pattern1269 (x2,
31632 : E_SFmode) != 0
31633 : || !
31634 : #line 27137 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31635 : ((SFmode != DFmode || TARGET_64BIT)
31636 : && TARGET_80387 && TARGET_CMOVE
31637 : && TARGET_AVOID_MEM_OPND_FOR_CMOVE
31638 : && (MEM_P (operands[2]) || MEM_P (operands[3]))
31639 : && optimize_insn_for_speed_p ()))
31640 : return NULL;
31641 : *pmatch_len_ = 0;
31642 : return gen_peephole2_229 (insn, operands);
31643 :
31644 : case E_DFmode:
31645 : if (!general_reg_operand (operands[0], E_DFmode)
31646 : || pattern1269 (x2,
31647 : E_DFmode) != 0
31648 : || !
31649 : #line 27137 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31650 : ((DFmode != DFmode || TARGET_64BIT)
31651 : && TARGET_80387 && TARGET_CMOVE
31652 : && TARGET_AVOID_MEM_OPND_FOR_CMOVE
31653 : && (MEM_P (operands[2]) || MEM_P (operands[3]))
31654 : && optimize_insn_for_speed_p ()))
31655 : return NULL;
31656 : *pmatch_len_ = 0;
31657 : return gen_peephole2_230 (insn, operands);
31658 :
31659 : default:
31660 : return NULL;
31661 : }
31662 :
31663 : case 1:
31664 : if (!register_operand (operands[0], E_DImode)
31665 : || GET_MODE (x2) != E_DImode
31666 : || !ix86_comparison_operator (operands[1], E_VOIDmode))
31667 : return NULL;
31668 : x4 = XEXP (x2, 1);
31669 : x5 = XEXP (x4, 0);
31670 : operands[2] = x5;
31671 : if (!nonimmediate_operand (operands[2], E_SImode))
31672 : return NULL;
31673 : x6 = XEXP (x2, 2);
31674 : x7 = XEXP (x6, 0);
31675 : operands[3] = x7;
31676 : if (!nonimmediate_operand (operands[3], E_SImode)
31677 : || !
31678 : #line 26915 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31679 : (TARGET_64BIT
31680 : && TARGET_CMOVE && TARGET_AVOID_MEM_OPND_FOR_CMOVE
31681 : && (MEM_P (operands[2]) || MEM_P (operands[3]))
31682 : && optimize_insn_for_speed_p ()))
31683 : return NULL;
31684 : *pmatch_len_ = 0;
31685 : return gen_peephole2_222 (insn, operands);
31686 :
31687 : default:
31688 : return NULL;
31689 : }
31690 :
31691 : default:
31692 : return NULL;
31693 : }
31694 : }
31695 :
31696 : rtx_insn *
31697 : peephole2_37 (rtx x1 ATTRIBUTE_UNUSED,
31698 : rtx_insn *insn ATTRIBUTE_UNUSED,
31699 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31700 : {
31701 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31702 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
31703 : rtx x10, x11;
31704 : rtx_insn *res ATTRIBUTE_UNUSED;
31705 : x2 = XEXP (x1, 1);
31706 : if (XWINT (x2, 0) == -1L)
31707 : {
31708 : switch (GET_MODE (operands[0]))
31709 : {
31710 : case E_HImode:
31711 : if (general_reg_operand (operands[0], E_HImode)
31712 : &&
31713 : #line 29199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31714 : ((TARGET_MOVE_M1_VIA_OR || optimize_insn_for_size_p ())
31715 : && peep2_regno_dead_p (0, FLAGS_REG)))
31716 : {
31717 : *pmatch_len_ = 0;
31718 : res = gen_peephole2_367 (insn, operands);
31719 : if (res != NULL_RTX)
31720 : return res;
31721 : }
31722 : break;
31723 :
31724 : case E_SImode:
31725 : if (general_reg_operand (operands[0], E_SImode)
31726 : &&
31727 : #line 29199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31728 : ((TARGET_MOVE_M1_VIA_OR || optimize_insn_for_size_p ())
31729 : && peep2_regno_dead_p (0, FLAGS_REG)))
31730 : {
31731 : *pmatch_len_ = 0;
31732 : res = gen_peephole2_368 (insn, operands);
31733 : if (res != NULL_RTX)
31734 : return res;
31735 : }
31736 : break;
31737 :
31738 : case E_DImode:
31739 : if (general_reg_operand (operands[0], E_DImode)
31740 : && (
31741 : #line 29199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31742 : ((TARGET_MOVE_M1_VIA_OR || optimize_insn_for_size_p ())
31743 : && peep2_regno_dead_p (0, FLAGS_REG)) &&
31744 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31745 : (TARGET_64BIT)))
31746 : {
31747 : *pmatch_len_ = 0;
31748 : res = gen_peephole2_369 (insn, operands);
31749 : if (res != NULL_RTX)
31750 : return res;
31751 : }
31752 : break;
31753 :
31754 : default:
31755 : break;
31756 : }
31757 : }
31758 : if (peep2_current_count < 2
31759 : || peep2_current_count < 3)
31760 : return NULL;
31761 : operands[2] = x2;
31762 : x3 = PATTERN (peep2_next_insn (1));
31763 : if (pattern608 (x3,
31764 : 2) != 0)
31765 : return NULL;
31766 : x4 = XVECEXP (x3, 0, 0);
31767 : x5 = XEXP (x4, 1);
31768 : if (XINT (x5, 1) != 110)
31769 : return NULL;
31770 : x6 = XVECEXP (x3, 0, 1);
31771 : if (GET_CODE (x6) != SET)
31772 : return NULL;
31773 : x7 = XEXP (x6, 1);
31774 : if (GET_CODE (x7) != PLUS
31775 : || pattern1518 (x3) != 0
31776 : || pattern1712 (x3) != 0)
31777 : return NULL;
31778 : x8 = PATTERN (peep2_next_insn (2));
31779 : x9 = XEXP (x8, 1);
31780 : x10 = XEXP (x9, 1);
31781 : operands[3] = x10;
31782 : x11 = XEXP (x9, 0);
31783 : if (!rtx_equal_p (x11, operands[0]))
31784 : return NULL;
31785 : switch (GET_MODE (operands[0]))
31786 : {
31787 : case E_HImode:
31788 : if (pattern1889 (x3,
31789 : E_HImode) != 0
31790 : || !
31791 : #line 724 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
31792 : (peep2_reg_dead_p (3, operands[0])
31793 : && (unsigned HOST_WIDE_INT) INTVAL (operands[2])
31794 : == -(unsigned HOST_WIDE_INT) INTVAL (operands[3])
31795 : && !reg_overlap_mentioned_p (operands[0], operands[1])))
31796 : return NULL;
31797 : *pmatch_len_ = 2;
31798 : return gen_peephole2_448 (insn, operands);
31799 :
31800 : case E_SImode:
31801 : if (pattern1889 (x3,
31802 : E_SImode) != 0
31803 : || !
31804 : #line 724 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
31805 : (peep2_reg_dead_p (3, operands[0])
31806 : && (unsigned HOST_WIDE_INT) INTVAL (operands[2])
31807 : == -(unsigned HOST_WIDE_INT) INTVAL (operands[3])
31808 : && !reg_overlap_mentioned_p (operands[0], operands[1])))
31809 : return NULL;
31810 : *pmatch_len_ = 2;
31811 : return gen_peephole2_449 (insn, operands);
31812 :
31813 : case E_DImode:
31814 : if (pattern1889 (x3,
31815 : E_DImode) != 0
31816 : || !(
31817 : #line 724 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
31818 : (peep2_reg_dead_p (3, operands[0])
31819 : && (unsigned HOST_WIDE_INT) INTVAL (operands[2])
31820 : == -(unsigned HOST_WIDE_INT) INTVAL (operands[3])
31821 : && !reg_overlap_mentioned_p (operands[0], operands[1])) &&
31822 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31823 : (TARGET_64BIT)))
31824 : return NULL;
31825 : *pmatch_len_ = 2;
31826 : return gen_peephole2_450 (insn, operands);
31827 :
31828 : default:
31829 : return NULL;
31830 : }
31831 : }
31832 :
31833 : rtx_insn *
31834 : peephole2_44 (rtx x1 ATTRIBUTE_UNUSED,
31835 : rtx_insn *insn ATTRIBUTE_UNUSED,
31836 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31837 : {
31838 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31839 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
31840 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
31841 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
31842 : rtx x26;
31843 : rtx_insn *res ATTRIBUTE_UNUSED;
31844 : x2 = XVECEXP (x1, 0, 0);
31845 : x3 = XEXP (x2, 0);
31846 : if (GET_CODE (x3) != REG
31847 : || REGNO (x3) != 17)
31848 : return NULL;
31849 : x4 = XVECEXP (x1, 0, 1);
31850 : if (GET_CODE (x4) != SET)
31851 : return NULL;
31852 : x5 = XEXP (x2, 1);
31853 : x6 = XEXP (x5, 0);
31854 : switch (GET_CODE (x6))
31855 : {
31856 : case REG:
31857 : operands[0] = x6;
31858 : x7 = XEXP (x4, 1);
31859 : if (GET_CODE (x7) != MINUS
31860 : || GET_MODE (x3) != E_CCmode
31861 : || GET_MODE (x5) != E_CCmode)
31862 : return NULL;
31863 : x8 = XEXP (x5, 1);
31864 : operands[1] = x8;
31865 : x9 = XEXP (x7, 0);
31866 : if (!rtx_equal_p (x9, operands[0]))
31867 : return NULL;
31868 : x10 = XEXP (x7, 1);
31869 : if (!rtx_equal_p (x10, operands[1]))
31870 : return NULL;
31871 : x11 = XEXP (x4, 0);
31872 : if (!rtx_equal_p (x11, operands[0]))
31873 : return NULL;
31874 : switch (GET_MODE (operands[0]))
31875 : {
31876 : case E_QImode:
31877 : if (!general_reg_operand (operands[0], E_QImode)
31878 : || !general_gr_operand (operands[1], E_QImode)
31879 : || GET_MODE (x7) != E_QImode
31880 : || !
31881 : #line 8707 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31882 : (find_regno_note (peep2_next_insn (0), REG_UNUSED, REGNO (operands[0])) != 0))
31883 : return NULL;
31884 : *pmatch_len_ = 0;
31885 : return gen_peephole2_70 (insn, operands);
31886 :
31887 : case E_HImode:
31888 : if (!general_reg_operand (operands[0], E_HImode)
31889 : || !general_gr_operand (operands[1], E_HImode)
31890 : || GET_MODE (x7) != E_HImode
31891 : || !
31892 : #line 8707 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31893 : (find_regno_note (peep2_next_insn (0), REG_UNUSED, REGNO (operands[0])) != 0))
31894 : return NULL;
31895 : *pmatch_len_ = 0;
31896 : return gen_peephole2_71 (insn, operands);
31897 :
31898 : case E_SImode:
31899 : if (!general_reg_operand (operands[0], E_SImode)
31900 : || !general_gr_operand (operands[1], E_SImode)
31901 : || GET_MODE (x7) != E_SImode
31902 : || !
31903 : #line 8707 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31904 : (find_regno_note (peep2_next_insn (0), REG_UNUSED, REGNO (operands[0])) != 0))
31905 : return NULL;
31906 : *pmatch_len_ = 0;
31907 : return gen_peephole2_72 (insn, operands);
31908 :
31909 : case E_DImode:
31910 : if (!general_reg_operand (operands[0], E_DImode)
31911 : || !general_gr_operand (operands[1], E_DImode)
31912 : || GET_MODE (x7) != E_DImode
31913 : || !(
31914 : #line 8707 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31915 : (find_regno_note (peep2_next_insn (0), REG_UNUSED, REGNO (operands[0])) != 0) &&
31916 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31917 : (TARGET_64BIT)))
31918 : return NULL;
31919 : *pmatch_len_ = 0;
31920 : return gen_peephole2_73 (insn, operands);
31921 :
31922 : default:
31923 : return NULL;
31924 : }
31925 :
31926 : case ZERO_EXTEND:
31927 : if (peep2_current_count < 2)
31928 : return NULL;
31929 : x12 = XEXP (x6, 0);
31930 : if (GET_CODE (x12) != PLUS)
31931 : return NULL;
31932 : x13 = XEXP (x12, 0);
31933 : if (GET_CODE (x13) != PLUS)
31934 : return NULL;
31935 : x14 = XEXP (x13, 0);
31936 : switch (GET_CODE (x14))
31937 : {
31938 : case LTU:
31939 : case UNLT:
31940 : operands[4] = x14;
31941 : x15 = XEXP (x14, 1);
31942 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
31943 : return NULL;
31944 : x8 = XEXP (x5, 1);
31945 : if (GET_CODE (x8) != PLUS)
31946 : return NULL;
31947 : x16 = XEXP (x8, 0);
31948 : switch (GET_CODE (x16))
31949 : {
31950 : case LTU:
31951 : case UNLT:
31952 : operands[3] = x16;
31953 : x17 = XEXP (x16, 1);
31954 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
31955 : return NULL;
31956 : x18 = XEXP (x8, 1);
31957 : if (GET_CODE (x18) != ZERO_EXTEND)
31958 : return NULL;
31959 : x7 = XEXP (x4, 1);
31960 : if (pattern1328 (x7) != 0
31961 : || GET_MODE (x3) != E_CCCmode
31962 : || GET_MODE (x5) != E_CCCmode)
31963 : return NULL;
31964 : x19 = XEXP (x14, 0);
31965 : operands[2] = x19;
31966 : if (!flags_reg_operand (operands[2], E_VOIDmode))
31967 : return NULL;
31968 : x20 = XEXP (x13, 1);
31969 : operands[0] = x20;
31970 : x21 = XEXP (x12, 1);
31971 : operands[1] = x21;
31972 : x22 = XEXP (x16, 0);
31973 : if (!rtx_equal_p (x22, operands[2]))
31974 : return NULL;
31975 : x23 = XEXP (x18, 0);
31976 : if (!rtx_equal_p (x23, operands[1]))
31977 : return NULL;
31978 : x9 = XEXP (x7, 0);
31979 : x24 = XEXP (x9, 1);
31980 : if (!rtx_equal_p (x24, operands[0]))
31981 : return NULL;
31982 : x10 = XEXP (x7, 1);
31983 : if (!rtx_equal_p (x10, operands[1]))
31984 : return NULL;
31985 : x11 = XEXP (x4, 0);
31986 : if (!rtx_equal_p (x11, operands[0]))
31987 : return NULL;
31988 : x25 = PATTERN (peep2_next_insn (1));
31989 : if (GET_CODE (x25) != SET)
31990 : return NULL;
31991 : switch (GET_MODE (x6))
31992 : {
31993 : case E_DImode:
31994 : switch (pattern1893 (x1,
31995 : E_SImode,
31996 : E_DImode))
31997 : {
31998 : case 0:
31999 : if (!
32000 : #line 9205 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32001 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32002 : && peep2_reg_dead_p (2, operands[0])
32003 : && !reg_overlap_mentioned_p (operands[0], operands[1])))
32004 : return NULL;
32005 : *pmatch_len_ = 1;
32006 : return gen_peephole2_94 (insn, operands);
32007 :
32008 : case 1:
32009 : if (!
32010 : #line 9411 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32011 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32012 : && peep2_reg_dead_p (4, operands[0])
32013 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32014 : && !reg_overlap_mentioned_p (operands[0], operands[5])
32015 : && !reg_overlap_mentioned_p (operands[5], operands[1])
32016 : && !reg_overlap_mentioned_p (operands[0], operands[6])
32017 : && !reg_overlap_mentioned_p (operands[6], operands[1])))
32018 : return NULL;
32019 : *pmatch_len_ = 3;
32020 : return gen_peephole2_102 (insn, operands);
32021 :
32022 : default:
32023 : return NULL;
32024 : }
32025 :
32026 : case E_TImode:
32027 : switch (pattern1893 (x1,
32028 : E_DImode,
32029 : E_TImode))
32030 : {
32031 : case 0:
32032 : if (!(
32033 : #line 9205 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32034 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32035 : && peep2_reg_dead_p (2, operands[0])
32036 : && !reg_overlap_mentioned_p (operands[0], operands[1])) &&
32037 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32038 : (TARGET_64BIT)))
32039 : return NULL;
32040 : *pmatch_len_ = 1;
32041 : return gen_peephole2_95 (insn, operands);
32042 :
32043 : case 1:
32044 : if (!(
32045 : #line 9411 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32046 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32047 : && peep2_reg_dead_p (4, operands[0])
32048 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32049 : && !reg_overlap_mentioned_p (operands[0], operands[5])
32050 : && !reg_overlap_mentioned_p (operands[5], operands[1])
32051 : && !reg_overlap_mentioned_p (operands[0], operands[6])
32052 : && !reg_overlap_mentioned_p (operands[6], operands[1])) &&
32053 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32054 : (TARGET_64BIT)))
32055 : return NULL;
32056 : *pmatch_len_ = 3;
32057 : return gen_peephole2_103 (insn, operands);
32058 :
32059 : default:
32060 : return NULL;
32061 : }
32062 :
32063 : default:
32064 : return NULL;
32065 : }
32066 :
32067 : default:
32068 : return NULL;
32069 : }
32070 :
32071 : default:
32072 : return NULL;
32073 : }
32074 :
32075 : case PLUS:
32076 : case MINUS:
32077 : case AND:
32078 : case IOR:
32079 : case XOR:
32080 : if (peep2_current_count < 2)
32081 : return NULL;
32082 : x12 = XEXP (x6, 0);
32083 : operands[0] = x12;
32084 : x26 = XEXP (x6, 1);
32085 : operands[1] = x26;
32086 : x25 = PATTERN (peep2_next_insn (1));
32087 : if (GET_CODE (x25) != SET)
32088 : return NULL;
32089 : if (GET_CODE (x6) == PLUS)
32090 : {
32091 : res = peephole2_43 (x1, insn, pmatch_len_);
32092 : if (res != NULL_RTX)
32093 : return res;
32094 : }
32095 : x8 = XEXP (x5, 1);
32096 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
32097 : return NULL;
32098 : operands[2] = x6;
32099 : x7 = XEXP (x4, 1);
32100 : if (!rtx_equal_p (x7, operands[2]))
32101 : return NULL;
32102 : switch (GET_MODE (operands[2]))
32103 : {
32104 : case E_QImode:
32105 : if (!plusminuslogic_operator (operands[2], E_QImode))
32106 : return NULL;
32107 : if (memory_operand (operands[0], E_QImode))
32108 : {
32109 : x11 = XEXP (x4, 0);
32110 : if (pattern1648 (x11,
32111 : E_QImode) == 0
32112 : &&
32113 : #line 28708 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32114 : (TARGET_APX_NDD
32115 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32116 : && peep2_reg_dead_p (2, operands[3])
32117 : && !reg_overlap_mentioned_p (operands[3], operands[0])
32118 : && ix86_match_ccmode (peep2_next_insn (0),
32119 : (GET_CODE (operands[2]) == PLUS
32120 : || GET_CODE (operands[2]) == MINUS)
32121 : ? CCGOCmode : CCNOmode)))
32122 : {
32123 : *pmatch_len_ = 1;
32124 : res = gen_peephole2_323 (insn, operands);
32125 : if (res != NULL_RTX)
32126 : return res;
32127 : }
32128 : }
32129 : if (!register_operand (operands[0], E_QImode))
32130 : return NULL;
32131 : x11 = XEXP (x4, 0);
32132 : if (pattern1649 (x11,
32133 : E_QImode) != 0
32134 : || !
32135 : #line 28802 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32136 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32137 : && COMMUTATIVE_ARITH_P (operands[2])
32138 : && peep2_reg_dead_p (2, operands[0])
32139 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32140 : && ix86_match_ccmode (peep2_next_insn (0),
32141 : GET_CODE (operands[2]) == PLUS
32142 : ? CCGOCmode : CCNOmode)))
32143 : return NULL;
32144 : *pmatch_len_ = 1;
32145 : return gen_peephole2_335 (insn, operands);
32146 :
32147 : case E_HImode:
32148 : if (!plusminuslogic_operator (operands[2], E_HImode))
32149 : return NULL;
32150 : if (memory_operand (operands[0], E_HImode))
32151 : {
32152 : x11 = XEXP (x4, 0);
32153 : if (pattern1648 (x11,
32154 : E_HImode) == 0
32155 : &&
32156 : #line 28708 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32157 : (TARGET_APX_NDD
32158 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32159 : && peep2_reg_dead_p (2, operands[3])
32160 : && !reg_overlap_mentioned_p (operands[3], operands[0])
32161 : && ix86_match_ccmode (peep2_next_insn (0),
32162 : (GET_CODE (operands[2]) == PLUS
32163 : || GET_CODE (operands[2]) == MINUS)
32164 : ? CCGOCmode : CCNOmode)))
32165 : {
32166 : *pmatch_len_ = 1;
32167 : res = gen_peephole2_324 (insn, operands);
32168 : if (res != NULL_RTX)
32169 : return res;
32170 : }
32171 : }
32172 : if (!register_operand (operands[0], E_HImode))
32173 : return NULL;
32174 : x11 = XEXP (x4, 0);
32175 : if (pattern1649 (x11,
32176 : E_HImode) != 0
32177 : || !
32178 : #line 28802 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32179 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32180 : && COMMUTATIVE_ARITH_P (operands[2])
32181 : && peep2_reg_dead_p (2, operands[0])
32182 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32183 : && ix86_match_ccmode (peep2_next_insn (0),
32184 : GET_CODE (operands[2]) == PLUS
32185 : ? CCGOCmode : CCNOmode)))
32186 : return NULL;
32187 : *pmatch_len_ = 1;
32188 : return gen_peephole2_336 (insn, operands);
32189 :
32190 : case E_SImode:
32191 : if (!plusminuslogic_operator (operands[2], E_SImode))
32192 : return NULL;
32193 : if (memory_operand (operands[0], E_SImode))
32194 : {
32195 : x11 = XEXP (x4, 0);
32196 : if (pattern1650 (x11,
32197 : E_SImode) == 0
32198 : &&
32199 : #line 28708 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32200 : (TARGET_APX_NDD
32201 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32202 : && peep2_reg_dead_p (2, operands[3])
32203 : && !reg_overlap_mentioned_p (operands[3], operands[0])
32204 : && ix86_match_ccmode (peep2_next_insn (0),
32205 : (GET_CODE (operands[2]) == PLUS
32206 : || GET_CODE (operands[2]) == MINUS)
32207 : ? CCGOCmode : CCNOmode)))
32208 : {
32209 : *pmatch_len_ = 1;
32210 : res = gen_peephole2_325 (insn, operands);
32211 : if (res != NULL_RTX)
32212 : return res;
32213 : }
32214 : }
32215 : if (!register_operand (operands[0], E_SImode))
32216 : return NULL;
32217 : x11 = XEXP (x4, 0);
32218 : if (pattern1649 (x11,
32219 : E_SImode) != 0
32220 : || !
32221 : #line 28802 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32222 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32223 : && COMMUTATIVE_ARITH_P (operands[2])
32224 : && peep2_reg_dead_p (2, operands[0])
32225 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32226 : && ix86_match_ccmode (peep2_next_insn (0),
32227 : GET_CODE (operands[2]) == PLUS
32228 : ? CCGOCmode : CCNOmode)))
32229 : return NULL;
32230 : *pmatch_len_ = 1;
32231 : return gen_peephole2_337 (insn, operands);
32232 :
32233 : case E_DImode:
32234 : if (!plusminuslogic_operator (operands[2], E_DImode))
32235 : return NULL;
32236 : if (memory_operand (operands[0], E_DImode))
32237 : {
32238 : x11 = XEXP (x4, 0);
32239 : if (pattern1650 (x11,
32240 : E_DImode) == 0
32241 : && (
32242 : #line 28708 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32243 : (TARGET_APX_NDD
32244 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32245 : && peep2_reg_dead_p (2, operands[3])
32246 : && !reg_overlap_mentioned_p (operands[3], operands[0])
32247 : && ix86_match_ccmode (peep2_next_insn (0),
32248 : (GET_CODE (operands[2]) == PLUS
32249 : || GET_CODE (operands[2]) == MINUS)
32250 : ? CCGOCmode : CCNOmode)) &&
32251 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32252 : (TARGET_64BIT)))
32253 : {
32254 : *pmatch_len_ = 1;
32255 : res = gen_peephole2_326 (insn, operands);
32256 : if (res != NULL_RTX)
32257 : return res;
32258 : }
32259 : }
32260 : if (!register_operand (operands[0], E_DImode))
32261 : return NULL;
32262 : x11 = XEXP (x4, 0);
32263 : if (pattern1649 (x11,
32264 : E_DImode) != 0
32265 : || !(
32266 : #line 28802 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32267 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32268 : && COMMUTATIVE_ARITH_P (operands[2])
32269 : && peep2_reg_dead_p (2, operands[0])
32270 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32271 : && ix86_match_ccmode (peep2_next_insn (0),
32272 : GET_CODE (operands[2]) == PLUS
32273 : ? CCGOCmode : CCNOmode)) &&
32274 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32275 : (TARGET_64BIT)))
32276 : return NULL;
32277 : *pmatch_len_ = 1;
32278 : return gen_peephole2_338 (insn, operands);
32279 :
32280 : default:
32281 : return NULL;
32282 : }
32283 :
32284 : default:
32285 : return NULL;
32286 : }
32287 : }
|