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 212662 : pattern8 (rtx x1, int *pnum_clobbers)
57 : {
58 212662 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
59 212662 : rtx x2, x3, x4, x5, x6, x7;
60 212662 : int res ATTRIBUTE_UNUSED;
61 212662 : x2 = XEXP (x1, 0);
62 212662 : operands[0] = x2;
63 212662 : x3 = XEXP (x1, 1);
64 212662 : x4 = XEXP (x3, 0);
65 212662 : switch (GET_CODE (x4))
66 : {
67 99148 : case REG:
68 99148 : case SUBREG:
69 99148 : case MEM:
70 99148 : operands[1] = x4;
71 99148 : x5 = XEXP (x3, 1);
72 99148 : operands[2] = x5;
73 99148 : switch (GET_MODE (operands[0]))
74 : {
75 12 : case E_TImode:
76 12 : if (pnum_clobbers == NULL
77 12 : || pattern4 (x3,
78 : E_TImode) != 0)
79 0 : return -1;
80 : return 0;
81 :
82 1680 : case E_QImode:
83 1680 : if (pnum_clobbers == NULL
84 1680 : || pattern4 (x3,
85 : E_QImode) != 0)
86 205 : return -1;
87 : return 1;
88 :
89 235 : case E_HImode:
90 235 : if (pnum_clobbers == NULL
91 235 : || pattern4 (x3,
92 : E_HImode) != 0)
93 124 : return -1;
94 : return 2;
95 :
96 167 : case E_V4HImode:
97 167 : if (pattern5 (x3,
98 : E_V4HImode) != 0)
99 : return -1;
100 : return 3;
101 :
102 0 : case E_V2SImode:
103 0 : if (pattern5 (x3,
104 : E_V2SImode) != 0)
105 : return -1;
106 : return 4;
107 :
108 314 : case E_V8QImode:
109 314 : if (pattern6 (x3,
110 : E_V8QImode) != 0)
111 : return -1;
112 : return 5;
113 :
114 254 : case E_V4QImode:
115 254 : if (pattern5 (x3,
116 : E_V4QImode) != 0)
117 : return -1;
118 : return 6;
119 :
120 62 : case E_V2QImode:
121 62 : if (pattern5 (x3,
122 : E_V2QImode) != 0)
123 : return -1;
124 : return 7;
125 :
126 44 : case E_V2HImode:
127 44 : if (pattern5 (x3,
128 : E_V2HImode) != 0)
129 : return -1;
130 : return 8;
131 :
132 : default:
133 : return -1;
134 : }
135 :
136 47730 : case PLUS:
137 47730 : if (pnum_clobbers == NULL
138 47730 : || GET_MODE (x4) != E_HImode
139 0 : || !register_operand (operands[0], E_HImode)
140 47730 : || GET_MODE (x3) != E_HImode)
141 47730 : return -1;
142 0 : x6 = XEXP (x4, 0);
143 0 : operands[1] = x6;
144 0 : if (!nonimmediate_operand (operands[1], E_HImode))
145 : return -1;
146 0 : x7 = XEXP (x4, 1);
147 0 : operands[2] = x7;
148 0 : if (!general_operand (operands[2], E_HImode))
149 : return -1;
150 : return 9;
151 :
152 9662 : case MINUS:
153 9662 : if (pnum_clobbers == NULL
154 9662 : || GET_MODE (x4) != E_HImode
155 4 : || !register_operand (operands[0], E_HImode)
156 9666 : || GET_MODE (x3) != E_HImode)
157 9658 : return -1;
158 4 : x6 = XEXP (x4, 0);
159 4 : operands[1] = x6;
160 4 : if (!nonimmediate_operand (operands[1], E_HImode))
161 : return -1;
162 4 : x7 = XEXP (x4, 1);
163 4 : operands[2] = x7;
164 4 : if (!general_operand (operands[2], E_HImode))
165 : return -1;
166 4 : x5 = XEXP (x3, 1);
167 4 : if (!rtx_equal_p (x5, operands[1]))
168 : return -1;
169 : return 10;
170 :
171 : default:
172 : return -1;
173 : }
174 : }
175 :
176 : int
177 0 : pattern39 (rtx x1, machine_mode i1, machine_mode i2)
178 : {
179 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
180 0 : rtx x2, x3, x4;
181 0 : int res ATTRIBUTE_UNUSED;
182 0 : x2 = XEXP (x1, 1);
183 0 : operands[3] = x2;
184 0 : if (!const_int_operand (operands[3], E_QImode))
185 : return -1;
186 0 : x3 = XEXP (x1, 0);
187 0 : switch (GET_CODE (x3))
188 : {
189 0 : case REG:
190 0 : case SUBREG:
191 0 : operands[2] = x3;
192 0 : if (!register_operand (operands[2], i1))
193 : return -1;
194 : return 0;
195 :
196 0 : case SIGN_EXTEND:
197 0 : if (GET_MODE (x3) != i1)
198 : return -1;
199 0 : x4 = XEXP (x3, 0);
200 0 : operands[2] = x4;
201 0 : if (!nonimmediate_operand (operands[2], i2))
202 : return -1;
203 : return 1;
204 :
205 0 : case ZERO_EXTEND:
206 0 : if (GET_MODE (x3) != i1)
207 : return -1;
208 0 : x4 = XEXP (x3, 0);
209 0 : operands[2] = x4;
210 0 : if (!nonimmediate_operand (operands[2], i2))
211 : return -1;
212 : return 2;
213 :
214 : default:
215 : return -1;
216 : }
217 : }
218 :
219 : int
220 161 : pattern41 (rtx x1)
221 : {
222 161 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
223 161 : int res ATTRIBUTE_UNUSED;
224 161 : switch (GET_MODE (operands[0]))
225 : {
226 82 : case E_QImode:
227 82 : if (!register_operand (operands[0], E_QImode)
228 82 : || GET_MODE (x1) != E_QImode
229 164 : || !register_operand (operands[1], E_QImode))
230 44 : return -1;
231 : return 0;
232 :
233 79 : case E_HImode:
234 79 : if (!register_operand (operands[0], E_HImode)
235 79 : || GET_MODE (x1) != E_HImode
236 158 : || !register_operand (operands[1], E_HImode))
237 0 : return -1;
238 : return 1;
239 :
240 : default:
241 : return -1;
242 : }
243 : }
244 :
245 : int
246 488910 : pattern45 (rtx x1)
247 : {
248 488910 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
249 488910 : rtx x2, x3, x4, x5;
250 488910 : int res ATTRIBUTE_UNUSED;
251 488910 : x2 = XEXP (x1, 1);
252 488910 : if (GET_MODE (x2) != E_CCCmode)
253 : return -1;
254 0 : x3 = XEXP (x2, 0);
255 0 : if (GET_CODE (x3) != REG
256 0 : || REGNO (x3) != 17)
257 : return -1;
258 0 : x4 = XEXP (x2, 1);
259 0 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
260 : return -1;
261 0 : x5 = XEXP (x1, 0);
262 0 : if (GET_CODE (x5) != REG
263 0 : || REGNO (x5) != 17
264 0 : || GET_MODE (x5) != E_CCCmode)
265 : return -1;
266 0 : switch (GET_MODE (x3))
267 : {
268 : case E_CCmode:
269 : return 0;
270 :
271 0 : case E_CCCmode:
272 0 : return 1;
273 :
274 : default:
275 : return -1;
276 : }
277 : }
278 :
279 : int
280 8857 : pattern54 (rtx x1)
281 : {
282 8857 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
283 8857 : rtx x2, x3;
284 8857 : int res ATTRIBUTE_UNUSED;
285 8857 : x2 = XEXP (x1, 0);
286 8857 : operands[1] = x2;
287 8857 : x3 = XEXP (x1, 1);
288 8857 : operands[2] = x3;
289 8857 : switch (GET_MODE (operands[0]))
290 : {
291 377 : case E_V64QImode:
292 377 : return pattern26 (x1,
293 377 : E_V64QImode); /* [-1, 0] */
294 :
295 618 : case E_V32QImode:
296 618 : if (pattern26 (x1,
297 : E_V32QImode) != 0)
298 : return -1;
299 : return 1;
300 :
301 2016 : case E_V16QImode:
302 2016 : if (pattern26 (x1,
303 : E_V16QImode) != 0)
304 : return -1;
305 : return 2;
306 :
307 357 : case E_V32HImode:
308 357 : if (pattern26 (x1,
309 : E_V32HImode) != 0)
310 : return -1;
311 : return 3;
312 :
313 593 : case E_V16HImode:
314 593 : if (pattern26 (x1,
315 : E_V16HImode) != 0)
316 : return -1;
317 : return 4;
318 :
319 4665 : case E_V8HImode:
320 4665 : if (pattern26 (x1,
321 : E_V8HImode) != 0)
322 : return -1;
323 : return 5;
324 :
325 : default:
326 : return -1;
327 : }
328 : }
329 :
330 : int
331 298 : pattern63 (rtx x1, int *pnum_clobbers)
332 : {
333 298 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
334 298 : rtx x2, x3, x4;
335 298 : int res ATTRIBUTE_UNUSED;
336 298 : if (pnum_clobbers == NULL)
337 : return -1;
338 298 : x2 = XEXP (x1, 1);
339 298 : if (GET_MODE (x2) != E_HImode)
340 : return -1;
341 0 : x3 = XEXP (x1, 0);
342 0 : operands[0] = x3;
343 0 : if (!nonimmediate_operand (operands[0], E_HImode))
344 : return -1;
345 0 : x4 = XVECEXP (x2, 0, 0);
346 0 : operands[1] = x4;
347 0 : if (!register_operand (operands[1], E_XFmode))
348 : return -1;
349 : return 0;
350 : }
351 :
352 : int
353 1614 : pattern69 (rtx x1)
354 : {
355 1614 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
356 1614 : rtx x2, x3, x4, x5;
357 1614 : int res ATTRIBUTE_UNUSED;
358 1614 : x2 = XEXP (x1, 1);
359 1614 : if (GET_MODE (x2) != E_CCmode)
360 : return -1;
361 1614 : x3 = XEXP (x1, 0);
362 1614 : if (GET_CODE (x3) != REG
363 1614 : || REGNO (x3) != 17
364 3227 : || GET_MODE (x3) != E_CCmode)
365 : return -1;
366 1613 : x4 = XVECEXP (x2, 0, 0);
367 1613 : operands[0] = x4;
368 1613 : x5 = XVECEXP (x2, 0, 1);
369 1613 : operands[1] = x5;
370 1613 : return 0;
371 : }
372 :
373 : int
374 56 : pattern72 (rtx x1)
375 : {
376 56 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
377 56 : rtx x2;
378 56 : int res ATTRIBUTE_UNUSED;
379 56 : if (!register_operand (operands[0], E_HImode)
380 56 : || GET_MODE (x1) != E_HImode)
381 : return -1;
382 56 : x2 = XVECEXP (x1, 0, 0);
383 56 : switch (GET_MODE (x2))
384 : {
385 28 : case E_V16QImode:
386 28 : if (!vector_operand (operands[1], E_V16QImode)
387 28 : || !vector_operand (operands[2], E_V16QImode)
388 56 : || !const0_operand (operands[3], E_V16QImode))
389 14 : return -1;
390 : return 0;
391 :
392 28 : case E_V16HImode:
393 28 : if (!vector_operand (operands[1], E_V16HImode)
394 28 : || !vector_operand (operands[2], E_V16HImode)
395 56 : || !const0_operand (operands[3], E_V16HImode))
396 14 : return -1;
397 : return 1;
398 :
399 : default:
400 : return -1;
401 : }
402 : }
403 :
404 : int
405 1456689 : pattern84 (rtx x1)
406 : {
407 1456689 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
408 1456689 : rtx x2, x3, x4;
409 1456689 : int res ATTRIBUTE_UNUSED;
410 1456689 : if (!nonimmediate_operand (operands[1], E_QImode))
411 : return -1;
412 144206 : x2 = XEXP (x1, 0);
413 144206 : operands[0] = x2;
414 144206 : if (!nonimmediate_operand (operands[0], E_QImode))
415 : return -1;
416 144108 : x3 = XEXP (x1, 1);
417 144108 : if (GET_MODE (x3) != E_QImode)
418 : return -1;
419 144108 : x4 = XEXP (x3, 1);
420 144108 : operands[2] = x4;
421 144108 : if (!general_operand (operands[2], E_QImode))
422 : return -1;
423 : return 0;
424 : }
425 :
426 : int
427 11094 : pattern91 (rtx x1, machine_mode i1, machine_mode i2)
428 : {
429 11094 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
430 11094 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
431 11094 : rtx x10;
432 11094 : int res ATTRIBUTE_UNUSED;
433 11094 : x2 = XEXP (x1, 0);
434 11094 : x3 = XEXP (x2, 0);
435 11094 : x4 = XEXP (x3, 0);
436 11094 : x5 = XEXP (x4, 0);
437 11094 : operands[2] = x5;
438 11094 : if (!nonimmediate_operand (operands[2], i2))
439 : return -1;
440 11074 : x6 = XEXP (x3, 1);
441 11074 : operands[3] = x6;
442 11074 : if (!const_int_operand (operands[3], E_QImode))
443 : return -1;
444 11074 : x7 = XEXP (x2, 1);
445 11074 : x8 = XEXP (x7, 0);
446 11074 : operands[4] = x8;
447 11074 : if (!nonimmediate_operand (operands[4], i2))
448 : return -1;
449 11063 : x9 = XEXP (x1, 1);
450 11063 : switch (GET_CODE (x9))
451 : {
452 2077 : case REG:
453 2077 : case SUBREG:
454 2077 : operands[1] = x9;
455 2077 : if (!register_operand (operands[1], i1))
456 : return -1;
457 : return 0;
458 :
459 14 : case ZERO_EXTEND:
460 14 : if (GET_MODE (x9) != i1)
461 : return -1;
462 14 : x10 = XEXP (x9, 0);
463 14 : operands[1] = x10;
464 14 : if (!nonimmediate_operand (operands[1], i2))
465 : return -1;
466 : return 1;
467 :
468 : default:
469 : return -1;
470 : }
471 : }
472 :
473 : int
474 738 : pattern104 (rtx x1, machine_mode i1)
475 : {
476 738 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
477 738 : rtx x2;
478 738 : int res ATTRIBUTE_UNUSED;
479 738 : if (!memory_operand (operands[0], i1)
480 738 : || GET_MODE (x1) != i1)
481 : return -1;
482 738 : x2 = XEXP (x1, 0);
483 738 : if (GET_MODE (x2) != i1
484 738 : || !register_operand (operands[1], E_V2DImode))
485 0 : return -1;
486 : return 0;
487 : }
488 :
489 : int
490 37595 : pattern109 (rtx x1, int *pnum_clobbers)
491 : {
492 37595 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
493 37595 : rtx x2, x3, x4, x5;
494 37595 : int res ATTRIBUTE_UNUSED;
495 37595 : if (pnum_clobbers == NULL)
496 : return -1;
497 37595 : x2 = XEXP (x1, 0);
498 37595 : if (GET_MODE (x2) != E_DImode)
499 : return -1;
500 6081 : x3 = XEXP (x2, 0);
501 6081 : if (GET_CODE (x3) != ASHIFT
502 284 : || GET_MODE (x3) != E_DImode)
503 : return -1;
504 284 : x4 = XEXP (x3, 0);
505 284 : if (GET_CODE (x4) != ZERO_EXTEND
506 30 : || GET_MODE (x4) != E_DImode)
507 : return -1;
508 30 : x5 = XEXP (x2, 1);
509 30 : if (GET_CODE (x5) != ZERO_EXTEND
510 16 : || GET_MODE (x5) != E_DImode)
511 : return -1;
512 16 : return pattern92 (x1,
513 : E_DImode,
514 16 : E_SImode); /* [-1, 1] */
515 : }
516 :
517 : int
518 88989 : pattern118 (rtx x1)
519 : {
520 88989 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
521 88989 : rtx x2, x3, x4;
522 88989 : int res ATTRIBUTE_UNUSED;
523 88989 : x2 = XEXP (x1, 0);
524 88989 : if (maybe_ne (SUBREG_BYTE (x2), 0)
525 88989 : || GET_MODE (x2) != E_HImode)
526 : return -1;
527 6108 : x3 = XEXP (x2, 0);
528 6108 : if (GET_CODE (x3) != UNSPEC
529 6 : || XVECLEN (x3, 0) != 1
530 6 : || XINT (x3, 1) != 50
531 6 : || GET_MODE (x3) != E_SImode
532 6 : || !register_operand (operands[0], E_SImode)
533 6114 : || GET_MODE (x1) != E_SImode)
534 6102 : return -1;
535 6 : x4 = XVECEXP (x3, 0, 0);
536 6 : operands[1] = x4;
537 6 : if (!register_operand (operands[1], E_V16QImode))
538 : return -1;
539 : return 0;
540 : }
541 :
542 : int
543 206754 : pattern125 (rtx x1, int *pnum_clobbers)
544 : {
545 206754 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
546 206754 : rtx x2;
547 206754 : int res ATTRIBUTE_UNUSED;
548 206754 : if (pnum_clobbers == NULL)
549 : return -1;
550 206754 : x2 = XEXP (x1, 0);
551 206754 : if (GET_MODE (x2) != E_DImode
552 206754 : || pattern43 (x1,
553 : E_SImode,
554 : E_DImode) != 0)
555 73896 : return -1;
556 : return 0;
557 : }
558 :
559 : int
560 2925 : pattern129 (rtx x1)
561 : {
562 2925 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
563 2925 : rtx x2, x3, x4;
564 2925 : int res ATTRIBUTE_UNUSED;
565 2925 : x2 = XEXP (x1, 0);
566 2925 : operands[0] = x2;
567 2925 : x3 = XEXP (x1, 1);
568 2925 : x4 = XVECEXP (x3, 0, 0);
569 2925 : operands[1] = x4;
570 2925 : switch (GET_MODE (operands[0]))
571 : {
572 366 : case E_SImode:
573 366 : return pattern128 (x3,
574 366 : E_SImode); /* [-1, 2] */
575 :
576 400 : case E_DImode:
577 400 : res = pattern128 (x3,
578 : E_DImode);
579 400 : if (res >= 0)
580 370 : return res + 3; /* [3, 5] */
581 : return -1;
582 :
583 : default:
584 : return -1;
585 : }
586 : }
587 :
588 : int
589 31965 : pattern134 (rtx x1, machine_mode i1, machine_mode i2)
590 : {
591 31965 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
592 31965 : rtx x2;
593 31965 : int res ATTRIBUTE_UNUSED;
594 31965 : if (!register_operand (operands[0], i1)
595 31965 : || GET_MODE (x1) != i1)
596 : return -1;
597 30716 : x2 = XEXP (x1, 0);
598 30716 : if (GET_MODE (x2) != i1
599 30716 : || !nonimmediate_operand (operands[1], i1)
600 24163 : || !nonimmediate_operand (operands[2], i1)
601 22977 : || !nonimm_or_0_operand (operands[3], i1)
602 52874 : || !register_operand (operands[4], i2))
603 9138 : return -1;
604 : return 0;
605 : }
606 :
607 : int
608 7239 : pattern146 (rtx x1)
609 : {
610 7239 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
611 7239 : rtx x2, x3, x4, x5;
612 7239 : int res ATTRIBUTE_UNUSED;
613 7239 : x2 = XEXP (x1, 0);
614 7239 : x3 = XEXP (x2, 0);
615 7239 : operands[1] = x3;
616 7239 : x4 = XEXP (x1, 1);
617 7239 : operands[2] = x4;
618 7239 : x5 = XEXP (x1, 2);
619 7239 : operands[3] = x5;
620 7239 : switch (GET_MODE (operands[0]))
621 : {
622 1728 : case E_V16QImode:
623 1728 : if (!nonimmediate_operand (operands[0], E_V16QImode)
624 1728 : || GET_MODE (x1) != E_V16QImode
625 1728 : || GET_MODE (x2) != E_V16QImode
626 1728 : || !nonimm_or_0_operand (operands[2], E_V16QImode)
627 3450 : || !register_operand (operands[3], E_HImode))
628 54 : return -1;
629 1674 : switch (GET_MODE (operands[1]))
630 : {
631 837 : case E_V16SImode:
632 837 : if (!register_operand (operands[1], E_V16SImode))
633 : return -1;
634 : return 0;
635 :
636 837 : case E_V16HImode:
637 837 : if (!register_operand (operands[1], E_V16HImode))
638 : return -1;
639 : return 1;
640 :
641 : default:
642 : return -1;
643 : }
644 :
645 954 : case E_V16HImode:
646 954 : if (pattern145 (x1,
647 : E_V16HImode,
648 : E_HImode,
649 : E_V16SImode) != 0)
650 : return -1;
651 : return 2;
652 :
653 927 : case E_V8SImode:
654 927 : if (pattern145 (x1,
655 : E_V8SImode,
656 : E_QImode,
657 : E_V8DImode) != 0)
658 : return -1;
659 : return 3;
660 :
661 1688 : case E_V8HImode:
662 1688 : if (!nonimmediate_operand (operands[0], E_V8HImode)
663 1688 : || GET_MODE (x1) != E_V8HImode
664 1688 : || GET_MODE (x2) != E_V8HImode
665 1688 : || !nonimm_or_0_operand (operands[2], E_V8HImode)
666 3370 : || !register_operand (operands[3], E_QImode))
667 54 : return -1;
668 1634 : switch (GET_MODE (operands[1]))
669 : {
670 817 : case E_V8DImode:
671 817 : if (!register_operand (operands[1], E_V8DImode))
672 : return -1;
673 : return 4;
674 :
675 817 : case E_V8SImode:
676 817 : if (!register_operand (operands[1], E_V8SImode))
677 : return -1;
678 : return 5;
679 :
680 : default:
681 : return -1;
682 : }
683 :
684 951 : case E_V32QImode:
685 951 : if (pattern145 (x1,
686 : E_V32QImode,
687 : E_SImode,
688 : E_V32HImode) != 0)
689 : return -1;
690 : return 6;
691 :
692 814 : case E_V4SImode:
693 814 : if (pattern145 (x1,
694 : E_V4SImode,
695 : E_QImode,
696 : E_V4DImode) != 0)
697 : return -1;
698 : return 7;
699 :
700 : default:
701 : return -1;
702 : }
703 : }
704 :
705 : int
706 168 : pattern164 (rtx x1, machine_mode i1, machine_mode i2)
707 : {
708 168 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
709 168 : rtx x2, x3, x4, x5;
710 168 : int res ATTRIBUTE_UNUSED;
711 168 : x2 = XEXP (x1, 1);
712 168 : if (GET_MODE (x2) != i2)
713 : return -1;
714 168 : x3 = XEXP (x1, 0);
715 168 : operands[0] = x3;
716 168 : if (!register_operand (operands[0], i2))
717 : return -1;
718 163 : x4 = XVECEXP (x2, 0, 0);
719 163 : operands[1] = x4;
720 163 : if (!register_operand (operands[1], i2))
721 : return -1;
722 150 : x5 = XVECEXP (x2, 0, 1);
723 150 : operands[2] = x5;
724 150 : if (!register_operand (operands[2], i1))
725 : return -1;
726 : return 0;
727 : }
728 :
729 : int
730 752 : pattern170 (rtx x1)
731 : {
732 752 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
733 752 : rtx x2, x3, x4, x5;
734 752 : int res ATTRIBUTE_UNUSED;
735 752 : x2 = XEXP (x1, 0);
736 752 : operands[0] = x2;
737 752 : x3 = XEXP (x1, 1);
738 752 : x4 = XVECEXP (x3, 0, 0);
739 752 : operands[1] = x4;
740 752 : x5 = XVECEXP (x3, 0, 1);
741 752 : operands[2] = x5;
742 752 : switch (GET_MODE (operands[0]))
743 : {
744 252 : case E_V64QImode:
745 252 : return pattern169 (x3,
746 : E_V64QImode,
747 252 : E_V32HFmode); /* [-1, 0] */
748 :
749 252 : case E_V32QImode:
750 252 : if (pattern169 (x3,
751 : E_V32QImode,
752 : E_V16HFmode) != 0)
753 : return -1;
754 : return 1;
755 :
756 248 : case E_V16QImode:
757 248 : if (pattern169 (x3,
758 : E_V16QImode,
759 : E_V8HFmode) != 0)
760 : return -1;
761 : return 2;
762 :
763 : default:
764 : return -1;
765 : }
766 : }
767 :
768 : int
769 945 : pattern179 (rtx x1)
770 : {
771 945 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
772 945 : rtx x2, x3, x4, x5, x6;
773 945 : int res ATTRIBUTE_UNUSED;
774 945 : x2 = XEXP (x1, 0);
775 945 : operands[0] = x2;
776 945 : x3 = XEXP (x1, 1);
777 945 : x4 = XVECEXP (x3, 0, 0);
778 945 : operands[1] = x4;
779 945 : x5 = XVECEXP (x3, 0, 1);
780 945 : operands[2] = x5;
781 945 : x6 = XVECEXP (x3, 0, 2);
782 945 : operands[3] = x6;
783 945 : switch (GET_MODE (operands[0]))
784 : {
785 204 : case E_V8DImode:
786 204 : return pattern178 (x3,
787 204 : E_V8DImode); /* [-1, 0] */
788 :
789 380 : case E_V4DImode:
790 380 : if (pattern178 (x3,
791 : E_V4DImode) != 0)
792 : return -1;
793 : return 1;
794 :
795 361 : case E_V2DImode:
796 361 : if (pattern178 (x3,
797 : E_V2DImode) != 0)
798 : return -1;
799 : return 2;
800 :
801 : default:
802 : return -1;
803 : }
804 : }
805 :
806 : int
807 474 : pattern186 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
808 : {
809 474 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
810 474 : rtx x2;
811 474 : int res ATTRIBUTE_UNUSED;
812 474 : if (!register_operand (operands[0], i3)
813 474 : || GET_MODE (x1) != i3)
814 : return -1;
815 454 : x2 = XEXP (x1, 0);
816 454 : if (GET_MODE (x2) != i1
817 454 : || !nonimmediate_operand (operands[1], i2)
818 813 : || !const0_operand (operands[2], i1))
819 95 : return -1;
820 : return 0;
821 : }
822 :
823 : int
824 16 : pattern192 (rtx x1, machine_mode i1)
825 : {
826 16 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
827 16 : rtx x2;
828 16 : int res ATTRIBUTE_UNUSED;
829 16 : if (!register_operand (operands[0], i1)
830 16 : || GET_MODE (x1) != i1)
831 : return -1;
832 10 : x2 = XEXP (x1, 0);
833 10 : if (GET_MODE (x2) != i1
834 10 : || !vector_operand (operands[1], i1)
835 10 : || !vector_operand (operands[2], i1)
836 10 : || !const0_operand (operands[3], i1)
837 16 : || !vector_operand (operands[4], i1))
838 6 : return -1;
839 : return 0;
840 : }
841 :
842 : int
843 568 : pattern198 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
844 : {
845 568 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
846 568 : rtx x2, x3, x4, x5;
847 568 : int res ATTRIBUTE_UNUSED;
848 568 : if (!register_operand (operands[0], i2)
849 568 : || GET_MODE (x1) != i2)
850 : return -1;
851 550 : x2 = XEXP (x1, 0);
852 550 : if (GET_MODE (x2) != i2)
853 : return -1;
854 550 : x3 = XEXP (x2, 0);
855 550 : if (GET_MODE (x3) != i1
856 550 : || !nonimmediate_operand (operands[1], i3))
857 12 : return -1;
858 538 : x4 = XEXP (x1, 1);
859 538 : if (GET_MODE (x4) != i2)
860 : return -1;
861 538 : x5 = XEXP (x4, 0);
862 538 : if (GET_MODE (x5) != i1)
863 : return -1;
864 : return 0;
865 : }
866 :
867 : int
868 53109 : pattern202 (rtx x1, machine_mode i1)
869 : {
870 53109 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
871 53109 : int res ATTRIBUTE_UNUSED;
872 53109 : if (!register_operand (operands[0], i1)
873 52904 : || GET_MODE (x1) != i1
874 52904 : || !register_operand (operands[1], i1)
875 95911 : || !const0_operand (operands[2], i1))
876 11381 : return -1;
877 : return 0;
878 : }
879 :
880 : int
881 177854 : pattern203 (rtx x1)
882 : {
883 177854 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
884 177854 : rtx x2, x3;
885 177854 : int res ATTRIBUTE_UNUSED;
886 177854 : x2 = XEXP (x1, 0);
887 177854 : operands[1] = x2;
888 177854 : x3 = XEXP (x1, 1);
889 177854 : operands[2] = x3;
890 177854 : switch (GET_MODE (operands[0]))
891 : {
892 13 : case E_V16HImode:
893 13 : return pattern202 (x1,
894 13 : E_V16HImode); /* [-1, 0] */
895 :
896 16883 : case E_V8HImode:
897 16883 : if (pattern202 (x1,
898 : E_V8HImode) != 0)
899 : return -1;
900 : return 1;
901 :
902 292 : case E_V8SImode:
903 292 : if (pattern202 (x1,
904 : E_V8SImode) != 0)
905 : return -1;
906 : return 2;
907 :
908 29577 : case E_V4SImode:
909 29577 : if (pattern202 (x1,
910 : E_V4SImode) != 0)
911 : return -1;
912 : return 3;
913 :
914 : default:
915 : return -1;
916 : }
917 : }
918 :
919 : int
920 4553 : pattern206 (rtx x1)
921 : {
922 4553 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
923 4553 : int res ATTRIBUTE_UNUSED;
924 4553 : switch (GET_MODE (operands[0]))
925 : {
926 1476 : case E_QImode:
927 1476 : if (!nonimmediate_operand (operands[0], E_QImode)
928 1476 : || GET_MODE (x1) != E_QImode
929 2952 : || !nonimmediate_operand (operands[1], E_QImode))
930 40 : return -1;
931 : return 0;
932 :
933 1264 : case E_HImode:
934 1264 : if (!nonimmediate_operand (operands[0], E_HImode)
935 1264 : || GET_MODE (x1) != E_HImode
936 2528 : || !nonimmediate_operand (operands[1], E_HImode))
937 0 : return -1;
938 : return 1;
939 :
940 1363 : case E_SImode:
941 1363 : if (!nonimmediate_operand (operands[0], E_SImode)
942 1363 : || GET_MODE (x1) != E_SImode
943 2726 : || !nonimmediate_operand (operands[1], E_SImode))
944 136 : return -1;
945 : return 2;
946 :
947 450 : case E_DImode:
948 450 : if (!nonimmediate_operand (operands[0], E_DImode)
949 450 : || GET_MODE (x1) != E_DImode
950 900 : || !nonimmediate_operand (operands[1], E_DImode))
951 71 : return -1;
952 : return 3;
953 :
954 : default:
955 : return -1;
956 : }
957 : }
958 :
959 : int
960 77156 : pattern211 (rtx x1)
961 : {
962 77156 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
963 77156 : rtx x2, x3, x4, x5, x6, x7, x8;
964 77156 : int res ATTRIBUTE_UNUSED;
965 77156 : x2 = XVECEXP (x1, 0, 1);
966 77156 : if (GET_CODE (x2) != CLOBBER)
967 : return -1;
968 75299 : x3 = XEXP (x2, 0);
969 75299 : if (GET_CODE (x3) != REG
970 75299 : || REGNO (x3) != 17
971 150598 : || GET_MODE (x3) != E_CCmode)
972 : return -1;
973 75299 : x4 = XVECEXP (x1, 0, 0);
974 75299 : x5 = XEXP (x4, 1);
975 75299 : x6 = XEXP (x5, 0);
976 75299 : operands[1] = x6;
977 75299 : x7 = XEXP (x5, 1);
978 75299 : switch (GET_CODE (x7))
979 : {
980 : case CONST_INT:
981 : case CONST_WIDE_INT:
982 : case CONST_POLY_INT:
983 : case CONST_FIXED:
984 : case CONST_DOUBLE:
985 : case CONST_VECTOR:
986 : case CONST:
987 : case REG:
988 : case SUBREG:
989 : case LABEL_REF:
990 : case SYMBOL_REF:
991 : case HIGH:
992 : return 0;
993 :
994 127 : case AND:
995 127 : if (GET_MODE (x7) != E_QImode)
996 : return -1;
997 127 : x8 = XEXP (x4, 0);
998 127 : operands[0] = x8;
999 127 : res = pattern208 (x5);
1000 127 : if (res >= 0)
1001 116 : return res + 1; /* [1, 4] */
1002 : return -1;
1003 :
1004 68 : case PLUS:
1005 68 : if (GET_MODE (x7) != E_QImode)
1006 : return -1;
1007 68 : x8 = XEXP (x4, 0);
1008 68 : operands[0] = x8;
1009 68 : res = pattern209 (x5);
1010 68 : if (res >= 0)
1011 49 : return res + 5; /* [5, 8] */
1012 : return -1;
1013 :
1014 23 : case MINUS:
1015 23 : if (GET_MODE (x7) != E_QImode)
1016 : return -1;
1017 23 : x8 = XEXP (x4, 0);
1018 23 : operands[0] = x8;
1019 23 : res = pattern210 (x5);
1020 23 : if (res >= 0)
1021 6 : return res + 9; /* [9, 12] */
1022 : return -1;
1023 :
1024 : default:
1025 : return -1;
1026 : }
1027 : }
1028 :
1029 : int
1030 313894 : pattern223 (rtx x1)
1031 : {
1032 313894 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1033 313894 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1034 313894 : rtx x10;
1035 313894 : int res ATTRIBUTE_UNUSED;
1036 313894 : x2 = XVECEXP (x1, 0, 1);
1037 313894 : if (GET_CODE (x2) != CLOBBER)
1038 : return -1;
1039 312410 : x3 = XVECEXP (x1, 0, 2);
1040 312410 : if (GET_CODE (x3) != CLOBBER)
1041 : return -1;
1042 312410 : x4 = XEXP (x3, 0);
1043 312410 : if (GET_CODE (x4) != REG
1044 312410 : || REGNO (x4) != 17
1045 624820 : || GET_MODE (x4) != E_CCmode)
1046 : return -1;
1047 312410 : x5 = XVECEXP (x1, 0, 0);
1048 312410 : x6 = XEXP (x5, 0);
1049 312410 : operands[0] = x6;
1050 312410 : x7 = XEXP (x5, 1);
1051 312410 : x8 = XEXP (x7, 0);
1052 312410 : operands[1] = x8;
1053 312410 : x9 = XEXP (x7, 1);
1054 312410 : operands[2] = x9;
1055 312410 : x10 = XEXP (x2, 0);
1056 312410 : operands[3] = x10;
1057 312410 : switch (GET_MODE (operands[0]))
1058 : {
1059 59257 : case E_SImode:
1060 59257 : return pattern222 (x7,
1061 59257 : E_SImode); /* [-1, 0] */
1062 :
1063 253153 : case E_DImode:
1064 253153 : if (pattern222 (x7,
1065 : E_DImode) != 0)
1066 : return -1;
1067 : return 1;
1068 :
1069 : default:
1070 : return -1;
1071 : }
1072 : }
1073 :
1074 : int
1075 655 : pattern233 (rtx x1)
1076 : {
1077 655 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1078 655 : rtx x2, x3, x4, x5;
1079 655 : int res ATTRIBUTE_UNUSED;
1080 655 : x2 = XVECEXP (x1, 0, 1);
1081 655 : x3 = XVECEXP (x2, 0, 0);
1082 655 : operands[2] = x3;
1083 655 : switch (GET_MODE (operands[0]))
1084 : {
1085 316 : case E_SImode:
1086 316 : x4 = XVECEXP (x1, 0, 0);
1087 316 : x5 = XEXP (x4, 1);
1088 316 : return pattern232 (x5,
1089 316 : E_SImode); /* [-1, 0] */
1090 :
1091 339 : case E_DImode:
1092 339 : x4 = XVECEXP (x1, 0, 0);
1093 339 : x5 = XEXP (x4, 1);
1094 339 : if (pattern232 (x5,
1095 : E_DImode) != 0)
1096 : return -1;
1097 : return 1;
1098 :
1099 : default:
1100 : return -1;
1101 : }
1102 : }
1103 :
1104 : int
1105 3025529 : pattern246 (rtx x1)
1106 : {
1107 3025529 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1108 3025529 : rtx x2, x3;
1109 3025529 : int res ATTRIBUTE_UNUSED;
1110 3025529 : if (GET_CODE (x1) != VEC_SELECT)
1111 : return -1;
1112 30867 : x2 = XEXP (x1, 0);
1113 30867 : if (GET_CODE (x2) != SUBREG
1114 30867 : || maybe_ne (SUBREG_BYTE (x2), 0))
1115 : return -1;
1116 5535 : x3 = XEXP (x1, 1);
1117 5535 : if (GET_CODE (x3) != PARALLEL)
1118 0 : return -1;
1119 : return 0;
1120 : }
1121 :
1122 : int
1123 48 : pattern251 (rtx x1, machine_mode i1)
1124 : {
1125 48 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1126 48 : rtx x2, x3, x4;
1127 48 : int res ATTRIBUTE_UNUSED;
1128 48 : if (!register_operand (operands[0], i1)
1129 48 : || GET_MODE (x1) != i1)
1130 : return -1;
1131 40 : x2 = XEXP (x1, 0);
1132 40 : operands[1] = x2;
1133 40 : if (!register_operand (operands[1], i1))
1134 : return -1;
1135 40 : x3 = XEXP (x1, 1);
1136 40 : operands[2] = x3;
1137 40 : if (!register_operand (operands[2], i1))
1138 : return -1;
1139 28 : x4 = XEXP (x1, 2);
1140 28 : operands[3] = x4;
1141 28 : if (!register_operand (operands[3], i1))
1142 : return -1;
1143 : return 0;
1144 : }
1145 :
1146 : int
1147 10764 : pattern261 (rtx x1, int *pnum_clobbers, machine_mode i1, machine_mode i2)
1148 : {
1149 10764 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1150 10764 : int res ATTRIBUTE_UNUSED;
1151 10764 : if (pnum_clobbers == NULL
1152 10764 : || !nonimmediate_operand (operands[0], i2)
1153 10764 : || GET_MODE (x1) != i2
1154 21528 : || !register_operand (operands[1], i1))
1155 5194 : return -1;
1156 : return 0;
1157 : }
1158 :
1159 : int
1160 758 : pattern267 (rtx x1)
1161 : {
1162 758 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1163 758 : rtx x2, x3, x4;
1164 758 : int res ATTRIBUTE_UNUSED;
1165 758 : x2 = XEXP (x1, 1);
1166 758 : x3 = XEXP (x2, 0);
1167 758 : x4 = XEXP (x3, 1);
1168 758 : operands[3] = x4;
1169 758 : if (!const_int_operand (operands[3], E_VOIDmode))
1170 : return -1;
1171 757 : return pattern0 (x1); /* [-1, 1] */
1172 : }
1173 :
1174 : int
1175 116 : pattern277 (rtx x1)
1176 : {
1177 116 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1178 116 : rtx x2, x3;
1179 116 : int res ATTRIBUTE_UNUSED;
1180 116 : x2 = XEXP (x1, 0);
1181 116 : if (GET_MODE (x2) != E_V4SImode)
1182 : return -1;
1183 116 : x3 = XEXP (x1, 1);
1184 116 : if (XVECLEN (x3, 0) != 2
1185 116 : || pattern276 (x1,
1186 : E_V4SFmode,
1187 : E_V2SImode,
1188 : 1) != 0)
1189 116 : return -1;
1190 : return 0;
1191 : }
1192 :
1193 : int
1194 55 : pattern280 (rtx x1, int *pnum_clobbers)
1195 : {
1196 55 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1197 55 : rtx x2, x3, x4, x5, x6;
1198 55 : int res ATTRIBUTE_UNUSED;
1199 55 : if (pnum_clobbers == NULL)
1200 : return -1;
1201 53 : x2 = XEXP (x1, 0);
1202 53 : x3 = XEXP (x2, 0);
1203 53 : operands[2] = x3;
1204 53 : x4 = XEXP (x3, 0);
1205 53 : if (GET_CODE (x4) != REG
1206 53 : || REGNO (x4) != 17)
1207 : return -1;
1208 33 : x5 = XEXP (x3, 1);
1209 33 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1210 : return -1;
1211 33 : x6 = XEXP (x2, 1);
1212 33 : operands[1] = x6;
1213 33 : return pattern279 (x1); /* [-1, 4] */
1214 : }
1215 :
1216 : int
1217 1462 : pattern287 (rtx x1, int *pnum_clobbers)
1218 : {
1219 1462 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1220 1462 : rtx x2, x3;
1221 1462 : int res ATTRIBUTE_UNUSED;
1222 1462 : if (pnum_clobbers == NULL)
1223 : return -1;
1224 1462 : x2 = XEXP (x1, 0);
1225 1462 : x3 = XEXP (x2, 0);
1226 1462 : if (XWINT (x3, 0) != 1L)
1227 : return -1;
1228 796 : return pattern286 (x1); /* [-1, 2] */
1229 : }
1230 :
1231 : int
1232 42519 : pattern291 (rtx x1, machine_mode i1)
1233 : {
1234 42519 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1235 42519 : rtx x2, x3, x4, x5;
1236 42519 : int res ATTRIBUTE_UNUSED;
1237 42519 : if (!register_operand (operands[0], i1)
1238 3631 : || GET_MODE (x1) != i1
1239 46150 : || !register_operand (operands[1], i1))
1240 40762 : return -1;
1241 1757 : x2 = XEXP (x1, 1);
1242 1757 : x3 = XEXP (x2, 0);
1243 1757 : x4 = XEXP (x3, 0);
1244 1757 : operands[2] = x4;
1245 1757 : if (!int248_register_operand (operands[2], E_VOIDmode))
1246 : return -1;
1247 1365 : x5 = XEXP (x3, 1);
1248 1365 : operands[3] = x5;
1249 1365 : if (!const_int_operand (operands[3], E_VOIDmode))
1250 : return -1;
1251 : return 0;
1252 : }
1253 :
1254 : int
1255 481 : pattern300 (rtx x1)
1256 : {
1257 481 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1258 481 : rtx x2, x3;
1259 481 : int res ATTRIBUTE_UNUSED;
1260 481 : x2 = XVECEXP (x1, 0, 0);
1261 481 : operands[1] = x2;
1262 481 : x3 = XVECEXP (x1, 0, 1);
1263 481 : operands[2] = x3;
1264 481 : switch (GET_MODE (operands[0]))
1265 : {
1266 231 : case E_SImode:
1267 231 : return pattern64 (x1,
1268 231 : E_SImode); /* [-1, 0] */
1269 :
1270 250 : case E_DImode:
1271 250 : if (pattern64 (x1,
1272 : E_DImode) != 0)
1273 : return -1;
1274 : return 1;
1275 :
1276 : default:
1277 : return -1;
1278 : }
1279 : }
1280 :
1281 : int
1282 70034 : pattern305 (rtx x1)
1283 : {
1284 70034 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1285 70034 : rtx x2, x3, x4, x5, x6;
1286 70034 : int res ATTRIBUTE_UNUSED;
1287 70034 : x2 = XVECEXP (x1, 0, 0);
1288 70034 : switch (GET_CODE (x2))
1289 : {
1290 57666 : case CONST_INT:
1291 57666 : case CONST_WIDE_INT:
1292 57666 : case CONST_POLY_INT:
1293 57666 : case CONST_FIXED:
1294 57666 : case CONST_DOUBLE:
1295 57666 : case CONST_VECTOR:
1296 57666 : case CONST:
1297 57666 : case REG:
1298 57666 : case SUBREG:
1299 57666 : case MEM:
1300 57666 : case LABEL_REF:
1301 57666 : case SYMBOL_REF:
1302 57666 : case HIGH:
1303 57666 : operands[1] = x2;
1304 57666 : x3 = XVECEXP (x1, 0, 2);
1305 57666 : if (GET_CODE (x3) != CONST_INT)
1306 : return -1;
1307 : return 0;
1308 :
1309 108 : case US_MINUS:
1310 108 : x4 = XEXP (x2, 0);
1311 108 : operands[1] = x4;
1312 108 : x5 = XEXP (x2, 1);
1313 108 : operands[2] = x5;
1314 108 : x6 = XVECEXP (x1, 0, 1);
1315 108 : operands[3] = x6;
1316 108 : x3 = XVECEXP (x1, 0, 2);
1317 108 : operands[4] = x3;
1318 108 : if (!const_0_to_7_operand (operands[4], E_SImode))
1319 : return -1;
1320 108 : switch (GET_MODE (operands[0]))
1321 : {
1322 22 : case E_DImode:
1323 22 : if (pattern73 (x1,
1324 : E_V64QImode,
1325 : E_DImode) != 0)
1326 : return -1;
1327 : return 1;
1328 :
1329 44 : case E_SImode:
1330 44 : res = pattern304 (x1);
1331 44 : if (res >= 0)
1332 16 : return res + 2; /* [2, 3] */
1333 : return -1;
1334 :
1335 : default:
1336 : return -1;
1337 : }
1338 :
1339 : default:
1340 : return -1;
1341 : }
1342 : }
1343 :
1344 : int
1345 608 : pattern321 (rtx x1, machine_mode i1)
1346 : {
1347 608 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1348 608 : int res ATTRIBUTE_UNUSED;
1349 608 : if (!register_operand (operands[0], i1)
1350 580 : || GET_MODE (x1) != i1
1351 580 : || !float_vector_all_ones_operand (operands[1], i1)
1352 48 : || !const0_operand (operands[2], i1)
1353 48 : || !register_operand (operands[3], i1)
1354 656 : || !nonimmediate_operand (operands[4], i1))
1355 584 : return -1;
1356 : return 0;
1357 : }
1358 :
1359 : int
1360 1492 : pattern328 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
1361 : {
1362 1492 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1363 1492 : rtx x2;
1364 1492 : int res ATTRIBUTE_UNUSED;
1365 1492 : x2 = XVECEXP (x1, 0, 0);
1366 1492 : operands[1] = x2;
1367 1492 : switch (GET_MODE (operands[0]))
1368 : {
1369 524 : case E_V32HImode:
1370 524 : if (!register_operand (operands[0], E_V32HImode)
1371 492 : || GET_MODE (x1) != E_V32HImode
1372 1016 : || !vector_operand (operands[1], i1))
1373 44 : return -1;
1374 : return 0;
1375 :
1376 496 : case E_V16HImode:
1377 496 : if (!register_operand (operands[0], E_V16HImode)
1378 464 : || GET_MODE (x1) != E_V16HImode
1379 960 : || !vector_operand (operands[1], i2))
1380 40 : return -1;
1381 : return 1;
1382 :
1383 472 : case E_V8HImode:
1384 472 : if (!register_operand (operands[0], E_V8HImode)
1385 464 : || GET_MODE (x1) != E_V8HImode
1386 936 : || !vector_operand (operands[1], i3))
1387 16 : return -1;
1388 : return 2;
1389 :
1390 : default:
1391 : return -1;
1392 : }
1393 : }
1394 :
1395 : int
1396 10223 : pattern333 (rtx x1, machine_mode i1)
1397 : {
1398 10223 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1399 10223 : rtx x2;
1400 10223 : int res ATTRIBUTE_UNUSED;
1401 10223 : if (!register_operand (operands[0], i1)
1402 10223 : || GET_MODE (x1) != i1)
1403 : return -1;
1404 10197 : x2 = XEXP (x1, 0);
1405 10197 : if (GET_MODE (x2) != i1
1406 10197 : || !nonimmediate_operand (operands[1], i1)
1407 10043 : || !nonimmediate_operand (operands[2], i1)
1408 20196 : || !register_operand (operands[3], i1))
1409 1608 : return -1;
1410 : return 0;
1411 : }
1412 :
1413 : int
1414 79060 : pattern335 (rtx x1)
1415 : {
1416 79060 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1417 79060 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1418 79060 : int res ATTRIBUTE_UNUSED;
1419 79060 : if (GET_MODE (x1) != E_V4SImode)
1420 : return -1;
1421 1967 : x2 = XEXP (x1, 0);
1422 1967 : if (GET_CODE (x2) != SIGN_EXTEND
1423 1546 : || GET_MODE (x2) != E_V4SImode)
1424 : return -1;
1425 1546 : x3 = XEXP (x2, 0);
1426 1546 : if (GET_CODE (x3) != VEC_SELECT
1427 1546 : || GET_MODE (x3) != E_V4HImode)
1428 : return -1;
1429 1546 : x4 = XEXP (x3, 1);
1430 1546 : if (GET_CODE (x4) != PARALLEL
1431 1546 : || XVECLEN (x4, 0) != 4)
1432 : return -1;
1433 1546 : x5 = XVECEXP (x4, 0, 0);
1434 1546 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1435 : return -1;
1436 1546 : x6 = XVECEXP (x4, 0, 1);
1437 1546 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
1438 : return -1;
1439 1546 : x7 = XVECEXP (x4, 0, 2);
1440 1546 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
1441 : return -1;
1442 1546 : x8 = XVECEXP (x4, 0, 3);
1443 1546 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
1444 : return -1;
1445 1546 : x9 = XEXP (x1, 1);
1446 1546 : if (GET_CODE (x9) != SIGN_EXTEND)
1447 0 : return -1;
1448 : return 0;
1449 : }
1450 :
1451 : int
1452 14966 : pattern342 (rtx x1)
1453 : {
1454 14966 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1455 14966 : rtx x2, x3, x4, x5, x6;
1456 14966 : int res ATTRIBUTE_UNUSED;
1457 14966 : x2 = XEXP (x1, 0);
1458 14966 : operands[0] = x2;
1459 14966 : x3 = XEXP (x1, 1);
1460 14966 : x4 = XEXP (x3, 1);
1461 14966 : x5 = XEXP (x4, 0);
1462 14966 : operands[3] = x5;
1463 14966 : if (!const_int_operand (operands[3], E_QImode))
1464 : return -1;
1465 6076 : x6 = XEXP (x4, 1);
1466 6076 : operands[2] = x6;
1467 6076 : if (!register_operand (operands[2], E_QImode))
1468 : return -1;
1469 5859 : return pattern340 (x3); /* [-1, 1] */
1470 : }
1471 :
1472 : int
1473 15257 : pattern345 (rtx x1)
1474 : {
1475 15257 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1476 15257 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1477 15257 : int res ATTRIBUTE_UNUSED;
1478 15257 : x2 = XVECEXP (x1, 0, 1);
1479 15257 : if (GET_CODE (x2) != CLOBBER)
1480 : return -1;
1481 5008 : x3 = XEXP (x2, 0);
1482 5008 : if (GET_CODE (x3) != REG
1483 5008 : || REGNO (x3) != 17
1484 9761 : || GET_MODE (x3) != E_CCmode)
1485 : return -1;
1486 4753 : x4 = XVECEXP (x1, 0, 0);
1487 4753 : x5 = XEXP (x4, 0);
1488 4753 : operands[0] = x5;
1489 4753 : x6 = XEXP (x4, 1);
1490 4753 : x7 = XEXP (x6, 0);
1491 4753 : x8 = XEXP (x7, 0);
1492 4753 : operands[1] = x8;
1493 4753 : x9 = XEXP (x7, 1);
1494 4753 : operands[2] = x9;
1495 4753 : return 0;
1496 : }
1497 :
1498 : int
1499 11784 : pattern349 (rtx x1)
1500 : {
1501 11784 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1502 11784 : rtx x2, x3, x4, x5, x6, x7, x8;
1503 11784 : int res ATTRIBUTE_UNUSED;
1504 11784 : x2 = XVECEXP (x1, 0, 1);
1505 11784 : if (GET_CODE (x2) != CLOBBER)
1506 : return -1;
1507 8189 : x3 = XEXP (x2, 0);
1508 8189 : if (GET_CODE (x3) != REG
1509 8189 : || REGNO (x3) != 17
1510 16378 : || GET_MODE (x3) != E_CCmode)
1511 : return -1;
1512 8189 : x4 = XVECEXP (x1, 0, 0);
1513 8189 : x5 = XEXP (x4, 0);
1514 8189 : operands[0] = x5;
1515 8189 : x6 = XEXP (x4, 1);
1516 8189 : x7 = XEXP (x6, 0);
1517 8189 : x8 = XEXP (x7, 0);
1518 8189 : operands[1] = x8;
1519 8189 : return 0;
1520 : }
1521 :
1522 : int
1523 782 : pattern354 (rtx x1)
1524 : {
1525 782 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1526 782 : rtx x2, x3, x4, x5, x6;
1527 782 : int res ATTRIBUTE_UNUSED;
1528 782 : x2 = XVECEXP (x1, 0, 0);
1529 782 : x3 = XEXP (x2, 1);
1530 782 : x4 = XEXP (x3, 0);
1531 782 : if (XVECLEN (x4, 0) != 3)
1532 : return -1;
1533 660 : x5 = XVECEXP (x1, 0, 1);
1534 660 : if (GET_CODE (x5) != SET)
1535 : return -1;
1536 655 : x6 = XEXP (x5, 1);
1537 655 : if (GET_CODE (x6) != UNSPEC
1538 505 : || XVECLEN (x6, 0) != 3)
1539 150 : return -1;
1540 : return 0;
1541 : }
1542 :
1543 : int
1544 29072 : pattern359 (rtx x1)
1545 : {
1546 29072 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1547 29072 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1548 29072 : rtx x10;
1549 29072 : int res ATTRIBUTE_UNUSED;
1550 29072 : x2 = XVECEXP (x1, 0, 0);
1551 29072 : x3 = XEXP (x2, 1);
1552 29072 : x4 = XEXP (x3, 0);
1553 29072 : x5 = XEXP (x4, 0);
1554 29072 : if (GET_CODE (x5) != ASHIFT)
1555 : return -1;
1556 8504 : x6 = XEXP (x5, 0);
1557 8504 : if (GET_CODE (x6) != ZERO_EXTEND)
1558 : return -1;
1559 7853 : x7 = XEXP (x4, 1);
1560 7853 : if (GET_CODE (x7) != ZERO_EXTEND)
1561 : return -1;
1562 7853 : x8 = XVECEXP (x1, 0, 1);
1563 7853 : if (GET_CODE (x8) != CLOBBER)
1564 : return -1;
1565 6216 : x9 = XEXP (x8, 0);
1566 6216 : if (GET_CODE (x9) != REG
1567 6216 : || REGNO (x9) != 17
1568 12432 : || GET_MODE (x9) != E_CCmode)
1569 : return -1;
1570 6216 : x10 = XEXP (x2, 0);
1571 6216 : operands[0] = x10;
1572 6216 : return pattern358 (x3); /* [-1, 3] */
1573 : }
1574 :
1575 : int
1576 21065 : pattern366 (rtx x1, machine_mode i1)
1577 : {
1578 21065 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1579 21065 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1580 21065 : rtx x10, x11, x12, x13;
1581 21065 : int res ATTRIBUTE_UNUSED;
1582 21065 : x2 = XVECEXP (x1, 0, 0);
1583 21065 : x3 = XEXP (x2, 1);
1584 21065 : if (GET_MODE (x3) != i1)
1585 : return -1;
1586 21065 : x4 = XEXP (x3, 0);
1587 21065 : x5 = XEXP (x4, 0);
1588 21065 : x6 = XVECEXP (x5, 0, 0);
1589 21065 : operands[0] = x6;
1590 21065 : x7 = XVECEXP (x5, 0, 1);
1591 21065 : operands[2] = x7;
1592 21065 : if (!const_int_operand (operands[2], E_SImode))
1593 : return -1;
1594 21065 : x8 = XEXP (x4, 1);
1595 21065 : operands[1] = x8;
1596 21065 : x9 = XVECEXP (x1, 0, 1);
1597 21065 : x10 = XEXP (x9, 1);
1598 21065 : x11 = XEXP (x10, 0);
1599 21065 : if (!rtx_equal_p (x11, operands[0]))
1600 : return -1;
1601 21065 : x12 = XEXP (x10, 1);
1602 21065 : if (!rtx_equal_p (x12, operands[1]))
1603 : return -1;
1604 21065 : x13 = XEXP (x9, 0);
1605 21065 : if (!rtx_equal_p (x13, operands[0]))
1606 : return -1;
1607 21065 : switch (GET_MODE (x4))
1608 : {
1609 2888 : case E_QImode:
1610 2888 : return pattern365 (x1,
1611 2888 : E_QImode); /* [-1, 0] */
1612 :
1613 2588 : case E_HImode:
1614 2588 : if (pattern365 (x1,
1615 : E_HImode) != 0)
1616 : return -1;
1617 : return 1;
1618 :
1619 12055 : case E_SImode:
1620 12055 : if (pattern365 (x1,
1621 : E_SImode) != 0)
1622 : return -1;
1623 : return 2;
1624 :
1625 3534 : case E_DImode:
1626 3534 : if (pattern365 (x1,
1627 : E_DImode) != 0)
1628 : return -1;
1629 : return 3;
1630 :
1631 : default:
1632 : return -1;
1633 : }
1634 : }
1635 :
1636 : int
1637 7237 : pattern376 (rtx x1)
1638 : {
1639 7237 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1640 7237 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1641 7237 : rtx x10, x11;
1642 7237 : int res ATTRIBUTE_UNUSED;
1643 7237 : x2 = XVECEXP (x1, 0, 0);
1644 7237 : x3 = XEXP (x2, 1);
1645 7237 : x4 = XEXP (x3, 0);
1646 7237 : if (GET_MODE (x4) != E_DImode)
1647 : return -1;
1648 7237 : x5 = XEXP (x4, 1);
1649 7237 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
1650 : return -1;
1651 7237 : x6 = XEXP (x2, 0);
1652 7237 : if (GET_CODE (x6) != ZERO_EXTRACT
1653 7237 : || GET_MODE (x6) != E_DImode)
1654 : return -1;
1655 7237 : x7 = XEXP (x6, 1);
1656 7237 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
1657 : return -1;
1658 7237 : x8 = XVECEXP (x1, 0, 1);
1659 7237 : if (GET_CODE (x8) != CLOBBER)
1660 : return -1;
1661 7237 : x9 = XEXP (x8, 0);
1662 7237 : if (GET_CODE (x9) != REG
1663 7237 : || REGNO (x9) != 17
1664 14474 : || GET_MODE (x9) != E_CCmode)
1665 : return -1;
1666 7237 : x10 = XEXP (x6, 0);
1667 7237 : operands[0] = x10;
1668 7237 : if (!nonimmediate_operand (operands[0], E_DImode))
1669 : return -1;
1670 7237 : x11 = XEXP (x6, 2);
1671 7237 : operands[1] = x11;
1672 7237 : if (!const_0_to_63_operand (operands[1], E_QImode))
1673 : return -1;
1674 : return 0;
1675 : }
1676 :
1677 : int
1678 57 : pattern392 (rtx x1)
1679 : {
1680 57 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1681 57 : rtx x2, x3;
1682 57 : int res ATTRIBUTE_UNUSED;
1683 57 : x2 = XVECEXP (x1, 0, 2);
1684 57 : if (XVECLEN (x2, 0) != 1
1685 57 : || XINT (x2, 1) != 33)
1686 : return -1;
1687 57 : x3 = XVECEXP (x2, 0, 0);
1688 57 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1689 : return -1;
1690 57 : switch (GET_MODE (operands[0]))
1691 : {
1692 38 : case E_SImode:
1693 38 : return pattern391 (x1,
1694 38 : E_SImode); /* [-1, 0] */
1695 :
1696 19 : case E_DImode:
1697 19 : if (pattern391 (x1,
1698 : E_DImode) != 0)
1699 : return -1;
1700 : return 1;
1701 :
1702 : default:
1703 : return -1;
1704 : }
1705 : }
1706 :
1707 : int
1708 0 : pattern401 (rtx x1, machine_mode i1, machine_mode i2)
1709 : {
1710 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1711 0 : rtx x2, x3;
1712 0 : int res ATTRIBUTE_UNUSED;
1713 0 : if (!nonimmediate_operand (operands[0], i1)
1714 0 : || GET_MODE (x1) != i1)
1715 : return -1;
1716 0 : x2 = XEXP (x1, 0);
1717 0 : if (GET_MODE (x2) != i1
1718 0 : || !nonimmediate_operand (operands[1], i2))
1719 0 : return -1;
1720 0 : x3 = XEXP (x1, 1);
1721 0 : if (GET_MODE (x3) != i1
1722 0 : || !register_operand (operands[2], i1))
1723 0 : return -1;
1724 : return 0;
1725 : }
1726 :
1727 : int
1728 72389 : pattern408 (rtx x1)
1729 : {
1730 72389 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1731 72389 : int res ATTRIBUTE_UNUSED;
1732 72389 : switch (GET_MODE (operands[0]))
1733 : {
1734 33691 : case E_SImode:
1735 33691 : if (!register_operand (operands[0], E_SImode)
1736 33575 : || GET_MODE (x1) != E_SImode
1737 67266 : || !nonimmediate_operand (operands[1], E_SImode))
1738 7161 : return -1;
1739 : return 0;
1740 :
1741 25229 : case E_DImode:
1742 25229 : if (!register_operand (operands[0], E_DImode)
1743 24898 : || GET_MODE (x1) != E_DImode
1744 50127 : || !nonimmediate_operand (operands[1], E_DImode))
1745 5097 : return -1;
1746 : return 1;
1747 :
1748 : default:
1749 : return -1;
1750 : }
1751 : }
1752 :
1753 : int
1754 2793 : pattern415 (rtx x1)
1755 : {
1756 2793 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1757 2793 : rtx x2, x3, x4, x5, x6, x7;
1758 2793 : int res ATTRIBUTE_UNUSED;
1759 2793 : x2 = XEXP (x1, 0);
1760 2793 : x3 = XEXP (x2, 0);
1761 2793 : if (GET_CODE (x3) != VEC_SELECT)
1762 : return -1;
1763 1414 : x4 = XEXP (x3, 0);
1764 1414 : if (GET_CODE (x4) != SUBREG
1765 1414 : || maybe_ne (SUBREG_BYTE (x4), 0))
1766 : return -1;
1767 381 : x5 = XEXP (x3, 1);
1768 381 : if (GET_CODE (x5) != PARALLEL)
1769 : return -1;
1770 381 : x6 = XEXP (x1, 1);
1771 381 : operands[2] = x6;
1772 381 : x7 = XEXP (x1, 2);
1773 381 : operands[3] = x7;
1774 381 : return pattern414 (x1); /* [-1, 8] */
1775 : }
1776 :
1777 : int
1778 18320164 : pattern419 (rtx x1, machine_mode i1)
1779 : {
1780 18320164 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1781 18320164 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1782 18320164 : rtx x10, x11;
1783 18320164 : int res ATTRIBUTE_UNUSED;
1784 18320164 : operands[4] = x1;
1785 18320164 : if (!general_gr_operand (operands[4], i1))
1786 : return -1;
1787 13290848 : x2 = PATTERN (peep2_next_insn (1));
1788 13290848 : if (GET_CODE (x2) != PARALLEL
1789 1285989 : || XVECLEN (x2, 0) != 3)
1790 : return -1;
1791 39816 : x3 = XVECEXP (x2, 0, 0);
1792 39816 : if (GET_CODE (x3) != SET)
1793 : return -1;
1794 38099 : x4 = XEXP (x3, 1);
1795 38099 : if (GET_CODE (x4) != UNSPEC
1796 53 : || XVECLEN (x4, 0) != 1
1797 23 : || XINT (x4, 1) != 93)
1798 : return -1;
1799 23 : x5 = XVECEXP (x2, 0, 1);
1800 23 : if (GET_CODE (x5) != SET)
1801 : return -1;
1802 23 : x6 = XEXP (x5, 1);
1803 23 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1804 : return -1;
1805 23 : x7 = XVECEXP (x2, 0, 2);
1806 23 : if (GET_CODE (x7) != CLOBBER)
1807 : return -1;
1808 23 : x8 = XEXP (x7, 0);
1809 23 : if (GET_CODE (x8) != REG
1810 23 : || REGNO (x8) != 17
1811 46 : || GET_MODE (x8) != E_CCmode)
1812 : return -1;
1813 23 : x9 = XEXP (x3, 0);
1814 23 : operands[0] = x9;
1815 23 : x10 = XVECEXP (x4, 0, 0);
1816 23 : operands[1] = x10;
1817 23 : x11 = XEXP (x5, 0);
1818 23 : operands[2] = x11;
1819 23 : if (!general_reg_operand (operands[2], E_VOIDmode))
1820 : return -1;
1821 23 : switch (GET_MODE (operands[0]))
1822 : {
1823 0 : case E_SImode:
1824 0 : if (!memory_operand (operands[0], E_SImode)
1825 0 : || GET_MODE (x4) != E_SImode
1826 0 : || !memory_operand (operands[1], E_SImode))
1827 0 : return -1;
1828 : return 0;
1829 :
1830 23 : case E_DImode:
1831 23 : if (!memory_operand (operands[0], E_DImode)
1832 23 : || GET_MODE (x4) != E_DImode
1833 46 : || !memory_operand (operands[1], E_DImode))
1834 0 : return -1;
1835 : return 1;
1836 :
1837 : default:
1838 : return -1;
1839 : }
1840 : }
1841 :
1842 : int
1843 7499 : pattern444 (rtx x1, rtx_code i1)
1844 : {
1845 7499 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1846 7499 : rtx x2, x3, x4, x5, x6;
1847 7499 : int res ATTRIBUTE_UNUSED;
1848 7499 : x2 = XEXP (x1, 1);
1849 7499 : if (maybe_ne (SUBREG_BYTE (x2), 0))
1850 : return -1;
1851 7499 : x3 = XEXP (x2, 0);
1852 7499 : if (GET_CODE (x3) != i1)
1853 : return -1;
1854 942 : x4 = XEXP (x3, 0);
1855 942 : if (GET_CODE (x4) != ZERO_EXTEND)
1856 : return -1;
1857 868 : switch (GET_MODE (operands[0]))
1858 : {
1859 783 : case E_DImode:
1860 783 : if (GET_MODE (x1) != E_DImode)
1861 : return -1;
1862 783 : x5 = XEXP (x1, 0);
1863 783 : if (GET_MODE (x5) != E_DImode)
1864 : return -1;
1865 783 : x6 = XEXP (x5, 1);
1866 783 : if (!const_0_to_63_operand (x6, E_QImode))
1867 : return -1;
1868 : return 0;
1869 :
1870 85 : case E_SImode:
1871 85 : if (GET_MODE (x1) != E_SImode)
1872 : return -1;
1873 85 : x5 = XEXP (x1, 0);
1874 85 : if (GET_MODE (x5) != E_SImode)
1875 : return -1;
1876 85 : x6 = XEXP (x5, 1);
1877 85 : if (!const_0_to_31_operand (x6, E_QImode))
1878 : return -1;
1879 : return 1;
1880 :
1881 : default:
1882 : return -1;
1883 : }
1884 : }
1885 :
1886 : int
1887 1091 : pattern457 (rtx x1)
1888 : {
1889 1091 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1890 1091 : rtx x2, x3, x4;
1891 1091 : int res ATTRIBUTE_UNUSED;
1892 1091 : x2 = XEXP (x1, 1);
1893 1091 : if (GET_CODE (x2) != PARALLEL
1894 1091 : || XVECLEN (x2, 0) != 1)
1895 : return -1;
1896 965 : x3 = XVECEXP (x2, 0, 0);
1897 965 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1898 : return -1;
1899 965 : x4 = XEXP (x1, 0);
1900 965 : operands[1] = x4;
1901 965 : switch (GET_MODE (operands[0]))
1902 : {
1903 : case E_SImode:
1904 : return 0;
1905 :
1906 500 : case E_DImode:
1907 500 : return 1;
1908 :
1909 : default:
1910 : return -1;
1911 : }
1912 : }
1913 :
1914 : int
1915 3914 : pattern461 (rtx x1)
1916 : {
1917 3914 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1918 3914 : rtx x2, x3, x4, x5, x6;
1919 3914 : int res ATTRIBUTE_UNUSED;
1920 3914 : x2 = XEXP (x1, 0);
1921 3914 : x3 = XVECEXP (x2, 0, 0);
1922 3914 : operands[1] = x3;
1923 3914 : x4 = XVECEXP (x2, 0, 1);
1924 3914 : operands[2] = x4;
1925 3914 : x5 = XEXP (x1, 2);
1926 3914 : switch (GET_CODE (x5))
1927 : {
1928 2988 : case REG:
1929 2988 : case SUBREG:
1930 2988 : operands[4] = x5;
1931 2988 : x6 = XEXP (x1, 1);
1932 2988 : operands[3] = x6;
1933 2988 : switch (GET_MODE (operands[0]))
1934 : {
1935 454 : case E_V32HFmode:
1936 454 : return pattern458 (x1,
1937 : E_V32HFmode,
1938 454 : E_SImode); /* [-1, 0] */
1939 :
1940 430 : case E_V16HFmode:
1941 430 : if (pattern458 (x1,
1942 : E_V16HFmode,
1943 : E_HImode) != 0)
1944 : return -1;
1945 : return 1;
1946 :
1947 504 : case E_V8HFmode:
1948 504 : if (pattern458 (x1,
1949 : E_V8HFmode,
1950 : E_QImode) != 0)
1951 : return -1;
1952 : return 2;
1953 :
1954 84 : case E_V16SFmode:
1955 84 : if (pattern458 (x1,
1956 : E_V16SFmode,
1957 : E_HImode) != 0)
1958 : return -1;
1959 : return 3;
1960 :
1961 346 : case E_V8SFmode:
1962 346 : if (pattern458 (x1,
1963 : E_V8SFmode,
1964 : E_QImode) != 0)
1965 : return -1;
1966 : return 4;
1967 :
1968 346 : case E_V4SFmode:
1969 346 : if (pattern458 (x1,
1970 : E_V4SFmode,
1971 : E_QImode) != 0)
1972 : return -1;
1973 : return 5;
1974 :
1975 132 : case E_V8DFmode:
1976 132 : if (pattern458 (x1,
1977 : E_V8DFmode,
1978 : E_QImode) != 0)
1979 : return -1;
1980 : return 6;
1981 :
1982 346 : case E_V4DFmode:
1983 346 : if (pattern458 (x1,
1984 : E_V4DFmode,
1985 : E_QImode) != 0)
1986 : return -1;
1987 : return 7;
1988 :
1989 346 : case E_V2DFmode:
1990 346 : if (pattern458 (x1,
1991 : E_V2DFmode,
1992 : E_QImode) != 0)
1993 : return -1;
1994 : return 8;
1995 :
1996 : default:
1997 : return -1;
1998 : }
1999 :
2000 844 : case CONST_INT:
2001 844 : if (XWINT (x5, 0) != 1L)
2002 : return -1;
2003 720 : res = pattern460 (x1);
2004 720 : if (res >= 0)
2005 617 : return res + 9; /* [9, 11] */
2006 : return -1;
2007 :
2008 : default:
2009 : return -1;
2010 : }
2011 : }
2012 :
2013 : int
2014 2708 : pattern486 (rtx x1)
2015 : {
2016 2708 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2017 2708 : rtx x2, x3, x4, x5, x6, x7;
2018 2708 : int res ATTRIBUTE_UNUSED;
2019 2708 : x2 = XEXP (x1, 0);
2020 2708 : x3 = XVECEXP (x2, 0, 0);
2021 2708 : operands[1] = x3;
2022 2708 : x4 = XVECEXP (x2, 0, 1);
2023 2708 : operands[2] = x4;
2024 2708 : x5 = XVECEXP (x2, 0, 2);
2025 2708 : operands[3] = x5;
2026 2708 : x6 = XEXP (x1, 1);
2027 2708 : switch (GET_CODE (x6))
2028 : {
2029 1338 : case REG:
2030 1338 : case SUBREG:
2031 1338 : if (!rtx_equal_p (x6, operands[1]))
2032 : return -1;
2033 1338 : x7 = XEXP (x1, 2);
2034 1338 : operands[4] = x7;
2035 1338 : switch (GET_MODE (operands[0]))
2036 : {
2037 430 : case E_V16SImode:
2038 430 : return pattern482 (x1,
2039 : E_V16SImode,
2040 430 : E_HImode); /* [-1, 0] */
2041 :
2042 458 : case E_V8SImode:
2043 458 : if (pattern482 (x1,
2044 : E_V8SImode,
2045 : E_QImode) != 0)
2046 : return -1;
2047 : return 1;
2048 :
2049 450 : case E_V4SImode:
2050 450 : if (pattern482 (x1,
2051 : E_V4SImode,
2052 : E_QImode) != 0)
2053 : return -1;
2054 : return 2;
2055 :
2056 : default:
2057 : return -1;
2058 : }
2059 :
2060 1346 : case CONST_INT:
2061 1346 : case CONST_DOUBLE:
2062 1346 : case CONST_VECTOR:
2063 1346 : operands[4] = x6;
2064 1346 : x7 = XEXP (x1, 2);
2065 1346 : operands[5] = x7;
2066 1346 : switch (GET_MODE (operands[0]))
2067 : {
2068 442 : case E_V16SImode:
2069 442 : if (pattern484 (x1,
2070 : E_V16SImode,
2071 : E_HImode) != 0)
2072 : return -1;
2073 : return 3;
2074 :
2075 466 : case E_V8SImode:
2076 466 : if (pattern484 (x1,
2077 : E_V8SImode,
2078 : E_QImode) != 0)
2079 : return -1;
2080 : return 4;
2081 :
2082 438 : case E_V4SImode:
2083 438 : if (pattern484 (x1,
2084 : E_V4SImode,
2085 : E_QImode) != 0)
2086 : return -1;
2087 : return 5;
2088 :
2089 : default:
2090 : return -1;
2091 : }
2092 :
2093 : default:
2094 : return -1;
2095 : }
2096 : }
2097 :
2098 : int
2099 180 : pattern501 (rtx x1, machine_mode i1)
2100 : {
2101 180 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2102 180 : int res ATTRIBUTE_UNUSED;
2103 180 : if (GET_MODE (x1) != E_V2HFmode
2104 180 : || !vector_operand (operands[1], i1)
2105 180 : || !const0_operand (operands[3], E_V2HFmode)
2106 360 : || !const0_operand (operands[4], E_V6HFmode))
2107 0 : return -1;
2108 : return 0;
2109 : }
2110 :
2111 : int
2112 432 : pattern504 (rtx x1)
2113 : {
2114 432 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2115 432 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2116 432 : int res ATTRIBUTE_UNUSED;
2117 432 : x2 = XEXP (x1, 1);
2118 432 : if (GET_MODE (x2) != E_V2SImode)
2119 : return -1;
2120 432 : switch (GET_CODE (x2))
2121 : {
2122 300 : case VEC_SELECT:
2123 300 : x3 = XEXP (x2, 1);
2124 300 : if (GET_CODE (x3) != PARALLEL
2125 300 : || XVECLEN (x3, 0) != 2)
2126 : return -1;
2127 300 : x4 = XVECEXP (x3, 0, 0);
2128 300 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2129 : return -1;
2130 300 : x5 = XVECEXP (x3, 0, 1);
2131 300 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
2132 : return -1;
2133 300 : x6 = XEXP (x2, 0);
2134 300 : operands[2] = x6;
2135 300 : if (!nonimm_or_0_operand (operands[2], E_V4SImode))
2136 : return -1;
2137 292 : x7 = XEXP (x1, 2);
2138 292 : operands[3] = x7;
2139 292 : return 0;
2140 :
2141 128 : case CONST_VECTOR:
2142 128 : if (XVECLEN (x2, 0) != 2)
2143 : return -1;
2144 128 : x8 = XVECEXP (x2, 0, 0);
2145 128 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2146 : return -1;
2147 120 : x9 = XVECEXP (x2, 0, 1);
2148 120 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2149 : return -1;
2150 120 : x7 = XEXP (x1, 2);
2151 120 : operands[2] = x7;
2152 120 : return 1;
2153 :
2154 : default:
2155 : return -1;
2156 : }
2157 : }
2158 :
2159 : int
2160 7081 : pattern512 (rtx x1, machine_mode i1, int i2)
2161 : {
2162 7081 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2163 7081 : rtx x2, x3;
2164 7081 : int res ATTRIBUTE_UNUSED;
2165 7081 : if (XVECLEN (x1, 0) != i2
2166 6959 : || GET_MODE (x1) != i1)
2167 : return -1;
2168 6959 : x2 = XVECEXP (x1, 0, 0);
2169 6959 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2170 : return -1;
2171 6957 : x3 = XVECEXP (x1, 0, 1);
2172 6957 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2173 0 : return -1;
2174 : return 0;
2175 : }
2176 :
2177 : int
2178 567 : pattern517 (rtx x1)
2179 : {
2180 567 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2181 567 : int res ATTRIBUTE_UNUSED;
2182 567 : if (!register_operand (operands[0], E_V8HFmode)
2183 567 : || GET_MODE (x1) != E_V8HFmode)
2184 : return -1;
2185 510 : switch (GET_MODE (operands[1]))
2186 : {
2187 196 : case E_V8HImode:
2188 196 : if (!vector_operand (operands[1], E_V8HImode))
2189 : return -1;
2190 : return 0;
2191 :
2192 249 : case E_V8SImode:
2193 249 : if (!vector_operand (operands[1], E_V8SImode))
2194 : return -1;
2195 : return 1;
2196 :
2197 62 : case E_V8DImode:
2198 62 : if (!vector_operand (operands[1], E_V8DImode))
2199 : return -1;
2200 : return 2;
2201 :
2202 : default:
2203 : return -1;
2204 : }
2205 : }
2206 :
2207 : int
2208 24807 : pattern523 (rtx x1)
2209 : {
2210 24807 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2211 24807 : rtx x2, x3, x4, x5, x6, x7, x8;
2212 24807 : int res ATTRIBUTE_UNUSED;
2213 24807 : x2 = XEXP (x1, 1);
2214 24807 : if (XVECLEN (x2, 0) < 1)
2215 : return -1;
2216 24807 : operands[4] = x2;
2217 24807 : if (!pmovzx_parallel (operands[4], E_VOIDmode))
2218 : return -1;
2219 86 : x3 = XEXP (x1, 0);
2220 86 : x4 = XEXP (x3, 0);
2221 86 : x5 = XEXP (x4, 0);
2222 86 : operands[1] = x5;
2223 86 : x6 = XEXP (x4, 1);
2224 86 : operands[2] = x6;
2225 86 : x7 = XEXP (x3, 1);
2226 86 : operands[3] = x7;
2227 86 : x8 = XVECEXP (x2, 0, 0);
2228 86 : operands[5] = x8;
2229 86 : if (!const_int_operand (operands[5], E_VOIDmode))
2230 : return -1;
2231 86 : switch (GET_MODE (operands[0]))
2232 : {
2233 4 : case E_V16SImode:
2234 4 : return pattern522 (x1,
2235 : E_V16SImode,
2236 : E_V8SImode,
2237 4 : E_V32SImode); /* [-1, 0] */
2238 :
2239 4 : case E_V8SImode:
2240 4 : if (pattern522 (x1,
2241 : E_V8SImode,
2242 : E_V4SImode,
2243 : E_V16SImode) != 0)
2244 : return -1;
2245 : return 1;
2246 :
2247 61 : case E_V4SImode:
2248 61 : if (!register_operand (operands[0], E_V4SImode)
2249 61 : || GET_MODE (x1) != E_V4SImode
2250 61 : || GET_MODE (x3) != E_V8SImode
2251 61 : || GET_MODE (x4) != E_V4SImode
2252 61 : || !vector_operand (operands[1], E_V2SImode)
2253 61 : || !const0_operand (operands[2], E_V2SImode)
2254 65 : || !const0_operand (operands[3], E_V4SImode))
2255 57 : return -1;
2256 : return 2;
2257 :
2258 : default:
2259 : return -1;
2260 : }
2261 : }
2262 :
2263 : int
2264 127919 : pattern539 (rtx x1)
2265 : {
2266 127919 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2267 127919 : rtx x2, x3;
2268 127919 : int res ATTRIBUTE_UNUSED;
2269 127919 : x2 = XEXP (x1, 1);
2270 127919 : switch (GET_CODE (x2))
2271 : {
2272 100491 : case REG:
2273 100491 : case SUBREG:
2274 100491 : case MEM:
2275 100491 : case VEC_DUPLICATE:
2276 100491 : operands[2] = x2;
2277 100491 : return 0;
2278 :
2279 2239 : case NOT:
2280 2239 : x3 = XEXP (x2, 0);
2281 2239 : operands[2] = x3;
2282 2239 : switch (GET_MODE (operands[0]))
2283 : {
2284 0 : case E_V16SImode:
2285 0 : if (pattern538 (x1,
2286 : E_V16SImode) != 0)
2287 : return -1;
2288 : return 1;
2289 :
2290 0 : case E_V8DImode:
2291 0 : if (pattern538 (x1,
2292 : E_V8DImode) != 0)
2293 : return -1;
2294 : return 2;
2295 :
2296 2 : case E_V64QImode:
2297 2 : if (pattern538 (x1,
2298 : E_V64QImode) != 0)
2299 : return -1;
2300 : return 3;
2301 :
2302 0 : case E_V32QImode:
2303 0 : if (pattern538 (x1,
2304 : E_V32QImode) != 0)
2305 : return -1;
2306 : return 4;
2307 :
2308 0 : case E_V16QImode:
2309 0 : if (pattern538 (x1,
2310 : E_V16QImode) != 0)
2311 : return -1;
2312 : return 5;
2313 :
2314 0 : case E_V32HImode:
2315 0 : if (pattern538 (x1,
2316 : E_V32HImode) != 0)
2317 : return -1;
2318 : return 6;
2319 :
2320 0 : case E_V16HImode:
2321 0 : if (pattern538 (x1,
2322 : E_V16HImode) != 0)
2323 : return -1;
2324 : return 7;
2325 :
2326 1 : case E_V8HImode:
2327 1 : if (pattern538 (x1,
2328 : E_V8HImode) != 0)
2329 : return -1;
2330 : return 8;
2331 :
2332 3 : case E_V8SImode:
2333 3 : if (pattern538 (x1,
2334 : E_V8SImode) != 0)
2335 : return -1;
2336 : return 9;
2337 :
2338 22 : case E_V4SImode:
2339 22 : if (pattern538 (x1,
2340 : E_V4SImode) != 0)
2341 : return -1;
2342 : return 10;
2343 :
2344 0 : case E_V4DImode:
2345 0 : if (pattern538 (x1,
2346 : E_V4DImode) != 0)
2347 : return -1;
2348 : return 11;
2349 :
2350 0 : case E_V2DImode:
2351 0 : if (pattern538 (x1,
2352 : E_V2DImode) != 0)
2353 : return -1;
2354 : return 12;
2355 :
2356 : default:
2357 : return -1;
2358 : }
2359 :
2360 : default:
2361 : return -1;
2362 : }
2363 : }
2364 :
2365 : int
2366 55 : pattern547 (rtx x1, machine_mode i1)
2367 : {
2368 55 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2369 55 : int res ATTRIBUTE_UNUSED;
2370 55 : if (!register_operand (operands[0], i1)
2371 55 : || GET_MODE (x1) != i1
2372 55 : || !nonimmediate_operand (operands[1], i1)
2373 110 : || !register_operand (operands[2], i1))
2374 0 : return -1;
2375 : return 0;
2376 : }
2377 :
2378 : int
2379 676 : pattern553 (rtx x1)
2380 : {
2381 676 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2382 676 : rtx x2, x3, x4, x5, x6, x7;
2383 676 : int res ATTRIBUTE_UNUSED;
2384 676 : x2 = XVECEXP (x1, 0, 1);
2385 676 : if (GET_CODE (x2) != CLOBBER)
2386 : return -1;
2387 676 : x3 = XEXP (x2, 0);
2388 676 : if (GET_CODE (x3) != REG
2389 676 : || REGNO (x3) != 17
2390 1352 : || GET_MODE (x3) != E_CCmode)
2391 : return -1;
2392 676 : x4 = XVECEXP (x1, 0, 0);
2393 676 : x5 = XEXP (x4, 0);
2394 676 : operands[0] = x5;
2395 676 : x6 = XEXP (x4, 1);
2396 676 : x7 = XVECEXP (x6, 0, 0);
2397 676 : operands[1] = x7;
2398 676 : if (!register_operand (operands[1], E_XFmode))
2399 : return -1;
2400 488 : return pattern552 (x6); /* [-1, 2] */
2401 : }
2402 :
2403 : int
2404 783 : pattern556 (rtx x1, int i1, int i2)
2405 : {
2406 783 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2407 783 : rtx x2, x3, x4, x5, x6;
2408 783 : int res ATTRIBUTE_UNUSED;
2409 783 : x2 = XVECEXP (x1, 0, 1);
2410 783 : if (GET_CODE (x2) != SET)
2411 : return -1;
2412 699 : x3 = XEXP (x2, 1);
2413 699 : if (GET_CODE (x3) != UNSPEC
2414 625 : || XVECLEN (x3, 0) != i2
2415 625 : || XINT (x3, 1) != i1
2416 605 : || GET_MODE (x3) != E_CCmode)
2417 : return -1;
2418 605 : x4 = XEXP (x2, 0);
2419 605 : if (GET_CODE (x4) != REG
2420 605 : || REGNO (x4) != 17
2421 1210 : || GET_MODE (x4) != E_CCmode)
2422 : return -1;
2423 605 : x5 = XVECEXP (x1, 0, 0);
2424 605 : x6 = XEXP (x5, 0);
2425 605 : operands[0] = x6;
2426 605 : return 0;
2427 : }
2428 :
2429 : int
2430 415652 : pattern562 (rtx x1)
2431 : {
2432 415652 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2433 415652 : rtx x2, x3, x4, x5, x6, x7, x8;
2434 415652 : int res ATTRIBUTE_UNUSED;
2435 415652 : if (!bt_comparison_operator (operands[1], E_QImode))
2436 : return -1;
2437 123521 : x2 = XVECEXP (x1, 0, 0);
2438 123521 : x3 = XEXP (x2, 1);
2439 123521 : x4 = XEXP (x3, 1);
2440 123521 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + -1])
2441 : return -1;
2442 4132 : x5 = XVECEXP (x1, 0, 1);
2443 4132 : if (GET_CODE (x5) != CLOBBER)
2444 : return -1;
2445 772 : x6 = XEXP (x5, 0);
2446 772 : if (GET_CODE (x6) != REG
2447 772 : || REGNO (x6) != 17
2448 1494 : || GET_MODE (x6) != E_CCmode)
2449 : return -1;
2450 158 : x7 = XEXP (x2, 0);
2451 158 : operands[0] = x7;
2452 158 : if (!nonimmediate_operand (operands[0], E_QImode))
2453 : return -1;
2454 158 : x8 = XEXP (x3, 0);
2455 158 : operands[2] = x8;
2456 158 : switch (GET_MODE (operands[2]))
2457 : {
2458 32 : case E_QImode:
2459 32 : if (!register_operand (operands[2], E_QImode))
2460 : return -1;
2461 : return 0;
2462 :
2463 32 : case E_HImode:
2464 32 : if (!register_operand (operands[2], E_HImode))
2465 : return -1;
2466 : return 1;
2467 :
2468 50 : case E_SImode:
2469 50 : if (!register_operand (operands[2], E_SImode))
2470 : return -1;
2471 : return 2;
2472 :
2473 44 : case E_DImode:
2474 44 : if (!register_operand (operands[2], E_DImode))
2475 : return -1;
2476 : return 3;
2477 :
2478 : default:
2479 : return -1;
2480 : }
2481 : }
2482 :
2483 : int
2484 214 : pattern579 ()
2485 : {
2486 214 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2487 214 : int res ATTRIBUTE_UNUSED;
2488 214 : if (!register_operand (operands[1], E_SImode)
2489 214 : || !register_operand (operands[2], E_SImode))
2490 30 : return -1;
2491 184 : switch (GET_MODE (operands[0]))
2492 : {
2493 0 : case E_SImode:
2494 0 : if (!register_operand (operands[0], E_SImode))
2495 : return -1;
2496 : return 0;
2497 :
2498 184 : case E_DImode:
2499 184 : if (!register_operand (operands[0], E_DImode))
2500 : return -1;
2501 : return 1;
2502 :
2503 : default:
2504 : return -1;
2505 : }
2506 : }
2507 :
2508 : int
2509 836 : pattern587 (rtx x1, machine_mode i1)
2510 : {
2511 836 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2512 836 : rtx x2, x3, x4, x5, x6;
2513 836 : int res ATTRIBUTE_UNUSED;
2514 836 : if (!extract_high_operator (operands[3], i1))
2515 : return -1;
2516 836 : x2 = XEXP (x1, 0);
2517 836 : if (GET_MODE (x2) != i1)
2518 : return -1;
2519 836 : x3 = XEXP (x1, 1);
2520 836 : if (GET_MODE (x3) != i1)
2521 : return -1;
2522 836 : x4 = XEXP (x3, 0);
2523 836 : x5 = XEXP (x4, 0);
2524 836 : x6 = XEXP (x5, 0);
2525 836 : if (GET_MODE (x6) != i1)
2526 0 : return -1;
2527 : return 0;
2528 : }
2529 :
2530 : int
2531 167209 : pattern591 (rtx x1, rtx_code i1)
2532 : {
2533 167209 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2534 167209 : rtx x2, x3, x4, x5;
2535 167209 : int res ATTRIBUTE_UNUSED;
2536 167209 : x2 = XVECEXP (x1, 0, 1);
2537 167209 : if (GET_CODE (x2) != SET)
2538 : return -1;
2539 167209 : x3 = XEXP (x2, 1);
2540 167209 : if (GET_CODE (x3) != i1)
2541 : return -1;
2542 167209 : x4 = XVECEXP (x1, 0, 2);
2543 167209 : x5 = XEXP (x4, 0);
2544 167209 : if (GET_CODE (x5) != REG
2545 167209 : || REGNO (x5) != 17
2546 334418 : || GET_MODE (x5) != E_CCmode)
2547 0 : return -1;
2548 : return 0;
2549 : }
2550 :
2551 : int
2552 139794 : pattern595 (rtx x1, rtx_code i1)
2553 : {
2554 139794 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2555 139794 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2556 139794 : int res ATTRIBUTE_UNUSED;
2557 139794 : x2 = XVECEXP (x1, 0, 1);
2558 139794 : if (GET_CODE (x2) != SET)
2559 : return -1;
2560 139794 : x3 = XEXP (x2, 1);
2561 139794 : if (GET_CODE (x3) != i1)
2562 : return -1;
2563 139794 : x4 = XVECEXP (x1, 0, 2);
2564 139794 : if (GET_CODE (x4) != UNSPEC
2565 42 : || XVECLEN (x4, 0) != 1
2566 42 : || XINT (x4, 1) != 33)
2567 : return -1;
2568 42 : x5 = XVECEXP (x4, 0, 0);
2569 42 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2570 : return -1;
2571 42 : x6 = XVECEXP (x1, 0, 3);
2572 42 : x7 = XEXP (x6, 0);
2573 42 : if (GET_CODE (x7) != REG
2574 42 : || REGNO (x7) != 17
2575 84 : || GET_MODE (x7) != E_CCmode)
2576 : return -1;
2577 42 : x8 = XVECEXP (x1, 0, 0);
2578 42 : x9 = XEXP (x8, 0);
2579 42 : operands[0] = x9;
2580 42 : return pattern594 (x1); /* [-1, 1] */
2581 : }
2582 :
2583 : int
2584 64 : pattern605 (rtx x1)
2585 : {
2586 64 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2587 64 : rtx x2, x3, x4, x5;
2588 64 : int res ATTRIBUTE_UNUSED;
2589 64 : x2 = XEXP (x1, 0);
2590 64 : x3 = XEXP (x2, 0);
2591 64 : if (GET_CODE (x3) != NOT)
2592 : return -1;
2593 8 : x4 = XEXP (x3, 0);
2594 8 : operands[1] = x4;
2595 8 : x5 = XEXP (x1, 1);
2596 8 : operands[2] = x5;
2597 8 : switch (GET_MODE (operands[0]))
2598 : {
2599 2 : case E_V16SImode:
2600 2 : return pattern604 (x1,
2601 : E_V16SImode,
2602 2 : E_SImode); /* [-1, 0] */
2603 :
2604 2 : case E_V8DImode:
2605 2 : if (pattern604 (x1,
2606 : E_V8DImode,
2607 : E_DImode) != 0)
2608 : return -1;
2609 : return 1;
2610 :
2611 2 : case E_V64QImode:
2612 2 : if (pattern604 (x1,
2613 : E_V64QImode,
2614 : E_QImode) != 0)
2615 : return -1;
2616 : return 2;
2617 :
2618 0 : case E_V32QImode:
2619 0 : if (pattern604 (x1,
2620 : E_V32QImode,
2621 : E_QImode) != 0)
2622 : return -1;
2623 : return 3;
2624 :
2625 0 : case E_V16QImode:
2626 0 : if (pattern604 (x1,
2627 : E_V16QImode,
2628 : E_QImode) != 0)
2629 : return -1;
2630 : return 4;
2631 :
2632 2 : case E_V32HImode:
2633 2 : if (pattern604 (x1,
2634 : E_V32HImode,
2635 : E_HImode) != 0)
2636 : return -1;
2637 : return 5;
2638 :
2639 0 : case E_V16HImode:
2640 0 : if (pattern604 (x1,
2641 : E_V16HImode,
2642 : E_HImode) != 0)
2643 : return -1;
2644 : return 6;
2645 :
2646 0 : case E_V8HImode:
2647 0 : if (pattern604 (x1,
2648 : E_V8HImode,
2649 : E_HImode) != 0)
2650 : return -1;
2651 : return 7;
2652 :
2653 0 : case E_V8SImode:
2654 0 : if (pattern604 (x1,
2655 : E_V8SImode,
2656 : E_SImode) != 0)
2657 : return -1;
2658 : return 8;
2659 :
2660 0 : case E_V4SImode:
2661 0 : if (pattern604 (x1,
2662 : E_V4SImode,
2663 : E_SImode) != 0)
2664 : return -1;
2665 : return 9;
2666 :
2667 0 : case E_V4DImode:
2668 0 : if (pattern604 (x1,
2669 : E_V4DImode,
2670 : E_DImode) != 0)
2671 : return -1;
2672 : return 10;
2673 :
2674 0 : case E_V2DImode:
2675 0 : if (pattern604 (x1,
2676 : E_V2DImode,
2677 : E_DImode) != 0)
2678 : return -1;
2679 : return 11;
2680 :
2681 : default:
2682 : return -1;
2683 : }
2684 : }
2685 :
2686 : int
2687 27244 : pattern621 (rtx x1, machine_mode i1)
2688 : {
2689 27244 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2690 27244 : rtx x2;
2691 27244 : int res ATTRIBUTE_UNUSED;
2692 27244 : if (!register_operand (operands[0], i1)
2693 27244 : || GET_MODE (x1) != i1)
2694 : return -1;
2695 27048 : x2 = XEXP (x1, 0);
2696 27048 : if (GET_MODE (x2) != i1
2697 27048 : || !register_operand (operands[1], i1)
2698 49424 : || !register_operand (operands[2], i1))
2699 15744 : return -1;
2700 : return 0;
2701 : }
2702 :
2703 : int
2704 23975 : pattern626 (rtx x1)
2705 : {
2706 23975 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2707 23975 : rtx x2;
2708 23975 : int res ATTRIBUTE_UNUSED;
2709 23975 : x2 = XEXP (x1, 1);
2710 23975 : operands[2] = x2;
2711 23975 : if (!const_1_to_63_operand (operands[2], E_QImode)
2712 23946 : || !register_operand (operands[0], E_TImode)
2713 27 : || GET_MODE (x1) != E_TImode
2714 24002 : || !register_operand (operands[1], E_TImode))
2715 23967 : return -1;
2716 : return 0;
2717 : }
2718 :
2719 : int
2720 836 : pattern632 (rtx x1)
2721 : {
2722 836 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2723 836 : rtx x2, x3, x4, x5;
2724 836 : int res ATTRIBUTE_UNUSED;
2725 836 : x2 = XEXP (x1, 0);
2726 836 : x3 = XEXP (x2, 0);
2727 836 : x4 = XEXP (x3, 1);
2728 836 : operands[2] = x4;
2729 836 : if (!register_operand (operands[2], E_QImode))
2730 : return -1;
2731 741 : x5 = XEXP (x1, 1);
2732 741 : operands[1] = x5;
2733 741 : switch (GET_MODE (operands[0]))
2734 : {
2735 405 : case E_SImode:
2736 405 : return pattern631 (x1,
2737 405 : E_SImode); /* [-1, 0] */
2738 :
2739 312 : case E_DImode:
2740 312 : if (pattern631 (x1,
2741 : E_DImode) != 0)
2742 : return -1;
2743 : return 1;
2744 :
2745 : default:
2746 : return -1;
2747 : }
2748 : }
2749 :
2750 : int
2751 2032 : pattern643 (rtx x1)
2752 : {
2753 2032 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2754 2032 : rtx x2, x3, x4;
2755 2032 : int res ATTRIBUTE_UNUSED;
2756 2032 : x2 = XEXP (x1, 0);
2757 2032 : x3 = XVECEXP (x2, 0, 0);
2758 2032 : operands[1] = x3;
2759 2032 : x4 = XEXP (x1, 2);
2760 2032 : operands[3] = x4;
2761 2032 : switch (GET_MODE (operands[0]))
2762 : {
2763 968 : case E_V16QImode:
2764 968 : return pattern642 (x1,
2765 : E_V16QImode,
2766 : E_HImode,
2767 968 : E_V16HFmode); /* [-1, 0] */
2768 :
2769 1004 : case E_V32QImode:
2770 1004 : if (pattern642 (x1,
2771 : E_V32QImode,
2772 : E_SImode,
2773 : E_V32HFmode) != 0)
2774 : return -1;
2775 : return 1;
2776 :
2777 : default:
2778 : return -1;
2779 : }
2780 : }
2781 :
2782 : int
2783 15110 : pattern649 (rtx x1)
2784 : {
2785 15110 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2786 15110 : rtx x2, x3;
2787 15110 : int res ATTRIBUTE_UNUSED;
2788 15110 : x2 = XEXP (x1, 1);
2789 15110 : switch (GET_CODE (x2))
2790 : {
2791 4559 : case CONST_INT:
2792 4559 : case CONST_DOUBLE:
2793 4559 : case CONST_VECTOR:
2794 4559 : operands[4] = x2;
2795 4559 : x3 = XEXP (x1, 2);
2796 4559 : switch (GET_CODE (x3))
2797 : {
2798 3697 : case REG:
2799 3697 : case SUBREG:
2800 3697 : operands[5] = x3;
2801 3697 : switch (GET_MODE (operands[0]))
2802 : {
2803 : case E_V32HFmode:
2804 : return 0;
2805 :
2806 438 : case E_V16HFmode:
2807 438 : return 1;
2808 :
2809 318 : case E_V8HFmode:
2810 318 : return 2;
2811 :
2812 289 : case E_V16SFmode:
2813 289 : return 3;
2814 :
2815 424 : case E_V8SFmode:
2816 424 : return 4;
2817 :
2818 346 : case E_V4SFmode:
2819 346 : return 5;
2820 :
2821 165 : case E_V8DFmode:
2822 165 : return 6;
2823 :
2824 444 : case E_V4DFmode:
2825 444 : return 7;
2826 :
2827 343 : case E_V2DFmode:
2828 343 : return 8;
2829 :
2830 279 : case E_V32BFmode:
2831 279 : return 9;
2832 :
2833 279 : case E_V16BFmode:
2834 279 : return 10;
2835 :
2836 279 : case E_V8BFmode:
2837 279 : return 11;
2838 :
2839 : default:
2840 : return -1;
2841 : }
2842 :
2843 670 : case CONST_INT:
2844 670 : if (XWINT (x3, 0) != 1L)
2845 : return -1;
2846 526 : switch (GET_MODE (operands[0]))
2847 : {
2848 : case E_V4SFmode:
2849 : return 12;
2850 :
2851 263 : case E_V2DFmode:
2852 263 : return 13;
2853 :
2854 : default:
2855 : return -1;
2856 : }
2857 :
2858 : default:
2859 : return -1;
2860 : }
2861 :
2862 10414 : case REG:
2863 10414 : case SUBREG:
2864 10414 : case MEM:
2865 10414 : res = pattern648 (x1);
2866 10414 : if (res >= 0)
2867 9541 : return res + 14; /* [14, 28] */
2868 : return -1;
2869 :
2870 : default:
2871 : return -1;
2872 : }
2873 : }
2874 :
2875 : int
2876 275 : pattern666 (rtx x1, machine_mode i1, machine_mode i2)
2877 : {
2878 275 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2879 275 : rtx x2;
2880 275 : int res ATTRIBUTE_UNUSED;
2881 275 : if (!register_operand (operands[0], i2)
2882 255 : || GET_MODE (x1) != i2
2883 255 : || !register_operand (operands[1], i2)
2884 500 : || !vector_operand (operands[2], i2))
2885 58 : return -1;
2886 217 : x2 = XVECEXP (x1, 0, 2);
2887 217 : if (GET_MODE (x2) != i2
2888 217 : || !register_operand (operands[3], i1)
2889 425 : || !const0_operand (operands[4], i1))
2890 9 : return -1;
2891 : return 0;
2892 : }
2893 :
2894 : int
2895 309 : pattern672 (rtx x1, machine_mode i1)
2896 : {
2897 309 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2898 309 : rtx x2;
2899 309 : int res ATTRIBUTE_UNUSED;
2900 309 : if (!register_operand (operands[0], i1)
2901 289 : || GET_MODE (x1) != i1
2902 289 : || !vector_operand (operands[1], i1)
2903 598 : || !register_operand (operands[2], i1))
2904 90 : return -1;
2905 219 : x2 = XVECEXP (x1, 0, 2);
2906 219 : if (GET_MODE (x2) != i1
2907 219 : || !register_operand (operands[3], i1)
2908 438 : || !vector_all_ones_operand (operands[4], i1))
2909 201 : return -1;
2910 : return 0;
2911 : }
2912 :
2913 : int
2914 997 : pattern676 (rtx x1, machine_mode i1)
2915 : {
2916 997 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2917 997 : int res ATTRIBUTE_UNUSED;
2918 997 : if (!register_operand (operands[0], i1)
2919 898 : || GET_MODE (x1) != i1
2920 898 : || !vector_operand (operands[1], i1)
2921 866 : || !vector_operand (operands[2], i1)
2922 1832 : || !vector_operand (operands[3], i1))
2923 177 : return -1;
2924 : return 0;
2925 : }
2926 :
2927 : int
2928 131 : pattern679 (rtx x1)
2929 : {
2930 131 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2931 131 : rtx x2, x3, x4, x5;
2932 131 : int res ATTRIBUTE_UNUSED;
2933 131 : x2 = XEXP (x1, 0);
2934 131 : if (GET_MODE (x2) != E_V2SImode)
2935 : return -1;
2936 131 : x3 = XEXP (x1, 1);
2937 131 : if (GET_CODE (x3) != CONST_VECTOR
2938 131 : || XVECLEN (x3, 0) != 2
2939 131 : || GET_MODE (x3) != E_V2SImode)
2940 : return -1;
2941 131 : x4 = XVECEXP (x3, 0, 0);
2942 131 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2943 : return -1;
2944 131 : x5 = XVECEXP (x3, 0, 1);
2945 131 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
2946 131 : || !register_operand (operands[0], E_V4SImode)
2947 131 : || GET_MODE (x1) != E_V4SImode
2948 262 : || !nonimmediate_operand (operands[1], E_V2DFmode))
2949 22 : return -1;
2950 : return 0;
2951 : }
2952 :
2953 : int
2954 25 : pattern687 (rtx x1, machine_mode i1, machine_mode i2)
2955 : {
2956 25 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2957 25 : rtx x2, x3, x4, x5, x6, x7, x8;
2958 25 : int res ATTRIBUTE_UNUSED;
2959 25 : x2 = XEXP (x1, 0);
2960 25 : x3 = XEXP (x2, 1);
2961 25 : x4 = XVECEXP (x3, 0, 0);
2962 25 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2963 : return -1;
2964 25 : x5 = XVECEXP (x3, 0, 1);
2965 25 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
2966 : return -1;
2967 25 : x6 = XVECEXP (x3, 0, 2);
2968 25 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
2969 : return -1;
2970 25 : x7 = XVECEXP (x3, 0, 3);
2971 25 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 3]
2972 25 : || GET_MODE (x2) != i2)
2973 : return -1;
2974 25 : x8 = XEXP (x2, 0);
2975 25 : if (GET_MODE (x8) != i1)
2976 : return -1;
2977 25 : return pattern28 (x1); /* [-1, 1] */
2978 : }
2979 :
2980 : int
2981 314807 : pattern695 (rtx x1, rtx_code i1)
2982 : {
2983 314807 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2984 314807 : rtx x2, x3, x4, x5, x6, x7;
2985 314807 : int res ATTRIBUTE_UNUSED;
2986 314807 : x2 = XVECEXP (x1, 0, 0);
2987 314807 : x3 = XEXP (x2, 0);
2988 314807 : if (GET_CODE (x3) != REG
2989 314807 : || REGNO (x3) != 17
2990 629574 : || GET_MODE (x3) != E_CCOmode)
2991 : return -1;
2992 314767 : x4 = XVECEXP (x1, 0, 1);
2993 314767 : if (GET_CODE (x4) != SET)
2994 : return -1;
2995 314767 : x5 = XEXP (x4, 1);
2996 314767 : if (GET_CODE (x5) != i1)
2997 : return -1;
2998 301815 : x6 = XEXP (x2, 1);
2999 301815 : if (GET_MODE (x6) != E_CCOmode)
3000 : return -1;
3001 301815 : x7 = XEXP (x4, 0);
3002 301815 : operands[0] = x7;
3003 301815 : return 0;
3004 : }
3005 :
3006 : int
3007 10383 : pattern702 (rtx x1)
3008 : {
3009 10383 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3010 10383 : rtx x2, x3, x4, x5, x6, x7;
3011 10383 : int res ATTRIBUTE_UNUSED;
3012 10383 : x2 = XVECEXP (x1, 0, 0);
3013 10383 : x3 = XEXP (x2, 1);
3014 10383 : x4 = XEXP (x3, 1);
3015 10383 : x5 = XEXP (x4, 1);
3016 10383 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3017 : return -1;
3018 10265 : x6 = XVECEXP (x1, 0, 1);
3019 10265 : if (GET_CODE (x6) != CLOBBER)
3020 : return -1;
3021 9946 : x7 = XEXP (x6, 0);
3022 9946 : if (GET_CODE (x7) != REG
3023 9946 : || REGNO (x7) != 17
3024 19892 : || GET_MODE (x7) != E_CCmode)
3025 : return -1;
3026 9946 : return pattern701 (x2); /* [-1, 3] */
3027 : }
3028 :
3029 : int
3030 687 : pattern707 (rtx x1)
3031 : {
3032 687 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3033 687 : int res ATTRIBUTE_UNUSED;
3034 687 : if (!register_operand (operands[0], E_V2SFmode)
3035 659 : || GET_MODE (x1) != E_V2SFmode
3036 659 : || !register_operand (operands[1], E_V2SFmode)
3037 1184 : || !nonimmediate_operand (operands[2], E_V2SFmode))
3038 279 : return -1;
3039 : return 0;
3040 : }
3041 :
3042 : int
3043 280 : pattern715 (rtx x1, int i1)
3044 : {
3045 280 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3046 280 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
3047 280 : rtx x10;
3048 280 : int res ATTRIBUTE_UNUSED;
3049 280 : x2 = XVECEXP (x1, 0, 0);
3050 280 : x3 = XEXP (x2, 1);
3051 280 : if (GET_MODE (x3) != E_V2DImode)
3052 : return -1;
3053 280 : x4 = XVECEXP (x1, 0, 1);
3054 280 : if (GET_CODE (x4) != SET)
3055 : return -1;
3056 280 : x5 = XEXP (x4, 1);
3057 280 : if (GET_CODE (x5) != UNSPEC_VOLATILE
3058 280 : || XVECLEN (x5, 0) != 2
3059 280 : || XINT (x5, 1) != i1
3060 280 : || GET_MODE (x5) != E_CCZmode)
3061 : return -1;
3062 280 : x6 = XEXP (x4, 0);
3063 280 : if (GET_CODE (x6) != REG
3064 280 : || REGNO (x6) != 17
3065 280 : || GET_MODE (x6) != E_CCZmode
3066 560 : || !register_operand (operands[0], E_V2DImode))
3067 0 : return -1;
3068 280 : x7 = XVECEXP (x3, 0, 0);
3069 280 : operands[1] = x7;
3070 280 : if (!register_operand (operands[1], E_V2DImode))
3071 : return -1;
3072 264 : x8 = XVECEXP (x3, 0, 1);
3073 264 : operands[2] = x8;
3074 264 : if (!memory_operand (operands[2], E_BLKmode))
3075 : return -1;
3076 264 : x9 = XVECEXP (x5, 0, 0);
3077 264 : if (!rtx_equal_p (x9, operands[1]))
3078 : return -1;
3079 264 : x10 = XVECEXP (x5, 0, 1);
3080 264 : if (!rtx_equal_p (x10, operands[2]))
3081 : return -1;
3082 : return 0;
3083 : }
3084 :
3085 : int
3086 32716 : pattern726 (rtx x1, machine_mode i1, machine_mode i2)
3087 : {
3088 32716 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3089 32716 : rtx x2, x3, x4, x5, x6;
3090 32716 : int res ATTRIBUTE_UNUSED;
3091 32716 : x2 = XVECEXP (x1, 0, 0);
3092 32716 : x3 = XEXP (x2, 1);
3093 32716 : x4 = XEXP (x3, 0);
3094 32716 : x5 = XEXP (x4, 0);
3095 32716 : if (GET_MODE (x5) != i2
3096 32716 : || !nonimmediate_operand (operands[1], i1))
3097 2858 : return -1;
3098 29858 : x6 = XEXP (x4, 1);
3099 29858 : if (GET_MODE (x6) != i2
3100 29858 : || !nonimmediate_operand (operands[2], i1)
3101 58680 : || pattern725 (x1,
3102 : i1,
3103 : i2) != 0)
3104 1036 : return -1;
3105 : return 0;
3106 : }
3107 :
3108 : int
3109 211617 : pattern735 (rtx x1, machine_mode i1)
3110 : {
3111 211617 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3112 211617 : rtx x2, x3, x4, x5, x6, x7, x8;
3113 211617 : int res ATTRIBUTE_UNUSED;
3114 211617 : if (GET_CODE (x1) != SET)
3115 : return -1;
3116 165758 : x2 = XEXP (x1, 1);
3117 165758 : operands[5] = x2;
3118 165758 : if (!register_operand (operands[5], i1))
3119 : return -1;
3120 54638 : x3 = XEXP (x1, 0);
3121 54638 : if (!rtx_equal_p (x3, operands[1]))
3122 : return -1;
3123 16317 : x4 = PATTERN (peep2_next_insn (3));
3124 16317 : if (GET_CODE (x4) != SET)
3125 : return -1;
3126 15744 : x5 = XEXP (x4, 1);
3127 15744 : if (GET_CODE (x5) != COMPARE)
3128 : return -1;
3129 2078 : x6 = XEXP (x5, 1);
3130 2078 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3131 : return -1;
3132 320 : x7 = XEXP (x4, 0);
3133 320 : if (GET_CODE (x7) != REG
3134 320 : || REGNO (x7) != 17)
3135 : return -1;
3136 320 : x8 = XEXP (x5, 0);
3137 320 : if (!rtx_equal_p (x8, operands[5]))
3138 : return -1;
3139 : return 0;
3140 : }
3141 :
3142 : int
3143 61320 : pattern745 (rtx x1, machine_mode i1)
3144 : {
3145 61320 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3146 61320 : rtx x2;
3147 61320 : int res ATTRIBUTE_UNUSED;
3148 61320 : if (!register_operand (operands[0], i1)
3149 61320 : || GET_MODE (x1) != i1)
3150 : return -1;
3151 59267 : x2 = XEXP (x1, 0);
3152 59267 : if (GET_MODE (x2) != i1
3153 59267 : || !register_operand (operands[1], i1)
3154 117629 : || !nonimmediate_operand (operands[2], i1))
3155 9202 : return -1;
3156 : return 0;
3157 : }
3158 :
3159 : int
3160 12207 : pattern750 (machine_mode i1)
3161 : {
3162 12207 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3163 12207 : int res ATTRIBUTE_UNUSED;
3164 12207 : if (!register_operand (operands[0], i1)
3165 12207 : || !sse_comparison_operator (operands[3], i1)
3166 11556 : || !register_operand (operands[1], i1)
3167 22508 : || !nonimmediate_operand (operands[2], i1))
3168 2775 : return -1;
3169 : return 0;
3170 : }
3171 :
3172 : int
3173 155926 : pattern753 (rtx x1, machine_mode i1)
3174 : {
3175 155926 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3176 155926 : int res ATTRIBUTE_UNUSED;
3177 155926 : if (!register_operand (operands[0], i1)
3178 155385 : || !binary_fp_operator (operands[3], i1)
3179 155385 : || GET_MODE (x1) != i1
3180 311311 : || !register_operand (operands[2], i1))
3181 16812 : return -1;
3182 139114 : switch (GET_MODE (operands[1]))
3183 : {
3184 88 : case E_HImode:
3185 88 : if (!nonimmediate_operand (operands[1], E_HImode))
3186 : return -1;
3187 : return 0;
3188 :
3189 81801 : case E_SImode:
3190 81801 : if (!nonimmediate_operand (operands[1], E_SImode))
3191 : return -1;
3192 : return 1;
3193 :
3194 : default:
3195 : return -1;
3196 : }
3197 : }
3198 :
3199 : int
3200 28032 : pattern765 (rtx x1, machine_mode i1, machine_mode i2)
3201 : {
3202 28032 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3203 28032 : rtx x2, x3;
3204 28032 : int res ATTRIBUTE_UNUSED;
3205 28032 : if (!nonimmediate_operand (operands[0], i2)
3206 27975 : || GET_MODE (x1) != i2
3207 56007 : || !nonimmediate_operand (operands[1], i2))
3208 1269 : return -1;
3209 26763 : x2 = XEXP (x1, 1);
3210 26763 : x3 = XEXP (x2, 0);
3211 26763 : operands[2] = x3;
3212 26763 : if (!nonimmediate_operand (operands[2], i1))
3213 : return -1;
3214 : return 0;
3215 : }
3216 :
3217 : int
3218 1352 : pattern772 (rtx x1, machine_mode i1)
3219 : {
3220 1352 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3221 1352 : int res ATTRIBUTE_UNUSED;
3222 1352 : if (!register_operand (operands[0], i1)
3223 1352 : || GET_MODE (x1) != i1)
3224 : return -1;
3225 1339 : switch (GET_MODE (operands[1]))
3226 : {
3227 0 : case E_HFmode:
3228 0 : if (!nonimmediate_operand (operands[1], E_HFmode))
3229 : return -1;
3230 : return 0;
3231 :
3232 156 : case E_SFmode:
3233 156 : if (!nonimmediate_operand (operands[1], E_SFmode))
3234 : return -1;
3235 : return 1;
3236 :
3237 1183 : case E_DFmode:
3238 1183 : if (!nonimmediate_operand (operands[1], E_DFmode))
3239 : return -1;
3240 : return 2;
3241 :
3242 : default:
3243 : return -1;
3244 : }
3245 : }
3246 :
3247 : int
3248 3922 : pattern781 (rtx x1, machine_mode i1)
3249 : {
3250 3922 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3251 3922 : rtx x2, x3, x4;
3252 3922 : int res ATTRIBUTE_UNUSED;
3253 3922 : if (!register_operand (operands[0], i1)
3254 3922 : || GET_MODE (x1) != i1)
3255 : return -1;
3256 3860 : x2 = XVECEXP (x1, 0, 0);
3257 3860 : if (GET_MODE (x2) != i1)
3258 : return -1;
3259 3860 : x3 = XEXP (x2, 0);
3260 3860 : if (GET_MODE (x3) != i1)
3261 : return -1;
3262 3860 : x4 = XEXP (x3, 0);
3263 3860 : if (GET_MODE (x4) != i1
3264 3860 : || !register_operand (operands[1], i1)
3265 3838 : || !nonimmediate_operand (operands[2], i1)
3266 7666 : || !nonimm_or_0_operand (operands[3], i1))
3267 102 : return -1;
3268 : return 0;
3269 : }
3270 :
3271 : int
3272 21020 : pattern787 (rtx x1, machine_mode i1)
3273 : {
3274 21020 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3275 21020 : int res ATTRIBUTE_UNUSED;
3276 21020 : if (!register_operand (operands[0], i1)
3277 20974 : || GET_MODE (x1) != i1
3278 20974 : || !nonimmediate_operand (operands[1], i1)
3279 41065 : || !register_operand (operands[2], i1))
3280 3127 : return -1;
3281 : return 0;
3282 : }
3283 :
3284 : int
3285 4269 : pattern794 (rtx x1)
3286 : {
3287 4269 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3288 4269 : rtx x2;
3289 4269 : int res ATTRIBUTE_UNUSED;
3290 4269 : x2 = XVECEXP (x1, 0, 1);
3291 4269 : if (!rtx_equal_p (x2, operands[0]))
3292 : return -1;
3293 3105 : switch (GET_MODE (operands[0]))
3294 : {
3295 146 : case E_V64QImode:
3296 146 : return pattern793 (x1,
3297 : E_V64QImode,
3298 146 : E_DImode); /* [-1, 0] */
3299 :
3300 97 : case E_V32QImode:
3301 97 : if (pattern793 (x1,
3302 : E_V32QImode,
3303 : E_SImode) != 0)
3304 : return -1;
3305 : return 1;
3306 :
3307 54 : case E_V16QImode:
3308 54 : if (pattern793 (x1,
3309 : E_V16QImode,
3310 : E_HImode) != 0)
3311 : return -1;
3312 : return 2;
3313 :
3314 225 : case E_V32HImode:
3315 225 : if (pattern793 (x1,
3316 : E_V32HImode,
3317 : E_SImode) != 0)
3318 : return -1;
3319 : return 3;
3320 :
3321 98 : case E_V16HImode:
3322 98 : if (pattern793 (x1,
3323 : E_V16HImode,
3324 : E_HImode) != 0)
3325 : return -1;
3326 : return 4;
3327 :
3328 98 : case E_V8HImode:
3329 98 : if (pattern793 (x1,
3330 : E_V8HImode,
3331 : E_QImode) != 0)
3332 : return -1;
3333 : return 5;
3334 :
3335 183 : case E_V16SImode:
3336 183 : if (pattern793 (x1,
3337 : E_V16SImode,
3338 : E_HImode) != 0)
3339 : return -1;
3340 : return 6;
3341 :
3342 144 : case E_V8SImode:
3343 144 : if (pattern793 (x1,
3344 : E_V8SImode,
3345 : E_QImode) != 0)
3346 : return -1;
3347 : return 7;
3348 :
3349 139 : case E_V4SImode:
3350 139 : if (pattern793 (x1,
3351 : E_V4SImode,
3352 : E_QImode) != 0)
3353 : return -1;
3354 : return 8;
3355 :
3356 547 : case E_V8DImode:
3357 547 : if (pattern793 (x1,
3358 : E_V8DImode,
3359 : E_QImode) != 0)
3360 : return -1;
3361 : return 9;
3362 :
3363 125 : case E_V4DImode:
3364 125 : if (pattern793 (x1,
3365 : E_V4DImode,
3366 : E_QImode) != 0)
3367 : return -1;
3368 : return 10;
3369 :
3370 140 : case E_V2DImode:
3371 140 : if (pattern793 (x1,
3372 : E_V2DImode,
3373 : E_QImode) != 0)
3374 : return -1;
3375 : return 11;
3376 :
3377 81 : case E_V32HFmode:
3378 81 : if (pattern793 (x1,
3379 : E_V32HFmode,
3380 : E_SImode) != 0)
3381 : return -1;
3382 : return 12;
3383 :
3384 129 : case E_V16HFmode:
3385 129 : if (pattern793 (x1,
3386 : E_V16HFmode,
3387 : E_HImode) != 0)
3388 : return -1;
3389 : return 13;
3390 :
3391 81 : case E_V8HFmode:
3392 81 : if (pattern793 (x1,
3393 : E_V8HFmode,
3394 : E_QImode) != 0)
3395 : return -1;
3396 : return 14;
3397 :
3398 0 : case E_V32BFmode:
3399 0 : if (pattern793 (x1,
3400 : E_V32BFmode,
3401 : E_SImode) != 0)
3402 : return -1;
3403 : return 15;
3404 :
3405 0 : case E_V16BFmode:
3406 0 : if (pattern793 (x1,
3407 : E_V16BFmode,
3408 : E_HImode) != 0)
3409 : return -1;
3410 : return 16;
3411 :
3412 0 : case E_V8BFmode:
3413 0 : if (pattern793 (x1,
3414 : E_V8BFmode,
3415 : E_QImode) != 0)
3416 : return -1;
3417 : return 17;
3418 :
3419 110 : case E_V16SFmode:
3420 110 : if (pattern793 (x1,
3421 : E_V16SFmode,
3422 : E_HImode) != 0)
3423 : return -1;
3424 : return 18;
3425 :
3426 146 : case E_V8SFmode:
3427 146 : if (pattern793 (x1,
3428 : E_V8SFmode,
3429 : E_QImode) != 0)
3430 : return -1;
3431 : return 19;
3432 :
3433 122 : case E_V4SFmode:
3434 122 : if (pattern793 (x1,
3435 : E_V4SFmode,
3436 : E_QImode) != 0)
3437 : return -1;
3438 : return 20;
3439 :
3440 159 : case E_V8DFmode:
3441 159 : if (pattern793 (x1,
3442 : E_V8DFmode,
3443 : E_QImode) != 0)
3444 : return -1;
3445 : return 21;
3446 :
3447 158 : case E_V4DFmode:
3448 158 : if (pattern793 (x1,
3449 : E_V4DFmode,
3450 : E_QImode) != 0)
3451 : return -1;
3452 : return 22;
3453 :
3454 123 : case E_V2DFmode:
3455 123 : if (pattern793 (x1,
3456 : E_V2DFmode,
3457 : E_QImode) != 0)
3458 : return -1;
3459 : return 23;
3460 :
3461 : default:
3462 : return -1;
3463 : }
3464 : }
3465 :
3466 : int
3467 12 : pattern836 (rtx x1)
3468 : {
3469 12 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3470 12 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
3471 12 : rtx x10, x11;
3472 12 : int res ATTRIBUTE_UNUSED;
3473 12 : x2 = XVECEXP (x1, 0, 1);
3474 12 : if (GET_CODE (x2) != CLOBBER)
3475 : return -1;
3476 0 : x3 = XVECEXP (x1, 0, 2);
3477 0 : if (GET_CODE (x3) != CLOBBER)
3478 : return -1;
3479 0 : x4 = XEXP (x3, 0);
3480 0 : if (GET_CODE (x4) != REG
3481 0 : || REGNO (x4) != 17
3482 0 : || GET_MODE (x4) != E_CCmode)
3483 : return -1;
3484 0 : x5 = XVECEXP (x1, 0, 0);
3485 0 : x6 = XEXP (x5, 0);
3486 0 : operands[0] = x6;
3487 0 : x7 = XEXP (x5, 1);
3488 0 : x8 = XEXP (x7, 0);
3489 0 : x9 = XEXP (x8, 0);
3490 0 : operands[1] = x9;
3491 0 : if (!register_operand (operands[1], E_SImode))
3492 : return -1;
3493 0 : x10 = XEXP (x8, 1);
3494 0 : operands[2] = x10;
3495 0 : if (!nonimmediate_operand (operands[2], E_SImode))
3496 : return -1;
3497 0 : x11 = XEXP (x2, 0);
3498 0 : operands[3] = x11;
3499 0 : if (!scratch_operand (operands[3], E_SImode))
3500 : return -1;
3501 : return 0;
3502 : }
3503 :
3504 : int
3505 1476 : pattern847 (rtx x1, int i1, int i2, int i3, int i4)
3506 : {
3507 1476 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3508 1476 : rtx x2, x3, x4, x5;
3509 1476 : int res ATTRIBUTE_UNUSED;
3510 1476 : x2 = XVECEXP (x1, 0, 8);
3511 1476 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + i4])
3512 : return -1;
3513 1459 : x3 = XVECEXP (x1, 0, 9);
3514 1459 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + i3])
3515 : return -1;
3516 1459 : x4 = XVECEXP (x1, 0, 10);
3517 1459 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + i2])
3518 : return -1;
3519 1459 : x5 = XVECEXP (x1, 0, 11);
3520 1459 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
3521 0 : return -1;
3522 : return 0;
3523 : }
3524 :
3525 : int
3526 13973281 : pattern853 ()
3527 : {
3528 13973281 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3529 13973281 : int res ATTRIBUTE_UNUSED;
3530 13973281 : switch (GET_MODE (operands[0]))
3531 : {
3532 6448851 : case E_DImode:
3533 6448851 : if (!nonimmediate_operand (operands[0], E_DImode)
3534 6448851 : || !general_operand (operands[1], E_DImode))
3535 456824 : return -1;
3536 : return 0;
3537 :
3538 395152 : case E_TImode:
3539 395152 : if (!nonimmediate_operand (operands[0], E_TImode)
3540 395152 : || !general_operand (operands[1], E_TImode))
3541 2086 : return -1;
3542 : return 1;
3543 :
3544 : default:
3545 : return -1;
3546 : }
3547 : }
3548 :
3549 : int
3550 328469 : pattern858 (rtx x1, machine_mode i1, machine_mode i2)
3551 : {
3552 328469 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3553 328469 : int res ATTRIBUTE_UNUSED;
3554 328469 : if (!register_operand (operands[0], i1)
3555 304371 : || GET_MODE (x1) != i1
3556 304371 : || !register_operand (operands[1], i1)
3557 615754 : || !nonmemory_operand (operands[2], i2))
3558 41472 : return -1;
3559 : return 0;
3560 : }
3561 :
3562 : int
3563 480 : pattern862 (rtx x1)
3564 : {
3565 480 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3566 480 : rtx x2, x3, x4, x5;
3567 480 : int res ATTRIBUTE_UNUSED;
3568 480 : x2 = XEXP (x1, 0);
3569 480 : x3 = XEXP (x2, 1);
3570 480 : x4 = XEXP (x3, 1);
3571 480 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3572 : return -1;
3573 477 : x5 = XEXP (x3, 0);
3574 477 : operands[3] = x5;
3575 477 : if (!int_nonimmediate_operand (operands[3], E_VOIDmode))
3576 : return -1;
3577 474 : switch (GET_MODE (operands[0]))
3578 : {
3579 0 : case E_QImode:
3580 0 : return pattern861 (x1,
3581 0 : E_QImode); /* [-1, 0] */
3582 :
3583 0 : case E_HImode:
3584 0 : if (pattern861 (x1,
3585 : E_HImode) != 0)
3586 : return -1;
3587 : return 1;
3588 :
3589 : default:
3590 : return -1;
3591 : }
3592 : }
3593 :
3594 : int
3595 3555 : pattern868 (rtx x1, machine_mode i1)
3596 : {
3597 3555 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3598 3555 : rtx x2;
3599 3555 : int res ATTRIBUTE_UNUSED;
3600 3555 : if (!memory_operand (operands[0], i1)
3601 3555 : || GET_MODE (x1) != i1)
3602 : return -1;
3603 1380 : x2 = XVECEXP (x1, 0, 0);
3604 1380 : if (GET_MODE (x2) != i1
3605 1380 : || !nonmemory_operand (operands[1], i1))
3606 1363 : return -1;
3607 : return 0;
3608 : }
3609 :
3610 : int
3611 2678 : pattern873 (rtx x1, machine_mode i1, machine_mode i2)
3612 : {
3613 2678 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3614 2678 : rtx x2;
3615 2678 : int res ATTRIBUTE_UNUSED;
3616 2678 : if (!register_operand (operands[0], i1)
3617 2678 : || GET_MODE (x1) != i1)
3618 : return -1;
3619 2555 : x2 = XEXP (x1, 0);
3620 2555 : if (GET_MODE (x2) != i1
3621 2555 : || !nonimmediate_operand (operands[2], i2)
3622 4903 : || !register_operand (operands[1], i1))
3623 766 : return -1;
3624 : return 0;
3625 : }
3626 :
3627 : int
3628 10493 : pattern881 (rtx x1, machine_mode i1)
3629 : {
3630 10493 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3631 10493 : rtx x2;
3632 10493 : int res ATTRIBUTE_UNUSED;
3633 10493 : if (!register_operand (operands[0], i1)
3634 10493 : || GET_MODE (x1) != i1)
3635 : return -1;
3636 10493 : x2 = XEXP (x1, 1);
3637 10493 : if (GET_MODE (x2) != i1
3638 10493 : || !nonimmediate_operand (operands[1], i1))
3639 1879 : return -1;
3640 : return 0;
3641 : }
3642 :
3643 : int
3644 2490 : pattern887 (rtx x1)
3645 : {
3646 2490 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3647 2490 : rtx x2, x3;
3648 2490 : int res ATTRIBUTE_UNUSED;
3649 2490 : x2 = XVECEXP (x1, 0, 0);
3650 2490 : x3 = XVECEXP (x2, 0, 0);
3651 2490 : operands[1] = x3;
3652 2490 : if (!const48_operand (operands[2], E_SImode))
3653 : return -1;
3654 2490 : switch (GET_MODE (operands[0]))
3655 : {
3656 796 : case E_SImode:
3657 796 : return pattern886 (x1,
3658 796 : E_SImode); /* [-1, 2] */
3659 :
3660 784 : case E_DImode:
3661 784 : res = pattern886 (x1,
3662 : E_DImode);
3663 784 : if (res >= 0)
3664 736 : return res + 3; /* [3, 5] */
3665 : return -1;
3666 :
3667 : default:
3668 : return -1;
3669 : }
3670 : }
3671 :
3672 : int
3673 124676 : pattern895 (rtx x1, machine_mode i1, machine_mode i2)
3674 : {
3675 124676 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3676 124676 : rtx x2, x3;
3677 124676 : int res ATTRIBUTE_UNUSED;
3678 124676 : if (!register_operand (operands[0], i1)
3679 124676 : || GET_MODE (x1) != i1)
3680 : return -1;
3681 124551 : x2 = XEXP (x1, 0);
3682 124551 : if (GET_MODE (x2) != i1)
3683 : return -1;
3684 124551 : x3 = XEXP (x2, 0);
3685 124551 : if (GET_MODE (x3) != i2
3686 124551 : || !register_operand (operands[1], i1))
3687 804 : return -1;
3688 123747 : switch (GET_MODE (operands[2]))
3689 : {
3690 71362 : case E_SImode:
3691 71362 : if (!nonimmediate_operand (operands[2], E_SImode))
3692 : return -1;
3693 : return 0;
3694 :
3695 52385 : case E_DImode:
3696 52385 : if (!nonimmediate_operand (operands[2], E_DImode))
3697 : return -1;
3698 : return 1;
3699 :
3700 : default:
3701 : return -1;
3702 : }
3703 : }
3704 :
3705 : int
3706 1128 : pattern909 (rtx x1, machine_mode i1, machine_mode i2)
3707 : {
3708 1128 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3709 1128 : rtx x2, x3, x4;
3710 1128 : int res ATTRIBUTE_UNUSED;
3711 1128 : if (!register_operand (operands[0], i1)
3712 1128 : || GET_MODE (x1) != i1)
3713 : return -1;
3714 1092 : x2 = XVECEXP (x1, 0, 0);
3715 1092 : if (GET_MODE (x2) != i1)
3716 : return -1;
3717 1092 : x3 = XEXP (x2, 0);
3718 1092 : if (GET_MODE (x3) != i1)
3719 : return -1;
3720 1092 : x4 = XEXP (x3, 0);
3721 1092 : if (GET_MODE (x4) != i2
3722 1092 : || !register_operand (operands[1], i1))
3723 28 : return -1;
3724 1064 : switch (GET_MODE (operands[2]))
3725 : {
3726 532 : case E_SImode:
3727 532 : if (!register_operand (operands[2], E_SImode))
3728 : return -1;
3729 : return 0;
3730 :
3731 532 : case E_DImode:
3732 532 : if (!register_operand (operands[2], E_DImode))
3733 : return -1;
3734 : return 1;
3735 :
3736 : default:
3737 : return -1;
3738 : }
3739 : }
3740 :
3741 : int
3742 2759 : pattern917 (rtx x1, machine_mode i1)
3743 : {
3744 2759 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3745 2759 : int res ATTRIBUTE_UNUSED;
3746 2759 : if (!register_operand (operands[0], i1)
3747 2308 : || GET_MODE (x1) != i1
3748 2308 : || !nonimmediate_operand (operands[1], i1)
3749 5039 : || !nonimm_or_0_operand (operands[2], i1))
3750 758 : return -1;
3751 : return 0;
3752 : }
3753 :
3754 : int
3755 376 : pattern922 (rtx x1)
3756 : {
3757 376 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3758 376 : rtx x2;
3759 376 : int res ATTRIBUTE_UNUSED;
3760 376 : x2 = XEXP (x1, 0);
3761 376 : if (GET_MODE (x2) != E_V8QImode
3762 376 : || !register_operand (operands[0], E_V16QImode)
3763 376 : || GET_MODE (x1) != E_V16QImode
3764 376 : || !register_operand (operands[1], E_V16QImode)
3765 368 : || !nonimmediate_operand (operands[2], E_V8HFmode)
3766 710 : || !const0_operand (operands[3], E_V8QImode))
3767 42 : return -1;
3768 : return 0;
3769 : }
3770 :
3771 : int
3772 232 : pattern926 (rtx x1, machine_mode i1)
3773 : {
3774 232 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3775 232 : rtx x2;
3776 232 : int res ATTRIBUTE_UNUSED;
3777 232 : if (!register_operand (operands[0], i1)
3778 232 : || GET_MODE (x1) != i1)
3779 : return -1;
3780 223 : x2 = XEXP (x1, 0);
3781 223 : if (GET_MODE (x2) != i1
3782 223 : || !nonimmediate_operand (operands[1], i1)
3783 220 : || !nonimmediate_operand (operands[2], i1)
3784 443 : || !nonimmediate_operand (operands[3], i1))
3785 3 : return -1;
3786 : return 0;
3787 : }
3788 :
3789 : int
3790 464833 : pattern930 (rtx x1)
3791 : {
3792 464833 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3793 464833 : rtx x2, x3, x4, x5, x6, x7;
3794 464833 : int res ATTRIBUTE_UNUSED;
3795 464833 : x2 = XVECEXP (x1, 0, 2);
3796 464833 : if (GET_CODE (x2) != CONST_INT)
3797 : return -1;
3798 464833 : x3 = XVECEXP (x1, 0, 3);
3799 464833 : if (GET_CODE (x3) != CONST_INT)
3800 : return -1;
3801 464833 : x4 = XVECEXP (x1, 0, 4);
3802 464833 : if (GET_CODE (x4) != CONST_INT)
3803 : return -1;
3804 464833 : x5 = XVECEXP (x1, 0, 5);
3805 464833 : if (GET_CODE (x5) != CONST_INT)
3806 : return -1;
3807 464833 : x6 = XVECEXP (x1, 0, 6);
3808 464833 : if (GET_CODE (x6) != CONST_INT)
3809 : return -1;
3810 464833 : x7 = XVECEXP (x1, 0, 7);
3811 464833 : if (GET_CODE (x7) != CONST_INT)
3812 0 : return -1;
3813 : return 0;
3814 : }
3815 :
3816 : int
3817 214909 : pattern941 (rtx x1, machine_mode i1, machine_mode i2)
3818 : {
3819 214909 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3820 214909 : rtx x2;
3821 214909 : int res ATTRIBUTE_UNUSED;
3822 214909 : if (!nonimmediate_operand (operands[0], i1)
3823 214909 : || GET_MODE (x1) != i1)
3824 : return -1;
3825 214824 : x2 = XEXP (x1, 0);
3826 214824 : if (GET_MODE (x2) != i1
3827 214824 : || !nonimmediate_operand (operands[2], i2)
3828 405940 : || !nonimmediate_operand (operands[1], i1))
3829 50241 : return -1;
3830 : return 0;
3831 : }
3832 :
3833 : int
3834 381860 : pattern946 (rtx x1)
3835 : {
3836 381860 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3837 381860 : rtx x2, x3, x4, x5, x6, x7;
3838 381860 : int res ATTRIBUTE_UNUSED;
3839 381860 : x2 = XEXP (x1, 0);
3840 381860 : operands[0] = x2;
3841 381860 : x3 = XEXP (x1, 1);
3842 381860 : x4 = XEXP (x3, 0);
3843 381860 : x5 = XEXP (x4, 0);
3844 381860 : operands[1] = x5;
3845 381860 : x6 = XEXP (x3, 1);
3846 381860 : operands[2] = x6;
3847 381860 : x7 = XEXP (x4, 1);
3848 381860 : switch (GET_CODE (x7))
3849 : {
3850 179 : case NE:
3851 179 : return pattern945 (x3); /* [-1, 3] */
3852 :
3853 109 : case EQ:
3854 109 : res = pattern945 (x3);
3855 109 : if (res >= 0)
3856 105 : return res + 4; /* [4, 7] */
3857 : return -1;
3858 :
3859 : default:
3860 : return -1;
3861 : }
3862 : }
3863 :
3864 : int
3865 31777 : pattern955 (rtx x1)
3866 : {
3867 31777 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3868 31777 : rtx x2, x3;
3869 31777 : int res ATTRIBUTE_UNUSED;
3870 31777 : if (!const_int_operand (operands[2], E_QImode))
3871 : return -1;
3872 31756 : x2 = XEXP (x1, 1);
3873 31756 : x3 = XEXP (x2, 0);
3874 31756 : operands[3] = x3;
3875 31756 : switch (GET_MODE (operands[0]))
3876 : {
3877 15183 : case E_DImode:
3878 15183 : return pattern954 (x1,
3879 : E_SImode,
3880 15183 : E_DImode); /* [-1, 0] */
3881 :
3882 2915 : case E_TImode:
3883 2915 : if (pattern954 (x1,
3884 : E_DImode,
3885 : E_TImode) != 0)
3886 : return -1;
3887 : return 1;
3888 :
3889 : default:
3890 : return -1;
3891 : }
3892 : }
3893 :
3894 : int
3895 5725471 : pattern965 (rtx x1, machine_mode i1)
3896 : {
3897 5725471 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3898 5725471 : rtx x2, x3, x4, x5;
3899 5725471 : int res ATTRIBUTE_UNUSED;
3900 5725471 : x2 = XEXP (x1, 0);
3901 5725471 : operands[2] = x2;
3902 5725471 : x3 = XEXP (x1, 1);
3903 5725471 : operands[3] = x3;
3904 5725471 : if (!general_gr_operand (operands[3], i1))
3905 : return -1;
3906 4425203 : x4 = PATTERN (peep2_next_insn (1));
3907 4425203 : x5 = XEXP (x4, 1);
3908 4425203 : return pattern964 (x5,
3909 4425203 : i1); /* [-1, 0] */
3910 : }
3911 :
3912 : int
3913 17256 : pattern968 (rtx x1)
3914 : {
3915 17256 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3916 17256 : int res ATTRIBUTE_UNUSED;
3917 17256 : switch (GET_MODE (operands[0]))
3918 : {
3919 13840 : case E_HImode:
3920 13840 : if (!register_operand (operands[0], E_HImode)
3921 13840 : || GET_MODE (x1) != E_HImode)
3922 : return -1;
3923 13821 : switch (GET_MODE (operands[1]))
3924 : {
3925 157 : case E_V16QImode:
3926 157 : if (!nonimm_or_0_operand (operands[1], E_V16QImode)
3927 157 : || !nonimm_or_0_operand (operands[2], E_V16QImode))
3928 24 : return -1;
3929 : return 0;
3930 :
3931 294 : case E_V16HImode:
3932 294 : if (!nonimm_or_0_operand (operands[1], E_V16HImode)
3933 294 : || !nonimm_or_0_operand (operands[2], E_V16HImode))
3934 26 : return -1;
3935 : return 1;
3936 :
3937 13306 : case E_V16SImode:
3938 13306 : if (!nonimm_or_0_operand (operands[1], E_V16SImode)
3939 13306 : || !nonimm_or_0_operand (operands[2], E_V16SImode))
3940 25 : return -1;
3941 : return 2;
3942 :
3943 : default:
3944 : return -1;
3945 : }
3946 :
3947 1415 : case E_QImode:
3948 1415 : if (!register_operand (operands[0], E_QImode)
3949 1415 : || GET_MODE (x1) != E_QImode)
3950 : return -1;
3951 1375 : switch (GET_MODE (operands[1]))
3952 : {
3953 180 : case E_V8HImode:
3954 180 : if (!nonimm_or_0_operand (operands[1], E_V8HImode)
3955 180 : || !nonimm_or_0_operand (operands[2], E_V8HImode))
3956 8 : return -1;
3957 : return 3;
3958 :
3959 220 : case E_V8SImode:
3960 220 : if (!nonimm_or_0_operand (operands[1], E_V8SImode)
3961 220 : || !nonimm_or_0_operand (operands[2], E_V8SImode))
3962 26 : return -1;
3963 : return 4;
3964 :
3965 238 : case E_V4SImode:
3966 238 : if (!nonimm_or_0_operand (operands[1], E_V4SImode)
3967 238 : || !nonimm_or_0_operand (operands[2], E_V4SImode))
3968 28 : return -1;
3969 : return 5;
3970 :
3971 184 : case E_V8DImode:
3972 184 : if (!nonimm_or_0_operand (operands[1], E_V8DImode)
3973 184 : || !nonimm_or_0_operand (operands[2], E_V8DImode))
3974 34 : return -1;
3975 : return 6;
3976 :
3977 191 : case E_V4DImode:
3978 191 : if (!nonimm_or_0_operand (operands[1], E_V4DImode)
3979 191 : || !nonimm_or_0_operand (operands[2], E_V4DImode))
3980 32 : return -1;
3981 : return 7;
3982 :
3983 180 : case E_V2DImode:
3984 180 : if (!nonimm_or_0_operand (operands[1], E_V2DImode)
3985 180 : || !nonimm_or_0_operand (operands[2], E_V2DImode))
3986 37 : return -1;
3987 : return 8;
3988 :
3989 : default:
3990 : return -1;
3991 : }
3992 :
3993 : default:
3994 : return -1;
3995 : }
3996 : }
3997 :
3998 : int
3999 0 : pattern985 (rtx x1)
4000 : {
4001 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4002 0 : rtx x2, x3, x4, x5, x6, x7;
4003 0 : int res ATTRIBUTE_UNUSED;
4004 0 : x2 = XEXP (x1, 2);
4005 0 : if (GET_CODE (x2) != UNSPEC
4006 0 : || XVECLEN (x2, 0) != 3
4007 0 : || XINT (x2, 1) != 60)
4008 : return -1;
4009 0 : x3 = XVECEXP (x2, 0, 2);
4010 0 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
4011 : return -1;
4012 0 : x4 = XEXP (x1, 0);
4013 0 : operands[3] = x4;
4014 0 : x5 = XEXP (x1, 1);
4015 0 : operands[4] = x5;
4016 0 : x6 = XVECEXP (x2, 0, 0);
4017 0 : operands[1] = x6;
4018 0 : x7 = XVECEXP (x2, 0, 1);
4019 0 : operands[2] = x7;
4020 0 : switch (GET_MODE (x1))
4021 : {
4022 0 : case E_V32QImode:
4023 0 : return pattern984 (x2,
4024 : E_V32QImode,
4025 0 : E_SImode); /* [-1, 0] */
4026 :
4027 0 : case E_V16QImode:
4028 0 : if (pattern984 (x2,
4029 : E_V16QImode,
4030 : E_HImode) != 0)
4031 : return -1;
4032 : return 1;
4033 :
4034 : default:
4035 : return -1;
4036 : }
4037 : }
4038 :
4039 : int
4040 24 : pattern992 (rtx x1)
4041 : {
4042 24 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4043 24 : rtx x2;
4044 24 : int res ATTRIBUTE_UNUSED;
4045 24 : if (!register_operand (operands[0], E_SImode)
4046 24 : || GET_MODE (x1) != E_SImode)
4047 : return -1;
4048 24 : x2 = XEXP (x1, 0);
4049 24 : if (GET_MODE (x2) != E_SImode)
4050 : return -1;
4051 24 : switch (GET_MODE (operands[1]))
4052 : {
4053 0 : case E_V32HFmode:
4054 0 : if (!register_operand (operands[1], E_V32HFmode)
4055 0 : || !nonimmediate_operand (operands[2], E_V32HFmode)
4056 0 : || !const_0_to_31_operand (operands[3], E_SImode))
4057 0 : return -1;
4058 : return 0;
4059 :
4060 3 : case E_V32QImode:
4061 3 : if (!register_operand (operands[1], E_V32QImode)
4062 3 : || !nonimmediate_operand (operands[2], E_V32QImode)
4063 6 : || !const_0_to_7_operand (operands[3], E_SImode))
4064 0 : return -1;
4065 : return 1;
4066 :
4067 21 : case E_V32HImode:
4068 21 : if (!register_operand (operands[1], E_V32HImode)
4069 21 : || !nonimmediate_operand (operands[2], E_V32HImode)
4070 42 : || !const_0_to_7_operand (operands[3], E_SImode))
4071 0 : return -1;
4072 : return 2;
4073 :
4074 : default:
4075 : return -1;
4076 : }
4077 : }
4078 :
4079 : int
4080 1431 : pattern1000 (rtx x1)
4081 : {
4082 1431 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4083 1431 : rtx x2;
4084 1431 : int res ATTRIBUTE_UNUSED;
4085 1431 : if (!register_operand (operands[0], E_V2DImode)
4086 1431 : || GET_MODE (x1) != E_V2DImode)
4087 : return -1;
4088 1376 : x2 = XEXP (x1, 0);
4089 1376 : if (GET_MODE (x2) != E_V2DImode
4090 1376 : || !nonimm_or_0_operand (operands[2], E_V2DImode)
4091 2730 : || !register_operand (operands[3], E_QImode))
4092 68 : return -1;
4093 1308 : switch (GET_MODE (operands[1]))
4094 : {
4095 414 : case E_V8HFmode:
4096 414 : if (!nonimmediate_operand (operands[1], E_V8HFmode))
4097 : return -1;
4098 : return 0;
4099 :
4100 444 : case E_V2DFmode:
4101 444 : if (!vector_operand (operands[1], E_V2DFmode))
4102 : return -1;
4103 : return 1;
4104 :
4105 450 : case E_V4SFmode:
4106 450 : if (!nonimmediate_operand (operands[1], E_V4SFmode))
4107 : return -1;
4108 : return 2;
4109 :
4110 : default:
4111 : return -1;
4112 : }
4113 : }
4114 :
4115 : int
4116 2245 : pattern1015 (rtx x1, machine_mode i1, machine_mode i2)
4117 : {
4118 2245 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4119 2245 : rtx x2;
4120 2245 : int res ATTRIBUTE_UNUSED;
4121 2245 : if (!register_operand (operands[0], i1)
4122 2245 : || GET_MODE (x1) != i1)
4123 : return -1;
4124 2177 : x2 = XEXP (x1, 0);
4125 2177 : if (GET_MODE (x2) != i1
4126 2177 : || !register_operand (operands[1], i1)
4127 1981 : || !bcst_vector_operand (operands[2], i1)
4128 1878 : || !nonimm_or_0_operand (operands[3], i1)
4129 4033 : || !register_operand (operands[4], i2))
4130 321 : return -1;
4131 : return 0;
4132 : }
4133 :
4134 : int
4135 1567 : pattern1022 (rtx x1)
4136 : {
4137 1567 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4138 1567 : rtx x2, x3, x4;
4139 1567 : int res ATTRIBUTE_UNUSED;
4140 1567 : if (!const_0_to_3_operand (operands[2], E_VOIDmode))
4141 : return -1;
4142 1476 : x2 = XVECEXP (x1, 0, 1);
4143 1476 : operands[3] = x2;
4144 1476 : if (!const_0_to_3_operand (operands[3], E_VOIDmode))
4145 : return -1;
4146 1470 : x3 = XVECEXP (x1, 0, 2);
4147 1470 : operands[4] = x3;
4148 1470 : if (!const_0_to_3_operand (operands[4], E_VOIDmode))
4149 : return -1;
4150 1468 : x4 = XVECEXP (x1, 0, 3);
4151 1468 : operands[5] = x4;
4152 1468 : if (!const_0_to_3_operand (operands[5], E_VOIDmode))
4153 : return -1;
4154 : return 0;
4155 : }
4156 :
4157 : int
4158 122 : pattern1033 (rtx x1)
4159 : {
4160 122 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4161 122 : rtx x2;
4162 122 : int res ATTRIBUTE_UNUSED;
4163 122 : if (!register_operand (operands[0], E_V16HFmode)
4164 122 : || GET_MODE (x1) != E_V16HFmode)
4165 : return -1;
4166 118 : x2 = XVECEXP (x1, 0, 0);
4167 118 : if (GET_MODE (x2) != E_V16HFmode)
4168 : return -1;
4169 118 : switch (GET_MODE (operands[1]))
4170 : {
4171 0 : case E_V16HImode:
4172 0 : if (!register_operand (operands[1], E_V16HImode))
4173 : return -1;
4174 : return 0;
4175 :
4176 118 : case E_V16SImode:
4177 118 : if (!register_operand (operands[1], E_V16SImode))
4178 : return -1;
4179 : return 1;
4180 :
4181 : default:
4182 : return -1;
4183 : }
4184 : }
4185 :
4186 : int
4187 310 : pattern1040 (rtx x1, machine_mode i1, rtx_code i2)
4188 : {
4189 310 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4190 310 : rtx x2, x3;
4191 310 : int res ATTRIBUTE_UNUSED;
4192 310 : x2 = XEXP (x1, 0);
4193 310 : if (GET_CODE (x2) != i2
4194 310 : || GET_MODE (x2) != i1)
4195 : return -1;
4196 310 : x3 = XEXP (x1, 1);
4197 310 : if (GET_CODE (x3) != i2
4198 310 : || GET_MODE (x3) != i1)
4199 0 : return -1;
4200 : return 0;
4201 : }
4202 :
4203 : int
4204 43573 : pattern1047 (rtx x1)
4205 : {
4206 43573 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4207 43573 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
4208 43573 : rtx x10;
4209 43573 : int res ATTRIBUTE_UNUSED;
4210 43573 : x2 = XEXP (x1, 1);
4211 43573 : x3 = XEXP (x2, 0);
4212 43573 : switch (GET_CODE (x3))
4213 : {
4214 621 : case PLUS:
4215 621 : return pattern1044 (x1); /* [-1, 0] */
4216 :
4217 113 : case MINUS:
4218 113 : if (pattern1044 (x1) != 0)
4219 : return -1;
4220 : return 1;
4221 :
4222 8292 : case AND:
4223 8292 : if (pattern1044 (x1) != 0)
4224 : return -1;
4225 : return 2;
4226 :
4227 12561 : case IOR:
4228 12561 : if (pattern1044 (x1) != 0)
4229 : return -1;
4230 : return 3;
4231 :
4232 744 : case XOR:
4233 744 : if (pattern1044 (x1) != 0)
4234 : return -1;
4235 : return 4;
4236 :
4237 9 : case NEG:
4238 9 : if (GET_MODE (x3) != E_QImode)
4239 : return -1;
4240 9 : x4 = XEXP (x3, 0);
4241 9 : if (GET_CODE (x4) != SUBREG
4242 9 : || maybe_ne (SUBREG_BYTE (x4), 0)
4243 18 : || GET_MODE (x4) != E_QImode)
4244 : return -1;
4245 9 : x5 = XEXP (x4, 0);
4246 9 : switch (GET_CODE (x5))
4247 : {
4248 9 : case ASHIFTRT:
4249 9 : case LSHIFTRT:
4250 9 : case SIGN_EXTRACT:
4251 9 : case ZERO_EXTRACT:
4252 9 : operands[2] = x5;
4253 9 : x6 = XEXP (x1, 0);
4254 9 : if (GET_CODE (x6) != ZERO_EXTRACT)
4255 : return -1;
4256 9 : x7 = XEXP (x6, 1);
4257 9 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
4258 : return -1;
4259 9 : x8 = XEXP (x6, 2);
4260 9 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
4261 : return -1;
4262 9 : x9 = XEXP (x6, 0);
4263 9 : operands[0] = x9;
4264 9 : if (!int248_register_operand (operands[0], E_VOIDmode))
4265 : return -1;
4266 9 : x10 = XEXP (x5, 0);
4267 9 : operands[1] = x10;
4268 9 : if (!int248_register_operand (operands[1], E_VOIDmode))
4269 : return -1;
4270 9 : switch (GET_MODE (x6))
4271 : {
4272 3 : case E_HImode:
4273 3 : if (GET_MODE (x2) != E_HImode
4274 3 : || !extract_high_operator (operands[2], E_HImode))
4275 0 : return -1;
4276 : return 5;
4277 :
4278 6 : case E_SImode:
4279 6 : if (GET_MODE (x2) != E_SImode
4280 6 : || !extract_high_operator (operands[2], E_SImode))
4281 0 : return -1;
4282 : return 6;
4283 :
4284 0 : case E_DImode:
4285 0 : if (GET_MODE (x2) != E_DImode
4286 0 : || !extract_high_operator (operands[2], E_DImode))
4287 0 : return -1;
4288 : return 7;
4289 :
4290 : default:
4291 : return -1;
4292 : }
4293 :
4294 : default:
4295 : return -1;
4296 : }
4297 :
4298 18 : case ASHIFT:
4299 18 : if (GET_MODE (x3) != E_QImode)
4300 : return -1;
4301 18 : res = pattern1046 (x1);
4302 18 : if (res >= 0)
4303 18 : return res + 8; /* [8, 10] */
4304 : return -1;
4305 :
4306 : case LSHIFTRT:
4307 : return 11;
4308 :
4309 1723 : case ASHIFTRT:
4310 1723 : return 12;
4311 :
4312 : default:
4313 : return -1;
4314 : }
4315 : }
4316 :
4317 : int
4318 248 : pattern1071 (rtx x1)
4319 : {
4320 248 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4321 248 : rtx x2, x3, x4, x5;
4322 248 : int res ATTRIBUTE_UNUSED;
4323 248 : x2 = XVECEXP (x1, 0, 1);
4324 248 : x3 = XEXP (x2, 0);
4325 248 : if (GET_CODE (x3) != REG
4326 248 : || REGNO (x3) != 17
4327 156 : || GET_MODE (x3) != E_CCmode
4328 404 : || !register_operand (operands[1], E_XFmode))
4329 138 : return -1;
4330 110 : x4 = XVECEXP (x1, 0, 0);
4331 110 : x5 = XEXP (x4, 1);
4332 110 : return pattern552 (x5); /* [-1, 2] */
4333 : }
4334 :
4335 : int
4336 3666272 : pattern1075 (rtx x1, machine_mode i1)
4337 : {
4338 3666272 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4339 3666272 : rtx x2, x3, x4, x5, x6;
4340 3666272 : int res ATTRIBUTE_UNUSED;
4341 3666272 : if (peep2_current_count < 3
4342 3164383 : || GET_CODE (x1) != SET)
4343 : return -1;
4344 2239352 : x2 = XEXP (x1, 1);
4345 2239352 : operands[2] = x2;
4346 2239352 : if (!general_reg_operand (operands[2], i1))
4347 : return -1;
4348 793744 : x3 = XEXP (x1, 0);
4349 793744 : if (!rtx_equal_p (x3, operands[1]))
4350 : return -1;
4351 84991 : x4 = PATTERN (peep2_next_insn (2));
4352 84991 : if (GET_CODE (x4) != SET)
4353 : return -1;
4354 68563 : x5 = XEXP (x4, 1);
4355 68563 : if (!rtx_equal_p (x5, operands[0]))
4356 : return -1;
4357 8109 : x6 = XEXP (x4, 0);
4358 8109 : if (!rtx_equal_p (x6, operands[2]))
4359 : return -1;
4360 : return 0;
4361 : }
4362 :
4363 : int
4364 5341 : pattern1083 (rtx x1)
4365 : {
4366 5341 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4367 5341 : rtx x2, x3, x4;
4368 5341 : int res ATTRIBUTE_UNUSED;
4369 5341 : x2 = XEXP (x1, 1);
4370 5341 : x3 = XEXP (x2, 1);
4371 5341 : if (maybe_ne (SUBREG_BYTE (x3), 0)
4372 5341 : || GET_MODE (x3) != E_QImode)
4373 : return -1;
4374 5341 : x4 = XEXP (x3, 0);
4375 5341 : switch (GET_CODE (x4))
4376 : {
4377 782 : case ASHIFTRT:
4378 782 : case LSHIFTRT:
4379 782 : case SIGN_EXTRACT:
4380 782 : case ZERO_EXTRACT:
4381 782 : operands[4] = x4;
4382 782 : return pattern1082 (x1); /* [-1, 5] */
4383 :
4384 : default:
4385 : return -1;
4386 : }
4387 : }
4388 :
4389 : int
4390 2 : pattern1089 (rtx x1)
4391 : {
4392 2 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4393 2 : rtx x2;
4394 2 : int res ATTRIBUTE_UNUSED;
4395 2 : if (!register_operand (operands[0], E_QImode)
4396 2 : || GET_MODE (x1) != E_QImode)
4397 : return -1;
4398 2 : x2 = XEXP (x1, 0);
4399 2 : if (GET_MODE (x2) != E_QImode)
4400 : return -1;
4401 2 : return pattern747 (); /* [-1, 5] */
4402 : }
4403 :
4404 : int
4405 0 : pattern1097 (rtx x1, machine_mode i1)
4406 : {
4407 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4408 0 : int res ATTRIBUTE_UNUSED;
4409 0 : if (GET_MODE (x1) != i1
4410 0 : || !vector_all_ones_operand (operands[3], i1)
4411 0 : || !const0_operand (operands[4], i1)
4412 0 : || !register_operand (operands[1], i1)
4413 0 : || !const0_operand (operands[2], i1))
4414 0 : return -1;
4415 : return 0;
4416 : }
4417 :
4418 : int
4419 0 : pattern1105 (rtx x1, machine_mode i1)
4420 : {
4421 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4422 0 : int res ATTRIBUTE_UNUSED;
4423 0 : if (GET_MODE (x1) != i1
4424 0 : || !vector_all_ones_operand (operands[3], i1)
4425 0 : || !const0_operand (operands[4], i1)
4426 0 : || !register_operand (operands[1], i1)
4427 0 : || !const0_operand (operands[2], i1))
4428 0 : return -1;
4429 : return 0;
4430 : }
4431 :
4432 : int
4433 447 : pattern1111 (rtx x1)
4434 : {
4435 447 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4436 447 : rtx x2, x3, x4;
4437 447 : int res ATTRIBUTE_UNUSED;
4438 447 : x2 = XEXP (x1, 2);
4439 447 : x3 = XEXP (x2, 0);
4440 447 : operands[3] = x3;
4441 447 : if (!register_operand (operands[3], E_QImode))
4442 : return -1;
4443 424 : x4 = XEXP (x2, 1);
4444 424 : switch (XWINT (x4, 0))
4445 : {
4446 277 : case 15L:
4447 277 : switch (GET_MODE (operands[0]))
4448 : {
4449 0 : case E_V4SFmode:
4450 0 : return pattern1110 (x1,
4451 0 : E_V4SFmode); /* [-1, 0] */
4452 :
4453 58 : case E_V4DFmode:
4454 58 : if (pattern1110 (x1,
4455 : E_V4DFmode) != 0)
4456 : return -1;
4457 : return 1;
4458 :
4459 135 : case E_V4SImode:
4460 135 : if (pattern1110 (x1,
4461 : E_V4SImode) != 0)
4462 : return -1;
4463 : return 2;
4464 :
4465 84 : case E_V4DImode:
4466 84 : if (pattern1110 (x1,
4467 : E_V4DImode) != 0)
4468 : return -1;
4469 : return 3;
4470 :
4471 : default:
4472 : return -1;
4473 : }
4474 :
4475 147 : case 3L:
4476 147 : switch (GET_MODE (operands[0]))
4477 : {
4478 5 : case E_V2DFmode:
4479 5 : if (pattern1110 (x1,
4480 : E_V2DFmode) != 0)
4481 : return -1;
4482 : return 4;
4483 :
4484 142 : case E_V2DImode:
4485 142 : if (pattern1110 (x1,
4486 : E_V2DImode) != 0)
4487 : return -1;
4488 : return 5;
4489 :
4490 : default:
4491 : return -1;
4492 : }
4493 :
4494 : default:
4495 : return -1;
4496 : }
4497 : }
4498 :
4499 : int
4500 1406 : pattern1119 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
4501 : {
4502 1406 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4503 1406 : rtx x2;
4504 1406 : int res ATTRIBUTE_UNUSED;
4505 1406 : if (!register_operand (operands[0], i1)
4506 1406 : || GET_MODE (x1) != i1)
4507 : return -1;
4508 1317 : x2 = XEXP (x1, 0);
4509 1317 : if (GET_MODE (x2) != i1
4510 1317 : || !register_operand (operands[1], i1)
4511 1315 : || !nonimmediate_operand (operands[2], i2)
4512 1315 : || !nonimm_or_0_operand (operands[3], i1)
4513 2599 : || !register_operand (operands[4], i3))
4514 122 : return -1;
4515 : return 0;
4516 : }
4517 :
4518 : int
4519 16312 : pattern1126 (rtx x1, machine_mode i1)
4520 : {
4521 16312 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4522 16312 : rtx x2, x3;
4523 16312 : int res ATTRIBUTE_UNUSED;
4524 16312 : if (!register_operand (operands[0], i1)
4525 16312 : || GET_MODE (x1) != i1)
4526 : return -1;
4527 15570 : x2 = XEXP (x1, 0);
4528 15570 : if (GET_MODE (x2) != i1
4529 15570 : || !register_operand (operands[1], i1)
4530 31130 : || !vector_operand (operands[2], i1))
4531 22 : return -1;
4532 15548 : x3 = XEXP (x1, 1);
4533 15548 : if (GET_MODE (x3) != i1)
4534 : return -1;
4535 : return 0;
4536 : }
4537 :
4538 : int
4539 1278 : pattern1133 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
4540 : {
4541 1278 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4542 1278 : rtx x2, x3, x4, x5, x6;
4543 1278 : int res ATTRIBUTE_UNUSED;
4544 1278 : if (!register_operand (operands[0], i2)
4545 1278 : || GET_MODE (x1) != i2)
4546 : return -1;
4547 1246 : x2 = XEXP (x1, 0);
4548 1246 : if (GET_MODE (x2) != i2)
4549 : return -1;
4550 1246 : x3 = XEXP (x2, 0);
4551 1246 : if (GET_MODE (x3) != i3)
4552 : return -1;
4553 1246 : x4 = XEXP (x3, 0);
4554 1246 : if (GET_MODE (x4) != i3)
4555 : return -1;
4556 1246 : x5 = XEXP (x4, 0);
4557 1246 : if (GET_MODE (x5) != i3
4558 1246 : || !vector_operand (operands[1], i2))
4559 0 : return -1;
4560 1246 : x6 = XEXP (x4, 1);
4561 1246 : if (GET_MODE (x6) != i3
4562 1246 : || !vector_operand (operands[2], i2)
4563 1246 : || !nonimm_or_0_operand (operands[3], i2)
4564 2462 : || !register_operand (operands[4], i1))
4565 118 : return -1;
4566 : return 0;
4567 : }
4568 :
4569 : int
4570 6288 : pattern1147 (rtx x1, machine_mode i1)
4571 : {
4572 6288 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4573 6288 : int res ATTRIBUTE_UNUSED;
4574 6288 : if (!register_operand (operands[0], i1)
4575 6274 : || GET_MODE (x1) != i1
4576 6274 : || !register_operand (operands[1], i1)
4577 6131 : || !register_operand (operands[2], i1)
4578 12275 : || !bcst_vector_operand (operands[3], i1))
4579 324 : return -1;
4580 : return 0;
4581 : }
4582 :
4583 : int
4584 8663 : pattern1151 (rtx x1, machine_mode i1, machine_mode i2)
4585 : {
4586 8663 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4587 8663 : rtx x2;
4588 8663 : int res ATTRIBUTE_UNUSED;
4589 8663 : if (!nonimmediate_operand (operands[0], i1)
4590 8663 : || GET_MODE (x1) != i1)
4591 : return -1;
4592 8659 : x2 = XEXP (x1, 0);
4593 8659 : if (GET_MODE (x2) != i2
4594 8659 : || !nonimmediate_operand (operands[1], i1))
4595 3068 : return -1;
4596 : return 0;
4597 : }
4598 :
4599 : int
4600 2844 : pattern1159 (rtx x1)
4601 : {
4602 2844 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4603 2844 : rtx x2, x3, x4, x5;
4604 2844 : int res ATTRIBUTE_UNUSED;
4605 2844 : x2 = XVECEXP (x1, 0, 1);
4606 2844 : x3 = XEXP (x2, 0);
4607 2844 : operands[2] = x3;
4608 2844 : switch (GET_MODE (operands[0]))
4609 : {
4610 16 : case E_SImode:
4611 16 : x4 = XVECEXP (x1, 0, 0);
4612 16 : x5 = XEXP (x4, 1);
4613 16 : return pattern1158 (x5,
4614 16 : E_SImode); /* [-1, 1] */
4615 :
4616 2828 : case E_DImode:
4617 2828 : x4 = XVECEXP (x1, 0, 0);
4618 2828 : x5 = XEXP (x4, 1);
4619 2828 : res = pattern1158 (x5,
4620 : E_DImode);
4621 2828 : if (res >= 0)
4622 2828 : return res + 2; /* [2, 3] */
4623 : return -1;
4624 :
4625 : default:
4626 : return -1;
4627 : }
4628 : }
4629 :
4630 : int
4631 237 : pattern1169 (rtx x1, machine_mode i1)
4632 : {
4633 237 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4634 237 : rtx x2, x3;
4635 237 : int res ATTRIBUTE_UNUSED;
4636 237 : if (!nonimmediate_operand (operands[0], i1)
4637 237 : || GET_MODE (x1) != i1)
4638 : return -1;
4639 237 : x2 = XEXP (x1, 0);
4640 237 : if (GET_MODE (x2) != i1)
4641 : return -1;
4642 237 : x3 = XEXP (x2, 0);
4643 237 : if (GET_MODE (x3) != i1
4644 237 : || !nonimmediate_operand (operands[1], i1)
4645 425 : || !x86_64_general_operand (operands[2], i1))
4646 49 : return -1;
4647 : return 0;
4648 : }
4649 :
4650 : int
4651 26500 : pattern1177 (rtx x1)
4652 : {
4653 26500 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4654 26500 : rtx x2, x3, x4, x5;
4655 26500 : int res ATTRIBUTE_UNUSED;
4656 26500 : x2 = XEXP (x1, 1);
4657 26500 : x3 = XEXP (x2, 0);
4658 26500 : switch (GET_CODE (x3))
4659 : {
4660 4422 : case AND:
4661 4422 : x4 = XEXP (x3, 0);
4662 4422 : operands[2] = x4;
4663 4422 : if (!int248_register_operand (operands[2], E_VOIDmode))
4664 : return -1;
4665 4266 : return pattern1176 (x1); /* [-1, 3] */
4666 :
4667 0 : case PLUS:
4668 0 : x4 = XEXP (x3, 0);
4669 0 : operands[2] = x4;
4670 0 : if (!int_nonimmediate_operand (operands[2], E_VOIDmode))
4671 : return -1;
4672 0 : res = pattern1176 (x1);
4673 0 : if (res >= 0)
4674 0 : return res + 4; /* [4, 7] */
4675 : return -1;
4676 :
4677 0 : case MINUS:
4678 0 : x4 = XEXP (x3, 0);
4679 0 : operands[3] = x4;
4680 0 : if (!const_int_operand (operands[3], E_VOIDmode))
4681 : return -1;
4682 0 : x5 = XEXP (x3, 1);
4683 0 : operands[2] = x5;
4684 0 : if (!int_nonimmediate_operand (operands[2], E_VOIDmode))
4685 : return -1;
4686 0 : res = pattern206 (x1);
4687 0 : if (res >= 0)
4688 0 : return res + 8; /* [8, 11] */
4689 : return -1;
4690 :
4691 : default:
4692 : return -1;
4693 : }
4694 : }
4695 :
4696 : int
4697 0 : pattern1194 (rtx x1, machine_mode i1)
4698 : {
4699 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4700 0 : rtx x2;
4701 0 : int res ATTRIBUTE_UNUSED;
4702 0 : if (!register_operand (operands[0], i1)
4703 0 : || GET_MODE (x1) != i1
4704 0 : || !vector_operand (operands[1], i1)
4705 0 : || !register_operand (operands[2], i1))
4706 0 : return -1;
4707 0 : x2 = XVECEXP (x1, 0, 2);
4708 0 : if (GET_MODE (x2) != i1
4709 0 : || !register_operand (operands[3], i1))
4710 0 : return -1;
4711 : return 0;
4712 : }
4713 :
4714 : int
4715 4 : pattern1200 (rtx x1, machine_mode i1)
4716 : {
4717 4 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4718 4 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
4719 4 : rtx x10, x11, x12;
4720 4 : int res ATTRIBUTE_UNUSED;
4721 4 : x2 = XVECEXP (x1, 0, 0);
4722 4 : x3 = XEXP (x2, 1);
4723 4 : x4 = XEXP (x3, 0);
4724 4 : operands[2] = x4;
4725 4 : if (!memory_operand (operands[2], i1))
4726 : return -1;
4727 4 : x5 = XVECEXP (x1, 0, 1);
4728 4 : x6 = XEXP (x5, 1);
4729 4 : if (GET_CODE (x6) != MINUS)
4730 : return -1;
4731 4 : x7 = XEXP (x2, 0);
4732 4 : if (GET_MODE (x7) != E_CCmode
4733 4 : || GET_MODE (x3) != E_CCmode)
4734 : return -1;
4735 4 : x8 = XEXP (x3, 1);
4736 4 : if (!rtx_equal_p (x8, operands[0]))
4737 : return -1;
4738 4 : x9 = XEXP (x6, 0);
4739 4 : if (!rtx_equal_p (x9, operands[2]))
4740 : return -1;
4741 4 : x10 = XEXP (x6, 1);
4742 4 : if (!rtx_equal_p (x10, operands[0]))
4743 : return -1;
4744 4 : x11 = PATTERN (peep2_next_insn (2));
4745 4 : x12 = XEXP (x11, 0);
4746 4 : if (!rtx_equal_p (x12, operands[2]))
4747 : return -1;
4748 : return 0;
4749 : }
4750 :
4751 : int
4752 1149155 : pattern1209 (rtx x1)
4753 : {
4754 1149155 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4755 1149155 : int res ATTRIBUTE_UNUSED;
4756 1149155 : if (!register_operand (operands[0], E_QImode)
4757 1145326 : || GET_MODE (x1) != E_QImode
4758 1145326 : || !ix86_comparison_operator (operands[1], E_VOIDmode)
4759 1145326 : || !register_operand (operands[2], E_QImode)
4760 2281179 : || !register_operand (operands[3], E_QImode))
4761 532682 : return -1;
4762 : return 0;
4763 : }
4764 :
4765 : int
4766 159 : pattern1214 (rtx x1, machine_mode i1)
4767 : {
4768 159 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4769 159 : rtx x2, x3;
4770 159 : int res ATTRIBUTE_UNUSED;
4771 159 : if (!nonimmediate_operand (operands[0], i1)
4772 159 : || GET_MODE (x1) != i1)
4773 : return -1;
4774 159 : x2 = XEXP (x1, 0);
4775 159 : if (GET_MODE (x2) != i1)
4776 : return -1;
4777 159 : x3 = XEXP (x2, 0);
4778 159 : if (GET_MODE (x3) != i1
4779 159 : || !nonimmediate_operand (operands[1], i1)
4780 269 : || !x86_64_general_operand (operands[2], i1))
4781 49 : return -1;
4782 : return 0;
4783 : }
4784 :
4785 : int
4786 963 : pattern1222 (rtx x1, machine_mode i1)
4787 : {
4788 963 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4789 963 : rtx x2;
4790 963 : int res ATTRIBUTE_UNUSED;
4791 963 : if (!register_operand (operands[0], i1)
4792 963 : || GET_MODE (x1) != i1)
4793 : return -1;
4794 889 : x2 = XEXP (x1, 0);
4795 889 : if (GET_MODE (x2) != i1
4796 889 : || !nonimmediate_operand (operands[2], i1)
4797 1764 : || !register_operand (operands[1], i1))
4798 123 : return -1;
4799 : return 0;
4800 : }
4801 :
4802 : int
4803 1812 : pattern1228 (rtx x1)
4804 : {
4805 1812 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4806 1812 : rtx x2, x3, x4, x5, x6, x7, x8;
4807 1812 : int res ATTRIBUTE_UNUSED;
4808 1812 : x2 = XEXP (x1, 0);
4809 1812 : x3 = XEXP (x2, 0);
4810 1812 : x4 = XEXP (x3, 0);
4811 1812 : x5 = XEXP (x4, 0);
4812 1812 : x6 = XEXP (x5, 1);
4813 1812 : if (GET_CODE (x6) != PARALLEL
4814 1812 : || XVECLEN (x6, 0) != 1)
4815 : return -1;
4816 1812 : x7 = XVECEXP (x6, 0, 0);
4817 1812 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
4818 : return -1;
4819 1812 : x8 = XEXP (x1, 2);
4820 1812 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
4821 0 : return -1;
4822 : return 0;
4823 : }
4824 :
4825 : int
4826 46 : pattern1236 (rtx x1)
4827 : {
4828 46 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4829 46 : rtx x2, x3, x4, x5, x6, x7;
4830 46 : int res ATTRIBUTE_UNUSED;
4831 46 : x2 = XVECEXP (x1, 0, 2);
4832 46 : x3 = XEXP (x2, 0);
4833 46 : x4 = XEXP (x3, 0);
4834 46 : if (maybe_ne (SUBREG_BYTE (x4), 0))
4835 : return -1;
4836 46 : x5 = XEXP (x4, 0);
4837 46 : if (GET_CODE (x5) != NOT)
4838 : return -1;
4839 9 : x6 = XEXP (x5, 0);
4840 9 : operands[3] = x6;
4841 9 : x7 = XEXP (x3, 1);
4842 9 : operands[4] = x7;
4843 9 : switch (GET_MODE (operands[0]))
4844 : {
4845 9 : case E_V16QImode:
4846 9 : if (!register_operand (operands[0], E_V16QImode)
4847 9 : || GET_MODE (x1) != E_V16QImode
4848 9 : || !vector_operand (operands[1], E_V16QImode)
4849 9 : || !register_operand (operands[2], E_V16QImode)
4850 9 : || GET_MODE (x2) != E_V16QImode
4851 9 : || GET_MODE (x5) != E_V16QImode
4852 18 : || !register_operand (operands[3], E_V16QImode))
4853 0 : return -1;
4854 9 : switch (GET_MODE (x3))
4855 : {
4856 9 : case E_V4SImode:
4857 9 : if (GET_MODE (x4) != E_V4SImode
4858 9 : || !vector_all_ones_operand (operands[4], E_V4SImode))
4859 0 : return -1;
4860 : return 0;
4861 :
4862 0 : case E_V2DImode:
4863 0 : if (GET_MODE (x4) != E_V2DImode
4864 0 : || !vector_all_ones_operand (operands[4], E_V2DImode))
4865 0 : return -1;
4866 : return 1;
4867 :
4868 : default:
4869 : return -1;
4870 : }
4871 :
4872 0 : case E_V32QImode:
4873 0 : if (!register_operand (operands[0], E_V32QImode)
4874 0 : || GET_MODE (x1) != E_V32QImode
4875 0 : || !vector_operand (operands[1], E_V32QImode)
4876 0 : || !register_operand (operands[2], E_V32QImode)
4877 0 : || GET_MODE (x2) != E_V32QImode
4878 0 : || GET_MODE (x5) != E_V32QImode
4879 0 : || !register_operand (operands[3], E_V32QImode))
4880 0 : return -1;
4881 0 : switch (GET_MODE (x3))
4882 : {
4883 0 : case E_V8SImode:
4884 0 : if (GET_MODE (x4) != E_V8SImode
4885 0 : || !vector_all_ones_operand (operands[4], E_V8SImode))
4886 0 : return -1;
4887 : return 2;
4888 :
4889 0 : case E_V4DImode:
4890 0 : if (GET_MODE (x4) != E_V4DImode
4891 0 : || !vector_all_ones_operand (operands[4], E_V4DImode))
4892 0 : return -1;
4893 : return 3;
4894 :
4895 : default:
4896 : return -1;
4897 : }
4898 :
4899 : default:
4900 : return -1;
4901 : }
4902 : }
4903 :
4904 : int
4905 3 : pattern1259 (rtx x1, machine_mode i1)
4906 : {
4907 3 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4908 3 : int res ATTRIBUTE_UNUSED;
4909 3 : if (!register_operand (operands[0], i1)
4910 3 : || GET_MODE (x1) != i1
4911 3 : || !bcst_vector_operand (operands[1], i1)
4912 3 : || !vector_all_ones_operand (operands[2], i1)
4913 6 : || !register_operand (operands[3], i1))
4914 0 : return -1;
4915 : return 0;
4916 : }
4917 :
4918 : int
4919 2 : pattern1263 (rtx x1)
4920 : {
4921 2 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4922 2 : rtx x2;
4923 2 : int res ATTRIBUTE_UNUSED;
4924 2 : if (maybe_ne (SUBREG_BYTE (x1), 0)
4925 2 : || GET_MODE (x1) != E_V2DImode)
4926 : return -1;
4927 2 : x2 = XEXP (x1, 0);
4928 2 : if (GET_CODE (x2) != UNSPEC
4929 2 : || XVECLEN (x2, 0) != 1
4930 2 : || XINT (x2, 1) != 120
4931 2 : || GET_MODE (x2) != E_V16QImode)
4932 0 : return -1;
4933 : return 0;
4934 : }
4935 :
4936 : int
4937 2 : pattern1270 (rtx x1, machine_mode i1, machine_mode i2)
4938 : {
4939 2 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4940 2 : int res ATTRIBUTE_UNUSED;
4941 2 : if (!vector_all_ones_operand (operands[3], i1)
4942 2 : || !const0_operand (operands[4], i1)
4943 2 : || GET_MODE (x1) != i2
4944 2 : || !vector_operand (operands[0], i1)
4945 4 : || !const0_operand (operands[1], i1))
4946 0 : return -1;
4947 : return 0;
4948 : }
4949 :
4950 : int
4951 0 : pattern1274 (rtx x1, machine_mode i1)
4952 : {
4953 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4954 0 : rtx x2, x3;
4955 0 : int res ATTRIBUTE_UNUSED;
4956 0 : if (!nonimmediate_operand (operands[0], i1)
4957 0 : || GET_MODE (x1) != i1)
4958 : return -1;
4959 0 : x2 = XEXP (x1, 0);
4960 0 : if (GET_MODE (x2) != i1)
4961 : return -1;
4962 0 : x3 = XEXP (x2, 0);
4963 0 : if (GET_MODE (x3) != i1
4964 0 : || !nonimmediate_operand (operands[1], i1)
4965 0 : || !immediate_operand (operands[2], i1))
4966 0 : return -1;
4967 : return 0;
4968 : }
4969 :
4970 : int
4971 788 : pattern1282 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
4972 : {
4973 788 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4974 788 : rtx x2;
4975 788 : int res ATTRIBUTE_UNUSED;
4976 788 : if (!register_operand (operands[0], i1)
4977 788 : || GET_MODE (x1) != i1)
4978 : return -1;
4979 746 : x2 = XEXP (x1, 0);
4980 746 : if (GET_MODE (x2) != i1
4981 746 : || !register_operand (operands[1], i2)
4982 746 : || !register_operand (operands[2], i1)
4983 746 : || !nonimmediate_operand (operands[3], i1)
4984 1492 : || !register_operand (operands[4], i3))
4985 29 : return -1;
4986 : return 0;
4987 : }
4988 :
4989 : int
4990 3444 : pattern1291 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3, machine_mode i4)
4991 : {
4992 3444 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4993 3444 : rtx x2, x3;
4994 3444 : int res ATTRIBUTE_UNUSED;
4995 3444 : if (!register_operand (operands[0], i1)
4996 3444 : || GET_MODE (x1) != i1)
4997 : return -1;
4998 3283 : x2 = XEXP (x1, 0);
4999 3283 : if (GET_MODE (x2) != i1)
5000 : return -1;
5001 3283 : x3 = XEXP (x2, 0);
5002 3283 : if (GET_MODE (x3) != i4
5003 3283 : || !nonimmediate_operand (operands[1], i3)
5004 3191 : || !nonimm_or_0_operand (operands[2], i1)
5005 6363 : || !register_operand (operands[3], i2))
5006 281 : return -1;
5007 : return 0;
5008 : }
5009 :
5010 : int
5011 1990 : pattern1301 (rtx x1, machine_mode i1, machine_mode i2)
5012 : {
5013 1990 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5014 1990 : rtx x2, x3;
5015 1990 : int res ATTRIBUTE_UNUSED;
5016 1990 : if (!register_operand (operands[0], i1)
5017 1990 : || GET_MODE (x1) != i1)
5018 : return -1;
5019 1873 : x2 = XEXP (x1, 0);
5020 1873 : if (GET_MODE (x2) != i1)
5021 : return -1;
5022 1873 : x3 = XEXP (x2, 0);
5023 1873 : if (GET_MODE (x3) != i1
5024 1873 : || !vector_operand (operands[2], i1)
5025 3746 : || !register_operand (operands[4], i2))
5026 0 : return -1;
5027 : return 0;
5028 : }
5029 :
5030 : int
5031 1131 : pattern1309 (rtx x1)
5032 : {
5033 1131 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5034 1131 : rtx x2, x3;
5035 1131 : int res ATTRIBUTE_UNUSED;
5036 1131 : if (!register_operand (operands[0], E_V8SImode)
5037 1131 : || GET_MODE (x1) != E_V8SImode)
5038 : return -1;
5039 1131 : x2 = XVECEXP (x1, 0, 0);
5040 1131 : if (GET_MODE (x2) != E_V8SImode)
5041 : return -1;
5042 1131 : x3 = XEXP (x2, 0);
5043 1131 : if (GET_MODE (x3) != E_V8SImode
5044 1131 : || !nonimm_or_0_operand (operands[2], E_V8SImode)
5045 2262 : || !register_operand (operands[3], E_QImode))
5046 3 : return -1;
5047 1128 : switch (GET_MODE (operands[1]))
5048 : {
5049 0 : case E_V8HFmode:
5050 0 : if (!register_operand (operands[1], E_V8HFmode))
5051 : return -1;
5052 : return 0;
5053 :
5054 1128 : case E_V8DFmode:
5055 1128 : if (!register_operand (operands[1], E_V8DFmode))
5056 : return -1;
5057 : return 1;
5058 :
5059 : default:
5060 : return -1;
5061 : }
5062 : }
5063 :
5064 : int
5065 3664 : pattern1318 (rtx x1, machine_mode i1, machine_mode i2)
5066 : {
5067 3664 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5068 3664 : rtx x2, x3;
5069 3664 : int res ATTRIBUTE_UNUSED;
5070 3664 : if (!register_operand (operands[0], i1)
5071 3664 : || GET_MODE (x1) != i1)
5072 : return -1;
5073 3576 : x2 = XVECEXP (x1, 0, 0);
5074 3576 : if (GET_MODE (x2) != i1)
5075 : return -1;
5076 3576 : x3 = XEXP (x2, 0);
5077 3576 : if (GET_MODE (x3) != i1
5078 3576 : || !nonimm_or_0_operand (operands[2], i1)
5079 7146 : || !register_operand (operands[3], i2))
5080 51 : return -1;
5081 : return 0;
5082 : }
5083 :
5084 : int
5085 18613 : pattern1324 (rtx x1)
5086 : {
5087 18613 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5088 18613 : rtx x2, x3, x4, x5;
5089 18613 : int res ATTRIBUTE_UNUSED;
5090 18613 : x2 = XEXP (x1, 0);
5091 18613 : if (maybe_ne (SUBREG_BYTE (x2), 0))
5092 : return -1;
5093 18613 : x3 = XEXP (x2, 0);
5094 18613 : operands[0] = x3;
5095 18613 : if (!register_operand (operands[0], E_QImode))
5096 : return -1;
5097 18410 : x4 = XEXP (x1, 1);
5098 18410 : x5 = XEXP (x4, 2);
5099 18410 : operands[2] = x5;
5100 18410 : if (!register_operand (operands[2], E_QImode))
5101 : return -1;
5102 5578 : switch (GET_MODE (x2))
5103 : {
5104 2397 : case E_SImode:
5105 2397 : if (GET_MODE (x4) != E_SImode
5106 2397 : || !register_operand (operands[1], E_SImode))
5107 1065 : return -1;
5108 : return 0;
5109 :
5110 2969 : case E_DImode:
5111 2969 : if (GET_MODE (x4) != E_DImode
5112 2969 : || !register_operand (operands[1], E_DImode))
5113 1305 : return -1;
5114 : return 1;
5115 :
5116 : default:
5117 : return -1;
5118 : }
5119 : }
5120 :
5121 : int
5122 118 : pattern1333 (rtx x1, machine_mode i1)
5123 : {
5124 118 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5125 118 : int res ATTRIBUTE_UNUSED;
5126 118 : if (!register_operand (operands[0], i1)
5127 118 : || GET_MODE (x1) != i1
5128 118 : || !register_operand (operands[1], i1)
5129 227 : || !general_operand (operands[2], i1))
5130 30 : return -1;
5131 : return 0;
5132 : }
5133 :
5134 : int
5135 0 : pattern1340 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
5136 : {
5137 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5138 0 : int res ATTRIBUTE_UNUSED;
5139 0 : if (!register_operand (operands[0], i3)
5140 0 : || GET_MODE (x1) != i3
5141 0 : || pattern563 (x1,
5142 : i1,
5143 : i2) != 0)
5144 0 : return -1;
5145 : return 0;
5146 : }
5147 :
5148 : int
5149 1308764 : pattern1345 (rtx x1)
5150 : {
5151 1308764 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5152 1308764 : rtx x2, x3;
5153 1308764 : int res ATTRIBUTE_UNUSED;
5154 1308764 : x2 = XEXP (x1, 0);
5155 1308764 : switch (GET_CODE (x2))
5156 : {
5157 1305021 : case REG:
5158 1305021 : case SUBREG:
5159 1305021 : operands[0] = x2;
5160 1305021 : switch (GET_MODE (operands[0]))
5161 : {
5162 807827 : case E_DImode:
5163 807827 : if (!register_operand (operands[0], E_DImode))
5164 : return -1;
5165 807827 : x3 = XEXP (x1, 1);
5166 807827 : if (GET_MODE (x3) != E_DImode)
5167 : return -1;
5168 : return 0;
5169 :
5170 23500 : case E_TImode:
5171 23500 : x3 = XEXP (x1, 1);
5172 23500 : if (pattern1343 (x3,
5173 : E_TImode) != 0)
5174 : return -1;
5175 : return 1;
5176 :
5177 : default:
5178 : return -1;
5179 : }
5180 :
5181 108 : case STRICT_LOW_PART:
5182 108 : res = pattern1344 (x1);
5183 108 : if (res >= 0)
5184 108 : return res + 2; /* [2, 3] */
5185 : return -1;
5186 :
5187 : default:
5188 : return -1;
5189 : }
5190 : }
5191 :
5192 : int
5193 2208 : pattern1360 (rtx x1, machine_mode i1)
5194 : {
5195 2208 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5196 2208 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5197 2208 : rtx x10, x11, x12, x13, x14, x15, x16;
5198 2208 : int res ATTRIBUTE_UNUSED;
5199 2208 : x2 = XVECEXP (x1, 0, 0);
5200 2208 : x3 = XEXP (x2, 1);
5201 2208 : if (GET_MODE (x3) != i1)
5202 : return -1;
5203 1421 : x4 = XVECEXP (x1, 0, 1);
5204 1421 : if (GET_CODE (x4) != CLOBBER)
5205 : return -1;
5206 1421 : x5 = XEXP (x4, 0);
5207 1421 : if (GET_CODE (x5) != REG
5208 1421 : || REGNO (x5) != 17
5209 2842 : || GET_MODE (x5) != E_CCmode)
5210 : return -1;
5211 1421 : x6 = XEXP (x2, 0);
5212 1421 : operands[4] = x6;
5213 1421 : if (!register_operand (operands[4], i1))
5214 : return -1;
5215 1304 : x7 = XEXP (x3, 0);
5216 1304 : operands[3] = x7;
5217 1304 : if (!register_operand (operands[3], i1))
5218 : return -1;
5219 1300 : x8 = XEXP (x3, 1);
5220 1300 : operands[2] = x8;
5221 1300 : if (!nonmemory_operand (operands[2], i1))
5222 : return -1;
5223 395 : x9 = PATTERN (peep2_next_insn (2));
5224 395 : if (GET_CODE (x9) != SET)
5225 : return -1;
5226 341 : x10 = XEXP (x9, 1);
5227 341 : if (!rtx_equal_p (x10, operands[4]))
5228 : return -1;
5229 7 : x11 = XEXP (x9, 0);
5230 7 : if (!rtx_equal_p (x11, operands[1]))
5231 : return -1;
5232 0 : x12 = PATTERN (peep2_next_insn (3));
5233 0 : if (GET_CODE (x12) != SET)
5234 : return -1;
5235 0 : x13 = XEXP (x12, 1);
5236 0 : if (GET_CODE (x13) != COMPARE
5237 0 : || GET_MODE (x13) != E_CCZmode)
5238 : return -1;
5239 0 : x14 = XEXP (x12, 0);
5240 0 : if (GET_CODE (x14) != REG
5241 0 : || REGNO (x14) != 17
5242 0 : || GET_MODE (x14) != E_CCZmode)
5243 : return -1;
5244 0 : x15 = XEXP (x13, 0);
5245 0 : operands[5] = x15;
5246 0 : if (!register_operand (operands[5], i1))
5247 : return -1;
5248 0 : x16 = XEXP (x13, 1);
5249 0 : operands[6] = x16;
5250 0 : if (!nonmemory_operand (operands[6], i1))
5251 : return -1;
5252 : return 0;
5253 : }
5254 :
5255 : int
5256 276 : pattern1380 (rtx x1, machine_mode i1, machine_mode i2)
5257 : {
5258 276 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5259 276 : rtx x2;
5260 276 : int res ATTRIBUTE_UNUSED;
5261 276 : if (!register_operand (operands[0], i2)
5262 276 : || GET_MODE (x1) != i2)
5263 : return -1;
5264 264 : x2 = XEXP (x1, 0);
5265 264 : if (GET_MODE (x2) != i2
5266 264 : || !register_operand (operands[1], i2)
5267 264 : || !register_operand (operands[2], i1)
5268 524 : || !nonimmediate_operand (operands[3], i1))
5269 4 : return -1;
5270 : return 0;
5271 : }
5272 :
5273 : int
5274 1294 : pattern1389 (rtx x1, machine_mode i1, machine_mode i2)
5275 : {
5276 1294 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5277 1294 : int res ATTRIBUTE_UNUSED;
5278 1294 : if (!bcst_vector_operand (operands[2], i2)
5279 1290 : || GET_MODE (x1) != i2
5280 1290 : || !bcst_vector_operand (operands[3], i2)
5281 1290 : || !const0_operand (operands[4], i2)
5282 2584 : || !register_operand (operands[5], i1))
5283 4 : return -1;
5284 : return 0;
5285 : }
5286 :
5287 : int
5288 938 : pattern1396 (rtx x1, machine_mode i1, machine_mode i2)
5289 : {
5290 938 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5291 938 : rtx x2, x3;
5292 938 : int res ATTRIBUTE_UNUSED;
5293 938 : if (!register_operand (operands[0], i1)
5294 938 : || GET_MODE (x1) != i1)
5295 : return -1;
5296 891 : x2 = XEXP (x1, 0);
5297 891 : if (GET_MODE (x2) != i1)
5298 : return -1;
5299 891 : x3 = XEXP (x2, 0);
5300 891 : if (GET_MODE (x3) != i1
5301 891 : || !bcst_vector_operand (operands[1], i1)
5302 1780 : || pattern1383 (
5303 : i1,
5304 : i2) != 0)
5305 4 : return -1;
5306 : return 0;
5307 : }
5308 :
5309 : int
5310 244 : pattern1404 (rtx x1, machine_mode i1)
5311 : {
5312 244 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5313 244 : rtx x2, x3, x4;
5314 244 : int res ATTRIBUTE_UNUSED;
5315 244 : if (!register_operand (operands[0], i1)
5316 244 : || GET_MODE (x1) != i1)
5317 : return -1;
5318 234 : x2 = XEXP (x1, 0);
5319 234 : if (GET_MODE (x2) != i1)
5320 : return -1;
5321 234 : x3 = XEXP (x2, 0);
5322 234 : if (GET_MODE (x3) != i1
5323 234 : || !nonimmediate_operand (operands[1], i1)
5324 468 : || !nonimmediate_operand (operands[2], i1))
5325 0 : return -1;
5326 234 : x4 = XEXP (x2, 2);
5327 234 : if (GET_MODE (x4) != i1
5328 234 : || !nonimmediate_operand (operands[3], i1))
5329 0 : return -1;
5330 : return 0;
5331 : }
5332 :
5333 : int
5334 279 : pattern1415 (rtx x1, machine_mode i1, machine_mode i2)
5335 : {
5336 279 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5337 279 : rtx x2, x3, x4;
5338 279 : int res ATTRIBUTE_UNUSED;
5339 279 : if (!register_operand (operands[0], i2)
5340 279 : || GET_MODE (x1) != i2)
5341 : return -1;
5342 258 : x2 = XVECEXP (x1, 0, 0);
5343 258 : if (GET_MODE (x2) != i2)
5344 : return -1;
5345 258 : x3 = XEXP (x2, 0);
5346 258 : if (GET_MODE (x3) != i2)
5347 : return -1;
5348 258 : x4 = XEXP (x3, 0);
5349 258 : if (GET_MODE (x4) != i1)
5350 0 : return -1;
5351 : return 0;
5352 : }
5353 :
5354 : int
5355 333 : pattern1423 (rtx x1, machine_mode i1)
5356 : {
5357 333 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5358 333 : rtx x2, x3, x4;
5359 333 : int res ATTRIBUTE_UNUSED;
5360 333 : if (!register_operand (operands[0], i1)
5361 333 : || GET_MODE (x1) != i1)
5362 : return -1;
5363 320 : x2 = XVECEXP (x1, 0, 0);
5364 320 : if (GET_MODE (x2) != i1)
5365 : return -1;
5366 320 : x3 = XEXP (x2, 0);
5367 320 : if (GET_MODE (x3) != i1
5368 320 : || !register_operand (operands[1], i1)
5369 632 : || !register_operand (operands[2], i1))
5370 13 : return -1;
5371 307 : x4 = XEXP (x2, 2);
5372 307 : if (GET_MODE (x4) != i1
5373 307 : || !register_operand (operands[3], i1))
5374 0 : return -1;
5375 : return 0;
5376 : }
5377 :
5378 : int
5379 5863 : pattern1431 (rtx x1)
5380 : {
5381 5863 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5382 5863 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5383 5863 : rtx x10;
5384 5863 : int res ATTRIBUTE_UNUSED;
5385 5863 : x2 = XVECEXP (x1, 0, 0);
5386 5863 : x3 = XEXP (x2, 1);
5387 5863 : x4 = XVECEXP (x3, 0, 0);
5388 5863 : operands[2] = x4;
5389 5863 : if (!register_operand (operands[2], E_XFmode))
5390 : return -1;
5391 5594 : x5 = XVECEXP (x3, 0, 1);
5392 5594 : operands[3] = x5;
5393 5594 : if (!register_operand (operands[3], E_XFmode))
5394 : return -1;
5395 5495 : x6 = XVECEXP (x1, 0, 1);
5396 5495 : x7 = XEXP (x6, 0);
5397 5495 : operands[1] = x7;
5398 5495 : if (!register_operand (operands[1], E_XFmode))
5399 : return -1;
5400 5495 : x8 = XEXP (x6, 1);
5401 5495 : x9 = XVECEXP (x8, 0, 0);
5402 5495 : if (!rtx_equal_p (x9, operands[2]))
5403 : return -1;
5404 5495 : x10 = XVECEXP (x8, 0, 1);
5405 5495 : if (!rtx_equal_p (x10, operands[3]))
5406 : return -1;
5407 : return 0;
5408 : }
5409 :
5410 : int
5411 11494 : pattern1445 (rtx x1, machine_mode i1)
5412 : {
5413 11494 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5414 11494 : rtx x2;
5415 11494 : int res ATTRIBUTE_UNUSED;
5416 11494 : if (!register_operand (operands[0], i1)
5417 11494 : || GET_MODE (x1) != i1)
5418 : return -1;
5419 11381 : x2 = XEXP (x1, 0);
5420 11381 : if (GET_MODE (x2) != i1
5421 11381 : || !register_operand (operands[1], i1)
5422 21740 : || !register_operand (operands[2], i1))
5423 9491 : return -1;
5424 : return 0;
5425 : }
5426 :
5427 : int
5428 72579 : pattern1453 (rtx x1, machine_mode i1)
5429 : {
5430 72579 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5431 72579 : rtx x2;
5432 72579 : int res ATTRIBUTE_UNUSED;
5433 72579 : if (!register_operand (operands[1], i1)
5434 72579 : || !register_operand (operands[0], i1)
5435 145158 : || GET_MODE (x1) != i1)
5436 0 : return -1;
5437 72579 : x2 = XEXP (x1, 0);
5438 72579 : if (GET_MODE (x2) != i1
5439 72579 : || !register_operand (operands[4], i1)
5440 145152 : || !register_operand (operands[3], i1))
5441 6975 : return -1;
5442 : return 0;
5443 : }
5444 :
5445 : int
5446 2211764 : pattern1459 (rtx x1)
5447 : {
5448 2211764 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5449 2211764 : rtx x2, x3, x4, x5;
5450 2211764 : int res ATTRIBUTE_UNUSED;
5451 2211764 : x2 = XEXP (x1, 1);
5452 2211764 : x3 = XEXP (x2, 1);
5453 2211764 : operands[0] = x3;
5454 2211764 : x4 = XEXP (x1, 0);
5455 2211764 : switch (GET_MODE (x4))
5456 : {
5457 1119545 : case E_SImode:
5458 1119545 : if (GET_MODE (x2) != E_SImode)
5459 : return -1;
5460 1119545 : x5 = XEXP (x2, 0);
5461 1119545 : if (GET_MODE (x5) != E_SImode
5462 1119545 : || !const_int_operand (operands[0], E_SImode))
5463 0 : return -1;
5464 : return 0;
5465 :
5466 1092219 : case E_DImode:
5467 1092219 : if (GET_MODE (x2) != E_DImode)
5468 : return -1;
5469 1092219 : x5 = XEXP (x2, 0);
5470 1092219 : if (GET_MODE (x5) != E_DImode
5471 1092219 : || !const_int_operand (operands[0], E_DImode))
5472 126 : return -1;
5473 : return 1;
5474 :
5475 : default:
5476 : return -1;
5477 : }
5478 : }
5479 :
5480 : int
5481 3504 : pattern1474 (rtx x1, machine_mode i1, machine_mode i2)
5482 : {
5483 3504 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5484 3504 : rtx x2;
5485 3504 : int res ATTRIBUTE_UNUSED;
5486 3504 : if (!register_operand (operands[0], i1)
5487 3326 : || GET_MODE (x1) != i1
5488 3326 : || !nonimmediate_operand (operands[1], i1)
5489 6772 : || !general_operand (operands[2], i1))
5490 827 : return -1;
5491 2677 : x2 = XEXP (x1, 2);
5492 2677 : if (GET_MODE (x2) != i2
5493 2677 : || !nonimmediate_operand (operands[3], i1)
5494 2304 : || !general_operand (operands[4], i1)
5495 4981 : || !const_0_to_31_operand (operands[5], E_SImode))
5496 373 : return -1;
5497 : return 0;
5498 : }
5499 :
5500 : int
5501 2268 : pattern1483 (rtx x1, machine_mode i1, machine_mode i2)
5502 : {
5503 2268 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5504 2268 : rtx x2, x3;
5505 2268 : int res ATTRIBUTE_UNUSED;
5506 2268 : if (!register_operand (operands[0], i1)
5507 2268 : || GET_MODE (x1) != i1)
5508 : return -1;
5509 2178 : x2 = XEXP (x1, 0);
5510 2178 : if (GET_MODE (x2) != i1)
5511 : return -1;
5512 2178 : x3 = XEXP (x2, 0);
5513 2178 : if (GET_MODE (x3) != i2
5514 2178 : || !register_operand (operands[1], i1)
5515 2130 : || !nonimmediate_operand (operands[2], i2)
5516 4218 : || !nonimm_or_0_operand (operands[3], i1))
5517 174 : return -1;
5518 : return 0;
5519 : }
5520 :
5521 : int
5522 232 : pattern1490 (rtx x1, int i1, int i2, int i3, int i4, int i5)
5523 : {
5524 232 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5525 232 : rtx x2, x3, x4, x5, x6;
5526 232 : int res ATTRIBUTE_UNUSED;
5527 232 : x2 = XVECEXP (x1, 0, 7);
5528 232 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + i5])
5529 : return -1;
5530 232 : x3 = XVECEXP (x1, 0, 8);
5531 232 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + i4])
5532 : return -1;
5533 232 : x4 = XVECEXP (x1, 0, 9);
5534 232 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + i3])
5535 : return -1;
5536 232 : x5 = XVECEXP (x1, 0, 10);
5537 232 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + i2])
5538 : return -1;
5539 232 : x6 = XVECEXP (x1, 0, 11);
5540 232 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + i1]
5541 232 : || pattern1482 (x1) != 0)
5542 0 : return -1;
5543 : return 0;
5544 : }
5545 :
5546 : int
5547 1228 : pattern1501 (rtx x1)
5548 : {
5549 1228 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5550 1228 : int res ATTRIBUTE_UNUSED;
5551 1228 : switch (GET_MODE (operands[1]))
5552 : {
5553 897 : case E_SImode:
5554 897 : if (!nonimmediate_operand (operands[1], E_SImode)
5555 894 : || !register_operand (operands[0], E_SImode)
5556 1791 : || GET_MODE (x1) != E_SImode)
5557 3 : return -1;
5558 : return 0;
5559 :
5560 331 : case E_DImode:
5561 331 : if (!nonimmediate_operand (operands[1], E_DImode)
5562 331 : || !register_operand (operands[0], E_DImode)
5563 662 : || GET_MODE (x1) != E_DImode)
5564 0 : return -1;
5565 : return 1;
5566 :
5567 : default:
5568 : return -1;
5569 : }
5570 : }
5571 :
5572 : int
5573 272 : pattern1509 (rtx x1)
5574 : {
5575 272 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5576 272 : rtx x2, x3, x4, x5, x6, x7, x8;
5577 272 : int res ATTRIBUTE_UNUSED;
5578 272 : x2 = XVECEXP (x1, 0, 1);
5579 272 : x3 = XEXP (x2, 1);
5580 272 : x4 = XEXP (x3, 0);
5581 272 : if (!rtx_equal_p (x4, operands[2]))
5582 : return -1;
5583 272 : x5 = XEXP (x3, 1);
5584 272 : if (!rtx_equal_p (x5, operands[3]))
5585 : return -1;
5586 272 : x6 = XVECEXP (x1, 0, 2);
5587 272 : switch (GET_CODE (x6))
5588 : {
5589 12 : case UNSPEC:
5590 12 : if (XVECLEN (x6, 0) != 1
5591 12 : || XINT (x6, 1) != 33)
5592 : return -1;
5593 12 : x7 = XVECEXP (x6, 0, 0);
5594 12 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
5595 : return -1;
5596 : return 0;
5597 :
5598 260 : case USE:
5599 260 : x8 = XEXP (x6, 0);
5600 260 : operands[4] = x8;
5601 260 : if (!register_operand (operands[4], E_SImode))
5602 : return -1;
5603 : return 1;
5604 :
5605 : default:
5606 : return -1;
5607 : }
5608 : }
5609 :
5610 : int
5611 183 : pattern1523 (rtx x1, machine_mode i1, machine_mode i2)
5612 : {
5613 183 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5614 183 : rtx x2, x3;
5615 183 : int res ATTRIBUTE_UNUSED;
5616 183 : if (!register_operand (operands[0], i2)
5617 183 : || GET_MODE (x1) != i2)
5618 : return -1;
5619 173 : x2 = XEXP (x1, 0);
5620 173 : if (GET_MODE (x2) != i1)
5621 : return -1;
5622 173 : x3 = XEXP (x2, 0);
5623 173 : return pattern1522 (x3,
5624 173 : i1); /* [-1, 0] */
5625 : }
5626 :
5627 : int
5628 187 : pattern1529 (rtx x1, machine_mode i1, machine_mode i2)
5629 : {
5630 187 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5631 187 : rtx x2;
5632 187 : int res ATTRIBUTE_UNUSED;
5633 187 : if (!register_operand (operands[0], i2)
5634 187 : || GET_MODE (x1) != i2)
5635 : return -1;
5636 179 : x2 = XVECEXP (x1, 0, 0);
5637 179 : if (GET_MODE (x2) != i2
5638 179 : || !register_operand (operands[1], i2)
5639 177 : || !register_operand (operands[2], i2)
5640 356 : || !nonimmediate_operand (operands[3], i1))
5641 2 : return -1;
5642 : return 0;
5643 : }
5644 :
5645 : int
5646 2950 : pattern1537 (rtx x1, machine_mode i1)
5647 : {
5648 2950 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5649 2950 : int res ATTRIBUTE_UNUSED;
5650 2950 : if (!nonimmediate_operand (operands[0], i1)
5651 2950 : || GET_MODE (x1) != i1
5652 2950 : || !ix86_carry_flag_operator (operands[2], i1)
5653 5900 : || !nonimmediate_operand (operands[1], i1))
5654 809 : return -1;
5655 : return 0;
5656 : }
5657 :
5658 : int
5659 36 : pattern1542 (rtx x1, rtx_code i1)
5660 : {
5661 36 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5662 36 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5663 36 : rtx x10, x11, x12;
5664 36 : int res ATTRIBUTE_UNUSED;
5665 36 : x2 = XVECEXP (x1, 0, 1);
5666 36 : x3 = XEXP (x2, 1);
5667 36 : if (GET_CODE (x3) != i1)
5668 : return -1;
5669 36 : x4 = XVECEXP (x1, 0, 0);
5670 36 : x5 = XEXP (x4, 0);
5671 36 : operands[0] = x5;
5672 36 : x6 = XEXP (x4, 1);
5673 36 : x7 = XEXP (x6, 0);
5674 36 : x8 = XEXP (x7, 0);
5675 36 : operands[2] = x8;
5676 36 : if (!register_operand (operands[2], E_SImode))
5677 : return -1;
5678 36 : x9 = XEXP (x7, 1);
5679 36 : operands[3] = x9;
5680 36 : if (!nonimmediate_operand (operands[3], E_SImode))
5681 : return -1;
5682 36 : x10 = XEXP (x2, 0);
5683 36 : operands[1] = x10;
5684 36 : x11 = XEXP (x3, 0);
5685 36 : if (!rtx_equal_p (x11, operands[2]))
5686 : return -1;
5687 36 : x12 = XEXP (x3, 1);
5688 36 : if (!rtx_equal_p (x12, operands[3]))
5689 : return -1;
5690 : return 0;
5691 : }
5692 :
5693 : int
5694 4404 : pattern1557 (rtx x1, machine_mode i1, machine_mode i2)
5695 : {
5696 4404 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5697 4404 : rtx x2;
5698 4404 : int res ATTRIBUTE_UNUSED;
5699 4404 : if (GET_MODE (x1) != i1)
5700 : return -1;
5701 4404 : x2 = XEXP (x1, 0);
5702 4404 : if (GET_MODE (x2) != i1
5703 4404 : || !register_operand (operands[1], i2)
5704 8779 : || !nonimm_or_0_operand (operands[2], i1))
5705 64 : return -1;
5706 : return 0;
5707 : }
5708 :
5709 : int
5710 1203 : pattern1562 (rtx x1, machine_mode i1, machine_mode i2)
5711 : {
5712 1203 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5713 1203 : rtx x2, x3;
5714 1203 : int res ATTRIBUTE_UNUSED;
5715 1203 : if (!register_operand (operands[0], i1)
5716 1203 : || GET_MODE (x1) != i1)
5717 : return -1;
5718 1184 : x2 = XVECEXP (x1, 0, 0);
5719 1184 : if (GET_MODE (x2) != i1)
5720 : return -1;
5721 1184 : x3 = XEXP (x2, 0);
5722 1184 : if (GET_MODE (x3) != i1
5723 1184 : || !register_operand (operands[1], i1)
5724 1184 : || !nonimmediate_operand (operands[2], i1)
5725 1184 : || !nonimm_or_0_operand (operands[3], i1)
5726 2368 : || !register_operand (operands[4], i2))
5727 0 : return -1;
5728 : return 0;
5729 : }
5730 :
5731 : int
5732 11191 : pattern1572 (rtx x1, machine_mode i1, machine_mode i2)
5733 : {
5734 11191 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5735 11191 : rtx x2, x3, x4, x5, x6;
5736 11191 : int res ATTRIBUTE_UNUSED;
5737 11191 : x2 = XVECEXP (x1, 0, 0);
5738 11191 : x3 = XEXP (x2, 1);
5739 11191 : x4 = XEXP (x3, 0);
5740 11191 : x5 = XEXP (x4, 0);
5741 11191 : if (GET_MODE (x5) != i2
5742 11191 : || !nonimmediate_operand (operands[1], i1))
5743 152 : return -1;
5744 11039 : x6 = XEXP (x4, 1);
5745 11039 : if (GET_MODE (x6) != i2
5746 11039 : || !sext_operand (operands[2], i1)
5747 22030 : || pattern725 (x1,
5748 : i1,
5749 : i2) != 0)
5750 48 : return -1;
5751 : return 0;
5752 : }
5753 :
5754 : int
5755 134951 : pattern1581 (rtx x1, machine_mode i1)
5756 : {
5757 134951 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5758 134951 : rtx x2, x3, x4, x5;
5759 134951 : int res ATTRIBUTE_UNUSED;
5760 134951 : if (!register_operand (operands[0], i1))
5761 : return -1;
5762 134951 : x2 = XVECEXP (x1, 0, 0);
5763 134951 : x3 = XEXP (x2, 1);
5764 134951 : if (GET_MODE (x3) != i1
5765 134951 : || !memory_operand (operands[1], i1))
5766 1102 : return -1;
5767 133849 : x4 = XVECEXP (x1, 0, 1);
5768 133849 : x5 = XEXP (x4, 1);
5769 133849 : if (GET_MODE (x5) != i1
5770 133849 : || !nonmemory_operand (operands[2], i1))
5771 591 : return -1;
5772 : return 0;
5773 : }
5774 :
5775 : int
5776 19946 : pattern1590 (rtx x1, machine_mode i1, machine_mode i2)
5777 : {
5778 19946 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5779 19946 : rtx x2, x3;
5780 19946 : int res ATTRIBUTE_UNUSED;
5781 19946 : if (!register_operand (operands[1], i1)
5782 19946 : || GET_MODE (x1) != i2)
5783 : return -1;
5784 16251 : x2 = XEXP (x1, 0);
5785 16251 : if (GET_MODE (x2) != i2)
5786 : return -1;
5787 16251 : x3 = XEXP (x1, 1);
5788 16251 : if (GET_MODE (x3) != i2
5789 16251 : || !x86_64_sext_operand (operands[2], i1))
5790 5715 : return -1;
5791 : return 0;
5792 : }
5793 :
5794 : int
5795 1584 : pattern1594 (rtx x1, machine_mode i1, machine_mode i2)
5796 : {
5797 1584 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5798 1584 : rtx x2, x3;
5799 1584 : int res ATTRIBUTE_UNUSED;
5800 1584 : if (!register_operand (operands[0], i1)
5801 1584 : || GET_MODE (x1) != i1)
5802 : return -1;
5803 1552 : x2 = XEXP (x1, 0);
5804 1552 : if (GET_MODE (x2) != i1)
5805 : return -1;
5806 1552 : x3 = XEXP (x2, 0);
5807 1552 : if (GET_MODE (x3) != i2
5808 1552 : || !register_operand (operands[1], i1)
5809 1552 : || !vector_operand (operands[2], i1)
5810 3081 : || !nonimm_or_0_operand (operands[3], i1))
5811 61 : return -1;
5812 : return 0;
5813 : }
5814 :
5815 : int
5816 1248 : pattern1602 (rtx x1, machine_mode i1, machine_mode i2)
5817 : {
5818 1248 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5819 1248 : rtx x2, x3;
5820 1248 : int res ATTRIBUTE_UNUSED;
5821 1248 : if (!register_operand (operands[0], i2)
5822 1248 : || GET_MODE (x1) != i2)
5823 : return -1;
5824 1225 : x2 = XVECEXP (x1, 0, 0);
5825 1225 : if (GET_MODE (x2) != i2)
5826 : return -1;
5827 1225 : x3 = XEXP (x2, 0);
5828 1225 : if (GET_MODE (x3) != i2
5829 1225 : || !register_operand (operands[2], i2)
5830 2440 : || !register_operand (operands[4], i1))
5831 10 : return -1;
5832 : return 0;
5833 : }
5834 :
5835 : int
5836 1223 : pattern1612 (rtx x1, machine_mode i1, machine_mode i2)
5837 : {
5838 1223 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5839 1223 : rtx x2, x3, x4, x5;
5840 1223 : int res ATTRIBUTE_UNUSED;
5841 1223 : if (!register_operand (operands[0], i2)
5842 1223 : || GET_MODE (x1) != i2)
5843 : return -1;
5844 1200 : x2 = XVECEXP (x1, 0, 0);
5845 1200 : if (GET_MODE (x2) != i2)
5846 : return -1;
5847 1200 : x3 = XEXP (x2, 0);
5848 1200 : if (GET_MODE (x3) != i2)
5849 : return -1;
5850 1200 : x4 = XEXP (x3, 0);
5851 1200 : if (GET_MODE (x4) != i2
5852 1200 : || !register_operand (operands[2], i2))
5853 10 : return -1;
5854 1190 : x5 = XEXP (x3, 2);
5855 1190 : if (GET_MODE (x5) != i2
5856 1190 : || !register_operand (operands[4], i1))
5857 0 : return -1;
5858 : return 0;
5859 : }
5860 :
5861 : int
5862 189 : pattern1621 (rtx x1, machine_mode i1, machine_mode i2)
5863 : {
5864 189 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5865 189 : int res ATTRIBUTE_UNUSED;
5866 189 : if (!register_operand (operands[6], i2)
5867 189 : || !register_operand (operands[2], i1))
5868 59 : return -1;
5869 130 : switch (GET_MODE (x1))
5870 : {
5871 0 : case E_SImode:
5872 0 : if (!vsib_address_operand (operands[3], E_SImode))
5873 : return -1;
5874 : return 0;
5875 :
5876 130 : case E_DImode:
5877 130 : if (!vsib_address_operand (operands[3], E_DImode))
5878 : return -1;
5879 : return 1;
5880 :
5881 : default:
5882 : return -1;
5883 : }
5884 : }
5885 :
5886 : int
5887 206 : pattern1630 (rtx x1, machine_mode i1, machine_mode i2)
5888 : {
5889 206 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5890 206 : rtx x2, x3;
5891 206 : int res ATTRIBUTE_UNUSED;
5892 206 : if (!register_operand (operands[0], i2)
5893 188 : || GET_MODE (x1) != i2
5894 188 : || !register_operand (operands[6], E_QImode)
5895 242 : || !vsib_mem_operator (operands[5], i1))
5896 170 : return -1;
5897 36 : x2 = XVECEXP (x1, 0, 2);
5898 36 : x3 = XEXP (x2, 0);
5899 36 : switch (GET_MODE (x3))
5900 : {
5901 0 : case E_SImode:
5902 0 : return pattern1629 (
5903 0 : E_SImode); /* [-1, 1] */
5904 :
5905 36 : case E_DImode:
5906 36 : res = pattern1629 (
5907 : E_DImode);
5908 36 : if (res >= 0)
5909 30 : return res + 2; /* [2, 3] */
5910 : return -1;
5911 :
5912 : default:
5913 : return -1;
5914 : }
5915 : }
5916 :
5917 : int
5918 12004 : pattern1641 (rtx x1, machine_mode i1)
5919 : {
5920 12004 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5921 12004 : rtx x2;
5922 12004 : int res ATTRIBUTE_UNUSED;
5923 12004 : if (!nonimmediate_operand (operands[0], i1)
5924 12004 : || GET_MODE (x1) != i1)
5925 : return -1;
5926 12004 : x2 = XEXP (x1, 0);
5927 12004 : if (GET_MODE (x2) != i1
5928 12004 : || !nonimmediate_operand (operands[1], i1)
5929 11986 : || !ix86_carry_flag_operator (operands[4], i1)
5930 23990 : || !x86_64_general_operand (operands[2], i1))
5931 37 : return -1;
5932 : return 0;
5933 : }
5934 :
5935 : int
5936 422 : pattern1652 (rtx x1, machine_mode i1, machine_mode i2)
5937 : {
5938 422 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5939 422 : rtx x2, x3, x4, x5, x6;
5940 422 : int res ATTRIBUTE_UNUSED;
5941 422 : if (!register_operand (operands[0], i1)
5942 422 : || GET_MODE (x1) != i1)
5943 : return -1;
5944 402 : x2 = XEXP (x1, 0);
5945 402 : if (GET_MODE (x2) != i2)
5946 : return -1;
5947 402 : x3 = XEXP (x2, 0);
5948 402 : if (GET_MODE (x3) != i2)
5949 : return -1;
5950 402 : x4 = XEXP (x3, 0);
5951 402 : if (GET_MODE (x4) != i2)
5952 : return -1;
5953 402 : x5 = XEXP (x4, 0);
5954 402 : if (GET_MODE (x5) != i2
5955 402 : || !register_mmxmem_operand (operands[1], i1))
5956 16 : return -1;
5957 386 : x6 = XEXP (x4, 1);
5958 386 : if (GET_MODE (x6) != i2
5959 386 : || !register_mmxmem_operand (operands[2], i1))
5960 12 : return -1;
5961 : return 0;
5962 : }
5963 :
5964 : int
5965 1084 : pattern1662 (rtx x1)
5966 : {
5967 1084 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5968 1084 : rtx x2, x3;
5969 1084 : int res ATTRIBUTE_UNUSED;
5970 1084 : x2 = XVECEXP (x1, 0, 0);
5971 1084 : x3 = XEXP (x2, 1);
5972 1084 : if (!rtx_equal_p (x3, operands[1]))
5973 : return -1;
5974 1084 : switch (GET_MODE (operands[0]))
5975 : {
5976 484 : case E_V8HFmode:
5977 484 : return pattern1661 (x1,
5978 484 : E_V8HFmode); /* [-1, 0] */
5979 :
5980 300 : case E_V4SFmode:
5981 300 : if (pattern1661 (x1,
5982 : E_V4SFmode) != 0)
5983 : return -1;
5984 : return 1;
5985 :
5986 300 : case E_V2DFmode:
5987 300 : if (pattern1661 (x1,
5988 : E_V2DFmode) != 0)
5989 : return -1;
5990 : return 2;
5991 :
5992 : default:
5993 : return -1;
5994 : }
5995 : }
5996 :
5997 : int
5998 250 : pattern1671 (rtx x1, machine_mode i1, machine_mode i2)
5999 : {
6000 250 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6001 250 : rtx x2, x3;
6002 250 : int res ATTRIBUTE_UNUSED;
6003 250 : if (!register_operand (operands[0], i2)
6004 230 : || GET_MODE (x1) != i2
6005 230 : || !register_operand (operands[1], i2)
6006 230 : || !register_operand (operands[7], E_QImode)
6007 391 : || !vsib_mem_operator (operands[6], i1))
6008 109 : return -1;
6009 141 : x2 = XVECEXP (x1, 0, 2);
6010 141 : x3 = XEXP (x2, 0);
6011 141 : switch (GET_MODE (x3))
6012 : {
6013 0 : case E_SImode:
6014 0 : return pattern1670 (
6015 0 : E_SImode); /* [-1, 1] */
6016 :
6017 141 : case E_DImode:
6018 141 : res = pattern1670 (
6019 : E_DImode);
6020 141 : if (res >= 0)
6021 98 : return res + 2; /* [2, 3] */
6022 : return -1;
6023 :
6024 : default:
6025 : return -1;
6026 : }
6027 : }
6028 :
6029 : int
6030 0 : pattern1684 (rtx x1, machine_mode i1, machine_mode i2)
6031 : {
6032 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6033 0 : rtx x2, x3;
6034 0 : int res ATTRIBUTE_UNUSED;
6035 0 : if (!register_operand (operands[0], i1)
6036 0 : || !addsub_vs_operator (operands[7], i1)
6037 0 : || GET_MODE (x1) != i2)
6038 0 : return -1;
6039 0 : x2 = XEXP (x1, 0);
6040 0 : if (GET_MODE (x2) != i1
6041 0 : || !vector_operand (operands[1], i1)
6042 0 : || !vector_operand (operands[2], i1))
6043 0 : return -1;
6044 0 : x3 = XEXP (x1, 1);
6045 0 : if (GET_MODE (x3) != i1
6046 0 : || !register_operand (operands[3], i1)
6047 0 : || !vector_operand (operands[4], i1))
6048 0 : return -1;
6049 : return 0;
6050 : }
6051 :
6052 : int
6053 5991 : pattern1696 (rtx x1, machine_mode i1, machine_mode i2)
6054 : {
6055 5991 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6056 5991 : rtx x2;
6057 5991 : int res ATTRIBUTE_UNUSED;
6058 5991 : if (!register_operand (operands[0], i1)
6059 5991 : || GET_MODE (x1) != i1)
6060 : return -1;
6061 5970 : x2 = XEXP (x1, 0);
6062 5970 : if (GET_MODE (x2) != i2
6063 5970 : || !register_operand (operands[1], i1)
6064 5889 : || !nonimmediate_operand (operands[2], i1)
6065 5853 : || !const_0_to_7_operand (operands[3], E_VOIDmode)
6066 10642 : || pattern1695 () != 0)
6067 4304 : return -1;
6068 : return 0;
6069 : }
6070 :
6071 : int
6072 235875 : pattern1704 (rtx x1, machine_mode i1)
6073 : {
6074 235875 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6075 235875 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6076 235875 : int res ATTRIBUTE_UNUSED;
6077 235875 : x2 = XVECEXP (x1, 0, 0);
6078 235875 : x3 = XEXP (x2, 0);
6079 235875 : if (GET_MODE (x3) != i1)
6080 : return -1;
6081 235875 : x4 = XEXP (x2, 1);
6082 235875 : if (GET_MODE (x4) != i1)
6083 : return -1;
6084 235875 : x5 = XEXP (x4, 0);
6085 235875 : if (GET_MODE (x5) != i1)
6086 : return -1;
6087 235875 : x6 = XVECEXP (x1, 0, 1);
6088 235875 : x7 = XEXP (x6, 0);
6089 235875 : if (GET_MODE (x7) != i1)
6090 : return -1;
6091 235875 : x8 = XEXP (x6, 1);
6092 235875 : if (GET_MODE (x8) != i1)
6093 : return -1;
6094 235875 : x9 = XEXP (x8, 0);
6095 235875 : if (GET_MODE (x9) != i1)
6096 0 : return -1;
6097 : return 0;
6098 : }
6099 :
6100 : int
6101 10002 : pattern1713 (rtx x1)
6102 : {
6103 10002 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6104 10002 : rtx x2, x3, x4, x5, x6, x7, x8;
6105 10002 : int res ATTRIBUTE_UNUSED;
6106 10002 : x2 = XVECEXP (x1, 0, 0);
6107 10002 : x3 = XEXP (x2, 1);
6108 10002 : x4 = XVECEXP (x3, 0, 3);
6109 10002 : operands[4] = x4;
6110 10002 : if (!const_int_operand (operands[4], E_SImode))
6111 : return -1;
6112 10002 : x5 = XVECEXP (x3, 0, 1);
6113 10002 : if (!rtx_equal_p (x5, operands[0]))
6114 : return -1;
6115 7105 : x6 = XEXP (x2, 0);
6116 7105 : if (!rtx_equal_p (x6, operands[0]))
6117 : return -1;
6118 7105 : x7 = XVECEXP (x1, 0, 1);
6119 7105 : x8 = XEXP (x7, 0);
6120 7105 : if (!rtx_equal_p (x8, operands[2]))
6121 : return -1;
6122 : return 0;
6123 : }
6124 :
6125 : int
6126 432 : pattern1721 (machine_mode i1)
6127 : {
6128 432 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6129 432 : int res ATTRIBUTE_UNUSED;
6130 432 : if (!vsib_address_operand (operands[0], i1))
6131 : return -1;
6132 409 : switch (GET_MODE (operands[2]))
6133 : {
6134 208 : case E_V16SImode:
6135 208 : if (!register_operand (operands[2], E_V16SImode)
6136 151 : || !register_operand (operands[6], E_HImode)
6137 270 : || !register_operand (operands[3], E_V16SFmode))
6138 167 : return -1;
6139 : return 0;
6140 :
6141 201 : case E_V8DImode:
6142 201 : if (!register_operand (operands[2], E_V8DImode)
6143 184 : || !register_operand (operands[6], E_QImode)
6144 291 : || !register_operand (operands[3], E_V8SFmode))
6145 165 : return -1;
6146 : return 1;
6147 :
6148 : default:
6149 : return -1;
6150 : }
6151 : }
6152 :
6153 : int
6154 1570 : pattern1734 (machine_mode i1)
6155 : {
6156 1570 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6157 1570 : int res ATTRIBUTE_UNUSED;
6158 1570 : if (!vsib_address_operand (operands[0], i1))
6159 : return -1;
6160 1518 : switch (GET_MODE (operands[2]))
6161 : {
6162 790 : case E_V4SImode:
6163 790 : if (!register_operand (operands[2], E_V4SImode))
6164 : return -1;
6165 : return 0;
6166 :
6167 728 : case E_V2DImode:
6168 728 : if (!register_operand (operands[2], E_V2DImode))
6169 : return -1;
6170 : return 1;
6171 :
6172 : default:
6173 : return -1;
6174 : }
6175 : }
6176 :
6177 : int
6178 177 : pattern1741 (rtx x1, machine_mode i1, machine_mode i2)
6179 : {
6180 177 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6181 177 : rtx x2, x3;
6182 177 : int res ATTRIBUTE_UNUSED;
6183 177 : if (!register_operand (operands[0], i2)
6184 177 : || GET_MODE (x1) != i2
6185 177 : || !register_operand (operands[6], E_QImode)
6186 124 : || !vsib_mem_operator (operands[5], i1)
6187 301 : || !scratch_operand (operands[1], E_QImode))
6188 53 : return -1;
6189 124 : x2 = XVECEXP (x1, 0, 2);
6190 124 : x3 = XEXP (x2, 0);
6191 124 : switch (GET_MODE (x3))
6192 : {
6193 0 : case E_SImode:
6194 0 : return pattern1740 (
6195 0 : E_SImode); /* [-1, 1] */
6196 :
6197 124 : case E_DImode:
6198 124 : res = pattern1740 (
6199 : E_DImode);
6200 124 : if (res >= 0)
6201 116 : return res + 2; /* [2, 3] */
6202 : return -1;
6203 :
6204 : default:
6205 : return -1;
6206 : }
6207 : }
6208 :
6209 : int
6210 1363 : pattern1755 (rtx x1, machine_mode i1)
6211 : {
6212 1363 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6213 1363 : rtx x2, x3, x4;
6214 1363 : int res ATTRIBUTE_UNUSED;
6215 1363 : if (!register_operand (operands[0], i1)
6216 1363 : || GET_MODE (x1) != i1)
6217 : return -1;
6218 1349 : x2 = XVECEXP (x1, 0, 0);
6219 1349 : if (GET_MODE (x2) != i1)
6220 : return -1;
6221 1349 : x3 = XEXP (x2, 0);
6222 1349 : if (GET_MODE (x3) != i1)
6223 : return -1;
6224 1349 : x4 = XEXP (x3, 0);
6225 1349 : if (GET_MODE (x4) != i1
6226 1349 : || !nonimmediate_operand (operands[1], i1)
6227 1349 : || !register_operand (operands[2], i1)
6228 1349 : || !register_operand (operands[3], i1)
6229 2698 : || !const0_operand (operands[4], i1))
6230 0 : return -1;
6231 : return 0;
6232 : }
6233 :
6234 : int
6235 429 : pattern1762 (rtx x1, machine_mode i1, machine_mode i2)
6236 : {
6237 429 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6238 429 : rtx x2, x3;
6239 429 : int res ATTRIBUTE_UNUSED;
6240 429 : if (!register_operand (operands[0], i1)
6241 405 : || GET_MODE (x1) != i1
6242 405 : || !register_operand (operands[2], i1)
6243 404 : || !vsib_mem_operator (operands[7], i2)
6244 833 : || !register_operand (operands[5], i1))
6245 153 : return -1;
6246 276 : x2 = XVECEXP (x1, 0, 1);
6247 276 : x3 = XEXP (x2, 0);
6248 276 : switch (GET_MODE (x3))
6249 : {
6250 0 : case E_SImode:
6251 0 : return pattern1761 (
6252 0 : E_SImode); /* [-1, 1] */
6253 :
6254 276 : case E_DImode:
6255 276 : res = pattern1761 (
6256 : E_DImode);
6257 276 : if (res >= 0)
6258 139 : return res + 2; /* [2, 3] */
6259 : return -1;
6260 :
6261 : default:
6262 : return -1;
6263 : }
6264 : }
6265 :
6266 : int
6267 6 : pattern1772 (rtx x1, machine_mode i1)
6268 : {
6269 6 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6270 6 : int res ATTRIBUTE_UNUSED;
6271 6 : if (GET_MODE (x1) != i1
6272 6 : || !ix86_carry_flag_operator (operands[3], i1)
6273 6 : || !nonimmediate_operand (operands[1], i1)
6274 12 : || !x86_64_general_operand (operands[2], i1))
6275 0 : return -1;
6276 : return 0;
6277 : }
6278 :
6279 : int
6280 230 : pattern1780 (rtx x1)
6281 : {
6282 230 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6283 230 : rtx x2;
6284 230 : int res ATTRIBUTE_UNUSED;
6285 230 : if (!register_operand (operands[0], E_V8SFmode)
6286 230 : || GET_MODE (x1) != E_V8SFmode)
6287 : return -1;
6288 222 : x2 = XEXP (x1, 0);
6289 222 : switch (GET_MODE (x2))
6290 : {
6291 112 : case E_V8HFmode:
6292 112 : if (!memory_operand (operands[1], E_V16HFmode))
6293 : return -1;
6294 : return 0;
6295 :
6296 110 : case E_V8BFmode:
6297 110 : if (!memory_operand (operands[1], E_V16BFmode))
6298 : return -1;
6299 : return 1;
6300 :
6301 : default:
6302 : return -1;
6303 : }
6304 : }
6305 :
6306 : int
6307 327 : pattern1790 (rtx x1, machine_mode i1, machine_mode i2)
6308 : {
6309 327 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6310 327 : rtx x2, x3, x4;
6311 327 : int res ATTRIBUTE_UNUSED;
6312 327 : if (!register_operand (operands[0], i1)
6313 327 : || GET_MODE (x1) != i1)
6314 : return -1;
6315 321 : x2 = XVECEXP (x1, 0, 0);
6316 321 : if (GET_MODE (x2) != i1)
6317 : return -1;
6318 321 : x3 = XEXP (x2, 0);
6319 321 : if (GET_MODE (x3) != i1)
6320 : return -1;
6321 321 : x4 = XEXP (x3, 0);
6322 321 : if (GET_MODE (x4) != i1
6323 321 : || !register_operand (operands[1], i1)
6324 321 : || !register_operand (operands[2], i1)
6325 321 : || !register_operand (operands[3], i2)
6326 642 : || !const0_operand (operands[5], i1))
6327 0 : return -1;
6328 : return 0;
6329 : }
6330 :
6331 : int
6332 523 : pattern1799 (machine_mode i1)
6333 : {
6334 523 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6335 523 : int res ATTRIBUTE_UNUSED;
6336 523 : if (!vsib_address_operand (operands[2], i1))
6337 : return -1;
6338 505 : switch (GET_MODE (operands[3]))
6339 : {
6340 276 : case E_V4SImode:
6341 276 : if (!register_operand (operands[3], E_V4SImode))
6342 : return -1;
6343 : return 0;
6344 :
6345 229 : case E_V4DImode:
6346 229 : if (!register_operand (operands[3], E_V4DImode))
6347 : return -1;
6348 : return 1;
6349 :
6350 : default:
6351 : return -1;
6352 : }
6353 : }
6354 :
6355 : int
6356 535 : pattern1806 (rtx x1)
6357 : {
6358 535 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6359 535 : rtx x2, x3;
6360 535 : int res ATTRIBUTE_UNUSED;
6361 535 : if (GET_MODE (x1) != E_SImode
6362 535 : || !general_reg_operand (operands[4], E_SImode))
6363 0 : return -1;
6364 535 : x2 = XEXP (x1, 0);
6365 535 : if (!rtx_equal_p (x2, operands[2]))
6366 : return -1;
6367 535 : x3 = XEXP (x1, 1);
6368 535 : if (!rtx_equal_p (x3, operands[0]))
6369 : return -1;
6370 : return 0;
6371 : }
6372 :
6373 : int
6374 1285 : pattern1813 (rtx x1, machine_mode i1, machine_mode i2)
6375 : {
6376 1285 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6377 1285 : rtx x2, x3;
6378 1285 : int res ATTRIBUTE_UNUSED;
6379 1285 : if (!register_operand (operands[0], i1)
6380 1285 : || GET_MODE (x1) != i1)
6381 : return -1;
6382 280 : x2 = XEXP (x1, 0);
6383 280 : if (GET_MODE (x2) != i2
6384 280 : || !nonimmediate_operand (operands[1], i1))
6385 0 : return -1;
6386 280 : x3 = XEXP (x2, 1);
6387 280 : if (!rtx_equal_p (x3, operands[1]))
6388 : return -1;
6389 : return 0;
6390 : }
6391 :
6392 : int
6393 769 : pattern1819 (rtx x1, machine_mode i1, machine_mode i2)
6394 : {
6395 769 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6396 769 : int res ATTRIBUTE_UNUSED;
6397 769 : if (!register_operand (operands[0], i1)
6398 765 : || GET_MODE (x1) != i1
6399 765 : || !vsib_mem_operator (operands[7], i2)
6400 1534 : || !scratch_operand (operands[1], i1))
6401 4 : return -1;
6402 : return 0;
6403 : }
6404 :
6405 : int
6406 1 : pattern1824 (rtx x1, machine_mode i1)
6407 : {
6408 1 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6409 1 : rtx x2, x3, x4, x5, x6, x7;
6410 1 : int res ATTRIBUTE_UNUSED;
6411 1 : x2 = XVECEXP (x1, 0, 0);
6412 1 : x3 = XEXP (x2, 1);
6413 1 : x4 = XEXP (x3, 0);
6414 1 : x5 = XEXP (x4, 0);
6415 1 : if (GET_MODE (x5) != i1
6416 1 : || !nonimmediate_operand (operands[1], i1)
6417 2 : || !ix86_carry_flag_operator (operands[4], i1))
6418 0 : return -1;
6419 1 : x6 = XVECEXP (x1, 0, 1);
6420 1 : x7 = XEXP (x6, 1);
6421 1 : return pattern1820 (x7,
6422 1 : i1); /* [-1, 0] */
6423 : }
6424 :
6425 : int
6426 5593 : pattern1832 (rtx x1, machine_mode i1)
6427 : {
6428 5593 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6429 5593 : rtx x2, x3, x4, x5, x6, x7, x8;
6430 5593 : int res ATTRIBUTE_UNUSED;
6431 5593 : x2 = XEXP (x1, 1);
6432 5593 : if (!rtx_equal_p (x2, operands[4]))
6433 : return -1;
6434 473 : x3 = XEXP (x1, 0);
6435 473 : if (!rtx_equal_p (x3, operands[1]))
6436 : return -1;
6437 32 : x4 = PATTERN (peep2_next_insn (3));
6438 32 : if (GET_CODE (x4) != SET)
6439 : return -1;
6440 25 : x5 = XEXP (x4, 1);
6441 25 : if (GET_CODE (x5) != COMPARE
6442 11 : || GET_MODE (x5) != E_CCZmode)
6443 : return -1;
6444 5 : x6 = XEXP (x4, 0);
6445 5 : if (GET_CODE (x6) != REG
6446 5 : || REGNO (x6) != 17
6447 10 : || GET_MODE (x6) != E_CCZmode)
6448 : return -1;
6449 5 : x7 = XEXP (x5, 0);
6450 5 : operands[5] = x7;
6451 5 : if (!register_operand (operands[5], i1))
6452 : return -1;
6453 5 : x8 = XEXP (x5, 1);
6454 5 : operands[6] = x8;
6455 5 : if (!x86_64_nonmemory_operand (operands[6], i1))
6456 : return -1;
6457 : return 0;
6458 : }
6459 :
6460 : int
6461 434 : pattern1847 (machine_mode i1)
6462 : {
6463 434 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6464 434 : int res ATTRIBUTE_UNUSED;
6465 434 : if (!vsib_address_operand (operands[0], i1))
6466 : return -1;
6467 421 : switch (GET_MODE (operands[2]))
6468 : {
6469 227 : case E_V8SImode:
6470 227 : if (!register_operand (operands[2], E_V8SImode)
6471 227 : || !register_operand (operands[3], E_V8SImode))
6472 38 : return -1;
6473 : return 0;
6474 :
6475 194 : case E_V4DImode:
6476 194 : if (!register_operand (operands[2], E_V4DImode)
6477 194 : || !register_operand (operands[3], E_V4SImode))
6478 21 : return -1;
6479 : return 1;
6480 :
6481 : default:
6482 : return -1;
6483 : }
6484 : }
6485 :
6486 : int
6487 1457 : pattern1854 (rtx x1, machine_mode i1)
6488 : {
6489 1457 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6490 1457 : rtx x2, x3, x4;
6491 1457 : int res ATTRIBUTE_UNUSED;
6492 1457 : if (!memory_operand (operands[0], i1))
6493 : return -1;
6494 1457 : x2 = XEXP (x1, 0);
6495 1457 : if (GET_MODE (x2) != i1
6496 1457 : || !nonmemory_operand (operands[1], i1))
6497 22 : return -1;
6498 1435 : x3 = XEXP (x1, 1);
6499 1435 : if (GET_MODE (x3) != i1)
6500 : return -1;
6501 1435 : x4 = XEXP (x3, 0);
6502 1435 : if (GET_MODE (x4) != i1)
6503 : return -1;
6504 : return 0;
6505 : }
6506 :
6507 : int
6508 469 : pattern1859 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3, machine_mode i4)
6509 : {
6510 469 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6511 469 : rtx x2, x3, x4, x5;
6512 469 : int res ATTRIBUTE_UNUSED;
6513 469 : if (!register_operand (operands[0], i2)
6514 469 : || GET_MODE (x1) != i2)
6515 : return -1;
6516 447 : x2 = XEXP (x1, 0);
6517 447 : if (GET_MODE (x2) != i2)
6518 : return -1;
6519 447 : x3 = XEXP (x2, 0);
6520 447 : if (GET_MODE (x3) != i2)
6521 : return -1;
6522 447 : x4 = XEXP (x3, 0);
6523 447 : if (GET_MODE (x4) != i4
6524 447 : || !register_operand (operands[1], i3))
6525 0 : return -1;
6526 447 : x5 = XEXP (x3, 1);
6527 447 : if (GET_MODE (x5) != i4
6528 447 : || !vector_operand (operands[2], i3)
6529 447 : || !nonimm_or_0_operand (operands[3], i2)
6530 878 : || !register_operand (operands[4], i1))
6531 51 : return -1;
6532 : return 0;
6533 : }
6534 :
6535 : int
6536 63 : pattern1868 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
6537 : {
6538 63 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6539 63 : rtx x2, x3, x4;
6540 63 : int res ATTRIBUTE_UNUSED;
6541 63 : if (!register_operand (operands[0], i1)
6542 63 : || GET_MODE (x1) != i1)
6543 : return -1;
6544 59 : x2 = XEXP (x1, 0);
6545 59 : if (GET_MODE (x2) != i3
6546 59 : || !register_operand (operands[2], i1)
6547 59 : || !vsib_mem_operator (operands[7], i2)
6548 118 : || !register_operand (operands[5], i1))
6549 6 : return -1;
6550 53 : x3 = XVECEXP (x2, 0, 1);
6551 53 : x4 = XEXP (x3, 0);
6552 53 : switch (GET_MODE (x4))
6553 : {
6554 0 : case E_SImode:
6555 0 : if (!vsib_address_operand (operands[3], E_SImode))
6556 : return -1;
6557 : return 0;
6558 :
6559 53 : case E_DImode:
6560 53 : if (!vsib_address_operand (operands[3], E_DImode))
6561 : return -1;
6562 : return 1;
6563 :
6564 : default:
6565 : return -1;
6566 : }
6567 : }
6568 :
6569 : int
6570 173 : pattern1879 (rtx x1)
6571 : {
6572 173 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6573 173 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6574 173 : rtx x10, x11, x12;
6575 173 : int res ATTRIBUTE_UNUSED;
6576 173 : x2 = XEXP (x1, 1);
6577 173 : x3 = XEXP (x2, 0);
6578 173 : x4 = XEXP (x3, 1);
6579 173 : x5 = XVECEXP (x4, 0, 0);
6580 173 : operands[5] = x5;
6581 173 : if (!const_0_to_1_operand (operands[5], E_SImode))
6582 : return -1;
6583 173 : x6 = XEXP (x2, 1);
6584 173 : x7 = XEXP (x6, 1);
6585 173 : x8 = XVECEXP (x7, 0, 0);
6586 173 : operands[6] = x8;
6587 173 : if (!const_0_to_1_operand (operands[6], E_SImode))
6588 : return -1;
6589 173 : x9 = XEXP (x1, 0);
6590 173 : x10 = XEXP (x9, 1);
6591 173 : x11 = XEXP (x10, 0);
6592 173 : if (!rtx_equal_p (x11, operands[1]))
6593 : return -1;
6594 173 : x12 = XEXP (x6, 0);
6595 173 : if (!rtx_equal_p (x12, operands[2]))
6596 : return -1;
6597 : return 0;
6598 : }
6599 :
6600 : int
6601 1890 : pattern1889 (rtx x1, machine_mode i1)
6602 : {
6603 1890 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6604 1890 : rtx x2, x3, x4, x5;
6605 1890 : int res ATTRIBUTE_UNUSED;
6606 1890 : if (!register_operand (operands[0], i1)
6607 1890 : || !const_int_operand (operands[2], i1))
6608 0 : return -1;
6609 1890 : x2 = XVECEXP (x1, 0, 0);
6610 1890 : x3 = XEXP (x2, 1);
6611 1890 : if (GET_MODE (x3) != i1
6612 1890 : || !memory_operand (operands[1], i1))
6613 0 : return -1;
6614 1890 : x4 = XVECEXP (x1, 0, 1);
6615 1890 : x5 = XEXP (x4, 1);
6616 1890 : if (GET_MODE (x5) != i1
6617 1890 : || !const_int_operand (operands[3], i1))
6618 110 : return -1;
6619 : return 0;
6620 : }
6621 :
6622 : int
6623 380 : pattern1891 (rtx x1, int i1, int i2, int i3, int i4)
6624 : {
6625 380 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6626 380 : rtx x2, x3, x4, x5;
6627 380 : int res ATTRIBUTE_UNUSED;
6628 380 : x2 = XVECEXP (x1, 0, 28);
6629 380 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + i4])
6630 : return -1;
6631 380 : x3 = XVECEXP (x1, 0, 29);
6632 380 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + i3])
6633 : return -1;
6634 380 : x4 = XVECEXP (x1, 0, 30);
6635 380 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + i2])
6636 : return -1;
6637 380 : x5 = XVECEXP (x1, 0, 31);
6638 380 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
6639 0 : return -1;
6640 : return 0;
6641 : }
6642 :
6643 : int
6644 0 : pattern1896 (rtx x1, machine_mode i1)
6645 : {
6646 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6647 0 : rtx x2, x3, x4, x5, x6, x7;
6648 0 : int res ATTRIBUTE_UNUSED;
6649 0 : if (!register_operand (operands[4], i1)
6650 0 : || GET_MODE (x1) != i1
6651 0 : || !nonmemory_operand (operands[2], i1))
6652 0 : return -1;
6653 0 : x2 = PATTERN (peep2_next_insn (3));
6654 0 : x3 = XEXP (x2, 1);
6655 0 : if (!rtx_equal_p (x3, operands[4]))
6656 : return -1;
6657 0 : x4 = PATTERN (peep2_next_insn (4));
6658 0 : x5 = XEXP (x4, 1);
6659 0 : x6 = XEXP (x5, 0);
6660 0 : operands[5] = x6;
6661 0 : x7 = XEXP (x5, 1);
6662 0 : operands[6] = x7;
6663 0 : return 0;
6664 : }
6665 :
6666 : int
6667 1108 : pattern1903 (rtx x1, machine_mode i1, machine_mode i2)
6668 : {
6669 1108 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6670 1108 : rtx x2, x3, x4, x5, x6, x7;
6671 1108 : int res ATTRIBUTE_UNUSED;
6672 1108 : x2 = XVECEXP (x1, 0, 0);
6673 1108 : x3 = XEXP (x2, 1);
6674 1108 : x4 = XEXP (x3, 0);
6675 1108 : x5 = XEXP (x4, 0);
6676 1108 : if (GET_MODE (x5) != i2
6677 1108 : || !ix86_carry_flag_operator (operands[4], i2))
6678 0 : return -1;
6679 1108 : x6 = XEXP (x5, 1);
6680 1108 : if (GET_MODE (x6) != i2
6681 1108 : || !nonimmediate_operand (operands[1], i1))
6682 0 : return -1;
6683 1108 : x7 = XEXP (x4, 1);
6684 1108 : if (GET_MODE (x7) != i2
6685 1108 : || !x86_64_sext_operand (operands[2], i1)
6686 2216 : || pattern1901 (x1,
6687 : i1,
6688 : i2) != 0)
6689 0 : return -1;
6690 : return 0;
6691 : }
6692 :
6693 : int
6694 871 : pattern1911 (rtx x1, int i1)
6695 : {
6696 871 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6697 871 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6698 871 : int res ATTRIBUTE_UNUSED;
6699 871 : if (XVECLEN (x1, 0) != i1)
6700 : return -1;
6701 871 : x2 = XVECEXP (x1, 0, 0);
6702 871 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
6703 : return -1;
6704 871 : x3 = XVECEXP (x1, 0, 1);
6705 871 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
6706 : return -1;
6707 871 : x4 = XVECEXP (x1, 0, 2);
6708 871 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
6709 : return -1;
6710 871 : x5 = XVECEXP (x1, 0, 3);
6711 871 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
6712 : return -1;
6713 871 : x6 = XVECEXP (x1, 0, 4);
6714 871 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
6715 : return -1;
6716 871 : x7 = XVECEXP (x1, 0, 5);
6717 871 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 11])
6718 : return -1;
6719 871 : x8 = XVECEXP (x1, 0, 6);
6720 871 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 13])
6721 : return -1;
6722 871 : x9 = XVECEXP (x1, 0, 7);
6723 871 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 15])
6724 0 : return -1;
6725 : return 0;
6726 : }
6727 :
6728 : int
6729 94059028 : recog_1 (rtx x1 ATTRIBUTE_UNUSED,
6730 : rtx_insn *insn ATTRIBUTE_UNUSED,
6731 : int *pnum_clobbers ATTRIBUTE_UNUSED)
6732 : {
6733 94059028 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6734 94059028 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6735 94059028 : rtx x10, x11, x12, x13;
6736 94059028 : int res ATTRIBUTE_UNUSED;
6737 94059028 : x2 = XEXP (x1, 1);
6738 94059028 : x3 = XEXP (x2, 0);
6739 94059028 : x4 = XEXP (x3, 0);
6740 94059028 : if (GET_CODE (x4) != REG
6741 94059028 : || REGNO (x4) != 17)
6742 : return -1;
6743 82642452 : x5 = XEXP (x3, 1);
6744 82642452 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6745 : return -1;
6746 82642452 : x6 = XEXP (x2, 1);
6747 82642452 : switch (GET_CODE (x6))
6748 : {
6749 190 : case COMPARE:
6750 190 : if (GET_MODE (x6) != E_CCmode)
6751 : return -1;
6752 190 : x7 = XEXP (x6, 0);
6753 190 : if (GET_CODE (x7) != MINUS)
6754 : return -1;
6755 134 : x8 = XEXP (x6, 1);
6756 134 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6757 : return -1;
6758 134 : x9 = XEXP (x2, 2);
6759 134 : if (GET_CODE (x9) != UNSPEC
6760 134 : || XVECLEN (x9, 0) != 1
6761 134 : || XINT (x9, 1) != 110
6762 134 : || GET_MODE (x9) != E_CCmode)
6763 : return -1;
6764 134 : x10 = XEXP (x1, 0);
6765 134 : operands[0] = x10;
6766 134 : if (!flags_reg_operand (operands[0], E_CCmode)
6767 134 : || GET_MODE (x2) != E_CCmode
6768 134 : || !comparison_operator (operands[1], E_VOIDmode)
6769 268 : || GET_MODE (x4) != E_CCmode)
6770 0 : return -1;
6771 134 : x11 = XEXP (x7, 0);
6772 134 : operands[2] = x11;
6773 134 : x12 = XEXP (x7, 1);
6774 134 : operands[3] = x12;
6775 134 : x13 = XVECEXP (x9, 0, 0);
6776 134 : operands[4] = x13;
6777 134 : if (!const_0_to_15_operand (operands[4], E_SImode))
6778 : return -1;
6779 134 : switch (GET_MODE (x7))
6780 : {
6781 5 : case E_QImode:
6782 5 : if (!nonimmediate_operand (operands[2], E_QImode)
6783 5 : || !general_operand (operands[3], E_QImode)
6784 10 : || !
6785 : #line 1540 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6786 : (TARGET_APX_CCMP))
6787 : return -1;
6788 : return 1; /* ccmpqi */
6789 :
6790 : case E_HImode:
6791 : if (!nonimmediate_operand (operands[2], E_HImode)
6792 : || !general_operand (operands[3], E_HImode)
6793 : || !
6794 : #line 1540 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6795 : (TARGET_APX_CCMP))
6796 : return -1;
6797 : return 2; /* ccmphi */
6798 :
6799 : case E_SImode:
6800 : if (!nonimmediate_operand (operands[2], E_SImode)
6801 : || !x86_64_general_operand (operands[3], E_SImode)
6802 : || !
6803 : #line 1540 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6804 : (TARGET_APX_CCMP))
6805 : return -1;
6806 : return 3; /* ccmpsi */
6807 :
6808 : case E_DImode:
6809 : if (!nonimmediate_operand (operands[2], E_DImode)
6810 : || !x86_64_general_operand (operands[3], E_DImode)
6811 : || !(
6812 : #line 1540 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6813 : (TARGET_APX_CCMP) &&
6814 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6815 : (TARGET_64BIT)))
6816 : return -1;
6817 : return 4; /* ccmpdi */
6818 :
6819 : default:
6820 : return -1;
6821 : }
6822 :
6823 : case LABEL_REF:
6824 : x9 = XEXP (x2, 2);
6825 : if (GET_CODE (x9) != PC)
6826 : return -1;
6827 : x10 = XEXP (x1, 0);
6828 : if (GET_CODE (x10) != PC
6829 : || !ix86_comparison_operator (operands[1], E_VOIDmode))
6830 : return -1;
6831 : x7 = XEXP (x6, 0);
6832 : operands[0] = x7;
6833 : return 1490; /* *jcc */
6834 :
6835 : case REG:
6836 : case SUBREG:
6837 : case MEM:
6838 : operands[2] = x6;
6839 : x10 = XEXP (x1, 0);
6840 : operands[0] = x10;
6841 : x9 = XEXP (x2, 2);
6842 : operands[3] = x9;
6843 : switch (GET_MODE (operands[0]))
6844 : {
6845 : case E_HImode:
6846 : if (pattern1208 (x2,
6847 : E_HImode) != 0
6848 : || !
6849 : #line 26778 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6850 : (TARGET_CMOVE && !(MEM_P (operands[2]) && MEM_P (operands[3]))))
6851 : return -1;
6852 : return 1837; /* *movhicc_noc */
6853 :
6854 : case E_QImode:
6855 : if (pattern1209 (x2) != 0
6856 : || !
6857 : #line 26852 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6858 : (TARGET_CMOVE && !TARGET_PARTIAL_REG_STALL))
6859 : return -1;
6860 : return 1842; /* *movqicc_noc */
6861 :
6862 : case E_XFmode:
6863 : if (!register_operand (operands[0], E_XFmode)
6864 : || GET_MODE (x2) != E_XFmode
6865 : || !fcmov_comparison_operator (operands[1], E_VOIDmode)
6866 : || !register_operand (operands[2], E_XFmode)
6867 : || !register_operand (operands[3], E_XFmode)
6868 : || !
6869 : #line 27046 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6870 : (TARGET_80387 && TARGET_CMOVE))
6871 : return -1;
6872 : return 1844; /* *movxfcc_1 */
6873 :
6874 : case E_DFmode:
6875 : if (!register_operand (operands[0], E_DFmode)
6876 : || pattern1269 (x2,
6877 : E_DFmode) != 0
6878 : || !
6879 : #line 27061 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6880 : (TARGET_80387 && TARGET_CMOVE
6881 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))))
6882 : return -1;
6883 : return 1845; /* *movdfcc_1 */
6884 :
6885 : case E_SFmode:
6886 : if (!register_operand (operands[0], E_SFmode)
6887 : || pattern1269 (x2,
6888 : E_SFmode) != 0
6889 : || !
6890 : #line 27096 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6891 : (TARGET_80387 && TARGET_CMOVE
6892 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))))
6893 : return -1;
6894 : return 1846; /* *movsfcc_1_387 */
6895 :
6896 : default:
6897 : return -1;
6898 : }
6899 :
6900 : default:
6901 : return -1;
6902 : }
6903 : }
6904 :
6905 : int
6906 : recog_14 (rtx x1 ATTRIBUTE_UNUSED,
6907 : rtx_insn *insn ATTRIBUTE_UNUSED,
6908 : int *pnum_clobbers ATTRIBUTE_UNUSED)
6909 : {
6910 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6911 : rtx x2, x3, x4, x5, x6, x7;
6912 : int res ATTRIBUTE_UNUSED;
6913 : x2 = XEXP (x1, 1);
6914 : switch (XINT (x2, 1))
6915 : {
6916 : case 25:
6917 : return recog_8 (x1, insn, pnum_clobbers);
6918 :
6919 : case 26:
6920 : if (pattern58 (x1,
6921 : E_HImode) != 0
6922 : || !
6923 : #line 1999 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6924 : (TARGET_SAHF))
6925 : return -1;
6926 : return 51; /* x86_sahf_1 */
6927 :
6928 : case 27:
6929 : return recog_7 (x1, insn, pnum_clobbers);
6930 :
6931 : case 45:
6932 : if (GET_MODE (x2) != E_CCFPmode)
6933 : return -1;
6934 : x3 = XVECEXP (x2, 0, 0);
6935 : if (GET_CODE (x3) != COMPARE
6936 : || GET_MODE (x3) != E_CCFPmode)
6937 : return -1;
6938 : x4 = XEXP (x1, 0);
6939 : if (GET_CODE (x4) != REG
6940 : || REGNO (x4) != 17
6941 : || GET_MODE (x4) != E_CCFPmode)
6942 : return -1;
6943 : x5 = XEXP (x3, 0);
6944 : operands[0] = x5;
6945 : x6 = XEXP (x3, 1);
6946 : operands[1] = x6;
6947 : switch (GET_MODE (operands[0]))
6948 : {
6949 : case E_SFmode:
6950 : if (!register_operand (operands[0], E_SFmode)
6951 : || !nonimmediate_operand (operands[1], E_SFmode)
6952 : || !
6953 : #line 2050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6954 : (TARGET_AVX10_2))
6955 : return -1;
6956 : return 54; /* *cmpxsf */
6957 :
6958 : case E_DFmode:
6959 : if (!register_operand (operands[0], E_DFmode)
6960 : || !nonimmediate_operand (operands[1], E_DFmode)
6961 : || !
6962 : #line 2050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6963 : (TARGET_AVX10_2))
6964 : return -1;
6965 : return 56; /* *cmpxdf */
6966 :
6967 : case E_HFmode:
6968 : if (!register_operand (operands[0], E_HFmode)
6969 : || !nonimmediate_operand (operands[1], E_HFmode)
6970 : || !
6971 : #line 2063 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6972 : (TARGET_AVX10_2))
6973 : return -1;
6974 : return 58; /* *cmpxhf */
6975 :
6976 : default:
6977 : return -1;
6978 : }
6979 :
6980 : case 42:
6981 : if (pattern60 (x1,
6982 : E_CCCmode) != 0)
6983 : return -1;
6984 : return 67; /* x86_stc */
6985 :
6986 : case 43:
6987 : x4 = XEXP (x1, 0);
6988 : operands[0] = x4;
6989 : x3 = XVECEXP (x2, 0, 0);
6990 : operands[1] = x3;
6991 : if (!flags_reg_operand (operands[1], E_VOIDmode))
6992 : return -1;
6993 : switch (GET_MODE (operands[0]))
6994 : {
6995 : case E_SImode:
6996 : if (!push_operand (operands[0], E_SImode)
6997 : || GET_MODE (x2) != E_SImode
6998 : || !(
6999 : #line 2328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7000 : (GET_MODE_CLASS (GET_MODE (operands[1])) == MODE_CC) &&
7001 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7002 : (word_mode == SImode)))
7003 : return -1;
7004 : return 84; /* pushflsi2 */
7005 :
7006 : case E_DImode:
7007 : if (!push_operand (operands[0], E_DImode)
7008 : || GET_MODE (x2) != E_DImode
7009 : || !(
7010 : #line 2328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7011 : (GET_MODE_CLASS (GET_MODE (operands[1])) == MODE_CC) &&
7012 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7013 : (word_mode == DImode)))
7014 : return -1;
7015 : return 85; /* pushfldi2 */
7016 :
7017 : default:
7018 : return -1;
7019 : }
7020 :
7021 : case 44:
7022 : if (GET_MODE (x2) != E_CCmode)
7023 : return -1;
7024 : x4 = XEXP (x1, 0);
7025 : operands[0] = x4;
7026 : if (!flags_reg_operand (operands[0], E_CCmode))
7027 : return -1;
7028 : x3 = XVECEXP (x2, 0, 0);
7029 : operands[1] = x3;
7030 : switch (GET_MODE (operands[1]))
7031 : {
7032 : case E_SImode:
7033 : if (!pop_operand (operands[1], E_SImode)
7034 : || !
7035 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7036 : (word_mode == SImode))
7037 : return -1;
7038 : return 86; /* popflsi1 */
7039 :
7040 : case E_DImode:
7041 : if (!pop_operand (operands[1], E_DImode)
7042 : || !
7043 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7044 : (word_mode == DImode))
7045 : return -1;
7046 : return 87; /* popfldi1 */
7047 :
7048 : default:
7049 : return -1;
7050 : }
7051 :
7052 : case 61:
7053 : if (GET_MODE (x2) != E_SFmode)
7054 : return -1;
7055 : x4 = XEXP (x1, 0);
7056 : operands[0] = x4;
7057 : if (!register_operand (operands[0], E_SFmode))
7058 : return -1;
7059 : x3 = XVECEXP (x2, 0, 0);
7060 : operands[1] = x3;
7061 : if (!register_operand (operands[1], E_BFmode)
7062 : || !
7063 : #line 5480 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7064 : (TARGET_SSE2))
7065 : return -1;
7066 : return 207; /* extendbfsf2_1 */
7067 :
7068 : case 29:
7069 : if (GET_MODE (x2) != E_HImode)
7070 : return -1;
7071 : x3 = XVECEXP (x2, 0, 0);
7072 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
7073 : return -1;
7074 : x4 = XEXP (x1, 0);
7075 : operands[0] = x4;
7076 : if (!memory_operand (operands[0], E_HImode)
7077 : || !
7078 : #line 6054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7079 : (TARGET_80387))
7080 : return -1;
7081 : return 242; /* x86_fnstcw_1 */
7082 :
7083 : case 98:
7084 : if (GET_MODE (x2) != E_HImode)
7085 : return -1;
7086 : x4 = XEXP (x1, 0);
7087 : operands[0] = x4;
7088 : if (!register_operand (operands[0], E_HImode))
7089 : return -1;
7090 : x3 = XVECEXP (x2, 0, 0);
7091 : operands[1] = x3;
7092 : if (!nonimmediate_operand (operands[1], E_HImode))
7093 : return -1;
7094 : if ((
7095 : #line 22090 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7096 : (TARGET_APX_NF) &&
7097 : #line 22000 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7098 : (TARGET_BMI)))
7099 : return 1596; /* tzcnt_hi_nf */
7100 : if (pnum_clobbers == NULL
7101 : || !(
7102 : #line 22090 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7103 : (true) &&
7104 : #line 22000 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7105 : (TARGET_BMI)))
7106 : return -1;
7107 : *pnum_clobbers = 1;
7108 : return 1597; /* tzcnt_hi */
7109 :
7110 : case 97:
7111 : if (GET_MODE (x2) != E_HImode)
7112 : return -1;
7113 : x4 = XEXP (x1, 0);
7114 : operands[0] = x4;
7115 : if (!register_operand (operands[0], E_HImode))
7116 : return -1;
7117 : x3 = XVECEXP (x2, 0, 0);
7118 : operands[1] = x3;
7119 : if (!nonimmediate_operand (operands[1], E_HImode))
7120 : return -1;
7121 : if ((
7122 : #line 22090 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7123 : (TARGET_APX_NF) &&
7124 : #line 22001 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7125 : (TARGET_LZCNT)))
7126 : return 1598; /* lzcnt_hi_nf */
7127 : if (pnum_clobbers == NULL
7128 : || !(
7129 : #line 22090 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7130 : (true) &&
7131 : #line 22001 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7132 : (TARGET_LZCNT)))
7133 : return -1;
7134 : *pnum_clobbers = 1;
7135 : return 1599; /* lzcnt_hi */
7136 :
7137 : case 28:
7138 : if (pattern58 (x1,
7139 : E_QImode) != 0)
7140 : return -1;
7141 : return 1682; /* parityqi2_cmp */
7142 :
7143 : case 55:
7144 : switch (pattern61 (x1))
7145 : {
7146 : case 0:
7147 : if (!
7148 : #line 23840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7149 : (TARGET_SSE && TARGET_SSE_MATH))
7150 : return -1;
7151 : return 1714; /* *rcpsf2_sse */
7152 :
7153 : case 1:
7154 : if (!
7155 : #line 23866 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7156 : (TARGET_AVX512FP16))
7157 : return -1;
7158 : return 1715; /* rcphf2 */
7159 :
7160 : default:
7161 : return -1;
7162 : }
7163 :
7164 : case 32:
7165 : x4 = XEXP (x1, 0);
7166 : operands[0] = x4;
7167 : x3 = XVECEXP (x2, 0, 0);
7168 : operands[1] = x3;
7169 : if (!register_operand (operands[1], E_XFmode))
7170 : return -1;
7171 : switch (GET_MODE (operands[0]))
7172 : {
7173 : case E_SFmode:
7174 : if (!nonimmediate_operand (operands[0], E_SFmode)
7175 : || GET_MODE (x2) != E_SFmode
7176 : || !
7177 : #line 24083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7178 : (TARGET_USE_FANCY_MATH_387))
7179 : return -1;
7180 : return 1740; /* truncxfsf2_i387_noop_unspec */
7181 :
7182 : case E_DFmode:
7183 : if (!nonimmediate_operand (operands[0], E_DFmode)
7184 : || GET_MODE (x2) != E_DFmode
7185 : || !
7186 : #line 24083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7187 : (TARGET_USE_FANCY_MATH_387))
7188 : return -1;
7189 : return 1741; /* truncxfdf2_i387_noop_unspec */
7190 :
7191 : default:
7192 : return -1;
7193 : }
7194 :
7195 : case 56:
7196 : switch (pattern61 (x1))
7197 : {
7198 : case 0:
7199 : if (!
7200 : #line 24103 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7201 : (TARGET_SSE))
7202 : return -1;
7203 : return 1743; /* *rsqrtsf2_sse */
7204 :
7205 : case 1:
7206 : if (!
7207 : #line 24139 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7208 : (TARGET_AVX512FP16))
7209 : return -1;
7210 : return 1744; /* rsqrthf2 */
7211 :
7212 : default:
7213 : return -1;
7214 : }
7215 :
7216 : case 65:
7217 : if (GET_MODE (x2) != E_XFmode)
7218 : return -1;
7219 : x4 = XEXP (x1, 0);
7220 : operands[0] = x4;
7221 : if (!register_operand (operands[0], E_XFmode))
7222 : return -1;
7223 : x3 = XVECEXP (x2, 0, 0);
7224 : operands[1] = x3;
7225 : if (!register_operand (operands[1], E_XFmode)
7226 : || !
7227 : #line 24406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7228 : (TARGET_USE_FANCY_MATH_387
7229 : && flag_unsafe_math_optimizations))
7230 : return -1;
7231 : return 1751; /* sinxf2 */
7232 :
7233 : case 66:
7234 : if (GET_MODE (x2) != E_XFmode)
7235 : return -1;
7236 : x4 = XEXP (x1, 0);
7237 : operands[0] = x4;
7238 : if (!register_operand (operands[0], E_XFmode))
7239 : return -1;
7240 : x3 = XVECEXP (x2, 0, 0);
7241 : operands[1] = x3;
7242 : if (!register_operand (operands[1], E_XFmode)
7243 : || !
7244 : #line 24406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7245 : (TARGET_USE_FANCY_MATH_387
7246 : && flag_unsafe_math_optimizations))
7247 : return -1;
7248 : return 1752; /* cosxf2 */
7249 :
7250 : case 72:
7251 : if (GET_MODE (x2) != E_XFmode)
7252 : return -1;
7253 : x4 = XEXP (x1, 0);
7254 : operands[0] = x4;
7255 : if (!register_operand (operands[0], E_XFmode))
7256 : return -1;
7257 : x3 = XVECEXP (x2, 0, 0);
7258 : operands[1] = x3;
7259 : if (!register_operand (operands[1], E_XFmode)
7260 : || !
7261 : #line 25032 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7262 : (TARGET_USE_FANCY_MATH_387
7263 : && flag_unsafe_math_optimizations))
7264 : return -1;
7265 : return 1759; /* *f2xm1xf2_i387 */
7266 :
7267 : case 70:
7268 : if (GET_MODE (x2) != E_XFmode)
7269 : return -1;
7270 : x4 = XEXP (x1, 0);
7271 : operands[0] = x4;
7272 : if (!register_operand (operands[0], E_XFmode))
7273 : return -1;
7274 : x3 = XVECEXP (x2, 0, 0);
7275 : operands[1] = x3;
7276 : if (!register_operand (operands[1], E_XFmode)
7277 : || !
7278 : #line 25366 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7279 : (TARGET_USE_FANCY_MATH_387))
7280 : return -1;
7281 : return 1766; /* rintxf2 */
7282 :
7283 : case 71:
7284 : if (GET_MODE (x2) != E_HImode)
7285 : return -1;
7286 : x4 = XEXP (x1, 0);
7287 : operands[0] = x4;
7288 : if (!nonimmediate_operand (operands[0], E_HImode))
7289 : return -1;
7290 : x3 = XVECEXP (x2, 0, 0);
7291 : operands[1] = x3;
7292 : if (!register_operand (operands[1], E_XFmode)
7293 : || !
7294 : #line 25507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7295 : (TARGET_USE_FANCY_MATH_387))
7296 : return -1;
7297 : return 1768; /* lrintxfhi2 */
7298 :
7299 : case 75:
7300 : if (pattern62 (x1, pnum_clobbers,
7301 : E_XFmode) != 0
7302 : || !
7303 : #line 25597 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7304 : (TARGET_USE_FANCY_MATH_387
7305 : && (flag_fp_int_builtin_inexact || !flag_trapping_math)
7306 : && ix86_pre_reload_split ()))
7307 : return -1;
7308 : *pnum_clobbers = 1;
7309 : return 1770; /* frndintxf2_roundeven */
7310 :
7311 : case 76:
7312 : if (pattern62 (x1, pnum_clobbers,
7313 : E_XFmode) != 0
7314 : || !
7315 : #line 25597 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7316 : (TARGET_USE_FANCY_MATH_387
7317 : && (flag_fp_int_builtin_inexact || !flag_trapping_math)
7318 : && ix86_pre_reload_split ()))
7319 : return -1;
7320 : *pnum_clobbers = 1;
7321 : return 1771; /* frndintxf2_floor */
7322 :
7323 : case 77:
7324 : if (pattern62 (x1, pnum_clobbers,
7325 : E_XFmode) != 0
7326 : || !
7327 : #line 25597 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7328 : (TARGET_USE_FANCY_MATH_387
7329 : && (flag_fp_int_builtin_inexact || !flag_trapping_math)
7330 : && ix86_pre_reload_split ()))
7331 : return -1;
7332 : *pnum_clobbers = 1;
7333 : return 1772; /* frndintxf2_ceil */
7334 :
7335 : case 78:
7336 : if (pattern62 (x1, pnum_clobbers,
7337 : E_XFmode) != 0
7338 : || !
7339 : #line 25597 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7340 : (TARGET_USE_FANCY_MATH_387
7341 : && (flag_fp_int_builtin_inexact || !flag_trapping_math)
7342 : && ix86_pre_reload_split ()))
7343 : return -1;
7344 : *pnum_clobbers = 1;
7345 : return 1773; /* frndintxf2_trunc */
7346 :
7347 : case 79:
7348 : if (pattern63 (x1, pnum_clobbers) != 0
7349 : || !
7350 : #line 25714 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7351 : (TARGET_USE_FANCY_MATH_387
7352 : && flag_unsafe_math_optimizations
7353 : && ix86_pre_reload_split ()))
7354 : return -1;
7355 : *pnum_clobbers = 1;
7356 : return 1778; /* *fisthi2_floor_1 */
7357 :
7358 : case 80:
7359 : if (pattern63 (x1, pnum_clobbers) != 0
7360 : || !
7361 : #line 25714 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7362 : (TARGET_USE_FANCY_MATH_387
7363 : && flag_unsafe_math_optimizations
7364 : && ix86_pre_reload_split ()))
7365 : return -1;
7366 : *pnum_clobbers = 1;
7367 : return 1779; /* *fisthi2_ceil_1 */
7368 :
7369 : case 74:
7370 : if (GET_MODE (x2) != E_HImode)
7371 : return -1;
7372 : x4 = XEXP (x1, 0);
7373 : operands[0] = x4;
7374 : if (!register_operand (operands[0], E_HImode))
7375 : return -1;
7376 : x3 = XVECEXP (x2, 0, 0);
7377 : operands[1] = x3;
7378 : switch (GET_MODE (operands[1]))
7379 : {
7380 : case E_SFmode:
7381 : if (!register_operand (operands[1], E_SFmode)
7382 : || !
7383 : #line 25816 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7384 : (TARGET_USE_FANCY_MATH_387))
7385 : return -1;
7386 : return 1790; /* fxamsf2_i387 */
7387 :
7388 : case E_DFmode:
7389 : if (!register_operand (operands[1], E_DFmode)
7390 : || !
7391 : #line 25816 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7392 : (TARGET_USE_FANCY_MATH_387))
7393 : return -1;
7394 : return 1791; /* fxamdf2_i387 */
7395 :
7396 : case E_XFmode:
7397 : if (!register_operand (operands[1], E_XFmode)
7398 : || !
7399 : #line 25816 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7400 : (TARGET_USE_FANCY_MATH_387))
7401 : return -1;
7402 : return 1792; /* fxamxf2_i387 */
7403 :
7404 : default:
7405 : return -1;
7406 : }
7407 :
7408 : case 113:
7409 : if (GET_MODE (x2) != E_V2SFmode)
7410 : return -1;
7411 : x4 = XEXP (x1, 0);
7412 : operands[0] = x4;
7413 : if (!register_operand (operands[0], E_V2SFmode))
7414 : return -1;
7415 : x3 = XVECEXP (x2, 0, 0);
7416 : operands[1] = x3;
7417 : if (!nonimmediate_operand (operands[1], E_V2SFmode)
7418 : || !
7419 : #line 923 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7420 : (TARGET_3DNOW))
7421 : return -1;
7422 : return 2116; /* mmx_rcpv2sf2 */
7423 :
7424 : case 116:
7425 : if (GET_MODE (x2) != E_V2SFmode)
7426 : return -1;
7427 : x4 = XEXP (x1, 0);
7428 : operands[0] = x4;
7429 : if (!register_operand (operands[0], E_V2SFmode))
7430 : return -1;
7431 : x3 = XVECEXP (x2, 0, 0);
7432 : operands[1] = x3;
7433 : if (!nonimmediate_operand (operands[1], E_V2SFmode)
7434 : || !
7435 : #line 971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7436 : (TARGET_3DNOW))
7437 : return -1;
7438 : return 2119; /* mmx_rsqrtv2sf2 */
7439 :
7440 : case 173:
7441 : if (GET_MODE (x2) != E_V2SImode)
7442 : return -1;
7443 : x4 = XEXP (x1, 0);
7444 : operands[0] = x4;
7445 : if (!register_operand (operands[0], E_V2SImode))
7446 : return -1;
7447 : x3 = XVECEXP (x2, 0, 0);
7448 : operands[1] = x3;
7449 : switch (GET_MODE (operands[1]))
7450 : {
7451 : case E_V4SFmode:
7452 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
7453 : || !
7454 : #line 8784 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7455 : ((TARGET_MMX || TARGET_MMX_WITH_SSE) && TARGET_SSE))
7456 : return -1;
7457 : return 4827; /* unspec_sse_cvttps2pi */
7458 :
7459 : case E_V2DFmode:
7460 : if (!vector_operand (operands[1], E_V2DFmode)
7461 : || !
7462 : #line 9248 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7463 : (TARGET_SSE2))
7464 : return -1;
7465 : return 4937; /* unspec_sse2_cvttpd2pi */
7466 :
7467 : default:
7468 : return -1;
7469 : }
7470 :
7471 : case 47:
7472 : if (GET_MODE (x2) != E_V2SImode)
7473 : return -1;
7474 : x4 = XEXP (x1, 0);
7475 : operands[0] = x4;
7476 : if (!register_operand (operands[0], E_V2SImode))
7477 : return -1;
7478 : x3 = XVECEXP (x2, 0, 0);
7479 : operands[1] = x3;
7480 : if (!vector_operand (operands[1], E_V2DFmode)
7481 : || !
7482 : #line 9230 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7483 : (TARGET_SSE2))
7484 : return -1;
7485 : return 4936; /* sse2_cvtpd2pi */
7486 :
7487 : case 174:
7488 : if (GET_MODE (x2) != E_V2SImode)
7489 : return -1;
7490 : x4 = XEXP (x1, 0);
7491 : operands[0] = x4;
7492 : if (!register_operand (operands[0], E_V2SImode))
7493 : return -1;
7494 : x3 = XVECEXP (x2, 0, 0);
7495 : operands[1] = x3;
7496 : if (!nonimmediate_operand (operands[1], E_V2DFmode)
7497 : || !
7498 : #line 9289 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7499 : (TARGET_MMX_WITH_SSE && TARGET_AVX512VL))
7500 : return -1;
7501 : return 4939; /* unspec_fixuns_truncv2dfv2si2 */
7502 :
7503 : case 192:
7504 : x4 = XEXP (x1, 0);
7505 : operands[0] = x4;
7506 : x3 = XVECEXP (x2, 0, 0);
7507 : operands[1] = x3;
7508 : switch (GET_MODE (operands[0]))
7509 : {
7510 : case E_HImode:
7511 : if (!register_operand (operands[0], E_HImode)
7512 : || GET_MODE (x2) != E_HImode)
7513 : return -1;
7514 : switch (GET_MODE (operands[1]))
7515 : {
7516 : case E_V16QImode:
7517 : if (!register_operand (operands[1], E_V16QImode)
7518 : || !(
7519 : #line 10589 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7520 : (TARGET_AVX512BW) &&
7521 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7522 : (TARGET_AVX512VL)))
7523 : return -1;
7524 : return 5210; /* avx512vl_cvtb2maskv16qi */
7525 :
7526 : case E_V16HImode:
7527 : if (!register_operand (operands[1], E_V16HImode)
7528 : || !(
7529 : #line 10589 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7530 : (TARGET_AVX512BW) &&
7531 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7532 : (TARGET_AVX512VL)))
7533 : return -1;
7534 : return 5213; /* avx512vl_cvtw2maskv16hi */
7535 :
7536 : case E_V16SImode:
7537 : if (!register_operand (operands[1], E_V16SImode)
7538 : || !
7539 : #line 10599 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7540 : (TARGET_AVX512DQ))
7541 : return -1;
7542 : return 5215; /* avx512f_cvtd2maskv16si */
7543 :
7544 : default:
7545 : return -1;
7546 : }
7547 :
7548 : case E_QImode:
7549 : if (!register_operand (operands[0], E_QImode)
7550 : || GET_MODE (x2) != E_QImode)
7551 : return -1;
7552 : switch (GET_MODE (operands[1]))
7553 : {
7554 : case E_V8HImode:
7555 : if (!register_operand (operands[1], E_V8HImode)
7556 : || !(
7557 : #line 10589 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7558 : (TARGET_AVX512BW) &&
7559 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7560 : (TARGET_AVX512VL)))
7561 : return -1;
7562 : return 5214; /* avx512vl_cvtw2maskv8hi */
7563 :
7564 : case E_V8SImode:
7565 : if (!register_operand (operands[1], E_V8SImode)
7566 : || !(
7567 : #line 10599 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7568 : (TARGET_AVX512DQ) &&
7569 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7570 : (TARGET_AVX512VL)))
7571 : return -1;
7572 : return 5216; /* avx512vl_cvtd2maskv8si */
7573 :
7574 : case E_V4SImode:
7575 : if (!register_operand (operands[1], E_V4SImode)
7576 : || !(
7577 : #line 10599 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7578 : (TARGET_AVX512DQ) &&
7579 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7580 : (TARGET_AVX512VL)))
7581 : return -1;
7582 : return 5217; /* avx512vl_cvtd2maskv4si */
7583 :
7584 : case E_V8DImode:
7585 : if (!register_operand (operands[1], E_V8DImode)
7586 : || !
7587 : #line 10599 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7588 : (TARGET_AVX512DQ))
7589 : return -1;
7590 : return 5218; /* avx512f_cvtq2maskv8di */
7591 :
7592 : case E_V4DImode:
7593 : if (!register_operand (operands[1], E_V4DImode)
7594 : || !(
7595 : #line 10599 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7596 : (TARGET_AVX512DQ) &&
7597 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7598 : (TARGET_AVX512VL)))
7599 : return -1;
7600 : return 5219; /* avx512vl_cvtq2maskv4di */
7601 :
7602 : case E_V2DImode:
7603 : if (!register_operand (operands[1], E_V2DImode)
7604 : || !(
7605 : #line 10599 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7606 : (TARGET_AVX512DQ) &&
7607 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7608 : (TARGET_AVX512VL)))
7609 : return -1;
7610 : return 5220; /* avx512vl_cvtq2maskv2di */
7611 :
7612 : default:
7613 : return -1;
7614 : }
7615 :
7616 : default:
7617 : return -1;
7618 : }
7619 :
7620 : case 118:
7621 : x4 = XEXP (x1, 0);
7622 : operands[0] = x4;
7623 : x3 = XVECEXP (x2, 0, 0);
7624 : switch (GET_CODE (x3))
7625 : {
7626 : case REG:
7627 : case SUBREG:
7628 : operands[1] = x3;
7629 : switch (GET_MODE (operands[0]))
7630 : {
7631 : case E_SFmode:
7632 : if (!memory_operand (operands[0], E_SFmode)
7633 : || GET_MODE (x2) != E_SFmode
7634 : || !register_operand (operands[1], E_SFmode)
7635 : || !
7636 : #line 23767 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7637 : (TARGET_SSE4A))
7638 : return -1;
7639 : return 8716; /* sse4a_movntsf */
7640 :
7641 : case E_DFmode:
7642 : if (!memory_operand (operands[0], E_DFmode)
7643 : || GET_MODE (x2) != E_DFmode
7644 : || !register_operand (operands[1], E_DFmode)
7645 : || !
7646 : #line 23767 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7647 : (TARGET_SSE4A))
7648 : return -1;
7649 : return 8717; /* sse4a_movntdf */
7650 :
7651 : default:
7652 : return -1;
7653 : }
7654 :
7655 : case VEC_SELECT:
7656 : x6 = XEXP (x3, 1);
7657 : if (GET_CODE (x6) != PARALLEL
7658 : || XVECLEN (x6, 0) != 1)
7659 : return -1;
7660 : x7 = XVECEXP (x6, 0, 0);
7661 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
7662 : return -1;
7663 : x5 = XEXP (x3, 0);
7664 : operands[1] = x5;
7665 : switch (GET_MODE (operands[0]))
7666 : {
7667 : case E_SFmode:
7668 : if (pattern1077 (x2,
7669 : E_V4SFmode,
7670 : E_SFmode) != 0
7671 : || !
7672 : #line 23779 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7673 : (TARGET_SSE4A))
7674 : return -1;
7675 : return 8718; /* sse4a_vmmovntv4sf */
7676 :
7677 : case E_DFmode:
7678 : if (pattern1077 (x2,
7679 : E_V2DFmode,
7680 : E_DFmode) != 0
7681 : || !(
7682 : #line 23779 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7683 : (TARGET_SSE4A) &&
7684 : #line 473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7685 : (TARGET_SSE2)))
7686 : return -1;
7687 : return 8719; /* sse4a_vmmovntv2df */
7688 :
7689 : default:
7690 : return -1;
7691 : }
7692 :
7693 : default:
7694 : return -1;
7695 : }
7696 :
7697 : case 137:
7698 : x4 = XEXP (x1, 0);
7699 : operands[0] = x4;
7700 : x3 = XVECEXP (x2, 0, 0);
7701 : operands[1] = x3;
7702 : switch (GET_MODE (operands[0]))
7703 : {
7704 : case E_SFmode:
7705 : if (!register_operand (operands[0], E_SFmode)
7706 : || GET_MODE (x2) != E_SFmode
7707 : || !nonimmediate_operand (operands[1], E_SFmode)
7708 : || !
7709 : #line 27681 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7710 : (TARGET_XOP))
7711 : return -1;
7712 : return 9108; /* xop_frczsf2 */
7713 :
7714 : case E_DFmode:
7715 : if (!register_operand (operands[0], E_DFmode)
7716 : || GET_MODE (x2) != E_DFmode
7717 : || !nonimmediate_operand (operands[1], E_DFmode)
7718 : || !
7719 : #line 27681 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7720 : (TARGET_XOP))
7721 : return -1;
7722 : return 9109; /* xop_frczdf2 */
7723 :
7724 : default:
7725 : return -1;
7726 : }
7727 :
7728 : case 287:
7729 : if (GET_MODE (x2) != E_DFmode)
7730 : return -1;
7731 : x4 = XEXP (x1, 0);
7732 : operands[0] = x4;
7733 : if (!register_operand (operands[0], E_DFmode))
7734 : return -1;
7735 : x3 = XVECEXP (x2, 0, 0);
7736 : operands[1] = x3;
7737 : if (!memory_operand (operands[1], E_DImode)
7738 : || !
7739 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
7740 : (TARGET_80387))
7741 : return -1;
7742 : return 11070; /* loaddi_via_fpu */
7743 :
7744 : case 289:
7745 : if (GET_MODE (x2) != E_DFmode)
7746 : return -1;
7747 : x4 = XEXP (x1, 0);
7748 : operands[0] = x4;
7749 : if (!register_operand (operands[0], E_DFmode))
7750 : return -1;
7751 : x3 = XVECEXP (x2, 0, 0);
7752 : operands[1] = x3;
7753 : if (!memory_operand (operands[1], E_DImode)
7754 : || !
7755 : #line 369 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
7756 : (TARGET_SSE))
7757 : return -1;
7758 : return 11072; /* loaddi_via_sse */
7759 :
7760 : default:
7761 : return -1;
7762 : }
7763 : }
7764 :
7765 : int
7766 : recog_32 (rtx x1 ATTRIBUTE_UNUSED,
7767 : rtx_insn *insn ATTRIBUTE_UNUSED,
7768 : int *pnum_clobbers ATTRIBUTE_UNUSED)
7769 : {
7770 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
7771 : rtx x2, x3, x4;
7772 : int res ATTRIBUTE_UNUSED;
7773 : x2 = XEXP (x1, 0);
7774 : operands[0] = x2;
7775 : x3 = XEXP (x1, 1);
7776 : x4 = XEXP (x3, 0);
7777 : operands[1] = x4;
7778 : switch (GET_MODE (operands[0]))
7779 : {
7780 : case E_DFmode:
7781 : if (GET_MODE (x3) != E_DFmode)
7782 : return -1;
7783 : if (nonimm_ssenomem_operand (operands[0], E_DFmode)
7784 : && nonimmediate_operand (operands[1], E_SFmode)
7785 : &&
7786 : #line 5304 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7787 : (TARGET_80387 || (TARGET_SSE2 && TARGET_SSE_MATH)))
7788 : return 204; /* *extendsfdf2 */
7789 : if (!register_operand (operands[0], E_DFmode)
7790 : || !nonimmediate_operand (operands[1], E_HFmode)
7791 : || !
7792 : #line 5460 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7793 : (TARGET_AVX512FP16))
7794 : return -1;
7795 : return 206; /* *extendhfdf2 */
7796 :
7797 : case E_SFmode:
7798 : if (!register_operand (operands[0], E_SFmode)
7799 : || GET_MODE (x3) != E_SFmode
7800 : || !nonimmediate_operand (operands[1], E_HFmode)
7801 : || !
7802 : #line 5460 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7803 : (TARGET_AVX512FP16))
7804 : return -1;
7805 : return 205; /* *extendhfsf2 */
7806 :
7807 : case E_XFmode:
7808 : if (!nonimmediate_operand (operands[0], E_XFmode))
7809 : return -1;
7810 : switch (pattern428 (x3,
7811 : E_XFmode))
7812 : {
7813 : case 0:
7814 : if (!
7815 : #line 5522 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7816 : (TARGET_80387))
7817 : return -1;
7818 : return 208; /* *extendsfxf2_i387 */
7819 :
7820 : case 1:
7821 : if (!
7822 : #line 5522 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7823 : (TARGET_80387))
7824 : return -1;
7825 : return 209; /* *extenddfxf2_i387 */
7826 :
7827 : default:
7828 : return -1;
7829 : }
7830 :
7831 : default:
7832 : return -1;
7833 : }
7834 : }
7835 :
7836 : int
7837 : recog_35 (rtx x1 ATTRIBUTE_UNUSED,
7838 : rtx_insn *insn ATTRIBUTE_UNUSED,
7839 : int *pnum_clobbers ATTRIBUTE_UNUSED)
7840 : {
7841 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
7842 : rtx x2, x3, x4;
7843 : int res ATTRIBUTE_UNUSED;
7844 : x2 = XEXP (x1, 0);
7845 : operands[0] = x2;
7846 : x3 = XEXP (x1, 1);
7847 : x4 = XEXP (x3, 0);
7848 : operands[1] = x4;
7849 : switch (GET_MODE (operands[0]))
7850 : {
7851 : case E_SImode:
7852 : switch (pattern263 (x3,
7853 : E_SImode))
7854 : {
7855 : case 0:
7856 : if (!
7857 : #line 5778 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7858 : (TARGET_AVX512FP16))
7859 : return -1;
7860 : return 217; /* fixuns_trunchfsi2 */
7861 :
7862 : case 1:
7863 : if (!
7864 : #line 5885 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7865 : (TARGET_AVX512F && TARGET_SSE_MATH))
7866 : return -1;
7867 : return 222; /* fixuns_truncsfsi2_avx512f */
7868 :
7869 : case 2:
7870 : if (!
7871 : #line 5885 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7872 : (TARGET_AVX512F && TARGET_SSE_MATH))
7873 : return -1;
7874 : return 223; /* fixuns_truncdfsi2_avx512f */
7875 :
7876 : default:
7877 : return -1;
7878 : }
7879 :
7880 : case E_DImode:
7881 : switch (pattern263 (x3,
7882 : E_DImode))
7883 : {
7884 : case 0:
7885 : if (!(
7886 : #line 5778 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7887 : (TARGET_AVX512FP16) &&
7888 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7889 : (TARGET_64BIT)))
7890 : return -1;
7891 : return 219; /* fixuns_trunchfdi2 */
7892 :
7893 : case 1:
7894 : if (!
7895 : #line 5843 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7896 : (TARGET_64BIT && TARGET_AVX512F && TARGET_SSE_MATH))
7897 : return -1;
7898 : return 220; /* fixuns_truncsfdi2 */
7899 :
7900 : case 2:
7901 : if (!
7902 : #line 5843 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7903 : (TARGET_64BIT && TARGET_AVX512F && TARGET_SSE_MATH))
7904 : return -1;
7905 : return 221; /* fixuns_truncdfdi2 */
7906 :
7907 : default:
7908 : return -1;
7909 : }
7910 :
7911 : case E_V2SImode:
7912 : if (!register_operand (operands[0], E_V2SImode)
7913 : || GET_MODE (x3) != E_V2SImode
7914 : || !nonimmediate_operand (operands[1], E_V2DFmode)
7915 : || !
7916 : #line 9299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7917 : (TARGET_MMX_WITH_SSE && TARGET_AVX512VL))
7918 : return -1;
7919 : return 4940; /* fixuns_truncv2dfv2si2 */
7920 :
7921 : default:
7922 : return -1;
7923 : }
7924 : }
7925 :
7926 : int
7927 : recog_38 (rtx x1 ATTRIBUTE_UNUSED,
7928 : rtx_insn *insn ATTRIBUTE_UNUSED,
7929 : int *pnum_clobbers ATTRIBUTE_UNUSED)
7930 : {
7931 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
7932 : rtx x2;
7933 : int res ATTRIBUTE_UNUSED;
7934 : switch (pattern88 (x1, pnum_clobbers))
7935 : {
7936 : case 0:
7937 : switch (GET_MODE (operands[0]))
7938 : {
7939 : case E_TImode:
7940 : x2 = XEXP (x1, 1);
7941 : if (pattern79 (x2, pnum_clobbers) != 0
7942 : || !(
7943 : #line 12843 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7944 : (ix86_binary_operator_ok (AND, TImode, operands, TARGET_APX_NDD)) &&
7945 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7946 : (TARGET_64BIT)))
7947 : return -1;
7948 : *pnum_clobbers = 1;
7949 : return 732; /* *andti3_doubleword */
7950 :
7951 : case E_HImode:
7952 : x2 = XEXP (x1, 1);
7953 : if (pattern80 (x2,
7954 : E_HImode) != 0)
7955 : return -1;
7956 : if (
7957 : #line 13013 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7958 : (ix86_binary_operator_ok (AND, HImode, operands, TARGET_APX_NDD)
7959 : && TARGET_APX_NF))
7960 : return 747; /* *andhi_1_nf */
7961 : if (pnum_clobbers == NULL
7962 : || !
7963 : #line 13013 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7964 : (ix86_binary_operator_ok (AND, HImode, operands, TARGET_APX_NDD)
7965 : && true))
7966 : return -1;
7967 : *pnum_clobbers = 1;
7968 : return 748; /* *andhi_1 */
7969 :
7970 : case E_QImode:
7971 : x2 = XEXP (x1, 1);
7972 : if (pattern80 (x2,
7973 : E_QImode) != 0)
7974 : return -1;
7975 : if (
7976 : #line 13051 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7977 : (ix86_binary_operator_ok (AND, QImode, operands, TARGET_APX_NDD)
7978 : && TARGET_APX_NF))
7979 : return 751; /* *andqi_1_nf */
7980 : if (pnum_clobbers == NULL
7981 : || !
7982 : #line 13051 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7983 : (ix86_binary_operator_ok (AND, QImode, operands, TARGET_APX_NDD)
7984 : && true))
7985 : return -1;
7986 : *pnum_clobbers = 1;
7987 : return 752; /* *andqi_1 */
7988 :
7989 : case E_V2SFmode:
7990 : x2 = XEXP (x1, 1);
7991 : if (pattern5 (x2,
7992 : E_V2SFmode) != 0
7993 : || !
7994 : #line 1380 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7995 : (TARGET_MMX_WITH_SSE))
7996 : return -1;
7997 : return 2134; /* andv2sf3 */
7998 :
7999 : case E_V2BFmode:
8000 : x2 = XEXP (x1, 1);
8001 : if (pattern5 (x2,
8002 : E_V2BFmode) != 0
8003 : || !
8004 : #line 2606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8005 : (TARGET_SSE))
8006 : return -1;
8007 : return 2168; /* andv2bf3 */
8008 :
8009 : case E_V4BFmode:
8010 : x2 = XEXP (x1, 1);
8011 : if (pattern5 (x2,
8012 : E_V4BFmode) != 0
8013 : || !(
8014 : #line 2606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8015 : (TARGET_SSE) &&
8016 : #line 2248 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8017 : (TARGET_MMX_WITH_SSE)))
8018 : return -1;
8019 : return 2171; /* andv4bf3 */
8020 :
8021 : case E_V2HFmode:
8022 : x2 = XEXP (x1, 1);
8023 : if (pattern5 (x2,
8024 : E_V2HFmode) != 0
8025 : || !
8026 : #line 2606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8027 : (TARGET_SSE))
8028 : return -1;
8029 : return 2174; /* andv2hf3 */
8030 :
8031 : case E_V4HFmode:
8032 : x2 = XEXP (x1, 1);
8033 : if (pattern5 (x2,
8034 : E_V4HFmode) != 0
8035 : || !(
8036 : #line 2606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8037 : (TARGET_SSE) &&
8038 : #line 2249 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8039 : (TARGET_MMX_WITH_SSE)))
8040 : return -1;
8041 : return 2177; /* andv4hf3 */
8042 :
8043 : case E_V8QImode:
8044 : x2 = XEXP (x1, 1);
8045 : if (pattern6 (x2,
8046 : E_V8QImode) != 0
8047 : || !
8048 : #line 4715 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8049 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8050 : && ix86_binary_operator_ok (AND, V8QImode, operands)))
8051 : return -1;
8052 : return 2331; /* *mmx_andv8qi3 */
8053 :
8054 : case E_V4HImode:
8055 : x2 = XEXP (x1, 1);
8056 : if (pattern6 (x2,
8057 : E_V4HImode) != 0
8058 : || !
8059 : #line 4715 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8060 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8061 : && ix86_binary_operator_ok (AND, V4HImode, operands)))
8062 : return -1;
8063 : return 2334; /* *mmx_andv4hi3 */
8064 :
8065 : case E_V2SImode:
8066 : x2 = XEXP (x1, 1);
8067 : if (pattern6 (x2,
8068 : E_V2SImode) != 0
8069 : || !
8070 : #line 4715 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8071 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8072 : && ix86_binary_operator_ok (AND, V2SImode, operands)))
8073 : return -1;
8074 : return 2337; /* *mmx_andv2si3 */
8075 :
8076 : case E_V4QImode:
8077 : x2 = XEXP (x1, 1);
8078 : if (pattern81 (x2, pnum_clobbers,
8079 : E_V4QImode) != 0
8080 : || !
8081 : #line 4741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8082 : (ix86_binary_operator_ok (AND, V4QImode, operands)))
8083 : return -1;
8084 : *pnum_clobbers = 1;
8085 : return 2340; /* *andv4qi3 */
8086 :
8087 : case E_V2QImode:
8088 : x2 = XEXP (x1, 1);
8089 : if (pattern81 (x2, pnum_clobbers,
8090 : E_V2QImode) != 0
8091 : || !
8092 : #line 4741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8093 : (ix86_binary_operator_ok (AND, V2QImode, operands)))
8094 : return -1;
8095 : *pnum_clobbers = 1;
8096 : return 2343; /* *andv2qi3 */
8097 :
8098 : case E_V2HImode:
8099 : x2 = XEXP (x1, 1);
8100 : if (pattern81 (x2, pnum_clobbers,
8101 : E_V2HImode) != 0
8102 : || !
8103 : #line 4741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8104 : (ix86_binary_operator_ok (AND, V2HImode, operands)))
8105 : return -1;
8106 : *pnum_clobbers = 1;
8107 : return 2346; /* *andv2hi3 */
8108 :
8109 : case E_BFmode:
8110 : x2 = XEXP (x1, 1);
8111 : if (pattern5 (x2,
8112 : E_BFmode) != 0
8113 : || !
8114 : #line 6017 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8115 : (TARGET_SSE))
8116 : return -1;
8117 : return 3855; /* andbf3 */
8118 :
8119 : case E_HFmode:
8120 : x2 = XEXP (x1, 1);
8121 : if (pattern5 (x2,
8122 : E_HFmode) != 0
8123 : || !
8124 : #line 6017 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8125 : (TARGET_SSE))
8126 : return -1;
8127 : return 3858; /* andhf3 */
8128 :
8129 : case E_SFmode:
8130 : x2 = XEXP (x1, 1);
8131 : if (pattern5 (x2,
8132 : E_SFmode) != 0
8133 : || !
8134 : #line 6017 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8135 : (TARGET_SSE))
8136 : return -1;
8137 : return 3861; /* andsf3 */
8138 :
8139 : case E_DFmode:
8140 : x2 = XEXP (x1, 1);
8141 : if (pattern5 (x2,
8142 : E_DFmode) != 0
8143 : || !(
8144 : #line 6017 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8145 : (TARGET_SSE) &&
8146 : #line 1353 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8147 : (TARGET_SSE2)))
8148 : return -1;
8149 : return 3864; /* anddf3 */
8150 :
8151 : case E_TFmode:
8152 : x2 = XEXP (x1, 1);
8153 : if (pattern26 (x2,
8154 : E_TFmode) != 0
8155 : || !
8156 : #line 6091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8157 : (TARGET_SSE && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8158 : return -1;
8159 : return 3867; /* *andtf3 */
8160 :
8161 : default:
8162 : return -1;
8163 : }
8164 :
8165 : case 1:
8166 : if (!
8167 : #line 13083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8168 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
8169 : return -1;
8170 : *pnum_clobbers = 1;
8171 : return 753; /* *andqi_1_slp */
8172 :
8173 : case 2:
8174 : if (!
8175 : #line 13083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8176 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
8177 : return -1;
8178 : *pnum_clobbers = 1;
8179 : return 756; /* *andhi_1_slp */
8180 :
8181 : default:
8182 : return -1;
8183 : }
8184 : }
8185 :
8186 : int
8187 : recog_46 (rtx x1 ATTRIBUTE_UNUSED,
8188 : rtx_insn *insn ATTRIBUTE_UNUSED,
8189 : int *pnum_clobbers ATTRIBUTE_UNUSED)
8190 : {
8191 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
8192 : rtx x2, x3, x4;
8193 : int res ATTRIBUTE_UNUSED;
8194 : x2 = XEXP (x1, 1);
8195 : x3 = XEXP (x2, 0);
8196 : switch (GET_CODE (x3))
8197 : {
8198 : case CONST_INT:
8199 : case REG:
8200 : case SUBREG:
8201 : case MEM:
8202 : switch (pattern38 (x1, pnum_clobbers))
8203 : {
8204 : case 0:
8205 : if (pnum_clobbers != NULL
8206 : && pattern292 (x1,
8207 : E_TImode) == 0
8208 : && (
8209 : #line 15541 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8210 : (((INTVAL (operands[3]) & (8 * BITS_PER_UNIT)) == 0
8211 : || ((INTVAL (operands[3]) & (2 * 8 * BITS_PER_UNIT - 1))
8212 : == (2 * 8 * BITS_PER_UNIT - 1)))
8213 : && ix86_pre_reload_split ()) &&
8214 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8215 : (TARGET_64BIT)))
8216 : {
8217 : *pnum_clobbers = 1;
8218 : return 1085; /* *ashlti3_doubleword_mask */
8219 : }
8220 : x4 = XEXP (x2, 1);
8221 : operands[2] = x4;
8222 : switch (pattern426 (x1, pnum_clobbers))
8223 : {
8224 : case 0:
8225 : switch (GET_MODE (operands[0]))
8226 : {
8227 : case E_TImode:
8228 : if (pnum_clobbers == NULL
8229 : || !register_operand (operands[0], E_TImode)
8230 : || GET_MODE (x2) != E_TImode
8231 : || !reg_or_pm1_operand (operands[1], E_TImode)
8232 : || !nonmemory_operand (operands[2], E_QImode)
8233 : || !
8234 : #line 1197 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8235 : (TARGET_64BIT))
8236 : return -1;
8237 : *pnum_clobbers = 1;
8238 : return 1089; /* ashlti3_doubleword */
8239 :
8240 : case E_HImode:
8241 : if (pattern635 (x2,
8242 : E_HImode) != 0)
8243 : return -1;
8244 : if (
8245 : #line 16433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8246 : (ix86_binary_operator_ok (ASHIFT, HImode, operands, TARGET_APX_NDD)
8247 : && TARGET_APX_NF))
8248 : return 1136; /* *ashlhi3_1_nf */
8249 : if (pnum_clobbers == NULL
8250 : || !
8251 : #line 16433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8252 : (ix86_binary_operator_ok (ASHIFT, HImode, operands, TARGET_APX_NDD)
8253 : && true))
8254 : return -1;
8255 : *pnum_clobbers = 1;
8256 : return 1137; /* *ashlhi3_1 */
8257 :
8258 : case E_QImode:
8259 : if (pattern635 (x2,
8260 : E_QImode) != 0)
8261 : return -1;
8262 : if (
8263 : #line 16492 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8264 : (ix86_binary_operator_ok (ASHIFT, QImode, operands, TARGET_APX_NDD)
8265 : && TARGET_APX_NF))
8266 : return 1138; /* *ashlqi3_1_nf */
8267 : if (pnum_clobbers == NULL
8268 : || !
8269 : #line 16492 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8270 : (ix86_binary_operator_ok (ASHIFT, QImode, operands, TARGET_APX_NDD)
8271 : && true))
8272 : return -1;
8273 : *pnum_clobbers = 1;
8274 : return 1139; /* *ashlqi3_1 */
8275 :
8276 : case E_V4HImode:
8277 : if (pattern858 (x2,
8278 : E_V4HImode,
8279 : E_DImode) != 0
8280 : || !
8281 : #line 3919 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8282 : (TARGET_MMX || TARGET_MMX_WITH_SSE))
8283 : return -1;
8284 : return 2259; /* mmx_ashlv4hi3 */
8285 :
8286 : case E_V2SImode:
8287 : if (pattern858 (x2,
8288 : E_V2SImode,
8289 : E_DImode) != 0
8290 : || !
8291 : #line 3919 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8292 : (TARGET_MMX || TARGET_MMX_WITH_SSE))
8293 : return -1;
8294 : return 2261; /* mmx_ashlv2si3 */
8295 :
8296 : case E_V1DImode:
8297 : if (pattern858 (x2,
8298 : E_V1DImode,
8299 : E_DImode) != 0
8300 : || !
8301 : #line 3919 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8302 : (TARGET_MMX || TARGET_MMX_WITH_SSE))
8303 : return -1;
8304 : return 2263; /* mmx_ashlv1di3 */
8305 :
8306 : case E_V1SImode:
8307 : if (pattern858 (x2,
8308 : E_V1SImode,
8309 : E_DImode) != 0
8310 : || !
8311 : #line 3956 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8312 : (TARGET_SSE2))
8313 : return -1;
8314 : return 2265; /* mmx_ashlv1si3 */
8315 :
8316 : case E_V2HImode:
8317 : if (pattern858 (x2,
8318 : E_V2HImode,
8319 : E_DImode) != 0
8320 : || !
8321 : #line 3973 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8322 : (TARGET_SSE2))
8323 : return -1;
8324 : return 2267; /* ashlv2hi3 */
8325 :
8326 : case E_V2QImode:
8327 : if (pnum_clobbers == NULL
8328 : || pattern858 (x2,
8329 : E_V2QImode,
8330 : E_QImode) != 0
8331 : || !
8332 : #line 4035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8333 : (!TARGET_PARTIAL_REG_STALL || optimize_size))
8334 : return -1;
8335 : *pnum_clobbers = 1;
8336 : return 2271; /* ashlv2qi3 */
8337 :
8338 : default:
8339 : return -1;
8340 : }
8341 :
8342 : case 1:
8343 : if (!
8344 : #line 16571 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8345 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
8346 : return -1;
8347 : *pnum_clobbers = 1;
8348 : return 1140; /* *ashlqi3_1_slp */
8349 :
8350 : case 2:
8351 : if (!
8352 : #line 16571 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8353 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
8354 : return -1;
8355 : *pnum_clobbers = 1;
8356 : return 1141; /* *ashlhi3_1_slp */
8357 :
8358 : default:
8359 : return -1;
8360 : }
8361 :
8362 : case 1:
8363 : if (!(
8364 : #line 15602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8365 : (((INTVAL (operands[3]) & (8 * BITS_PER_UNIT)) == 0
8366 : || ((INTVAL (operands[3]) & (2 * 8 * BITS_PER_UNIT - 1))
8367 : == (2 * 8 * BITS_PER_UNIT - 1)))
8368 : && ix86_pre_reload_split ()) &&
8369 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8370 : (TARGET_64BIT)))
8371 : return -1;
8372 : *pnum_clobbers = 1;
8373 : return 1087; /* *ashlti3_doubleword_mask_1 */
8374 :
8375 : default:
8376 : return -1;
8377 : }
8378 :
8379 : case SIGN_EXTEND:
8380 : if (pattern44 (x1, pnum_clobbers) != 0
8381 : || !(
8382 : #line 15703 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8383 : (INTVAL (operands[2]) >= 8 * BITS_PER_UNIT
8384 : && INTVAL (operands[2]) < 8 * BITS_PER_UNIT * 2) &&
8385 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8386 : (TARGET_64BIT)))
8387 : return -1;
8388 : *pnum_clobbers = 1;
8389 : return 1092; /* *ashlti3_doubleword_highpart */
8390 :
8391 : case ZERO_EXTEND:
8392 : if (pattern44 (x1, pnum_clobbers) != 0
8393 : || !(
8394 : #line 15703 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8395 : (INTVAL (operands[2]) >= 8 * BITS_PER_UNIT
8396 : && INTVAL (operands[2]) < 8 * BITS_PER_UNIT * 2) &&
8397 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8398 : (TARGET_64BIT)))
8399 : return -1;
8400 : *pnum_clobbers = 1;
8401 : return 1093; /* *ashlti3_doubleword_highpart */
8402 :
8403 : default:
8404 : return -1;
8405 : }
8406 : }
8407 :
8408 : int
8409 : recog_52 (rtx x1 ATTRIBUTE_UNUSED,
8410 : rtx_insn *insn ATTRIBUTE_UNUSED,
8411 : int *pnum_clobbers ATTRIBUTE_UNUSED)
8412 : {
8413 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
8414 : rtx x2, x3, x4, x5;
8415 : int res ATTRIBUTE_UNUSED;
8416 : x2 = XEXP (x1, 0);
8417 : operands[0] = x2;
8418 : x3 = XEXP (x1, 1);
8419 : switch (GET_CODE (x3))
8420 : {
8421 : case NE:
8422 : case EQ:
8423 : case GE:
8424 : case GT:
8425 : case LE:
8426 : case LT:
8427 : res = recog_51 (x1, insn, pnum_clobbers);
8428 : if (res >= 0)
8429 : return res;
8430 : break;
8431 :
8432 : default:
8433 : break;
8434 : }
8435 : operands[3] = x3;
8436 : x4 = XEXP (x3, 0);
8437 : operands[1] = x4;
8438 : x5 = XEXP (x3, 1);
8439 : operands[2] = x5;
8440 : switch (GET_MODE (operands[0]))
8441 : {
8442 : case E_SFmode:
8443 : if (pattern750 (
8444 : E_SFmode) != 0
8445 : || !
8446 : #line 20047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8447 : (SSE_FLOAT_MODE_P (SFmode)))
8448 : return -1;
8449 : return 1487; /* setcc_sf_sse */
8450 :
8451 : case E_DFmode:
8452 : if (pattern750 (
8453 : E_DFmode) != 0
8454 : || !
8455 : #line 20047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8456 : (SSE_FLOAT_MODE_P (DFmode)))
8457 : return -1;
8458 : return 1488; /* setcc_df_sse */
8459 :
8460 : default:
8461 : return -1;
8462 : }
8463 : }
8464 :
8465 : int
8466 : recog_56 (rtx x1 ATTRIBUTE_UNUSED,
8467 : rtx_insn *insn ATTRIBUTE_UNUSED,
8468 : int *pnum_clobbers ATTRIBUTE_UNUSED)
8469 : {
8470 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
8471 : rtx x2;
8472 : int res ATTRIBUTE_UNUSED;
8473 : switch (pattern88 (x1, pnum_clobbers))
8474 : {
8475 : case 0:
8476 : switch (GET_MODE (operands[0]))
8477 : {
8478 : case E_TImode:
8479 : x2 = XEXP (x1, 1);
8480 : if (pattern79 (x2, pnum_clobbers) != 0
8481 : || !(
8482 : #line 6516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8483 : (ix86_binary_operator_ok (PLUS, TImode, operands, TARGET_APX_NDD)) &&
8484 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8485 : (TARGET_64BIT)))
8486 : return -1;
8487 : *pnum_clobbers = 1;
8488 : return 271; /* *addti3_doubleword */
8489 :
8490 : case E_HImode:
8491 : x2 = XEXP (x1, 1);
8492 : if (pattern80 (x2,
8493 : E_HImode) != 0)
8494 : return -1;
8495 : if (
8496 : #line 6864 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8497 : (ix86_binary_operator_ok (PLUS, HImode, operands, TARGET_APX_NDD)
8498 : && TARGET_APX_NF))
8499 : return 301; /* *addhi_1_nf */
8500 : if (pnum_clobbers == NULL
8501 : || !
8502 : #line 6864 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8503 : (ix86_binary_operator_ok (PLUS, HImode, operands, TARGET_APX_NDD)
8504 : && true))
8505 : return -1;
8506 : *pnum_clobbers = 1;
8507 : return 302; /* *addhi_1 */
8508 :
8509 : case E_QImode:
8510 : x2 = XEXP (x1, 1);
8511 : if (pattern80 (x2,
8512 : E_QImode) != 0)
8513 : return -1;
8514 : if (
8515 : #line 6921 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8516 : (ix86_binary_operator_ok (PLUS, QImode, operands, TARGET_APX_NDD)
8517 : && TARGET_APX_NF))
8518 : return 303; /* *addqi_1_nf */
8519 : if (pnum_clobbers == NULL
8520 : || !
8521 : #line 6921 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8522 : (ix86_binary_operator_ok (PLUS, QImode, operands, TARGET_APX_NDD)
8523 : && true))
8524 : return -1;
8525 : *pnum_clobbers = 1;
8526 : return 304; /* *addqi_1 */
8527 :
8528 : case E_HFmode:
8529 : x2 = XEXP (x1, 1);
8530 : if (pattern3 (x2,
8531 : E_HFmode) != 0
8532 : || !
8533 : #line 23830 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8534 : (TARGET_AVX512FP16
8535 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8536 : return -1;
8537 : return 1710; /* *addhf */
8538 :
8539 : case E_V8QImode:
8540 : x2 = XEXP (x1, 1);
8541 : if (pattern6 (x2,
8542 : E_V8QImode) != 0
8543 : || !
8544 : #line 3239 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8545 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8546 : && ix86_binary_operator_ok (PLUS, V8QImode, operands)))
8547 : return -1;
8548 : return 2181; /* *mmx_addv8qi3 */
8549 :
8550 : case E_V4HImode:
8551 : x2 = XEXP (x1, 1);
8552 : if (pattern6 (x2,
8553 : E_V4HImode) != 0
8554 : || !
8555 : #line 3239 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8556 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8557 : && ix86_binary_operator_ok (PLUS, V4HImode, operands)))
8558 : return -1;
8559 : return 2183; /* *mmx_addv4hi3 */
8560 :
8561 : case E_V2SImode:
8562 : x2 = XEXP (x1, 1);
8563 : if (pattern6 (x2,
8564 : E_V2SImode) != 0
8565 : || !
8566 : #line 3239 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8567 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8568 : && ix86_binary_operator_ok (PLUS, V2SImode, operands)))
8569 : return -1;
8570 : return 2185; /* *mmx_addv2si3 */
8571 :
8572 : case E_V1DImode:
8573 : x2 = XEXP (x1, 1);
8574 : if (pattern6 (x2,
8575 : E_V1DImode) != 0
8576 : || !(
8577 : #line 3239 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8578 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8579 : && ix86_binary_operator_ok (PLUS, V1DImode, operands)) &&
8580 : #line 50 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8581 : (TARGET_SSE2)))
8582 : return -1;
8583 : return 2187; /* *mmx_addv1di3 */
8584 :
8585 : case E_V4QImode:
8586 : x2 = XEXP (x1, 1);
8587 : if (pattern5 (x2,
8588 : E_V4QImode) != 0
8589 : || !
8590 : #line 3255 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8591 : (TARGET_SSE2))
8592 : return -1;
8593 : return 2189; /* addv4qi3 */
8594 :
8595 : case E_V2HImode:
8596 : x2 = XEXP (x1, 1);
8597 : if (pattern5 (x2,
8598 : E_V2HImode) != 0
8599 : || !
8600 : #line 3255 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8601 : (TARGET_SSE2))
8602 : return -1;
8603 : return 2191; /* addv2hi3 */
8604 :
8605 : case E_V2QImode:
8606 : if (pnum_clobbers == NULL)
8607 : return -1;
8608 : x2 = XEXP (x1, 1);
8609 : if (pattern5 (x2,
8610 : E_V2QImode) != 0
8611 : || !
8612 : #line 3269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8613 : (!TARGET_PARTIAL_REG_STALL || optimize_size || TARGET_SSE2))
8614 : return -1;
8615 : *pnum_clobbers = 1;
8616 : return 2193; /* addv2qi3 */
8617 :
8618 : default:
8619 : return -1;
8620 : }
8621 :
8622 : case 1:
8623 : if (!
8624 : #line 6997 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8625 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
8626 : return -1;
8627 : *pnum_clobbers = 1;
8628 : return 305; /* *addqi_1_slp */
8629 :
8630 : case 2:
8631 : if (!
8632 : #line 6997 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8633 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
8634 : return -1;
8635 : *pnum_clobbers = 1;
8636 : return 306; /* *addhi_1_slp */
8637 :
8638 : default:
8639 : return -1;
8640 : }
8641 : }
8642 :
8643 : int
8644 : recog_64 (rtx x1 ATTRIBUTE_UNUSED,
8645 : rtx_insn *insn ATTRIBUTE_UNUSED,
8646 : int *pnum_clobbers ATTRIBUTE_UNUSED)
8647 : {
8648 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
8649 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
8650 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
8651 : int res ATTRIBUTE_UNUSED;
8652 : x2 = XEXP (x1, 0);
8653 : operands[0] = x2;
8654 : x3 = XEXP (x1, 1);
8655 : x4 = XEXP (x3, 0);
8656 : switch (GET_CODE (x4))
8657 : {
8658 : case PLUS:
8659 : if (pattern102 (x3,
8660 : E_V2SFmode,
8661 : E_SFmode) != 0)
8662 : return -1;
8663 : x5 = XEXP (x3, 1);
8664 : x6 = XEXP (x5, 0);
8665 : x7 = XEXP (x6, 0);
8666 : operands[2] = x7;
8667 : if (!nonimmediate_operand (operands[2], E_V2SFmode)
8668 : || pattern1879 (x3) != 0
8669 : || !
8670 : #line 1018 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8671 : (TARGET_3DNOW
8672 : && INTVAL (operands[3]) != INTVAL (operands[4])
8673 : && INTVAL (operands[5]) != INTVAL (operands[6])))
8674 : return -1;
8675 : return 2121; /* *mmx_haddv2sf3 */
8676 :
8677 : case MINUS:
8678 : if (pattern103 (x4,
8679 : E_SFmode) != 0
8680 : || !register_operand (operands[0], E_V2SFmode)
8681 : || GET_MODE (x3) != E_V2SFmode)
8682 : return -1;
8683 : x8 = XEXP (x4, 0);
8684 : x9 = XEXP (x8, 0);
8685 : operands[1] = x9;
8686 : if (!register_operand (operands[1], E_V2SFmode))
8687 : return -1;
8688 : x5 = XEXP (x3, 1);
8689 : if (GET_MODE (x5) != E_SFmode)
8690 : return -1;
8691 : x10 = XEXP (x4, 1);
8692 : x11 = XEXP (x10, 0);
8693 : if (!rtx_equal_p (x11, operands[1]))
8694 : return -1;
8695 : switch (GET_CODE (x5))
8696 : {
8697 : case MINUS:
8698 : if (pattern1565 (x5,
8699 : E_SFmode) != 0)
8700 : return -1;
8701 : x6 = XEXP (x5, 0);
8702 : x7 = XEXP (x6, 0);
8703 : operands[2] = x7;
8704 : if (!nonimmediate_operand (operands[2], E_V2SFmode))
8705 : return -1;
8706 : x12 = XEXP (x5, 1);
8707 : x13 = XEXP (x12, 0);
8708 : if (!rtx_equal_p (x13, operands[2])
8709 : || !
8710 : #line 1066 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8711 : (TARGET_3DNOW_A))
8712 : return -1;
8713 : return 2123; /* mmx_hsubv2sf3 */
8714 :
8715 : case PLUS:
8716 : x6 = XEXP (x5, 0);
8717 : if (GET_CODE (x6) != VEC_SELECT
8718 : || GET_MODE (x6) != E_SFmode)
8719 : return -1;
8720 : x14 = XEXP (x6, 1);
8721 : if (GET_CODE (x14) != PARALLEL
8722 : || XVECLEN (x14, 0) != 1)
8723 : return -1;
8724 : x12 = XEXP (x5, 1);
8725 : if (GET_CODE (x12) != VEC_SELECT
8726 : || GET_MODE (x12) != E_SFmode)
8727 : return -1;
8728 : x15 = XEXP (x12, 1);
8729 : if (GET_CODE (x15) != PARALLEL
8730 : || XVECLEN (x15, 0) != 1)
8731 : return -1;
8732 : x7 = XEXP (x6, 0);
8733 : operands[2] = x7;
8734 : if (!nonimmediate_operand (operands[2], E_V2SFmode))
8735 : return -1;
8736 : x16 = XVECEXP (x14, 0, 0);
8737 : operands[3] = x16;
8738 : if (!const_0_to_1_operand (operands[3], E_SImode))
8739 : return -1;
8740 : x17 = XVECEXP (x15, 0, 0);
8741 : operands[4] = x17;
8742 : if (!const_0_to_1_operand (operands[4], E_SImode))
8743 : return -1;
8744 : x13 = XEXP (x12, 0);
8745 : if (!rtx_equal_p (x13, operands[2])
8746 : || !
8747 : #line 1128 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8748 : (TARGET_3DNOW_A
8749 : && INTVAL (operands[3]) != INTVAL (operands[4])))
8750 : return -1;
8751 : return 2125; /* *mmx_haddsubv2sf3 */
8752 :
8753 : default:
8754 : return -1;
8755 : }
8756 :
8757 : case REG:
8758 : case SUBREG:
8759 : case MEM:
8760 : operands[1] = x4;
8761 : x5 = XEXP (x3, 1);
8762 : operands[2] = x5;
8763 : switch (GET_MODE (operands[0]))
8764 : {
8765 : case E_V2SFmode:
8766 : if (!register_operand (operands[0], E_V2SFmode)
8767 : || GET_MODE (x3) != E_V2SFmode
8768 : || !nonimmediate_operand (operands[1], E_SFmode))
8769 : return -1;
8770 : if (nonimm_or_0_operand (operands[2], E_SFmode))
8771 : {
8772 : if (
8773 : #line 1778 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8774 : (TARGET_MMX && !TARGET_SSE))
8775 : return 2149; /* *mmx_concatv2sf */
8776 : if (
8777 : #line 12082 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8778 : (TARGET_SSE4_1 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8779 : return 5300; /* *vec_concatv2sf_sse4_1 */
8780 : }
8781 : if (!reg_or_0_operand (operands[2], E_SFmode)
8782 : || !
8783 : #line 12146 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8784 : (TARGET_SSE))
8785 : return -1;
8786 : return 5301; /* *vec_concatv2sf_sse */
8787 :
8788 : case E_V2SImode:
8789 : if (!register_operand (operands[0], E_V2SImode)
8790 : || GET_MODE (x3) != E_V2SImode
8791 : || !nonimmediate_operand (operands[1], E_SImode))
8792 : return -1;
8793 : if (nonimm_or_0_operand (operands[2], E_SImode))
8794 : {
8795 : if (
8796 : #line 5729 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8797 : (TARGET_MMX && !TARGET_SSE))
8798 : return 2405; /* *mmx_concatv2si */
8799 : if (
8800 : #line 21845 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8801 : (TARGET_SSE4_1 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8802 : return 8524; /* *vec_concatv2si_sse4_1 */
8803 : }
8804 : if (!reg_or_0_operand (operands[2], E_SImode)
8805 : || !
8806 : #line 21894 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8807 : (TARGET_SSE && !TARGET_SSE4_1))
8808 : return -1;
8809 : return 8525; /* *vec_concatv2si */
8810 :
8811 : default:
8812 : return -1;
8813 : }
8814 :
8815 : case SS_TRUNCATE:
8816 : x5 = XEXP (x3, 1);
8817 : if (GET_CODE (x5) != SS_TRUNCATE)
8818 : return -1;
8819 : switch (pattern271 (x3))
8820 : {
8821 : case 0:
8822 : if (!
8823 : #line 4799 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8824 : (TARGET_MMX || TARGET_MMX_WITH_SSE))
8825 : return -1;
8826 : return 2349; /* mmx_packsswb */
8827 :
8828 : case 1:
8829 : if (!
8830 : #line 4840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8831 : (TARGET_MMX || TARGET_MMX_WITH_SSE))
8832 : return -1;
8833 : return 2351; /* mmx_packssdw */
8834 :
8835 : default:
8836 : return -1;
8837 : }
8838 :
8839 : default:
8840 : return -1;
8841 : }
8842 : }
8843 :
8844 : int
8845 : recog_70 (rtx x1 ATTRIBUTE_UNUSED,
8846 : rtx_insn *insn ATTRIBUTE_UNUSED,
8847 : int *pnum_clobbers ATTRIBUTE_UNUSED)
8848 : {
8849 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
8850 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
8851 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
8852 : rtx x18, x19;
8853 : int res ATTRIBUTE_UNUSED;
8854 : x2 = XEXP (x1, 0);
8855 : operands[0] = x2;
8856 : x3 = XEXP (x1, 1);
8857 : x4 = XEXP (x3, 0);
8858 : switch (GET_CODE (x4))
8859 : {
8860 : case LSHIFTRT:
8861 : x5 = XEXP (x4, 1);
8862 : if (GET_CODE (x5) != CONST_INT)
8863 : return -1;
8864 : x6 = XEXP (x4, 0);
8865 : switch (GET_CODE (x6))
8866 : {
8867 : case MULT:
8868 : if (XWINT (x5, 0) != 16L)
8869 : return -1;
8870 : x7 = XEXP (x6, 0);
8871 : switch (GET_CODE (x7))
8872 : {
8873 : case SIGN_EXTEND:
8874 : switch (pattern755 (x3,
8875 : SIGN_EXTEND))
8876 : {
8877 : case 0:
8878 : if (!
8879 : #line 3475 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8880 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8881 : && ix86_binary_operator_ok (MULT, V4HImode, operands)))
8882 : return -1;
8883 : return 2218; /* *mmx_smulv4hi3_highpart */
8884 :
8885 : case 1:
8886 : if (!
8887 : #line 3544 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8888 : (TARGET_SSE2))
8889 : return -1;
8890 : return 2220; /* smulv2hi3_highpart */
8891 :
8892 : default:
8893 : return -1;
8894 : }
8895 :
8896 : case ZERO_EXTEND:
8897 : switch (pattern755 (x3,
8898 : ZERO_EXTEND))
8899 : {
8900 : case 0:
8901 : if (!
8902 : #line 3510 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8903 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8904 : && (TARGET_SSE || TARGET_3DNOW_A)
8905 : && ix86_binary_operator_ok (MULT, V4HImode, operands)))
8906 : return -1;
8907 : return 2219; /* *mmx_umulv4hi3_highpart */
8908 :
8909 : case 1:
8910 : if (!
8911 : #line 3544 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8912 : (TARGET_SSE2))
8913 : return -1;
8914 : return 2221; /* umulv2hi3_highpart */
8915 :
8916 : default:
8917 : return -1;
8918 : }
8919 :
8920 : default:
8921 : return -1;
8922 : }
8923 :
8924 : case PLUS:
8925 : x7 = XEXP (x6, 0);
8926 : switch (GET_CODE (x7))
8927 : {
8928 : case MULT:
8929 : if (GET_MODE (x7) != E_V4SImode)
8930 : return -1;
8931 : x8 = XEXP (x7, 0);
8932 : if (GET_CODE (x8) != SIGN_EXTEND
8933 : || GET_MODE (x8) != E_V4SImode)
8934 : return -1;
8935 : x9 = XEXP (x7, 1);
8936 : if (GET_CODE (x9) != SIGN_EXTEND
8937 : || GET_MODE (x9) != E_V4SImode)
8938 : return -1;
8939 : x10 = XEXP (x6, 1);
8940 : if (GET_CODE (x10) != CONST_VECTOR
8941 : || XVECLEN (x10, 0) != 4
8942 : || GET_MODE (x10) != E_V4SImode)
8943 : return -1;
8944 : x11 = XVECEXP (x10, 0, 0);
8945 : if (GET_CODE (x11) != CONST_INT
8946 : || XWINT (x11, 0) != 32768L)
8947 : return -1;
8948 : x12 = XVECEXP (x10, 0, 1);
8949 : if (GET_CODE (x12) != CONST_INT
8950 : || XWINT (x12, 0) != 32768L)
8951 : return -1;
8952 : x13 = XVECEXP (x10, 0, 2);
8953 : if (GET_CODE (x13) != CONST_INT
8954 : || XWINT (x13, 0) != 32768L)
8955 : return -1;
8956 : x14 = XVECEXP (x10, 0, 3);
8957 : if (GET_CODE (x14) != CONST_INT
8958 : || XWINT (x14, 0) != 32768L
8959 : || XWINT (x5, 0) != 16L
8960 : || !register_operand (operands[0], E_V4HImode)
8961 : || GET_MODE (x3) != E_V4HImode
8962 : || GET_MODE (x4) != E_V4SImode
8963 : || GET_MODE (x6) != E_V4SImode)
8964 : return -1;
8965 : x15 = XEXP (x8, 0);
8966 : operands[1] = x15;
8967 : if (!nonimmediate_operand (operands[1], E_V4HImode))
8968 : return -1;
8969 : x16 = XEXP (x9, 0);
8970 : operands[2] = x16;
8971 : if (!nonimmediate_operand (operands[2], E_V4HImode)
8972 : || !
8973 : #line 3633 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8974 : (TARGET_3DNOW && ix86_binary_operator_ok (MULT, V4HImode, operands)))
8975 : return -1;
8976 : return 2223; /* *mmx_pmulhrwv4hi3 */
8977 :
8978 : case PLUS:
8979 : x8 = XEXP (x7, 0);
8980 : if (GET_CODE (x8) != ZERO_EXTEND)
8981 : return -1;
8982 : x9 = XEXP (x7, 1);
8983 : if (GET_CODE (x9) != ZERO_EXTEND)
8984 : return -1;
8985 : x10 = XEXP (x6, 1);
8986 : if (GET_CODE (x10) != CONST_VECTOR
8987 : || XWINT (x5, 0) != 1L)
8988 : return -1;
8989 : x15 = XEXP (x8, 0);
8990 : operands[1] = x15;
8991 : x16 = XEXP (x9, 0);
8992 : operands[2] = x16;
8993 : switch (XVECLEN (x10, 0))
8994 : {
8995 : case 8:
8996 : if (pattern1370 (x10,
8997 : E_V8HImode) != 0
8998 : || pattern1652 (x3,
8999 : E_V8QImode,
9000 : E_V8HImode) != 0
9001 : || !
9002 : #line 6360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
9003 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
9004 : && (TARGET_SSE || TARGET_3DNOW)
9005 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9006 : return -1;
9007 : return 2435; /* *mmx_uavgv8qi3 */
9008 :
9009 : case 4:
9010 : x11 = XVECEXP (x10, 0, 0);
9011 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
9012 : return -1;
9013 : x12 = XVECEXP (x10, 0, 1);
9014 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
9015 : return -1;
9016 : x13 = XVECEXP (x10, 0, 2);
9017 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
9018 : return -1;
9019 : x14 = XVECEXP (x10, 0, 3);
9020 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
9021 : return -1;
9022 : switch (GET_MODE (operands[0]))
9023 : {
9024 : case E_V4HImode:
9025 : if (pattern1652 (x3,
9026 : E_V4HImode,
9027 : E_V4SImode) != 0
9028 : || GET_MODE (x10) != E_V4SImode
9029 : || !
9030 : #line 6404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
9031 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
9032 : && (TARGET_SSE || TARGET_3DNOW_A)
9033 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9034 : return -1;
9035 : return 2436; /* *mmx_uavgv4hi3 */
9036 :
9037 : case E_V4QImode:
9038 : if (pattern1548 (x3,
9039 : E_V4HImode,
9040 : E_V4QImode) != 0
9041 : || !
9042 : #line 6444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
9043 : (TARGET_SSE2))
9044 : return -1;
9045 : return 2437; /* uavgv4qi3_ceil */
9046 :
9047 : default:
9048 : return -1;
9049 : }
9050 :
9051 : case 2:
9052 : x11 = XVECEXP (x10, 0, 0);
9053 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
9054 : return -1;
9055 : x12 = XVECEXP (x10, 0, 1);
9056 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
9057 : return -1;
9058 : switch (GET_MODE (operands[0]))
9059 : {
9060 : case E_V2QImode:
9061 : if (pattern1548 (x3,
9062 : E_V2HImode,
9063 : E_V2QImode) != 0
9064 : || !
9065 : #line 6464 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
9066 : (TARGET_SSE2))
9067 : return -1;
9068 : return 2438; /* uavgv2qi3_ceil */
9069 :
9070 : case E_V2HImode:
9071 : if (pattern1548 (x3,
9072 : E_V2SImode,
9073 : E_V2HImode) != 0
9074 : || !
9075 : #line 6484 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
9076 : (TARGET_SSE2))
9077 : return -1;
9078 : return 2439; /* uavgv2hi3_ceil */
9079 :
9080 : default:
9081 : return -1;
9082 : }
9083 :
9084 : default:
9085 : return -1;
9086 : }
9087 :
9088 : case LSHIFTRT:
9089 : if (pattern627 (x7) != 0
9090 : || XWINT (x5, 0) != 1L)
9091 : return -1;
9092 : x8 = XEXP (x7, 0);
9093 : x15 = XEXP (x8, 0);
9094 : x17 = XEXP (x15, 0);
9095 : operands[1] = x17;
9096 : x18 = XEXP (x8, 1);
9097 : x19 = XEXP (x18, 0);
9098 : operands[2] = x19;
9099 : x10 = XEXP (x6, 1);
9100 : operands[3] = x10;
9101 : switch (GET_MODE (operands[0]))
9102 : {
9103 : case E_V4HImode:
9104 : if (pattern1523 (x3,
9105 : E_V4SImode,
9106 : E_V4HImode) != 0
9107 : || !register_mmxmem_operand (operands[1], E_V4HImode)
9108 : || GET_MODE (x18) != E_V4SImode
9109 : || !register_mmxmem_operand (operands[2], E_V4HImode)
9110 : || !const1_operand (operands[3], E_V4HImode)
9111 : || !
9112 : #line 23410 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9113 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
9114 : && TARGET_SSSE3
9115 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9116 : return -1;
9117 : return 8667; /* *ssse3_pmulhrswv4hi3 */
9118 :
9119 : case E_V2HImode:
9120 : if (pattern1523 (x3,
9121 : E_V2SImode,
9122 : E_V2HImode) != 0
9123 : || !register_operand (operands[1], E_V2HImode)
9124 : || GET_MODE (x18) != E_V2SImode
9125 : || !register_operand (operands[2], E_V2HImode)
9126 : || !const1_operand (operands[3], E_V2HImode)
9127 : || !
9128 : #line 23455 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9129 : (TARGET_SSSE3
9130 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9131 : return -1;
9132 : return 8668; /* *smulhrsv2hi3 */
9133 :
9134 : default:
9135 : return -1;
9136 : }
9137 :
9138 : default:
9139 : return -1;
9140 : }
9141 :
9142 : default:
9143 : return -1;
9144 : }
9145 :
9146 : case REG:
9147 : case SUBREG:
9148 : operands[1] = x4;
9149 : switch (GET_MODE (operands[0]))
9150 : {
9151 : case E_V4QImode:
9152 : if (GET_MODE (x3) != E_V4QImode)
9153 : return -1;
9154 : if (register_operand (operands[0], E_V4QImode)
9155 : && register_operand (operands[1], E_V4HImode)
9156 : && (
9157 : #line 5172 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
9158 : (TARGET_AVX512VL && TARGET_AVX512BW) &&
9159 : #line 73 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
9160 : (TARGET_MMX_WITH_SSE)))
9161 : return 2369; /* avx512vl_truncv4hiv4qi2 */
9162 : if (!memory_operand (operands[0], E_V4QImode))
9163 : return -1;
9164 : switch (GET_MODE (operands[1]))
9165 : {
9166 : case E_V4SImode:
9167 : if (!register_operand (operands[1], E_V4SImode)
9168 : || !
9169 : #line 15820 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9170 : (TARGET_AVX512VL))
9171 : return -1;
9172 : return 7348; /* *avx512vl_truncatev4siv4qi2_store_1 */
9173 :
9174 : case E_V4DImode:
9175 : if (!register_operand (operands[1], E_V4DImode)
9176 : || !
9177 : #line 15820 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9178 : (TARGET_AVX512VL))
9179 : return -1;
9180 : return 7351; /* *avx512vl_truncatev4div4qi2_store_1 */
9181 :
9182 : default:
9183 : return -1;
9184 : }
9185 :
9186 : case E_V2QImode:
9187 : if (GET_MODE (x3) != E_V2QImode)
9188 : return -1;
9189 : if (register_operand (operands[0], E_V2QImode))
9190 : {
9191 : switch (GET_MODE (operands[1]))
9192 : {
9193 : case E_V2HImode:
9194 : if (register_operand (operands[1], E_V2HImode)
9195 : &&
9196 : #line 5172 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
9197 : (TARGET_AVX512VL && TARGET_AVX512BW))
9198 : return 2370; /* avx512vl_truncv2hiv2qi2 */
9199 : break;
9200 :
9201 : case E_V2SImode:
9202 : if (register_operand (operands[1], E_V2SImode)
9203 : &&
9204 : #line 5198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
9205 : (TARGET_AVX512VL && TARGET_MMX_WITH_SSE))
9206 : return 2371; /* avx512vl_truncv2siv2qi2 */
9207 : break;
9208 :
9209 : default:
9210 : break;
9211 : }
9212 : }
9213 : if (!memory_operand (operands[0], E_V2QImode)
9214 : || !register_operand (operands[1], E_V2DImode)
9215 : || !
9216 : #line 15725 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9217 : (TARGET_AVX512VL))
9218 : return -1;
9219 : return 7333; /* *avx512vl_truncatev2div2qi2_store_1 */
9220 :
9221 : case E_V2HImode:
9222 : if (GET_MODE (x3) != E_V2HImode)
9223 : return -1;
9224 : if (register_operand (operands[0], E_V2HImode)
9225 : && register_operand (operands[1], E_V2SImode)
9226 : &&
9227 : #line 5198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
9228 : (TARGET_AVX512VL && TARGET_MMX_WITH_SSE))
9229 : return 2372; /* avx512vl_truncv2siv2hi2 */
9230 : if (!memory_operand (operands[0], E_V2HImode)
9231 : || !register_operand (operands[1], E_V2DImode)
9232 : || !
9233 : #line 16171 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9234 : (TARGET_AVX512VL))
9235 : return -1;
9236 : return 7448; /* *avx512vl_truncatev2div2hi2_store_1 */
9237 :
9238 : case E_V8QImode:
9239 : switch (pattern10 (x3))
9240 : {
9241 : case 0:
9242 : if (!(
9243 : #line 15918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9244 : (TARGET_AVX512VL) &&
9245 : #line 15912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9246 : (TARGET_AVX512BW)))
9247 : return -1;
9248 : return 7378; /* *avx512vl_truncatev8hiv8qi2_store_1 */
9249 :
9250 : case 1:
9251 : if (!
9252 : #line 15918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9253 : (TARGET_AVX512VL))
9254 : return -1;
9255 : return 7381; /* *avx512vl_truncatev8siv8qi2_store_1 */
9256 :
9257 : case 2:
9258 : if (!
9259 : #line 16434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9260 : (TARGET_AVX512F))
9261 : return -1;
9262 : return 7485; /* *avx512f_truncatev8div16qi2_store_1 */
9263 :
9264 : default:
9265 : return -1;
9266 : }
9267 :
9268 : case E_V4HImode:
9269 : switch (pattern9 (x3,
9270 : E_V4HImode))
9271 : {
9272 : case 0:
9273 : if (!
9274 : #line 16080 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9275 : (TARGET_AVX512VL))
9276 : return -1;
9277 : return 7418; /* *avx512vl_truncatev4siv4hi2_store_1 */
9278 :
9279 : case 1:
9280 : if (!
9281 : #line 16080 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9282 : (TARGET_AVX512VL))
9283 : return -1;
9284 : return 7421; /* *avx512vl_truncatev4div4hi2_store_1 */
9285 :
9286 : default:
9287 : return -1;
9288 : }
9289 :
9290 : case E_V2SImode:
9291 : if (!memory_operand (operands[0], E_V2SImode)
9292 : || GET_MODE (x3) != E_V2SImode
9293 : || !register_operand (operands[1], E_V2DImode)
9294 : || !
9295 : #line 16321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9296 : (TARGET_AVX512VL))
9297 : return -1;
9298 : return 7467; /* *avx512vl_truncatev2div2si2_store_1 */
9299 :
9300 : default:
9301 : return -1;
9302 : }
9303 :
9304 : default:
9305 : return -1;
9306 : }
9307 : }
9308 :
9309 : int
9310 : recog_79 (rtx x1 ATTRIBUTE_UNUSED,
9311 : rtx_insn *insn ATTRIBUTE_UNUSED,
9312 : int *pnum_clobbers ATTRIBUTE_UNUSED)
9313 : {
9314 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
9315 : rtx x2, x3, x4, x5, x6;
9316 : int res ATTRIBUTE_UNUSED;
9317 : x2 = XEXP (x1, 1);
9318 : x3 = XEXP (x2, 0);
9319 : x4 = XEXP (x3, 0);
9320 : switch (GET_CODE (x4))
9321 : {
9322 : case REG:
9323 : case SUBREG:
9324 : case MEM:
9325 : switch (pattern115 (x2, pnum_clobbers))
9326 : {
9327 : case 0:
9328 : if (
9329 : #line 14035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9330 : (TARGET_APX_NDD && TARGET_APX_NF
9331 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9332 : return 877; /* *xorqi_1_zextsi_nf */
9333 : if (pnum_clobbers == NULL
9334 : || !
9335 : #line 14035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9336 : (TARGET_APX_NDD && true
9337 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9338 : return -1;
9339 : *pnum_clobbers = 1;
9340 : return 878; /* *xorqi_1_zextsi */
9341 :
9342 : case 1:
9343 : if (
9344 : #line 14049 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9345 : (TARGET_APX_NDD && TARGET_APX_NF
9346 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9347 : return 885; /* *xorhi_1_zextsi_nf */
9348 : if (pnum_clobbers == NULL
9349 : || !
9350 : #line 14049 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9351 : (TARGET_APX_NDD && true
9352 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9353 : return -1;
9354 : *pnum_clobbers = 1;
9355 : return 886; /* *xorhi_1_zextsi */
9356 :
9357 : case 2:
9358 : if (
9359 : #line 14035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9360 : (TARGET_APX_NDD && TARGET_APX_NF
9361 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9362 : return 881; /* *xorqi_1_zextdi_nf */
9363 : if (pnum_clobbers == NULL
9364 : || !
9365 : #line 14035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9366 : (TARGET_APX_NDD && true
9367 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9368 : return -1;
9369 : *pnum_clobbers = 1;
9370 : return 882; /* *xorqi_1_zextdi */
9371 :
9372 : case 3:
9373 : if (
9374 : #line 14049 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9375 : (TARGET_APX_NDD && TARGET_APX_NF
9376 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9377 : return 889; /* *xorhi_1_zextdi_nf */
9378 : if (pnum_clobbers == NULL
9379 : || !
9380 : #line 14049 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9381 : (TARGET_APX_NDD && true
9382 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9383 : return -1;
9384 : *pnum_clobbers = 1;
9385 : return 890; /* *xorhi_1_zextdi */
9386 :
9387 : case 4:
9388 : if (!
9389 : #line 14065 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9390 : (TARGET_64BIT
9391 : && ix86_binary_operator_ok (XOR, SImode, operands, TARGET_APX_NDD)))
9392 : return -1;
9393 : *pnum_clobbers = 1;
9394 : return 892; /* *xorsi_1_zext */
9395 :
9396 : default:
9397 : return -1;
9398 : }
9399 :
9400 : case MINUS:
9401 : if (pnum_clobbers == NULL
9402 : || pattern442 (x3) != 0
9403 : || !register_operand (operands[0], E_DImode)
9404 : || GET_MODE (x2) != E_DImode
9405 : || GET_MODE (x3) != E_SImode)
9406 : return -1;
9407 : x5 = XEXP (x4, 1);
9408 : x6 = XEXP (x5, 0);
9409 : operands[1] = x6;
9410 : if (!nonimmediate_operand (operands[1], E_SImode)
9411 : || !
9412 : #line 21705 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9413 : (!TARGET_LZCNT && TARGET_64BIT && ix86_pre_reload_split ()))
9414 : return -1;
9415 : *pnum_clobbers = 1;
9416 : return 1565; /* *bsru_2 */
9417 :
9418 : default:
9419 : return -1;
9420 : }
9421 : }
9422 :
9423 : int
9424 : recog_82 (rtx x1 ATTRIBUTE_UNUSED,
9425 : rtx_insn *insn ATTRIBUTE_UNUSED,
9426 : int *pnum_clobbers ATTRIBUTE_UNUSED)
9427 : {
9428 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
9429 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
9430 : rtx x10, x11;
9431 : int res ATTRIBUTE_UNUSED;
9432 : x2 = XEXP (x1, 1);
9433 : x3 = XEXP (x2, 0);
9434 : x4 = XEXP (x3, 1);
9435 : x5 = XEXP (x4, 0);
9436 : operands[2] = x5;
9437 : x6 = XEXP (x3, 0);
9438 : if (!rtx_equal_p (x6, operands[0]))
9439 : return -1;
9440 : x7 = XEXP (x2, 1);
9441 : x8 = XEXP (x7, 0);
9442 : x9 = XEXP (x8, 1);
9443 : x10 = XEXP (x9, 1);
9444 : x11 = XEXP (x10, 0);
9445 : if (!rtx_equal_p (x11, operands[2]))
9446 : return -1;
9447 : if (
9448 : #line 15739 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9449 : (TARGET_64BIT && TARGET_APX_NF))
9450 : return 1094; /* x86_64_shld_nf */
9451 : if (pnum_clobbers == NULL
9452 : || !
9453 : #line 15739 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9454 : (TARGET_64BIT && true))
9455 : return -1;
9456 : *pnum_clobbers = 1;
9457 : return 1095; /* x86_64_shld */
9458 : }
9459 :
9460 : int
9461 : recog_84 (rtx x1 ATTRIBUTE_UNUSED,
9462 : rtx_insn *insn ATTRIBUTE_UNUSED,
9463 : int *pnum_clobbers ATTRIBUTE_UNUSED)
9464 : {
9465 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
9466 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
9467 : rtx x10, x11, x12, x13, x14, x15;
9468 : int res ATTRIBUTE_UNUSED;
9469 : x2 = XEXP (x1, 1);
9470 : x3 = XEXP (x2, 0);
9471 : x4 = XEXP (x3, 0);
9472 : switch (GET_CODE (x4))
9473 : {
9474 : case REG:
9475 : case SUBREG:
9476 : case MEM:
9477 : x5 = XEXP (x3, 1);
9478 : switch (GET_CODE (x5))
9479 : {
9480 : case CONST_INT:
9481 : case CONST_WIDE_INT:
9482 : case CONST_POLY_INT:
9483 : case CONST_FIXED:
9484 : case CONST_DOUBLE:
9485 : case CONST_VECTOR:
9486 : case CONST:
9487 : case REG:
9488 : case SUBREG:
9489 : case LABEL_REF:
9490 : case SYMBOL_REF:
9491 : case HIGH:
9492 : x6 = XEXP (x2, 1);
9493 : switch (GET_CODE (x6))
9494 : {
9495 : case CONST_INT:
9496 : case CONST_WIDE_INT:
9497 : operands[3] = x6;
9498 : operands[1] = x4;
9499 : operands[2] = x5;
9500 : switch (GET_MODE (operands[0]))
9501 : {
9502 : case E_SImode:
9503 : if (pattern614 (x2,
9504 : E_SImode) != 0
9505 : || !
9506 : #line 8072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9507 : ((unsigned HOST_WIDE_INT) INTVAL (operands[3])
9508 : < (HOST_WIDE_INT_1U << INTVAL (operands[2]))))
9509 : return -1;
9510 : return 380; /* *leasi_general_4 */
9511 :
9512 : case E_DImode:
9513 : if (GET_MODE (x2) != E_DImode
9514 : || GET_MODE (x3) != E_DImode)
9515 : return -1;
9516 : if (register_operand (operands[0], E_DImode)
9517 : && register_no_SP_operand (operands[1], E_DImode)
9518 : && const_0_to_3_operand (operands[2], E_VOIDmode)
9519 : && const_int_operand (operands[3], E_VOIDmode)
9520 : && (
9521 : #line 8072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9522 : ((unsigned HOST_WIDE_INT) INTVAL (operands[3])
9523 : < (HOST_WIDE_INT_1U << INTVAL (operands[2]))) &&
9524 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9525 : (TARGET_64BIT)))
9526 : return 382; /* *leadi_general_4 */
9527 : if (!nonimmediate_operand (operands[0], E_DImode)
9528 : || !register_operand (operands[1], E_DImode)
9529 : || !const_int_operand (operands[2], E_QImode)
9530 : || !const_scalar_int_operand (operands[3], E_DImode)
9531 : || !(
9532 : #line 14473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9533 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT / 2
9534 : && (DImode == DImode
9535 : ? CONST_INT_P (operands[3])
9536 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
9537 : : CONST_INT_P (operands[3])
9538 : ? INTVAL (operands[3]) >= 0
9539 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
9540 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
9541 : && !(CONST_INT_P (operands[3])
9542 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
9543 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
9544 : 0)),
9545 : VOIDmode))) &&
9546 : #line 1196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9547 : (!TARGET_64BIT)))
9548 : return -1;
9549 : return 961; /* *concatsidi3_5 */
9550 :
9551 : default:
9552 : return -1;
9553 : }
9554 :
9555 : case ZERO_EXTEND:
9556 : if (GET_MODE (x6) != E_DImode
9557 : || !nonimmediate_operand (operands[0], E_DImode)
9558 : || GET_MODE (x2) != E_DImode
9559 : || GET_MODE (x3) != E_DImode)
9560 : return -1;
9561 : operands[1] = x4;
9562 : if (!register_operand (operands[1], E_DImode))
9563 : return -1;
9564 : operands[2] = x5;
9565 : if (!const_int_operand (operands[2], E_QImode))
9566 : return -1;
9567 : x7 = XEXP (x6, 0);
9568 : operands[3] = x7;
9569 : if (!nonimmediate_operand (operands[3], E_SImode)
9570 : || !(
9571 : #line 14396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9572 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT) &&
9573 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9574 : (!TARGET_64BIT)))
9575 : return -1;
9576 : return 925; /* *concatsidi3_1 */
9577 :
9578 : case SUBREG:
9579 : switch (pattern444 (x2,
9580 : LSHIFTRT))
9581 : {
9582 : case 0:
9583 : operands[2] = x5;
9584 : if (pattern1371 (x2) == 0)
9585 : {
9586 : if (
9587 : #line 15775 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9588 : (TARGET_64BIT
9589 : && INTVAL (operands[3]) == 64 - INTVAL (operands[2])
9590 : && TARGET_APX_NF))
9591 : return 1098; /* x86_64_shld_1_nf */
9592 : if (pnum_clobbers != NULL
9593 : &&
9594 : #line 15775 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9595 : (TARGET_64BIT
9596 : && INTVAL (operands[3]) == 64 - INTVAL (operands[2])
9597 : && true))
9598 : {
9599 : *pnum_clobbers = 1;
9600 : return 1099; /* x86_64_shld_1 */
9601 : }
9602 : }
9603 : operands[3] = x5;
9604 : if (pattern1372 (x2) != 0)
9605 : return -1;
9606 : if (
9607 : #line 15797 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9608 : (TARGET_APX_NDD
9609 : && INTVAL (operands[4]) == 64 - INTVAL (operands[3])
9610 : && TARGET_APX_NF))
9611 : return 1100; /* x86_64_shld_ndd_1_nf */
9612 : if (pnum_clobbers == NULL
9613 : || !
9614 : #line 15797 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9615 : (TARGET_APX_NDD
9616 : && INTVAL (operands[4]) == 64 - INTVAL (operands[3])
9617 : && true))
9618 : return -1;
9619 : *pnum_clobbers = 1;
9620 : return 1101; /* x86_64_shld_ndd_1 */
9621 :
9622 : case 1:
9623 : operands[2] = x5;
9624 : if (pattern1373 (x2) == 0)
9625 : {
9626 : if (
9627 : #line 16007 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9628 : (INTVAL (operands[3]) == 32 - INTVAL (operands[2])
9629 : && TARGET_APX_NF))
9630 : return 1110; /* x86_shld_1_nf */
9631 : if (pnum_clobbers != NULL
9632 : &&
9633 : #line 16007 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9634 : (INTVAL (operands[3]) == 32 - INTVAL (operands[2])
9635 : && true))
9636 : {
9637 : *pnum_clobbers = 1;
9638 : return 1111; /* x86_shld_1 */
9639 : }
9640 : }
9641 : operands[3] = x5;
9642 : if (pattern1374 (x2) != 0)
9643 : return -1;
9644 : if (
9645 : #line 16029 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9646 : (TARGET_APX_NDD
9647 : && INTVAL (operands[4]) == 32 - INTVAL (operands[3])
9648 : && TARGET_APX_NF))
9649 : return 1112; /* x86_shld_ndd_1_nf */
9650 : if (pnum_clobbers == NULL
9651 : || !
9652 : #line 16029 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9653 : (TARGET_APX_NDD
9654 : && INTVAL (operands[4]) == 32 - INTVAL (operands[3])
9655 : && true))
9656 : return -1;
9657 : *pnum_clobbers = 1;
9658 : return 1113; /* x86_shld_ndd_1 */
9659 :
9660 : default:
9661 : return -1;
9662 : }
9663 :
9664 : case LSHIFTRT:
9665 : switch (pattern447 (x2, pnum_clobbers))
9666 : {
9667 : case 0:
9668 : if (
9669 : #line 15813 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9670 : (TARGET_64BIT && TARGET_APX_NF
9671 : && INTVAL (operands[3]) == 64 - INTVAL (operands[2])
9672 : && ix86_pre_reload_split ()))
9673 : return 1102; /* *x86_64_shld_shrd_1_nozext_nf */
9674 : if (pnum_clobbers == NULL
9675 : || !
9676 : #line 15869 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9677 : (TARGET_64BIT
9678 : && INTVAL (operands[3]) == 64 - INTVAL (operands[2])
9679 : && ix86_pre_reload_split ()))
9680 : return -1;
9681 : *pnum_clobbers = 1;
9682 : return 1103; /* *x86_64_shld_shrd_1_nozext */
9683 :
9684 : case 1:
9685 : if (
9686 : #line 16045 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9687 : (TARGET_APX_NF
9688 : && INTVAL (operands[3]) == 32 - INTVAL (operands[2])
9689 : && ix86_pre_reload_split ()))
9690 : return 1114; /* *x86_shld_shrd_1_nozext_nf */
9691 : if (pnum_clobbers == NULL
9692 : || !
9693 : #line 16101 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9694 : (INTVAL (operands[3]) == 32 - INTVAL (operands[2])
9695 : && ix86_pre_reload_split ()))
9696 : return -1;
9697 : *pnum_clobbers = 1;
9698 : return 1115; /* *x86_shld_shrd_1_nozext */
9699 :
9700 : case 2:
9701 : x7 = XEXP (x6, 0);
9702 : operands[1] = x7;
9703 : if (nonimmediate_operand (operands[0], E_DImode))
9704 : {
9705 : operands[2] = x5;
9706 : if (rtx_equal_p (x4, operands[0]))
9707 : {
9708 : x8 = XEXP (x6, 1);
9709 : x9 = XEXP (x8, 1);
9710 : if (rtx_equal_p (x9, operands[2])
9711 : &&
9712 : #line 15922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9713 : (TARGET_64BIT && ix86_pre_reload_split ()))
9714 : {
9715 : *pnum_clobbers = 1;
9716 : return 1104; /* *x86_64_shld_2 */
9717 : }
9718 : }
9719 : }
9720 : operands[2] = x7;
9721 : if (!register_operand (operands[0], E_DImode))
9722 : return -1;
9723 : operands[1] = x4;
9724 : if (!nonimmediate_operand (operands[1], E_DImode))
9725 : return -1;
9726 : operands[3] = x5;
9727 : x8 = XEXP (x6, 1);
9728 : x9 = XEXP (x8, 1);
9729 : if (!rtx_equal_p (x9, operands[3])
9730 : || !
9731 : #line 15943 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9732 : (TARGET_APX_NDD
9733 : && ix86_pre_reload_split ()))
9734 : return -1;
9735 : *pnum_clobbers = 1;
9736 : return 1105; /* *x86_64_shld_ndd_2 */
9737 :
9738 : case 3:
9739 : x7 = XEXP (x6, 0);
9740 : operands[1] = x7;
9741 : if (nonimmediate_operand (operands[0], E_SImode))
9742 : {
9743 : operands[2] = x5;
9744 : if (rtx_equal_p (x4, operands[0]))
9745 : {
9746 : x8 = XEXP (x6, 1);
9747 : x9 = XEXP (x8, 1);
9748 : if (rtx_equal_p (x9, operands[2])
9749 : &&
9750 : #line 16153 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9751 : (TARGET_64BIT && ix86_pre_reload_split ()))
9752 : {
9753 : *pnum_clobbers = 1;
9754 : return 1116; /* *x86_shld_2 */
9755 : }
9756 : }
9757 : }
9758 : operands[2] = x7;
9759 : if (!register_operand (operands[0], E_SImode))
9760 : return -1;
9761 : operands[1] = x4;
9762 : if (!nonimmediate_operand (operands[1], E_SImode))
9763 : return -1;
9764 : operands[3] = x5;
9765 : x8 = XEXP (x6, 1);
9766 : x9 = XEXP (x8, 1);
9767 : if (!rtx_equal_p (x9, operands[3])
9768 : || !
9769 : #line 16174 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9770 : (TARGET_APX_NDD
9771 : && ix86_pre_reload_split ()))
9772 : return -1;
9773 : *pnum_clobbers = 1;
9774 : return 1117; /* *x86_shld_ndd_2 */
9775 :
9776 : default:
9777 : return -1;
9778 : }
9779 :
9780 : default:
9781 : return -1;
9782 : }
9783 :
9784 : case AND:
9785 : switch (pattern289 (x2,
9786 : LSHIFTRT))
9787 : {
9788 : case 0:
9789 : x6 = XEXP (x2, 1);
9790 : x7 = XEXP (x6, 0);
9791 : x10 = XEXP (x7, 0);
9792 : x11 = XEXP (x10, 0);
9793 : operands[1] = x11;
9794 : if (nonimmediate_operand (operands[0], E_DImode))
9795 : {
9796 : res = recog_82 (x1, insn, pnum_clobbers);
9797 : if (res >= 0)
9798 : return res;
9799 : }
9800 : operands[2] = x11;
9801 : if (!register_operand (operands[0], E_DImode))
9802 : return -1;
9803 : operands[1] = x4;
9804 : if (!nonimmediate_operand (operands[1], E_DImode))
9805 : return -1;
9806 : x12 = XEXP (x5, 0);
9807 : operands[3] = x12;
9808 : x13 = XEXP (x7, 1);
9809 : x14 = XEXP (x13, 1);
9810 : x15 = XEXP (x14, 0);
9811 : if (!rtx_equal_p (x15, operands[3]))
9812 : return -1;
9813 : if (
9814 : #line 15760 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9815 : (TARGET_APX_NDD && TARGET_APX_NF))
9816 : return 1096; /* x86_64_shld_ndd_nf */
9817 : if (pnum_clobbers == NULL
9818 : || !
9819 : #line 15760 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9820 : (TARGET_APX_NDD && true))
9821 : return -1;
9822 : *pnum_clobbers = 1;
9823 : return 1097; /* x86_64_shld_ndd */
9824 :
9825 : case 1:
9826 : if (!nonimmediate_operand (operands[0], E_SImode)
9827 : || pattern288 (x2,
9828 : E_SImode,
9829 : E_DImode) != 0)
9830 : return -1;
9831 : x6 = XEXP (x2, 1);
9832 : x7 = XEXP (x6, 0);
9833 : x10 = XEXP (x7, 0);
9834 : x11 = XEXP (x10, 0);
9835 : operands[1] = x11;
9836 : x12 = XEXP (x5, 0);
9837 : operands[2] = x12;
9838 : if (rtx_equal_p (x4, operands[0]))
9839 : {
9840 : x13 = XEXP (x7, 1);
9841 : x14 = XEXP (x13, 1);
9842 : x15 = XEXP (x14, 0);
9843 : if (rtx_equal_p (x15, operands[2]))
9844 : {
9845 : if (
9846 : #line 15969 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9847 : (TARGET_APX_NF))
9848 : return 1106; /* x86_shld_nf */
9849 : if (pnum_clobbers != NULL)
9850 : {
9851 : *pnum_clobbers = 1;
9852 : return 1107; /* x86_shld */
9853 : }
9854 : }
9855 : }
9856 : operands[2] = x11;
9857 : operands[1] = x4;
9858 : if (!nonimmediate_operand (operands[1], E_SImode))
9859 : return -1;
9860 : operands[3] = x12;
9861 : x13 = XEXP (x7, 1);
9862 : x14 = XEXP (x13, 1);
9863 : x15 = XEXP (x14, 0);
9864 : if (!rtx_equal_p (x15, operands[3]))
9865 : return -1;
9866 : if (
9867 : #line 15991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9868 : (TARGET_APX_NDD && TARGET_APX_NF))
9869 : return 1108; /* x86_shld_ndd_nf */
9870 : if (pnum_clobbers == NULL
9871 : || !
9872 : #line 15991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9873 : (TARGET_APX_NDD && true))
9874 : return -1;
9875 : *pnum_clobbers = 1;
9876 : return 1109; /* x86_shld_ndd */
9877 :
9878 : default:
9879 : return -1;
9880 : }
9881 :
9882 : default:
9883 : return -1;
9884 : }
9885 :
9886 : case SIGN_EXTEND:
9887 : switch (pattern260 (x2,
9888 : E_SImode,
9889 : E_DImode))
9890 : {
9891 : case 0:
9892 : if (!(
9893 : #line 14432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9894 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT) &&
9895 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9896 : (!TARGET_64BIT)))
9897 : return -1;
9898 : return 937; /* *concatsidi3_3 */
9899 :
9900 : case 1:
9901 : if (!(
9902 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9903 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT
9904 : && (DImode == DImode
9905 : ? CONST_INT_P (operands[3])
9906 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
9907 : : CONST_INT_P (operands[3])
9908 : ? INTVAL (operands[3]) >= 0
9909 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
9910 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
9911 : && !(CONST_INT_P (operands[3])
9912 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
9913 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
9914 : 0)),
9915 : VOIDmode))) &&
9916 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9917 : (!TARGET_64BIT)))
9918 : return -1;
9919 : return 967; /* *concatsidi3_6 */
9920 :
9921 : default:
9922 : return -1;
9923 : }
9924 :
9925 : case ZERO_EXTEND:
9926 : switch (pattern260 (x2,
9927 : E_SImode,
9928 : E_DImode))
9929 : {
9930 : case 0:
9931 : if (!(
9932 : #line 14432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9933 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT) &&
9934 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9935 : (!TARGET_64BIT)))
9936 : return -1;
9937 : return 940; /* *concatsidi3_3 */
9938 :
9939 : case 1:
9940 : if (!(
9941 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9942 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT
9943 : && (DImode == DImode
9944 : ? CONST_INT_P (operands[3])
9945 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
9946 : : CONST_INT_P (operands[3])
9947 : ? INTVAL (operands[3]) >= 0
9948 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
9949 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
9950 : && !(CONST_INT_P (operands[3])
9951 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
9952 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
9953 : 0)),
9954 : VOIDmode))) &&
9955 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9956 : (!TARGET_64BIT)))
9957 : return -1;
9958 : return 970; /* *concatsidi3_6 */
9959 :
9960 : default:
9961 : return -1;
9962 : }
9963 :
9964 : case CONST_INT:
9965 : switch (pattern287 (x2, pnum_clobbers))
9966 : {
9967 : case 0:
9968 : x5 = XEXP (x3, 1);
9969 : operands[2] = x5;
9970 : if (register_operand (operands[2], E_QImode))
9971 : {
9972 : switch (pattern759 (x2))
9973 : {
9974 : case 0:
9975 : if (
9976 : #line 19165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9977 : (TARGET_USE_BT))
9978 : {
9979 : *pnum_clobbers = 1;
9980 : return 1423; /* *btssi */
9981 : }
9982 : break;
9983 :
9984 : case 1:
9985 : if ((
9986 : #line 19165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9987 : (TARGET_USE_BT) &&
9988 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9989 : (TARGET_64BIT)))
9990 : {
9991 : *pnum_clobbers = 1;
9992 : return 1425; /* *btsdi */
9993 : }
9994 : break;
9995 :
9996 : default:
9997 : break;
9998 : }
9999 : }
10000 : if (GET_CODE (x5) != SUBREG)
10001 : return -1;
10002 : switch (pattern768 (x2))
10003 : {
10004 : case 0:
10005 : if (!
10006 : #line 19184 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10007 : (TARGET_USE_BT
10008 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (SImode)-1))
10009 : == GET_MODE_BITSIZE (SImode)-1
10010 : && ix86_pre_reload_split ()))
10011 : return -1;
10012 : *pnum_clobbers = 1;
10013 : return 1427; /* *btssi_mask */
10014 :
10015 : case 1:
10016 : if (!(
10017 : #line 19184 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10018 : (TARGET_USE_BT
10019 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (DImode)-1))
10020 : == GET_MODE_BITSIZE (DImode)-1
10021 : && ix86_pre_reload_split ()) &&
10022 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10023 : (TARGET_64BIT)))
10024 : return -1;
10025 : *pnum_clobbers = 1;
10026 : return 1429; /* *btsdi_mask */
10027 :
10028 : default:
10029 : return -1;
10030 : }
10031 :
10032 : case 1:
10033 : if (!
10034 : #line 19212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10035 : (TARGET_USE_BT
10036 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (SImode)-1))
10037 : == GET_MODE_BITSIZE (SImode)-1
10038 : && ix86_pre_reload_split ()))
10039 : return -1;
10040 : *pnum_clobbers = 1;
10041 : return 1431; /* *btssi_mask_1 */
10042 :
10043 : case 2:
10044 : if (!(
10045 : #line 19212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10046 : (TARGET_USE_BT
10047 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (DImode)-1))
10048 : == GET_MODE_BITSIZE (DImode)-1
10049 : && ix86_pre_reload_split ()) &&
10050 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10051 : (TARGET_64BIT)))
10052 : return -1;
10053 : *pnum_clobbers = 1;
10054 : return 1433; /* *btsdi_mask_1 */
10055 :
10056 : default:
10057 : return -1;
10058 : }
10059 :
10060 : default:
10061 : return -1;
10062 : }
10063 : }
10064 :
10065 : int
10066 : recog_103 (rtx x1 ATTRIBUTE_UNUSED,
10067 : rtx_insn *insn ATTRIBUTE_UNUSED,
10068 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10069 : {
10070 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10071 : rtx x2;
10072 : int res ATTRIBUTE_UNUSED;
10073 : switch (GET_MODE (operands[0]))
10074 : {
10075 : case E_DImode:
10076 : if (pnum_clobbers != NULL)
10077 : {
10078 : x2 = XEXP (x1, 1);
10079 : if (pattern858 (x2,
10080 : E_DImode,
10081 : E_QImode) == 0
10082 : &&
10083 : #line 1196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10084 : (!TARGET_64BIT))
10085 : {
10086 : *pnum_clobbers = 1;
10087 : return 1163; /* ashrdi3_doubleword */
10088 : }
10089 : }
10090 : x2 = XEXP (x1, 1);
10091 : if (GET_MODE (x2) != E_DImode
10092 : || !nonimmediate_operand (operands[1], E_DImode))
10093 : return -1;
10094 : if (nonimmediate_operand (operands[0], E_DImode)
10095 : && const_int_operand (operands[2], E_QImode))
10096 : {
10097 : if ((
10098 : #line 17580 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10099 : (INTVAL (operands[2]) == GET_MODE_BITSIZE (DImode)-1
10100 : && (TARGET_USE_CLTD || optimize_function_for_size_p (cfun))
10101 : && ix86_binary_operator_ok (ASHIFTRT, DImode, operands, TARGET_APX_NDD)
10102 : && TARGET_APX_NF) &&
10103 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10104 : (TARGET_64BIT)))
10105 : return 1200; /* ashrdi3_cvt_nf */
10106 : if (pnum_clobbers != NULL
10107 : && (
10108 : #line 17580 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10109 : (INTVAL (operands[2]) == GET_MODE_BITSIZE (DImode)-1
10110 : && (TARGET_USE_CLTD || optimize_function_for_size_p (cfun))
10111 : && ix86_binary_operator_ok (ASHIFTRT, DImode, operands, TARGET_APX_NDD)
10112 : && true) &&
10113 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10114 : (TARGET_64BIT)))
10115 : {
10116 : *pnum_clobbers = 1;
10117 : return 1201; /* ashrdi3_cvt */
10118 : }
10119 : }
10120 : if (register_operand (operands[0], E_DImode)
10121 : && register_operand (operands[2], E_DImode)
10122 : && (
10123 : #line 17649 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10124 : (TARGET_BMI2) &&
10125 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10126 : (TARGET_64BIT)))
10127 : return 1206; /* *bmi2_ashrdi3_1 */
10128 : if (!nonimmediate_operand (operands[0], E_DImode)
10129 : || !nonmemory_operand (operands[2], E_QImode))
10130 : return -1;
10131 : if ((
10132 : #line 17659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10133 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands, TARGET_APX_NDD)
10134 : && TARGET_APX_NF) &&
10135 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10136 : (TARGET_64BIT)))
10137 : return 1209; /* *ashrdi3_1_nf */
10138 : if (pnum_clobbers == NULL
10139 : || !(
10140 : #line 17659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10141 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands, TARGET_APX_NDD)
10142 : && true) &&
10143 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10144 : (TARGET_64BIT)))
10145 : return -1;
10146 : *pnum_clobbers = 1;
10147 : return 1210; /* *ashrdi3_1 */
10148 :
10149 : case E_SImode:
10150 : x2 = XEXP (x1, 1);
10151 : if (pattern635 (x2,
10152 : E_SImode) != 0)
10153 : return -1;
10154 : if (
10155 : #line 17659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10156 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands, TARGET_APX_NDD)
10157 : && TARGET_APX_NF))
10158 : return 1207; /* *ashrsi3_1_nf */
10159 : if (pnum_clobbers == NULL
10160 : || !
10161 : #line 17659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10162 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands, TARGET_APX_NDD)
10163 : && true))
10164 : return -1;
10165 : *pnum_clobbers = 1;
10166 : return 1208; /* *ashrsi3_1 */
10167 :
10168 : default:
10169 : return -1;
10170 : }
10171 : }
10172 :
10173 : int
10174 : recog_108 (rtx x1 ATTRIBUTE_UNUSED,
10175 : rtx_insn *insn ATTRIBUTE_UNUSED,
10176 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10177 : {
10178 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10179 : rtx x2, x3, x4, x5, x6, x7, x8;
10180 : int res ATTRIBUTE_UNUSED;
10181 : x2 = XEXP (x1, 0);
10182 : if (GET_CODE (x2) == SUBREG
10183 : && known_eq (SUBREG_BYTE (x2), 0))
10184 : {
10185 : x3 = XEXP (x2, 0);
10186 : operands[0] = x3;
10187 : if (register_operand (operands[0], E_QImode))
10188 : {
10189 : x4 = XEXP (x1, 1);
10190 : x5 = XEXP (x4, 2);
10191 : operands[2] = x5;
10192 : if (register_operand (operands[2], E_QImode))
10193 : {
10194 : switch (GET_MODE (x2))
10195 : {
10196 : case E_SImode:
10197 : if (GET_MODE (x4) == E_SImode
10198 : && register_operand (operands[1], E_SImode)
10199 : &&
10200 : #line 19684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10201 : (TARGET_USE_BT && ix86_pre_reload_split ()))
10202 : {
10203 : *pnum_clobbers = 1;
10204 : return 1466; /* *btsi_setcqi */
10205 : }
10206 : break;
10207 :
10208 : case E_DImode:
10209 : if (GET_MODE (x4) == E_DImode
10210 : && register_operand (operands[1], E_DImode)
10211 : && (
10212 : #line 19684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10213 : (TARGET_USE_BT && ix86_pre_reload_split ()) &&
10214 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10215 : (TARGET_64BIT)))
10216 : {
10217 : *pnum_clobbers = 1;
10218 : return 1467; /* *btdi_setcqi */
10219 : }
10220 : break;
10221 :
10222 : default:
10223 : break;
10224 : }
10225 : }
10226 : }
10227 : }
10228 : x4 = XEXP (x1, 1);
10229 : x5 = XEXP (x4, 2);
10230 : if (GET_CODE (x5) != SUBREG
10231 : || maybe_ne (SUBREG_BYTE (x5), 0)
10232 : || GET_MODE (x5) != E_QImode)
10233 : return -1;
10234 : x6 = XEXP (x5, 0);
10235 : if (GET_CODE (x6) != AND)
10236 : return -1;
10237 : operands[0] = x2;
10238 : x7 = XEXP (x6, 0);
10239 : operands[2] = x7;
10240 : x8 = XEXP (x6, 1);
10241 : operands[3] = x8;
10242 : if (!const_int_operand (operands[3], E_VOIDmode))
10243 : return -1;
10244 : switch (GET_MODE (operands[0]))
10245 : {
10246 : case E_SImode:
10247 : if (pattern1465 (x4,
10248 : E_SImode) != 0
10249 : || !
10250 : #line 19765 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10251 : (TARGET_USE_BT
10252 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
10253 : == GET_MODE_BITSIZE (SImode)-1
10254 : && ix86_pre_reload_split ()))
10255 : return -1;
10256 : *pnum_clobbers = 1;
10257 : return 1474; /* *btsi_setcsi_mask */
10258 :
10259 : case E_DImode:
10260 : if (pattern1465 (x4,
10261 : E_DImode) != 0
10262 : || !(
10263 : #line 19765 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10264 : (TARGET_USE_BT
10265 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
10266 : == GET_MODE_BITSIZE (DImode)-1
10267 : && ix86_pre_reload_split ()) &&
10268 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10269 : (TARGET_64BIT)))
10270 : return -1;
10271 : *pnum_clobbers = 1;
10272 : return 1475; /* *btdi_setcdi_mask */
10273 :
10274 : default:
10275 : return -1;
10276 : }
10277 : }
10278 :
10279 : int
10280 : recog_109 (rtx x1 ATTRIBUTE_UNUSED,
10281 : rtx_insn *insn ATTRIBUTE_UNUSED,
10282 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10283 : {
10284 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10285 : rtx x2, x3, x4, x5, x6;
10286 : int res ATTRIBUTE_UNUSED;
10287 : if (pnum_clobbers == NULL)
10288 : return -1;
10289 : x2 = XEXP (x1, 1);
10290 : x3 = XEXP (x2, 1);
10291 : if (GET_CODE (x3) != CONST_INT)
10292 : return -1;
10293 : x4 = XEXP (x2, 0);
10294 : operands[1] = x4;
10295 : if (XWINT (x3, 0) == 1L)
10296 : {
10297 : res = recog_108 (x1, insn, pnum_clobbers);
10298 : if (res >= 0)
10299 : return res;
10300 : }
10301 : x5 = XEXP (x1, 0);
10302 : operands[0] = x5;
10303 : operands[2] = x3;
10304 : if (!const_0_to_255_operand (operands[2], E_QImode))
10305 : return -1;
10306 : x6 = XEXP (x2, 2);
10307 : operands[3] = x6;
10308 : if (!const_0_to_255_operand (operands[3], E_QImode))
10309 : return -1;
10310 : switch (pattern132 (x2))
10311 : {
10312 : case 0:
10313 : if (!
10314 : #line 22524 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10315 : (TARGET_TBM))
10316 : return -1;
10317 : *pnum_clobbers = 1;
10318 : return 1638; /* tbm_bextri_si */
10319 :
10320 : case 1:
10321 : if (!(
10322 : #line 22524 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10323 : (TARGET_TBM) &&
10324 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10325 : (TARGET_64BIT)))
10326 : return -1;
10327 : *pnum_clobbers = 1;
10328 : return 1639; /* tbm_bextri_di */
10329 :
10330 : default:
10331 : return -1;
10332 : }
10333 : }
10334 :
10335 : int
10336 : recog_111 (rtx x1 ATTRIBUTE_UNUSED,
10337 : rtx_insn *insn ATTRIBUTE_UNUSED,
10338 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10339 : {
10340 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10341 : rtx x2, x3, x4, x5;
10342 : int res ATTRIBUTE_UNUSED;
10343 : x2 = XEXP (x1, 1);
10344 : if (GET_MODE (x2) != E_SImode)
10345 : return -1;
10346 : x3 = XEXP (x1, 0);
10347 : operands[0] = x3;
10348 : if (!register_operand (operands[0], E_SImode))
10349 : return -1;
10350 : x4 = XVECEXP (x2, 0, 0);
10351 : switch (GET_CODE (x4))
10352 : {
10353 : case REG:
10354 : case SUBREG:
10355 : operands[1] = x4;
10356 : switch (GET_MODE (operands[1]))
10357 : {
10358 : case E_DFmode:
10359 : if (register_operand (operands[1], E_DFmode)
10360 : &&
10361 : #line 25866 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10362 : (SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH))
10363 : return 1793; /* movmsk_df */
10364 : break;
10365 :
10366 : case E_V8QImode:
10367 : if (register_operand (operands[1], E_V8QImode)
10368 : &&
10369 : #line 6851 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
10370 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
10371 : && (TARGET_SSE || TARGET_3DNOW_A)))
10372 : return 2441; /* mmx_pmovmskb */
10373 : break;
10374 :
10375 : case E_V8SFmode:
10376 : if (register_operand (operands[1], E_V8SFmode)
10377 : && (
10378 : #line 22286 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10379 : (TARGET_SSE) &&
10380 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10381 : (TARGET_AVX)))
10382 : return 8553; /* avx_movmskps256 */
10383 : break;
10384 :
10385 : case E_V4SFmode:
10386 : if (register_operand (operands[1], E_V4SFmode)
10387 : &&
10388 : #line 22286 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10389 : (TARGET_SSE))
10390 : return 8554; /* sse_movmskps */
10391 : break;
10392 :
10393 : case E_V4DFmode:
10394 : if (register_operand (operands[1], E_V4DFmode)
10395 : && (
10396 : #line 22286 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10397 : (TARGET_SSE) &&
10398 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10399 : (TARGET_AVX)))
10400 : return 8555; /* avx_movmskpd256 */
10401 : break;
10402 :
10403 : case E_V2DFmode:
10404 : if (register_operand (operands[1], E_V2DFmode)
10405 : && (
10406 : #line 22286 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10407 : (TARGET_SSE) &&
10408 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10409 : (TARGET_SSE2)))
10410 : return 8556; /* sse2_movmskpd */
10411 : break;
10412 :
10413 : case E_V32QImode:
10414 : if (register_operand (operands[1], E_V32QImode)
10415 : && (
10416 : #line 22436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10417 : (TARGET_SSE2) &&
10418 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10419 : (TARGET_AVX2)))
10420 : return 8601; /* avx2_pmovmskb */
10421 : break;
10422 :
10423 : case E_V16QImode:
10424 : if (register_operand (operands[1], E_V16QImode)
10425 : &&
10426 : #line 22436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10427 : (TARGET_SSE2))
10428 : return 8602; /* sse2_pmovmskb */
10429 : break;
10430 :
10431 : default:
10432 : break;
10433 : }
10434 : if (GET_CODE (x4) != SUBREG
10435 : || maybe_ne (SUBREG_BYTE (x4), 0))
10436 : return -1;
10437 : x5 = XEXP (x4, 0);
10438 : switch (GET_CODE (x5))
10439 : {
10440 : case VEC_MERGE:
10441 : switch (pattern1106 (x4))
10442 : {
10443 : case 0:
10444 : if (!(
10445 : #line 22337 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10446 : (TARGET_SSE) &&
10447 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10448 : (TARGET_AVX)))
10449 : return -1;
10450 : return 8569; /* *avx_movmskps256_lt_avx512 */
10451 :
10452 : case 1:
10453 : if (!
10454 : #line 22337 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10455 : (TARGET_SSE))
10456 : return -1;
10457 : return 8570; /* *sse_movmskps_lt_avx512 */
10458 :
10459 : case 2:
10460 : if (!(
10461 : #line 22337 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10462 : (TARGET_SSE) &&
10463 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10464 : (TARGET_AVX)))
10465 : return -1;
10466 : return 8571; /* *avx_movmskpd256_lt_avx512 */
10467 :
10468 : case 3:
10469 : if (!(
10470 : #line 22337 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10471 : (TARGET_SSE) &&
10472 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10473 : (TARGET_SSE2)))
10474 : return -1;
10475 : return 8572; /* *sse2_movmskpd_lt_avx512 */
10476 :
10477 : default:
10478 : return -1;
10479 : }
10480 :
10481 : case ASHIFTRT:
10482 : switch (pattern1107 (x4))
10483 : {
10484 : case 0:
10485 : if (!(
10486 : #line 22400 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10487 : (TARGET_SSE) &&
10488 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10489 : (TARGET_AVX)))
10490 : return -1;
10491 : return 8589; /* *avx_movmskps256_shift */
10492 :
10493 : case 1:
10494 : if (!
10495 : #line 22400 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10496 : (TARGET_SSE))
10497 : return -1;
10498 : return 8590; /* *sse_movmskps_shift */
10499 :
10500 : case 2:
10501 : if (!(
10502 : #line 22400 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10503 : (TARGET_SSE) &&
10504 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10505 : (TARGET_AVX)))
10506 : return -1;
10507 : return 8591; /* *avx_movmskpd256_shift */
10508 :
10509 : case 3:
10510 : if (!(
10511 : #line 22400 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10512 : (TARGET_SSE) &&
10513 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10514 : (TARGET_SSE2)))
10515 : return -1;
10516 : return 8592; /* *sse2_movmskpd_shift */
10517 :
10518 : default:
10519 : return -1;
10520 : }
10521 :
10522 : default:
10523 : return -1;
10524 : }
10525 :
10526 : case LT:
10527 : switch (pattern769 (x4))
10528 : {
10529 : case 0:
10530 : if (!(
10531 : #line 22313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10532 : (TARGET_SSE) &&
10533 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10534 : (TARGET_AVX)))
10535 : return -1;
10536 : return 8565; /* *avx_movmskps256_lt */
10537 :
10538 : case 1:
10539 : if (!
10540 : #line 22313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10541 : (TARGET_SSE))
10542 : return -1;
10543 : return 8566; /* *sse_movmskps_lt */
10544 :
10545 : case 2:
10546 : if (!(
10547 : #line 22313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10548 : (TARGET_SSE) &&
10549 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10550 : (TARGET_AVX)))
10551 : return -1;
10552 : return 8567; /* *avx_movmskpd256_lt */
10553 :
10554 : case 3:
10555 : if (!(
10556 : #line 22313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10557 : (TARGET_SSE) &&
10558 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10559 : (TARGET_SSE2)))
10560 : return -1;
10561 : return 8568; /* *sse2_movmskpd_lt */
10562 :
10563 : case 4:
10564 : if (!(
10565 : #line 22565 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10566 : (TARGET_SSE2) &&
10567 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10568 : (TARGET_AVX2)))
10569 : return -1;
10570 : return 8607; /* *avx2_pmovmskb_lt */
10571 :
10572 : case 5:
10573 : if (!
10574 : #line 22565 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10575 : (TARGET_SSE2))
10576 : return -1;
10577 : return 8608; /* *sse2_pmovmskb_lt */
10578 :
10579 : default:
10580 : return -1;
10581 : }
10582 :
10583 : case VEC_MERGE:
10584 : switch (pattern771 (x4))
10585 : {
10586 : case 0:
10587 : if (!(
10588 : #line 22593 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10589 : (TARGET_SSE2) &&
10590 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10591 : (TARGET_AVX2)))
10592 : return -1;
10593 : return 8609; /* *avx2_pmovmskb_lt_avx512 */
10594 :
10595 : case 1:
10596 : if (!
10597 : #line 22593 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10598 : (TARGET_SSE2))
10599 : return -1;
10600 : return 8610; /* *sse2_pmovmskb_lt_avx512 */
10601 :
10602 : case 2:
10603 : if (!
10604 : #line 22721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10605 : (TARGET_SSE2 && ix86_pre_reload_split ()))
10606 : return -1;
10607 : return 8618; /* *pmovsk_kmask_v16qi_avx512 */
10608 :
10609 : case 3:
10610 : if (!
10611 : #line 22735 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10612 : (TARGET_SSE2 && ix86_pre_reload_split ()))
10613 : return -1;
10614 : return 8619; /* *pmovsk_mask_v32qi_avx512 */
10615 :
10616 : default:
10617 : return -1;
10618 : }
10619 :
10620 : default:
10621 : return -1;
10622 : }
10623 : }
10624 :
10625 : int
10626 : recog_125 (rtx x1 ATTRIBUTE_UNUSED,
10627 : rtx_insn *insn ATTRIBUTE_UNUSED,
10628 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10629 : {
10630 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10631 : rtx x2, x3, x4, x5, x6;
10632 : int res ATTRIBUTE_UNUSED;
10633 : x2 = XEXP (x1, 1);
10634 : x3 = XEXP (x2, 0);
10635 : x4 = XVECEXP (x3, 0, 0);
10636 : operands[1] = x4;
10637 : x5 = XEXP (x2, 2);
10638 : switch (GET_CODE (x5))
10639 : {
10640 : case REG:
10641 : case SUBREG:
10642 : operands[3] = x5;
10643 : switch (GET_MODE (operands[0]))
10644 : {
10645 : case E_V16SImode:
10646 : if (pattern1003 (x2,
10647 : E_V16SImode,
10648 : E_HImode) != 0
10649 : || !
10650 : #line 1595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10651 : (TARGET_AVX512F))
10652 : return -1;
10653 : return 2506; /* *avx512f_loadv16si_mask */
10654 :
10655 : case E_V8SImode:
10656 : if (pattern1003 (x2,
10657 : E_V8SImode,
10658 : E_QImode) != 0
10659 : || !(
10660 : #line 1595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10661 : (TARGET_AVX512F) &&
10662 : #line 299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10663 : (TARGET_AVX512VL)))
10664 : return -1;
10665 : return 2507; /* *avx512vl_loadv8si_mask */
10666 :
10667 : case E_V4SImode:
10668 : if (pattern1003 (x2,
10669 : E_V4SImode,
10670 : E_QImode) != 0
10671 : || !(
10672 : #line 1595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10673 : (TARGET_AVX512F) &&
10674 : #line 299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10675 : (TARGET_AVX512VL)))
10676 : return -1;
10677 : return 2508; /* *avx512vl_loadv4si_mask */
10678 :
10679 : case E_V8DImode:
10680 : if (pattern1003 (x2,
10681 : E_V8DImode,
10682 : E_QImode) != 0
10683 : || !
10684 : #line 1595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10685 : (TARGET_AVX512F))
10686 : return -1;
10687 : return 2509; /* *avx512f_loadv8di_mask */
10688 :
10689 : case E_V4DImode:
10690 : if (pattern1003 (x2,
10691 : E_V4DImode,
10692 : E_QImode) != 0
10693 : || !(
10694 : #line 1595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10695 : (TARGET_AVX512F) &&
10696 : #line 300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10697 : (TARGET_AVX512VL)))
10698 : return -1;
10699 : return 2510; /* *avx512vl_loadv4di_mask */
10700 :
10701 : case E_V2DImode:
10702 : if (pattern1003 (x2,
10703 : E_V2DImode,
10704 : E_QImode) != 0
10705 : || !(
10706 : #line 1595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10707 : (TARGET_AVX512F) &&
10708 : #line 300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10709 : (TARGET_AVX512VL)))
10710 : return -1;
10711 : return 2511; /* *avx512vl_loadv2di_mask */
10712 :
10713 : case E_V16SFmode:
10714 : if (pattern1003 (x2,
10715 : E_V16SFmode,
10716 : E_HImode) != 0
10717 : || !
10718 : #line 1595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10719 : (TARGET_AVX512F))
10720 : return -1;
10721 : return 2512; /* *avx512f_loadv16sf_mask */
10722 :
10723 : case E_V8SFmode:
10724 : if (pattern1003 (x2,
10725 : E_V8SFmode,
10726 : E_QImode) != 0
10727 : || !(
10728 : #line 1595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10729 : (TARGET_AVX512F) &&
10730 : #line 301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10731 : (TARGET_AVX512VL)))
10732 : return -1;
10733 : return 2513; /* *avx512vl_loadv8sf_mask */
10734 :
10735 : case E_V4SFmode:
10736 : if (pattern1003 (x2,
10737 : E_V4SFmode,
10738 : E_QImode) != 0
10739 : || !(
10740 : #line 1595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10741 : (TARGET_AVX512F) &&
10742 : #line 301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10743 : (TARGET_AVX512VL)))
10744 : return -1;
10745 : return 2514; /* *avx512vl_loadv4sf_mask */
10746 :
10747 : case E_V8DFmode:
10748 : if (pattern1003 (x2,
10749 : E_V8DFmode,
10750 : E_QImode) != 0
10751 : || !
10752 : #line 1595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10753 : (TARGET_AVX512F))
10754 : return -1;
10755 : return 2515; /* *avx512f_loadv8df_mask */
10756 :
10757 : case E_V4DFmode:
10758 : if (pattern1003 (x2,
10759 : E_V4DFmode,
10760 : E_QImode) != 0
10761 : || !(
10762 : #line 1595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10763 : (TARGET_AVX512F) &&
10764 : #line 302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10765 : (TARGET_AVX512VL)))
10766 : return -1;
10767 : return 2516; /* *avx512vl_loadv4df_mask */
10768 :
10769 : case E_V2DFmode:
10770 : if (pattern1003 (x2,
10771 : E_V2DFmode,
10772 : E_QImode) != 0
10773 : || !(
10774 : #line 1595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10775 : (TARGET_AVX512F) &&
10776 : #line 302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10777 : (TARGET_AVX512VL)))
10778 : return -1;
10779 : return 2517; /* *avx512vl_loadv2df_mask */
10780 :
10781 : case E_V64QImode:
10782 : if (pattern1003 (x2,
10783 : E_V64QImode,
10784 : E_DImode) != 0
10785 : || !
10786 : #line 1692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10787 : (TARGET_AVX512BW))
10788 : return -1;
10789 : return 2536; /* *avx512bw_loadv64qi_mask */
10790 :
10791 : case E_V16QImode:
10792 : if (pattern1003 (x2,
10793 : E_V16QImode,
10794 : E_HImode) != 0
10795 : || !(
10796 : #line 1692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10797 : (TARGET_AVX512BW) &&
10798 : #line 332 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10799 : (TARGET_AVX512VL)))
10800 : return -1;
10801 : return 2537; /* *avx512vl_loadv16qi_mask */
10802 :
10803 : case E_V32QImode:
10804 : if (pattern1003 (x2,
10805 : E_V32QImode,
10806 : E_SImode) != 0
10807 : || !(
10808 : #line 1692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10809 : (TARGET_AVX512BW) &&
10810 : #line 332 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10811 : (TARGET_AVX512VL)))
10812 : return -1;
10813 : return 2538; /* *avx512vl_loadv32qi_mask */
10814 :
10815 : case E_V32HImode:
10816 : if (pattern1003 (x2,
10817 : E_V32HImode,
10818 : E_SImode) != 0
10819 : || !
10820 : #line 1692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10821 : (TARGET_AVX512BW))
10822 : return -1;
10823 : return 2539; /* *avx512bw_loadv32hi_mask */
10824 :
10825 : case E_V16HImode:
10826 : if (pattern1003 (x2,
10827 : E_V16HImode,
10828 : E_HImode) != 0
10829 : || !(
10830 : #line 1692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10831 : (TARGET_AVX512BW) &&
10832 : #line 333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10833 : (TARGET_AVX512VL)))
10834 : return -1;
10835 : return 2540; /* *avx512vl_loadv16hi_mask */
10836 :
10837 : case E_V8HImode:
10838 : if (pattern1003 (x2,
10839 : E_V8HImode,
10840 : E_QImode) != 0
10841 : || !(
10842 : #line 1692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10843 : (TARGET_AVX512BW) &&
10844 : #line 333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10845 : (TARGET_AVX512VL)))
10846 : return -1;
10847 : return 2541; /* *avx512vl_loadv8hi_mask */
10848 :
10849 : case E_V32HFmode:
10850 : if (pattern1003 (x2,
10851 : E_V32HFmode,
10852 : E_SImode) != 0
10853 : || !
10854 : #line 1692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10855 : (TARGET_AVX512BW))
10856 : return -1;
10857 : return 2542; /* *avx512bw_loadv32hf_mask */
10858 :
10859 : case E_V16HFmode:
10860 : if (pattern1003 (x2,
10861 : E_V16HFmode,
10862 : E_HImode) != 0
10863 : || !(
10864 : #line 1692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10865 : (TARGET_AVX512BW) &&
10866 : #line 334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10867 : (TARGET_AVX512VL)))
10868 : return -1;
10869 : return 2543; /* *avx512vl_loadv16hf_mask */
10870 :
10871 : case E_V8HFmode:
10872 : if (pattern1003 (x2,
10873 : E_V8HFmode,
10874 : E_QImode) != 0
10875 : || !(
10876 : #line 1692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10877 : (TARGET_AVX512BW) &&
10878 : #line 334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10879 : (TARGET_AVX512VL)))
10880 : return -1;
10881 : return 2544; /* *avx512fp16_loadv8hf_mask */
10882 :
10883 : case E_V32BFmode:
10884 : if (pattern1003 (x2,
10885 : E_V32BFmode,
10886 : E_SImode) != 0
10887 : || !
10888 : #line 1692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10889 : (TARGET_AVX512BW))
10890 : return -1;
10891 : return 2545; /* *avx512bw_loadv32bf_mask */
10892 :
10893 : case E_V16BFmode:
10894 : if (pattern1003 (x2,
10895 : E_V16BFmode,
10896 : E_HImode) != 0
10897 : || !(
10898 : #line 1692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10899 : (TARGET_AVX512BW) &&
10900 : #line 335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10901 : (TARGET_AVX512VL)))
10902 : return -1;
10903 : return 2546; /* *avx512vl_loadv16bf_mask */
10904 :
10905 : case E_V8BFmode:
10906 : if (pattern1003 (x2,
10907 : E_V8BFmode,
10908 : E_QImode) != 0
10909 : || !(
10910 : #line 1692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10911 : (TARGET_AVX512BW) &&
10912 : #line 335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10913 : (TARGET_AVX512VL)))
10914 : return -1;
10915 : return 2547; /* *avx512vl_loadv8bf_mask */
10916 :
10917 : default:
10918 : return -1;
10919 : }
10920 :
10921 : case AND:
10922 : if (GET_MODE (x5) != E_QImode)
10923 : return -1;
10924 : x6 = XEXP (x5, 1);
10925 : if (GET_CODE (x6) != CONST_INT)
10926 : return -1;
10927 : switch (pattern1111 (x2))
10928 : {
10929 : case 0:
10930 : if (!(
10931 : #line 1636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10932 : (TARGET_AVX512F) &&
10933 : #line 521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10934 : (TARGET_AVX512VL)))
10935 : return -1;
10936 : return 2530; /* *avx512vl_loadv4sfmask_and15 */
10937 :
10938 : case 1:
10939 : if (!(
10940 : #line 1636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10941 : (TARGET_AVX512F) &&
10942 : #line 521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10943 : (TARGET_AVX512VL)))
10944 : return -1;
10945 : return 2531; /* *avx512vl_loadv4dfmask_and15 */
10946 :
10947 : case 2:
10948 : if (!(
10949 : #line 1636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10950 : (TARGET_AVX512F) &&
10951 : #line 522 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10952 : (TARGET_AVX512VL)))
10953 : return -1;
10954 : return 2532; /* *avx512vl_loadv4simask_and15 */
10955 :
10956 : case 3:
10957 : if (!(
10958 : #line 1636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10959 : (TARGET_AVX512F) &&
10960 : #line 522 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10961 : (TARGET_AVX512VL)))
10962 : return -1;
10963 : return 2533; /* *avx512vl_loadv4dimask_and15 */
10964 :
10965 : case 4:
10966 : if (!(
10967 : #line 1655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10968 : (TARGET_AVX512F) &&
10969 : #line 528 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10970 : (TARGET_AVX512VL)))
10971 : return -1;
10972 : return 2534; /* *avx512vl_loadv2dfmask_and3 */
10973 :
10974 : case 5:
10975 : if (!(
10976 : #line 1655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10977 : (TARGET_AVX512F) &&
10978 : #line 528 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10979 : (TARGET_AVX512VL)))
10980 : return -1;
10981 : return 2535; /* *avx512vl_loadv2dimask_and3 */
10982 :
10983 : default:
10984 : return -1;
10985 : }
10986 :
10987 : default:
10988 : return -1;
10989 : }
10990 : }
10991 :
10992 : int
10993 : recog_131 (rtx x1 ATTRIBUTE_UNUSED,
10994 : rtx_insn *insn ATTRIBUTE_UNUSED,
10995 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10996 : {
10997 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10998 : rtx x2, x3, x4, x5;
10999 : int res ATTRIBUTE_UNUSED;
11000 : x2 = XEXP (x1, 1);
11001 : x3 = XEXP (x2, 0);
11002 : x4 = XVECEXP (x3, 0, 0);
11003 : operands[1] = x4;
11004 : x5 = XEXP (x2, 2);
11005 : operands[3] = x5;
11006 : switch (GET_MODE (operands[0]))
11007 : {
11008 : case E_V32HFmode:
11009 : if (pattern1001 (x2,
11010 : E_V32HFmode,
11011 : E_SImode) != 0
11012 : || !(
11013 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11014 : (TARGET_AVX512F) && (
11015 : #line 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11016 : (TARGET_AVX512F) &&
11017 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11018 : (TARGET_AVX512FP16))))
11019 : return -1;
11020 : return 7058; /* avx512bw_getexpv32hf_mask */
11021 :
11022 : case E_V16HFmode:
11023 : if (pattern1001 (x2,
11024 : E_V16HFmode,
11025 : E_HImode) != 0
11026 : || !(
11027 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11028 : (TARGET_AVX512F) && (
11029 : #line 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11030 : (TARGET_AVX512F) &&
11031 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11032 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
11033 : return -1;
11034 : return 7062; /* avx512vl_getexpv16hf_mask */
11035 :
11036 : case E_V8HFmode:
11037 : if (pattern1001 (x2,
11038 : E_V8HFmode,
11039 : E_QImode) != 0
11040 : || !(
11041 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11042 : (TARGET_AVX512F) && (
11043 : #line 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11044 : (TARGET_AVX512F) &&
11045 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11046 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
11047 : return -1;
11048 : return 7066; /* avx512fp16_getexpv8hf_mask */
11049 :
11050 : case E_V16SFmode:
11051 : if (pattern1001 (x2,
11052 : E_V16SFmode,
11053 : E_HImode) != 0
11054 : || !
11055 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11056 : (TARGET_AVX512F))
11057 : return -1;
11058 : return 7070; /* avx512f_getexpv16sf_mask */
11059 :
11060 : case E_V8SFmode:
11061 : if (pattern1001 (x2,
11062 : E_V8SFmode,
11063 : E_QImode) != 0
11064 : || !(
11065 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11066 : (TARGET_AVX512F) && (
11067 : #line 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11068 : (TARGET_AVX512F) &&
11069 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11070 : (TARGET_AVX512VL))))
11071 : return -1;
11072 : return 7074; /* avx512vl_getexpv8sf_mask */
11073 :
11074 : case E_V4SFmode:
11075 : if (pattern1001 (x2,
11076 : E_V4SFmode,
11077 : E_QImode) != 0
11078 : || !(
11079 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11080 : (TARGET_AVX512F) && (
11081 : #line 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11082 : (TARGET_AVX512F) &&
11083 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11084 : (TARGET_AVX512VL))))
11085 : return -1;
11086 : return 7078; /* avx512vl_getexpv4sf_mask */
11087 :
11088 : case E_V8DFmode:
11089 : if (pattern1001 (x2,
11090 : E_V8DFmode,
11091 : E_QImode) != 0
11092 : || !
11093 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11094 : (TARGET_AVX512F))
11095 : return -1;
11096 : return 7082; /* avx512f_getexpv8df_mask */
11097 :
11098 : case E_V4DFmode:
11099 : if (pattern1001 (x2,
11100 : E_V4DFmode,
11101 : E_QImode) != 0
11102 : || !(
11103 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11104 : (TARGET_AVX512F) && (
11105 : #line 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11106 : (TARGET_AVX512F) &&
11107 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11108 : (TARGET_AVX512VL))))
11109 : return -1;
11110 : return 7086; /* avx512vl_getexpv4df_mask */
11111 :
11112 : case E_V2DFmode:
11113 : if (pattern1001 (x2,
11114 : E_V2DFmode,
11115 : E_QImode) != 0
11116 : || !(
11117 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11118 : (TARGET_AVX512F) && (
11119 : #line 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11120 : (TARGET_AVX512F) &&
11121 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11122 : (TARGET_AVX512VL))))
11123 : return -1;
11124 : return 7090; /* avx512vl_getexpv2df_mask */
11125 :
11126 : case E_V32BFmode:
11127 : if (pattern638 (x2,
11128 : E_V32BFmode,
11129 : E_SImode) != 0
11130 : || !(
11131 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11132 : (TARGET_AVX512F) &&
11133 : #line 33123 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11134 : (TARGET_AVX10_2)))
11135 : return -1;
11136 : return 10769; /* avx10_2_getexpbf16_v32bf_mask */
11137 :
11138 : case E_V16BFmode:
11139 : if (pattern638 (x2,
11140 : E_V16BFmode,
11141 : E_HImode) != 0
11142 : || !(
11143 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11144 : (TARGET_AVX512F) &&
11145 : #line 33123 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11146 : (TARGET_AVX10_2)))
11147 : return -1;
11148 : return 10771; /* avx10_2_getexpbf16_v16bf_mask */
11149 :
11150 : case E_V8BFmode:
11151 : if (pattern638 (x2,
11152 : E_V8BFmode,
11153 : E_QImode) != 0
11154 : || !(
11155 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11156 : (TARGET_AVX512F) &&
11157 : #line 33123 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11158 : (TARGET_AVX10_2)))
11159 : return -1;
11160 : return 10773; /* avx10_2_getexpbf16_v8bf_mask */
11161 :
11162 : default:
11163 : return -1;
11164 : }
11165 : }
11166 :
11167 : int
11168 : recog_139 (rtx x1 ATTRIBUTE_UNUSED,
11169 : rtx_insn *insn ATTRIBUTE_UNUSED,
11170 : int *pnum_clobbers ATTRIBUTE_UNUSED)
11171 : {
11172 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
11173 : rtx x2;
11174 : int res ATTRIBUTE_UNUSED;
11175 : x2 = XEXP (x1, 1);
11176 : switch (pattern485 (x2))
11177 : {
11178 : case 0:
11179 : if (!
11180 : #line 31191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11181 : (TARGET_AVX512VBMI2))
11182 : return -1;
11183 : return 10329; /* vpshldv_v32hi_mask */
11184 :
11185 : case 1:
11186 : if (!
11187 : #line 31191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11188 : (TARGET_AVX512VBMI2))
11189 : return -1;
11190 : return 10330; /* vpshldv_v16si_mask */
11191 :
11192 : case 2:
11193 : if (!
11194 : #line 31191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11195 : (TARGET_AVX512VBMI2))
11196 : return -1;
11197 : return 10331; /* vpshldv_v8di_mask */
11198 :
11199 : case 3:
11200 : if (!(
11201 : #line 31191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11202 : (TARGET_AVX512VBMI2) &&
11203 : #line 751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11204 : (TARGET_AVX512VL)))
11205 : return -1;
11206 : return 10332; /* vpshldv_v16hi_mask */
11207 :
11208 : case 4:
11209 : if (!(
11210 : #line 31191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11211 : (TARGET_AVX512VBMI2) &&
11212 : #line 751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11213 : (TARGET_AVX512VL)))
11214 : return -1;
11215 : return 10333; /* vpshldv_v8si_mask */
11216 :
11217 : case 5:
11218 : if (!(
11219 : #line 31191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11220 : (TARGET_AVX512VBMI2) &&
11221 : #line 752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11222 : (TARGET_AVX512VL)))
11223 : return -1;
11224 : return 10334; /* vpshldv_v4di_mask */
11225 :
11226 : case 6:
11227 : if (!(
11228 : #line 31191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11229 : (TARGET_AVX512VBMI2) &&
11230 : #line 752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11231 : (TARGET_AVX512VL)))
11232 : return -1;
11233 : return 10335; /* vpshldv_v8hi_mask */
11234 :
11235 : case 7:
11236 : if (!(
11237 : #line 31191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11238 : (TARGET_AVX512VBMI2) &&
11239 : #line 753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11240 : (TARGET_AVX512VL)))
11241 : return -1;
11242 : return 10336; /* vpshldv_v4si_mask */
11243 :
11244 : case 8:
11245 : if (!(
11246 : #line 31191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11247 : (TARGET_AVX512VBMI2) &&
11248 : #line 753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11249 : (TARGET_AVX512VL)))
11250 : return -1;
11251 : return 10337; /* vpshldv_v2di_mask */
11252 :
11253 : case 9:
11254 : if (!
11255 : #line 31221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11256 : (TARGET_AVX512VBMI2))
11257 : return -1;
11258 : return 10338; /* vpshldv_v32hi_maskz_1 */
11259 :
11260 : case 10:
11261 : if (!
11262 : #line 31221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11263 : (TARGET_AVX512VBMI2))
11264 : return -1;
11265 : return 10339; /* vpshldv_v16si_maskz_1 */
11266 :
11267 : case 11:
11268 : if (!
11269 : #line 31221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11270 : (TARGET_AVX512VBMI2))
11271 : return -1;
11272 : return 10340; /* vpshldv_v8di_maskz_1 */
11273 :
11274 : case 12:
11275 : if (!(
11276 : #line 31221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11277 : (TARGET_AVX512VBMI2) &&
11278 : #line 751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11279 : (TARGET_AVX512VL)))
11280 : return -1;
11281 : return 10341; /* vpshldv_v16hi_maskz_1 */
11282 :
11283 : case 13:
11284 : if (!(
11285 : #line 31221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11286 : (TARGET_AVX512VBMI2) &&
11287 : #line 751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11288 : (TARGET_AVX512VL)))
11289 : return -1;
11290 : return 10342; /* vpshldv_v8si_maskz_1 */
11291 :
11292 : case 14:
11293 : if (!(
11294 : #line 31221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11295 : (TARGET_AVX512VBMI2) &&
11296 : #line 752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11297 : (TARGET_AVX512VL)))
11298 : return -1;
11299 : return 10343; /* vpshldv_v4di_maskz_1 */
11300 :
11301 : case 15:
11302 : if (!(
11303 : #line 31221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11304 : (TARGET_AVX512VBMI2) &&
11305 : #line 752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11306 : (TARGET_AVX512VL)))
11307 : return -1;
11308 : return 10344; /* vpshldv_v8hi_maskz_1 */
11309 :
11310 : case 16:
11311 : if (!(
11312 : #line 31221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11313 : (TARGET_AVX512VBMI2) &&
11314 : #line 753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11315 : (TARGET_AVX512VL)))
11316 : return -1;
11317 : return 10345; /* vpshldv_v4si_maskz_1 */
11318 :
11319 : case 17:
11320 : if (!(
11321 : #line 31221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11322 : (TARGET_AVX512VBMI2) &&
11323 : #line 753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11324 : (TARGET_AVX512VL)))
11325 : return -1;
11326 : return 10346; /* vpshldv_v2di_maskz_1 */
11327 :
11328 : default:
11329 : return -1;
11330 : }
11331 : }
11332 :
11333 : int
11334 : recog_143 (rtx x1 ATTRIBUTE_UNUSED,
11335 : rtx_insn *insn ATTRIBUTE_UNUSED,
11336 : int *pnum_clobbers ATTRIBUTE_UNUSED)
11337 : {
11338 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
11339 : rtx x2, x3, x4, x5, x6, x7, x8;
11340 : int res ATTRIBUTE_UNUSED;
11341 : x2 = XEXP (x1, 1);
11342 : x3 = XEXP (x2, 0);
11343 : x4 = XVECEXP (x3, 0, 0);
11344 : operands[1] = x4;
11345 : x5 = XVECEXP (x3, 0, 1);
11346 : operands[2] = x5;
11347 : x6 = XVECEXP (x3, 0, 2);
11348 : operands[3] = x6;
11349 : x7 = XEXP (x2, 1);
11350 : switch (GET_CODE (x7))
11351 : {
11352 : case REG:
11353 : case SUBREG:
11354 : if (!rtx_equal_p (x7, operands[1]))
11355 : return -1;
11356 : x8 = XEXP (x2, 2);
11357 : operands[4] = x8;
11358 : switch (GET_MODE (operands[0]))
11359 : {
11360 : case E_V16SFmode:
11361 : if (pattern482 (x2,
11362 : E_V16SFmode,
11363 : E_HImode) != 0
11364 : || !
11365 : #line 32765 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11366 : (TARGET_AVX10_2))
11367 : return -1;
11368 : return 10654; /* vdpphps_v16sf_mask */
11369 :
11370 : case E_V8SFmode:
11371 : if (pattern482 (x2,
11372 : E_V8SFmode,
11373 : E_QImode) != 0
11374 : || !(
11375 : #line 32765 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11376 : (TARGET_AVX10_2) &&
11377 : #line 534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11378 : (TARGET_AVX512VL)))
11379 : return -1;
11380 : return 10655; /* vdpphps_v8sf_mask */
11381 :
11382 : case E_V4SFmode:
11383 : if (pattern482 (x2,
11384 : E_V4SFmode,
11385 : E_QImode) != 0
11386 : || !(
11387 : #line 32765 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11388 : (TARGET_AVX10_2) &&
11389 : #line 534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11390 : (TARGET_AVX512VL)))
11391 : return -1;
11392 : return 10656; /* vdpphps_v4sf_mask */
11393 :
11394 : default:
11395 : return -1;
11396 : }
11397 :
11398 : case CONST_INT:
11399 : case CONST_DOUBLE:
11400 : case CONST_VECTOR:
11401 : operands[4] = x7;
11402 : x8 = XEXP (x2, 2);
11403 : operands[5] = x8;
11404 : switch (GET_MODE (operands[0]))
11405 : {
11406 : case E_V16SFmode:
11407 : if (pattern484 (x2,
11408 : E_V16SFmode,
11409 : E_HImode) != 0
11410 : || !
11411 : #line 32792 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11412 : (TARGET_AVX10_2))
11413 : return -1;
11414 : return 10657; /* vdpphps_v16sf_maskz_1 */
11415 :
11416 : case E_V8SFmode:
11417 : if (pattern484 (x2,
11418 : E_V8SFmode,
11419 : E_QImode) != 0
11420 : || !(
11421 : #line 32792 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11422 : (TARGET_AVX10_2) &&
11423 : #line 534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11424 : (TARGET_AVX512VL)))
11425 : return -1;
11426 : return 10658; /* vdpphps_v8sf_maskz_1 */
11427 :
11428 : case E_V4SFmode:
11429 : if (pattern484 (x2,
11430 : E_V4SFmode,
11431 : E_QImode) != 0
11432 : || !(
11433 : #line 32792 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11434 : (TARGET_AVX10_2) &&
11435 : #line 534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11436 : (TARGET_AVX512VL)))
11437 : return -1;
11438 : return 10659; /* vdpphps_v4sf_maskz_1 */
11439 :
11440 : default:
11441 : return -1;
11442 : }
11443 :
11444 : default:
11445 : return -1;
11446 : }
11447 : }
11448 :
11449 : int
11450 : recog_150 (rtx x1 ATTRIBUTE_UNUSED,
11451 : rtx_insn *insn ATTRIBUTE_UNUSED,
11452 : int *pnum_clobbers ATTRIBUTE_UNUSED)
11453 : {
11454 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
11455 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
11456 : rtx x10, x11, x12, x13;
11457 : int res ATTRIBUTE_UNUSED;
11458 : x2 = XEXP (x1, 1);
11459 : x3 = XEXP (x2, 2);
11460 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
11461 : return -1;
11462 : x4 = XEXP (x2, 0);
11463 : x5 = XEXP (x4, 2);
11464 : if (!register_operand (x5, E_QImode))
11465 : return -1;
11466 : x6 = XEXP (x4, 0);
11467 : x7 = XEXP (x6, 0);
11468 : switch (GET_CODE (x7))
11469 : {
11470 : case REG:
11471 : case SUBREG:
11472 : case MEM:
11473 : operands[1] = x7;
11474 : x8 = XEXP (x6, 1);
11475 : operands[2] = x8;
11476 : x9 = XEXP (x6, 2);
11477 : switch (GET_CODE (x9))
11478 : {
11479 : case REG:
11480 : case SUBREG:
11481 : case MEM:
11482 : operands[3] = x9;
11483 : switch (pattern1224 (x2))
11484 : {
11485 : case 0:
11486 : if (pattern1471 (x2,
11487 : E_V8HFmode) != 0)
11488 : return -1;
11489 : x10 = XEXP (x4, 1);
11490 : if (rtx_equal_p (x10, operands[1]))
11491 : {
11492 : x11 = XEXP (x2, 1);
11493 : if (rtx_equal_p (x11, operands[1])
11494 : && (
11495 : #line 7018 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11496 : (TARGET_AVX512F) &&
11497 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11498 : (TARGET_AVX512FP16)))
11499 : return 4282; /* avx512f_vmfmadd_v8hf_mask */
11500 : }
11501 : if (!rtx_equal_p (x10, operands[3]))
11502 : return -1;
11503 : x11 = XEXP (x2, 1);
11504 : if (!rtx_equal_p (x11, operands[3])
11505 : || !(
11506 : #line 7038 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11507 : (TARGET_AVX512F) &&
11508 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11509 : (TARGET_AVX512FP16)))
11510 : return -1;
11511 : return 4288; /* avx512f_vmfmadd_v8hf_mask3 */
11512 :
11513 : case 1:
11514 : if (pattern1471 (x2,
11515 : E_V4SFmode) != 0)
11516 : return -1;
11517 : x10 = XEXP (x4, 1);
11518 : if (rtx_equal_p (x10, operands[1]))
11519 : {
11520 : x11 = XEXP (x2, 1);
11521 : if (rtx_equal_p (x11, operands[1])
11522 : &&
11523 : #line 7018 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11524 : (TARGET_AVX512F))
11525 : return 4284; /* avx512f_vmfmadd_v4sf_mask */
11526 : }
11527 : if (!rtx_equal_p (x10, operands[3]))
11528 : return -1;
11529 : x11 = XEXP (x2, 1);
11530 : if (!rtx_equal_p (x11, operands[3])
11531 : || !
11532 : #line 7038 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11533 : (TARGET_AVX512F))
11534 : return -1;
11535 : return 4290; /* avx512f_vmfmadd_v4sf_mask3 */
11536 :
11537 : case 2:
11538 : if (pattern1471 (x2,
11539 : E_V2DFmode) != 0)
11540 : return -1;
11541 : x10 = XEXP (x4, 1);
11542 : if (rtx_equal_p (x10, operands[1]))
11543 : {
11544 : x11 = XEXP (x2, 1);
11545 : if (rtx_equal_p (x11, operands[1])
11546 : && (
11547 : #line 7018 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11548 : (TARGET_AVX512F) &&
11549 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11550 : (TARGET_SSE2)))
11551 : return 4286; /* avx512f_vmfmadd_v2df_mask */
11552 : }
11553 : if (!rtx_equal_p (x10, operands[3]))
11554 : return -1;
11555 : x11 = XEXP (x2, 1);
11556 : if (!rtx_equal_p (x11, operands[3])
11557 : || !(
11558 : #line 7038 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11559 : (TARGET_AVX512F) &&
11560 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11561 : (TARGET_SSE2)))
11562 : return -1;
11563 : return 4292; /* avx512f_vmfmadd_v2df_mask3 */
11564 :
11565 : case 3:
11566 : if (pattern1552 (x2,
11567 : E_V8HFmode) != 0
11568 : || !(
11569 : #line 7070 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11570 : (TARGET_AVX512F) &&
11571 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11572 : (TARGET_AVX512FP16)))
11573 : return -1;
11574 : return 4294; /* avx512f_vmfmadd_v8hf_maskz_1 */
11575 :
11576 : case 4:
11577 : if (pattern1552 (x2,
11578 : E_V4SFmode) != 0
11579 : || !
11580 : #line 7070 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11581 : (TARGET_AVX512F))
11582 : return -1;
11583 : return 4296; /* avx512f_vmfmadd_v4sf_maskz_1 */
11584 :
11585 : case 5:
11586 : if (pattern1552 (x2,
11587 : E_V2DFmode) != 0
11588 : || !(
11589 : #line 7070 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11590 : (TARGET_AVX512F) &&
11591 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11592 : (TARGET_SSE2)))
11593 : return -1;
11594 : return 4298; /* avx512f_vmfmadd_v2df_maskz_1 */
11595 :
11596 : default:
11597 : return -1;
11598 : }
11599 :
11600 : case NEG:
11601 : x12 = XEXP (x9, 0);
11602 : operands[3] = x12;
11603 : switch (pattern1224 (x2))
11604 : {
11605 : case 0:
11606 : if (pattern1472 (x2,
11607 : E_V8HFmode) != 0)
11608 : return -1;
11609 : x10 = XEXP (x4, 1);
11610 : if (rtx_equal_p (x10, operands[1]))
11611 : {
11612 : x11 = XEXP (x2, 1);
11613 : if (rtx_equal_p (x11, operands[1])
11614 : && (
11615 : #line 7091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11616 : (TARGET_AVX512F) &&
11617 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11618 : (TARGET_AVX512FP16)))
11619 : return 4300; /* *avx512f_vmfmsub_v8hf_mask */
11620 : }
11621 : if (!rtx_equal_p (x10, operands[3]))
11622 : return -1;
11623 : x11 = XEXP (x2, 1);
11624 : if (!rtx_equal_p (x11, operands[3])
11625 : || !(
11626 : #line 7112 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11627 : (TARGET_AVX512F) &&
11628 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11629 : (TARGET_AVX512FP16)))
11630 : return -1;
11631 : return 4306; /* avx512f_vmfmsub_v8hf_mask3 */
11632 :
11633 : case 1:
11634 : if (pattern1472 (x2,
11635 : E_V4SFmode) != 0)
11636 : return -1;
11637 : x10 = XEXP (x4, 1);
11638 : if (rtx_equal_p (x10, operands[1]))
11639 : {
11640 : x11 = XEXP (x2, 1);
11641 : if (rtx_equal_p (x11, operands[1])
11642 : &&
11643 : #line 7091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11644 : (TARGET_AVX512F))
11645 : return 4302; /* *avx512f_vmfmsub_v4sf_mask */
11646 : }
11647 : if (!rtx_equal_p (x10, operands[3]))
11648 : return -1;
11649 : x11 = XEXP (x2, 1);
11650 : if (!rtx_equal_p (x11, operands[3])
11651 : || !
11652 : #line 7112 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11653 : (TARGET_AVX512F))
11654 : return -1;
11655 : return 4308; /* avx512f_vmfmsub_v4sf_mask3 */
11656 :
11657 : case 2:
11658 : if (pattern1472 (x2,
11659 : E_V2DFmode) != 0)
11660 : return -1;
11661 : x10 = XEXP (x4, 1);
11662 : if (rtx_equal_p (x10, operands[1]))
11663 : {
11664 : x11 = XEXP (x2, 1);
11665 : if (rtx_equal_p (x11, operands[1])
11666 : && (
11667 : #line 7091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11668 : (TARGET_AVX512F) &&
11669 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11670 : (TARGET_SSE2)))
11671 : return 4304; /* *avx512f_vmfmsub_v2df_mask */
11672 : }
11673 : if (!rtx_equal_p (x10, operands[3]))
11674 : return -1;
11675 : x11 = XEXP (x2, 1);
11676 : if (!rtx_equal_p (x11, operands[3])
11677 : || !(
11678 : #line 7112 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11679 : (TARGET_AVX512F) &&
11680 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11681 : (TARGET_SSE2)))
11682 : return -1;
11683 : return 4310; /* avx512f_vmfmsub_v2df_mask3 */
11684 :
11685 : case 3:
11686 : if (pattern1553 (x2,
11687 : E_V8HFmode) != 0
11688 : || !(
11689 : #line 7131 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11690 : (TARGET_AVX512F) &&
11691 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11692 : (TARGET_AVX512FP16)))
11693 : return -1;
11694 : return 4312; /* *avx512f_vmfmsub_v8hf_maskz_1 */
11695 :
11696 : case 4:
11697 : if (pattern1553 (x2,
11698 : E_V4SFmode) != 0
11699 : || !
11700 : #line 7131 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11701 : (TARGET_AVX512F))
11702 : return -1;
11703 : return 4314; /* *avx512f_vmfmsub_v4sf_maskz_1 */
11704 :
11705 : case 5:
11706 : if (pattern1553 (x2,
11707 : E_V2DFmode) != 0
11708 : || !(
11709 : #line 7131 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11710 : (TARGET_AVX512F) &&
11711 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11712 : (TARGET_SSE2)))
11713 : return -1;
11714 : return 4316; /* *avx512f_vmfmsub_v2df_maskz_1 */
11715 :
11716 : default:
11717 : return -1;
11718 : }
11719 :
11720 : default:
11721 : return -1;
11722 : }
11723 :
11724 : case NEG:
11725 : x9 = XEXP (x6, 2);
11726 : switch (GET_CODE (x9))
11727 : {
11728 : case REG:
11729 : case SUBREG:
11730 : case MEM:
11731 : operands[3] = x9;
11732 : switch (pattern1009 (x2))
11733 : {
11734 : case 0:
11735 : x8 = XEXP (x6, 1);
11736 : operands[2] = x8;
11737 : x13 = XEXP (x7, 0);
11738 : operands[1] = x13;
11739 : if (nonimmediate_operand (operands[3], E_V8HFmode))
11740 : {
11741 : x10 = XEXP (x4, 1);
11742 : if (rtx_equal_p (x10, operands[1]))
11743 : {
11744 : x11 = XEXP (x2, 1);
11745 : if (rtx_equal_p (x11, operands[1])
11746 : && (
11747 : #line 7152 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11748 : (TARGET_AVX512F) &&
11749 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11750 : (TARGET_AVX512FP16)))
11751 : return 4318; /* avx512f_vmfnmadd_v8hf_mask */
11752 : }
11753 : }
11754 : operands[1] = x8;
11755 : operands[2] = x13;
11756 : if (!nonimmediate_operand (operands[3], E_V8HFmode))
11757 : return -1;
11758 : x10 = XEXP (x4, 1);
11759 : if (!rtx_equal_p (x10, operands[3]))
11760 : return -1;
11761 : x11 = XEXP (x2, 1);
11762 : if (!rtx_equal_p (x11, operands[3])
11763 : || !(
11764 : #line 7173 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11765 : (TARGET_AVX512F) &&
11766 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11767 : (TARGET_AVX512FP16)))
11768 : return -1;
11769 : return 4324; /* avx512f_vmfnmadd_v8hf_mask3 */
11770 :
11771 : case 1:
11772 : x8 = XEXP (x6, 1);
11773 : operands[2] = x8;
11774 : x13 = XEXP (x7, 0);
11775 : operands[1] = x13;
11776 : if (nonimmediate_operand (operands[3], E_V4SFmode))
11777 : {
11778 : x10 = XEXP (x4, 1);
11779 : if (rtx_equal_p (x10, operands[1]))
11780 : {
11781 : x11 = XEXP (x2, 1);
11782 : if (rtx_equal_p (x11, operands[1])
11783 : &&
11784 : #line 7152 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11785 : (TARGET_AVX512F))
11786 : return 4320; /* avx512f_vmfnmadd_v4sf_mask */
11787 : }
11788 : }
11789 : operands[1] = x8;
11790 : operands[2] = x13;
11791 : if (!nonimmediate_operand (operands[3], E_V4SFmode))
11792 : return -1;
11793 : x10 = XEXP (x4, 1);
11794 : if (!rtx_equal_p (x10, operands[3]))
11795 : return -1;
11796 : x11 = XEXP (x2, 1);
11797 : if (!rtx_equal_p (x11, operands[3])
11798 : || !
11799 : #line 7173 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11800 : (TARGET_AVX512F))
11801 : return -1;
11802 : return 4326; /* avx512f_vmfnmadd_v4sf_mask3 */
11803 :
11804 : case 2:
11805 : x8 = XEXP (x6, 1);
11806 : operands[2] = x8;
11807 : x13 = XEXP (x7, 0);
11808 : operands[1] = x13;
11809 : if (nonimmediate_operand (operands[3], E_V2DFmode))
11810 : {
11811 : x10 = XEXP (x4, 1);
11812 : if (rtx_equal_p (x10, operands[1]))
11813 : {
11814 : x11 = XEXP (x2, 1);
11815 : if (rtx_equal_p (x11, operands[1])
11816 : && (
11817 : #line 7152 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11818 : (TARGET_AVX512F) &&
11819 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11820 : (TARGET_SSE2)))
11821 : return 4322; /* avx512f_vmfnmadd_v2df_mask */
11822 : }
11823 : }
11824 : operands[1] = x8;
11825 : operands[2] = x13;
11826 : if (!nonimmediate_operand (operands[3], E_V2DFmode))
11827 : return -1;
11828 : x10 = XEXP (x4, 1);
11829 : if (!rtx_equal_p (x10, operands[3]))
11830 : return -1;
11831 : x11 = XEXP (x2, 1);
11832 : if (!rtx_equal_p (x11, operands[3])
11833 : || !(
11834 : #line 7173 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11835 : (TARGET_AVX512F) &&
11836 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11837 : (TARGET_SSE2)))
11838 : return -1;
11839 : return 4328; /* avx512f_vmfnmadd_v2df_mask3 */
11840 :
11841 : case 3:
11842 : if (pattern1554 (x2,
11843 : E_V8HFmode) != 0
11844 : || !(
11845 : #line 7206 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11846 : (TARGET_AVX512F) &&
11847 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11848 : (TARGET_AVX512FP16)))
11849 : return -1;
11850 : return 4330; /* avx512f_vmfnmadd_v8hf_maskz_1 */
11851 :
11852 : case 4:
11853 : if (pattern1554 (x2,
11854 : E_V4SFmode) != 0
11855 : || !
11856 : #line 7206 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11857 : (TARGET_AVX512F))
11858 : return -1;
11859 : return 4332; /* avx512f_vmfnmadd_v4sf_maskz_1 */
11860 :
11861 : case 5:
11862 : if (pattern1554 (x2,
11863 : E_V2DFmode) != 0
11864 : || !(
11865 : #line 7206 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11866 : (TARGET_AVX512F) &&
11867 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11868 : (TARGET_SSE2)))
11869 : return -1;
11870 : return 4334; /* avx512f_vmfnmadd_v2df_maskz_1 */
11871 :
11872 : default:
11873 : return -1;
11874 : }
11875 :
11876 : case NEG:
11877 : x12 = XEXP (x9, 0);
11878 : operands[3] = x12;
11879 : switch (pattern1009 (x2))
11880 : {
11881 : case 0:
11882 : x8 = XEXP (x6, 1);
11883 : operands[2] = x8;
11884 : if (pattern1716 (x2,
11885 : E_V8HFmode) == 0
11886 : && (
11887 : #line 7228 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11888 : (TARGET_AVX512F) &&
11889 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11890 : (TARGET_AVX512FP16)))
11891 : return 4336; /* *avx512f_vmfnmsub_v8hf_mask */
11892 : operands[1] = x8;
11893 : if (pattern1717 (x2,
11894 : E_V8HFmode) != 0
11895 : || !(
11896 : #line 7250 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11897 : (TARGET_AVX512F) &&
11898 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11899 : (TARGET_AVX512FP16)))
11900 : return -1;
11901 : return 4342; /* *avx512f_vmfnmsub_v8hf_mask3 */
11902 :
11903 : case 1:
11904 : x8 = XEXP (x6, 1);
11905 : operands[2] = x8;
11906 : if (pattern1716 (x2,
11907 : E_V4SFmode) == 0
11908 : &&
11909 : #line 7228 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11910 : (TARGET_AVX512F))
11911 : return 4338; /* *avx512f_vmfnmsub_v4sf_mask */
11912 : operands[1] = x8;
11913 : if (pattern1717 (x2,
11914 : E_V4SFmode) != 0
11915 : || !
11916 : #line 7250 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11917 : (TARGET_AVX512F))
11918 : return -1;
11919 : return 4344; /* *avx512f_vmfnmsub_v4sf_mask3 */
11920 :
11921 : case 2:
11922 : x8 = XEXP (x6, 1);
11923 : operands[2] = x8;
11924 : if (pattern1716 (x2,
11925 : E_V2DFmode) == 0
11926 : && (
11927 : #line 7228 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11928 : (TARGET_AVX512F) &&
11929 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11930 : (TARGET_SSE2)))
11931 : return 4340; /* *avx512f_vmfnmsub_v2df_mask */
11932 : operands[1] = x8;
11933 : if (pattern1717 (x2,
11934 : E_V2DFmode) != 0
11935 : || !(
11936 : #line 7250 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11937 : (TARGET_AVX512F) &&
11938 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11939 : (TARGET_SSE2)))
11940 : return -1;
11941 : return 4346; /* *avx512f_vmfnmsub_v2df_mask3 */
11942 :
11943 : case 3:
11944 : if (pattern1555 (x2,
11945 : E_V8HFmode) != 0
11946 : || !(
11947 : #line 7270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11948 : (TARGET_AVX512F) &&
11949 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11950 : (TARGET_AVX512FP16)))
11951 : return -1;
11952 : return 4348; /* *avx512f_vmfnmsub_v8hf_maskz_1 */
11953 :
11954 : case 4:
11955 : if (pattern1555 (x2,
11956 : E_V4SFmode) != 0
11957 : || !
11958 : #line 7270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11959 : (TARGET_AVX512F))
11960 : return -1;
11961 : return 4350; /* *avx512f_vmfnmsub_v4sf_maskz_1 */
11962 :
11963 : case 5:
11964 : if (pattern1555 (x2,
11965 : E_V2DFmode) != 0
11966 : || !(
11967 : #line 7270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11968 : (TARGET_AVX512F) &&
11969 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11970 : (TARGET_SSE2)))
11971 : return -1;
11972 : return 4352; /* *avx512f_vmfnmsub_v2df_maskz_1 */
11973 :
11974 : default:
11975 : return -1;
11976 : }
11977 :
11978 : default:
11979 : return -1;
11980 : }
11981 :
11982 : default:
11983 : return -1;
11984 : }
11985 : }
11986 :
11987 : int
11988 : recog_162 (rtx x1 ATTRIBUTE_UNUSED,
11989 : rtx_insn *insn ATTRIBUTE_UNUSED,
11990 : int *pnum_clobbers ATTRIBUTE_UNUSED)
11991 : {
11992 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
11993 : rtx x2, x3;
11994 : int res ATTRIBUTE_UNUSED;
11995 : x2 = XEXP (x1, 1);
11996 : switch (pattern649 (x2))
11997 : {
11998 : case 0:
11999 : if (pattern1390 (x2,
12000 : E_V32HFmode,
12001 : E_SImode) != 0
12002 : || !(
12003 : #line 6392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12004 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && 1) &&
12005 : #line 6276 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12006 : (TARGET_AVX512FP16)))
12007 : return -1;
12008 : return 3940; /* fma_fmsub_v32hf_maskz_1 */
12009 :
12010 : case 1:
12011 : if (pattern1390 (x2,
12012 : E_V16HFmode,
12013 : E_HImode) != 0
12014 : || !(
12015 : #line 6392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12016 : (TARGET_AVX512F && (32 == 64 || TARGET_AVX512VL) && 1) &&
12017 : #line 6277 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12018 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
12019 : return -1;
12020 : return 3944; /* fma_fmsub_v16hf_maskz_1 */
12021 :
12022 : case 2:
12023 : if (pattern1390 (x2,
12024 : E_V8HFmode,
12025 : E_QImode) != 0
12026 : || !(
12027 : #line 6392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12028 : (TARGET_AVX512F && (16 == 64 || TARGET_AVX512VL) && 1) &&
12029 : #line 6278 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12030 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
12031 : return -1;
12032 : return 3946; /* fma_fmsub_v8hf_maskz_1 */
12033 :
12034 : case 3:
12035 : if (pattern1390 (x2,
12036 : E_V16SFmode,
12037 : E_HImode) != 0
12038 : || !
12039 : #line 6392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12040 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && 1))
12041 : return -1;
12042 : return 3950; /* fma_fmsub_v16sf_maskz_1 */
12043 :
12044 : case 4:
12045 : if (pattern1390 (x2,
12046 : E_V8SFmode,
12047 : E_QImode) != 0
12048 : || !(
12049 : #line 6392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12050 : (TARGET_AVX512F && (32 == 64 || TARGET_AVX512VL) && 1) &&
12051 : #line 6280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12052 : (TARGET_AVX512VL)))
12053 : return -1;
12054 : return 3954; /* fma_fmsub_v8sf_maskz_1 */
12055 :
12056 : case 5:
12057 : if (pattern1390 (x2,
12058 : E_V4SFmode,
12059 : E_QImode) != 0
12060 : || !(
12061 : #line 6392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12062 : (TARGET_AVX512F && (16 == 64 || TARGET_AVX512VL) && 1) &&
12063 : #line 6280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12064 : (TARGET_AVX512VL)))
12065 : return -1;
12066 : return 3956; /* fma_fmsub_v4sf_maskz_1 */
12067 :
12068 : case 6:
12069 : if (pattern1390 (x2,
12070 : E_V8DFmode,
12071 : E_QImode) != 0
12072 : || !
12073 : #line 6392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12074 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && 1))
12075 : return -1;
12076 : return 3959; /* fma_fmsub_v8df_maskz_1 */
12077 :
12078 : case 7:
12079 : if (pattern1390 (x2,
12080 : E_V4DFmode,
12081 : E_QImode) != 0
12082 : || !(
12083 : #line 6392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12084 : (TARGET_AVX512F && (32 == 64 || TARGET_AVX512VL) && 1) &&
12085 : #line 6281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12086 : (TARGET_AVX512VL)))
12087 : return -1;
12088 : return 3963; /* fma_fmsub_v4df_maskz_1 */
12089 :
12090 : case 8:
12091 : if (pattern1390 (x2,
12092 : E_V2DFmode,
12093 : E_QImode) != 0
12094 : || !(
12095 : #line 6392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12096 : (TARGET_AVX512F && (16 == 64 || TARGET_AVX512VL) && 1) &&
12097 : #line 6281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12098 : (TARGET_AVX512VL)))
12099 : return -1;
12100 : return 3965; /* fma_fmsub_v2df_maskz_1 */
12101 :
12102 : case 9:
12103 : if (pattern1392 (x2,
12104 : E_SImode,
12105 : E_V32BFmode) != 0
12106 : || !
12107 : #line 32981 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12108 : (TARGET_AVX10_2))
12109 : return -1;
12110 : return 10727; /* avx10_2_fmsubbf16_v32bf_maskz_1 */
12111 :
12112 : case 10:
12113 : if (pattern1392 (x2,
12114 : E_HImode,
12115 : E_V16BFmode) != 0
12116 : || !
12117 : #line 32981 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12118 : (TARGET_AVX10_2))
12119 : return -1;
12120 : return 10729; /* avx10_2_fmsubbf16_v16bf_maskz_1 */
12121 :
12122 : case 11:
12123 : if (pattern1392 (x2,
12124 : E_QImode,
12125 : E_V8BFmode) != 0
12126 : || !
12127 : #line 32981 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12128 : (TARGET_AVX10_2))
12129 : return -1;
12130 : return 10731; /* avx10_2_fmsubbf16_v8bf_maskz_1 */
12131 :
12132 : case 12:
12133 : if (pattern1394 (x2,
12134 : E_V4SFmode) != 0
12135 : || !
12136 : #line 7318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12137 : (TARGET_FMA4))
12138 : return -1;
12139 : return 4356; /* *fma4i_vmfmsub_v4sf */
12140 :
12141 : case 13:
12142 : if (pattern1394 (x2,
12143 : E_V2DFmode) != 0
12144 : || !(
12145 : #line 7318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12146 : (TARGET_FMA4) &&
12147 : #line 473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12148 : (TARGET_SSE2)))
12149 : return -1;
12150 : return 4357; /* *fma4i_vmfmsub_v2df */
12151 :
12152 : case 14:
12153 : if (pattern1298 (x2,
12154 : E_V32HFmode,
12155 : E_SImode) != 0)
12156 : return -1;
12157 : if (nonimmediate_operand (operands[1], E_V32HFmode)
12158 : && vector_operand (operands[3], E_V32HFmode))
12159 : {
12160 : x3 = XEXP (x2, 1);
12161 : if (rtx_equal_p (x3, operands[1])
12162 : && (
12163 : #line 6435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12164 : (TARGET_AVX512F) &&
12165 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12166 : (TARGET_AVX512FP16)))
12167 : return 3966; /* avx512bw_fmsub_v32hf_mask */
12168 : }
12169 : if (!vector_operand (operands[1], E_V32HFmode)
12170 : || !nonimmediate_operand (operands[3], E_V32HFmode))
12171 : return -1;
12172 : x3 = XEXP (x2, 1);
12173 : if (!rtx_equal_p (x3, operands[3])
12174 : || !(
12175 : #line 6453 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12176 : (TARGET_AVX512F && 1) &&
12177 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12178 : (TARGET_AVX512FP16)))
12179 : return -1;
12180 : return 3984; /* avx512bw_fmsub_v32hf_mask3 */
12181 :
12182 : case 15:
12183 : if (pattern1298 (x2,
12184 : E_V16HFmode,
12185 : E_HImode) != 0)
12186 : return -1;
12187 : if (nonimmediate_operand (operands[1], E_V16HFmode)
12188 : && vector_operand (operands[3], E_V16HFmode))
12189 : {
12190 : x3 = XEXP (x2, 1);
12191 : if (rtx_equal_p (x3, operands[1])
12192 : && (
12193 : #line 6435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12194 : (TARGET_AVX512F) &&
12195 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12196 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
12197 : return 3968; /* avx512vl_fmsub_v16hf_mask */
12198 : }
12199 : if (!vector_operand (operands[1], E_V16HFmode)
12200 : || !nonimmediate_operand (operands[3], E_V16HFmode))
12201 : return -1;
12202 : x3 = XEXP (x2, 1);
12203 : if (!rtx_equal_p (x3, operands[3])
12204 : || !(
12205 : #line 6453 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12206 : (TARGET_AVX512F && 1) &&
12207 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12208 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
12209 : return -1;
12210 : return 3986; /* avx512vl_fmsub_v16hf_mask3 */
12211 :
12212 : case 16:
12213 : if (pattern1298 (x2,
12214 : E_V8HFmode,
12215 : E_QImode) != 0)
12216 : return -1;
12217 : if (nonimmediate_operand (operands[1], E_V8HFmode)
12218 : && vector_operand (operands[3], E_V8HFmode))
12219 : {
12220 : x3 = XEXP (x2, 1);
12221 : if (rtx_equal_p (x3, operands[1])
12222 : && (
12223 : #line 6435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12224 : (TARGET_AVX512F) &&
12225 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12226 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
12227 : return 3970; /* avx512fp16_fmsub_v8hf_mask */
12228 : }
12229 : if (!vector_operand (operands[1], E_V8HFmode)
12230 : || !nonimmediate_operand (operands[3], E_V8HFmode))
12231 : return -1;
12232 : x3 = XEXP (x2, 1);
12233 : if (!rtx_equal_p (x3, operands[3])
12234 : || !(
12235 : #line 6453 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12236 : (TARGET_AVX512F && 1) &&
12237 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12238 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
12239 : return -1;
12240 : return 3987; /* avx512fp16_fmsub_v8hf_mask3 */
12241 :
12242 : case 17:
12243 : if (pattern1298 (x2,
12244 : E_V16SFmode,
12245 : E_HImode) != 0)
12246 : return -1;
12247 : if (nonimmediate_operand (operands[1], E_V16SFmode)
12248 : && vector_operand (operands[3], E_V16SFmode))
12249 : {
12250 : x3 = XEXP (x2, 1);
12251 : if (rtx_equal_p (x3, operands[1])
12252 : &&
12253 : #line 6435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12254 : (TARGET_AVX512F))
12255 : return 3972; /* avx512f_fmsub_v16sf_mask */
12256 : }
12257 : if (!vector_operand (operands[1], E_V16SFmode)
12258 : || !nonimmediate_operand (operands[3], E_V16SFmode))
12259 : return -1;
12260 : x3 = XEXP (x2, 1);
12261 : if (!rtx_equal_p (x3, operands[3])
12262 : || !
12263 : #line 6453 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12264 : (TARGET_AVX512F && 1))
12265 : return -1;
12266 : return 3988; /* avx512f_fmsub_v16sf_mask3 */
12267 :
12268 : case 18:
12269 : if (pattern1298 (x2,
12270 : E_V8SFmode,
12271 : E_QImode) != 0)
12272 : return -1;
12273 : if (nonimmediate_operand (operands[1], E_V8SFmode)
12274 : && vector_operand (operands[3], E_V8SFmode))
12275 : {
12276 : x3 = XEXP (x2, 1);
12277 : if (rtx_equal_p (x3, operands[1])
12278 : && (
12279 : #line 6435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12280 : (TARGET_AVX512F) &&
12281 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12282 : (TARGET_AVX512VL)))
12283 : return 3974; /* avx512vl_fmsub_v8sf_mask */
12284 : }
12285 : if (!vector_operand (operands[1], E_V8SFmode)
12286 : || !nonimmediate_operand (operands[3], E_V8SFmode))
12287 : return -1;
12288 : x3 = XEXP (x2, 1);
12289 : if (!rtx_equal_p (x3, operands[3])
12290 : || !(
12291 : #line 6453 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12292 : (TARGET_AVX512F && 1) &&
12293 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12294 : (TARGET_AVX512VL)))
12295 : return -1;
12296 : return 3990; /* avx512vl_fmsub_v8sf_mask3 */
12297 :
12298 : case 19:
12299 : if (pattern1298 (x2,
12300 : E_V4SFmode,
12301 : E_QImode) != 0)
12302 : return -1;
12303 : if (nonimmediate_operand (operands[1], E_V4SFmode)
12304 : && vector_operand (operands[3], E_V4SFmode))
12305 : {
12306 : x3 = XEXP (x2, 1);
12307 : if (rtx_equal_p (x3, operands[1])
12308 : && (
12309 : #line 6435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12310 : (TARGET_AVX512F) &&
12311 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12312 : (TARGET_AVX512VL)))
12313 : return 3976; /* avx512vl_fmsub_v4sf_mask */
12314 : }
12315 : if (!vector_operand (operands[1], E_V4SFmode)
12316 : || !nonimmediate_operand (operands[3], E_V4SFmode))
12317 : return -1;
12318 : x3 = XEXP (x2, 1);
12319 : if (!rtx_equal_p (x3, operands[3])
12320 : || !(
12321 : #line 6453 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12322 : (TARGET_AVX512F && 1) &&
12323 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12324 : (TARGET_AVX512VL)))
12325 : return -1;
12326 : return 3991; /* avx512vl_fmsub_v4sf_mask3 */
12327 :
12328 : case 20:
12329 : if (pattern1298 (x2,
12330 : E_V8DFmode,
12331 : E_QImode) != 0)
12332 : return -1;
12333 : if (nonimmediate_operand (operands[1], E_V8DFmode)
12334 : && vector_operand (operands[3], E_V8DFmode))
12335 : {
12336 : x3 = XEXP (x2, 1);
12337 : if (rtx_equal_p (x3, operands[1])
12338 : &&
12339 : #line 6435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12340 : (TARGET_AVX512F))
12341 : return 3978; /* avx512f_fmsub_v8df_mask */
12342 : }
12343 : if (!vector_operand (operands[1], E_V8DFmode)
12344 : || !nonimmediate_operand (operands[3], E_V8DFmode))
12345 : return -1;
12346 : x3 = XEXP (x2, 1);
12347 : if (!rtx_equal_p (x3, operands[3])
12348 : || !
12349 : #line 6453 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12350 : (TARGET_AVX512F && 1))
12351 : return -1;
12352 : return 3992; /* avx512f_fmsub_v8df_mask3 */
12353 :
12354 : case 21:
12355 : if (pattern1298 (x2,
12356 : E_V4DFmode,
12357 : E_QImode) != 0)
12358 : return -1;
12359 : if (nonimmediate_operand (operands[1], E_V4DFmode)
12360 : && vector_operand (operands[3], E_V4DFmode))
12361 : {
12362 : x3 = XEXP (x2, 1);
12363 : if (rtx_equal_p (x3, operands[1])
12364 : && (
12365 : #line 6435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12366 : (TARGET_AVX512F) &&
12367 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12368 : (TARGET_AVX512VL)))
12369 : return 3980; /* avx512vl_fmsub_v4df_mask */
12370 : }
12371 : if (!vector_operand (operands[1], E_V4DFmode)
12372 : || !nonimmediate_operand (operands[3], E_V4DFmode))
12373 : return -1;
12374 : x3 = XEXP (x2, 1);
12375 : if (!rtx_equal_p (x3, operands[3])
12376 : || !(
12377 : #line 6453 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12378 : (TARGET_AVX512F && 1) &&
12379 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12380 : (TARGET_AVX512VL)))
12381 : return -1;
12382 : return 3994; /* avx512vl_fmsub_v4df_mask3 */
12383 :
12384 : case 22:
12385 : if (pattern1298 (x2,
12386 : E_V2DFmode,
12387 : E_QImode) != 0)
12388 : return -1;
12389 : if (nonimmediate_operand (operands[1], E_V2DFmode)
12390 : && vector_operand (operands[3], E_V2DFmode))
12391 : {
12392 : x3 = XEXP (x2, 1);
12393 : if (rtx_equal_p (x3, operands[1])
12394 : && (
12395 : #line 6435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12396 : (TARGET_AVX512F) &&
12397 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12398 : (TARGET_AVX512VL)))
12399 : return 3982; /* avx512vl_fmsub_v2df_mask */
12400 : }
12401 : if (!vector_operand (operands[1], E_V2DFmode)
12402 : || !nonimmediate_operand (operands[3], E_V2DFmode))
12403 : return -1;
12404 : x3 = XEXP (x2, 1);
12405 : if (!rtx_equal_p (x3, operands[3])
12406 : || !(
12407 : #line 6453 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12408 : (TARGET_AVX512F && 1) &&
12409 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12410 : (TARGET_AVX512VL)))
12411 : return -1;
12412 : return 3995; /* avx512vl_fmsub_v2df_mask3 */
12413 :
12414 : case 23:
12415 : if (pattern1300 (x2,
12416 : E_SImode,
12417 : E_V32BFmode) != 0)
12418 : return -1;
12419 : x3 = XEXP (x2, 1);
12420 : if (rtx_equal_p (x3, operands[1])
12421 : &&
12422 : #line 33000 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12423 : (TARGET_AVX10_2))
12424 : return 10732; /* avx10_2_fmsubbf16_v32bf_mask */
12425 : if (!rtx_equal_p (x3, operands[3])
12426 : || !
12427 : #line 33018 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12428 : (TARGET_AVX10_2))
12429 : return -1;
12430 : return 10735; /* avx10_2_fmsubbf16_v32bf_mask3 */
12431 :
12432 : case 24:
12433 : if (pattern1300 (x2,
12434 : E_HImode,
12435 : E_V16BFmode) != 0)
12436 : return -1;
12437 : x3 = XEXP (x2, 1);
12438 : if (rtx_equal_p (x3, operands[1])
12439 : &&
12440 : #line 33000 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12441 : (TARGET_AVX10_2))
12442 : return 10733; /* avx10_2_fmsubbf16_v16bf_mask */
12443 : if (!rtx_equal_p (x3, operands[3])
12444 : || !
12445 : #line 33018 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12446 : (TARGET_AVX10_2))
12447 : return -1;
12448 : return 10736; /* avx10_2_fmsubbf16_v16bf_mask3 */
12449 :
12450 : case 25:
12451 : if (pattern1300 (x2,
12452 : E_QImode,
12453 : E_V8BFmode) != 0)
12454 : return -1;
12455 : x3 = XEXP (x2, 1);
12456 : if (rtx_equal_p (x3, operands[1])
12457 : &&
12458 : #line 33000 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12459 : (TARGET_AVX10_2))
12460 : return 10734; /* avx10_2_fmsubbf16_v8bf_mask */
12461 : if (!rtx_equal_p (x3, operands[3])
12462 : || !
12463 : #line 33018 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12464 : (TARGET_AVX10_2))
12465 : return -1;
12466 : return 10737; /* avx10_2_fmsubbf16_v8bf_mask3 */
12467 :
12468 : case 26:
12469 : if (pattern1395 (x2,
12470 : E_V8HFmode) != 0
12471 : || !(
12472 : #line 6961 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12473 : (TARGET_FMA || TARGET_AVX512F) &&
12474 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12475 : (TARGET_AVX512FP16)))
12476 : return -1;
12477 : return 4264; /* *fmai_fmsub_v8hf */
12478 :
12479 : case 27:
12480 : if (pattern1395 (x2,
12481 : E_V4SFmode) != 0
12482 : || !
12483 : #line 6961 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12484 : (TARGET_FMA || TARGET_AVX512F))
12485 : return -1;
12486 : return 4266; /* *fmai_fmsub_v4sf */
12487 :
12488 : case 28:
12489 : if (pattern1395 (x2,
12490 : E_V2DFmode) != 0
12491 : || !(
12492 : #line 6961 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12493 : (TARGET_FMA || TARGET_AVX512F) &&
12494 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12495 : (TARGET_SSE2)))
12496 : return -1;
12497 : return 4268; /* *fmai_fmsub_v2df */
12498 :
12499 : default:
12500 : return -1;
12501 : }
12502 : }
12503 :
12504 : int
12505 : recog_167 (rtx x1 ATTRIBUTE_UNUSED,
12506 : rtx_insn *insn ATTRIBUTE_UNUSED,
12507 : int *pnum_clobbers ATTRIBUTE_UNUSED)
12508 : {
12509 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
12510 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
12511 : rtx x10, x11, x12;
12512 : int res ATTRIBUTE_UNUSED;
12513 : x2 = XEXP (x1, 1);
12514 : x3 = XEXP (x2, 0);
12515 : x4 = XEXP (x3, 1);
12516 : x5 = XVECEXP (x4, 0, 2);
12517 : if (GET_CODE (x5) != CONST_INT)
12518 : return -1;
12519 : x6 = XVECEXP (x4, 0, 3);
12520 : if (GET_CODE (x6) != CONST_INT)
12521 : return -1;
12522 : x7 = XEXP (x2, 2);
12523 : if (!register_operand (x7, E_QImode))
12524 : return -1;
12525 : x8 = XVECEXP (x4, 0, 0);
12526 : switch (XWINT (x8, 0))
12527 : {
12528 : case 2L:
12529 : x9 = XVECEXP (x4, 0, 1);
12530 : if (XWINT (x9, 0) != 6L
12531 : || XWINT (x5, 0) != 3L
12532 : || XWINT (x6, 0) != 7L)
12533 : return -1;
12534 : x10 = XEXP (x3, 0);
12535 : x11 = XEXP (x10, 1);
12536 : operands[2] = x11;
12537 : x12 = XEXP (x2, 1);
12538 : operands[3] = x12;
12539 : operands[4] = x7;
12540 : switch (GET_MODE (operands[0]))
12541 : {
12542 : case E_V4SFmode:
12543 : if (pattern1594 (x2,
12544 : E_V4SFmode,
12545 : E_V8SFmode) != 0
12546 : || !(
12547 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12548 : (TARGET_AVX512F) &&
12549 : #line 11546 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12550 : (TARGET_SSE && TARGET_AVX512VL)))
12551 : return -1;
12552 : return 5265; /* vec_interleave_highv4sf_mask */
12553 :
12554 : case E_V4SImode:
12555 : if (pattern1594 (x2,
12556 : E_V4SImode,
12557 : E_V8SImode) != 0
12558 : || !(
12559 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12560 : (TARGET_AVX512F) &&
12561 : #line 20097 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12562 : (TARGET_SSE2 && TARGET_AVX512VL)))
12563 : return -1;
12564 : return 8417; /* vec_interleave_highv4si_mask */
12565 :
12566 : default:
12567 : return -1;
12568 : }
12569 :
12570 : case 0L:
12571 : x9 = XVECEXP (x4, 0, 1);
12572 : switch (XWINT (x9, 0))
12573 : {
12574 : case 4L:
12575 : switch (XWINT (x5, 0))
12576 : {
12577 : case 1L:
12578 : if (XWINT (x6, 0) != 5L)
12579 : return -1;
12580 : x10 = XEXP (x3, 0);
12581 : x11 = XEXP (x10, 1);
12582 : operands[2] = x11;
12583 : x12 = XEXP (x2, 1);
12584 : operands[3] = x12;
12585 : operands[4] = x7;
12586 : switch (GET_MODE (operands[0]))
12587 : {
12588 : case E_V4SFmode:
12589 : if (pattern1593 (x2,
12590 : E_V4SFmode,
12591 : E_V8SFmode) != 0
12592 : || !
12593 : #line 11603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12594 : (TARGET_AVX512VL))
12595 : return -1;
12596 : return 5270; /* unpcklps128_mask */
12597 :
12598 : case E_V4SImode:
12599 : if (pattern1594 (x2,
12600 : E_V4SImode,
12601 : E_V8SImode) != 0
12602 : || !(
12603 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12604 : (TARGET_AVX512F) &&
12605 : #line 20151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12606 : (TARGET_SSE2 && TARGET_AVX512VL)))
12607 : return -1;
12608 : return 8423; /* vec_interleave_lowv4si_mask */
12609 :
12610 : default:
12611 : return -1;
12612 : }
12613 :
12614 : case 2L:
12615 : if (XWINT (x6, 0) != 6L)
12616 : return -1;
12617 : switch (GET_MODE (operands[0]))
12618 : {
12619 : case E_V4DFmode:
12620 : if (pattern1656 (x2,
12621 : E_V4DFmode,
12622 : E_V8DFmode) != 0)
12623 : return -1;
12624 : x12 = XEXP (x2, 1);
12625 : operands[2] = x12;
12626 : if (nonimmediate_operand (operands[1], E_V4DFmode))
12627 : {
12628 : operands[3] = x7;
12629 : x10 = XEXP (x3, 0);
12630 : x11 = XEXP (x10, 1);
12631 : if (rtx_equal_p (x11, operands[1])
12632 : && (
12633 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12634 : (TARGET_AVX512F) &&
12635 : #line 13794 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12636 : (TARGET_AVX && TARGET_AVX512VL)))
12637 : return 5425; /* avx_movddup256_mask */
12638 : }
12639 : operands[3] = x12;
12640 : if (!register_operand (operands[1], E_V4DFmode))
12641 : return -1;
12642 : x10 = XEXP (x3, 0);
12643 : x11 = XEXP (x10, 1);
12644 : operands[2] = x11;
12645 : if (!nonimmediate_operand (operands[2], E_V4DFmode))
12646 : return -1;
12647 : operands[4] = x7;
12648 : if (!(
12649 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12650 : (TARGET_AVX512F) &&
12651 : #line 13808 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12652 : (TARGET_AVX && TARGET_AVX512VL)))
12653 : return -1;
12654 : return 5427; /* avx_unpcklpd256_mask */
12655 :
12656 : case E_V4DImode:
12657 : if (pattern1657 (x2,
12658 : E_V4DImode,
12659 : E_V8DImode) != 0
12660 : || !(
12661 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12662 : (TARGET_AVX512F) &&
12663 : #line 14840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12664 : (TARGET_AVX2 && TARGET_AVX512VL)))
12665 : return -1;
12666 : return 7240; /* avx2_interleave_lowv4di_mask */
12667 :
12668 : default:
12669 : return -1;
12670 : }
12671 :
12672 : default:
12673 : return -1;
12674 : }
12675 :
12676 : case 0L:
12677 : if (XWINT (x5, 0) != 6L
12678 : || XWINT (x6, 0) != 6L
12679 : || pattern1592 (x2) != 0
12680 : || !(
12681 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12682 : (TARGET_AVX512F) &&
12683 : #line 11741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12684 : (TARGET_SSE3 && TARGET_AVX512VL)))
12685 : return -1;
12686 : return 5281; /* sse3_movsldup_mask */
12687 :
12688 : default:
12689 : return -1;
12690 : }
12691 :
12692 : case 1L:
12693 : if (XWINT (x6, 0) != 7L)
12694 : return -1;
12695 : x9 = XVECEXP (x4, 0, 1);
12696 : switch (XWINT (x9, 0))
12697 : {
12698 : case 1L:
12699 : if (XWINT (x5, 0) != 7L
12700 : || pattern1592 (x2) != 0
12701 : || !(
12702 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12703 : (TARGET_AVX512F) &&
12704 : #line 11688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12705 : (TARGET_SSE3 && TARGET_AVX512VL)))
12706 : return -1;
12707 : return 5275; /* sse3_movshdup_mask */
12708 :
12709 : case 5L:
12710 : if (XWINT (x5, 0) != 3L)
12711 : return -1;
12712 : x10 = XEXP (x3, 0);
12713 : x11 = XEXP (x10, 1);
12714 : operands[2] = x11;
12715 : x12 = XEXP (x2, 1);
12716 : operands[3] = x12;
12717 : operands[4] = x7;
12718 : switch (GET_MODE (operands[0]))
12719 : {
12720 : case E_V4DFmode:
12721 : if (pattern1593 (x2,
12722 : E_V4DFmode,
12723 : E_V8DFmode) != 0
12724 : || !(
12725 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12726 : (TARGET_AVX512F) &&
12727 : #line 13664 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12728 : (TARGET_AVX && TARGET_AVX512VL)))
12729 : return -1;
12730 : return 5417; /* avx_unpckhpd256_mask */
12731 :
12732 : case E_V4DImode:
12733 : if (pattern1593 (x2,
12734 : E_V4DImode,
12735 : E_V8DImode) != 0
12736 : || !(
12737 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12738 : (TARGET_AVX512F) &&
12739 : #line 14790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12740 : (TARGET_AVX2 && TARGET_AVX512VL)))
12741 : return -1;
12742 : return 7234; /* avx2_interleave_highv4di_mask */
12743 :
12744 : default:
12745 : return -1;
12746 : }
12747 :
12748 : default:
12749 : return -1;
12750 : }
12751 :
12752 : default:
12753 : return -1;
12754 : }
12755 : }
12756 :
12757 : int
12758 : recog_173 (rtx x1 ATTRIBUTE_UNUSED,
12759 : rtx_insn *insn ATTRIBUTE_UNUSED,
12760 : int *pnum_clobbers ATTRIBUTE_UNUSED)
12761 : {
12762 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
12763 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
12764 : rtx x10;
12765 : int res ATTRIBUTE_UNUSED;
12766 : x2 = XEXP (x1, 1);
12767 : x3 = XEXP (x2, 0);
12768 : x4 = XEXP (x3, 1);
12769 : x5 = XVECEXP (x4, 0, 0);
12770 : if (GET_CODE (x5) != CONST_INT)
12771 : return -1;
12772 : operands[2] = x5;
12773 : res = recog_172 (x1, insn, pnum_clobbers);
12774 : if (res >= 0)
12775 : return res;
12776 : x6 = XVECEXP (x4, 0, 1);
12777 : if (GET_CODE (x6) != CONST_INT)
12778 : return -1;
12779 : x7 = XVECEXP (x4, 0, 2);
12780 : if (GET_CODE (x7) != CONST_INT)
12781 : return -1;
12782 : x8 = XVECEXP (x4, 0, 3);
12783 : if (GET_CODE (x8) != CONST_INT)
12784 : return -1;
12785 : x9 = XEXP (x2, 1);
12786 : operands[2] = x9;
12787 : x10 = XEXP (x2, 2);
12788 : operands[3] = x10;
12789 : if (!register_operand (operands[3], E_QImode))
12790 : return -1;
12791 : switch (XWINT (x5, 0))
12792 : {
12793 : case 0L:
12794 : if (XWINT (x6, 0) != 1L
12795 : || XWINT (x7, 0) != 2L
12796 : || XWINT (x8, 0) != 3L)
12797 : return -1;
12798 : switch (GET_MODE (operands[0]))
12799 : {
12800 : case E_V4DFmode:
12801 : if (!nonimmediate_operand (operands[0], E_V4DFmode)
12802 : || pattern1557 (x2,
12803 : E_V4DFmode,
12804 : E_V8DFmode) != 0
12805 : || !
12806 : #line 12947 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12807 : (TARGET_AVX512F
12808 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[2]))))
12809 : return -1;
12810 : return 5358; /* vec_extract_lo_v8df_mask */
12811 :
12812 : case E_V4DImode:
12813 : if (!nonimmediate_operand (operands[0], E_V4DImode)
12814 : || pattern1557 (x2,
12815 : E_V4DImode,
12816 : E_V8DImode) != 0
12817 : || !
12818 : #line 12947 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12819 : (TARGET_AVX512F
12820 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[2]))))
12821 : return -1;
12822 : return 5359; /* vec_extract_lo_v8di_mask */
12823 :
12824 : case E_V4SImode:
12825 : if (!nonimmediate_operand (operands[0], E_V4SImode)
12826 : || pattern1557 (x2,
12827 : E_V4SImode,
12828 : E_V8SImode) != 0
12829 : || !
12830 : #line 13281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12831 : (TARGET_AVX512VL
12832 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[2]))))
12833 : return -1;
12834 : return 5382; /* vec_extract_lo_v8si_mask */
12835 :
12836 : case E_V4SFmode:
12837 : if (!nonimmediate_operand (operands[0], E_V4SFmode)
12838 : || pattern1557 (x2,
12839 : E_V4SFmode,
12840 : E_V8SFmode) != 0
12841 : || !
12842 : #line 13281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12843 : (TARGET_AVX512VL
12844 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[2]))))
12845 : return -1;
12846 : return 5383; /* vec_extract_lo_v8sf_mask */
12847 :
12848 : default:
12849 : return -1;
12850 : }
12851 :
12852 : case 4L:
12853 : if (XWINT (x6, 0) != 5L
12854 : || XWINT (x7, 0) != 6L
12855 : || XWINT (x8, 0) != 7L)
12856 : return -1;
12857 : switch (GET_MODE (operands[0]))
12858 : {
12859 : case E_V4DFmode:
12860 : if (!nonimmediate_operand (operands[0], E_V4DFmode)
12861 : || pattern1557 (x2,
12862 : E_V4DFmode,
12863 : E_V8DFmode) != 0
12864 : || !
12865 : #line 12984 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12866 : (TARGET_AVX512F
12867 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[2]))))
12868 : return -1;
12869 : return 5362; /* vec_extract_hi_v8df_mask */
12870 :
12871 : case E_V4DImode:
12872 : if (!nonimmediate_operand (operands[0], E_V4DImode)
12873 : || pattern1557 (x2,
12874 : E_V4DImode,
12875 : E_V8DImode) != 0
12876 : || !
12877 : #line 12984 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12878 : (TARGET_AVX512F
12879 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[2]))))
12880 : return -1;
12881 : return 5363; /* vec_extract_hi_v8di_mask */
12882 :
12883 : case E_V4SImode:
12884 : if (!register_operand (operands[0], E_V4SImode)
12885 : || pattern1557 (x2,
12886 : E_V4SImode,
12887 : E_V8SImode) != 0
12888 : || !
12889 : #line 13313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12890 : (TARGET_AVX512VL
12891 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[2]))))
12892 : return -1;
12893 : return 5386; /* vec_extract_hi_v8si_mask */
12894 :
12895 : case E_V4SFmode:
12896 : if (!register_operand (operands[0], E_V4SFmode)
12897 : || pattern1557 (x2,
12898 : E_V4SFmode,
12899 : E_V8SFmode) != 0
12900 : || !
12901 : #line 13313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12902 : (TARGET_AVX512VL
12903 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[2]))))
12904 : return -1;
12905 : return 5387; /* vec_extract_hi_v8sf_mask */
12906 :
12907 : default:
12908 : return -1;
12909 : }
12910 :
12911 : default:
12912 : return -1;
12913 : }
12914 : }
12915 :
12916 : int
12917 : recog_184 (rtx x1 ATTRIBUTE_UNUSED,
12918 : rtx_insn *insn ATTRIBUTE_UNUSED,
12919 : int *pnum_clobbers ATTRIBUTE_UNUSED)
12920 : {
12921 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
12922 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
12923 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
12924 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
12925 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
12926 : rtx x34, x35, x36, x37, x38, x39, x40, x41;
12927 : rtx x42, x43, x44, x45, x46, x47, x48, x49;
12928 : rtx x50, x51, x52, x53, x54, x55, x56, x57;
12929 : rtx x58, x59, x60, x61;
12930 : int res ATTRIBUTE_UNUSED;
12931 : x2 = XEXP (x1, 1);
12932 : x3 = XEXP (x2, 0);
12933 : x4 = XEXP (x3, 1);
12934 : if (GET_CODE (x4) != PARALLEL)
12935 : return -1;
12936 : x5 = XEXP (x3, 0);
12937 : switch (GET_CODE (x5))
12938 : {
12939 : case VEC_CONCAT:
12940 : x6 = XEXP (x5, 0);
12941 : switch (GET_CODE (x6))
12942 : {
12943 : case REG:
12944 : case SUBREG:
12945 : case MEM:
12946 : return recog_170 (x1, insn, pnum_clobbers);
12947 :
12948 : case SS_TRUNCATE:
12949 : x7 = XEXP (x5, 1);
12950 : if (GET_CODE (x7) != SS_TRUNCATE)
12951 : return -1;
12952 : x8 = XEXP (x6, 0);
12953 : operands[1] = x8;
12954 : x9 = XEXP (x7, 0);
12955 : operands[2] = x9;
12956 : x10 = XEXP (x2, 1);
12957 : operands[3] = x10;
12958 : x11 = XEXP (x2, 2);
12959 : operands[4] = x11;
12960 : switch (XVECLEN (x4, 0))
12961 : {
12962 : case 32:
12963 : if (pattern682 (x4,
12964 : 3,
12965 : 2,
12966 : 1) != 0
12967 : || pattern1305 (x4) != 0
12968 : || pattern1809 (x4,
12969 : 23,
12970 : 22,
12971 : 21,
12972 : 20) != 0)
12973 : return -1;
12974 : x12 = XVECEXP (x4, 0, 20);
12975 : if (GET_CODE (x12) != CONST_INT)
12976 : return -1;
12977 : x13 = XVECEXP (x4, 0, 21);
12978 : if (GET_CODE (x13) != CONST_INT)
12979 : return -1;
12980 : x14 = XVECEXP (x4, 0, 22);
12981 : if (GET_CODE (x14) != CONST_INT)
12982 : return -1;
12983 : x15 = XVECEXP (x4, 0, 23);
12984 : if (GET_CODE (x15) != CONST_INT)
12985 : return -1;
12986 : x16 = XVECEXP (x4, 0, 24);
12987 : if (GET_CODE (x16) != CONST_INT)
12988 : return -1;
12989 : x17 = XVECEXP (x4, 0, 25);
12990 : if (GET_CODE (x17) != CONST_INT)
12991 : return -1;
12992 : x18 = XVECEXP (x4, 0, 26);
12993 : if (GET_CODE (x18) != CONST_INT)
12994 : return -1;
12995 : x19 = XVECEXP (x4, 0, 27);
12996 : if (GET_CODE (x19) != CONST_INT
12997 : || pattern1910 (x4,
12998 : 31,
12999 : 30,
13000 : 29,
13001 : 28) != 0
13002 : || !register_operand (operands[4], E_SImode))
13003 : return -1;
13004 : x20 = XVECEXP (x4, 0, 4);
13005 : switch (XWINT (x20, 0))
13006 : {
13007 : case 4L:
13008 : x21 = XVECEXP (x4, 0, 5);
13009 : if (XWINT (x21, 0) != 5L)
13010 : return -1;
13011 : x22 = XVECEXP (x4, 0, 6);
13012 : if (XWINT (x22, 0) != 6L)
13013 : return -1;
13014 : x23 = XVECEXP (x4, 0, 7);
13015 : if (XWINT (x23, 0) != 7L)
13016 : return -1;
13017 : x24 = XVECEXP (x4, 0, 8);
13018 : if (XWINT (x24, 0) != 16L)
13019 : return -1;
13020 : x25 = XVECEXP (x4, 0, 9);
13021 : if (XWINT (x25, 0) != 17L)
13022 : return -1;
13023 : x26 = XVECEXP (x4, 0, 10);
13024 : if (XWINT (x26, 0) != 18L)
13025 : return -1;
13026 : x27 = XVECEXP (x4, 0, 11);
13027 : if (XWINT (x27, 0) != 19L
13028 : || XWINT (x12, 0) != 12L
13029 : || XWINT (x13, 0) != 13L
13030 : || XWINT (x14, 0) != 14L
13031 : || XWINT (x15, 0) != 15L
13032 : || XWINT (x16, 0) != 24L
13033 : || XWINT (x17, 0) != 25L
13034 : || XWINT (x18, 0) != 26L
13035 : || XWINT (x19, 0) != 27L
13036 : || pattern1918 (x2,
13037 : E_V32QImode,
13038 : E_V16HImode,
13039 : E_V16QImode) != 0
13040 : || !(
13041 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13042 : (TARGET_AVX512F) &&
13043 : #line 19584 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13044 : (TARGET_AVX2 && TARGET_AVX512VL && TARGET_AVX512BW)))
13045 : return -1;
13046 : return 8349; /* avx2_packsswb_mask */
13047 :
13048 : case 16L:
13049 : x21 = XVECEXP (x4, 0, 5);
13050 : if (XWINT (x21, 0) != 17L)
13051 : return -1;
13052 : x22 = XVECEXP (x4, 0, 6);
13053 : if (XWINT (x22, 0) != 18L)
13054 : return -1;
13055 : x23 = XVECEXP (x4, 0, 7);
13056 : if (XWINT (x23, 0) != 19L)
13057 : return -1;
13058 : x24 = XVECEXP (x4, 0, 8);
13059 : if (XWINT (x24, 0) != 4L)
13060 : return -1;
13061 : x25 = XVECEXP (x4, 0, 9);
13062 : if (XWINT (x25, 0) != 5L)
13063 : return -1;
13064 : x26 = XVECEXP (x4, 0, 10);
13065 : if (XWINT (x26, 0) != 6L)
13066 : return -1;
13067 : x27 = XVECEXP (x4, 0, 11);
13068 : if (XWINT (x27, 0) != 7L
13069 : || XWINT (x12, 0) != 24L
13070 : || XWINT (x13, 0) != 25L
13071 : || XWINT (x14, 0) != 26L
13072 : || XWINT (x15, 0) != 27L
13073 : || XWINT (x16, 0) != 12L
13074 : || XWINT (x17, 0) != 13L
13075 : || XWINT (x18, 0) != 14L
13076 : || XWINT (x19, 0) != 15L
13077 : || pattern1918 (x2,
13078 : E_V32HImode,
13079 : E_V16SImode,
13080 : E_V16HImode) != 0
13081 : || !(
13082 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13083 : (TARGET_AVX512F) &&
13084 : #line 19700 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13085 : (TARGET_AVX512BW)))
13086 : return -1;
13087 : return 8357; /* avx512bw_packssdw_mask */
13088 :
13089 : default:
13090 : return -1;
13091 : }
13092 :
13093 : case 64:
13094 : if (pattern681 (x4) != 0
13095 : || pattern1307 (x4,
13096 : 35,
13097 : 34,
13098 : 33,
13099 : 32) != 0
13100 : || pattern1809 (x4,
13101 : 39,
13102 : 38,
13103 : 37,
13104 : 36) != 0)
13105 : return -1;
13106 : x12 = XVECEXP (x4, 0, 20);
13107 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
13108 : return -1;
13109 : x13 = XVECEXP (x4, 0, 21);
13110 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 13])
13111 : return -1;
13112 : x14 = XVECEXP (x4, 0, 22);
13113 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 14])
13114 : return -1;
13115 : x15 = XVECEXP (x4, 0, 23);
13116 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 15])
13117 : return -1;
13118 : x16 = XVECEXP (x4, 0, 24);
13119 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 40])
13120 : return -1;
13121 : x17 = XVECEXP (x4, 0, 25);
13122 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 41])
13123 : return -1;
13124 : x18 = XVECEXP (x4, 0, 26);
13125 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 42])
13126 : return -1;
13127 : x19 = XVECEXP (x4, 0, 27);
13128 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 43]
13129 : || pattern1910 (x4,
13130 : 47,
13131 : 46,
13132 : 45,
13133 : 44) != 0)
13134 : return -1;
13135 : x28 = XVECEXP (x4, 0, 32);
13136 : if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
13137 : return -1;
13138 : x29 = XVECEXP (x4, 0, 33);
13139 : if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 17])
13140 : return -1;
13141 : x30 = XVECEXP (x4, 0, 34);
13142 : if (x30 != const_int_rtx[MAX_SAVED_CONST_INT + 18])
13143 : return -1;
13144 : x31 = XVECEXP (x4, 0, 35);
13145 : if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 19])
13146 : return -1;
13147 : x32 = XVECEXP (x4, 0, 36);
13148 : if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 20])
13149 : return -1;
13150 : x33 = XVECEXP (x4, 0, 37);
13151 : if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 21])
13152 : return -1;
13153 : x34 = XVECEXP (x4, 0, 38);
13154 : if (x34 != const_int_rtx[MAX_SAVED_CONST_INT + 22])
13155 : return -1;
13156 : x35 = XVECEXP (x4, 0, 39);
13157 : if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + 23])
13158 : return -1;
13159 : x36 = XVECEXP (x4, 0, 40);
13160 : if (x36 != const_int_rtx[MAX_SAVED_CONST_INT + 48])
13161 : return -1;
13162 : x37 = XVECEXP (x4, 0, 41);
13163 : if (x37 != const_int_rtx[MAX_SAVED_CONST_INT + 49])
13164 : return -1;
13165 : x38 = XVECEXP (x4, 0, 42);
13166 : if (x38 != const_int_rtx[MAX_SAVED_CONST_INT + 50])
13167 : return -1;
13168 : x39 = XVECEXP (x4, 0, 43);
13169 : if (x39 != const_int_rtx[MAX_SAVED_CONST_INT + 51])
13170 : return -1;
13171 : x40 = XVECEXP (x4, 0, 44);
13172 : if (x40 != const_int_rtx[MAX_SAVED_CONST_INT + 52])
13173 : return -1;
13174 : x41 = XVECEXP (x4, 0, 45);
13175 : if (x41 != const_int_rtx[MAX_SAVED_CONST_INT + 53])
13176 : return -1;
13177 : x42 = XVECEXP (x4, 0, 46);
13178 : if (x42 != const_int_rtx[MAX_SAVED_CONST_INT + 54])
13179 : return -1;
13180 : x43 = XVECEXP (x4, 0, 47);
13181 : if (x43 != const_int_rtx[MAX_SAVED_CONST_INT + 55])
13182 : return -1;
13183 : x44 = XVECEXP (x4, 0, 48);
13184 : if (x44 != const_int_rtx[MAX_SAVED_CONST_INT + 24])
13185 : return -1;
13186 : x45 = XVECEXP (x4, 0, 49);
13187 : if (x45 != const_int_rtx[MAX_SAVED_CONST_INT + 25])
13188 : return -1;
13189 : x46 = XVECEXP (x4, 0, 50);
13190 : if (x46 != const_int_rtx[MAX_SAVED_CONST_INT + 26])
13191 : return -1;
13192 : x47 = XVECEXP (x4, 0, 51);
13193 : if (x47 != const_int_rtx[MAX_SAVED_CONST_INT + 27])
13194 : return -1;
13195 : x48 = XVECEXP (x4, 0, 52);
13196 : if (x48 != const_int_rtx[MAX_SAVED_CONST_INT + 28])
13197 : return -1;
13198 : x49 = XVECEXP (x4, 0, 53);
13199 : if (x49 != const_int_rtx[MAX_SAVED_CONST_INT + 29])
13200 : return -1;
13201 : x50 = XVECEXP (x4, 0, 54);
13202 : if (x50 != const_int_rtx[MAX_SAVED_CONST_INT + 30])
13203 : return -1;
13204 : x51 = XVECEXP (x4, 0, 55);
13205 : if (x51 != const_int_rtx[MAX_SAVED_CONST_INT + 31])
13206 : return -1;
13207 : x52 = XVECEXP (x4, 0, 56);
13208 : if (x52 != const_int_rtx[MAX_SAVED_CONST_INT + 56])
13209 : return -1;
13210 : x53 = XVECEXP (x4, 0, 57);
13211 : if (x53 != const_int_rtx[MAX_SAVED_CONST_INT + 57])
13212 : return -1;
13213 : x54 = XVECEXP (x4, 0, 58);
13214 : if (x54 != const_int_rtx[MAX_SAVED_CONST_INT + 58])
13215 : return -1;
13216 : x55 = XVECEXP (x4, 0, 59);
13217 : if (x55 != const_int_rtx[MAX_SAVED_CONST_INT + 59])
13218 : return -1;
13219 : x56 = XVECEXP (x4, 0, 60);
13220 : if (x56 != const_int_rtx[MAX_SAVED_CONST_INT + 60])
13221 : return -1;
13222 : x57 = XVECEXP (x4, 0, 61);
13223 : if (x57 != const_int_rtx[MAX_SAVED_CONST_INT + 61])
13224 : return -1;
13225 : x58 = XVECEXP (x4, 0, 62);
13226 : if (x58 != const_int_rtx[MAX_SAVED_CONST_INT + 62])
13227 : return -1;
13228 : x59 = XVECEXP (x4, 0, 63);
13229 : if (x59 != const_int_rtx[MAX_SAVED_CONST_INT + 63]
13230 : || pattern1859 (x2,
13231 : E_DImode,
13232 : E_V64QImode,
13233 : E_V32HImode,
13234 : E_V32QImode) != 0
13235 : || !(
13236 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13237 : (TARGET_AVX512F) &&
13238 : #line 19631 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13239 : (TARGET_AVX512BW)))
13240 : return -1;
13241 : return 8351; /* avx512bw_packsswb_mask */
13242 :
13243 : case 16:
13244 : if (pattern795 (x4,
13245 : 10,
13246 : 9,
13247 : 8) != 0
13248 : || pattern1490 (x4,
13249 : 7,
13250 : 6,
13251 : 5,
13252 : 4,
13253 : 11) != 0
13254 : || pattern1859 (x2,
13255 : E_HImode,
13256 : E_V16HImode,
13257 : E_V8SImode,
13258 : E_V8HImode) != 0
13259 : || !(
13260 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13261 : (TARGET_AVX512F) &&
13262 : #line 19670 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13263 : (TARGET_AVX2 && TARGET_AVX512VL && TARGET_AVX512BW)))
13264 : return -1;
13265 : return 8355; /* avx2_packssdw_mask */
13266 :
13267 : default:
13268 : return -1;
13269 : }
13270 :
13271 : default:
13272 : return -1;
13273 : }
13274 :
13275 : case REG:
13276 : case SUBREG:
13277 : case MEM:
13278 : operands[1] = x5;
13279 : switch (XVECLEN (x4, 0))
13280 : {
13281 : case 2:
13282 : res = recog_171 (x1, insn, pnum_clobbers);
13283 : if (res >= 0)
13284 : return res;
13285 : break;
13286 :
13287 : case 4:
13288 : res = recog_173 (x1, insn, pnum_clobbers);
13289 : if (res >= 0)
13290 : return res;
13291 : break;
13292 :
13293 : case 8:
13294 : res = recog_177 (x1, insn, pnum_clobbers);
13295 : if (res >= 0)
13296 : return res;
13297 : break;
13298 :
13299 : case 16:
13300 : res = recog_180 (x1, insn, pnum_clobbers);
13301 : if (res >= 0)
13302 : return res;
13303 : break;
13304 :
13305 : default:
13306 : break;
13307 : }
13308 : if (XVECLEN (x4, 0) >= 1)
13309 : {
13310 : operands[2] = x4;
13311 : x60 = XVECEXP (x4, 0, 0);
13312 : operands[3] = x60;
13313 : if (const_int_operand (operands[3], E_VOIDmode))
13314 : {
13315 : x10 = XEXP (x2, 1);
13316 : operands[4] = x10;
13317 : x11 = XEXP (x2, 2);
13318 : operands[5] = x11;
13319 : switch (GET_MODE (operands[0]))
13320 : {
13321 : case E_V16SImode:
13322 : if (pattern1405 (x2,
13323 : E_V16SImode,
13324 : E_HImode) == 0
13325 : && (
13326 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13327 : (TARGET_AVX512F) && (
13328 : #line 28187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13329 : (TARGET_AVX && (64 == 64 || TARGET_AVX512VL)
13330 : && avx_vpermilp_parallel (operands[2], V16SImode)) &&
13331 : #line 311 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13332 : (TARGET_AVX512F))))
13333 : return 9213; /* *avx512f_vpermilpv16si_mask */
13334 : break;
13335 :
13336 : case E_V8SImode:
13337 : if (pattern1405 (x2,
13338 : E_V8SImode,
13339 : E_QImode) == 0
13340 : && (
13341 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13342 : (TARGET_AVX512F) && (
13343 : #line 28187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13344 : (TARGET_AVX && (32 == 64 || TARGET_AVX512VL)
13345 : && avx_vpermilp_parallel (operands[2], V8SImode)) &&
13346 : #line 311 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13347 : (TARGET_AVX))))
13348 : return 9215; /* *avx_vpermilpv8si_mask */
13349 : break;
13350 :
13351 : case E_V4SImode:
13352 : if (pattern1405 (x2,
13353 : E_V4SImode,
13354 : E_QImode) == 0
13355 : && (
13356 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13357 : (TARGET_AVX512F) &&
13358 : #line 28187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13359 : (TARGET_AVX && (16 == 64 || TARGET_AVX512VL)
13360 : && avx_vpermilp_parallel (operands[2], V4SImode))))
13361 : return 9217; /* *sse2_vpermilpv4si_mask */
13362 : break;
13363 :
13364 : case E_V8DImode:
13365 : if (pattern1405 (x2,
13366 : E_V8DImode,
13367 : E_QImode) == 0
13368 : && (
13369 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13370 : (TARGET_AVX512F) && (
13371 : #line 28187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13372 : (TARGET_AVX && (64 == 64 || TARGET_AVX512VL)
13373 : && avx_vpermilp_parallel (operands[2], V8DImode)) &&
13374 : #line 312 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13375 : (TARGET_AVX512F))))
13376 : return 9219; /* *avx512f_vpermilpv8di_mask */
13377 : break;
13378 :
13379 : case E_V4DImode:
13380 : if (pattern1405 (x2,
13381 : E_V4DImode,
13382 : E_QImode) == 0
13383 : && (
13384 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13385 : (TARGET_AVX512F) && (
13386 : #line 28187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13387 : (TARGET_AVX && (32 == 64 || TARGET_AVX512VL)
13388 : && avx_vpermilp_parallel (operands[2], V4DImode)) &&
13389 : #line 312 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13390 : (TARGET_AVX))))
13391 : return 9221; /* *avx512vl_vpermilpv4di_mask */
13392 : break;
13393 :
13394 : case E_V2DImode:
13395 : if (pattern1405 (x2,
13396 : E_V2DImode,
13397 : E_QImode) == 0
13398 : && (
13399 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13400 : (TARGET_AVX512F) && (
13401 : #line 28187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13402 : (TARGET_AVX && (16 == 64 || TARGET_AVX512VL)
13403 : && avx_vpermilp_parallel (operands[2], V2DImode)) &&
13404 : #line 312 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13405 : (TARGET_SSE2))))
13406 : return 9223; /* *avx512vl_vpermilpv2di_mask */
13407 : break;
13408 :
13409 : case E_V16SFmode:
13410 : if (pattern1405 (x2,
13411 : E_V16SFmode,
13412 : E_HImode) == 0
13413 : && (
13414 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13415 : (TARGET_AVX512F) && (
13416 : #line 28187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13417 : (TARGET_AVX && (64 == 64 || TARGET_AVX512VL)
13418 : && avx_vpermilp_parallel (operands[2], V16SFmode)) &&
13419 : #line 313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13420 : (TARGET_AVX512F))))
13421 : return 9225; /* *avx512f_vpermilpv16sf_mask */
13422 : break;
13423 :
13424 : case E_V8SFmode:
13425 : if (pattern1405 (x2,
13426 : E_V8SFmode,
13427 : E_QImode) == 0
13428 : && (
13429 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13430 : (TARGET_AVX512F) && (
13431 : #line 28187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13432 : (TARGET_AVX && (32 == 64 || TARGET_AVX512VL)
13433 : && avx_vpermilp_parallel (operands[2], V8SFmode)) &&
13434 : #line 313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13435 : (TARGET_AVX))))
13436 : return 9227; /* *avx_vpermilpv8sf_mask */
13437 : break;
13438 :
13439 : case E_V4SFmode:
13440 : if (pattern1405 (x2,
13441 : E_V4SFmode,
13442 : E_QImode) == 0
13443 : && (
13444 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13445 : (TARGET_AVX512F) &&
13446 : #line 28187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13447 : (TARGET_AVX && (16 == 64 || TARGET_AVX512VL)
13448 : && avx_vpermilp_parallel (operands[2], V4SFmode))))
13449 : return 9229; /* *avx_vpermilpv4sf_mask */
13450 : break;
13451 :
13452 : case E_V8DFmode:
13453 : if (pattern1405 (x2,
13454 : E_V8DFmode,
13455 : E_QImode) == 0
13456 : && (
13457 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13458 : (TARGET_AVX512F) && (
13459 : #line 28187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13460 : (TARGET_AVX && (64 == 64 || TARGET_AVX512VL)
13461 : && avx_vpermilp_parallel (operands[2], V8DFmode)) &&
13462 : #line 314 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13463 : (TARGET_AVX512F))))
13464 : return 9231; /* *avx512f_vpermilpv8df_mask */
13465 : break;
13466 :
13467 : case E_V4DFmode:
13468 : if (pattern1405 (x2,
13469 : E_V4DFmode,
13470 : E_QImode) == 0
13471 : && (
13472 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13473 : (TARGET_AVX512F) && (
13474 : #line 28187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13475 : (TARGET_AVX && (32 == 64 || TARGET_AVX512VL)
13476 : && avx_vpermilp_parallel (operands[2], V4DFmode)) &&
13477 : #line 314 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13478 : (TARGET_AVX))))
13479 : return 9233; /* *avx_vpermilpv4df_mask */
13480 : break;
13481 :
13482 : case E_V2DFmode:
13483 : if (pattern1405 (x2,
13484 : E_V2DFmode,
13485 : E_QImode) == 0
13486 : && (
13487 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13488 : (TARGET_AVX512F) && (
13489 : #line 28187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13490 : (TARGET_AVX && (16 == 64 || TARGET_AVX512VL)
13491 : && avx_vpermilp_parallel (operands[2], V2DFmode)) &&
13492 : #line 314 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13493 : (TARGET_SSE2))))
13494 : return 9235; /* *avx_vpermilpv2df_mask */
13495 : break;
13496 :
13497 : default:
13498 : break;
13499 : }
13500 : }
13501 : }
13502 : x11 = XEXP (x2, 2);
13503 : if (!register_operand (x11, E_QImode))
13504 : return -1;
13505 : switch (XVECLEN (x4, 0))
13506 : {
13507 : case 4:
13508 : x60 = XVECEXP (x4, 0, 0);
13509 : operands[2] = x60;
13510 : if (pattern1022 (x4) != 0)
13511 : return -1;
13512 : x10 = XEXP (x2, 1);
13513 : operands[6] = x10;
13514 : operands[7] = x11;
13515 : switch (GET_MODE (operands[0]))
13516 : {
13517 : case E_V4DImode:
13518 : if (pattern1690 (x2,
13519 : E_V4DImode) != 0
13520 : || !(
13521 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13522 : (TARGET_AVX512F) &&
13523 : #line 28241 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13524 : (TARGET_AVX2 && (32 == 64 || TARGET_AVX512VL))))
13525 : return -1;
13526 : return 9237; /* avx2_permv4di_1_mask */
13527 :
13528 : case E_V4DFmode:
13529 : if (pattern1690 (x2,
13530 : E_V4DFmode) != 0
13531 : || !(
13532 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13533 : (TARGET_AVX512F) &&
13534 : #line 28241 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13535 : (TARGET_AVX2 && (32 == 64 || TARGET_AVX512VL))))
13536 : return -1;
13537 : return 9239; /* avx2_permv4df_1_mask */
13538 :
13539 : default:
13540 : return -1;
13541 : }
13542 :
13543 : case 8:
13544 : x60 = XVECEXP (x4, 0, 0);
13545 : operands[2] = x60;
13546 : if (pattern1022 (x4) != 0)
13547 : return -1;
13548 : x20 = XVECEXP (x4, 0, 4);
13549 : operands[6] = x20;
13550 : if (!const_4_to_7_operand (operands[6], E_VOIDmode))
13551 : return -1;
13552 : x21 = XVECEXP (x4, 0, 5);
13553 : operands[7] = x21;
13554 : if (!const_4_to_7_operand (operands[7], E_VOIDmode))
13555 : return -1;
13556 : x22 = XVECEXP (x4, 0, 6);
13557 : operands[8] = x22;
13558 : if (!const_4_to_7_operand (operands[8], E_VOIDmode))
13559 : return -1;
13560 : x23 = XVECEXP (x4, 0, 7);
13561 : operands[9] = x23;
13562 : if (!const_4_to_7_operand (operands[9], E_VOIDmode))
13563 : return -1;
13564 : x10 = XEXP (x2, 1);
13565 : operands[10] = x10;
13566 : operands[11] = x11;
13567 : switch (GET_MODE (operands[0]))
13568 : {
13569 : case E_V8DFmode:
13570 : if (pattern1857 (x2,
13571 : E_V8DFmode) != 0
13572 : || !(
13573 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13574 : (TARGET_AVX512F) &&
13575 : #line 28312 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13576 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL)
13577 : && (INTVAL (operands[2]) == (INTVAL (operands[6]) - 4)
13578 : && INTVAL (operands[3]) == (INTVAL (operands[7]) - 4)
13579 : && INTVAL (operands[4]) == (INTVAL (operands[8]) - 4)
13580 : && INTVAL (operands[5]) == (INTVAL (operands[9]) - 4)))))
13581 : return -1;
13582 : return 9241; /* avx512f_permv8df_1_mask */
13583 :
13584 : case E_V8DImode:
13585 : if (pattern1857 (x2,
13586 : E_V8DImode) != 0
13587 : || !(
13588 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13589 : (TARGET_AVX512F) &&
13590 : #line 28312 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13591 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL)
13592 : && (INTVAL (operands[2]) == (INTVAL (operands[6]) - 4)
13593 : && INTVAL (operands[3]) == (INTVAL (operands[7]) - 4)
13594 : && INTVAL (operands[4]) == (INTVAL (operands[8]) - 4)
13595 : && INTVAL (operands[5]) == (INTVAL (operands[9]) - 4)))))
13596 : return -1;
13597 : return 9243; /* avx512f_permv8di_1_mask */
13598 :
13599 : default:
13600 : return -1;
13601 : }
13602 :
13603 : default:
13604 : return -1;
13605 : }
13606 :
13607 : case UNSPEC:
13608 : if (XVECLEN (x5, 0) != 1
13609 : || XINT (x5, 1) != 150
13610 : || GET_MODE (x5) != E_V8SFmode
13611 : || XVECLEN (x4, 0) != 4
13612 : || pattern682 (x4,
13613 : 3,
13614 : 2,
13615 : 1) != 0
13616 : || !register_operand (operands[0], E_V4SFmode)
13617 : || GET_MODE (x2) != E_V4SFmode
13618 : || GET_MODE (x3) != E_V4SFmode)
13619 : return -1;
13620 : x61 = XVECEXP (x5, 0, 0);
13621 : operands[1] = x61;
13622 : if (!register_operand (operands[1], E_V8HImode))
13623 : return -1;
13624 : x10 = XEXP (x2, 1);
13625 : operands[2] = x10;
13626 : if (!nonimm_or_0_operand (operands[2], E_V4SFmode))
13627 : return -1;
13628 : x11 = XEXP (x2, 2);
13629 : operands[3] = x11;
13630 : if (!register_operand (operands[3], E_QImode)
13631 : || !(
13632 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13633 : (TARGET_AVX512F) &&
13634 : #line 29778 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13635 : (TARGET_F16C || TARGET_AVX512VL)))
13636 : return -1;
13637 : return 9722; /* vcvtph2ps_mask */
13638 :
13639 : default:
13640 : return -1;
13641 : }
13642 : }
13643 :
13644 : int
13645 : recog_199 (rtx x1 ATTRIBUTE_UNUSED,
13646 : rtx_insn *insn ATTRIBUTE_UNUSED,
13647 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13648 : {
13649 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13650 : rtx x2, x3, x4, x5, x6, x7;
13651 : int res ATTRIBUTE_UNUSED;
13652 : x2 = XEXP (x1, 1);
13653 : x3 = XEXP (x2, 0);
13654 : x4 = XEXP (x3, 0);
13655 : operands[1] = x4;
13656 : x5 = XEXP (x3, 1);
13657 : operands[2] = x5;
13658 : x6 = XEXP (x2, 1);
13659 : operands[3] = x6;
13660 : x7 = XEXP (x2, 2);
13661 : operands[4] = x7;
13662 : switch (GET_CODE (operands[2]))
13663 : {
13664 : case REG:
13665 : case SUBREG:
13666 : case MEM:
13667 : case VEC_DUPLICATE:
13668 : switch (GET_MODE (operands[0]))
13669 : {
13670 : case E_V8SFmode:
13671 : if (pattern133 (x2,
13672 : E_V8SFmode,
13673 : E_QImode) != 0
13674 : || !(
13675 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13676 : (TARGET_AVX512F) && (
13677 : #line 5717 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13678 : (TARGET_SSE && TARGET_AVX512VL
13679 : && (!true || 32 != 16)
13680 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
13681 : #line 432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13682 : (TARGET_AVX))))
13683 : return -1;
13684 : return 3800; /* *xorv8sf3_mask */
13685 :
13686 : case E_V4SFmode:
13687 : if (pattern133 (x2,
13688 : E_V4SFmode,
13689 : E_QImode) != 0
13690 : || !(
13691 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13692 : (TARGET_AVX512F) &&
13693 : #line 5717 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13694 : (TARGET_SSE && TARGET_AVX512VL
13695 : && (!true || 32 != 16)
13696 : && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
13697 : return -1;
13698 : return 3806; /* *xorv4sf3_mask */
13699 :
13700 : case E_V4DFmode:
13701 : if (pattern133 (x2,
13702 : E_V4DFmode,
13703 : E_QImode) != 0
13704 : || !(
13705 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13706 : (TARGET_AVX512F) && (
13707 : #line 5717 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13708 : (TARGET_SSE && TARGET_AVX512VL
13709 : && (!true || 64 != 16)
13710 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
13711 : #line 433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13712 : (TARGET_AVX))))
13713 : return -1;
13714 : return 3812; /* *xorv4df3_mask */
13715 :
13716 : case E_V2DFmode:
13717 : if (pattern133 (x2,
13718 : E_V2DFmode,
13719 : E_QImode) != 0
13720 : || !(
13721 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13722 : (TARGET_AVX512F) && (
13723 : #line 5717 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13724 : (TARGET_SSE && TARGET_AVX512VL
13725 : && (!true || 64 != 16)
13726 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
13727 : #line 433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13728 : (TARGET_SSE2))))
13729 : return -1;
13730 : return 3818; /* *xorv2df3_mask */
13731 :
13732 : case E_V16SFmode:
13733 : if (pattern134 (x2,
13734 : E_V16SFmode,
13735 : E_HImode) != 0
13736 : || !(
13737 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13738 : (TARGET_AVX512F) &&
13739 : #line 5787 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13740 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13741 : && (!true || 32 != 16))))
13742 : return -1;
13743 : return 3830; /* *xorv16sf3_mask */
13744 :
13745 : case E_V8DFmode:
13746 : if (pattern134 (x2,
13747 : E_V8DFmode,
13748 : E_QImode) != 0
13749 : || !(
13750 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13751 : (TARGET_AVX512F) &&
13752 : #line 5787 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13753 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13754 : && (!true || 64 != 16))))
13755 : return -1;
13756 : return 3836; /* *xorv8df3_mask */
13757 :
13758 : case E_V16SImode:
13759 : if (pattern489 (x2,
13760 : E_V16SImode,
13761 : E_HImode) != 0
13762 : || !(
13763 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13764 : (TARGET_AVX512F) && (
13765 : #line 19069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13766 : (TARGET_SSE && (64 == 64 || TARGET_AVX512VL)
13767 : && ix86_binary_operator_ok (XOR, V16SImode, operands)) &&
13768 : #line 799 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13769 : (TARGET_AVX512F))))
13770 : return -1;
13771 : return 8054; /* *xorv16si3_mask */
13772 :
13773 : case E_V8SImode:
13774 : if (pattern489 (x2,
13775 : E_V8SImode,
13776 : E_QImode) != 0
13777 : || !(
13778 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13779 : (TARGET_AVX512F) && (
13780 : #line 19069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13781 : (TARGET_SSE && (32 == 64 || TARGET_AVX512VL)
13782 : && ix86_binary_operator_ok (XOR, V8SImode, operands)) &&
13783 : #line 799 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13784 : (TARGET_AVX))))
13785 : return -1;
13786 : return 8060; /* *xorv8si3_mask */
13787 :
13788 : case E_V4SImode:
13789 : if (pattern489 (x2,
13790 : E_V4SImode,
13791 : E_QImode) != 0
13792 : || !(
13793 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13794 : (TARGET_AVX512F) &&
13795 : #line 19069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13796 : (TARGET_SSE && (16 == 64 || TARGET_AVX512VL)
13797 : && ix86_binary_operator_ok (XOR, V4SImode, operands))))
13798 : return -1;
13799 : return 8066; /* *xorv4si3_mask */
13800 :
13801 : case E_V8DImode:
13802 : if (pattern489 (x2,
13803 : E_V8DImode,
13804 : E_QImode) != 0
13805 : || !(
13806 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13807 : (TARGET_AVX512F) && (
13808 : #line 19069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13809 : (TARGET_SSE && (64 == 64 || TARGET_AVX512VL)
13810 : && ix86_binary_operator_ok (XOR, V8DImode, operands)) &&
13811 : #line 800 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13812 : (TARGET_AVX512F))))
13813 : return -1;
13814 : return 8072; /* *xorv8di3_mask */
13815 :
13816 : case E_V4DImode:
13817 : if (pattern489 (x2,
13818 : E_V4DImode,
13819 : E_QImode) != 0
13820 : || !(
13821 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13822 : (TARGET_AVX512F) && (
13823 : #line 19069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13824 : (TARGET_SSE && (32 == 64 || TARGET_AVX512VL)
13825 : && ix86_binary_operator_ok (XOR, V4DImode, operands)) &&
13826 : #line 800 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13827 : (TARGET_AVX))))
13828 : return -1;
13829 : return 8078; /* *xorv4di3_mask */
13830 :
13831 : case E_V2DImode:
13832 : if (pattern489 (x2,
13833 : E_V2DImode,
13834 : E_QImode) != 0
13835 : || !(
13836 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13837 : (TARGET_AVX512F) &&
13838 : #line 19069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13839 : (TARGET_SSE && (16 == 64 || TARGET_AVX512VL)
13840 : && ix86_binary_operator_ok (XOR, V2DImode, operands))))
13841 : return -1;
13842 : return 8084; /* *xorv2di3_mask */
13843 :
13844 : default:
13845 : return -1;
13846 : }
13847 :
13848 : case CONST_VECTOR:
13849 : switch (GET_MODE (operands[0]))
13850 : {
13851 : case E_V16SImode:
13852 : if (pattern1021 (x2,
13853 : E_V16SImode,
13854 : E_HImode) != 0
13855 : || !(
13856 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13857 : (TARGET_AVX512F) && (
13858 : #line 18698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13859 : (TARGET_AVX512F
13860 : && (!true
13861 : || SImode == SImode
13862 : || SImode == DImode)) &&
13863 : #line 556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13864 : (TARGET_AVX512F))))
13865 : return -1;
13866 : return 8002; /* one_cmplv16si2_mask */
13867 :
13868 : case E_V8DImode:
13869 : if (pattern1021 (x2,
13870 : E_V8DImode,
13871 : E_QImode) != 0
13872 : || !(
13873 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13874 : (TARGET_AVX512F) && (
13875 : #line 18698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13876 : (TARGET_AVX512F
13877 : && (!true
13878 : || DImode == SImode
13879 : || DImode == DImode)) &&
13880 : #line 556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13881 : (TARGET_AVX512F))))
13882 : return -1;
13883 : return 8004; /* one_cmplv8di2_mask */
13884 :
13885 : case E_V8SImode:
13886 : if (pattern1021 (x2,
13887 : E_V8SImode,
13888 : E_QImode) != 0
13889 : || !(
13890 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13891 : (TARGET_AVX512F) && (
13892 : #line 18698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13893 : (TARGET_AVX512F
13894 : && (!true
13895 : || SImode == SImode
13896 : || SImode == DImode)) &&
13897 : #line 559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13898 : (TARGET_AVX))))
13899 : return -1;
13900 : return 8012; /* one_cmplv8si2_mask */
13901 :
13902 : case E_V4SImode:
13903 : if (pattern1021 (x2,
13904 : E_V4SImode,
13905 : E_QImode) != 0
13906 : || !(
13907 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13908 : (TARGET_AVX512F) &&
13909 : #line 18698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13910 : (TARGET_AVX512F
13911 : && (!true
13912 : || SImode == SImode
13913 : || SImode == DImode))))
13914 : return -1;
13915 : return 8014; /* one_cmplv4si2_mask */
13916 :
13917 : case E_V4DImode:
13918 : if (pattern1021 (x2,
13919 : E_V4DImode,
13920 : E_QImode) != 0
13921 : || !(
13922 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13923 : (TARGET_AVX512F) && (
13924 : #line 18698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13925 : (TARGET_AVX512F
13926 : && (!true
13927 : || DImode == SImode
13928 : || DImode == DImode)) &&
13929 : #line 560 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13930 : (TARGET_AVX))))
13931 : return -1;
13932 : return 8016; /* one_cmplv4di2_mask */
13933 :
13934 : case E_V2DImode:
13935 : if (pattern1021 (x2,
13936 : E_V2DImode,
13937 : E_QImode) != 0
13938 : || !(
13939 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13940 : (TARGET_AVX512F) &&
13941 : #line 18698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13942 : (TARGET_AVX512F
13943 : && (!true
13944 : || DImode == SImode
13945 : || DImode == DImode))))
13946 : return -1;
13947 : return 8018; /* one_cmplv2di2_mask */
13948 :
13949 : default:
13950 : return -1;
13951 : }
13952 :
13953 : default:
13954 : return -1;
13955 : }
13956 : }
13957 :
13958 : int
13959 : recog_208 (rtx x1 ATTRIBUTE_UNUSED,
13960 : rtx_insn *insn ATTRIBUTE_UNUSED,
13961 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13962 : {
13963 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13964 : rtx x2, x3, x4, x5;
13965 : int res ATTRIBUTE_UNUSED;
13966 : x2 = XEXP (x1, 1);
13967 : x3 = XEXP (x2, 0);
13968 : x4 = XEXP (x3, 0);
13969 : operands[1] = x4;
13970 : x5 = XEXP (x3, 1);
13971 : operands[2] = x5;
13972 : switch (pattern490 (x2))
13973 : {
13974 : case 0:
13975 : if (!(
13976 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13977 : (TARGET_AVX512F) && (
13978 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13979 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V32HFmode, operands)
13980 : && (64 == 64 || TARGET_AVX512VL) && 1) &&
13981 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13982 : (TARGET_AVX512FP16))))
13983 : return -1;
13984 : return 2748; /* *addv32hf3_mask */
13985 :
13986 : case 1:
13987 : if (!(
13988 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13989 : (TARGET_AVX512F) && (
13990 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13991 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V16HFmode, operands)
13992 : && (32 == 64 || TARGET_AVX512VL) && 1) &&
13993 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13994 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
13995 : return -1;
13996 : return 2756; /* *addv16hf3_mask */
13997 :
13998 : case 2:
13999 : if (!(
14000 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14001 : (TARGET_AVX512F) && (
14002 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14003 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V8HFmode, operands)
14004 : && (16 == 64 || TARGET_AVX512VL) && 1) &&
14005 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14006 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14007 : return -1;
14008 : return 2764; /* *addv8hf3_mask */
14009 :
14010 : case 3:
14011 : if (!(
14012 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14013 : (TARGET_AVX512F) && (
14014 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14015 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V16SFmode, operands)
14016 : && (64 == 64 || TARGET_AVX512VL) && 1) &&
14017 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14018 : (TARGET_AVX512F))))
14019 : return -1;
14020 : return 2772; /* *addv16sf3_mask */
14021 :
14022 : case 4:
14023 : if (!(
14024 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14025 : (TARGET_AVX512F) && (
14026 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14027 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V8SFmode, operands)
14028 : && (32 == 64 || TARGET_AVX512VL) && 1) &&
14029 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14030 : (TARGET_AVX))))
14031 : return -1;
14032 : return 2780; /* *addv8sf3_mask */
14033 :
14034 : case 5:
14035 : if (!(
14036 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14037 : (TARGET_AVX512F) &&
14038 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14039 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V4SFmode, operands)
14040 : && (16 == 64 || TARGET_AVX512VL) && 1)))
14041 : return -1;
14042 : return 2788; /* *addv4sf3_mask */
14043 :
14044 : case 6:
14045 : if (!(
14046 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14047 : (TARGET_AVX512F) && (
14048 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14049 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V8DFmode, operands)
14050 : && (64 == 64 || TARGET_AVX512VL) && 1) &&
14051 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14052 : (TARGET_AVX512F))))
14053 : return -1;
14054 : return 2796; /* *addv8df3_mask */
14055 :
14056 : case 7:
14057 : if (!(
14058 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14059 : (TARGET_AVX512F) && (
14060 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14061 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V4DFmode, operands)
14062 : && (32 == 64 || TARGET_AVX512VL) && 1) &&
14063 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14064 : (TARGET_AVX))))
14065 : return -1;
14066 : return 2804; /* *addv4df3_mask */
14067 :
14068 : case 8:
14069 : if (!(
14070 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14071 : (TARGET_AVX512F) && (
14072 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14073 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V2DFmode, operands)
14074 : && (16 == 64 || TARGET_AVX512VL) && 1) &&
14075 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14076 : (TARGET_SSE2))))
14077 : return -1;
14078 : return 2812; /* *addv2df3_mask */
14079 :
14080 : case 9:
14081 : if (!
14082 : #line 16610 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14083 : (TARGET_AVX512F && ix86_binary_operator_ok (PLUS, V16SImode, operands)))
14084 : return -1;
14085 : return 7523; /* *addv16si3_mask */
14086 :
14087 : case 10:
14088 : if (!(
14089 : #line 16610 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14090 : (TARGET_AVX512F && ix86_binary_operator_ok (PLUS, V8SImode, operands)) &&
14091 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14092 : (TARGET_AVX512VL)))
14093 : return -1;
14094 : return 7525; /* *addv8si3_mask */
14095 :
14096 : case 11:
14097 : if (!(
14098 : #line 16610 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14099 : (TARGET_AVX512F && ix86_binary_operator_ok (PLUS, V4SImode, operands)) &&
14100 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14101 : (TARGET_AVX512VL)))
14102 : return -1;
14103 : return 7527; /* *addv4si3_mask */
14104 :
14105 : case 12:
14106 : if (!
14107 : #line 16610 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14108 : (TARGET_AVX512F && ix86_binary_operator_ok (PLUS, V8DImode, operands)))
14109 : return -1;
14110 : return 7529; /* *addv8di3_mask */
14111 :
14112 : case 13:
14113 : if (!(
14114 : #line 16610 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14115 : (TARGET_AVX512F && ix86_binary_operator_ok (PLUS, V4DImode, operands)) &&
14116 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14117 : (TARGET_AVX512VL)))
14118 : return -1;
14119 : return 7531; /* *addv4di3_mask */
14120 :
14121 : case 14:
14122 : if (!(
14123 : #line 16610 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14124 : (TARGET_AVX512F && ix86_binary_operator_ok (PLUS, V2DImode, operands)) &&
14125 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14126 : (TARGET_AVX512VL)))
14127 : return -1;
14128 : return 7533; /* *addv2di3_mask */
14129 :
14130 : case 15:
14131 : if (!
14132 : #line 16624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14133 : (TARGET_AVX512BW && ix86_binary_operator_ok (PLUS, V64QImode, operands)))
14134 : return -1;
14135 : return 7535; /* *addv64qi3_mask */
14136 :
14137 : case 16:
14138 : if (!(
14139 : #line 16624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14140 : (TARGET_AVX512BW && ix86_binary_operator_ok (PLUS, V16QImode, operands)) &&
14141 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14142 : (TARGET_AVX512VL)))
14143 : return -1;
14144 : return 7537; /* *addv16qi3_mask */
14145 :
14146 : case 17:
14147 : if (!(
14148 : #line 16624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14149 : (TARGET_AVX512BW && ix86_binary_operator_ok (PLUS, V32QImode, operands)) &&
14150 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14151 : (TARGET_AVX512VL)))
14152 : return -1;
14153 : return 7539; /* *addv32qi3_mask */
14154 :
14155 : case 18:
14156 : if (!
14157 : #line 16624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14158 : (TARGET_AVX512BW && ix86_binary_operator_ok (PLUS, V32HImode, operands)))
14159 : return -1;
14160 : return 7541; /* *addv32hi3_mask */
14161 :
14162 : case 19:
14163 : if (!(
14164 : #line 16624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14165 : (TARGET_AVX512BW && ix86_binary_operator_ok (PLUS, V16HImode, operands)) &&
14166 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14167 : (TARGET_AVX512VL)))
14168 : return -1;
14169 : return 7543; /* *addv16hi3_mask */
14170 :
14171 : case 20:
14172 : if (!(
14173 : #line 16624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14174 : (TARGET_AVX512BW && ix86_binary_operator_ok (PLUS, V8HImode, operands)) &&
14175 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14176 : (TARGET_AVX512VL)))
14177 : return -1;
14178 : return 7545; /* *addv8hi3_mask */
14179 :
14180 : case 21:
14181 : if (!(
14182 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14183 : (TARGET_AVX512F) &&
14184 : #line 32828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14185 : (TARGET_AVX10_2)))
14186 : return -1;
14187 : return 10679; /* avx10_2_addbf16_v32bf_mask */
14188 :
14189 : case 22:
14190 : if (!(
14191 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14192 : (TARGET_AVX512F) &&
14193 : #line 32828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14194 : (TARGET_AVX10_2)))
14195 : return -1;
14196 : return 10687; /* avx10_2_addbf16_v16bf_mask */
14197 :
14198 : case 23:
14199 : if (!(
14200 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14201 : (TARGET_AVX512F) &&
14202 : #line 32828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14203 : (TARGET_AVX10_2)))
14204 : return -1;
14205 : return 10695; /* avx10_2_addbf16_v8bf_mask */
14206 :
14207 : case 24:
14208 : if (!(
14209 : #line 2733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14210 : (TARGET_SSE) &&
14211 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14212 : (TARGET_AVX512FP16)))
14213 : return -1;
14214 : return 2824; /* avx512fp16_vmaddv8hf3 */
14215 :
14216 : case 25:
14217 : if (!
14218 : #line 2733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14219 : (TARGET_SSE))
14220 : return -1;
14221 : return 2832; /* sse_vmaddv4sf3 */
14222 :
14223 : case 26:
14224 : if (!(
14225 : #line 2733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14226 : (TARGET_SSE) &&
14227 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14228 : (TARGET_SSE2)))
14229 : return -1;
14230 : return 2840; /* sse2_vmaddv2df3 */
14231 :
14232 : default:
14233 : return -1;
14234 : }
14235 : }
14236 :
14237 : int
14238 : recog_225 (rtx x1 ATTRIBUTE_UNUSED,
14239 : rtx_insn *insn ATTRIBUTE_UNUSED,
14240 : int *pnum_clobbers ATTRIBUTE_UNUSED)
14241 : {
14242 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
14243 : rtx x2, x3, x4, x5, x6, x7, x8;
14244 : int res ATTRIBUTE_UNUSED;
14245 : x2 = XEXP (x1, 1);
14246 : x3 = XVECEXP (x2, 0, 0);
14247 : x4 = XEXP (x3, 0);
14248 : x5 = XVECEXP (x4, 0, 0);
14249 : operands[1] = x5;
14250 : x6 = XEXP (x3, 1);
14251 : operands[2] = x6;
14252 : x7 = XEXP (x3, 2);
14253 : operands[3] = x7;
14254 : x8 = XVECEXP (x2, 0, 1);
14255 : operands[4] = x8;
14256 : switch (XINT (x4, 1))
14257 : {
14258 : case 157:
14259 : if (!const_4_or_8_to_11_operand (operands[4], E_SImode))
14260 : return -1;
14261 : switch (GET_MODE (operands[0]))
14262 : {
14263 : case E_V32HImode:
14264 : if (pattern1308 (x2,
14265 : E_SImode,
14266 : E_V32HImode,
14267 : E_V32HFmode) != 0
14268 : || !(
14269 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14270 : (TARGET_AVX512F) && (
14271 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14272 : (TARGET_AVX512F) &&
14273 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14274 : (TARGET_AVX512FP16))))
14275 : return -1;
14276 : return 4449; /* avx512fp16_vcvtph2uw_v32hi_mask_round */
14277 :
14278 : case E_V16SImode:
14279 : if (pattern1318 (x2,
14280 : E_V16SImode,
14281 : E_HImode) != 0)
14282 : return -1;
14283 : switch (GET_MODE (operands[1]))
14284 : {
14285 : case E_V16HFmode:
14286 : if (!register_operand (operands[1], E_V16HFmode)
14287 : || !(
14288 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14289 : (TARGET_AVX512F) && (
14290 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14291 : (TARGET_AVX512F) &&
14292 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14293 : (TARGET_AVX512FP16))))
14294 : return -1;
14295 : return 4457; /* avx512fp16_vcvtph2udq_v16si_mask_round */
14296 :
14297 : case E_V16SFmode:
14298 : if (!nonimmediate_operand (operands[1], E_V16SFmode)
14299 : || !
14300 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14301 : (TARGET_AVX512F))
14302 : return -1;
14303 : return 4885; /* avx512f_fixuns_notruncv16sfv16si_mask_round */
14304 :
14305 : default:
14306 : return -1;
14307 : }
14308 :
14309 : case E_V8DImode:
14310 : switch (pattern1485 (x2,
14311 : E_V8DImode))
14312 : {
14313 : case 0:
14314 : if (!(
14315 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14316 : (TARGET_AVX512F) && (
14317 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14318 : (TARGET_AVX512F) &&
14319 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14320 : (TARGET_AVX512FP16))))
14321 : return -1;
14322 : return 4465; /* avx512fp16_vcvtph2uqq_v8di_mask_round */
14323 :
14324 : case 1:
14325 : if (!(
14326 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14327 : (TARGET_AVX512F) && (
14328 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14329 : (TARGET_AVX512F) &&
14330 : #line 9073 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14331 : (TARGET_AVX512DQ && (V8DImode == V16SFmode
14332 : || V8DImode == V8DFmode
14333 : || V8DImode == V8DImode
14334 : || V8DImode == V16SImode
14335 : || V8DImode == V32HFmode)))))
14336 : return -1;
14337 : return 4905; /* avx512dq_cvtps2uqqv8di_mask_round */
14338 :
14339 : case 2:
14340 : if (!(
14341 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14342 : (TARGET_AVX512F) && (
14343 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14344 : (TARGET_AVX512F) &&
14345 : #line 10051 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14346 : (TARGET_AVX512DQ && (V8DFmode == V16SFmode
14347 : || V8DFmode == V8DFmode
14348 : || V8DFmode == V8DImode
14349 : || V8DFmode == V16SImode
14350 : || V8DFmode == V32HFmode)))))
14351 : return -1;
14352 : return 5131; /* fixuns_notruncv8dfv8di2_mask_round */
14353 :
14354 : default:
14355 : return -1;
14356 : }
14357 :
14358 : case E_V16HImode:
14359 : if (pattern1308 (x2,
14360 : E_HImode,
14361 : E_V16HImode,
14362 : E_V16HFmode) != 0
14363 : || !(
14364 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14365 : (TARGET_AVX512F) && (
14366 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14367 : (TARGET_AVX512F) && (
14368 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14369 : (TARGET_AVX512FP16) &&
14370 : #line 751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14371 : (TARGET_AVX512VL)))))
14372 : return -1;
14373 : return 4473; /* avx512fp16_vcvtph2uw_v16hi_mask_round */
14374 :
14375 : case E_V8SImode:
14376 : switch (pattern1485 (x2,
14377 : E_V8SImode))
14378 : {
14379 : case 0:
14380 : if (!(
14381 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14382 : (TARGET_AVX512F) && (
14383 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14384 : (TARGET_AVX512F) && (
14385 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14386 : (TARGET_AVX512FP16) &&
14387 : #line 751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14388 : (TARGET_AVX512VL)))))
14389 : return -1;
14390 : return 4481; /* avx512fp16_vcvtph2udq_v8si_mask_round */
14391 :
14392 : case 1:
14393 : if (!(
14394 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14395 : (TARGET_AVX512F) && (
14396 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14397 : (TARGET_AVX512F) && (
14398 : #line 9040 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14399 : (TARGET_AVX512F) &&
14400 : #line 668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14401 : (TARGET_AVX512VL)))))
14402 : return -1;
14403 : return 4889; /* avx512vl_fixuns_notruncv8sfv8si_mask_round */
14404 :
14405 : case 2:
14406 : if (!
14407 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14408 : (TARGET_AVX512F))
14409 : return -1;
14410 : return 5051; /* fixuns_notruncv8dfv8si2_mask_round */
14411 :
14412 : default:
14413 : return -1;
14414 : }
14415 :
14416 : case E_V4DImode:
14417 : if (pattern1308 (x2,
14418 : E_QImode,
14419 : E_V4DImode,
14420 : E_V8HFmode) != 0
14421 : || !(
14422 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14423 : (TARGET_AVX512F) && (
14424 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14425 : (TARGET_AVX512F) && (
14426 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14427 : (TARGET_AVX512FP16) &&
14428 : #line 752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14429 : (TARGET_AVX512VL)))))
14430 : return -1;
14431 : return 4489; /* avx512fp16_vcvtph2uqq_v4di_mask_round */
14432 :
14433 : case E_V8HImode:
14434 : if (pattern1308 (x2,
14435 : E_QImode,
14436 : E_V8HImode,
14437 : E_V8HFmode) != 0
14438 : || !(
14439 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14440 : (TARGET_AVX512F) && (
14441 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14442 : (TARGET_AVX512F) && (
14443 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14444 : (TARGET_AVX512FP16) &&
14445 : #line 752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14446 : (TARGET_AVX512VL)))))
14447 : return -1;
14448 : return 4497; /* avx512fp16_vcvtph2uw_v8hi_mask_round */
14449 :
14450 : case E_V4SImode:
14451 : if (pattern1318 (x2,
14452 : E_V4SImode,
14453 : E_QImode) != 0)
14454 : return -1;
14455 : switch (GET_MODE (operands[1]))
14456 : {
14457 : case E_V8HFmode:
14458 : if (!register_operand (operands[1], E_V8HFmode)
14459 : || !(
14460 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14461 : (TARGET_AVX512F) && (
14462 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14463 : (TARGET_AVX512F) && (
14464 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14465 : (TARGET_AVX512FP16) &&
14466 : #line 753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14467 : (TARGET_AVX512VL)))))
14468 : return -1;
14469 : return 4505; /* avx512fp16_vcvtph2udq_v4si_mask_round */
14470 :
14471 : case E_V4SFmode:
14472 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
14473 : || !(
14474 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14475 : (TARGET_AVX512F) && (
14476 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14477 : (TARGET_AVX512F) && (
14478 : #line 9040 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14479 : (TARGET_AVX512F) &&
14480 : #line 668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14481 : (TARGET_AVX512VL)))))
14482 : return -1;
14483 : return 4893; /* avx512vl_fixuns_notruncv4sfv4si_mask_round */
14484 :
14485 : case E_V4DFmode:
14486 : if (!nonimmediate_operand (operands[1], E_V4DFmode)
14487 : || !(
14488 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14489 : (TARGET_AVX512F) && (
14490 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14491 : (TARGET_AVX512F) && (
14492 : #line 9832 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14493 : (TARGET_AVX512F) &&
14494 : #line 469 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14495 : (TARGET_AVX512VL)))))
14496 : return -1;
14497 : return 5055; /* fixuns_notruncv4dfv4si2_mask_round */
14498 :
14499 : default:
14500 : return -1;
14501 : }
14502 :
14503 : case E_V2DImode:
14504 : if (pattern1308 (x2,
14505 : E_QImode,
14506 : E_V2DImode,
14507 : E_V8HFmode) != 0
14508 : || !(
14509 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14510 : (TARGET_AVX512F) && (
14511 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14512 : (TARGET_AVX512F) && (
14513 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14514 : (TARGET_AVX512FP16) &&
14515 : #line 753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14516 : (TARGET_AVX512VL)))))
14517 : return -1;
14518 : return 4513; /* avx512fp16_vcvtph2uqq_v2di_mask_round */
14519 :
14520 : default:
14521 : return -1;
14522 : }
14523 :
14524 : case 47:
14525 : if (!const_4_or_8_to_11_operand (operands[4], E_SImode))
14526 : return -1;
14527 : switch (GET_MODE (operands[0]))
14528 : {
14529 : case E_V32HImode:
14530 : if (pattern1308 (x2,
14531 : E_SImode,
14532 : E_V32HImode,
14533 : E_V32HFmode) != 0
14534 : || !(
14535 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14536 : (TARGET_AVX512F) && (
14537 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14538 : (TARGET_AVX512F) &&
14539 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14540 : (TARGET_AVX512FP16))))
14541 : return -1;
14542 : return 4453; /* avx512fp16_vcvtph2w_v32hi_mask_round */
14543 :
14544 : case E_V16SImode:
14545 : switch (pattern1310 (x2))
14546 : {
14547 : case 0:
14548 : if (!(
14549 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14550 : (TARGET_AVX512F) && (
14551 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14552 : (TARGET_AVX512F) &&
14553 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14554 : (TARGET_AVX512FP16))))
14555 : return -1;
14556 : return 4461; /* avx512fp16_vcvtph2dq_v16si_mask_round */
14557 :
14558 : case 1:
14559 : if (!
14560 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14561 : (TARGET_AVX512F))
14562 : return -1;
14563 : return 4881; /* avx512f_fix_notruncv16sfv16si_mask_round */
14564 :
14565 : default:
14566 : return -1;
14567 : }
14568 :
14569 : case E_V8DImode:
14570 : if (pattern1318 (x2,
14571 : E_V8DImode,
14572 : E_QImode) != 0)
14573 : return -1;
14574 : switch (GET_MODE (operands[1]))
14575 : {
14576 : case E_V8HFmode:
14577 : if (!register_operand (operands[1], E_V8HFmode)
14578 : || !(
14579 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14580 : (TARGET_AVX512F) && (
14581 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14582 : (TARGET_AVX512F) &&
14583 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14584 : (TARGET_AVX512FP16))))
14585 : return -1;
14586 : return 4469; /* avx512fp16_vcvtph2qq_v8di_mask_round */
14587 :
14588 : case E_V8SFmode:
14589 : if (!nonimmediate_operand (operands[1], E_V8SFmode)
14590 : || !(
14591 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14592 : (TARGET_AVX512F) && (
14593 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14594 : (TARGET_AVX512F) &&
14595 : #line 9050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14596 : (TARGET_AVX512DQ && (V8DImode == V16SFmode
14597 : || V8DImode == V8DFmode
14598 : || V8DImode == V8DImode
14599 : || V8DImode == V16SImode
14600 : || V8DImode == V32HFmode)))))
14601 : return -1;
14602 : return 4897; /* avx512dq_cvtps2qqv8di_mask_round */
14603 :
14604 : case E_V8DFmode:
14605 : if (!register_operand (operands[1], E_V8DFmode)
14606 : || !(
14607 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14608 : (TARGET_AVX512F) && (
14609 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14610 : (TARGET_AVX512F) &&
14611 : #line 10040 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14612 : (TARGET_AVX512DQ && (V8DFmode == V16SFmode
14613 : || V8DFmode == V8DFmode
14614 : || V8DFmode == V8DImode
14615 : || V8DFmode == V16SImode
14616 : || V8DFmode == V32HFmode)))))
14617 : return -1;
14618 : return 5123; /* fix_notruncv8dfv8di2_mask_round */
14619 :
14620 : default:
14621 : return -1;
14622 : }
14623 :
14624 : case E_V16HImode:
14625 : if (pattern1308 (x2,
14626 : E_HImode,
14627 : E_V16HImode,
14628 : E_V16HFmode) != 0
14629 : || !(
14630 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14631 : (TARGET_AVX512F) && (
14632 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14633 : (TARGET_AVX512F) && (
14634 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14635 : (TARGET_AVX512FP16) &&
14636 : #line 751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14637 : (TARGET_AVX512VL)))))
14638 : return -1;
14639 : return 4477; /* avx512fp16_vcvtph2w_v16hi_mask_round */
14640 :
14641 : case E_V8SImode:
14642 : switch (pattern1309 (x2))
14643 : {
14644 : case 0:
14645 : if (!(
14646 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14647 : (TARGET_AVX512F) && (
14648 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14649 : (TARGET_AVX512F) && (
14650 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14651 : (TARGET_AVX512FP16) &&
14652 : #line 751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14653 : (TARGET_AVX512VL)))))
14654 : return -1;
14655 : return 4485; /* avx512fp16_vcvtph2dq_v8si_mask_round */
14656 :
14657 : case 1:
14658 : if (!
14659 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14660 : (TARGET_AVX512F))
14661 : return -1;
14662 : return 5041; /* avx512f_cvtpd2dq512_mask_round */
14663 :
14664 : default:
14665 : return -1;
14666 : }
14667 :
14668 : case E_V4DImode:
14669 : if (pattern1308 (x2,
14670 : E_QImode,
14671 : E_V4DImode,
14672 : E_V8HFmode) != 0
14673 : || !(
14674 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14675 : (TARGET_AVX512F) && (
14676 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14677 : (TARGET_AVX512F) && (
14678 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14679 : (TARGET_AVX512FP16) &&
14680 : #line 752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14681 : (TARGET_AVX512VL)))))
14682 : return -1;
14683 : return 4493; /* avx512fp16_vcvtph2qq_v4di_mask_round */
14684 :
14685 : case E_V8HImode:
14686 : if (pattern1308 (x2,
14687 : E_QImode,
14688 : E_V8HImode,
14689 : E_V8HFmode) != 0
14690 : || !(
14691 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14692 : (TARGET_AVX512F) && (
14693 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14694 : (TARGET_AVX512F) && (
14695 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14696 : (TARGET_AVX512FP16) &&
14697 : #line 752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14698 : (TARGET_AVX512VL)))))
14699 : return -1;
14700 : return 4501; /* avx512fp16_vcvtph2w_v8hi_mask_round */
14701 :
14702 : case E_V4SImode:
14703 : if (pattern1308 (x2,
14704 : E_QImode,
14705 : E_V4SImode,
14706 : E_V8HFmode) != 0
14707 : || !(
14708 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14709 : (TARGET_AVX512F) && (
14710 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14711 : (TARGET_AVX512F) && (
14712 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14713 : (TARGET_AVX512FP16) &&
14714 : #line 753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14715 : (TARGET_AVX512VL)))))
14716 : return -1;
14717 : return 4509; /* avx512fp16_vcvtph2dq_v4si_mask_round */
14718 :
14719 : case E_V2DImode:
14720 : if (pattern1308 (x2,
14721 : E_QImode,
14722 : E_V2DImode,
14723 : E_V8HFmode) != 0
14724 : || !(
14725 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14726 : (TARGET_AVX512F) && (
14727 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14728 : (TARGET_AVX512F) && (
14729 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14730 : (TARGET_AVX512FP16) &&
14731 : #line 753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14732 : (TARGET_AVX512VL)))))
14733 : return -1;
14734 : return 4517; /* avx512fp16_vcvtph2qq_v2di_mask_round */
14735 :
14736 : default:
14737 : return -1;
14738 : }
14739 :
14740 : case 173:
14741 : switch (pattern1311 (x2))
14742 : {
14743 : case 0:
14744 : if (!(
14745 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14746 : (TARGET_AVX512F) && (
14747 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14748 : (TARGET_AVX512F) && (
14749 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14750 : (TARGET_AVX512FP16) &&
14751 : #line 687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14752 : (TARGET_AVX512VL)))))
14753 : return -1;
14754 : return 4607; /* unspec_avx512fp16_fix_truncv8hi2_mask_round */
14755 :
14756 : case 1:
14757 : if (!(
14758 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14759 : (TARGET_AVX512F) && (
14760 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14761 : (TARGET_AVX512F) && (
14762 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14763 : (TARGET_AVX512FP16) &&
14764 : #line 687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14765 : (TARGET_AVX512VL)))))
14766 : return -1;
14767 : return 4615; /* unspec_avx512fp16_fix_truncv16hi2_mask_round */
14768 :
14769 : case 2:
14770 : if (!(
14771 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14772 : (TARGET_AVX512F) && (
14773 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14774 : (TARGET_AVX512F) &&
14775 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14776 : (TARGET_AVX512FP16))))
14777 : return -1;
14778 : return 4623; /* unspec_avx512fp16_fix_truncv32hi2_mask_round */
14779 :
14780 : case 3:
14781 : if (!(
14782 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14783 : (TARGET_AVX512F) && (
14784 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14785 : (TARGET_AVX512F) && (
14786 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14787 : (TARGET_AVX512FP16) &&
14788 : #line 688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14789 : (TARGET_AVX512VL)))))
14790 : return -1;
14791 : return 4631; /* unspec_avx512fp16_fix_truncv8si2_mask_round */
14792 :
14793 : case 4:
14794 : if (!
14795 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14796 : (TARGET_AVX512F))
14797 : return -1;
14798 : return 5062; /* unspec_fix_truncv8dfv8si2_mask_round */
14799 :
14800 : case 5:
14801 : if (!(
14802 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14803 : (TARGET_AVX512F) && (
14804 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14805 : (TARGET_AVX512F) &&
14806 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14807 : (TARGET_AVX512FP16))))
14808 : return -1;
14809 : return 4639; /* unspec_avx512fp16_fix_truncv16si2_mask_round */
14810 :
14811 : case 6:
14812 : if (!
14813 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14814 : (TARGET_AVX512F))
14815 : return -1;
14816 : return 4913; /* unspec_fix_truncv16sfv16si2_mask_round */
14817 :
14818 : case 7:
14819 : if (!(
14820 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14821 : (TARGET_AVX512F) && (
14822 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14823 : (TARGET_AVX512F) &&
14824 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14825 : (TARGET_AVX512FP16))))
14826 : return -1;
14827 : return 4647; /* unspec_avx512fp16_fix_truncv8di2_mask_round */
14828 :
14829 : case 8:
14830 : if (!(
14831 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14832 : (TARGET_AVX512F) && (
14833 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14834 : (TARGET_AVX512F) &&
14835 : #line 10019 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14836 : (TARGET_AVX512DQ && (V8DFmode == V16SFmode
14837 : || V8DFmode == V8DFmode
14838 : || V8DFmode == V8DImode
14839 : || V8DFmode == V16SImode
14840 : || V8DFmode == V32HFmode)))))
14841 : return -1;
14842 : return 5091; /* unspec_fix_truncv8dfv8di2_mask_round */
14843 :
14844 : case 9:
14845 : if (!(
14846 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14847 : (TARGET_AVX512F) && (
14848 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14849 : (TARGET_AVX512F) &&
14850 : #line 10062 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14851 : (TARGET_AVX512DQ && (V8DImode == V16SFmode
14852 : || V8DImode == V8DFmode
14853 : || V8DImode == V8DImode
14854 : || V8DImode == V16SImode
14855 : || V8DImode == V32HFmode)))))
14856 : return -1;
14857 : return 5139; /* unspec_fix_truncv8sfv8di2_mask_round */
14858 :
14859 : default:
14860 : return -1;
14861 : }
14862 :
14863 : case 174:
14864 : switch (pattern1311 (x2))
14865 : {
14866 : case 0:
14867 : if (!(
14868 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14869 : (TARGET_AVX512F) && (
14870 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14871 : (TARGET_AVX512F) && (
14872 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14873 : (TARGET_AVX512FP16) &&
14874 : #line 687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14875 : (TARGET_AVX512VL)))))
14876 : return -1;
14877 : return 4611; /* unspec_avx512fp16_fixuns_truncv8hi2_mask_round */
14878 :
14879 : case 1:
14880 : if (!(
14881 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14882 : (TARGET_AVX512F) && (
14883 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14884 : (TARGET_AVX512F) && (
14885 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14886 : (TARGET_AVX512FP16) &&
14887 : #line 687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14888 : (TARGET_AVX512VL)))))
14889 : return -1;
14890 : return 4619; /* unspec_avx512fp16_fixuns_truncv16hi2_mask_round */
14891 :
14892 : case 2:
14893 : if (!(
14894 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14895 : (TARGET_AVX512F) && (
14896 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14897 : (TARGET_AVX512F) &&
14898 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14899 : (TARGET_AVX512FP16))))
14900 : return -1;
14901 : return 4627; /* unspec_avx512fp16_fixuns_truncv32hi2_mask_round */
14902 :
14903 : case 3:
14904 : if (!(
14905 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14906 : (TARGET_AVX512F) && (
14907 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14908 : (TARGET_AVX512F) && (
14909 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14910 : (TARGET_AVX512FP16) &&
14911 : #line 688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14912 : (TARGET_AVX512VL)))))
14913 : return -1;
14914 : return 4635; /* unspec_avx512fp16_fixuns_truncv8si2_mask_round */
14915 :
14916 : case 4:
14917 : if (!
14918 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14919 : (TARGET_AVX512F))
14920 : return -1;
14921 : return 5066; /* unspec_fixuns_truncv8dfv8si2_mask_round */
14922 :
14923 : case 5:
14924 : if (!(
14925 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14926 : (TARGET_AVX512F) && (
14927 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14928 : (TARGET_AVX512F) &&
14929 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14930 : (TARGET_AVX512FP16))))
14931 : return -1;
14932 : return 4643; /* unspec_avx512fp16_fixuns_truncv16si2_mask_round */
14933 :
14934 : case 6:
14935 : if (!
14936 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14937 : (TARGET_AVX512F))
14938 : return -1;
14939 : return 4917; /* unspec_fixuns_truncv16sfv16si2_mask_round */
14940 :
14941 : case 7:
14942 : if (!(
14943 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14944 : (TARGET_AVX512F) && (
14945 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14946 : (TARGET_AVX512F) &&
14947 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14948 : (TARGET_AVX512FP16))))
14949 : return -1;
14950 : return 4651; /* unspec_avx512fp16_fixuns_truncv8di2_mask_round */
14951 :
14952 : case 8:
14953 : if (!(
14954 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14955 : (TARGET_AVX512F) && (
14956 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14957 : (TARGET_AVX512F) &&
14958 : #line 10019 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14959 : (TARGET_AVX512DQ && (V8DFmode == V16SFmode
14960 : || V8DFmode == V8DFmode
14961 : || V8DFmode == V8DImode
14962 : || V8DFmode == V16SImode
14963 : || V8DFmode == V32HFmode)))))
14964 : return -1;
14965 : return 5095; /* unspec_fixuns_truncv8dfv8di2_mask_round */
14966 :
14967 : case 9:
14968 : if (!(
14969 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14970 : (TARGET_AVX512F) && (
14971 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14972 : (TARGET_AVX512F) &&
14973 : #line 10062 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14974 : (TARGET_AVX512DQ && (V8DImode == V16SFmode
14975 : || V8DImode == V8DFmode
14976 : || V8DImode == V8DImode
14977 : || V8DImode == V16SImode
14978 : || V8DImode == V32HFmode)))))
14979 : return -1;
14980 : return 5143; /* unspec_fixuns_truncv8sfv8di2_mask_round */
14981 :
14982 : default:
14983 : return -1;
14984 : }
14985 :
14986 : case 166:
14987 : if (!const48_operand (operands[4], E_SImode))
14988 : return -1;
14989 : switch (GET_MODE (operands[0]))
14990 : {
14991 : case E_V32HFmode:
14992 : if (pattern1486 (x2,
14993 : E_V32HFmode,
14994 : E_SImode) != 0
14995 : || !(
14996 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14997 : (TARGET_AVX512F) && (
14998 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14999 : (TARGET_AVX512F) && (
15000 : #line 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15001 : (TARGET_AVX512F) &&
15002 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15003 : (TARGET_AVX512FP16)))))
15004 : return -1;
15005 : return 7059; /* avx512bw_getexpv32hf_mask_round */
15006 :
15007 : case E_V16HFmode:
15008 : if (pattern1486 (x2,
15009 : E_V16HFmode,
15010 : E_HImode) != 0
15011 : || !(
15012 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15013 : (TARGET_AVX512F) && (
15014 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15015 : (TARGET_AVX512F) && (
15016 : #line 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15017 : (TARGET_AVX512F) &&
15018 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15019 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))))
15020 : return -1;
15021 : return 7063; /* avx512vl_getexpv16hf_mask_round */
15022 :
15023 : case E_V8HFmode:
15024 : if (pattern1486 (x2,
15025 : E_V8HFmode,
15026 : E_QImode) != 0
15027 : || !(
15028 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15029 : (TARGET_AVX512F) && (
15030 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15031 : (TARGET_AVX512F) && (
15032 : #line 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15033 : (TARGET_AVX512F) &&
15034 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15035 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))))
15036 : return -1;
15037 : return 7067; /* avx512fp16_getexpv8hf_mask_round */
15038 :
15039 : case E_V16SFmode:
15040 : if (pattern1486 (x2,
15041 : E_V16SFmode,
15042 : E_HImode) != 0
15043 : || !
15044 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15045 : (TARGET_AVX512F))
15046 : return -1;
15047 : return 7071; /* avx512f_getexpv16sf_mask_round */
15048 :
15049 : case E_V8SFmode:
15050 : if (pattern1486 (x2,
15051 : E_V8SFmode,
15052 : E_QImode) != 0
15053 : || !(
15054 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15055 : (TARGET_AVX512F) && (
15056 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15057 : (TARGET_AVX512F) && (
15058 : #line 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15059 : (TARGET_AVX512F) &&
15060 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15061 : (TARGET_AVX512VL)))))
15062 : return -1;
15063 : return 7075; /* avx512vl_getexpv8sf_mask_round */
15064 :
15065 : case E_V4SFmode:
15066 : if (pattern1486 (x2,
15067 : E_V4SFmode,
15068 : E_QImode) != 0
15069 : || !(
15070 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15071 : (TARGET_AVX512F) && (
15072 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15073 : (TARGET_AVX512F) && (
15074 : #line 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15075 : (TARGET_AVX512F) &&
15076 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15077 : (TARGET_AVX512VL)))))
15078 : return -1;
15079 : return 7079; /* avx512vl_getexpv4sf_mask_round */
15080 :
15081 : case E_V8DFmode:
15082 : if (pattern1486 (x2,
15083 : E_V8DFmode,
15084 : E_QImode) != 0
15085 : || !
15086 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15087 : (TARGET_AVX512F))
15088 : return -1;
15089 : return 7083; /* avx512f_getexpv8df_mask_round */
15090 :
15091 : case E_V4DFmode:
15092 : if (pattern1486 (x2,
15093 : E_V4DFmode,
15094 : E_QImode) != 0
15095 : || !(
15096 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15097 : (TARGET_AVX512F) && (
15098 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15099 : (TARGET_AVX512F) && (
15100 : #line 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15101 : (TARGET_AVX512F) &&
15102 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15103 : (TARGET_AVX512VL)))))
15104 : return -1;
15105 : return 7087; /* avx512vl_getexpv4df_mask_round */
15106 :
15107 : case E_V2DFmode:
15108 : if (pattern1486 (x2,
15109 : E_V2DFmode,
15110 : E_QImode) != 0
15111 : || !(
15112 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15113 : (TARGET_AVX512F) && (
15114 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15115 : (TARGET_AVX512F) && (
15116 : #line 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15117 : (TARGET_AVX512F) &&
15118 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15119 : (TARGET_AVX512VL)))))
15120 : return -1;
15121 : return 7091; /* avx512vl_getexpv2df_mask_round */
15122 :
15123 : default:
15124 : return -1;
15125 : }
15126 :
15127 : case 150:
15128 : if (pattern1312 (x2,
15129 : E_HImode,
15130 : E_V16SFmode,
15131 : E_V16HImode) != 0
15132 : || !
15133 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15134 : (TARGET_AVX512F))
15135 : return -1;
15136 : return 9730; /* avx512f_vcvtph2ps512_mask_round */
15137 :
15138 : case 266:
15139 : if (pattern1313 (x2,
15140 : E_SImode,
15141 : E_V32HImode,
15142 : E_V32HFmode) != 0
15143 : || !(
15144 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15145 : (TARGET_AVX512F) && (
15146 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15147 : (TARGET_AVX512F) &&
15148 : #line 33216 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15149 : (TARGET_AVX10_2 && (V32HFmode == V16SFmode
15150 : || V32HFmode == V8DFmode
15151 : || V32HFmode == V8DImode
15152 : || V32HFmode == V16SImode
15153 : || V32HFmode == V32HFmode)))))
15154 : return -1;
15155 : return 10831; /* avx10_2_cvtph2ibsv32hf_mask_round */
15156 :
15157 : case 267:
15158 : if (pattern1313 (x2,
15159 : E_SImode,
15160 : E_V32HImode,
15161 : E_V32HFmode) != 0
15162 : || !(
15163 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15164 : (TARGET_AVX512F) && (
15165 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15166 : (TARGET_AVX512F) &&
15167 : #line 33216 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15168 : (TARGET_AVX10_2 && (V32HFmode == V16SFmode
15169 : || V32HFmode == V8DFmode
15170 : || V32HFmode == V8DImode
15171 : || V32HFmode == V16SImode
15172 : || V32HFmode == V32HFmode)))))
15173 : return -1;
15174 : return 10835; /* avx10_2_cvtph2iubsv32hf_mask_round */
15175 :
15176 : case 272:
15177 : if (pattern1312 (x2,
15178 : E_SImode,
15179 : E_V32HImode,
15180 : E_V32HFmode) != 0
15181 : || !(
15182 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15183 : (TARGET_AVX512F) && (
15184 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15185 : (TARGET_AVX512F) &&
15186 : #line 33231 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15187 : (TARGET_AVX10_2 && (V32HFmode == V16SFmode
15188 : || V32HFmode == V8DFmode
15189 : || V32HFmode == V8DImode
15190 : || V32HFmode == V16SImode
15191 : || V32HFmode == V32HFmode)))))
15192 : return -1;
15193 : return 10847; /* avx10_2_cvttph2ibsv32hf_mask_round */
15194 :
15195 : case 273:
15196 : if (pattern1312 (x2,
15197 : E_SImode,
15198 : E_V32HImode,
15199 : E_V32HFmode) != 0
15200 : || !(
15201 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15202 : (TARGET_AVX512F) && (
15203 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15204 : (TARGET_AVX512F) &&
15205 : #line 33231 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15206 : (TARGET_AVX10_2 && (V32HFmode == V16SFmode
15207 : || V32HFmode == V8DFmode
15208 : || V32HFmode == V8DImode
15209 : || V32HFmode == V16SImode
15210 : || V32HFmode == V32HFmode)))))
15211 : return -1;
15212 : return 10851; /* avx10_2_cvttph2iubsv32hf_mask_round */
15213 :
15214 : case 268:
15215 : if (pattern1313 (x2,
15216 : E_HImode,
15217 : E_V16SImode,
15218 : E_V16SFmode) != 0
15219 : || !(
15220 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15221 : (TARGET_AVX512F) && (
15222 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15223 : (TARGET_AVX512F) &&
15224 : #line 33246 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15225 : (TARGET_AVX10_2 && (V16SFmode == V16SFmode
15226 : || V16SFmode == V8DFmode
15227 : || V16SFmode == V8DImode
15228 : || V16SFmode == V16SImode
15229 : || V16SFmode == V32HFmode)))))
15230 : return -1;
15231 : return 10863; /* avx10_2_cvtps2ibsv16sf_mask_round */
15232 :
15233 : case 269:
15234 : if (pattern1313 (x2,
15235 : E_HImode,
15236 : E_V16SImode,
15237 : E_V16SFmode) != 0
15238 : || !(
15239 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15240 : (TARGET_AVX512F) && (
15241 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15242 : (TARGET_AVX512F) &&
15243 : #line 33246 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15244 : (TARGET_AVX10_2 && (V16SFmode == V16SFmode
15245 : || V16SFmode == V8DFmode
15246 : || V16SFmode == V8DImode
15247 : || V16SFmode == V16SImode
15248 : || V16SFmode == V32HFmode)))))
15249 : return -1;
15250 : return 10867; /* avx10_2_cvtps2iubsv16sf_mask_round */
15251 :
15252 : case 274:
15253 : if (pattern1312 (x2,
15254 : E_HImode,
15255 : E_V16SImode,
15256 : E_V16SFmode) != 0
15257 : || !(
15258 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15259 : (TARGET_AVX512F) && (
15260 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15261 : (TARGET_AVX512F) &&
15262 : #line 33261 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15263 : (TARGET_AVX10_2 && (V16SFmode == V16SFmode
15264 : || V16SFmode == V8DFmode
15265 : || V16SFmode == V8DImode
15266 : || V16SFmode == V16SImode
15267 : || V16SFmode == V32HFmode)))))
15268 : return -1;
15269 : return 10879; /* avx10_2_cvttps2ibsv16sf_mask_round */
15270 :
15271 : case 275:
15272 : if (pattern1312 (x2,
15273 : E_HImode,
15274 : E_V16SImode,
15275 : E_V16SFmode) != 0
15276 : || !(
15277 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15278 : (TARGET_AVX512F) && (
15279 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15280 : (TARGET_AVX512F) &&
15281 : #line 33261 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15282 : (TARGET_AVX10_2 && (V16SFmode == V16SFmode
15283 : || V16SFmode == V8DFmode
15284 : || V16SFmode == V8DImode
15285 : || V16SFmode == V16SImode
15286 : || V16SFmode == V32HFmode)))))
15287 : return -1;
15288 : return 10883; /* avx10_2_cvttps2iubsv16sf_mask_round */
15289 :
15290 : case 276:
15291 : switch (pattern1314 (x2))
15292 : {
15293 : case 0:
15294 : if (!(
15295 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15296 : (TARGET_AVX512F) && (
15297 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15298 : (TARGET_AVX512F) && (
15299 : #line 33280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15300 : (TARGET_AVX10_2 && (V16SFmode == V16SFmode
15301 : || V16SFmode == V8DFmode
15302 : || V16SFmode == V8DImode
15303 : || V16SFmode == V16SImode
15304 : || V16SFmode == V32HFmode)) &&
15305 : #line 382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15306 : (TARGET_AVX512F)))))
15307 : return -1;
15308 : return 10895; /* avx10_2_vcvttps2dqsv16sf_mask_round */
15309 :
15310 : case 1:
15311 : if (!(
15312 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15313 : (TARGET_AVX512F) && (
15314 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15315 : (TARGET_AVX512F) && (
15316 : #line 33280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15317 : (TARGET_AVX10_2 && (V8DFmode == V16SFmode
15318 : || V8DFmode == V8DFmode
15319 : || V8DFmode == V8DImode
15320 : || V8DFmode == V16SImode
15321 : || V8DFmode == V32HFmode)) &&
15322 : #line 383 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15323 : (TARGET_AVX512F)))))
15324 : return -1;
15325 : return 10911; /* avx10_2_vcvttpd2dqsv8df_mask_round */
15326 :
15327 : case 2:
15328 : if (!(
15329 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15330 : (TARGET_AVX512F) && (
15331 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15332 : (TARGET_AVX512F) && (
15333 : #line 33291 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15334 : (TARGET_AVX10_2 && (V8DFmode == V16SFmode
15335 : || V8DFmode == V8DFmode
15336 : || V8DFmode == V8DImode
15337 : || V8DFmode == V16SImode
15338 : || V8DFmode == V32HFmode)) &&
15339 : #line 451 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15340 : (TARGET_AVX512F)))))
15341 : return -1;
15342 : return 10927; /* avx10_2_vcvttpd2qqsv8df_mask_round */
15343 :
15344 : case 3:
15345 : if (!(
15346 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15347 : (TARGET_AVX512F) && (
15348 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15349 : (TARGET_AVX512F) && (
15350 : #line 33302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15351 : (TARGET_AVX10_2 && (V8DImode == V16SFmode
15352 : || V8DImode == V8DFmode
15353 : || V8DImode == V8DImode
15354 : || V8DImode == V16SImode
15355 : || V8DImode == V32HFmode)) &&
15356 : #line 611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15357 : (TARGET_AVX512F)))))
15358 : return -1;
15359 : return 10943; /* avx10_2_vcvttps2qqsv8di_mask_round */
15360 :
15361 : default:
15362 : return -1;
15363 : }
15364 :
15365 : case 277:
15366 : switch (pattern1314 (x2))
15367 : {
15368 : case 0:
15369 : if (!(
15370 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15371 : (TARGET_AVX512F) && (
15372 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15373 : (TARGET_AVX512F) && (
15374 : #line 33280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15375 : (TARGET_AVX10_2 && (V16SFmode == V16SFmode
15376 : || V16SFmode == V8DFmode
15377 : || V16SFmode == V8DImode
15378 : || V16SFmode == V16SImode
15379 : || V16SFmode == V32HFmode)) &&
15380 : #line 382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15381 : (TARGET_AVX512F)))))
15382 : return -1;
15383 : return 10899; /* avx10_2_vcvttps2udqsv16sf_mask_round */
15384 :
15385 : case 1:
15386 : if (!(
15387 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15388 : (TARGET_AVX512F) && (
15389 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15390 : (TARGET_AVX512F) && (
15391 : #line 33280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15392 : (TARGET_AVX10_2 && (V8DFmode == V16SFmode
15393 : || V8DFmode == V8DFmode
15394 : || V8DFmode == V8DImode
15395 : || V8DFmode == V16SImode
15396 : || V8DFmode == V32HFmode)) &&
15397 : #line 383 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15398 : (TARGET_AVX512F)))))
15399 : return -1;
15400 : return 10915; /* avx10_2_vcvttpd2udqsv8df_mask_round */
15401 :
15402 : case 2:
15403 : if (!(
15404 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15405 : (TARGET_AVX512F) && (
15406 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15407 : (TARGET_AVX512F) && (
15408 : #line 33291 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15409 : (TARGET_AVX10_2 && (V8DFmode == V16SFmode
15410 : || V8DFmode == V8DFmode
15411 : || V8DFmode == V8DImode
15412 : || V8DFmode == V16SImode
15413 : || V8DFmode == V32HFmode)) &&
15414 : #line 451 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15415 : (TARGET_AVX512F)))))
15416 : return -1;
15417 : return 10931; /* avx10_2_vcvttpd2uqqsv8df_mask_round */
15418 :
15419 : case 3:
15420 : if (!(
15421 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15422 : (TARGET_AVX512F) && (
15423 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15424 : (TARGET_AVX512F) && (
15425 : #line 33302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15426 : (TARGET_AVX10_2 && (V8DImode == V16SFmode
15427 : || V8DImode == V8DFmode
15428 : || V8DImode == V8DImode
15429 : || V8DImode == V16SImode
15430 : || V8DImode == V32HFmode)) &&
15431 : #line 611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15432 : (TARGET_AVX512F)))))
15433 : return -1;
15434 : return 10947; /* avx10_2_vcvttps2uqqsv8di_mask_round */
15435 :
15436 : default:
15437 : return -1;
15438 : }
15439 :
15440 : default:
15441 : return -1;
15442 : }
15443 : }
15444 :
15445 : int
15446 : recog_245 (rtx x1 ATTRIBUTE_UNUSED,
15447 : rtx_insn *insn ATTRIBUTE_UNUSED,
15448 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15449 : {
15450 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15451 : rtx x2, x3, x4, x5;
15452 : int res ATTRIBUTE_UNUSED;
15453 : x2 = XEXP (x1, 0);
15454 : operands[0] = x2;
15455 : x3 = XEXP (x1, 1);
15456 : x4 = XVECEXP (x3, 0, 0);
15457 : operands[1] = x4;
15458 : x5 = XVECEXP (x3, 0, 1);
15459 : operands[2] = x5;
15460 : if (!const_0_to_255_operand (operands[2], E_SImode))
15461 : return -1;
15462 : switch (GET_MODE (operands[0]))
15463 : {
15464 : case E_V8HImode:
15465 : if (GET_MODE (x3) != E_V8HImode
15466 : || !register_operand (operands[1], E_V8SFmode))
15467 : return -1;
15468 : if (register_operand (operands[0], E_V8HImode)
15469 : &&
15470 : #line 29868 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15471 : (TARGET_F16C || TARGET_AVX512VL))
15472 : return 9734; /* vcvtps2ph256 */
15473 : if (!memory_operand (operands[0], E_V8HImode)
15474 : || !
15475 : #line 29880 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15476 : (TARGET_F16C || TARGET_AVX512VL))
15477 : return -1;
15478 : return 9736; /* *vcvtps2ph256 */
15479 :
15480 : case E_V16HImode:
15481 : if (GET_MODE (x3) != E_V16HImode
15482 : || !register_operand (operands[1], E_V16SFmode))
15483 : return -1;
15484 : if (register_operand (operands[0], E_V16HImode)
15485 : &&
15486 : #line 29919 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15487 : (TARGET_AVX512F))
15488 : return 9738; /* *avx512f_vcvtps2ph512 */
15489 : if (!memory_operand (operands[0], E_V16HImode)
15490 : || !
15491 : #line 29931 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15492 : (TARGET_AVX512F))
15493 : return -1;
15494 : return 9742; /* *avx512f_vcvtps2ph512 */
15495 :
15496 : default:
15497 : return -1;
15498 : }
15499 : }
15500 :
15501 : int
15502 : recog_249 (rtx x1 ATTRIBUTE_UNUSED,
15503 : rtx_insn *insn ATTRIBUTE_UNUSED,
15504 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15505 : {
15506 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15507 : rtx x2, x3, x4, x5, x6;
15508 : int res ATTRIBUTE_UNUSED;
15509 : x2 = XEXP (x1, 1);
15510 : x3 = XVECEXP (x2, 0, 0);
15511 : operands[1] = x3;
15512 : x4 = XVECEXP (x2, 0, 2);
15513 : switch (GET_CODE (x4))
15514 : {
15515 : case REG:
15516 : case SUBREG:
15517 : case MEM:
15518 : switch (GET_CODE (x4))
15519 : {
15520 : case MEM:
15521 : res = recog_247 (x1, insn, pnum_clobbers);
15522 : if (res >= 0)
15523 : return res;
15524 : break;
15525 :
15526 : case REG:
15527 : case SUBREG:
15528 : operands[2] = x4;
15529 : x5 = XEXP (x1, 0);
15530 : operands[0] = x5;
15531 : x6 = XVECEXP (x2, 0, 1);
15532 : if (rtx_equal_p (x6, operands[0]))
15533 : {
15534 : switch (GET_MODE (operands[0]))
15535 : {
15536 : case E_V16SImode:
15537 : if (pattern916 (x2,
15538 : E_HImode,
15539 : E_V16SImode) == 0
15540 : &&
15541 : #line 29436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15542 : (TARGET_AVX512F))
15543 : return 9576; /* avx512f_storev16si_mask */
15544 : break;
15545 :
15546 : case E_V8DImode:
15547 : if (pattern916 (x2,
15548 : E_QImode,
15549 : E_V8DImode) == 0
15550 : &&
15551 : #line 29436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15552 : (TARGET_AVX512F))
15553 : return 9579; /* avx512f_storev8di_mask */
15554 : break;
15555 :
15556 : case E_V16SFmode:
15557 : if (pattern916 (x2,
15558 : E_HImode,
15559 : E_V16SFmode) == 0
15560 : &&
15561 : #line 29436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15562 : (TARGET_AVX512F))
15563 : return 9582; /* avx512f_storev16sf_mask */
15564 : break;
15565 :
15566 : case E_V8SFmode:
15567 : if (pattern916 (x2,
15568 : E_QImode,
15569 : E_V8SFmode) == 0
15570 : && (
15571 : #line 29436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15572 : (TARGET_AVX512F) &&
15573 : #line 301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15574 : (TARGET_AVX512VL)))
15575 : return 9583; /* avx512vl_storev8sf_mask */
15576 : break;
15577 :
15578 : case E_V4SFmode:
15579 : if (pattern916 (x2,
15580 : E_QImode,
15581 : E_V4SFmode) == 0
15582 : && (
15583 : #line 29436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15584 : (TARGET_AVX512F) &&
15585 : #line 301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15586 : (TARGET_AVX512VL)))
15587 : return 9584; /* avx512vl_storev4sf_mask */
15588 : break;
15589 :
15590 : case E_V8DFmode:
15591 : if (pattern916 (x2,
15592 : E_QImode,
15593 : E_V8DFmode) == 0
15594 : &&
15595 : #line 29436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15596 : (TARGET_AVX512F))
15597 : return 9585; /* avx512f_storev8df_mask */
15598 : break;
15599 :
15600 : case E_V4DFmode:
15601 : if (pattern916 (x2,
15602 : E_QImode,
15603 : E_V4DFmode) == 0
15604 : && (
15605 : #line 29436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15606 : (TARGET_AVX512F) &&
15607 : #line 302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15608 : (TARGET_AVX512VL)))
15609 : return 9586; /* avx512vl_storev4df_mask */
15610 : break;
15611 :
15612 : case E_V2DFmode:
15613 : if (pattern916 (x2,
15614 : E_QImode,
15615 : E_V2DFmode) == 0
15616 : && (
15617 : #line 29436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15618 : (TARGET_AVX512F) &&
15619 : #line 302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15620 : (TARGET_AVX512VL)))
15621 : return 9587; /* avx512vl_storev2df_mask */
15622 : break;
15623 :
15624 : case E_V64QImode:
15625 : if (pattern916 (x2,
15626 : E_DImode,
15627 : E_V64QImode) == 0
15628 : &&
15629 : #line 29465 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15630 : (TARGET_AVX512BW))
15631 : return 9588; /* avx512bw_storev64qi_mask */
15632 : break;
15633 :
15634 : case E_V16QImode:
15635 : if (pattern916 (x2,
15636 : E_HImode,
15637 : E_V16QImode) == 0
15638 : && (
15639 : #line 29465 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15640 : (TARGET_AVX512BW) &&
15641 : #line 332 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15642 : (TARGET_AVX512VL)))
15643 : return 9589; /* avx512vl_storev16qi_mask */
15644 : break;
15645 :
15646 : case E_V32QImode:
15647 : if (pattern916 (x2,
15648 : E_SImode,
15649 : E_V32QImode) == 0
15650 : && (
15651 : #line 29465 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15652 : (TARGET_AVX512BW) &&
15653 : #line 332 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15654 : (TARGET_AVX512VL)))
15655 : return 9590; /* avx512vl_storev32qi_mask */
15656 : break;
15657 :
15658 : case E_V32HImode:
15659 : if (pattern916 (x2,
15660 : E_SImode,
15661 : E_V32HImode) == 0
15662 : &&
15663 : #line 29465 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15664 : (TARGET_AVX512BW))
15665 : return 9591; /* avx512bw_storev32hi_mask */
15666 : break;
15667 :
15668 : case E_V16HImode:
15669 : if (pattern916 (x2,
15670 : E_HImode,
15671 : E_V16HImode) == 0
15672 : && (
15673 : #line 29465 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15674 : (TARGET_AVX512BW) &&
15675 : #line 333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15676 : (TARGET_AVX512VL)))
15677 : return 9592; /* avx512vl_storev16hi_mask */
15678 : break;
15679 :
15680 : case E_V8HImode:
15681 : if (pattern916 (x2,
15682 : E_QImode,
15683 : E_V8HImode) == 0
15684 : && (
15685 : #line 29465 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15686 : (TARGET_AVX512BW) &&
15687 : #line 333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15688 : (TARGET_AVX512VL)))
15689 : return 9593; /* avx512vl_storev8hi_mask */
15690 : break;
15691 :
15692 : case E_V32HFmode:
15693 : if (pattern916 (x2,
15694 : E_SImode,
15695 : E_V32HFmode) == 0
15696 : &&
15697 : #line 29465 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15698 : (TARGET_AVX512BW))
15699 : return 9594; /* avx512bw_storev32hf_mask */
15700 : break;
15701 :
15702 : case E_V16HFmode:
15703 : if (pattern916 (x2,
15704 : E_HImode,
15705 : E_V16HFmode) == 0
15706 : && (
15707 : #line 29465 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15708 : (TARGET_AVX512BW) &&
15709 : #line 334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15710 : (TARGET_AVX512VL)))
15711 : return 9595; /* avx512vl_storev16hf_mask */
15712 : break;
15713 :
15714 : case E_V8HFmode:
15715 : if (pattern916 (x2,
15716 : E_QImode,
15717 : E_V8HFmode) == 0
15718 : && (
15719 : #line 29465 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15720 : (TARGET_AVX512BW) &&
15721 : #line 334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15722 : (TARGET_AVX512VL)))
15723 : return 9596; /* avx512fp16_storev8hf_mask */
15724 : break;
15725 :
15726 : case E_V32BFmode:
15727 : if (pattern916 (x2,
15728 : E_SImode,
15729 : E_V32BFmode) == 0
15730 : &&
15731 : #line 29465 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15732 : (TARGET_AVX512BW))
15733 : return 9597; /* avx512bw_storev32bf_mask */
15734 : break;
15735 :
15736 : case E_V16BFmode:
15737 : if (pattern916 (x2,
15738 : E_HImode,
15739 : E_V16BFmode) == 0
15740 : && (
15741 : #line 29465 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15742 : (TARGET_AVX512BW) &&
15743 : #line 335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15744 : (TARGET_AVX512VL)))
15745 : return 9598; /* avx512vl_storev16bf_mask */
15746 : break;
15747 :
15748 : case E_V8BFmode:
15749 : if (pattern916 (x2,
15750 : E_QImode,
15751 : E_V8BFmode) == 0
15752 : && (
15753 : #line 29465 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15754 : (TARGET_AVX512BW) &&
15755 : #line 335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15756 : (TARGET_AVX512VL)))
15757 : return 9599; /* avx512vl_storev8bf_mask */
15758 : break;
15759 :
15760 : default:
15761 : break;
15762 : }
15763 : }
15764 : break;
15765 :
15766 : default:
15767 : break;
15768 : }
15769 : x5 = XEXP (x1, 0);
15770 : operands[0] = x5;
15771 : switch (GET_MODE (operands[0]))
15772 : {
15773 : case E_V4SFmode:
15774 : if (pattern792 (x2,
15775 : E_V4SFmode,
15776 : E_V4SImode) != 0
15777 : || !
15778 : #line 29345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15779 : (TARGET_AVX))
15780 : return -1;
15781 : return 9568; /* avx_maskstoreps */
15782 :
15783 : case E_V2DFmode:
15784 : if (pattern792 (x2,
15785 : E_V2DFmode,
15786 : E_V2DImode) != 0
15787 : || !
15788 : #line 29345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15789 : (TARGET_AVX))
15790 : return -1;
15791 : return 9569; /* avx_maskstorepd */
15792 :
15793 : case E_V4DImode:
15794 : if (!memory_operand (operands[0], E_V4DImode)
15795 : || GET_MODE (x2) != E_V4DImode
15796 : || !register_operand (operands[1], E_V4DImode))
15797 : return -1;
15798 : x6 = XVECEXP (x2, 0, 1);
15799 : operands[2] = x6;
15800 : if (register_operand (operands[2], E_V4DImode)
15801 : && rtx_equal_p (x4, operands[0])
15802 : &&
15803 : #line 29345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15804 : (TARGET_AVX))
15805 : return 9570; /* avx2_maskstoreq256 */
15806 : operands[2] = x4;
15807 : if (!register_operand (operands[2], E_QImode)
15808 : || !rtx_equal_p (x6, operands[0])
15809 : || !(
15810 : #line 29436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15811 : (TARGET_AVX512F) &&
15812 : #line 300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15813 : (TARGET_AVX512VL)))
15814 : return -1;
15815 : return 9580; /* avx512vl_storev4di_mask */
15816 :
15817 : case E_V2DImode:
15818 : if (!memory_operand (operands[0], E_V2DImode)
15819 : || GET_MODE (x2) != E_V2DImode
15820 : || !register_operand (operands[1], E_V2DImode))
15821 : return -1;
15822 : x6 = XVECEXP (x2, 0, 1);
15823 : operands[2] = x6;
15824 : if (register_operand (operands[2], E_V2DImode)
15825 : && rtx_equal_p (x4, operands[0])
15826 : &&
15827 : #line 29345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15828 : (TARGET_AVX))
15829 : return 9571; /* avx2_maskstoreq */
15830 : operands[2] = x4;
15831 : if (!register_operand (operands[2], E_QImode)
15832 : || !rtx_equal_p (x6, operands[0])
15833 : || !(
15834 : #line 29436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15835 : (TARGET_AVX512F) &&
15836 : #line 300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15837 : (TARGET_AVX512VL)))
15838 : return -1;
15839 : return 9581; /* avx512vl_storev2di_mask */
15840 :
15841 : case E_V8SFmode:
15842 : if (pattern792 (x2,
15843 : E_V8SFmode,
15844 : E_V8SImode) != 0
15845 : || !
15846 : #line 29345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15847 : (TARGET_AVX))
15848 : return -1;
15849 : return 9572; /* avx_maskstoreps256 */
15850 :
15851 : case E_V4DFmode:
15852 : if (pattern792 (x2,
15853 : E_V4DFmode,
15854 : E_V4DImode) != 0
15855 : || !
15856 : #line 29345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15857 : (TARGET_AVX))
15858 : return -1;
15859 : return 9573; /* avx_maskstorepd256 */
15860 :
15861 : case E_V8SImode:
15862 : if (!memory_operand (operands[0], E_V8SImode)
15863 : || GET_MODE (x2) != E_V8SImode
15864 : || !register_operand (operands[1], E_V8SImode))
15865 : return -1;
15866 : x6 = XVECEXP (x2, 0, 1);
15867 : operands[2] = x6;
15868 : if (register_operand (operands[2], E_V8SImode)
15869 : && rtx_equal_p (x4, operands[0])
15870 : &&
15871 : #line 29345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15872 : (TARGET_AVX))
15873 : return 9574; /* avx2_maskstored256 */
15874 : operands[2] = x4;
15875 : if (!register_operand (operands[2], E_QImode)
15876 : || !rtx_equal_p (x6, operands[0])
15877 : || !(
15878 : #line 29436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15879 : (TARGET_AVX512F) &&
15880 : #line 299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15881 : (TARGET_AVX512VL)))
15882 : return -1;
15883 : return 9577; /* avx512vl_storev8si_mask */
15884 :
15885 : case E_V4SImode:
15886 : if (!memory_operand (operands[0], E_V4SImode)
15887 : || GET_MODE (x2) != E_V4SImode
15888 : || !register_operand (operands[1], E_V4SImode))
15889 : return -1;
15890 : x6 = XVECEXP (x2, 0, 1);
15891 : operands[2] = x6;
15892 : if (register_operand (operands[2], E_V4SImode)
15893 : && rtx_equal_p (x4, operands[0])
15894 : &&
15895 : #line 29345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15896 : (TARGET_AVX))
15897 : return 9575; /* avx2_maskstored */
15898 : operands[2] = x4;
15899 : if (!register_operand (operands[2], E_QImode)
15900 : || !rtx_equal_p (x6, operands[0])
15901 : || !(
15902 : #line 29436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15903 : (TARGET_AVX512F) &&
15904 : #line 299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15905 : (TARGET_AVX512VL)))
15906 : return -1;
15907 : return 9578; /* avx512vl_storev4si_mask */
15908 :
15909 : default:
15910 : return -1;
15911 : }
15912 :
15913 : case CONST_INT:
15914 : case CONST_DOUBLE:
15915 : case CONST_VECTOR:
15916 : operands[2] = x4;
15917 : x5 = XEXP (x1, 0);
15918 : operands[0] = x5;
15919 : switch (pattern794 (x2))
15920 : {
15921 : case 0:
15922 : if (!(
15923 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15924 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
15925 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15926 : (TARGET_AVX512F)))
15927 : return -1;
15928 : return 9600; /* *avx512bw_storev64qi_mask_1 */
15929 :
15930 : case 1:
15931 : if (!(
15932 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15933 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
15934 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15935 : (TARGET_AVX)))
15936 : return -1;
15937 : return 9601; /* *avx512vl_storev32qi_mask_1 */
15938 :
15939 : case 2:
15940 : if (!
15941 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15942 : (TARGET_AVX512F && ix86_pre_reload_split ()))
15943 : return -1;
15944 : return 9602; /* *avx512vl_storev16qi_mask_1 */
15945 :
15946 : case 3:
15947 : if (!(
15948 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15949 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
15950 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15951 : (TARGET_AVX512F)))
15952 : return -1;
15953 : return 9603; /* *avx512bw_storev32hi_mask_1 */
15954 :
15955 : case 4:
15956 : if (!(
15957 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15958 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
15959 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15960 : (TARGET_AVX)))
15961 : return -1;
15962 : return 9604; /* *avx512vl_storev16hi_mask_1 */
15963 :
15964 : case 5:
15965 : if (!
15966 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15967 : (TARGET_AVX512F && ix86_pre_reload_split ()))
15968 : return -1;
15969 : return 9605; /* *avx512vl_storev8hi_mask_1 */
15970 :
15971 : case 6:
15972 : if (!(
15973 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15974 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
15975 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15976 : (TARGET_AVX512F)))
15977 : return -1;
15978 : return 9606; /* *avx512f_storev16si_mask_1 */
15979 :
15980 : case 7:
15981 : if (!(
15982 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15983 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
15984 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15985 : (TARGET_AVX)))
15986 : return -1;
15987 : return 9607; /* *avx512vl_storev8si_mask_1 */
15988 :
15989 : case 8:
15990 : if (!
15991 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15992 : (TARGET_AVX512F && ix86_pre_reload_split ()))
15993 : return -1;
15994 : return 9608; /* *avx512vl_storev4si_mask_1 */
15995 :
15996 : case 9:
15997 : if (!(
15998 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15999 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
16000 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16001 : (TARGET_AVX512F)))
16002 : return -1;
16003 : return 9609; /* *avx512f_storev8di_mask_1 */
16004 :
16005 : case 10:
16006 : if (!(
16007 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16008 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
16009 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16010 : (TARGET_AVX)))
16011 : return -1;
16012 : return 9610; /* *avx512vl_storev4di_mask_1 */
16013 :
16014 : case 11:
16015 : if (!
16016 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16017 : (TARGET_AVX512F && ix86_pre_reload_split ()))
16018 : return -1;
16019 : return 9611; /* *avx512vl_storev2di_mask_1 */
16020 :
16021 : case 12:
16022 : if (!(
16023 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16024 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
16025 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16026 : (TARGET_AVX512F)))
16027 : return -1;
16028 : return 9612; /* *avx512bw_storev32hf_mask_1 */
16029 :
16030 : case 13:
16031 : if (!(
16032 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16033 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
16034 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16035 : (TARGET_AVX)))
16036 : return -1;
16037 : return 9613; /* *avx512vl_storev16hf_mask_1 */
16038 :
16039 : case 14:
16040 : if (!
16041 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16042 : (TARGET_AVX512F && ix86_pre_reload_split ()))
16043 : return -1;
16044 : return 9614; /* *avx512fp16_storev8hf_mask_1 */
16045 :
16046 : case 15:
16047 : if (!(
16048 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16049 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
16050 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16051 : (TARGET_AVX512F)))
16052 : return -1;
16053 : return 9615; /* *avx512bw_storev32bf_mask_1 */
16054 :
16055 : case 16:
16056 : if (!(
16057 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16058 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
16059 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16060 : (TARGET_AVX)))
16061 : return -1;
16062 : return 9616; /* *avx512vl_storev16bf_mask_1 */
16063 :
16064 : case 17:
16065 : if (!
16066 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16067 : (TARGET_AVX512F && ix86_pre_reload_split ()))
16068 : return -1;
16069 : return 9617; /* *avx512vl_storev8bf_mask_1 */
16070 :
16071 : case 18:
16072 : if (!(
16073 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16074 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
16075 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16076 : (TARGET_AVX512F)))
16077 : return -1;
16078 : return 9618; /* *avx512f_storev16sf_mask_1 */
16079 :
16080 : case 19:
16081 : if (!(
16082 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16083 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
16084 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16085 : (TARGET_AVX)))
16086 : return -1;
16087 : return 9619; /* *avx512vl_storev8sf_mask_1 */
16088 :
16089 : case 20:
16090 : if (!
16091 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16092 : (TARGET_AVX512F && ix86_pre_reload_split ()))
16093 : return -1;
16094 : return 9620; /* *avx512vl_storev4sf_mask_1 */
16095 :
16096 : case 21:
16097 : if (!(
16098 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16099 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
16100 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16101 : (TARGET_AVX512F)))
16102 : return -1;
16103 : return 9621; /* *avx512f_storev8df_mask_1 */
16104 :
16105 : case 22:
16106 : if (!(
16107 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16108 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
16109 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16110 : (TARGET_AVX)))
16111 : return -1;
16112 : return 9622; /* *avx512vl_storev4df_mask_1 */
16113 :
16114 : case 23:
16115 : if (!(
16116 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16117 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
16118 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16119 : (TARGET_SSE2)))
16120 : return -1;
16121 : return 9623; /* *avx512vl_storev2df_mask_1 */
16122 :
16123 : default:
16124 : return -1;
16125 : }
16126 :
16127 : default:
16128 : return -1;
16129 : }
16130 : }
16131 :
16132 : int
16133 : recog_272 (rtx x1 ATTRIBUTE_UNUSED,
16134 : rtx_insn *insn ATTRIBUTE_UNUSED,
16135 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16136 : {
16137 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16138 : rtx x2, x3, x4;
16139 : int res ATTRIBUTE_UNUSED;
16140 : x2 = XEXP (x1, 1);
16141 : x3 = XEXP (x2, 0);
16142 : operands[1] = x3;
16143 : x4 = XEXP (x2, 1);
16144 : switch (GET_CODE (x4))
16145 : {
16146 : case REG:
16147 : case SUBREG:
16148 : case MEM:
16149 : switch (GET_MODE (operands[0]))
16150 : {
16151 : case E_V4SFmode:
16152 : if (pattern799 (x2,
16153 : E_V2SFmode,
16154 : E_V4SFmode) == 0
16155 : &&
16156 : #line 12161 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16157 : (TARGET_SSE))
16158 : return 5302; /* *vec_concatv4sf */
16159 : break;
16160 :
16161 : case E_V8HFmode:
16162 : if (pattern799 (x2,
16163 : E_V4HFmode,
16164 : E_V8HFmode) == 0
16165 : &&
16166 : #line 12161 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16167 : (TARGET_SSE))
16168 : return 5303; /* *vec_concatv8hf */
16169 : break;
16170 :
16171 : case E_V8BFmode:
16172 : if (pattern799 (x2,
16173 : E_V4BFmode,
16174 : E_V8BFmode) == 0
16175 : &&
16176 : #line 12161 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16177 : (TARGET_SSE))
16178 : return 5304; /* *vec_concatv8bf */
16179 : break;
16180 :
16181 : case E_V16QImode:
16182 : if (pattern799 (x2,
16183 : E_V8QImode,
16184 : E_V16QImode) == 0
16185 : &&
16186 : #line 21912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16187 : (TARGET_SSE))
16188 : return 8526; /* *vec_concatv16qi */
16189 : break;
16190 :
16191 : case E_V8HImode:
16192 : if (pattern799 (x2,
16193 : E_V4HImode,
16194 : E_V8HImode) == 0
16195 : &&
16196 : #line 21912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16197 : (TARGET_SSE))
16198 : return 8527; /* *vec_concatv8hi */
16199 : break;
16200 :
16201 : case E_V4SImode:
16202 : if (pattern799 (x2,
16203 : E_V2SImode,
16204 : E_V4SImode) == 0
16205 : &&
16206 : #line 21912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16207 : (TARGET_SSE))
16208 : return 8528; /* *vec_concatv4si */
16209 : break;
16210 :
16211 : case E_V2DImode:
16212 : if (pattern799 (x2,
16213 : E_DImode,
16214 : E_V2DImode) == 0
16215 : &&
16216 : #line 22000 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16217 : (TARGET_SSE))
16218 : return 8534; /* vec_concatv2di */
16219 : break;
16220 :
16221 : case E_V32QImode:
16222 : if (register_operand (operands[0], E_V32QImode)
16223 : && GET_MODE (x2) == E_V32QImode
16224 : && rtx_equal_p (x4, operands[1]))
16225 : {
16226 : if (memory_operand (operands[1], E_V16QImode)
16227 : &&
16228 : #line 28575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16229 : (TARGET_AVX2))
16230 : return 9359; /* avx2_vbroadcasti128_v32qi */
16231 : if (nonimmediate_operand (operands[1], E_V16QImode)
16232 : &&
16233 : #line 28690 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16234 : (TARGET_AVX))
16235 : return 9378; /* avx_vbroadcastf128_v32qi */
16236 : }
16237 : break;
16238 :
16239 : case E_V16HImode:
16240 : if (register_operand (operands[0], E_V16HImode)
16241 : && GET_MODE (x2) == E_V16HImode
16242 : && rtx_equal_p (x4, operands[1]))
16243 : {
16244 : if (memory_operand (operands[1], E_V8HImode)
16245 : &&
16246 : #line 28575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16247 : (TARGET_AVX2))
16248 : return 9360; /* avx2_vbroadcasti128_v16hi */
16249 : if (nonimmediate_operand (operands[1], E_V8HImode)
16250 : &&
16251 : #line 28690 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16252 : (TARGET_AVX))
16253 : return 9379; /* avx_vbroadcastf128_v16hi */
16254 : }
16255 : break;
16256 :
16257 : case E_V8SImode:
16258 : if (register_operand (operands[0], E_V8SImode)
16259 : && GET_MODE (x2) == E_V8SImode
16260 : && rtx_equal_p (x4, operands[1]))
16261 : {
16262 : if (memory_operand (operands[1], E_V4SImode)
16263 : &&
16264 : #line 28575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16265 : (TARGET_AVX2))
16266 : return 9361; /* avx2_vbroadcasti128_v8si */
16267 : if (nonimmediate_operand (operands[1], E_V4SImode)
16268 : &&
16269 : #line 28690 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16270 : (TARGET_AVX))
16271 : return 9380; /* avx_vbroadcastf128_v8si */
16272 : }
16273 : break;
16274 :
16275 : case E_V4DImode:
16276 : if (register_operand (operands[0], E_V4DImode)
16277 : && GET_MODE (x2) == E_V4DImode
16278 : && memory_operand (operands[1], E_V2DImode)
16279 : && rtx_equal_p (x4, operands[1])
16280 : &&
16281 : #line 28575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16282 : (TARGET_AVX2))
16283 : return 9362; /* avx2_vbroadcasti128_v4di */
16284 : break;
16285 :
16286 : case E_V8SFmode:
16287 : if (pattern800 (x2,
16288 : E_V4SFmode,
16289 : E_V8SFmode) == 0
16290 : &&
16291 : #line 28690 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16292 : (TARGET_AVX))
16293 : return 9382; /* avx_vbroadcastf128_v8sf */
16294 : break;
16295 :
16296 : case E_V4DFmode:
16297 : if (pattern800 (x2,
16298 : E_V2DFmode,
16299 : E_V4DFmode) == 0
16300 : &&
16301 : #line 28690 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16302 : (TARGET_AVX))
16303 : return 9383; /* avx_vbroadcastf128_v4df */
16304 : break;
16305 :
16306 : case E_V16HFmode:
16307 : if (pattern800 (x2,
16308 : E_V8HFmode,
16309 : E_V16HFmode) == 0
16310 : &&
16311 : #line 28690 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16312 : (TARGET_AVX))
16313 : return 9384; /* avx_vbroadcastf128_v16hf */
16314 : break;
16315 :
16316 : case E_V16BFmode:
16317 : if (pattern800 (x2,
16318 : E_V8BFmode,
16319 : E_V16BFmode) == 0
16320 : &&
16321 : #line 28690 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16322 : (TARGET_AVX))
16323 : return 9385; /* avx_vbroadcastf128_v16bf */
16324 : break;
16325 :
16326 : default:
16327 : break;
16328 : }
16329 : break;
16330 :
16331 : case CONST_INT:
16332 : case CONST_DOUBLE:
16333 : case CONST_VECTOR:
16334 : operands[2] = x4;
16335 : switch (GET_MODE (operands[0]))
16336 : {
16337 : case E_V4SFmode:
16338 : if (pattern923 (x2,
16339 : E_V2SFmode,
16340 : E_V4SFmode) == 0
16341 : &&
16342 : #line 12177 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16343 : (TARGET_SSE2))
16344 : return 5305; /* *vec_concatv4sf_0 */
16345 : break;
16346 :
16347 : case E_V8HFmode:
16348 : if (pattern923 (x2,
16349 : E_V4HFmode,
16350 : E_V8HFmode) == 0
16351 : &&
16352 : #line 12177 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16353 : (TARGET_SSE2))
16354 : return 5306; /* *vec_concatv8hf_0 */
16355 : break;
16356 :
16357 : case E_V8BFmode:
16358 : if (pattern923 (x2,
16359 : E_V4BFmode,
16360 : E_V8BFmode) == 0
16361 : &&
16362 : #line 12177 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16363 : (TARGET_SSE2))
16364 : return 5307; /* *vec_concatv8bf_0 */
16365 : break;
16366 :
16367 : case E_V16QImode:
16368 : if (pattern923 (x2,
16369 : E_V8QImode,
16370 : E_V16QImode) == 0
16371 : &&
16372 : #line 21983 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16373 : (TARGET_SSE2))
16374 : return 8531; /* *vec_concatv16qi_0 */
16375 : break;
16376 :
16377 : case E_V8HImode:
16378 : if (pattern923 (x2,
16379 : E_V4HImode,
16380 : E_V8HImode) == 0
16381 : &&
16382 : #line 21983 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16383 : (TARGET_SSE2))
16384 : return 8532; /* *vec_concatv8hi_0 */
16385 : break;
16386 :
16387 : case E_V4SImode:
16388 : if (pattern923 (x2,
16389 : E_V2SImode,
16390 : E_V4SImode) == 0
16391 : &&
16392 : #line 21983 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16393 : (TARGET_SSE2))
16394 : return 8533; /* *vec_concatv4si_0 */
16395 : break;
16396 :
16397 : case E_V2DImode:
16398 : if (pattern923 (x2,
16399 : E_DImode,
16400 : E_V2DImode) == 0
16401 : &&
16402 : #line 22074 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16403 : (TARGET_SSE2))
16404 : return 8535; /* *vec_concatv2di_0 */
16405 : break;
16406 :
16407 : default:
16408 : break;
16409 : }
16410 : break;
16411 :
16412 : default:
16413 : break;
16414 : }
16415 : operands[2] = x4;
16416 : switch (GET_MODE (operands[0]))
16417 : {
16418 : case E_V2DFmode:
16419 : if (pattern801 (x2,
16420 : E_DFmode,
16421 : E_V2DFmode) != 0
16422 : || !
16423 : #line 15234 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16424 : (TARGET_SSE && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
16425 : return -1;
16426 : return 7257; /* vec_concatv2df */
16427 :
16428 : case E_V32QImode:
16429 : if (pattern801 (x2,
16430 : E_V16QImode,
16431 : E_V32QImode) != 0
16432 : || !
16433 : #line 29647 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16434 : (TARGET_AVX
16435 : && (operands[2] == CONST0_RTX (V16QImode)
16436 : || !MEM_P (operands[1]))))
16437 : return -1;
16438 : return 9681; /* avx_vec_concatv32qi */
16439 :
16440 : case E_V16HImode:
16441 : if (pattern801 (x2,
16442 : E_V8HImode,
16443 : E_V16HImode) != 0
16444 : || !
16445 : #line 29647 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16446 : (TARGET_AVX
16447 : && (operands[2] == CONST0_RTX (V8HImode)
16448 : || !MEM_P (operands[1]))))
16449 : return -1;
16450 : return 9682; /* avx_vec_concatv16hi */
16451 :
16452 : case E_V16HFmode:
16453 : if (pattern801 (x2,
16454 : E_V8HFmode,
16455 : E_V16HFmode) != 0
16456 : || !
16457 : #line 29647 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16458 : (TARGET_AVX
16459 : && (operands[2] == CONST0_RTX (V8HFmode)
16460 : || !MEM_P (operands[1]))))
16461 : return -1;
16462 : return 9683; /* avx_vec_concatv16hf */
16463 :
16464 : case E_V16BFmode:
16465 : if (pattern801 (x2,
16466 : E_V8BFmode,
16467 : E_V16BFmode) != 0
16468 : || !
16469 : #line 29647 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16470 : (TARGET_AVX
16471 : && (operands[2] == CONST0_RTX (V8BFmode)
16472 : || !MEM_P (operands[1]))))
16473 : return -1;
16474 : return 9684; /* avx_vec_concatv16bf */
16475 :
16476 : case E_V8SImode:
16477 : if (pattern801 (x2,
16478 : E_V4SImode,
16479 : E_V8SImode) != 0
16480 : || !
16481 : #line 29647 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16482 : (TARGET_AVX
16483 : && (operands[2] == CONST0_RTX (V4SImode)
16484 : || !MEM_P (operands[1]))))
16485 : return -1;
16486 : return 9685; /* avx_vec_concatv8si */
16487 :
16488 : case E_V8SFmode:
16489 : if (pattern801 (x2,
16490 : E_V4SFmode,
16491 : E_V8SFmode) != 0
16492 : || !
16493 : #line 29647 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16494 : (TARGET_AVX
16495 : && (operands[2] == CONST0_RTX (V4SFmode)
16496 : || !MEM_P (operands[1]))))
16497 : return -1;
16498 : return 9687; /* avx_vec_concatv8sf */
16499 :
16500 : case E_V4DFmode:
16501 : if (pattern801 (x2,
16502 : E_V2DFmode,
16503 : E_V4DFmode) != 0
16504 : || !
16505 : #line 29647 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16506 : (TARGET_AVX
16507 : && (operands[2] == CONST0_RTX (V2DFmode)
16508 : || !MEM_P (operands[1]))))
16509 : return -1;
16510 : return 9688; /* avx_vec_concatv4df */
16511 :
16512 : case E_V64QImode:
16513 : if (pattern801 (x2,
16514 : E_V32QImode,
16515 : E_V64QImode) != 0
16516 : || !(
16517 : #line 29647 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16518 : (TARGET_AVX
16519 : && (operands[2] == CONST0_RTX (V32QImode)
16520 : || !MEM_P (operands[1]))) &&
16521 : #line 375 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16522 : (TARGET_AVX512F)))
16523 : return -1;
16524 : return 9689; /* avx_vec_concatv64qi */
16525 :
16526 : case E_V32HImode:
16527 : if (pattern801 (x2,
16528 : E_V16HImode,
16529 : E_V32HImode) != 0
16530 : || !(
16531 : #line 29647 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16532 : (TARGET_AVX
16533 : && (operands[2] == CONST0_RTX (V16HImode)
16534 : || !MEM_P (operands[1]))) &&
16535 : #line 375 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16536 : (TARGET_AVX512F)))
16537 : return -1;
16538 : return 9690; /* avx_vec_concatv32hi */
16539 :
16540 : case E_V32HFmode:
16541 : if (pattern801 (x2,
16542 : E_V16HFmode,
16543 : E_V32HFmode) != 0
16544 : || !(
16545 : #line 29647 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16546 : (TARGET_AVX
16547 : && (operands[2] == CONST0_RTX (V16HFmode)
16548 : || !MEM_P (operands[1]))) &&
16549 : #line 376 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16550 : (TARGET_AVX512F)))
16551 : return -1;
16552 : return 9691; /* avx_vec_concatv32hf */
16553 :
16554 : case E_V32BFmode:
16555 : if (pattern801 (x2,
16556 : E_V16BFmode,
16557 : E_V32BFmode) != 0
16558 : || !(
16559 : #line 29647 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16560 : (TARGET_AVX
16561 : && (operands[2] == CONST0_RTX (V16BFmode)
16562 : || !MEM_P (operands[1]))) &&
16563 : #line 376 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16564 : (TARGET_AVX512F)))
16565 : return -1;
16566 : return 9692; /* avx_vec_concatv32bf */
16567 :
16568 : case E_V16SImode:
16569 : if (pattern801 (x2,
16570 : E_V8SImode,
16571 : E_V16SImode) != 0
16572 : || !(
16573 : #line 29647 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16574 : (TARGET_AVX
16575 : && (operands[2] == CONST0_RTX (V8SImode)
16576 : || !MEM_P (operands[1]))) &&
16577 : #line 377 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16578 : (TARGET_AVX512F)))
16579 : return -1;
16580 : return 9693; /* avx_vec_concatv16si */
16581 :
16582 : case E_V8DImode:
16583 : if (pattern801 (x2,
16584 : E_V4DImode,
16585 : E_V8DImode) != 0
16586 : || !(
16587 : #line 29647 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16588 : (TARGET_AVX
16589 : && (operands[2] == CONST0_RTX (V4DImode)
16590 : || !MEM_P (operands[1]))) &&
16591 : #line 377 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16592 : (TARGET_AVX512F)))
16593 : return -1;
16594 : return 9694; /* avx_vec_concatv8di */
16595 :
16596 : case E_V16SFmode:
16597 : if (pattern801 (x2,
16598 : E_V8SFmode,
16599 : E_V16SFmode) != 0
16600 : || !(
16601 : #line 29647 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16602 : (TARGET_AVX
16603 : && (operands[2] == CONST0_RTX (V8SFmode)
16604 : || !MEM_P (operands[1]))) &&
16605 : #line 378 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16606 : (TARGET_AVX512F)))
16607 : return -1;
16608 : return 9695; /* avx_vec_concatv16sf */
16609 :
16610 : case E_V8DFmode:
16611 : if (pattern801 (x2,
16612 : E_V4DFmode,
16613 : E_V8DFmode) != 0
16614 : || !(
16615 : #line 29647 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16616 : (TARGET_AVX
16617 : && (operands[2] == CONST0_RTX (V4DFmode)
16618 : || !MEM_P (operands[1]))) &&
16619 : #line 378 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16620 : (TARGET_AVX512F)))
16621 : return -1;
16622 : return 9696; /* avx_vec_concatv8df */
16623 :
16624 : default:
16625 : return -1;
16626 : }
16627 : }
16628 :
16629 : int
16630 : recog_280 (rtx x1 ATTRIBUTE_UNUSED,
16631 : rtx_insn *insn ATTRIBUTE_UNUSED,
16632 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16633 : {
16634 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16635 : rtx x2, x3, x4, x5, x6, x7, x8;
16636 : int res ATTRIBUTE_UNUSED;
16637 : x2 = XEXP (x1, 1);
16638 : x3 = XEXP (x2, 0);
16639 : x4 = XEXP (x3, 1);
16640 : operands[2] = x4;
16641 : x5 = XEXP (x2, 1);
16642 : x6 = XVECEXP (x5, 0, 1);
16643 : operands[4] = x6;
16644 : x7 = XVECEXP (x5, 0, 2);
16645 : operands[5] = x7;
16646 : x8 = XVECEXP (x5, 0, 3);
16647 : operands[6] = x8;
16648 : switch (GET_MODE (operands[0]))
16649 : {
16650 : case E_V4SImode:
16651 : if (pattern1531 (x2,
16652 : E_V4SImode,
16653 : E_V8SImode) != 0
16654 : || !
16655 : #line 11885 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16656 : (TARGET_SSE))
16657 : return -1;
16658 : return 5287; /* sse_shufps_v4si */
16659 :
16660 : case E_V4SFmode:
16661 : if (pattern1531 (x2,
16662 : E_V4SFmode,
16663 : E_V8SFmode) != 0
16664 : || !
16665 : #line 11885 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16666 : (TARGET_SSE))
16667 : return -1;
16668 : return 5288; /* sse_shufps_v4sf */
16669 :
16670 : case E_V4DFmode:
16671 : if (pattern1425 (x2,
16672 : E_V4DFmode,
16673 : E_V8DFmode) != 0)
16674 : return -1;
16675 : if (const_0_to_1_operand (operands[3], E_VOIDmode)
16676 : && const_4_to_5_operand (operands[4], E_VOIDmode)
16677 : && const_2_to_3_operand (operands[5], E_VOIDmode)
16678 : && const_6_to_7_operand (operands[6], E_VOIDmode)
16679 : &&
16680 : #line 14723 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16681 : (TARGET_AVX && 1))
16682 : return 7230; /* avx_shufpd256_1 */
16683 : if (!const_0_to_3_operand (operands[3], E_VOIDmode)
16684 : || !const_0_to_3_operand (operands[4], E_VOIDmode)
16685 : || !const_4_to_7_operand (operands[5], E_VOIDmode)
16686 : || !const_4_to_7_operand (operands[6], E_VOIDmode)
16687 : || !
16688 : #line 20517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16689 : (TARGET_AVX512VL
16690 : && (INTVAL (operands[3]) & 1) == 0
16691 : && INTVAL (operands[3]) == INTVAL (operands[4]) - 1
16692 : && (INTVAL (operands[5]) & 1) == 0
16693 : && INTVAL (operands[5]) == INTVAL (operands[6]) - 1))
16694 : return -1;
16695 : return 8460; /* *avx512dq_shuf_f64x2_1 */
16696 :
16697 : case E_V4DImode:
16698 : if (pattern1425 (x2,
16699 : E_V4DImode,
16700 : E_V8DImode) != 0
16701 : || pattern1530 () != 0
16702 : || !
16703 : #line 20517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16704 : (TARGET_AVX512VL
16705 : && (INTVAL (operands[3]) & 1) == 0
16706 : && INTVAL (operands[3]) == INTVAL (operands[4]) - 1
16707 : && (INTVAL (operands[5]) & 1) == 0
16708 : && INTVAL (operands[5]) == INTVAL (operands[6]) - 1))
16709 : return -1;
16710 : return 8458; /* *avx512dq_shuf_i64x2_1 */
16711 :
16712 : default:
16713 : return -1;
16714 : }
16715 : }
16716 :
16717 : int
16718 : recog_282 (rtx x1 ATTRIBUTE_UNUSED,
16719 : rtx_insn *insn ATTRIBUTE_UNUSED,
16720 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16721 : {
16722 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16723 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
16724 : rtx x10, x11, x12, x13;
16725 : int res ATTRIBUTE_UNUSED;
16726 : x2 = XEXP (x1, 1);
16727 : x3 = XEXP (x2, 1);
16728 : if (pattern930 (x3) != 0)
16729 : return -1;
16730 : x4 = XVECEXP (x3, 0, 0);
16731 : switch (XWINT (x4, 0))
16732 : {
16733 : case 0L:
16734 : x5 = XVECEXP (x3, 0, 1);
16735 : switch (XWINT (x5, 0))
16736 : {
16737 : case 1L:
16738 : x6 = XVECEXP (x3, 0, 2);
16739 : if (XWINT (x6, 0) != 2L)
16740 : return -1;
16741 : x7 = XVECEXP (x3, 0, 3);
16742 : if (XWINT (x7, 0) != 3L)
16743 : return -1;
16744 : x8 = XVECEXP (x3, 0, 4);
16745 : if (XWINT (x8, 0) != 8L)
16746 : return -1;
16747 : x9 = XVECEXP (x3, 0, 5);
16748 : if (XWINT (x9, 0) != 9L)
16749 : return -1;
16750 : x10 = XVECEXP (x3, 0, 6);
16751 : if (XWINT (x10, 0) != 10L)
16752 : return -1;
16753 : x11 = XVECEXP (x3, 0, 7);
16754 : if (XWINT (x11, 0) != 11L)
16755 : return -1;
16756 : x12 = XEXP (x2, 0);
16757 : x13 = XEXP (x12, 1);
16758 : operands[2] = x13;
16759 : switch (GET_MODE (operands[0]))
16760 : {
16761 : case E_V8HImode:
16762 : if (pattern1493 (x2,
16763 : E_V8HImode,
16764 : E_V16HImode) != 0
16765 : || !
16766 : #line 11456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16767 : (TARGET_SSE && ix86_binary_operator_ok (UNKNOWN, V8HImode, operands)))
16768 : return -1;
16769 : return 5257; /* sse_movlhps_v8hi */
16770 :
16771 : case E_V8HFmode:
16772 : if (pattern1493 (x2,
16773 : E_V8HFmode,
16774 : E_V16HFmode) != 0
16775 : || !
16776 : #line 11456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16777 : (TARGET_SSE && ix86_binary_operator_ok (UNKNOWN, V8HFmode, operands)))
16778 : return -1;
16779 : return 5258; /* sse_movlhps_v8hf */
16780 :
16781 : case E_V8BFmode:
16782 : if (pattern1493 (x2,
16783 : E_V8BFmode,
16784 : E_V16BFmode) != 0
16785 : || !
16786 : #line 11456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16787 : (TARGET_SSE && ix86_binary_operator_ok (UNKNOWN, V8BFmode, operands)))
16788 : return -1;
16789 : return 5259; /* sse_movlhps_v8bf */
16790 :
16791 : default:
16792 : return -1;
16793 : }
16794 :
16795 : case 8L:
16796 : x6 = XVECEXP (x3, 0, 2);
16797 : switch (XWINT (x6, 0))
16798 : {
16799 : case 1L:
16800 : x7 = XVECEXP (x3, 0, 3);
16801 : if (XWINT (x7, 0) != 9L)
16802 : return -1;
16803 : x12 = XEXP (x2, 0);
16804 : x13 = XEXP (x12, 1);
16805 : operands[2] = x13;
16806 : x8 = XVECEXP (x3, 0, 4);
16807 : switch (XWINT (x8, 0))
16808 : {
16809 : case 4L:
16810 : x9 = XVECEXP (x3, 0, 5);
16811 : if (XWINT (x9, 0) != 12L)
16812 : return -1;
16813 : x10 = XVECEXP (x3, 0, 6);
16814 : if (XWINT (x10, 0) != 5L)
16815 : return -1;
16816 : x11 = XVECEXP (x3, 0, 7);
16817 : if (XWINT (x11, 0) != 13L)
16818 : return -1;
16819 : switch (GET_MODE (operands[0]))
16820 : {
16821 : case E_V8SFmode:
16822 : if (pattern1425 (x2,
16823 : E_V8SFmode,
16824 : E_V16SFmode) != 0
16825 : || !
16826 : #line 11586 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16827 : (TARGET_AVX && 1))
16828 : return -1;
16829 : return 5268; /* avx_unpcklps256 */
16830 :
16831 : case E_V8SImode:
16832 : if (pattern1425 (x2,
16833 : E_V8SImode,
16834 : E_V16SImode) != 0
16835 : || !
16836 : #line 20117 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16837 : (TARGET_AVX2 && 1))
16838 : return -1;
16839 : return 8418; /* avx2_interleave_lowv8si */
16840 :
16841 : default:
16842 : return -1;
16843 : }
16844 :
16845 : case 2L:
16846 : x9 = XVECEXP (x3, 0, 5);
16847 : if (XWINT (x9, 0) != 10L)
16848 : return -1;
16849 : x10 = XVECEXP (x3, 0, 6);
16850 : if (XWINT (x10, 0) != 3L)
16851 : return -1;
16852 : x11 = XVECEXP (x3, 0, 7);
16853 : if (XWINT (x11, 0) != 11L)
16854 : return -1;
16855 : switch (GET_MODE (operands[0]))
16856 : {
16857 : case E_V8HImode:
16858 : if (pattern1494 (x2,
16859 : E_V8HImode,
16860 : E_V16HImode) != 0
16861 : || !
16862 : #line 20042 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16863 : (TARGET_SSE2 && 1 && 1))
16864 : return -1;
16865 : return 8406; /* vec_interleave_lowv8hi */
16866 :
16867 : case E_V8HFmode:
16868 : if (pattern1494 (x2,
16869 : E_V8HFmode,
16870 : E_V16HFmode) != 0
16871 : || !
16872 : #line 20042 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16873 : (TARGET_SSE2 && 1 && 1))
16874 : return -1;
16875 : return 8408; /* vec_interleave_lowv8hf */
16876 :
16877 : case E_V8BFmode:
16878 : if (pattern1494 (x2,
16879 : E_V8BFmode,
16880 : E_V16BFmode) != 0
16881 : || !
16882 : #line 20042 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16883 : (TARGET_SSE2 && 1 && 1))
16884 : return -1;
16885 : return 8410; /* vec_interleave_lowv8bf */
16886 :
16887 : default:
16888 : return -1;
16889 : }
16890 :
16891 : default:
16892 : return -1;
16893 : }
16894 :
16895 : case 2L:
16896 : x7 = XVECEXP (x3, 0, 3);
16897 : if (XWINT (x7, 0) != 10L)
16898 : return -1;
16899 : x8 = XVECEXP (x3, 0, 4);
16900 : if (XWINT (x8, 0) != 4L)
16901 : return -1;
16902 : x9 = XVECEXP (x3, 0, 5);
16903 : if (XWINT (x9, 0) != 12L)
16904 : return -1;
16905 : x10 = XVECEXP (x3, 0, 6);
16906 : if (XWINT (x10, 0) != 6L)
16907 : return -1;
16908 : x11 = XVECEXP (x3, 0, 7);
16909 : if (XWINT (x11, 0) != 14L)
16910 : return -1;
16911 : switch (GET_MODE (operands[0]))
16912 : {
16913 : case E_V8DFmode:
16914 : if (!register_operand (operands[0], E_V8DFmode)
16915 : || GET_MODE (x2) != E_V8DFmode)
16916 : return -1;
16917 : x12 = XEXP (x2, 0);
16918 : if (GET_MODE (x12) != E_V16DFmode)
16919 : return -1;
16920 : if (nonimmediate_operand (operands[1], E_V8DFmode))
16921 : {
16922 : x13 = XEXP (x12, 1);
16923 : if (rtx_equal_p (x13, operands[1])
16924 : &&
16925 : #line 13763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16926 : (TARGET_AVX512F))
16927 : return 5420; /* avx512f_movddup512 */
16928 : }
16929 : if (!register_operand (operands[1], E_V8DFmode))
16930 : return -1;
16931 : x13 = XEXP (x12, 1);
16932 : operands[2] = x13;
16933 : if (!nonimmediate_operand (operands[2], E_V8DFmode)
16934 : || !
16935 : #line 13779 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16936 : (TARGET_AVX512F))
16937 : return -1;
16938 : return 5422; /* avx512f_unpcklpd512 */
16939 :
16940 : case E_V8DImode:
16941 : if (pattern1631 (x2,
16942 : E_V8DImode,
16943 : E_V16DImode) != 0
16944 : || !
16945 : #line 14856 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16946 : (TARGET_AVX512F))
16947 : return -1;
16948 : return 7241; /* *avx512f_interleave_lowv8di */
16949 :
16950 : default:
16951 : return -1;
16952 : }
16953 :
16954 : default:
16955 : return -1;
16956 : }
16957 :
16958 : case 0L:
16959 : if (pattern1677 (x3) != 0
16960 : || pattern1813 (x2,
16961 : E_V8SFmode,
16962 : E_V16SFmode) != 0
16963 : || !
16964 : #line 11725 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16965 : (TARGET_AVX && 1))
16966 : return -1;
16967 : return 5278; /* avx_movsldup256 */
16968 :
16969 : default:
16970 : return -1;
16971 : }
16972 :
16973 : case 2L:
16974 : x5 = XVECEXP (x3, 0, 1);
16975 : if (XWINT (x5, 0) != 10L)
16976 : return -1;
16977 : x6 = XVECEXP (x3, 0, 2);
16978 : if (XWINT (x6, 0) != 3L)
16979 : return -1;
16980 : x7 = XVECEXP (x3, 0, 3);
16981 : if (XWINT (x7, 0) != 11L
16982 : || pattern1727 (x2) != 0)
16983 : return -1;
16984 : switch (GET_MODE (operands[0]))
16985 : {
16986 : case E_V8SFmode:
16987 : if (pattern1425 (x2,
16988 : E_V8SFmode,
16989 : E_V16SFmode) != 0
16990 : || !
16991 : #line 11498 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16992 : (TARGET_AVX && 1))
16993 : return -1;
16994 : return 5262; /* avx_unpckhps256 */
16995 :
16996 : case E_V8SImode:
16997 : if (pattern1425 (x2,
16998 : E_V8SImode,
16999 : E_V16SImode) != 0
17000 : || !
17001 : #line 20062 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17002 : (TARGET_AVX2 && 1))
17003 : return -1;
17004 : return 8412; /* avx2_interleave_highv8si */
17005 :
17006 : default:
17007 : return -1;
17008 : }
17009 :
17010 : case 1L:
17011 : x6 = XVECEXP (x3, 0, 2);
17012 : if (XWINT (x6, 0) != 3L)
17013 : return -1;
17014 : x8 = XVECEXP (x3, 0, 4);
17015 : if (XWINT (x8, 0) != 5L)
17016 : return -1;
17017 : x10 = XVECEXP (x3, 0, 6);
17018 : if (XWINT (x10, 0) != 7L)
17019 : return -1;
17020 : x5 = XVECEXP (x3, 0, 1);
17021 : switch (XWINT (x5, 0))
17022 : {
17023 : case 1L:
17024 : x7 = XVECEXP (x3, 0, 3);
17025 : if (XWINT (x7, 0) != 3L)
17026 : return -1;
17027 : x9 = XVECEXP (x3, 0, 5);
17028 : if (XWINT (x9, 0) != 5L)
17029 : return -1;
17030 : x11 = XVECEXP (x3, 0, 7);
17031 : if (XWINT (x11, 0) != 7L
17032 : || pattern1813 (x2,
17033 : E_V8SFmode,
17034 : E_V16SFmode) != 0
17035 : || !
17036 : #line 11672 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17037 : (TARGET_AVX && 1))
17038 : return -1;
17039 : return 5272; /* avx_movshdup256 */
17040 :
17041 : case 9L:
17042 : x7 = XVECEXP (x3, 0, 3);
17043 : if (XWINT (x7, 0) != 11L)
17044 : return -1;
17045 : x9 = XVECEXP (x3, 0, 5);
17046 : if (XWINT (x9, 0) != 13L)
17047 : return -1;
17048 : x11 = XVECEXP (x3, 0, 7);
17049 : if (XWINT (x11, 0) != 15L)
17050 : return -1;
17051 : x12 = XEXP (x2, 0);
17052 : x13 = XEXP (x12, 1);
17053 : operands[2] = x13;
17054 : switch (GET_MODE (operands[0]))
17055 : {
17056 : case E_V8DFmode:
17057 : if (pattern1425 (x2,
17058 : E_V8DFmode,
17059 : E_V16DFmode) != 0
17060 : || !
17061 : #line 13649 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17062 : (TARGET_AVX512F))
17063 : return -1;
17064 : return 5414; /* *avx512f_unpckhpd512 */
17065 :
17066 : case E_V8DImode:
17067 : if (pattern1425 (x2,
17068 : E_V8DImode,
17069 : E_V16DImode) != 0
17070 : || !
17071 : #line 14806 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17072 : (TARGET_AVX512F))
17073 : return -1;
17074 : return 7235; /* *avx512f_interleave_highv8di */
17075 :
17076 : default:
17077 : return -1;
17078 : }
17079 :
17080 : default:
17081 : return -1;
17082 : }
17083 :
17084 : case 4L:
17085 : x5 = XVECEXP (x3, 0, 1);
17086 : if (XWINT (x5, 0) != 12L)
17087 : return -1;
17088 : x6 = XVECEXP (x3, 0, 2);
17089 : if (XWINT (x6, 0) != 5L)
17090 : return -1;
17091 : x7 = XVECEXP (x3, 0, 3);
17092 : if (XWINT (x7, 0) != 13L
17093 : || pattern1727 (x2) != 0)
17094 : return -1;
17095 : switch (GET_MODE (operands[0]))
17096 : {
17097 : case E_V8HImode:
17098 : if (pattern1494 (x2,
17099 : E_V8HImode,
17100 : E_V16HImode) != 0
17101 : || !
17102 : #line 19974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17103 : (TARGET_SSE2 && 1 && 1))
17104 : return -1;
17105 : return 8388; /* vec_interleave_highv8hi */
17106 :
17107 : case E_V8HFmode:
17108 : if (pattern1494 (x2,
17109 : E_V8HFmode,
17110 : E_V16HFmode) != 0
17111 : || !
17112 : #line 19974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17113 : (TARGET_SSE2 && 1 && 1))
17114 : return -1;
17115 : return 8390; /* vec_interleave_highv8hf */
17116 :
17117 : case E_V8BFmode:
17118 : if (pattern1494 (x2,
17119 : E_V8BFmode,
17120 : E_V16BFmode) != 0
17121 : || !
17122 : #line 19974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17123 : (TARGET_SSE2 && 1 && 1))
17124 : return -1;
17125 : return 8392; /* vec_interleave_highv8bf */
17126 :
17127 : default:
17128 : return -1;
17129 : }
17130 :
17131 : default:
17132 : return -1;
17133 : }
17134 : }
17135 :
17136 : int
17137 : recog_290 (rtx x1 ATTRIBUTE_UNUSED,
17138 : rtx_insn *insn ATTRIBUTE_UNUSED,
17139 : int *pnum_clobbers ATTRIBUTE_UNUSED)
17140 : {
17141 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
17142 : rtx x2, x3, x4, x5;
17143 : int res ATTRIBUTE_UNUSED;
17144 : x2 = XEXP (x1, 1);
17145 : x3 = XEXP (x2, 1);
17146 : x4 = XVECEXP (x3, 0, 0);
17147 : if (GET_CODE (x4) != CONST_INT)
17148 : return -1;
17149 : operands[2] = x4;
17150 : if (const_0_to_7_operand (operands[2], E_VOIDmode))
17151 : {
17152 : x5 = XVECEXP (x3, 0, 1);
17153 : operands[3] = x5;
17154 : if (const_0_to_7_operand (operands[3], E_VOIDmode))
17155 : {
17156 : switch (GET_MODE (operands[0]))
17157 : {
17158 : case E_V2DFmode:
17159 : if (nonimmediate_operand (operands[0], E_V2DFmode)
17160 : && GET_MODE (x2) == E_V2DFmode
17161 : && register_operand (operands[1], E_V8DFmode)
17162 : &&
17163 : #line 12781 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17164 : (TARGET_AVX512DQ
17165 : && INTVAL (operands[2]) % 2 == 0
17166 : && INTVAL (operands[2]) == INTVAL (operands[3]) - 1))
17167 : return 5352; /* *avx512dq_vextractf64x2_1 */
17168 : break;
17169 :
17170 : case E_V2DImode:
17171 : if (nonimmediate_operand (operands[0], E_V2DImode)
17172 : && GET_MODE (x2) == E_V2DImode
17173 : && register_operand (operands[1], E_V8DImode)
17174 : &&
17175 : #line 12781 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17176 : (TARGET_AVX512DQ
17177 : && INTVAL (operands[2]) % 2 == 0
17178 : && INTVAL (operands[2]) == INTVAL (operands[3]) - 1))
17179 : return 5353; /* *avx512dq_vextracti64x2_1 */
17180 : break;
17181 :
17182 : default:
17183 : break;
17184 : }
17185 : }
17186 : }
17187 : x5 = XVECEXP (x3, 0, 1);
17188 : if (GET_CODE (x5) != CONST_INT)
17189 : return -1;
17190 : switch (XWINT (x4, 0))
17191 : {
17192 : case 0L:
17193 : if (XWINT (x5, 0) != 1L)
17194 : return -1;
17195 : switch (GET_MODE (operands[0]))
17196 : {
17197 : case E_V2DImode:
17198 : if (!nonimmediate_operand (operands[0], E_V2DImode)
17199 : || GET_MODE (x2) != E_V2DImode
17200 : || !nonimmediate_operand (operands[1], E_V4DImode)
17201 : || !
17202 : #line 13205 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17203 : (TARGET_AVX
17204 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
17205 : return -1;
17206 : return 5376; /* vec_extract_lo_v4di */
17207 :
17208 : case E_V2DFmode:
17209 : if (!nonimmediate_operand (operands[0], E_V2DFmode)
17210 : || GET_MODE (x2) != E_V2DFmode
17211 : || !nonimmediate_operand (operands[1], E_V4DFmode)
17212 : || !
17213 : #line 13205 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17214 : (TARGET_AVX
17215 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
17216 : return -1;
17217 : return 5377; /* vec_extract_lo_v4df */
17218 :
17219 : default:
17220 : return -1;
17221 : }
17222 :
17223 : case 2L:
17224 : if (XWINT (x5, 0) != 3L)
17225 : return -1;
17226 : switch (GET_MODE (operands[0]))
17227 : {
17228 : case E_V2DImode:
17229 : if (!nonimmediate_operand (operands[0], E_V2DImode)
17230 : || GET_MODE (x2) != E_V2DImode
17231 : || !register_operand (operands[1], E_V4DImode)
17232 : || !
17233 : #line 13241 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17234 : (TARGET_AVX))
17235 : return -1;
17236 : return 5380; /* vec_extract_hi_v4di */
17237 :
17238 : case E_V2DFmode:
17239 : if (!nonimmediate_operand (operands[0], E_V2DFmode)
17240 : || GET_MODE (x2) != E_V2DFmode
17241 : || !register_operand (operands[1], E_V4DFmode)
17242 : || !
17243 : #line 13241 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17244 : (TARGET_AVX))
17245 : return -1;
17246 : return 5381; /* vec_extract_hi_v4df */
17247 :
17248 : default:
17249 : return -1;
17250 : }
17251 :
17252 : default:
17253 : return -1;
17254 : }
17255 : }
17256 :
17257 : int
17258 : recog_294 (rtx x1 ATTRIBUTE_UNUSED,
17259 : rtx_insn *insn ATTRIBUTE_UNUSED,
17260 : int *pnum_clobbers ATTRIBUTE_UNUSED)
17261 : {
17262 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
17263 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
17264 : int res ATTRIBUTE_UNUSED;
17265 : x2 = XEXP (x1, 1);
17266 : x3 = XEXP (x2, 1);
17267 : x4 = XVECEXP (x3, 0, 1);
17268 : operands[3] = x4;
17269 : x5 = XVECEXP (x3, 0, 2);
17270 : operands[4] = x5;
17271 : x6 = XVECEXP (x3, 0, 3);
17272 : operands[5] = x6;
17273 : x7 = XVECEXP (x3, 0, 5);
17274 : operands[7] = x7;
17275 : x8 = XVECEXP (x3, 0, 6);
17276 : operands[8] = x8;
17277 : x9 = XVECEXP (x3, 0, 7);
17278 : operands[9] = x9;
17279 : switch (GET_MODE (operands[0]))
17280 : {
17281 : case E_V8DFmode:
17282 : if (pattern1632 (x2,
17283 : E_V8DFmode) != 0
17284 : || !
17285 : #line 20611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17286 : (TARGET_AVX512F
17287 : && (INTVAL (operands[2]) & 1) == 0
17288 : && INTVAL (operands[2]) == INTVAL (operands[3]) - 1
17289 : && (INTVAL (operands[4]) & 1) == 0
17290 : && INTVAL (operands[4]) == INTVAL (operands[5]) - 1
17291 : && (INTVAL (operands[6]) & 1) == 0
17292 : && INTVAL (operands[6]) == INTVAL (operands[7]) - 1
17293 : && (INTVAL (operands[8]) & 1) == 0
17294 : && INTVAL (operands[8]) == INTVAL (operands[9]) - 1))
17295 : return -1;
17296 : return 8466; /* *avx512f_shuf_f64x2_1_1 */
17297 :
17298 : case E_V8DImode:
17299 : if (pattern1632 (x2,
17300 : E_V8DImode) != 0
17301 : || !
17302 : #line 20611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17303 : (TARGET_AVX512F
17304 : && (INTVAL (operands[2]) & 1) == 0
17305 : && INTVAL (operands[2]) == INTVAL (operands[3]) - 1
17306 : && (INTVAL (operands[4]) & 1) == 0
17307 : && INTVAL (operands[4]) == INTVAL (operands[5]) - 1
17308 : && (INTVAL (operands[6]) & 1) == 0
17309 : && INTVAL (operands[6]) == INTVAL (operands[7]) - 1
17310 : && (INTVAL (operands[8]) & 1) == 0
17311 : && INTVAL (operands[8]) == INTVAL (operands[9]) - 1))
17312 : return -1;
17313 : return 8468; /* *avx512f_shuf_i64x2_1_1 */
17314 :
17315 : case E_V8SImode:
17316 : if (!register_operand (operands[0], E_V8SImode)
17317 : || GET_MODE (x2) != E_V8SImode
17318 : || !nonimmediate_operand (operands[1], E_V8SImode)
17319 : || pattern1728 () != 0
17320 : || !
17321 : #line 20968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17322 : (TARGET_AVX2
17323 : && 1
17324 : && INTVAL (operands[2]) + 4 == INTVAL (operands[6])
17325 : && INTVAL (operands[3]) + 4 == INTVAL (operands[7])
17326 : && INTVAL (operands[4]) + 4 == INTVAL (operands[8])
17327 : && INTVAL (operands[5]) + 4 == INTVAL (operands[9])))
17328 : return -1;
17329 : return 8484; /* avx2_pshufd_1 */
17330 :
17331 : default:
17332 : return -1;
17333 : }
17334 : }
17335 :
17336 : int
17337 : recog_297 (rtx x1 ATTRIBUTE_UNUSED,
17338 : rtx_insn *insn ATTRIBUTE_UNUSED,
17339 : int *pnum_clobbers ATTRIBUTE_UNUSED)
17340 : {
17341 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
17342 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
17343 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
17344 : rtx x18, x19;
17345 : int res ATTRIBUTE_UNUSED;
17346 : x2 = XEXP (x1, 1);
17347 : x3 = XEXP (x2, 1);
17348 : if (pattern931 (x3) != 0)
17349 : return -1;
17350 : x4 = XVECEXP (x3, 0, 0);
17351 : switch (XWINT (x4, 0))
17352 : {
17353 : case 0L:
17354 : if (pattern1792 (x3) != 0)
17355 : return -1;
17356 : switch (pattern1804 (x2))
17357 : {
17358 : case 0:
17359 : if (!
17360 : #line 13350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17361 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
17362 : return -1;
17363 : return 5390; /* vec_extract_lo_v32hi */
17364 :
17365 : case 1:
17366 : if (!
17367 : #line 13350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17368 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
17369 : return -1;
17370 : return 5391; /* vec_extract_lo_v32hf */
17371 :
17372 : case 2:
17373 : if (!
17374 : #line 13350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17375 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
17376 : return -1;
17377 : return 5392; /* vec_extract_lo_v32bf */
17378 :
17379 : case 3:
17380 : if (!
17381 : #line 13520 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17382 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
17383 : return -1;
17384 : return 5404; /* vec_extract_lo_v32qi */
17385 :
17386 : default:
17387 : return -1;
17388 : }
17389 :
17390 : case 16L:
17391 : x5 = XVECEXP (x3, 0, 1);
17392 : if (XWINT (x5, 0) != 17L)
17393 : return -1;
17394 : x6 = XVECEXP (x3, 0, 2);
17395 : if (XWINT (x6, 0) != 18L)
17396 : return -1;
17397 : x7 = XVECEXP (x3, 0, 3);
17398 : if (XWINT (x7, 0) != 19L)
17399 : return -1;
17400 : x8 = XVECEXP (x3, 0, 4);
17401 : if (XWINT (x8, 0) != 20L)
17402 : return -1;
17403 : x9 = XVECEXP (x3, 0, 5);
17404 : if (XWINT (x9, 0) != 21L)
17405 : return -1;
17406 : x10 = XVECEXP (x3, 0, 6);
17407 : if (XWINT (x10, 0) != 22L)
17408 : return -1;
17409 : x11 = XVECEXP (x3, 0, 7);
17410 : if (XWINT (x11, 0) != 23L)
17411 : return -1;
17412 : x12 = XVECEXP (x3, 0, 8);
17413 : if (XWINT (x12, 0) != 24L)
17414 : return -1;
17415 : x13 = XVECEXP (x3, 0, 9);
17416 : if (XWINT (x13, 0) != 25L)
17417 : return -1;
17418 : x14 = XVECEXP (x3, 0, 10);
17419 : if (XWINT (x14, 0) != 26L)
17420 : return -1;
17421 : x15 = XVECEXP (x3, 0, 11);
17422 : if (XWINT (x15, 0) != 27L)
17423 : return -1;
17424 : x16 = XVECEXP (x3, 0, 12);
17425 : if (XWINT (x16, 0) != 28L)
17426 : return -1;
17427 : x17 = XVECEXP (x3, 0, 13);
17428 : if (XWINT (x17, 0) != 29L)
17429 : return -1;
17430 : x18 = XVECEXP (x3, 0, 14);
17431 : if (XWINT (x18, 0) != 30L)
17432 : return -1;
17433 : x19 = XVECEXP (x3, 0, 15);
17434 : if (XWINT (x19, 0) != 31L)
17435 : return -1;
17436 : switch (GET_MODE (operands[0]))
17437 : {
17438 : case E_V16HImode:
17439 : if (!nonimmediate_operand (operands[0], E_V16HImode)
17440 : || GET_MODE (x2) != E_V16HImode
17441 : || !register_operand (operands[1], E_V32HImode)
17442 : || !
17443 : #line 13391 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17444 : (TARGET_AVX512F))
17445 : return -1;
17446 : return 5393; /* vec_extract_hi_v32hi */
17447 :
17448 : case E_V16HFmode:
17449 : if (!nonimmediate_operand (operands[0], E_V16HFmode)
17450 : || GET_MODE (x2) != E_V16HFmode
17451 : || !register_operand (operands[1], E_V32HFmode)
17452 : || !
17453 : #line 13391 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17454 : (TARGET_AVX512F))
17455 : return -1;
17456 : return 5394; /* vec_extract_hi_v32hf */
17457 :
17458 : case E_V16BFmode:
17459 : if (!nonimmediate_operand (operands[0], E_V16BFmode)
17460 : || GET_MODE (x2) != E_V16BFmode
17461 : || !register_operand (operands[1], E_V32BFmode)
17462 : || !
17463 : #line 13391 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17464 : (TARGET_AVX512F))
17465 : return -1;
17466 : return 5395; /* vec_extract_hi_v32bf */
17467 :
17468 : case E_V16QImode:
17469 : if (!nonimmediate_operand (operands[0], E_V16QImode)
17470 : || GET_MODE (x2) != E_V16QImode
17471 : || !register_operand (operands[1], E_V32QImode)
17472 : || !
17473 : #line 13538 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17474 : (TARGET_AVX))
17475 : return -1;
17476 : return 5405; /* vec_extract_hi_v32qi */
17477 :
17478 : default:
17479 : return -1;
17480 : }
17481 :
17482 : default:
17483 : return -1;
17484 : }
17485 : }
17486 :
17487 : int
17488 : recog_308 (rtx x1 ATTRIBUTE_UNUSED,
17489 : rtx_insn *insn ATTRIBUTE_UNUSED,
17490 : int *pnum_clobbers ATTRIBUTE_UNUSED)
17491 : {
17492 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
17493 : rtx x2, x3, x4;
17494 : int res ATTRIBUTE_UNUSED;
17495 : x2 = XEXP (x1, 1);
17496 : x3 = XEXP (x2, 0);
17497 : switch (GET_CODE (x3))
17498 : {
17499 : case NOT:
17500 : x4 = XEXP (x3, 0);
17501 : operands[1] = x4;
17502 : switch (GET_CODE (operands[1]))
17503 : {
17504 : case GT:
17505 : case LT:
17506 : switch (pattern686 (x2))
17507 : {
17508 : case 0:
17509 : if (!(
17510 : #line 3414 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17511 : (TARGET_SSE && ix86_pre_reload_split ()
17512 : && rtx_equal_p (operands[2], operands[4])) &&
17513 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17514 : (TARGET_AVX)))
17515 : return -1;
17516 : return 3106; /* *minmaxv8sf3_3 */
17517 :
17518 : case 1:
17519 : if (!
17520 : #line 3414 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17521 : (TARGET_SSE && ix86_pre_reload_split ()
17522 : && rtx_equal_p (operands[2], operands[4])))
17523 : return -1;
17524 : return 3107; /* *minmaxv4sf3_3 */
17525 :
17526 : case 2:
17527 : if (!(
17528 : #line 3414 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17529 : (TARGET_SSE && ix86_pre_reload_split ()
17530 : && rtx_equal_p (operands[2], operands[4])) &&
17531 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17532 : (TARGET_AVX)))
17533 : return -1;
17534 : return 3108; /* *minmaxv4df3_3 */
17535 :
17536 : case 3:
17537 : if (!(
17538 : #line 3414 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17539 : (TARGET_SSE && ix86_pre_reload_split ()
17540 : && rtx_equal_p (operands[2], operands[4])) &&
17541 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17542 : (TARGET_SSE2)))
17543 : return -1;
17544 : return 3109; /* *minmaxv2df3_3 */
17545 :
17546 : default:
17547 : return -1;
17548 : }
17549 :
17550 : case REG:
17551 : case SUBREG:
17552 : case MEM:
17553 : case VEC_DUPLICATE:
17554 : switch (pattern539 (x2))
17555 : {
17556 : case 0:
17557 : switch (GET_MODE (operands[0]))
17558 : {
17559 : case E_V16BFmode:
17560 : if (pattern623 (x2,
17561 : E_V16BFmode) != 0
17562 : || !(
17563 : #line 5590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17564 : (TARGET_SSE && 1
17565 : && (!false || 16 != 16)) &&
17566 : #line 430 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17567 : (TARGET_AVX)))
17568 : return -1;
17569 : return 3765; /* avx512bf16_andnotv16bf3 */
17570 :
17571 : case E_V8BFmode:
17572 : if (pattern623 (x2,
17573 : E_V8BFmode) != 0
17574 : || !(
17575 : #line 5590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17576 : (TARGET_SSE && 1
17577 : && (!false || 16 != 16)) &&
17578 : #line 430 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17579 : (TARGET_SSE2)))
17580 : return -1;
17581 : return 3766; /* avx512bf16_andnotv8bf3 */
17582 :
17583 : case E_V16HFmode:
17584 : if (pattern623 (x2,
17585 : E_V16HFmode) != 0
17586 : || !(
17587 : #line 5590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17588 : (TARGET_SSE && 1
17589 : && (!false || 16 != 16)) &&
17590 : #line 431 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17591 : (TARGET_AVX)))
17592 : return -1;
17593 : return 3767; /* avx512fp16_andnotv16hf3 */
17594 :
17595 : case E_V8HFmode:
17596 : if (pattern623 (x2,
17597 : E_V8HFmode) != 0
17598 : || !(
17599 : #line 5590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17600 : (TARGET_SSE && 1
17601 : && (!false || 16 != 16)) &&
17602 : #line 431 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17603 : (TARGET_SSE2)))
17604 : return -1;
17605 : return 3768; /* avx512fp16_andnotv8hf3 */
17606 :
17607 : case E_V8SFmode:
17608 : if (pattern623 (x2,
17609 : E_V8SFmode) != 0
17610 : || !(
17611 : #line 5590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17612 : (TARGET_SSE && 1
17613 : && (!false || 32 != 16)) &&
17614 : #line 432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17615 : (TARGET_AVX)))
17616 : return -1;
17617 : return 3769; /* avx_andnotv8sf3 */
17618 :
17619 : case E_V4SFmode:
17620 : if (pattern623 (x2,
17621 : E_V4SFmode) != 0
17622 : || !
17623 : #line 5590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17624 : (TARGET_SSE && 1
17625 : && (!false || 32 != 16)))
17626 : return -1;
17627 : return 3771; /* sse_andnotv4sf3 */
17628 :
17629 : case E_V4DFmode:
17630 : if (pattern623 (x2,
17631 : E_V4DFmode) != 0
17632 : || !(
17633 : #line 5590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17634 : (TARGET_SSE && 1
17635 : && (!false || 64 != 16)) &&
17636 : #line 433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17637 : (TARGET_AVX)))
17638 : return -1;
17639 : return 3773; /* avx_andnotv4df3 */
17640 :
17641 : case E_V2DFmode:
17642 : if (pattern623 (x2,
17643 : E_V2DFmode) != 0
17644 : || !(
17645 : #line 5590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17646 : (TARGET_SSE && 1
17647 : && (!false || 64 != 16)) &&
17648 : #line 433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17649 : (TARGET_SSE2)))
17650 : return -1;
17651 : return 3775; /* sse2_andnotv2df3 */
17652 :
17653 : case E_V32BFmode:
17654 : if (pattern745 (x2,
17655 : E_V32BFmode) != 0
17656 : || !
17657 : #line 5665 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17658 : (TARGET_AVX512F && (!false || 16 != 16)))
17659 : return -1;
17660 : return 3777; /* avx512bf16_andnotv32bf3 */
17661 :
17662 : case E_V32HFmode:
17663 : if (pattern745 (x2,
17664 : E_V32HFmode) != 0
17665 : || !
17666 : #line 5665 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17667 : (TARGET_AVX512F && (!false || 16 != 16)))
17668 : return -1;
17669 : return 3778; /* avx512fp16_andnotv32hf3 */
17670 :
17671 : case E_V16SFmode:
17672 : if (pattern745 (x2,
17673 : E_V16SFmode) != 0
17674 : || !
17675 : #line 5665 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17676 : (TARGET_AVX512F && (!false || 32 != 16)))
17677 : return -1;
17678 : return 3779; /* avx512f_andnotv16sf3 */
17679 :
17680 : case E_V8DFmode:
17681 : if (pattern745 (x2,
17682 : E_V8DFmode) != 0
17683 : || !
17684 : #line 5665 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17685 : (TARGET_AVX512F && (!false || 64 != 16)))
17686 : return -1;
17687 : return 3781; /* avx512f_andnotv8df3 */
17688 :
17689 : case E_V1TImode:
17690 : if (pattern623 (x2,
17691 : E_V1TImode) != 0
17692 : || !
17693 : #line 5956 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17694 : (TARGET_SSE))
17695 : return -1;
17696 : return 3854; /* *andnotv1ti3 */
17697 :
17698 : case E_V16SImode:
17699 : if (pattern933 (x2,
17700 : E_V16SImode) != 0
17701 : || !(
17702 : #line 18826 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17703 : (TARGET_SSE
17704 : && (register_operand (operands[1], V16SImode)
17705 : || register_operand (operands[2], V16SImode))) &&
17706 : #line 556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17707 : (TARGET_AVX512F)))
17708 : return -1;
17709 : return 8031; /* *andnotv16si3 */
17710 :
17711 : case E_V8DImode:
17712 : if (pattern933 (x2,
17713 : E_V8DImode) != 0
17714 : || !(
17715 : #line 18826 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17716 : (TARGET_SSE
17717 : && (register_operand (operands[1], V8DImode)
17718 : || register_operand (operands[2], V8DImode))) &&
17719 : #line 556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17720 : (TARGET_AVX512F)))
17721 : return -1;
17722 : return 8032; /* *andnotv8di3 */
17723 :
17724 : case E_V64QImode:
17725 : if (pattern933 (x2,
17726 : E_V64QImode) != 0
17727 : || !(
17728 : #line 18826 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17729 : (TARGET_SSE
17730 : && (register_operand (operands[1], V64QImode)
17731 : || register_operand (operands[2], V64QImode))) &&
17732 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17733 : (TARGET_AVX512BW)))
17734 : return -1;
17735 : return 8033; /* *andnotv64qi3 */
17736 :
17737 : case E_V32QImode:
17738 : if (pattern933 (x2,
17739 : E_V32QImode) != 0
17740 : || !(
17741 : #line 18826 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17742 : (TARGET_SSE
17743 : && (register_operand (operands[1], V32QImode)
17744 : || register_operand (operands[2], V32QImode))) &&
17745 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17746 : (TARGET_AVX)))
17747 : return -1;
17748 : return 8034; /* *andnotv32qi3 */
17749 :
17750 : case E_V16QImode:
17751 : if (pattern933 (x2,
17752 : E_V16QImode) != 0
17753 : || !
17754 : #line 18826 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17755 : (TARGET_SSE
17756 : && (register_operand (operands[1], V16QImode)
17757 : || register_operand (operands[2], V16QImode))))
17758 : return -1;
17759 : return 8035; /* *andnotv16qi3 */
17760 :
17761 : case E_V32HImode:
17762 : if (pattern933 (x2,
17763 : E_V32HImode) != 0
17764 : || !(
17765 : #line 18826 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17766 : (TARGET_SSE
17767 : && (register_operand (operands[1], V32HImode)
17768 : || register_operand (operands[2], V32HImode))) &&
17769 : #line 558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17770 : (TARGET_AVX512BW)))
17771 : return -1;
17772 : return 8036; /* *andnotv32hi3 */
17773 :
17774 : case E_V16HImode:
17775 : if (pattern933 (x2,
17776 : E_V16HImode) != 0
17777 : || !(
17778 : #line 18826 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17779 : (TARGET_SSE
17780 : && (register_operand (operands[1], V16HImode)
17781 : || register_operand (operands[2], V16HImode))) &&
17782 : #line 558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17783 : (TARGET_AVX)))
17784 : return -1;
17785 : return 8037; /* *andnotv16hi3 */
17786 :
17787 : case E_V8HImode:
17788 : if (pattern933 (x2,
17789 : E_V8HImode) != 0
17790 : || !
17791 : #line 18826 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17792 : (TARGET_SSE
17793 : && (register_operand (operands[1], V8HImode)
17794 : || register_operand (operands[2], V8HImode))))
17795 : return -1;
17796 : return 8038; /* *andnotv8hi3 */
17797 :
17798 : case E_V8SImode:
17799 : if (pattern933 (x2,
17800 : E_V8SImode) != 0
17801 : || !(
17802 : #line 18826 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17803 : (TARGET_SSE
17804 : && (register_operand (operands[1], V8SImode)
17805 : || register_operand (operands[2], V8SImode))) &&
17806 : #line 559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17807 : (TARGET_AVX)))
17808 : return -1;
17809 : return 8039; /* *andnotv8si3 */
17810 :
17811 : case E_V4SImode:
17812 : if (pattern933 (x2,
17813 : E_V4SImode) != 0
17814 : || !
17815 : #line 18826 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17816 : (TARGET_SSE
17817 : && (register_operand (operands[1], V4SImode)
17818 : || register_operand (operands[2], V4SImode))))
17819 : return -1;
17820 : return 8040; /* *andnotv4si3 */
17821 :
17822 : case E_V4DImode:
17823 : if (pattern933 (x2,
17824 : E_V4DImode) != 0
17825 : || !(
17826 : #line 18826 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17827 : (TARGET_SSE
17828 : && (register_operand (operands[1], V4DImode)
17829 : || register_operand (operands[2], V4DImode))) &&
17830 : #line 560 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17831 : (TARGET_AVX)))
17832 : return -1;
17833 : return 8041; /* *andnotv4di3 */
17834 :
17835 : case E_V2DImode:
17836 : if (pattern933 (x2,
17837 : E_V2DImode) != 0
17838 : || !
17839 : #line 18826 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17840 : (TARGET_SSE
17841 : && (register_operand (operands[1], V2DImode)
17842 : || register_operand (operands[2], V2DImode))))
17843 : return -1;
17844 : return 8042; /* *andnotv2di3 */
17845 :
17846 : default:
17847 : return -1;
17848 : }
17849 :
17850 : case 1:
17851 : if (!(
17852 : #line 19359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17853 : ((64 == 64 || TARGET_AVX512VL
17854 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17855 : && (register_operand (operands[1], V16SImode)
17856 : || register_operand (operands[2], V16SImode))) &&
17857 : #line 556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17858 : (TARGET_AVX512F)))
17859 : return -1;
17860 : return 8130; /* *norv16si3 */
17861 :
17862 : case 2:
17863 : if (!(
17864 : #line 19359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17865 : ((64 == 64 || TARGET_AVX512VL
17866 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17867 : && (register_operand (operands[1], V8DImode)
17868 : || register_operand (operands[2], V8DImode))) &&
17869 : #line 556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17870 : (TARGET_AVX512F)))
17871 : return -1;
17872 : return 8132; /* *norv8di3 */
17873 :
17874 : case 3:
17875 : if (!(
17876 : #line 19359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17877 : ((64 == 64 || TARGET_AVX512VL
17878 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17879 : && (register_operand (operands[1], V64QImode)
17880 : || register_operand (operands[2], V64QImode))) &&
17881 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17882 : (TARGET_AVX512BW)))
17883 : return -1;
17884 : return 8134; /* *norv64qi3 */
17885 :
17886 : case 4:
17887 : if (!(
17888 : #line 19359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17889 : ((32 == 64 || TARGET_AVX512VL
17890 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17891 : && (register_operand (operands[1], V32QImode)
17892 : || register_operand (operands[2], V32QImode))) &&
17893 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17894 : (TARGET_AVX)))
17895 : return -1;
17896 : return 8136; /* *norv32qi3 */
17897 :
17898 : case 5:
17899 : if (!
17900 : #line 19359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17901 : ((16 == 64 || TARGET_AVX512VL
17902 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17903 : && (register_operand (operands[1], V16QImode)
17904 : || register_operand (operands[2], V16QImode))))
17905 : return -1;
17906 : return 8138; /* *norv16qi3 */
17907 :
17908 : case 6:
17909 : if (!(
17910 : #line 19359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17911 : ((64 == 64 || TARGET_AVX512VL
17912 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17913 : && (register_operand (operands[1], V32HImode)
17914 : || register_operand (operands[2], V32HImode))) &&
17915 : #line 558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17916 : (TARGET_AVX512BW)))
17917 : return -1;
17918 : return 8140; /* *norv32hi3 */
17919 :
17920 : case 7:
17921 : if (!(
17922 : #line 19359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17923 : ((32 == 64 || TARGET_AVX512VL
17924 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17925 : && (register_operand (operands[1], V16HImode)
17926 : || register_operand (operands[2], V16HImode))) &&
17927 : #line 558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17928 : (TARGET_AVX)))
17929 : return -1;
17930 : return 8142; /* *norv16hi3 */
17931 :
17932 : case 8:
17933 : if (!
17934 : #line 19359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17935 : ((16 == 64 || TARGET_AVX512VL
17936 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17937 : && (register_operand (operands[1], V8HImode)
17938 : || register_operand (operands[2], V8HImode))))
17939 : return -1;
17940 : return 8144; /* *norv8hi3 */
17941 :
17942 : case 9:
17943 : if (!(
17944 : #line 19359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17945 : ((32 == 64 || TARGET_AVX512VL
17946 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17947 : && (register_operand (operands[1], V8SImode)
17948 : || register_operand (operands[2], V8SImode))) &&
17949 : #line 559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17950 : (TARGET_AVX)))
17951 : return -1;
17952 : return 8146; /* *norv8si3 */
17953 :
17954 : case 10:
17955 : if (!
17956 : #line 19359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17957 : ((16 == 64 || TARGET_AVX512VL
17958 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17959 : && (register_operand (operands[1], V4SImode)
17960 : || register_operand (operands[2], V4SImode))))
17961 : return -1;
17962 : return 8148; /* *norv4si3 */
17963 :
17964 : case 11:
17965 : if (!(
17966 : #line 19359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17967 : ((32 == 64 || TARGET_AVX512VL
17968 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17969 : && (register_operand (operands[1], V4DImode)
17970 : || register_operand (operands[2], V4DImode))) &&
17971 : #line 560 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17972 : (TARGET_AVX)))
17973 : return -1;
17974 : return 8150; /* *norv4di3 */
17975 :
17976 : case 12:
17977 : if (!
17978 : #line 19359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17979 : ((16 == 64 || TARGET_AVX512VL
17980 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17981 : && (register_operand (operands[1], V2DImode)
17982 : || register_operand (operands[2], V2DImode))))
17983 : return -1;
17984 : return 8152; /* *norv2di3 */
17985 :
17986 : default:
17987 : return -1;
17988 : }
17989 :
17990 : default:
17991 : return -1;
17992 : }
17993 :
17994 : case GT:
17995 : case LT:
17996 : operands[1] = x3;
17997 : switch (pattern529 (x2))
17998 : {
17999 : case 0:
18000 : if ((
18001 : #line 3436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18002 : (TARGET_SSE && ix86_pre_reload_split ()
18003 : && rtx_equal_p (operands[2], operands[4])) &&
18004 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18005 : (TARGET_AVX)))
18006 : return 3110; /* *minmaxv8sf3_4 */
18007 : break;
18008 :
18009 : case 1:
18010 : if (
18011 : #line 3436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18012 : (TARGET_SSE && ix86_pre_reload_split ()
18013 : && rtx_equal_p (operands[2], operands[4])))
18014 : return 3111; /* *minmaxv4sf3_4 */
18015 : break;
18016 :
18017 : case 2:
18018 : if ((
18019 : #line 3436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18020 : (TARGET_SSE && ix86_pre_reload_split ()
18021 : && rtx_equal_p (operands[2], operands[4])) &&
18022 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18023 : (TARGET_AVX)))
18024 : return 3112; /* *minmaxv4df3_4 */
18025 : break;
18026 :
18027 : case 3:
18028 : if ((
18029 : #line 3436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18030 : (TARGET_SSE && ix86_pre_reload_split ()
18031 : && rtx_equal_p (operands[2], operands[4])) &&
18032 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18033 : (TARGET_SSE2)))
18034 : return 3113; /* *minmaxv2df3_4 */
18035 : break;
18036 :
18037 : default:
18038 : break;
18039 : }
18040 : x4 = XEXP (x3, 0);
18041 : operands[1] = x4;
18042 : switch (pattern531 (x2))
18043 : {
18044 : case 0:
18045 : if (!(
18046 : #line 17650 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18047 : (TARGET_SSE4_2 && ix86_pre_reload_split ()) &&
18048 : #line 697 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18049 : (TARGET_AVX2)))
18050 : return -1;
18051 : return 7716; /* *avx2_lshrv4di3_1 */
18052 :
18053 : case 1:
18054 : if (!
18055 : #line 17650 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18056 : (TARGET_SSE4_2 && ix86_pre_reload_split ()))
18057 : return -1;
18058 : return 7717; /* *avx2_lshrv2di3_1 */
18059 :
18060 : case 2:
18061 : switch (GET_MODE (operands[0]))
18062 : {
18063 : case E_V4DImode:
18064 : if (pattern956 (x2,
18065 : E_V4DImode) != 0
18066 : || !(
18067 : #line 17667 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18068 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
18069 : #line 697 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18070 : (TARGET_AVX2)))
18071 : return -1;
18072 : return 7718; /* *avx2_lshrv4di3_2 */
18073 :
18074 : case E_V2DImode:
18075 : if (pattern956 (x2,
18076 : E_V2DImode) != 0
18077 : || !
18078 : #line 17667 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18079 : (TARGET_SSE2 && ix86_pre_reload_split ()))
18080 : return -1;
18081 : return 7719; /* *avx2_lshrv2di3_2 */
18082 :
18083 : default:
18084 : return -1;
18085 : }
18086 :
18087 : default:
18088 : return -1;
18089 : }
18090 :
18091 : case REG:
18092 : case SUBREG:
18093 : case MEM:
18094 : case VEC_DUPLICATE:
18095 : return recog_305 (x1, insn, pnum_clobbers);
18096 :
18097 : case AND:
18098 : x4 = XEXP (x3, 0);
18099 : switch (GET_CODE (x4))
18100 : {
18101 : case REG:
18102 : case SUBREG:
18103 : case MEM:
18104 : case NOT:
18105 : switch (pattern535 (x2))
18106 : {
18107 : case 0:
18108 : if (!(
18109 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18110 : ((64 == 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 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18122 : (TARGET_AVX512F)))
18123 : return -1;
18124 : return 5538; /* *avx512bw_vpternlogv64qi_1 */
18125 :
18126 : case 1:
18127 : if (!(
18128 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18129 : ((32 == 64 || TARGET_AVX512VL
18130 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18131 : && ix86_pre_reload_split ()
18132 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18133 : STRIP_UNARY (operands[4]))
18134 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18135 : STRIP_UNARY (operands[4]))
18136 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18137 : STRIP_UNARY (operands[3]))
18138 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18139 : STRIP_UNARY (operands[3])))) &&
18140 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18141 : (TARGET_AVX)))
18142 : return -1;
18143 : return 5565; /* *avx512vl_vpternlogv32qi_1 */
18144 :
18145 : case 2:
18146 : if (!
18147 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18148 : ((16 == 64 || TARGET_AVX512VL
18149 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18150 : && ix86_pre_reload_split ()
18151 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18152 : STRIP_UNARY (operands[4]))
18153 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18154 : STRIP_UNARY (operands[4]))
18155 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18156 : STRIP_UNARY (operands[3]))
18157 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18158 : STRIP_UNARY (operands[3])))))
18159 : return -1;
18160 : return 5592; /* *avx512vl_vpternlogv16qi_1 */
18161 :
18162 : case 3:
18163 : if (!(
18164 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18165 : ((64 == 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 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18177 : (TARGET_AVX512F)))
18178 : return -1;
18179 : return 5619; /* *avx512bw_vpternlogv32hi_1 */
18180 :
18181 : case 4:
18182 : if (!(
18183 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18184 : ((32 == 64 || TARGET_AVX512VL
18185 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18186 : && ix86_pre_reload_split ()
18187 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18188 : STRIP_UNARY (operands[4]))
18189 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18190 : STRIP_UNARY (operands[4]))
18191 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18192 : STRIP_UNARY (operands[3]))
18193 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18194 : STRIP_UNARY (operands[3])))) &&
18195 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18196 : (TARGET_AVX)))
18197 : return -1;
18198 : return 5646; /* *avx512vl_vpternlogv16hi_1 */
18199 :
18200 : case 5:
18201 : if (!
18202 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18203 : ((16 == 64 || TARGET_AVX512VL
18204 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18205 : && ix86_pre_reload_split ()
18206 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18207 : STRIP_UNARY (operands[4]))
18208 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18209 : STRIP_UNARY (operands[4]))
18210 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18211 : STRIP_UNARY (operands[3]))
18212 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18213 : STRIP_UNARY (operands[3])))))
18214 : return -1;
18215 : return 5673; /* *avx512vl_vpternlogv8hi_1 */
18216 :
18217 : case 6:
18218 : if (!(
18219 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18220 : ((64 == 64 || TARGET_AVX512VL
18221 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18222 : && ix86_pre_reload_split ()
18223 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18224 : STRIP_UNARY (operands[4]))
18225 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18226 : STRIP_UNARY (operands[4]))
18227 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18228 : STRIP_UNARY (operands[3]))
18229 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18230 : STRIP_UNARY (operands[3])))) &&
18231 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18232 : (TARGET_AVX512F)))
18233 : return -1;
18234 : return 5700; /* *avx512f_vpternlogv16si_1 */
18235 :
18236 : case 7:
18237 : if (!(
18238 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18239 : ((32 == 64 || TARGET_AVX512VL
18240 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18241 : && ix86_pre_reload_split ()
18242 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18243 : STRIP_UNARY (operands[4]))
18244 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18245 : STRIP_UNARY (operands[4]))
18246 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18247 : STRIP_UNARY (operands[3]))
18248 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18249 : STRIP_UNARY (operands[3])))) &&
18250 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18251 : (TARGET_AVX)))
18252 : return -1;
18253 : return 5727; /* *avx512vl_vpternlogv8si_1 */
18254 :
18255 : case 8:
18256 : if (!
18257 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18258 : ((16 == 64 || TARGET_AVX512VL
18259 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18260 : && ix86_pre_reload_split ()
18261 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18262 : STRIP_UNARY (operands[4]))
18263 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18264 : STRIP_UNARY (operands[4]))
18265 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18266 : STRIP_UNARY (operands[3]))
18267 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18268 : STRIP_UNARY (operands[3])))))
18269 : return -1;
18270 : return 5754; /* *avx512vl_vpternlogv4si_1 */
18271 :
18272 : case 9:
18273 : if (!(
18274 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18275 : ((64 == 64 || TARGET_AVX512VL
18276 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18277 : && ix86_pre_reload_split ()
18278 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18279 : STRIP_UNARY (operands[4]))
18280 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18281 : STRIP_UNARY (operands[4]))
18282 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18283 : STRIP_UNARY (operands[3]))
18284 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18285 : STRIP_UNARY (operands[3])))) &&
18286 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18287 : (TARGET_AVX512F)))
18288 : return -1;
18289 : return 5781; /* *avx512f_vpternlogv8di_1 */
18290 :
18291 : case 10:
18292 : if (!(
18293 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18294 : ((32 == 64 || TARGET_AVX512VL
18295 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18296 : && ix86_pre_reload_split ()
18297 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18298 : STRIP_UNARY (operands[4]))
18299 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18300 : STRIP_UNARY (operands[4]))
18301 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18302 : STRIP_UNARY (operands[3]))
18303 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18304 : STRIP_UNARY (operands[3])))) &&
18305 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18306 : (TARGET_AVX)))
18307 : return -1;
18308 : return 5808; /* *avx512vl_vpternlogv4di_1 */
18309 :
18310 : case 11:
18311 : if (!
18312 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18313 : ((16 == 64 || TARGET_AVX512VL
18314 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18315 : && ix86_pre_reload_split ()
18316 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18317 : STRIP_UNARY (operands[4]))
18318 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18319 : STRIP_UNARY (operands[4]))
18320 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18321 : STRIP_UNARY (operands[3]))
18322 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18323 : STRIP_UNARY (operands[3])))))
18324 : return -1;
18325 : return 5835; /* *avx512vl_vpternlogv2di_1 */
18326 :
18327 : case 12:
18328 : if (!(
18329 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18330 : ((64 == 64 || TARGET_AVX512VL
18331 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18332 : && ix86_pre_reload_split ()
18333 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18334 : STRIP_UNARY (operands[4]))
18335 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18336 : STRIP_UNARY (operands[4]))
18337 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18338 : STRIP_UNARY (operands[3]))
18339 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18340 : STRIP_UNARY (operands[3])))) &&
18341 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18342 : (TARGET_AVX512F)))
18343 : return -1;
18344 : return 5541; /* *avx512bw_vpternlogv64qi_1 */
18345 :
18346 : case 13:
18347 : if (!(
18348 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18349 : ((32 == 64 || TARGET_AVX512VL
18350 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18351 : && ix86_pre_reload_split ()
18352 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18353 : STRIP_UNARY (operands[4]))
18354 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18355 : STRIP_UNARY (operands[4]))
18356 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18357 : STRIP_UNARY (operands[3]))
18358 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18359 : STRIP_UNARY (operands[3])))) &&
18360 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18361 : (TARGET_AVX)))
18362 : return -1;
18363 : return 5568; /* *avx512vl_vpternlogv32qi_1 */
18364 :
18365 : case 14:
18366 : if (!
18367 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18368 : ((16 == 64 || TARGET_AVX512VL
18369 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18370 : && ix86_pre_reload_split ()
18371 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18372 : STRIP_UNARY (operands[4]))
18373 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18374 : STRIP_UNARY (operands[4]))
18375 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18376 : STRIP_UNARY (operands[3]))
18377 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18378 : STRIP_UNARY (operands[3])))))
18379 : return -1;
18380 : return 5595; /* *avx512vl_vpternlogv16qi_1 */
18381 :
18382 : case 15:
18383 : if (!(
18384 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18385 : ((64 == 64 || TARGET_AVX512VL
18386 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18387 : && ix86_pre_reload_split ()
18388 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18389 : STRIP_UNARY (operands[4]))
18390 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18391 : STRIP_UNARY (operands[4]))
18392 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18393 : STRIP_UNARY (operands[3]))
18394 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18395 : STRIP_UNARY (operands[3])))) &&
18396 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18397 : (TARGET_AVX512F)))
18398 : return -1;
18399 : return 5622; /* *avx512bw_vpternlogv32hi_1 */
18400 :
18401 : case 16:
18402 : if (!(
18403 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18404 : ((32 == 64 || TARGET_AVX512VL
18405 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18406 : && ix86_pre_reload_split ()
18407 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18408 : STRIP_UNARY (operands[4]))
18409 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18410 : STRIP_UNARY (operands[4]))
18411 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18412 : STRIP_UNARY (operands[3]))
18413 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18414 : STRIP_UNARY (operands[3])))) &&
18415 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18416 : (TARGET_AVX)))
18417 : return -1;
18418 : return 5649; /* *avx512vl_vpternlogv16hi_1 */
18419 :
18420 : case 17:
18421 : if (!
18422 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18423 : ((16 == 64 || TARGET_AVX512VL
18424 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18425 : && ix86_pre_reload_split ()
18426 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18427 : STRIP_UNARY (operands[4]))
18428 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18429 : STRIP_UNARY (operands[4]))
18430 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18431 : STRIP_UNARY (operands[3]))
18432 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18433 : STRIP_UNARY (operands[3])))))
18434 : return -1;
18435 : return 5676; /* *avx512vl_vpternlogv8hi_1 */
18436 :
18437 : case 18:
18438 : if (!(
18439 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18440 : ((64 == 64 || TARGET_AVX512VL
18441 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18442 : && ix86_pre_reload_split ()
18443 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18444 : STRIP_UNARY (operands[4]))
18445 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18446 : STRIP_UNARY (operands[4]))
18447 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18448 : STRIP_UNARY (operands[3]))
18449 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18450 : STRIP_UNARY (operands[3])))) &&
18451 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18452 : (TARGET_AVX512F)))
18453 : return -1;
18454 : return 5703; /* *avx512f_vpternlogv16si_1 */
18455 :
18456 : case 19:
18457 : if (!(
18458 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18459 : ((32 == 64 || TARGET_AVX512VL
18460 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18461 : && ix86_pre_reload_split ()
18462 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18463 : STRIP_UNARY (operands[4]))
18464 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18465 : STRIP_UNARY (operands[4]))
18466 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18467 : STRIP_UNARY (operands[3]))
18468 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18469 : STRIP_UNARY (operands[3])))) &&
18470 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18471 : (TARGET_AVX)))
18472 : return -1;
18473 : return 5730; /* *avx512vl_vpternlogv8si_1 */
18474 :
18475 : case 20:
18476 : if (!
18477 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18478 : ((16 == 64 || TARGET_AVX512VL
18479 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18480 : && ix86_pre_reload_split ()
18481 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18482 : STRIP_UNARY (operands[4]))
18483 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18484 : STRIP_UNARY (operands[4]))
18485 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18486 : STRIP_UNARY (operands[3]))
18487 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18488 : STRIP_UNARY (operands[3])))))
18489 : return -1;
18490 : return 5757; /* *avx512vl_vpternlogv4si_1 */
18491 :
18492 : case 21:
18493 : if (!(
18494 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18495 : ((64 == 64 || TARGET_AVX512VL
18496 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18497 : && ix86_pre_reload_split ()
18498 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18499 : STRIP_UNARY (operands[4]))
18500 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18501 : STRIP_UNARY (operands[4]))
18502 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18503 : STRIP_UNARY (operands[3]))
18504 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18505 : STRIP_UNARY (operands[3])))) &&
18506 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18507 : (TARGET_AVX512F)))
18508 : return -1;
18509 : return 5784; /* *avx512f_vpternlogv8di_1 */
18510 :
18511 : case 22:
18512 : if (!(
18513 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18514 : ((32 == 64 || TARGET_AVX512VL
18515 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18516 : && ix86_pre_reload_split ()
18517 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18518 : STRIP_UNARY (operands[4]))
18519 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18520 : STRIP_UNARY (operands[4]))
18521 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18522 : STRIP_UNARY (operands[3]))
18523 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18524 : STRIP_UNARY (operands[3])))) &&
18525 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18526 : (TARGET_AVX)))
18527 : return -1;
18528 : return 5811; /* *avx512vl_vpternlogv4di_1 */
18529 :
18530 : case 23:
18531 : if (!
18532 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18533 : ((16 == 64 || TARGET_AVX512VL
18534 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18535 : && ix86_pre_reload_split ()
18536 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18537 : STRIP_UNARY (operands[4]))
18538 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18539 : STRIP_UNARY (operands[4]))
18540 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18541 : STRIP_UNARY (operands[3]))
18542 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18543 : STRIP_UNARY (operands[3])))))
18544 : return -1;
18545 : return 5838; /* *avx512vl_vpternlogv2di_1 */
18546 :
18547 : case 24:
18548 : if (!(
18549 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18550 : ((64 == 64 || TARGET_AVX512VL
18551 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18552 : && ix86_pre_reload_split ()
18553 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18554 : STRIP_UNARY (operands[4]))
18555 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18556 : STRIP_UNARY (operands[4]))
18557 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18558 : STRIP_UNARY (operands[3]))
18559 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18560 : STRIP_UNARY (operands[3])))) &&
18561 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18562 : (TARGET_AVX512F)))
18563 : return -1;
18564 : return 5544; /* *avx512bw_vpternlogv64qi_1 */
18565 :
18566 : case 25:
18567 : if (!(
18568 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18569 : ((32 == 64 || TARGET_AVX512VL
18570 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18571 : && ix86_pre_reload_split ()
18572 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18573 : STRIP_UNARY (operands[4]))
18574 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18575 : STRIP_UNARY (operands[4]))
18576 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18577 : STRIP_UNARY (operands[3]))
18578 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18579 : STRIP_UNARY (operands[3])))) &&
18580 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18581 : (TARGET_AVX)))
18582 : return -1;
18583 : return 5571; /* *avx512vl_vpternlogv32qi_1 */
18584 :
18585 : case 26:
18586 : if (!
18587 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18588 : ((16 == 64 || TARGET_AVX512VL
18589 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18590 : && ix86_pre_reload_split ()
18591 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18592 : STRIP_UNARY (operands[4]))
18593 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18594 : STRIP_UNARY (operands[4]))
18595 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18596 : STRIP_UNARY (operands[3]))
18597 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18598 : STRIP_UNARY (operands[3])))))
18599 : return -1;
18600 : return 5598; /* *avx512vl_vpternlogv16qi_1 */
18601 :
18602 : case 27:
18603 : if (!(
18604 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18605 : ((64 == 64 || TARGET_AVX512VL
18606 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18607 : && ix86_pre_reload_split ()
18608 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18609 : STRIP_UNARY (operands[4]))
18610 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18611 : STRIP_UNARY (operands[4]))
18612 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18613 : STRIP_UNARY (operands[3]))
18614 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18615 : STRIP_UNARY (operands[3])))) &&
18616 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18617 : (TARGET_AVX512F)))
18618 : return -1;
18619 : return 5625; /* *avx512bw_vpternlogv32hi_1 */
18620 :
18621 : case 28:
18622 : if (!(
18623 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18624 : ((32 == 64 || TARGET_AVX512VL
18625 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18626 : && ix86_pre_reload_split ()
18627 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18628 : STRIP_UNARY (operands[4]))
18629 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18630 : STRIP_UNARY (operands[4]))
18631 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18632 : STRIP_UNARY (operands[3]))
18633 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18634 : STRIP_UNARY (operands[3])))) &&
18635 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18636 : (TARGET_AVX)))
18637 : return -1;
18638 : return 5652; /* *avx512vl_vpternlogv16hi_1 */
18639 :
18640 : case 29:
18641 : if (!
18642 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18643 : ((16 == 64 || TARGET_AVX512VL
18644 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18645 : && ix86_pre_reload_split ()
18646 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18647 : STRIP_UNARY (operands[4]))
18648 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18649 : STRIP_UNARY (operands[4]))
18650 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18651 : STRIP_UNARY (operands[3]))
18652 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18653 : STRIP_UNARY (operands[3])))))
18654 : return -1;
18655 : return 5679; /* *avx512vl_vpternlogv8hi_1 */
18656 :
18657 : case 30:
18658 : if (!(
18659 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18660 : ((64 == 64 || TARGET_AVX512VL
18661 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18662 : && ix86_pre_reload_split ()
18663 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18664 : STRIP_UNARY (operands[4]))
18665 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18666 : STRIP_UNARY (operands[4]))
18667 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18668 : STRIP_UNARY (operands[3]))
18669 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18670 : STRIP_UNARY (operands[3])))) &&
18671 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18672 : (TARGET_AVX512F)))
18673 : return -1;
18674 : return 5706; /* *avx512f_vpternlogv16si_1 */
18675 :
18676 : case 31:
18677 : if (!(
18678 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18679 : ((32 == 64 || TARGET_AVX512VL
18680 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18681 : && ix86_pre_reload_split ()
18682 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18683 : STRIP_UNARY (operands[4]))
18684 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18685 : STRIP_UNARY (operands[4]))
18686 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18687 : STRIP_UNARY (operands[3]))
18688 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18689 : STRIP_UNARY (operands[3])))) &&
18690 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18691 : (TARGET_AVX)))
18692 : return -1;
18693 : return 5733; /* *avx512vl_vpternlogv8si_1 */
18694 :
18695 : case 32:
18696 : if (!
18697 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18698 : ((16 == 64 || TARGET_AVX512VL
18699 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18700 : && ix86_pre_reload_split ()
18701 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18702 : STRIP_UNARY (operands[4]))
18703 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18704 : STRIP_UNARY (operands[4]))
18705 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18706 : STRIP_UNARY (operands[3]))
18707 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18708 : STRIP_UNARY (operands[3])))))
18709 : return -1;
18710 : return 5760; /* *avx512vl_vpternlogv4si_1 */
18711 :
18712 : case 33:
18713 : if (!(
18714 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18715 : ((64 == 64 || TARGET_AVX512VL
18716 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18717 : && ix86_pre_reload_split ()
18718 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18719 : STRIP_UNARY (operands[4]))
18720 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18721 : STRIP_UNARY (operands[4]))
18722 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18723 : STRIP_UNARY (operands[3]))
18724 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18725 : STRIP_UNARY (operands[3])))) &&
18726 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18727 : (TARGET_AVX512F)))
18728 : return -1;
18729 : return 5787; /* *avx512f_vpternlogv8di_1 */
18730 :
18731 : case 34:
18732 : if (!(
18733 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18734 : ((32 == 64 || TARGET_AVX512VL
18735 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18736 : && ix86_pre_reload_split ()
18737 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18738 : STRIP_UNARY (operands[4]))
18739 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18740 : STRIP_UNARY (operands[4]))
18741 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18742 : STRIP_UNARY (operands[3]))
18743 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18744 : STRIP_UNARY (operands[3])))) &&
18745 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18746 : (TARGET_AVX)))
18747 : return -1;
18748 : return 5814; /* *avx512vl_vpternlogv4di_1 */
18749 :
18750 : case 35:
18751 : if (!
18752 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18753 : ((16 == 64 || TARGET_AVX512VL
18754 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18755 : && ix86_pre_reload_split ()
18756 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18757 : STRIP_UNARY (operands[4]))
18758 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18759 : STRIP_UNARY (operands[4]))
18760 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18761 : STRIP_UNARY (operands[3]))
18762 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18763 : STRIP_UNARY (operands[3])))))
18764 : return -1;
18765 : return 5841; /* *avx512vl_vpternlogv2di_1 */
18766 :
18767 : case 36:
18768 : if (!(
18769 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18770 : ((64 == 64 || TARGET_AVX512VL
18771 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18772 : && ix86_pre_reload_split ()) &&
18773 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18774 : (TARGET_AVX512F)))
18775 : return -1;
18776 : return 6834; /* *avx512bw_vpternlogv64qi_3 */
18777 :
18778 : case 37:
18779 : if (!(
18780 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18781 : ((32 == 64 || TARGET_AVX512VL
18782 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18783 : && ix86_pre_reload_split ()) &&
18784 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18785 : (TARGET_AVX)))
18786 : return -1;
18787 : return 6843; /* *avx512vl_vpternlogv32qi_3 */
18788 :
18789 : case 38:
18790 : if (!
18791 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18792 : ((16 == 64 || TARGET_AVX512VL
18793 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18794 : && ix86_pre_reload_split ()))
18795 : return -1;
18796 : return 6852; /* *avx512vl_vpternlogv16qi_3 */
18797 :
18798 : case 39:
18799 : if (!(
18800 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18801 : ((64 == 64 || TARGET_AVX512VL
18802 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18803 : && ix86_pre_reload_split ()) &&
18804 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18805 : (TARGET_AVX512F)))
18806 : return -1;
18807 : return 6861; /* *avx512bw_vpternlogv32hi_3 */
18808 :
18809 : case 40:
18810 : if (!(
18811 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18812 : ((32 == 64 || TARGET_AVX512VL
18813 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18814 : && ix86_pre_reload_split ()) &&
18815 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18816 : (TARGET_AVX)))
18817 : return -1;
18818 : return 6870; /* *avx512vl_vpternlogv16hi_3 */
18819 :
18820 : case 41:
18821 : if (!
18822 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18823 : ((16 == 64 || TARGET_AVX512VL
18824 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18825 : && ix86_pre_reload_split ()))
18826 : return -1;
18827 : return 6879; /* *avx512vl_vpternlogv8hi_3 */
18828 :
18829 : case 42:
18830 : if (!(
18831 : #line 14271 "/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 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18836 : (TARGET_AVX512F)))
18837 : return -1;
18838 : return 6888; /* *avx512f_vpternlogv16si_3 */
18839 :
18840 : case 43:
18841 : if (!(
18842 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18843 : ((32 == 64 || TARGET_AVX512VL
18844 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18845 : && ix86_pre_reload_split ()) &&
18846 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18847 : (TARGET_AVX)))
18848 : return -1;
18849 : return 6897; /* *avx512vl_vpternlogv8si_3 */
18850 :
18851 : case 44:
18852 : if (!
18853 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18854 : ((16 == 64 || TARGET_AVX512VL
18855 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18856 : && ix86_pre_reload_split ()))
18857 : return -1;
18858 : return 6906; /* *avx512vl_vpternlogv4si_3 */
18859 :
18860 : case 45:
18861 : if (!(
18862 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18863 : ((64 == 64 || TARGET_AVX512VL
18864 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18865 : && ix86_pre_reload_split ()) &&
18866 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18867 : (TARGET_AVX512F)))
18868 : return -1;
18869 : return 6915; /* *avx512f_vpternlogv8di_3 */
18870 :
18871 : case 46:
18872 : if (!(
18873 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18874 : ((32 == 64 || TARGET_AVX512VL
18875 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18876 : && ix86_pre_reload_split ()) &&
18877 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18878 : (TARGET_AVX)))
18879 : return -1;
18880 : return 6924; /* *avx512vl_vpternlogv4di_3 */
18881 :
18882 : case 47:
18883 : if (!
18884 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18885 : ((16 == 64 || TARGET_AVX512VL
18886 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18887 : && ix86_pre_reload_split ()))
18888 : return -1;
18889 : return 6933; /* *avx512vl_vpternlogv2di_3 */
18890 :
18891 : default:
18892 : return -1;
18893 : }
18894 :
18895 : case AND:
18896 : switch (pattern537 (x2))
18897 : {
18898 : case 0:
18899 : if (!(
18900 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18901 : ((64 == 64 || TARGET_AVX512VL
18902 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18903 : && ix86_pre_reload_split ()
18904 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18905 : STRIP_UNARY (operands[4]))
18906 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18907 : STRIP_UNARY (operands[4]))
18908 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18909 : STRIP_UNARY (operands[3]))
18910 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18911 : STRIP_UNARY (operands[3])))) &&
18912 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18913 : (TARGET_AVX512F)))
18914 : return -1;
18915 : return 6186; /* *avx512bw_vpternlogv64qi_2 */
18916 :
18917 : case 1:
18918 : if (!(
18919 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18920 : ((32 == 64 || TARGET_AVX512VL
18921 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18922 : && ix86_pre_reload_split ()
18923 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18924 : STRIP_UNARY (operands[4]))
18925 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18926 : STRIP_UNARY (operands[4]))
18927 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18928 : STRIP_UNARY (operands[3]))
18929 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18930 : STRIP_UNARY (operands[3])))) &&
18931 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18932 : (TARGET_AVX)))
18933 : return -1;
18934 : return 6213; /* *avx512vl_vpternlogv32qi_2 */
18935 :
18936 : case 2:
18937 : if (!
18938 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18939 : ((16 == 64 || TARGET_AVX512VL
18940 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18941 : && ix86_pre_reload_split ()
18942 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18943 : STRIP_UNARY (operands[4]))
18944 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18945 : STRIP_UNARY (operands[4]))
18946 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18947 : STRIP_UNARY (operands[3]))
18948 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18949 : STRIP_UNARY (operands[3])))))
18950 : return -1;
18951 : return 6240; /* *avx512vl_vpternlogv16qi_2 */
18952 :
18953 : case 3:
18954 : if (!(
18955 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18956 : ((64 == 64 || TARGET_AVX512VL
18957 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18958 : && ix86_pre_reload_split ()
18959 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18960 : STRIP_UNARY (operands[4]))
18961 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18962 : STRIP_UNARY (operands[4]))
18963 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18964 : STRIP_UNARY (operands[3]))
18965 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18966 : STRIP_UNARY (operands[3])))) &&
18967 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18968 : (TARGET_AVX512F)))
18969 : return -1;
18970 : return 6267; /* *avx512bw_vpternlogv32hi_2 */
18971 :
18972 : case 4:
18973 : if (!(
18974 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18975 : ((32 == 64 || TARGET_AVX512VL
18976 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18977 : && ix86_pre_reload_split ()
18978 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18979 : STRIP_UNARY (operands[4]))
18980 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18981 : STRIP_UNARY (operands[4]))
18982 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18983 : STRIP_UNARY (operands[3]))
18984 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18985 : STRIP_UNARY (operands[3])))) &&
18986 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18987 : (TARGET_AVX)))
18988 : return -1;
18989 : return 6294; /* *avx512vl_vpternlogv16hi_2 */
18990 :
18991 : case 5:
18992 : if (!
18993 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18994 : ((16 == 64 || TARGET_AVX512VL
18995 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18996 : && ix86_pre_reload_split ()
18997 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18998 : STRIP_UNARY (operands[4]))
18999 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19000 : STRIP_UNARY (operands[4]))
19001 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19002 : STRIP_UNARY (operands[3]))
19003 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19004 : STRIP_UNARY (operands[3])))))
19005 : return -1;
19006 : return 6321; /* *avx512vl_vpternlogv8hi_2 */
19007 :
19008 : case 6:
19009 : if (!(
19010 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19011 : ((64 == 64 || TARGET_AVX512VL
19012 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19013 : && ix86_pre_reload_split ()
19014 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19015 : STRIP_UNARY (operands[4]))
19016 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19017 : STRIP_UNARY (operands[4]))
19018 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19019 : STRIP_UNARY (operands[3]))
19020 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19021 : STRIP_UNARY (operands[3])))) &&
19022 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19023 : (TARGET_AVX512F)))
19024 : return -1;
19025 : return 6348; /* *avx512f_vpternlogv16si_2 */
19026 :
19027 : case 7:
19028 : if (!(
19029 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19030 : ((32 == 64 || TARGET_AVX512VL
19031 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19032 : && ix86_pre_reload_split ()
19033 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19034 : STRIP_UNARY (operands[4]))
19035 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19036 : STRIP_UNARY (operands[4]))
19037 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19038 : STRIP_UNARY (operands[3]))
19039 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19040 : STRIP_UNARY (operands[3])))) &&
19041 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19042 : (TARGET_AVX)))
19043 : return -1;
19044 : return 6375; /* *avx512vl_vpternlogv8si_2 */
19045 :
19046 : case 8:
19047 : if (!
19048 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19049 : ((16 == 64 || TARGET_AVX512VL
19050 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19051 : && ix86_pre_reload_split ()
19052 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19053 : STRIP_UNARY (operands[4]))
19054 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19055 : STRIP_UNARY (operands[4]))
19056 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19057 : STRIP_UNARY (operands[3]))
19058 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19059 : STRIP_UNARY (operands[3])))))
19060 : return -1;
19061 : return 6402; /* *avx512vl_vpternlogv4si_2 */
19062 :
19063 : case 9:
19064 : if (!(
19065 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19066 : ((64 == 64 || TARGET_AVX512VL
19067 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19068 : && ix86_pre_reload_split ()
19069 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19070 : STRIP_UNARY (operands[4]))
19071 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19072 : STRIP_UNARY (operands[4]))
19073 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19074 : STRIP_UNARY (operands[3]))
19075 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19076 : STRIP_UNARY (operands[3])))) &&
19077 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19078 : (TARGET_AVX512F)))
19079 : return -1;
19080 : return 6429; /* *avx512f_vpternlogv8di_2 */
19081 :
19082 : case 10:
19083 : if (!(
19084 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19085 : ((32 == 64 || TARGET_AVX512VL
19086 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19087 : && ix86_pre_reload_split ()
19088 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19089 : STRIP_UNARY (operands[4]))
19090 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19091 : STRIP_UNARY (operands[4]))
19092 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19093 : STRIP_UNARY (operands[3]))
19094 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19095 : STRIP_UNARY (operands[3])))) &&
19096 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19097 : (TARGET_AVX)))
19098 : return -1;
19099 : return 6456; /* *avx512vl_vpternlogv4di_2 */
19100 :
19101 : case 11:
19102 : if (!
19103 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19104 : ((16 == 64 || TARGET_AVX512VL
19105 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19106 : && ix86_pre_reload_split ()
19107 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19108 : STRIP_UNARY (operands[4]))
19109 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19110 : STRIP_UNARY (operands[4]))
19111 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19112 : STRIP_UNARY (operands[3]))
19113 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19114 : STRIP_UNARY (operands[3])))))
19115 : return -1;
19116 : return 6483; /* *avx512vl_vpternlogv2di_2 */
19117 :
19118 : default:
19119 : return -1;
19120 : }
19121 :
19122 : case IOR:
19123 : switch (pattern537 (x2))
19124 : {
19125 : case 0:
19126 : if (!(
19127 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19128 : ((64 == 64 || TARGET_AVX512VL
19129 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19130 : && ix86_pre_reload_split ()
19131 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19132 : STRIP_UNARY (operands[4]))
19133 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19134 : STRIP_UNARY (operands[4]))
19135 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19136 : STRIP_UNARY (operands[3]))
19137 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19138 : STRIP_UNARY (operands[3])))) &&
19139 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19140 : (TARGET_AVX512F)))
19141 : return -1;
19142 : return 6189; /* *avx512bw_vpternlogv64qi_2 */
19143 :
19144 : case 1:
19145 : if (!(
19146 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19147 : ((32 == 64 || TARGET_AVX512VL
19148 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19149 : && ix86_pre_reload_split ()
19150 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19151 : STRIP_UNARY (operands[4]))
19152 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19153 : STRIP_UNARY (operands[4]))
19154 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19155 : STRIP_UNARY (operands[3]))
19156 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19157 : STRIP_UNARY (operands[3])))) &&
19158 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19159 : (TARGET_AVX)))
19160 : return -1;
19161 : return 6216; /* *avx512vl_vpternlogv32qi_2 */
19162 :
19163 : case 2:
19164 : if (!
19165 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19166 : ((16 == 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 : return -1;
19178 : return 6243; /* *avx512vl_vpternlogv16qi_2 */
19179 :
19180 : case 3:
19181 : if (!(
19182 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19183 : ((64 == 64 || TARGET_AVX512VL
19184 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19185 : && ix86_pre_reload_split ()
19186 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19187 : STRIP_UNARY (operands[4]))
19188 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19189 : STRIP_UNARY (operands[4]))
19190 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19191 : STRIP_UNARY (operands[3]))
19192 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19193 : STRIP_UNARY (operands[3])))) &&
19194 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19195 : (TARGET_AVX512F)))
19196 : return -1;
19197 : return 6270; /* *avx512bw_vpternlogv32hi_2 */
19198 :
19199 : case 4:
19200 : if (!(
19201 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19202 : ((32 == 64 || TARGET_AVX512VL
19203 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19204 : && ix86_pre_reload_split ()
19205 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19206 : STRIP_UNARY (operands[4]))
19207 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19208 : STRIP_UNARY (operands[4]))
19209 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19210 : STRIP_UNARY (operands[3]))
19211 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19212 : STRIP_UNARY (operands[3])))) &&
19213 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19214 : (TARGET_AVX)))
19215 : return -1;
19216 : return 6297; /* *avx512vl_vpternlogv16hi_2 */
19217 :
19218 : case 5:
19219 : if (!
19220 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19221 : ((16 == 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 : return -1;
19233 : return 6324; /* *avx512vl_vpternlogv8hi_2 */
19234 :
19235 : case 6:
19236 : if (!(
19237 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19238 : ((64 == 64 || TARGET_AVX512VL
19239 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19240 : && ix86_pre_reload_split ()
19241 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19242 : STRIP_UNARY (operands[4]))
19243 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19244 : STRIP_UNARY (operands[4]))
19245 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19246 : STRIP_UNARY (operands[3]))
19247 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19248 : STRIP_UNARY (operands[3])))) &&
19249 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19250 : (TARGET_AVX512F)))
19251 : return -1;
19252 : return 6351; /* *avx512f_vpternlogv16si_2 */
19253 :
19254 : case 7:
19255 : if (!(
19256 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19257 : ((32 == 64 || TARGET_AVX512VL
19258 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19259 : && ix86_pre_reload_split ()
19260 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19261 : STRIP_UNARY (operands[4]))
19262 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19263 : STRIP_UNARY (operands[4]))
19264 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19265 : STRIP_UNARY (operands[3]))
19266 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19267 : STRIP_UNARY (operands[3])))) &&
19268 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19269 : (TARGET_AVX)))
19270 : return -1;
19271 : return 6378; /* *avx512vl_vpternlogv8si_2 */
19272 :
19273 : case 8:
19274 : if (!
19275 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19276 : ((16 == 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 : return -1;
19288 : return 6405; /* *avx512vl_vpternlogv4si_2 */
19289 :
19290 : case 9:
19291 : if (!(
19292 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19293 : ((64 == 64 || TARGET_AVX512VL
19294 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19295 : && ix86_pre_reload_split ()
19296 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19297 : STRIP_UNARY (operands[4]))
19298 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19299 : STRIP_UNARY (operands[4]))
19300 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19301 : STRIP_UNARY (operands[3]))
19302 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19303 : STRIP_UNARY (operands[3])))) &&
19304 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19305 : (TARGET_AVX512F)))
19306 : return -1;
19307 : return 6432; /* *avx512f_vpternlogv8di_2 */
19308 :
19309 : case 10:
19310 : if (!(
19311 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19312 : ((32 == 64 || TARGET_AVX512VL
19313 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19314 : && ix86_pre_reload_split ()
19315 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19316 : STRIP_UNARY (operands[4]))
19317 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19318 : STRIP_UNARY (operands[4]))
19319 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19320 : STRIP_UNARY (operands[3]))
19321 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19322 : STRIP_UNARY (operands[3])))) &&
19323 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19324 : (TARGET_AVX)))
19325 : return -1;
19326 : return 6459; /* *avx512vl_vpternlogv4di_2 */
19327 :
19328 : case 11:
19329 : if (!
19330 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19331 : ((16 == 64 || TARGET_AVX512VL
19332 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19333 : && ix86_pre_reload_split ()
19334 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19335 : STRIP_UNARY (operands[4]))
19336 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19337 : STRIP_UNARY (operands[4]))
19338 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19339 : STRIP_UNARY (operands[3]))
19340 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19341 : STRIP_UNARY (operands[3])))))
19342 : return -1;
19343 : return 6486; /* *avx512vl_vpternlogv2di_2 */
19344 :
19345 : default:
19346 : return -1;
19347 : }
19348 :
19349 : case XOR:
19350 : switch (pattern537 (x2))
19351 : {
19352 : case 0:
19353 : if (!(
19354 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19355 : ((64 == 64 || TARGET_AVX512VL
19356 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19357 : && ix86_pre_reload_split ()
19358 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19359 : STRIP_UNARY (operands[4]))
19360 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19361 : STRIP_UNARY (operands[4]))
19362 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19363 : STRIP_UNARY (operands[3]))
19364 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19365 : STRIP_UNARY (operands[3])))) &&
19366 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19367 : (TARGET_AVX512F)))
19368 : return -1;
19369 : return 6192; /* *avx512bw_vpternlogv64qi_2 */
19370 :
19371 : case 1:
19372 : if (!(
19373 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19374 : ((32 == 64 || TARGET_AVX512VL
19375 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19376 : && ix86_pre_reload_split ()
19377 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19378 : STRIP_UNARY (operands[4]))
19379 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19380 : STRIP_UNARY (operands[4]))
19381 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19382 : STRIP_UNARY (operands[3]))
19383 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19384 : STRIP_UNARY (operands[3])))) &&
19385 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19386 : (TARGET_AVX)))
19387 : return -1;
19388 : return 6219; /* *avx512vl_vpternlogv32qi_2 */
19389 :
19390 : case 2:
19391 : if (!
19392 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19393 : ((16 == 64 || TARGET_AVX512VL
19394 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19395 : && ix86_pre_reload_split ()
19396 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19397 : STRIP_UNARY (operands[4]))
19398 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19399 : STRIP_UNARY (operands[4]))
19400 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19401 : STRIP_UNARY (operands[3]))
19402 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19403 : STRIP_UNARY (operands[3])))))
19404 : return -1;
19405 : return 6246; /* *avx512vl_vpternlogv16qi_2 */
19406 :
19407 : case 3:
19408 : if (!(
19409 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19410 : ((64 == 64 || TARGET_AVX512VL
19411 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19412 : && ix86_pre_reload_split ()
19413 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19414 : STRIP_UNARY (operands[4]))
19415 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19416 : STRIP_UNARY (operands[4]))
19417 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19418 : STRIP_UNARY (operands[3]))
19419 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19420 : STRIP_UNARY (operands[3])))) &&
19421 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19422 : (TARGET_AVX512F)))
19423 : return -1;
19424 : return 6273; /* *avx512bw_vpternlogv32hi_2 */
19425 :
19426 : case 4:
19427 : if (!(
19428 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19429 : ((32 == 64 || TARGET_AVX512VL
19430 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19431 : && ix86_pre_reload_split ()
19432 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19433 : STRIP_UNARY (operands[4]))
19434 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19435 : STRIP_UNARY (operands[4]))
19436 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19437 : STRIP_UNARY (operands[3]))
19438 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19439 : STRIP_UNARY (operands[3])))) &&
19440 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19441 : (TARGET_AVX)))
19442 : return -1;
19443 : return 6300; /* *avx512vl_vpternlogv16hi_2 */
19444 :
19445 : case 5:
19446 : if (!
19447 : #line 14187 "/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 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19452 : STRIP_UNARY (operands[4]))
19453 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19454 : STRIP_UNARY (operands[4]))
19455 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19456 : STRIP_UNARY (operands[3]))
19457 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19458 : STRIP_UNARY (operands[3])))))
19459 : return -1;
19460 : return 6327; /* *avx512vl_vpternlogv8hi_2 */
19461 :
19462 : case 6:
19463 : if (!(
19464 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19465 : ((64 == 64 || TARGET_AVX512VL
19466 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19467 : && ix86_pre_reload_split ()
19468 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19469 : STRIP_UNARY (operands[4]))
19470 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19471 : STRIP_UNARY (operands[4]))
19472 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19473 : STRIP_UNARY (operands[3]))
19474 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19475 : STRIP_UNARY (operands[3])))) &&
19476 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19477 : (TARGET_AVX512F)))
19478 : return -1;
19479 : return 6354; /* *avx512f_vpternlogv16si_2 */
19480 :
19481 : case 7:
19482 : if (!(
19483 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19484 : ((32 == 64 || TARGET_AVX512VL
19485 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19486 : && ix86_pre_reload_split ()
19487 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19488 : STRIP_UNARY (operands[4]))
19489 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19490 : STRIP_UNARY (operands[4]))
19491 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19492 : STRIP_UNARY (operands[3]))
19493 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19494 : STRIP_UNARY (operands[3])))) &&
19495 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19496 : (TARGET_AVX)))
19497 : return -1;
19498 : return 6381; /* *avx512vl_vpternlogv8si_2 */
19499 :
19500 : case 8:
19501 : if (!
19502 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19503 : ((16 == 64 || TARGET_AVX512VL
19504 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19505 : && ix86_pre_reload_split ()
19506 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19507 : STRIP_UNARY (operands[4]))
19508 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19509 : STRIP_UNARY (operands[4]))
19510 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19511 : STRIP_UNARY (operands[3]))
19512 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19513 : STRIP_UNARY (operands[3])))))
19514 : return -1;
19515 : return 6408; /* *avx512vl_vpternlogv4si_2 */
19516 :
19517 : case 9:
19518 : if (!(
19519 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19520 : ((64 == 64 || TARGET_AVX512VL
19521 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19522 : && ix86_pre_reload_split ()
19523 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19524 : STRIP_UNARY (operands[4]))
19525 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19526 : STRIP_UNARY (operands[4]))
19527 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19528 : STRIP_UNARY (operands[3]))
19529 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19530 : STRIP_UNARY (operands[3])))) &&
19531 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19532 : (TARGET_AVX512F)))
19533 : return -1;
19534 : return 6435; /* *avx512f_vpternlogv8di_2 */
19535 :
19536 : case 10:
19537 : if (!(
19538 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19539 : ((32 == 64 || TARGET_AVX512VL
19540 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19541 : && ix86_pre_reload_split ()
19542 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19543 : STRIP_UNARY (operands[4]))
19544 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19545 : STRIP_UNARY (operands[4]))
19546 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19547 : STRIP_UNARY (operands[3]))
19548 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19549 : STRIP_UNARY (operands[3])))) &&
19550 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19551 : (TARGET_AVX)))
19552 : return -1;
19553 : return 6462; /* *avx512vl_vpternlogv4di_2 */
19554 :
19555 : case 11:
19556 : if (!
19557 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19558 : ((16 == 64 || TARGET_AVX512VL
19559 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19560 : && ix86_pre_reload_split ()
19561 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19562 : STRIP_UNARY (operands[4]))
19563 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19564 : STRIP_UNARY (operands[4]))
19565 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19566 : STRIP_UNARY (operands[3]))
19567 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19568 : STRIP_UNARY (operands[3])))))
19569 : return -1;
19570 : return 6489; /* *avx512vl_vpternlogv2di_2 */
19571 :
19572 : default:
19573 : return -1;
19574 : }
19575 :
19576 : default:
19577 : return -1;
19578 : }
19579 :
19580 : case IOR:
19581 : return recog_307 (x1, insn, pnum_clobbers);
19582 :
19583 : case XOR:
19584 : return recog_306 (x1, insn, pnum_clobbers);
19585 :
19586 : default:
19587 : return -1;
19588 : }
19589 : }
19590 :
19591 : int
19592 : recog_324 (rtx x1 ATTRIBUTE_UNUSED,
19593 : rtx_insn *insn ATTRIBUTE_UNUSED,
19594 : int *pnum_clobbers ATTRIBUTE_UNUSED)
19595 : {
19596 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
19597 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
19598 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
19599 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
19600 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
19601 : rtx x34, x35, x36, x37, x38, x39, x40, x41;
19602 : rtx x42, x43, x44, x45, x46, x47;
19603 : int res ATTRIBUTE_UNUSED;
19604 : x2 = XEXP (x1, 0);
19605 : operands[0] = x2;
19606 : x3 = XEXP (x1, 1);
19607 : x4 = XEXP (x3, 0);
19608 : switch (GET_CODE (x4))
19609 : {
19610 : case REG:
19611 : case SUBREG:
19612 : case MEM:
19613 : case VEC_DUPLICATE:
19614 : switch (pattern190 (x3))
19615 : {
19616 : case 0:
19617 : if (!(
19618 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19619 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V32HFmode, operands)
19620 : && 1 && 1) &&
19621 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19622 : (TARGET_AVX512FP16)))
19623 : return -1;
19624 : return 2746; /* *addv32hf3 */
19625 :
19626 : case 1:
19627 : if (!(
19628 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19629 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V16HFmode, operands)
19630 : && 1 && 1) &&
19631 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19632 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
19633 : return -1;
19634 : return 2754; /* *addv16hf3 */
19635 :
19636 : case 2:
19637 : if (!(
19638 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19639 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V8HFmode, operands)
19640 : && 1 && 1) &&
19641 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19642 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
19643 : return -1;
19644 : return 2762; /* *addv8hf3 */
19645 :
19646 : case 3:
19647 : if (!(
19648 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19649 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V16SFmode, operands)
19650 : && 1 && 1) &&
19651 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19652 : (TARGET_AVX512F)))
19653 : return -1;
19654 : return 2770; /* *addv16sf3 */
19655 :
19656 : case 4:
19657 : if (!(
19658 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19659 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V8SFmode, operands)
19660 : && 1 && 1) &&
19661 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19662 : (TARGET_AVX)))
19663 : return -1;
19664 : return 2778; /* *addv8sf3 */
19665 :
19666 : case 5:
19667 : if (!
19668 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19669 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V4SFmode, operands)
19670 : && 1 && 1))
19671 : return -1;
19672 : return 2786; /* *addv4sf3 */
19673 :
19674 : case 6:
19675 : if (!(
19676 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19677 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V8DFmode, operands)
19678 : && 1 && 1) &&
19679 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19680 : (TARGET_AVX512F)))
19681 : return -1;
19682 : return 2794; /* *addv8df3 */
19683 :
19684 : case 7:
19685 : if (!(
19686 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19687 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V4DFmode, operands)
19688 : && 1 && 1) &&
19689 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19690 : (TARGET_AVX)))
19691 : return -1;
19692 : return 2802; /* *addv4df3 */
19693 :
19694 : case 8:
19695 : if (!(
19696 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19697 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V2DFmode, operands)
19698 : && 1 && 1) &&
19699 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19700 : (TARGET_SSE2)))
19701 : return -1;
19702 : return 2810; /* *addv2df3 */
19703 :
19704 : case 9:
19705 : if (!(
19706 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19707 : (TARGET_SSE2 && ix86_binary_operator_ok (PLUS, V64QImode, operands)) &&
19708 : #line 572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19709 : (TARGET_AVX512BW)))
19710 : return -1;
19711 : return 7499; /* *addv64qi3 */
19712 :
19713 : case 10:
19714 : if (!(
19715 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19716 : (TARGET_SSE2 && ix86_binary_operator_ok (PLUS, V32QImode, operands)) &&
19717 : #line 572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19718 : (TARGET_AVX2)))
19719 : return -1;
19720 : return 7501; /* *addv32qi3 */
19721 :
19722 : case 11:
19723 : if (!
19724 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19725 : (TARGET_SSE2 && ix86_binary_operator_ok (PLUS, V16QImode, operands)))
19726 : return -1;
19727 : return 7503; /* *addv16qi3 */
19728 :
19729 : case 12:
19730 : if (!(
19731 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19732 : (TARGET_SSE2 && ix86_binary_operator_ok (PLUS, V32HImode, operands)) &&
19733 : #line 573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19734 : (TARGET_AVX512BW)))
19735 : return -1;
19736 : return 7505; /* *addv32hi3 */
19737 :
19738 : case 13:
19739 : if (!(
19740 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19741 : (TARGET_SSE2 && ix86_binary_operator_ok (PLUS, V16HImode, operands)) &&
19742 : #line 573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19743 : (TARGET_AVX2)))
19744 : return -1;
19745 : return 7507; /* *addv16hi3 */
19746 :
19747 : case 14:
19748 : if (!
19749 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19750 : (TARGET_SSE2 && ix86_binary_operator_ok (PLUS, V8HImode, operands)))
19751 : return -1;
19752 : return 7509; /* *addv8hi3 */
19753 :
19754 : case 15:
19755 : if (!(
19756 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19757 : (TARGET_SSE2 && ix86_binary_operator_ok (PLUS, V16SImode, operands)) &&
19758 : #line 574 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19759 : (TARGET_AVX512F)))
19760 : return -1;
19761 : return 7511; /* *addv16si3 */
19762 :
19763 : case 16:
19764 : if (!(
19765 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19766 : (TARGET_SSE2 && ix86_binary_operator_ok (PLUS, V8SImode, operands)) &&
19767 : #line 574 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19768 : (TARGET_AVX2)))
19769 : return -1;
19770 : return 7513; /* *addv8si3 */
19771 :
19772 : case 17:
19773 : if (!
19774 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19775 : (TARGET_SSE2 && ix86_binary_operator_ok (PLUS, V4SImode, operands)))
19776 : return -1;
19777 : return 7515; /* *addv4si3 */
19778 :
19779 : case 18:
19780 : if (!(
19781 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19782 : (TARGET_SSE2 && ix86_binary_operator_ok (PLUS, V8DImode, operands)) &&
19783 : #line 575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19784 : (TARGET_AVX512F)))
19785 : return -1;
19786 : return 7517; /* *addv8di3 */
19787 :
19788 : case 19:
19789 : if (!(
19790 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19791 : (TARGET_SSE2 && ix86_binary_operator_ok (PLUS, V4DImode, operands)) &&
19792 : #line 575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19793 : (TARGET_AVX2)))
19794 : return -1;
19795 : return 7519; /* *addv4di3 */
19796 :
19797 : case 20:
19798 : if (!
19799 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19800 : (TARGET_SSE2 && ix86_binary_operator_ok (PLUS, V2DImode, operands)))
19801 : return -1;
19802 : return 7521; /* *addv2di3 */
19803 :
19804 : case 21:
19805 : if (!
19806 : #line 32828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19807 : (TARGET_AVX10_2))
19808 : return -1;
19809 : return 10678; /* avx10_2_addbf16_v32bf */
19810 :
19811 : case 22:
19812 : if (!
19813 : #line 32828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19814 : (TARGET_AVX10_2))
19815 : return -1;
19816 : return 10686; /* avx10_2_addbf16_v16bf */
19817 :
19818 : case 23:
19819 : if (!
19820 : #line 32828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19821 : (TARGET_AVX10_2))
19822 : return -1;
19823 : return 10694; /* avx10_2_addbf16_v8bf */
19824 :
19825 : default:
19826 : return -1;
19827 : }
19828 :
19829 : case UNSPEC:
19830 : switch (pattern193 (x3))
19831 : {
19832 : case 0:
19833 : if (!
19834 : #line 7521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19835 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
19836 : && ix86_pre_reload_split ()))
19837 : return -1;
19838 : return 4378; /* fma_v32hf_fadd_fmul */
19839 :
19840 : case 1:
19841 : if (!(
19842 : #line 7521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19843 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
19844 : && ix86_pre_reload_split ()) &&
19845 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19846 : (TARGET_AVX512VL)))
19847 : return -1;
19848 : return 4379; /* fma_v16hf_fadd_fmul */
19849 :
19850 : case 2:
19851 : if (!(
19852 : #line 7521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19853 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
19854 : && ix86_pre_reload_split ()) &&
19855 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19856 : (TARGET_AVX512VL)))
19857 : return -1;
19858 : return 4380; /* fma_v8hf_fadd_fmul */
19859 :
19860 : case 3:
19861 : if (!
19862 : #line 7538 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19863 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
19864 : && ix86_pre_reload_split ()))
19865 : return -1;
19866 : return 4381; /* fma_v32hf_fadd_fcmul */
19867 :
19868 : case 4:
19869 : if (!(
19870 : #line 7538 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19871 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
19872 : && ix86_pre_reload_split ()) &&
19873 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19874 : (TARGET_AVX512VL)))
19875 : return -1;
19876 : return 4382; /* fma_v16hf_fadd_fcmul */
19877 :
19878 : case 5:
19879 : if (!(
19880 : #line 7538 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19881 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
19882 : && ix86_pre_reload_split ()) &&
19883 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19884 : (TARGET_AVX512VL)))
19885 : return -1;
19886 : return 4383; /* fma_v8hf_fadd_fcmul */
19887 :
19888 : case 6:
19889 : if (!
19890 : #line 7556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19891 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
19892 : && ix86_pre_reload_split ()))
19893 : return -1;
19894 : return 4384; /* fma_fmaddc_v32hf_fma_zero */
19895 :
19896 : case 7:
19897 : if (!(
19898 : #line 7556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19899 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
19900 : && ix86_pre_reload_split ()) &&
19901 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19902 : (TARGET_AVX512VL)))
19903 : return -1;
19904 : return 4386; /* fma_fmaddc_v16hf_fma_zero */
19905 :
19906 : case 8:
19907 : if (!(
19908 : #line 7556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19909 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
19910 : && ix86_pre_reload_split ()) &&
19911 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19912 : (TARGET_AVX512VL)))
19913 : return -1;
19914 : return 4388; /* fma_fmaddc_v8hf_fma_zero */
19915 :
19916 : case 9:
19917 : if (!
19918 : #line 7556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19919 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
19920 : && ix86_pre_reload_split ()))
19921 : return -1;
19922 : return 4385; /* fma_fcmaddc_v32hf_fma_zero */
19923 :
19924 : case 10:
19925 : if (!(
19926 : #line 7556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19927 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
19928 : && ix86_pre_reload_split ()) &&
19929 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19930 : (TARGET_AVX512VL)))
19931 : return -1;
19932 : return 4387; /* fma_fcmaddc_v16hf_fma_zero */
19933 :
19934 : case 11:
19935 : if (!(
19936 : #line 7556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19937 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
19938 : && ix86_pre_reload_split ()) &&
19939 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19940 : (TARGET_AVX512VL)))
19941 : return -1;
19942 : return 4389; /* fma_fcmaddc_v8hf_fma_zero */
19943 :
19944 : default:
19945 : return -1;
19946 : }
19947 :
19948 : case MULT:
19949 : x5 = XEXP (x4, 0);
19950 : switch (GET_CODE (x5))
19951 : {
19952 : case SIGN_EXTEND:
19953 : if (pattern332 (x4) != 0)
19954 : return -1;
19955 : x6 = XEXP (x5, 0);
19956 : x7 = XEXP (x6, 1);
19957 : switch (XVECLEN (x7, 0))
19958 : {
19959 : case 8:
19960 : if (pattern1321 (x4) != 0)
19961 : return -1;
19962 : x8 = XEXP (x3, 1);
19963 : if (GET_CODE (x8) != MULT
19964 : || GET_MODE (x8) != E_V8SImode)
19965 : return -1;
19966 : x9 = XEXP (x8, 0);
19967 : if (GET_CODE (x9) != SIGN_EXTEND
19968 : || GET_MODE (x9) != E_V8SImode)
19969 : return -1;
19970 : x10 = XEXP (x9, 0);
19971 : if (GET_CODE (x10) != VEC_SELECT
19972 : || GET_MODE (x10) != E_V8HImode)
19973 : return -1;
19974 : x11 = XEXP (x10, 1);
19975 : if (GET_CODE (x11) != PARALLEL
19976 : || pattern1894 (x11,
19977 : 8) != 0)
19978 : return -1;
19979 : x12 = XEXP (x8, 1);
19980 : if (pattern1874 (x12,
19981 : E_V8HImode,
19982 : E_V8SImode) != 0)
19983 : return -1;
19984 : x13 = XEXP (x12, 0);
19985 : x14 = XEXP (x13, 1);
19986 : if (pattern1911 (x14,
19987 : 8) != 0
19988 : || !register_operand (operands[0], E_V8SImode)
19989 : || GET_MODE (x3) != E_V8SImode
19990 : || GET_MODE (x4) != E_V8SImode
19991 : || GET_MODE (x5) != E_V8SImode
19992 : || GET_MODE (x6) != E_V8HImode
19993 : || !nonimmediate_operand (operands[1], E_V16HImode))
19994 : return -1;
19995 : x15 = XEXP (x4, 1);
19996 : if (GET_MODE (x15) != E_V8SImode)
19997 : return -1;
19998 : x16 = XEXP (x15, 0);
19999 : if (GET_MODE (x16) != E_V8HImode
20000 : || !nonimmediate_operand (operands[2], E_V16HImode))
20001 : return -1;
20002 : x17 = XEXP (x10, 0);
20003 : if (!rtx_equal_p (x17, operands[1]))
20004 : return -1;
20005 : x18 = XEXP (x13, 0);
20006 : if (!rtx_equal_p (x18, operands[2])
20007 : || !
20008 : #line 17067 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20009 : (TARGET_AVX2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
20010 : return -1;
20011 : return 7631; /* *avx2_pmaddwd */
20012 :
20013 : case 4:
20014 : x19 = XVECEXP (x7, 0, 0);
20015 : if (GET_CODE (x19) != CONST_INT)
20016 : return -1;
20017 : x20 = XVECEXP (x7, 0, 1);
20018 : if (GET_CODE (x20) != CONST_INT)
20019 : return -1;
20020 : x21 = XVECEXP (x7, 0, 2);
20021 : if (GET_CODE (x21) != CONST_INT)
20022 : return -1;
20023 : x22 = XVECEXP (x7, 0, 3);
20024 : if (GET_CODE (x22) != CONST_INT)
20025 : return -1;
20026 : x15 = XEXP (x4, 1);
20027 : x16 = XEXP (x15, 0);
20028 : x23 = XEXP (x16, 1);
20029 : if (XVECLEN (x23, 0) != 4)
20030 : return -1;
20031 : x24 = XVECEXP (x23, 0, 0);
20032 : if (GET_CODE (x24) != CONST_INT)
20033 : return -1;
20034 : x25 = XVECEXP (x23, 0, 1);
20035 : if (GET_CODE (x25) != CONST_INT)
20036 : return -1;
20037 : x26 = XVECEXP (x23, 0, 2);
20038 : if (GET_CODE (x26) != CONST_INT)
20039 : return -1;
20040 : x27 = XVECEXP (x23, 0, 3);
20041 : if (GET_CODE (x27) != CONST_INT
20042 : || pattern893 (x3,
20043 : E_V4HImode,
20044 : E_V4SImode) != 0
20045 : || GET_MODE (x15) != E_V4SImode
20046 : || GET_MODE (x16) != E_V4HImode)
20047 : return -1;
20048 : switch (XWINT (x19, 0))
20049 : {
20050 : case 0L:
20051 : if (XWINT (x20, 0) != 2L
20052 : || XWINT (x21, 0) != 4L
20053 : || XWINT (x22, 0) != 6L
20054 : || XWINT (x24, 0) != 0L
20055 : || XWINT (x25, 0) != 2L
20056 : || XWINT (x26, 0) != 4L
20057 : || XWINT (x27, 0) != 6L)
20058 : return -1;
20059 : x8 = XEXP (x3, 1);
20060 : if (pattern1808 (x8,
20061 : E_V4HImode,
20062 : E_V4SImode,
20063 : SIGN_EXTEND) != 0
20064 : || !vector_operand (operands[1], E_V8HImode)
20065 : || !vector_operand (operands[2], E_V8HImode))
20066 : return -1;
20067 : x9 = XEXP (x8, 0);
20068 : x10 = XEXP (x9, 0);
20069 : x17 = XEXP (x10, 0);
20070 : if (!rtx_equal_p (x17, operands[1]))
20071 : return -1;
20072 : x12 = XEXP (x8, 1);
20073 : x13 = XEXP (x12, 0);
20074 : x18 = XEXP (x13, 0);
20075 : if (!rtx_equal_p (x18, operands[2])
20076 : || !
20077 : #line 17122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20078 : (TARGET_SSE2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
20079 : return -1;
20080 : return 7632; /* *sse2_pmaddwd */
20081 :
20082 : case 1L:
20083 : if (XWINT (x20, 0) != 3L
20084 : || XWINT (x21, 0) != 5L
20085 : || XWINT (x22, 0) != 7L
20086 : || XWINT (x24, 0) != 1L
20087 : || XWINT (x25, 0) != 3L
20088 : || XWINT (x26, 0) != 5L
20089 : || XWINT (x27, 0) != 7L
20090 : || !nonimmediate_operand (operands[1], E_V8HImode)
20091 : || !nonimmediate_operand (operands[2], E_V8HImode))
20092 : return -1;
20093 : x8 = XEXP (x3, 1);
20094 : operands[3] = x8;
20095 : if (!register_operand (operands[3], E_V4SImode)
20096 : || !
20097 : #line 26782 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20098 : (TARGET_XOP))
20099 : return -1;
20100 : return 9048; /* xop_pmacswd */
20101 :
20102 : default:
20103 : return -1;
20104 : }
20105 :
20106 : case 2:
20107 : if (pattern1322 (x3) != 0)
20108 : return -1;
20109 : x15 = XEXP (x4, 1);
20110 : if (GET_MODE (x15) != E_V2DImode)
20111 : return -1;
20112 : x16 = XEXP (x15, 0);
20113 : if (GET_MODE (x16) != E_V2SImode
20114 : || !nonimmediate_operand (operands[2], E_V4SImode))
20115 : return -1;
20116 : x8 = XEXP (x3, 1);
20117 : operands[3] = x8;
20118 : switch (pattern1858 (x4))
20119 : {
20120 : case 0:
20121 : if (!
20122 : #line 26741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20123 : (TARGET_XOP))
20124 : return -1;
20125 : return 9044; /* xop_pmacsdql */
20126 :
20127 : case 1:
20128 : if (!
20129 : #line 26760 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20130 : (TARGET_XOP))
20131 : return -1;
20132 : return 9046; /* xop_pmacsdqh */
20133 :
20134 : default:
20135 : return -1;
20136 : }
20137 :
20138 : default:
20139 : return -1;
20140 : }
20141 :
20142 : case REG:
20143 : case SUBREG:
20144 : case MEM:
20145 : switch (pattern334 (x3))
20146 : {
20147 : case 0:
20148 : if (!
20149 : #line 26722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20150 : (TARGET_XOP))
20151 : return -1;
20152 : return 9040; /* xop_pmacsww */
20153 :
20154 : case 1:
20155 : if (!
20156 : #line 26722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20157 : (TARGET_XOP))
20158 : return -1;
20159 : return 9042; /* xop_pmacsdd */
20160 :
20161 : default:
20162 : return -1;
20163 : }
20164 :
20165 : default:
20166 : return -1;
20167 : }
20168 :
20169 : case VEC_SELECT:
20170 : switch (pattern197 (x3))
20171 : {
20172 : case 0:
20173 : if (!
20174 : #line 22922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20175 : (TARGET_AVX2))
20176 : return -1;
20177 : return 8632; /* avx2_phaddwv16hi3 */
20178 :
20179 : case 1:
20180 : if (!
20181 : #line 22945 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20182 : (TARGET_SSSE3))
20183 : return -1;
20184 : return 8636; /* ssse3_phaddwv8hi3 */
20185 :
20186 : case 2:
20187 : if (!
20188 : #line 23012 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20189 : (TARGET_AVX2))
20190 : return -1;
20191 : return 8644; /* avx2_phadddv8si3 */
20192 :
20193 : case 3:
20194 : if (!
20195 : #line 23033 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20196 : (TARGET_SSSE3))
20197 : return -1;
20198 : return 8646; /* ssse3_phadddv4si3 */
20199 :
20200 : default:
20201 : return -1;
20202 : }
20203 :
20204 : case PLUS:
20205 : x5 = XEXP (x4, 0);
20206 : switch (GET_CODE (x5))
20207 : {
20208 : case MULT:
20209 : if (pattern335 (x5) != 0)
20210 : return -1;
20211 : x28 = XEXP (x5, 1);
20212 : if (GET_MODE (x28) != E_V4SImode)
20213 : return -1;
20214 : x29 = XEXP (x28, 0);
20215 : if (GET_CODE (x29) != VEC_SELECT
20216 : || GET_MODE (x29) != E_V4HImode)
20217 : return -1;
20218 : x30 = XEXP (x29, 1);
20219 : if (GET_CODE (x30) != PARALLEL
20220 : || XVECLEN (x30, 0) != 4)
20221 : return -1;
20222 : x31 = XVECEXP (x30, 0, 0);
20223 : if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
20224 : return -1;
20225 : x32 = XVECEXP (x30, 0, 1);
20226 : if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
20227 : return -1;
20228 : x33 = XVECEXP (x30, 0, 2);
20229 : if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
20230 : return -1;
20231 : x34 = XVECEXP (x30, 0, 3);
20232 : if (x34 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
20233 : return -1;
20234 : x15 = XEXP (x4, 1);
20235 : if (GET_CODE (x15) != MULT
20236 : || GET_MODE (x15) != E_V4SImode)
20237 : return -1;
20238 : x16 = XEXP (x15, 0);
20239 : if (GET_CODE (x16) != SIGN_EXTEND
20240 : || GET_MODE (x16) != E_V4SImode)
20241 : return -1;
20242 : x35 = XEXP (x16, 0);
20243 : if (GET_CODE (x35) != VEC_SELECT
20244 : || GET_MODE (x35) != E_V4HImode)
20245 : return -1;
20246 : x36 = XEXP (x35, 1);
20247 : if (GET_CODE (x36) != PARALLEL
20248 : || XVECLEN (x36, 0) != 4)
20249 : return -1;
20250 : x37 = XVECEXP (x36, 0, 0);
20251 : if (x37 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
20252 : return -1;
20253 : x38 = XVECEXP (x36, 0, 1);
20254 : if (x38 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
20255 : return -1;
20256 : x39 = XVECEXP (x36, 0, 2);
20257 : if (x39 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
20258 : return -1;
20259 : x40 = XVECEXP (x36, 0, 3);
20260 : if (x40 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
20261 : return -1;
20262 : x41 = XEXP (x15, 1);
20263 : if (GET_CODE (x41) != SIGN_EXTEND
20264 : || GET_MODE (x41) != E_V4SImode)
20265 : return -1;
20266 : x42 = XEXP (x41, 0);
20267 : if (GET_CODE (x42) != VEC_SELECT
20268 : || GET_MODE (x42) != E_V4HImode)
20269 : return -1;
20270 : x43 = XEXP (x42, 1);
20271 : if (GET_CODE (x43) != PARALLEL
20272 : || XVECLEN (x43, 0) != 4)
20273 : return -1;
20274 : x44 = XVECEXP (x43, 0, 0);
20275 : if (x44 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
20276 : return -1;
20277 : x45 = XVECEXP (x43, 0, 1);
20278 : if (x45 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
20279 : return -1;
20280 : x46 = XVECEXP (x43, 0, 2);
20281 : if (x46 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
20282 : return -1;
20283 : x47 = XVECEXP (x43, 0, 3);
20284 : if (x47 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
20285 : || !register_operand (operands[0], E_V4SImode)
20286 : || GET_MODE (x3) != E_V4SImode
20287 : || GET_MODE (x4) != E_V4SImode
20288 : || pattern1914 (x3) != 0
20289 : || !
20290 : #line 26815 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20291 : (TARGET_XOP))
20292 : return -1;
20293 : return 9050; /* xop_pmadcswd */
20294 :
20295 : case SIGN_EXTEND:
20296 : switch (pattern338 (x3,
20297 : SIGN_EXTEND))
20298 : {
20299 : case 0:
20300 : if (!
20301 : #line 26909 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20302 : (TARGET_XOP))
20303 : return -1;
20304 : return 9070; /* xop_phaddbd */
20305 :
20306 : case 1:
20307 : if (!
20308 : #line 27005 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20309 : (TARGET_XOP))
20310 : return -1;
20311 : return 9076; /* xop_phaddwq */
20312 :
20313 : default:
20314 : return -1;
20315 : }
20316 :
20317 : case ZERO_EXTEND:
20318 : switch (pattern338 (x3,
20319 : ZERO_EXTEND))
20320 : {
20321 : case 0:
20322 : if (!
20323 : #line 26909 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20324 : (TARGET_XOP))
20325 : return -1;
20326 : return 9071; /* xop_phaddubd */
20327 :
20328 : case 1:
20329 : if (!
20330 : #line 27005 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20331 : (TARGET_XOP))
20332 : return -1;
20333 : return 9077; /* xop_phadduwq */
20334 :
20335 : default:
20336 : return -1;
20337 : }
20338 :
20339 : case PLUS:
20340 : if (GET_MODE (x5) != E_V2DImode)
20341 : return -1;
20342 : x15 = XEXP (x4, 1);
20343 : if (GET_CODE (x15) != PLUS
20344 : || GET_MODE (x15) != E_V2DImode)
20345 : return -1;
20346 : x8 = XEXP (x3, 1);
20347 : if (GET_CODE (x8) != PLUS
20348 : || GET_MODE (x8) != E_V2DImode
20349 : || pattern1040 (x8,
20350 : E_V2DImode,
20351 : PLUS) != 0
20352 : || !register_operand (operands[0], E_V2DImode)
20353 : || GET_MODE (x3) != E_V2DImode
20354 : || GET_MODE (x4) != E_V2DImode
20355 : || pattern1564 (x3,
20356 : E_V2DImode) != 0)
20357 : return -1;
20358 : x6 = XEXP (x5, 0);
20359 : switch (GET_CODE (x6))
20360 : {
20361 : case SIGN_EXTEND:
20362 : if (pattern1845 (x3,
20363 : SIGN_EXTEND) != 0
20364 : || !
20365 : #line 26957 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20366 : (TARGET_XOP))
20367 : return -1;
20368 : return 9072; /* xop_phaddbq */
20369 :
20370 : case ZERO_EXTEND:
20371 : if (pattern1845 (x3,
20372 : ZERO_EXTEND) != 0
20373 : || !
20374 : #line 26957 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20375 : (TARGET_XOP))
20376 : return -1;
20377 : return 9073; /* xop_phaddubq */
20378 :
20379 : default:
20380 : return -1;
20381 : }
20382 :
20383 : default:
20384 : return -1;
20385 : }
20386 :
20387 : case SIGN_EXTEND:
20388 : switch (pattern199 (x3,
20389 : SIGN_EXTEND))
20390 : {
20391 : case 0:
20392 : if (!
20393 : #line 26877 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20394 : (TARGET_XOP))
20395 : return -1;
20396 : return 9068; /* xop_phaddbw */
20397 :
20398 : case 1:
20399 : if (!
20400 : #line 26977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20401 : (TARGET_XOP))
20402 : return -1;
20403 : return 9074; /* xop_phaddwd */
20404 :
20405 : case 2:
20406 : if (!
20407 : #line 27023 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20408 : (TARGET_XOP))
20409 : return -1;
20410 : return 9078; /* xop_phadddq */
20411 :
20412 : default:
20413 : return -1;
20414 : }
20415 :
20416 : case ZERO_EXTEND:
20417 : switch (pattern199 (x3,
20418 : ZERO_EXTEND))
20419 : {
20420 : case 0:
20421 : if (!
20422 : #line 26877 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20423 : (TARGET_XOP))
20424 : return -1;
20425 : return 9069; /* xop_phaddubw */
20426 :
20427 : case 1:
20428 : if (!
20429 : #line 26977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20430 : (TARGET_XOP))
20431 : return -1;
20432 : return 9075; /* xop_phadduwd */
20433 :
20434 : case 2:
20435 : if (!
20436 : #line 27023 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20437 : (TARGET_XOP))
20438 : return -1;
20439 : return 9079; /* xop_phaddudq */
20440 :
20441 : default:
20442 : return -1;
20443 : }
20444 :
20445 : default:
20446 : return -1;
20447 : }
20448 : }
20449 :
20450 : int
20451 : recog_328 (rtx x1 ATTRIBUTE_UNUSED,
20452 : rtx_insn *insn ATTRIBUTE_UNUSED,
20453 : int *pnum_clobbers ATTRIBUTE_UNUSED)
20454 : {
20455 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
20456 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
20457 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
20458 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
20459 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
20460 : rtx x34, x35, x36, x37, x38, x39, x40, x41;
20461 : rtx x42, x43, x44, x45, x46, x47, x48, x49;
20462 : rtx x50, x51, x52, x53, x54, x55, x56, x57;
20463 : rtx x58, x59, x60, x61, x62, x63, x64, x65;
20464 : rtx x66, x67, x68, x69, x70, x71, x72, x73;
20465 : rtx x74, x75, x76;
20466 : int res ATTRIBUTE_UNUSED;
20467 : x2 = XEXP (x1, 0);
20468 : operands[0] = x2;
20469 : x3 = XEXP (x1, 1);
20470 : x4 = XEXP (x3, 0);
20471 : switch (GET_CODE (x4))
20472 : {
20473 : case REG:
20474 : case SUBREG:
20475 : case MEM:
20476 : switch (pattern54 (x3))
20477 : {
20478 : case 0:
20479 : if (!(
20480 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20481 : (TARGET_SSE2 && 1 && 1
20482 : && ix86_binary_operator_ok (SS_PLUS, V64QImode, operands)) &&
20483 : #line 732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20484 : (TARGET_AVX512BW)))
20485 : return -1;
20486 : return 7547; /* *avx512bw_ssaddv64qi3 */
20487 :
20488 : case 1:
20489 : if (!(
20490 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20491 : (TARGET_SSE2 && 1 && 1
20492 : && ix86_binary_operator_ok (SS_PLUS, V32QImode, operands)) &&
20493 : #line 732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20494 : (TARGET_AVX2)))
20495 : return -1;
20496 : return 7555; /* *avx2_ssaddv32qi3 */
20497 :
20498 : case 2:
20499 : if (!
20500 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20501 : (TARGET_SSE2 && 1 && 1
20502 : && ix86_binary_operator_ok (SS_PLUS, V16QImode, operands)))
20503 : return -1;
20504 : return 7563; /* *sse2_ssaddv16qi3 */
20505 :
20506 : case 3:
20507 : if (!(
20508 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20509 : (TARGET_SSE2 && 1 && 1
20510 : && ix86_binary_operator_ok (SS_PLUS, V32HImode, operands)) &&
20511 : #line 733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20512 : (TARGET_AVX512BW)))
20513 : return -1;
20514 : return 7571; /* *avx512bw_ssaddv32hi3 */
20515 :
20516 : case 4:
20517 : if (!(
20518 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20519 : (TARGET_SSE2 && 1 && 1
20520 : && ix86_binary_operator_ok (SS_PLUS, V16HImode, operands)) &&
20521 : #line 733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20522 : (TARGET_AVX2)))
20523 : return -1;
20524 : return 7579; /* *avx2_ssaddv16hi3 */
20525 :
20526 : case 5:
20527 : if (!
20528 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20529 : (TARGET_SSE2 && 1 && 1
20530 : && ix86_binary_operator_ok (SS_PLUS, V8HImode, operands)))
20531 : return -1;
20532 : return 7587; /* *sse2_ssaddv8hi3 */
20533 :
20534 : default:
20535 : return -1;
20536 : }
20537 :
20538 : case VEC_SELECT:
20539 : switch (pattern205 (x3))
20540 : {
20541 : case 0:
20542 : if (!
20543 : #line 22922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20544 : (TARGET_AVX2))
20545 : return -1;
20546 : return 8633; /* avx2_phaddswv16hi3 */
20547 :
20548 : case 1:
20549 : if (!
20550 : #line 22945 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20551 : (TARGET_SSSE3))
20552 : return -1;
20553 : return 8637; /* ssse3_phaddswv8hi3 */
20554 :
20555 : default:
20556 : return -1;
20557 : }
20558 :
20559 : case MULT:
20560 : x5 = XEXP (x4, 0);
20561 : switch (GET_CODE (x5))
20562 : {
20563 : case ZERO_EXTEND:
20564 : x6 = XEXP (x5, 0);
20565 : if (GET_CODE (x6) != VEC_SELECT)
20566 : return -1;
20567 : x7 = XEXP (x6, 1);
20568 : if (GET_CODE (x7) != PARALLEL)
20569 : return -1;
20570 : x8 = XEXP (x4, 1);
20571 : if (GET_CODE (x8) != SIGN_EXTEND)
20572 : return -1;
20573 : x9 = XEXP (x8, 0);
20574 : if (GET_CODE (x9) != VEC_SELECT)
20575 : return -1;
20576 : x10 = XEXP (x9, 1);
20577 : if (GET_CODE (x10) != PARALLEL)
20578 : return -1;
20579 : x11 = XEXP (x3, 1);
20580 : if (GET_CODE (x11) != MULT)
20581 : return -1;
20582 : x12 = XEXP (x11, 0);
20583 : if (GET_CODE (x12) != ZERO_EXTEND)
20584 : return -1;
20585 : x13 = XEXP (x12, 0);
20586 : if (GET_CODE (x13) != VEC_SELECT)
20587 : return -1;
20588 : x14 = XEXP (x13, 1);
20589 : if (GET_CODE (x14) != PARALLEL)
20590 : return -1;
20591 : x15 = XEXP (x11, 1);
20592 : if (GET_CODE (x15) != SIGN_EXTEND)
20593 : return -1;
20594 : x16 = XEXP (x15, 0);
20595 : if (GET_CODE (x16) != VEC_SELECT)
20596 : return -1;
20597 : x17 = XEXP (x16, 1);
20598 : if (GET_CODE (x17) != PARALLEL)
20599 : return -1;
20600 : x18 = XEXP (x6, 0);
20601 : operands[1] = x18;
20602 : x19 = XEXP (x9, 0);
20603 : operands[2] = x19;
20604 : x20 = XEXP (x13, 0);
20605 : if (!rtx_equal_p (x20, operands[1]))
20606 : return -1;
20607 : x21 = XEXP (x16, 0);
20608 : if (!rtx_equal_p (x21, operands[2]))
20609 : return -1;
20610 : switch (XVECLEN (x7, 0))
20611 : {
20612 : case 16:
20613 : if (pattern1092 (x7,
20614 : 6,
20615 : 4,
20616 : 2,
20617 : 0) != 0)
20618 : return -1;
20619 : x22 = XVECEXP (x7, 0, 4);
20620 : if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
20621 : return -1;
20622 : x23 = XVECEXP (x7, 0, 5);
20623 : if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
20624 : return -1;
20625 : x24 = XVECEXP (x7, 0, 6);
20626 : if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
20627 : return -1;
20628 : x25 = XVECEXP (x7, 0, 7);
20629 : if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 14])
20630 : return -1;
20631 : x26 = XVECEXP (x7, 0, 8);
20632 : if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
20633 : return -1;
20634 : x27 = XVECEXP (x7, 0, 9);
20635 : if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 18])
20636 : return -1;
20637 : x28 = XVECEXP (x7, 0, 10);
20638 : if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 20])
20639 : return -1;
20640 : x29 = XVECEXP (x7, 0, 11);
20641 : if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 22])
20642 : return -1;
20643 : x30 = XVECEXP (x7, 0, 12);
20644 : if (x30 != const_int_rtx[MAX_SAVED_CONST_INT + 24])
20645 : return -1;
20646 : x31 = XVECEXP (x7, 0, 13);
20647 : if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 26])
20648 : return -1;
20649 : x32 = XVECEXP (x7, 0, 14);
20650 : if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 28])
20651 : return -1;
20652 : x33 = XVECEXP (x7, 0, 15);
20653 : if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 30]
20654 : || pattern1320 (x10,
20655 : 16) != 0)
20656 : return -1;
20657 : x34 = XVECEXP (x10, 0, 8);
20658 : if (x34 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
20659 : return -1;
20660 : x35 = XVECEXP (x10, 0, 9);
20661 : if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + 18])
20662 : return -1;
20663 : x36 = XVECEXP (x10, 0, 10);
20664 : if (x36 != const_int_rtx[MAX_SAVED_CONST_INT + 20])
20665 : return -1;
20666 : x37 = XVECEXP (x10, 0, 11);
20667 : if (x37 != const_int_rtx[MAX_SAVED_CONST_INT + 22])
20668 : return -1;
20669 : x38 = XVECEXP (x10, 0, 12);
20670 : if (x38 != const_int_rtx[MAX_SAVED_CONST_INT + 24])
20671 : return -1;
20672 : x39 = XVECEXP (x10, 0, 13);
20673 : if (x39 != const_int_rtx[MAX_SAVED_CONST_INT + 26])
20674 : return -1;
20675 : x40 = XVECEXP (x10, 0, 14);
20676 : if (x40 != const_int_rtx[MAX_SAVED_CONST_INT + 28])
20677 : return -1;
20678 : x41 = XVECEXP (x10, 0, 15);
20679 : if (x41 != const_int_rtx[MAX_SAVED_CONST_INT + 30]
20680 : || pattern1894 (x14,
20681 : 16) != 0)
20682 : return -1;
20683 : x42 = XVECEXP (x14, 0, 8);
20684 : if (x42 != const_int_rtx[MAX_SAVED_CONST_INT + 17])
20685 : return -1;
20686 : x43 = XVECEXP (x14, 0, 9);
20687 : if (x43 != const_int_rtx[MAX_SAVED_CONST_INT + 19])
20688 : return -1;
20689 : x44 = XVECEXP (x14, 0, 10);
20690 : if (x44 != const_int_rtx[MAX_SAVED_CONST_INT + 21])
20691 : return -1;
20692 : x45 = XVECEXP (x14, 0, 11);
20693 : if (x45 != const_int_rtx[MAX_SAVED_CONST_INT + 23])
20694 : return -1;
20695 : x46 = XVECEXP (x14, 0, 12);
20696 : if (x46 != const_int_rtx[MAX_SAVED_CONST_INT + 25])
20697 : return -1;
20698 : x47 = XVECEXP (x14, 0, 13);
20699 : if (x47 != const_int_rtx[MAX_SAVED_CONST_INT + 27])
20700 : return -1;
20701 : x48 = XVECEXP (x14, 0, 14);
20702 : if (x48 != const_int_rtx[MAX_SAVED_CONST_INT + 29])
20703 : return -1;
20704 : x49 = XVECEXP (x14, 0, 15);
20705 : if (x49 != const_int_rtx[MAX_SAVED_CONST_INT + 31]
20706 : || pattern1911 (x17,
20707 : 16) != 0)
20708 : return -1;
20709 : x50 = XVECEXP (x17, 0, 8);
20710 : if (x50 != const_int_rtx[MAX_SAVED_CONST_INT + 17])
20711 : return -1;
20712 : x51 = XVECEXP (x17, 0, 9);
20713 : if (x51 != const_int_rtx[MAX_SAVED_CONST_INT + 19])
20714 : return -1;
20715 : x52 = XVECEXP (x17, 0, 10);
20716 : if (x52 != const_int_rtx[MAX_SAVED_CONST_INT + 21])
20717 : return -1;
20718 : x53 = XVECEXP (x17, 0, 11);
20719 : if (x53 != const_int_rtx[MAX_SAVED_CONST_INT + 23])
20720 : return -1;
20721 : x54 = XVECEXP (x17, 0, 12);
20722 : if (x54 != const_int_rtx[MAX_SAVED_CONST_INT + 25])
20723 : return -1;
20724 : x55 = XVECEXP (x17, 0, 13);
20725 : if (x55 != const_int_rtx[MAX_SAVED_CONST_INT + 27])
20726 : return -1;
20727 : x56 = XVECEXP (x17, 0, 14);
20728 : if (x56 != const_int_rtx[MAX_SAVED_CONST_INT + 29])
20729 : return -1;
20730 : x57 = XVECEXP (x17, 0, 15);
20731 : if (x57 != const_int_rtx[MAX_SAVED_CONST_INT + 31]
20732 : || pattern1917 (x3,
20733 : E_V32QImode,
20734 : E_V16QImode,
20735 : E_V16HImode) != 0
20736 : || GET_MODE (x8) != E_V16HImode
20737 : || GET_MODE (x9) != E_V16QImode
20738 : || !nonimmediate_operand (operands[2], E_V32QImode)
20739 : || pattern336 (x11,
20740 : E_V16QImode,
20741 : E_V16HImode) != 0
20742 : || !
20743 : #line 23132 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20744 : (TARGET_AVX2))
20745 : return -1;
20746 : return 8650; /* avx2_pmaddubsw256 */
20747 :
20748 : case 8:
20749 : if (pattern1321 (x4) != 0
20750 : || pattern1894 (x14,
20751 : 8) != 0
20752 : || pattern1911 (x17,
20753 : 8) != 0
20754 : || pattern1917 (x3,
20755 : E_V16QImode,
20756 : E_V8QImode,
20757 : E_V8HImode) != 0
20758 : || GET_MODE (x8) != E_V8HImode
20759 : || GET_MODE (x9) != E_V8QImode
20760 : || !vector_operand (operands[2], E_V16QImode)
20761 : || pattern336 (x11,
20762 : E_V8QImode,
20763 : E_V8HImode) != 0
20764 : || !
20765 : #line 23219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20766 : (TARGET_SSSE3))
20767 : return -1;
20768 : return 8659; /* ssse3_pmaddubsw128 */
20769 :
20770 : default:
20771 : return -1;
20772 : }
20773 :
20774 : case REG:
20775 : case SUBREG:
20776 : case MEM:
20777 : switch (pattern334 (x3))
20778 : {
20779 : case 0:
20780 : if (!
20781 : #line 26722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20782 : (TARGET_XOP))
20783 : return -1;
20784 : return 9041; /* xop_pmacssww */
20785 :
20786 : case 1:
20787 : if (!
20788 : #line 26722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20789 : (TARGET_XOP))
20790 : return -1;
20791 : return 9043; /* xop_pmacssdd */
20792 :
20793 : default:
20794 : return -1;
20795 : }
20796 :
20797 : case SIGN_EXTEND:
20798 : if (pattern332 (x4) != 0)
20799 : return -1;
20800 : x11 = XEXP (x3, 1);
20801 : operands[3] = x11;
20802 : x6 = XEXP (x5, 0);
20803 : x7 = XEXP (x6, 1);
20804 : switch (XVECLEN (x7, 0))
20805 : {
20806 : case 2:
20807 : if (pattern1322 (x3) != 0)
20808 : return -1;
20809 : x8 = XEXP (x4, 1);
20810 : if (GET_MODE (x8) != E_V2DImode)
20811 : return -1;
20812 : x9 = XEXP (x8, 0);
20813 : if (GET_MODE (x9) != E_V2SImode
20814 : || !nonimmediate_operand (operands[2], E_V4SImode))
20815 : return -1;
20816 : switch (pattern1858 (x4))
20817 : {
20818 : case 0:
20819 : if (!
20820 : #line 26741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20821 : (TARGET_XOP))
20822 : return -1;
20823 : return 9045; /* xop_pmacssdql */
20824 :
20825 : case 1:
20826 : if (!
20827 : #line 26760 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20828 : (TARGET_XOP))
20829 : return -1;
20830 : return 9047; /* xop_pmacssdqh */
20831 :
20832 : default:
20833 : return -1;
20834 : }
20835 :
20836 : case 4:
20837 : if (pattern1092 (x7,
20838 : 7,
20839 : 5,
20840 : 3,
20841 : 1) != 0)
20842 : return -1;
20843 : x8 = XEXP (x4, 1);
20844 : x9 = XEXP (x8, 0);
20845 : x10 = XEXP (x9, 1);
20846 : if (pattern1633 (x10,
20847 : 7,
20848 : 5,
20849 : 3,
20850 : 1) != 0
20851 : || !register_operand (operands[0], E_V4SImode)
20852 : || GET_MODE (x3) != E_V4SImode
20853 : || GET_MODE (x4) != E_V4SImode
20854 : || GET_MODE (x5) != E_V4SImode
20855 : || GET_MODE (x6) != E_V4HImode
20856 : || !nonimmediate_operand (operands[1], E_V8HImode)
20857 : || GET_MODE (x8) != E_V4SImode
20858 : || GET_MODE (x9) != E_V4HImode
20859 : || !nonimmediate_operand (operands[2], E_V8HImode)
20860 : || !register_operand (operands[3], E_V4SImode)
20861 : || !
20862 : #line 26782 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20863 : (TARGET_XOP))
20864 : return -1;
20865 : return 9049; /* xop_pmacsswd */
20866 :
20867 : default:
20868 : return -1;
20869 : }
20870 :
20871 : default:
20872 : return -1;
20873 : }
20874 :
20875 : case PLUS:
20876 : if (GET_MODE (x4) != E_V4SImode)
20877 : return -1;
20878 : x5 = XEXP (x4, 0);
20879 : if (GET_CODE (x5) != MULT
20880 : || pattern335 (x5) != 0)
20881 : return -1;
20882 : x58 = XEXP (x5, 1);
20883 : if (GET_MODE (x58) != E_V4SImode)
20884 : return -1;
20885 : x59 = XEXP (x58, 0);
20886 : if (GET_CODE (x59) != VEC_SELECT
20887 : || GET_MODE (x59) != E_V4HImode)
20888 : return -1;
20889 : x60 = XEXP (x59, 1);
20890 : if (GET_CODE (x60) != PARALLEL
20891 : || XVECLEN (x60, 0) != 4)
20892 : return -1;
20893 : x61 = XVECEXP (x60, 0, 0);
20894 : if (x61 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
20895 : return -1;
20896 : x62 = XVECEXP (x60, 0, 1);
20897 : if (x62 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
20898 : return -1;
20899 : x63 = XVECEXP (x60, 0, 2);
20900 : if (x63 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
20901 : return -1;
20902 : x64 = XVECEXP (x60, 0, 3);
20903 : if (x64 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
20904 : return -1;
20905 : x8 = XEXP (x4, 1);
20906 : if (GET_CODE (x8) != MULT
20907 : || GET_MODE (x8) != E_V4SImode)
20908 : return -1;
20909 : x9 = XEXP (x8, 0);
20910 : if (GET_CODE (x9) != SIGN_EXTEND
20911 : || GET_MODE (x9) != E_V4SImode)
20912 : return -1;
20913 : x19 = XEXP (x9, 0);
20914 : if (GET_CODE (x19) != VEC_SELECT
20915 : || GET_MODE (x19) != E_V4HImode)
20916 : return -1;
20917 : x65 = XEXP (x19, 1);
20918 : if (GET_CODE (x65) != PARALLEL
20919 : || XVECLEN (x65, 0) != 4)
20920 : return -1;
20921 : x66 = XVECEXP (x65, 0, 0);
20922 : if (x66 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
20923 : return -1;
20924 : x67 = XVECEXP (x65, 0, 1);
20925 : if (x67 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
20926 : return -1;
20927 : x68 = XVECEXP (x65, 0, 2);
20928 : if (x68 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
20929 : return -1;
20930 : x69 = XVECEXP (x65, 0, 3);
20931 : if (x69 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
20932 : return -1;
20933 : x70 = XEXP (x8, 1);
20934 : if (GET_CODE (x70) != SIGN_EXTEND
20935 : || GET_MODE (x70) != E_V4SImode)
20936 : return -1;
20937 : x71 = XEXP (x70, 0);
20938 : if (GET_CODE (x71) != VEC_SELECT
20939 : || GET_MODE (x71) != E_V4HImode)
20940 : return -1;
20941 : x72 = XEXP (x71, 1);
20942 : if (GET_CODE (x72) != PARALLEL
20943 : || XVECLEN (x72, 0) != 4)
20944 : return -1;
20945 : x73 = XVECEXP (x72, 0, 0);
20946 : if (x73 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
20947 : return -1;
20948 : x74 = XVECEXP (x72, 0, 1);
20949 : if (x74 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
20950 : return -1;
20951 : x75 = XVECEXP (x72, 0, 2);
20952 : if (x75 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
20953 : return -1;
20954 : x76 = XVECEXP (x72, 0, 3);
20955 : if (x76 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
20956 : || !register_operand (operands[0], E_V4SImode)
20957 : || GET_MODE (x3) != E_V4SImode
20958 : || pattern1914 (x3) != 0
20959 : || !
20960 : #line 26815 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20961 : (TARGET_XOP))
20962 : return -1;
20963 : return 9051; /* xop_pmadcsswd */
20964 :
20965 : default:
20966 : return -1;
20967 : }
20968 : }
20969 :
20970 : int
20971 : recog_335 (rtx x1 ATTRIBUTE_UNUSED,
20972 : rtx_insn *insn ATTRIBUTE_UNUSED,
20973 : int *pnum_clobbers ATTRIBUTE_UNUSED)
20974 : {
20975 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
20976 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
20977 : rtx x10, x11;
20978 : int res ATTRIBUTE_UNUSED;
20979 : x2 = XEXP (x1, 0);
20980 : operands[0] = x2;
20981 : x3 = XEXP (x1, 1);
20982 : x4 = XEXP (x3, 0);
20983 : switch (GET_CODE (x4))
20984 : {
20985 : case REG:
20986 : case SUBREG:
20987 : case MEM:
20988 : operands[3] = x4;
20989 : x5 = XEXP (x3, 1);
20990 : operands[1] = x5;
20991 : x6 = XEXP (x3, 2);
20992 : operands[2] = x6;
20993 : switch (GET_MODE (operands[0]))
20994 : {
20995 : case E_V32QImode:
20996 : if (pattern818 (x3,
20997 : E_V32QImode) != 0
20998 : || !
20999 : #line 26828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21000 : (TARGET_XOP))
21001 : return -1;
21002 : return 9052; /* xop_pcmov_v32qi256 */
21003 :
21004 : case E_V16QImode:
21005 : if (pattern818 (x3,
21006 : E_V16QImode) != 0
21007 : || !
21008 : #line 26828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21009 : (TARGET_XOP))
21010 : return -1;
21011 : return 9053; /* xop_pcmov_v16qi */
21012 :
21013 : case E_V16HImode:
21014 : if (pattern818 (x3,
21015 : E_V16HImode) != 0
21016 : || !
21017 : #line 26828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21018 : (TARGET_XOP))
21019 : return -1;
21020 : return 9054; /* xop_pcmov_v16hi256 */
21021 :
21022 : case E_V8HImode:
21023 : if (pattern818 (x3,
21024 : E_V8HImode) != 0
21025 : || !
21026 : #line 26828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21027 : (TARGET_XOP))
21028 : return -1;
21029 : return 9055; /* xop_pcmov_v8hi */
21030 :
21031 : case E_V8SImode:
21032 : if (pattern818 (x3,
21033 : E_V8SImode) != 0
21034 : || !
21035 : #line 26828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21036 : (TARGET_XOP))
21037 : return -1;
21038 : return 9056; /* xop_pcmov_v8si256 */
21039 :
21040 : case E_V4SImode:
21041 : if (pattern818 (x3,
21042 : E_V4SImode) != 0
21043 : || !
21044 : #line 26828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21045 : (TARGET_XOP))
21046 : return -1;
21047 : return 9057; /* xop_pcmov_v4si */
21048 :
21049 : case E_V4DImode:
21050 : if (pattern818 (x3,
21051 : E_V4DImode) != 0
21052 : || !
21053 : #line 26828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21054 : (TARGET_XOP))
21055 : return -1;
21056 : return 9058; /* xop_pcmov_v4di256 */
21057 :
21058 : case E_V2DImode:
21059 : if (pattern818 (x3,
21060 : E_V2DImode) != 0
21061 : || !
21062 : #line 26828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21063 : (TARGET_XOP))
21064 : return -1;
21065 : return 9059; /* xop_pcmov_v2di */
21066 :
21067 : case E_V2TImode:
21068 : if (pattern818 (x3,
21069 : E_V2TImode) != 0
21070 : || !
21071 : #line 26828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21072 : (TARGET_XOP))
21073 : return -1;
21074 : return 9060; /* xop_pcmov_v2ti256 */
21075 :
21076 : case E_V1TImode:
21077 : if (pattern818 (x3,
21078 : E_V1TImode) != 0
21079 : || !
21080 : #line 26828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21081 : (TARGET_XOP))
21082 : return -1;
21083 : return 9061; /* xop_pcmov_v1ti */
21084 :
21085 : case E_V16HFmode:
21086 : if (pattern818 (x3,
21087 : E_V16HFmode) != 0
21088 : || !
21089 : #line 26828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21090 : (TARGET_XOP))
21091 : return -1;
21092 : return 9062; /* xop_pcmov_v16hf256 */
21093 :
21094 : case E_V8HFmode:
21095 : if (pattern818 (x3,
21096 : E_V8HFmode) != 0
21097 : || !
21098 : #line 26828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21099 : (TARGET_XOP))
21100 : return -1;
21101 : return 9063; /* xop_pcmov_v8hf */
21102 :
21103 : case E_V8SFmode:
21104 : if (pattern818 (x3,
21105 : E_V8SFmode) != 0
21106 : || !
21107 : #line 26828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21108 : (TARGET_XOP))
21109 : return -1;
21110 : return 9064; /* xop_pcmov_v8sf256 */
21111 :
21112 : case E_V4SFmode:
21113 : if (pattern818 (x3,
21114 : E_V4SFmode) != 0
21115 : || !
21116 : #line 26828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21117 : (TARGET_XOP))
21118 : return -1;
21119 : return 9065; /* xop_pcmov_v4sf */
21120 :
21121 : case E_V4DFmode:
21122 : if (pattern818 (x3,
21123 : E_V4DFmode) != 0
21124 : || !
21125 : #line 26828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21126 : (TARGET_XOP))
21127 : return -1;
21128 : return 9066; /* xop_pcmov_v4df256 */
21129 :
21130 : case E_V2DFmode:
21131 : if (pattern818 (x3,
21132 : E_V2DFmode) != 0
21133 : || !
21134 : #line 26828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21135 : (TARGET_XOP))
21136 : return -1;
21137 : return 9067; /* xop_pcmov_v2df */
21138 :
21139 : default:
21140 : return -1;
21141 : }
21142 :
21143 : case GE:
21144 : x7 = XEXP (x4, 1);
21145 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
21146 : return -1;
21147 : x8 = XEXP (x4, 0);
21148 : operands[2] = x8;
21149 : x5 = XEXP (x3, 1);
21150 : switch (GET_CODE (x5))
21151 : {
21152 : case ROTATE:
21153 : x6 = XEXP (x3, 2);
21154 : if (GET_CODE (x6) != ROTATERT)
21155 : return -1;
21156 : x9 = XEXP (x6, 1);
21157 : if (GET_CODE (x9) != NEG)
21158 : return -1;
21159 : x10 = XEXP (x5, 0);
21160 : operands[1] = x10;
21161 : x11 = XEXP (x5, 1);
21162 : if (!rtx_equal_p (x11, operands[2]))
21163 : return -1;
21164 : switch (pattern1157 (x3))
21165 : {
21166 : case 0:
21167 : if (!
21168 : #line 27274 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21169 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21170 : return -1;
21171 : return 9095; /* xop_vrotlv16qi3 */
21172 :
21173 : case 1:
21174 : if (!
21175 : #line 27274 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21176 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21177 : return -1;
21178 : return 9096; /* xop_vrotlv8hi3 */
21179 :
21180 : case 2:
21181 : if (!
21182 : #line 27274 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21183 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21184 : return -1;
21185 : return 9097; /* xop_vrotlv4si3 */
21186 :
21187 : case 3:
21188 : if (!
21189 : #line 27274 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21190 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21191 : return -1;
21192 : return 9098; /* xop_vrotlv2di3 */
21193 :
21194 : default:
21195 : return -1;
21196 : }
21197 :
21198 : case ASHIFT:
21199 : x10 = XEXP (x5, 0);
21200 : operands[1] = x10;
21201 : x11 = XEXP (x5, 1);
21202 : if (!rtx_equal_p (x11, operands[2]))
21203 : return -1;
21204 : x6 = XEXP (x3, 2);
21205 : switch (GET_CODE (x6))
21206 : {
21207 : case ASHIFTRT:
21208 : x9 = XEXP (x6, 1);
21209 : if (GET_CODE (x9) != NEG)
21210 : return -1;
21211 : switch (pattern1157 (x3))
21212 : {
21213 : case 0:
21214 : if (!
21215 : #line 27511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21216 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21217 : return -1;
21218 : return 9099; /* xop_shav16qi3 */
21219 :
21220 : case 1:
21221 : if (!
21222 : #line 27511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21223 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21224 : return -1;
21225 : return 9100; /* xop_shav8hi3 */
21226 :
21227 : case 2:
21228 : if (!
21229 : #line 27511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21230 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21231 : return -1;
21232 : return 9101; /* xop_shav4si3 */
21233 :
21234 : case 3:
21235 : if (!
21236 : #line 27511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21237 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21238 : return -1;
21239 : return 9102; /* xop_shav2di3 */
21240 :
21241 : default:
21242 : return -1;
21243 : }
21244 :
21245 : case LSHIFTRT:
21246 : x9 = XEXP (x6, 1);
21247 : if (GET_CODE (x9) != NEG)
21248 : return -1;
21249 : switch (pattern1157 (x3))
21250 : {
21251 : case 0:
21252 : if (!
21253 : #line 27530 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21254 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21255 : return -1;
21256 : return 9103; /* xop_shlv16qi3 */
21257 :
21258 : case 1:
21259 : if (!
21260 : #line 27530 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21261 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21262 : return -1;
21263 : return 9104; /* xop_shlv8hi3 */
21264 :
21265 : case 2:
21266 : if (!
21267 : #line 27530 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21268 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21269 : return -1;
21270 : return 9105; /* xop_shlv4si3 */
21271 :
21272 : case 3:
21273 : if (!
21274 : #line 27530 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21275 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21276 : return -1;
21277 : return 9106; /* xop_shlv2di3 */
21278 :
21279 : default:
21280 : return -1;
21281 : }
21282 :
21283 : default:
21284 : return -1;
21285 : }
21286 :
21287 : default:
21288 : return -1;
21289 : }
21290 :
21291 : default:
21292 : return -1;
21293 : }
21294 : }
21295 :
21296 : int
21297 : recog_340 (rtx x1 ATTRIBUTE_UNUSED,
21298 : rtx_insn *insn ATTRIBUTE_UNUSED,
21299 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21300 : {
21301 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21302 : rtx x2, x3, x4;
21303 : int res ATTRIBUTE_UNUSED;
21304 : x2 = XEXP (x1, 0);
21305 : operands[0] = x2;
21306 : x3 = XEXP (x1, 1);
21307 : x4 = XEXP (x3, 0);
21308 : operands[1] = x4;
21309 : switch (GET_MODE (operands[0]))
21310 : {
21311 : case E_V64QImode:
21312 : if (!register_operand (operands[0], E_V64QImode)
21313 : || GET_MODE (x3) != E_V64QImode
21314 : || !vector_operand (operands[1], E_V64QImode)
21315 : || !(
21316 : #line 23706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21317 : (TARGET_SSSE3) &&
21318 : #line 23696 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21319 : (TARGET_AVX512BW)))
21320 : return -1;
21321 : return 8692; /* *absv64qi2 */
21322 :
21323 : case E_V32QImode:
21324 : if (!register_operand (operands[0], E_V32QImode)
21325 : || GET_MODE (x3) != E_V32QImode
21326 : || !vector_operand (operands[1], E_V32QImode)
21327 : || !(
21328 : #line 23706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21329 : (TARGET_SSSE3) &&
21330 : #line 23696 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21331 : (TARGET_AVX2)))
21332 : return -1;
21333 : return 8693; /* *absv32qi2 */
21334 :
21335 : case E_V16QImode:
21336 : if (!register_operand (operands[0], E_V16QImode)
21337 : || GET_MODE (x3) != E_V16QImode
21338 : || !vector_operand (operands[1], E_V16QImode)
21339 : || !
21340 : #line 23706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21341 : (TARGET_SSSE3))
21342 : return -1;
21343 : return 8694; /* *absv16qi2 */
21344 :
21345 : case E_V32HImode:
21346 : if (!register_operand (operands[0], E_V32HImode)
21347 : || GET_MODE (x3) != E_V32HImode
21348 : || !vector_operand (operands[1], E_V32HImode)
21349 : || !(
21350 : #line 23706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21351 : (TARGET_SSSE3) &&
21352 : #line 23697 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21353 : (TARGET_AVX512BW)))
21354 : return -1;
21355 : return 8695; /* *absv32hi2 */
21356 :
21357 : case E_V16HImode:
21358 : if (!register_operand (operands[0], E_V16HImode)
21359 : || GET_MODE (x3) != E_V16HImode
21360 : || !vector_operand (operands[1], E_V16HImode)
21361 : || !(
21362 : #line 23706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21363 : (TARGET_SSSE3) &&
21364 : #line 23697 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21365 : (TARGET_AVX2)))
21366 : return -1;
21367 : return 8696; /* *absv16hi2 */
21368 :
21369 : case E_V8HImode:
21370 : if (!register_operand (operands[0], E_V8HImode)
21371 : || GET_MODE (x3) != E_V8HImode
21372 : || !vector_operand (operands[1], E_V8HImode)
21373 : || !
21374 : #line 23706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21375 : (TARGET_SSSE3))
21376 : return -1;
21377 : return 8697; /* *absv8hi2 */
21378 :
21379 : case E_V16SImode:
21380 : if (!register_operand (operands[0], E_V16SImode)
21381 : || GET_MODE (x3) != E_V16SImode
21382 : || !vector_operand (operands[1], E_V16SImode)
21383 : || !(
21384 : #line 23706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21385 : (TARGET_SSSE3) &&
21386 : #line 23698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21387 : (TARGET_AVX512F)))
21388 : return -1;
21389 : return 8698; /* *absv16si2 */
21390 :
21391 : case E_V8SImode:
21392 : if (!register_operand (operands[0], E_V8SImode)
21393 : || GET_MODE (x3) != E_V8SImode
21394 : || !vector_operand (operands[1], E_V8SImode)
21395 : || !(
21396 : #line 23706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21397 : (TARGET_SSSE3) &&
21398 : #line 23698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21399 : (TARGET_AVX2)))
21400 : return -1;
21401 : return 8699; /* *absv8si2 */
21402 :
21403 : case E_V4SImode:
21404 : if (!register_operand (operands[0], E_V4SImode)
21405 : || GET_MODE (x3) != E_V4SImode
21406 : || !vector_operand (operands[1], E_V4SImode)
21407 : || !
21408 : #line 23706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21409 : (TARGET_SSSE3))
21410 : return -1;
21411 : return 8700; /* *absv4si2 */
21412 :
21413 : case E_V8DImode:
21414 : if (!register_operand (operands[0], E_V8DImode)
21415 : || GET_MODE (x3) != E_V8DImode
21416 : || !vector_operand (operands[1], E_V8DImode)
21417 : || !(
21418 : #line 23706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21419 : (TARGET_SSSE3) &&
21420 : #line 23699 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21421 : (TARGET_AVX512F)))
21422 : return -1;
21423 : return 8701; /* *absv8di2 */
21424 :
21425 : case E_V4DImode:
21426 : if (!register_operand (operands[0], E_V4DImode)
21427 : || GET_MODE (x3) != E_V4DImode
21428 : || !vector_operand (operands[1], E_V4DImode)
21429 : || !(
21430 : #line 23706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21431 : (TARGET_SSSE3) &&
21432 : #line 23699 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21433 : (TARGET_AVX512VL)))
21434 : return -1;
21435 : return 8702; /* *absv4di2 */
21436 :
21437 : case E_V2DImode:
21438 : if (!register_operand (operands[0], E_V2DImode)
21439 : || GET_MODE (x3) != E_V2DImode
21440 : || !vector_operand (operands[1], E_V2DImode)
21441 : || !(
21442 : #line 23706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21443 : (TARGET_SSSE3) &&
21444 : #line 23700 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21445 : (TARGET_AVX512VL)))
21446 : return -1;
21447 : return 8703; /* *absv2di2 */
21448 :
21449 : default:
21450 : return -1;
21451 : }
21452 : }
21453 :
21454 : int
21455 : recog_344 (rtx x1 ATTRIBUTE_UNUSED,
21456 : rtx_insn *insn ATTRIBUTE_UNUSED,
21457 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21458 : {
21459 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21460 : rtx x2, x3, x4, x5;
21461 : int res ATTRIBUTE_UNUSED;
21462 : x2 = XEXP (x1, 0);
21463 : operands[0] = x2;
21464 : x3 = XEXP (x1, 1);
21465 : switch (GET_CODE (x3))
21466 : {
21467 : case NE:
21468 : case EQ:
21469 : case GE:
21470 : case GT:
21471 : case LE:
21472 : case LT:
21473 : case LTGT:
21474 : case UNORDERED:
21475 : case ORDERED:
21476 : case UNEQ:
21477 : case UNGE:
21478 : case UNGT:
21479 : case UNLE:
21480 : case UNLT:
21481 : res = recog_276 (x1, insn, pnum_clobbers);
21482 : if (res >= 0)
21483 : return res;
21484 : break;
21485 :
21486 : default:
21487 : break;
21488 : }
21489 : switch (GET_CODE (x3))
21490 : {
21491 : case LT:
21492 : switch (pattern203 (x3))
21493 : {
21494 : case 0:
21495 : if ((
21496 : #line 17452 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21497 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
21498 : #line 736 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21499 : (TARGET_AVX2)))
21500 : return 7659; /* *ashrv16hi3_1 */
21501 : break;
21502 :
21503 : case 1:
21504 : if (
21505 : #line 17452 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21506 : (TARGET_SSE2 && ix86_pre_reload_split ()))
21507 : return 7660; /* *ashrv8hi3_1 */
21508 : break;
21509 :
21510 : case 2:
21511 : if ((
21512 : #line 17452 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21513 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
21514 : #line 737 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21515 : (TARGET_AVX2)))
21516 : return 7661; /* *ashrv8si3_1 */
21517 : break;
21518 :
21519 : case 3:
21520 : if (
21521 : #line 17452 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21522 : (TARGET_SSE2 && ix86_pre_reload_split ()))
21523 : return 7662; /* *ashrv4si3_1 */
21524 : break;
21525 :
21526 : default:
21527 : break;
21528 : }
21529 : break;
21530 :
21531 : case EQ:
21532 : res = recog_277 (x1, insn, pnum_clobbers);
21533 : if (res >= 0)
21534 : return res;
21535 : break;
21536 :
21537 : case GT:
21538 : x4 = XEXP (x3, 0);
21539 : operands[1] = x4;
21540 : x5 = XEXP (x3, 1);
21541 : operands[2] = x5;
21542 : switch (GET_MODE (operands[0]))
21543 : {
21544 : case E_V2DImode:
21545 : if (pattern680 (x3,
21546 : E_V2DImode) == 0
21547 : &&
21548 : #line 18594 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21549 : (TARGET_SSE4_2))
21550 : return 7993; /* sse4_2_gtv2di3 */
21551 : break;
21552 :
21553 : case E_V32QImode:
21554 : if (pattern12 (x3,
21555 : E_V32QImode) == 0
21556 : &&
21557 : #line 18611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21558 : (TARGET_AVX2))
21559 : return 7994; /* avx2_gtv32qi3 */
21560 : break;
21561 :
21562 : case E_V16HImode:
21563 : if (pattern12 (x3,
21564 : E_V16HImode) == 0
21565 : &&
21566 : #line 18611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21567 : (TARGET_AVX2))
21568 : return 7995; /* avx2_gtv16hi3 */
21569 : break;
21570 :
21571 : case E_V8SImode:
21572 : if (pattern12 (x3,
21573 : E_V8SImode) == 0
21574 : &&
21575 : #line 18611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21576 : (TARGET_AVX2))
21577 : return 7996; /* avx2_gtv8si3 */
21578 : break;
21579 :
21580 : case E_V4DImode:
21581 : if (pattern12 (x3,
21582 : E_V4DImode) == 0
21583 : &&
21584 : #line 18611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21585 : (TARGET_AVX2))
21586 : return 7997; /* avx2_gtv4di3 */
21587 : break;
21588 :
21589 : case E_V16QImode:
21590 : if (pattern680 (x3,
21591 : E_V16QImode) == 0
21592 : &&
21593 : #line 18643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21594 : (TARGET_SSE2))
21595 : return 7998; /* *sse2_gtv16qi3 */
21596 : break;
21597 :
21598 : case E_V8HImode:
21599 : if (pattern680 (x3,
21600 : E_V8HImode) == 0
21601 : &&
21602 : #line 18643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21603 : (TARGET_SSE2))
21604 : return 7999; /* *sse2_gtv8hi3 */
21605 : break;
21606 :
21607 : case E_V4SImode:
21608 : if (pattern680 (x3,
21609 : E_V4SImode) == 0
21610 : &&
21611 : #line 18643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21612 : (TARGET_SSE2))
21613 : return 8000; /* *sse2_gtv4si3 */
21614 : break;
21615 :
21616 : default:
21617 : break;
21618 : }
21619 : break;
21620 :
21621 : default:
21622 : break;
21623 : }
21624 : operands[1] = x3;
21625 : x4 = XEXP (x3, 0);
21626 : operands[2] = x4;
21627 : x5 = XEXP (x3, 1);
21628 : operands[3] = x5;
21629 : switch (GET_CODE (operands[1]))
21630 : {
21631 : case NE:
21632 : case EQ:
21633 : case GE:
21634 : case GT:
21635 : case LE:
21636 : case LT:
21637 : switch (GET_MODE (operands[0]))
21638 : {
21639 : case E_V16QImode:
21640 : if (pattern804 (
21641 : E_V16QImode) == 0
21642 : &&
21643 : #line 27719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21644 : (TARGET_XOP))
21645 : return 9116; /* xop_maskcmpv16qi3 */
21646 : break;
21647 :
21648 : case E_V8HImode:
21649 : if (pattern804 (
21650 : E_V8HImode) == 0
21651 : &&
21652 : #line 27719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21653 : (TARGET_XOP))
21654 : return 9117; /* xop_maskcmpv8hi3 */
21655 : break;
21656 :
21657 : case E_V4SImode:
21658 : if (pattern804 (
21659 : E_V4SImode) == 0
21660 : &&
21661 : #line 27719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21662 : (TARGET_XOP))
21663 : return 9118; /* xop_maskcmpv4si3 */
21664 : break;
21665 :
21666 : case E_V2DImode:
21667 : if (pattern804 (
21668 : E_V2DImode) == 0
21669 : &&
21670 : #line 27719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21671 : (TARGET_XOP))
21672 : return 9119; /* xop_maskcmpv2di3 */
21673 : break;
21674 :
21675 : default:
21676 : break;
21677 : }
21678 : break;
21679 :
21680 : default:
21681 : break;
21682 : }
21683 : switch (GET_CODE (operands[1]))
21684 : {
21685 : case NE:
21686 : case EQ:
21687 : case GEU:
21688 : case GTU:
21689 : case LEU:
21690 : case LTU:
21691 : switch (GET_MODE (operands[0]))
21692 : {
21693 : case E_V16QImode:
21694 : if (pattern805 (
21695 : E_V16QImode) != 0
21696 : || !
21697 : #line 27729 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21698 : (TARGET_XOP))
21699 : return -1;
21700 : return 9120; /* xop_maskcmp_unsv16qi3 */
21701 :
21702 : case E_V8HImode:
21703 : if (pattern805 (
21704 : E_V8HImode) != 0
21705 : || !
21706 : #line 27729 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21707 : (TARGET_XOP))
21708 : return -1;
21709 : return 9121; /* xop_maskcmp_unsv8hi3 */
21710 :
21711 : case E_V4SImode:
21712 : if (pattern805 (
21713 : E_V4SImode) != 0
21714 : || !
21715 : #line 27729 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21716 : (TARGET_XOP))
21717 : return -1;
21718 : return 9122; /* xop_maskcmp_unsv4si3 */
21719 :
21720 : case E_V2DImode:
21721 : if (pattern805 (
21722 : E_V2DImode) != 0
21723 : || !
21724 : #line 27729 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21725 : (TARGET_XOP))
21726 : return -1;
21727 : return 9123; /* xop_maskcmp_unsv2di3 */
21728 :
21729 : default:
21730 : return -1;
21731 : }
21732 :
21733 : default:
21734 : return -1;
21735 : }
21736 : }
21737 :
21738 : int
21739 : recog_350 (rtx x1 ATTRIBUTE_UNUSED,
21740 : rtx_insn *insn ATTRIBUTE_UNUSED,
21741 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21742 : {
21743 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21744 : int res ATTRIBUTE_UNUSED;
21745 : switch (pattern29 (x1))
21746 : {
21747 : case 0:
21748 : if (!(
21749 : #line 8212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21750 : (TARGET_AVX512FP16) &&
21751 : #line 687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21752 : (TARGET_AVX512VL)))
21753 : return -1;
21754 : return 4652; /* avx512fp16_fix_truncv8hi2 */
21755 :
21756 : case 1:
21757 : if (!(
21758 : #line 8212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21759 : (TARGET_AVX512FP16) &&
21760 : #line 687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21761 : (TARGET_AVX512VL)))
21762 : return -1;
21763 : return 4660; /* avx512fp16_fix_truncv16hi2 */
21764 :
21765 : case 2:
21766 : if (!
21767 : #line 8212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21768 : (TARGET_AVX512FP16))
21769 : return -1;
21770 : return 4668; /* avx512fp16_fix_truncv32hi2 */
21771 :
21772 : case 3:
21773 : switch (GET_MODE (operands[1]))
21774 : {
21775 : case E_V8HFmode:
21776 : if (!vector_operand (operands[1], E_V8HFmode)
21777 : || !(
21778 : #line 8212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21779 : (TARGET_AVX512FP16) &&
21780 : #line 688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21781 : (TARGET_AVX512VL)))
21782 : return -1;
21783 : return 4676; /* avx512fp16_fix_truncv8si2 */
21784 :
21785 : case E_V8SFmode:
21786 : if (!nonimmediate_operand (operands[1], E_V8SFmode)
21787 : || !
21788 : #line 9126 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21789 : (TARGET_AVX && 1))
21790 : return -1;
21791 : return 4928; /* fix_truncv8sfv8si2 */
21792 :
21793 : case E_V8DFmode:
21794 : if (!vector_operand (operands[1], E_V8DFmode)
21795 : || !
21796 : #line 9900 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21797 : (TARGET_AVX512F))
21798 : return -1;
21799 : return 5067; /* fix_truncv8dfv8si2 */
21800 :
21801 : default:
21802 : return -1;
21803 : }
21804 :
21805 : case 4:
21806 : if (!
21807 : #line 8212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21808 : (TARGET_AVX512FP16))
21809 : return -1;
21810 : return 4684; /* avx512fp16_fix_truncv16si2 */
21811 :
21812 : case 5:
21813 : if (!
21814 : #line 9107 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21815 : (TARGET_AVX512F))
21816 : return -1;
21817 : return 4918; /* fix_truncv16sfv16si2 */
21818 :
21819 : case 6:
21820 : if (!
21821 : #line 8212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21822 : (TARGET_AVX512FP16))
21823 : return -1;
21824 : return 4692; /* avx512fp16_fix_truncv8di2 */
21825 :
21826 : case 7:
21827 : if (!
21828 : #line 10029 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21829 : (TARGET_AVX512DQ && 1))
21830 : return -1;
21831 : return 5104; /* fix_truncv8dfv8di2 */
21832 :
21833 : case 8:
21834 : if (!
21835 : #line 10072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21836 : (TARGET_AVX512DQ && 1))
21837 : return -1;
21838 : return 5148; /* fix_truncv8sfv8di2 */
21839 :
21840 : case 9:
21841 : switch (GET_MODE (operands[1]))
21842 : {
21843 : case E_V4HFmode:
21844 : if (!memory_operand (operands[1], E_V4HFmode)
21845 : || !
21846 : #line 8262 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21847 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
21848 : return -1;
21849 : return 4716; /* *avx512fp16_fix_truncv4si2_load */
21850 :
21851 : case E_V4SFmode:
21852 : if (!vector_operand (operands[1], E_V4SFmode)
21853 : || !
21854 : #line 9156 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21855 : (TARGET_SSE2 && 1))
21856 : return -1;
21857 : return 4932; /* fix_truncv4sfv4si2 */
21858 :
21859 : case E_V4DFmode:
21860 : if (!nonimmediate_operand (operands[1], E_V4DFmode)
21861 : || !
21862 : #line 9989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21863 : (TARGET_AVX || (TARGET_AVX512VL && TARGET_AVX512F)))
21864 : return -1;
21865 : return 5082; /* fix_truncv4dfv4si2 */
21866 :
21867 : default:
21868 : return -1;
21869 : }
21870 :
21871 : case 10:
21872 : if (!
21873 : #line 8262 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21874 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
21875 : return -1;
21876 : return 4720; /* *avx512fp16_fix_truncv4di2_load */
21877 :
21878 : case 11:
21879 : if (!(
21880 : #line 10029 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21881 : (TARGET_AVX512DQ && 1) &&
21882 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21883 : (TARGET_AVX512VL)))
21884 : return -1;
21885 : return 5112; /* fix_truncv4dfv4di2 */
21886 :
21887 : case 12:
21888 : if (!(
21889 : #line 10072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21890 : (TARGET_AVX512DQ && 1) &&
21891 : #line 620 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21892 : (TARGET_AVX512VL)))
21893 : return -1;
21894 : return 5156; /* fix_truncv4sfv4di2 */
21895 :
21896 : case 13:
21897 : if (!
21898 : #line 8312 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21899 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
21900 : return -1;
21901 : return 4732; /* *avx512fp16_fix_truncv2di2_load */
21902 :
21903 : case 14:
21904 : if (!(
21905 : #line 10029 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21906 : (TARGET_AVX512DQ && 1) &&
21907 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21908 : (TARGET_AVX512VL)))
21909 : return -1;
21910 : return 5116; /* fix_truncv2dfv2di2 */
21911 :
21912 : case 15:
21913 : if (!
21914 : #line 8252 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21915 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
21916 : return -1;
21917 : return 4708; /* avx512fp16_fix_truncv4si2 */
21918 :
21919 : case 16:
21920 : if (!
21921 : #line 8252 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21922 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
21923 : return -1;
21924 : return 4712; /* avx512fp16_fix_truncv4di2 */
21925 :
21926 : case 17:
21927 : if (!
21928 : #line 8302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21929 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
21930 : return -1;
21931 : return 4728; /* avx512fp16_fix_truncv2di2 */
21932 :
21933 : case 18:
21934 : if (!
21935 : #line 10095 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21936 : (TARGET_AVX512DQ && TARGET_AVX512VL))
21937 : return -1;
21938 : return 5164; /* avx512dq_fix_truncv2sfv2di2 */
21939 :
21940 : default:
21941 : return -1;
21942 : }
21943 : }
21944 :
21945 : int
21946 : recog_355 (rtx x1 ATTRIBUTE_UNUSED,
21947 : rtx_insn *insn ATTRIBUTE_UNUSED,
21948 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21949 : {
21950 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21951 : rtx x2, x3, x4;
21952 : int res ATTRIBUTE_UNUSED;
21953 : x2 = XEXP (x1, 0);
21954 : operands[0] = x2;
21955 : x3 = XEXP (x1, 1);
21956 : x4 = XEXP (x3, 0);
21957 : operands[1] = x4;
21958 : switch (GET_MODE (operands[0]))
21959 : {
21960 : case E_V16SImode:
21961 : if (!register_operand (operands[0], E_V16SImode)
21962 : || GET_MODE (x3) != E_V16SImode
21963 : || !nonimmediate_operand (operands[1], E_V16SImode)
21964 : || !
21965 : #line 30636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21966 : (TARGET_AVX512CD))
21967 : return -1;
21968 : return 10134; /* clzv16si2 */
21969 :
21970 : case E_V8SImode:
21971 : if (!register_operand (operands[0], E_V8SImode)
21972 : || GET_MODE (x3) != E_V8SImode
21973 : || !nonimmediate_operand (operands[1], E_V8SImode)
21974 : || !(
21975 : #line 30636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21976 : (TARGET_AVX512CD) &&
21977 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21978 : (TARGET_AVX512VL)))
21979 : return -1;
21980 : return 10136; /* clzv8si2 */
21981 :
21982 : case E_V4SImode:
21983 : if (!register_operand (operands[0], E_V4SImode)
21984 : || GET_MODE (x3) != E_V4SImode
21985 : || !nonimmediate_operand (operands[1], E_V4SImode)
21986 : || !(
21987 : #line 30636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21988 : (TARGET_AVX512CD) &&
21989 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21990 : (TARGET_AVX512VL)))
21991 : return -1;
21992 : return 10138; /* clzv4si2 */
21993 :
21994 : case E_V8DImode:
21995 : if (!register_operand (operands[0], E_V8DImode)
21996 : || GET_MODE (x3) != E_V8DImode
21997 : || !nonimmediate_operand (operands[1], E_V8DImode)
21998 : || !
21999 : #line 30636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22000 : (TARGET_AVX512CD))
22001 : return -1;
22002 : return 10140; /* clzv8di2 */
22003 :
22004 : case E_V4DImode:
22005 : if (!register_operand (operands[0], E_V4DImode)
22006 : || GET_MODE (x3) != E_V4DImode
22007 : || !nonimmediate_operand (operands[1], E_V4DImode)
22008 : || !(
22009 : #line 30636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22010 : (TARGET_AVX512CD) &&
22011 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22012 : (TARGET_AVX512VL)))
22013 : return -1;
22014 : return 10142; /* clzv4di2 */
22015 :
22016 : case E_V2DImode:
22017 : if (!register_operand (operands[0], E_V2DImode)
22018 : || GET_MODE (x3) != E_V2DImode
22019 : || !nonimmediate_operand (operands[1], E_V2DImode)
22020 : || !(
22021 : #line 30636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22022 : (TARGET_AVX512CD) &&
22023 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22024 : (TARGET_AVX512VL)))
22025 : return -1;
22026 : return 10144; /* clzv2di2 */
22027 :
22028 : default:
22029 : return -1;
22030 : }
22031 : }
22032 :
22033 : int
22034 : recog_361 (rtx x1 ATTRIBUTE_UNUSED,
22035 : rtx_insn *insn ATTRIBUTE_UNUSED,
22036 : int *pnum_clobbers ATTRIBUTE_UNUSED)
22037 : {
22038 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
22039 : rtx x2, x3;
22040 : int res ATTRIBUTE_UNUSED;
22041 : switch (pattern8 (x1, pnum_clobbers))
22042 : {
22043 : case 0:
22044 : if (!(
22045 : #line 27359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22046 : (TARGET_CMOVE
22047 : && ix86_pre_reload_split ()) &&
22048 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22049 : (TARGET_64BIT)))
22050 : return -1;
22051 : *pnum_clobbers = 1;
22052 : return 1872; /* *uminti3_doubleword */
22053 :
22054 : case 1:
22055 : if (!
22056 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22057 : (TARGET_CMOVE
22058 : && (QImode != QImode || !TARGET_PARTIAL_REG_STALL)
22059 : && ix86_pre_reload_split ()))
22060 : return -1;
22061 : *pnum_clobbers = 1;
22062 : return 1876; /* *uminqi3_1 */
22063 :
22064 : case 2:
22065 : if (!
22066 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22067 : (TARGET_CMOVE
22068 : && (HImode != QImode || !TARGET_PARTIAL_REG_STALL)
22069 : && ix86_pre_reload_split ()))
22070 : return -1;
22071 : *pnum_clobbers = 1;
22072 : return 1880; /* *uminhi3_1 */
22073 :
22074 : case 3:
22075 : if (!
22076 : #line 3765 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
22077 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
22078 : return -1;
22079 : return 2238; /* uminv4hi3 */
22080 :
22081 : case 4:
22082 : if (!
22083 : #line 3765 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
22084 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
22085 : return -1;
22086 : return 2240; /* uminv2si3 */
22087 :
22088 : case 5:
22089 : if (!
22090 : #line 3790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
22091 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
22092 : && (TARGET_SSE || TARGET_3DNOW_A)
22093 : && ix86_binary_operator_ok (UMIN, V8QImode, operands)))
22094 : return -1;
22095 : return 2242; /* *mmx_uminv8qi3 */
22096 :
22097 : case 6:
22098 : if (!
22099 : #line 3814 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
22100 : (TARGET_SSE2))
22101 : return -1;
22102 : return 2244; /* uminv4qi3 */
22103 :
22104 : case 7:
22105 : if (!
22106 : #line 3814 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
22107 : (TARGET_SSE2))
22108 : return -1;
22109 : return 2246; /* uminv2qi3 */
22110 :
22111 : case 8:
22112 : if (!
22113 : #line 3827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
22114 : (TARGET_SSE4_1))
22115 : return -1;
22116 : return 2248; /* uminv2hi3 */
22117 :
22118 : case 9:
22119 : x2 = XEXP (x1, 1);
22120 : x3 = XEXP (x2, 1);
22121 : if (rtx_equal_p (x3, operands[1])
22122 : &&
22123 : #line 27598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22124 : (TARGET_CMOVE
22125 : && ix86_pre_reload_split ()))
22126 : {
22127 : *pnum_clobbers = 1;
22128 : return 1891; /* *plus_within_uminhi3_1 */
22129 : }
22130 : if (!rtx_equal_p (x3, operands[2])
22131 : || !
22132 : #line 27598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22133 : (TARGET_CMOVE
22134 : && ix86_pre_reload_split ()))
22135 : return -1;
22136 : *pnum_clobbers = 1;
22137 : return 1892; /* *plus_within_uminhi3_2 */
22138 :
22139 : case 10:
22140 : if (!
22141 : #line 27631 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22142 : (TARGET_CMOVE
22143 : && ix86_pre_reload_split ()))
22144 : return -1;
22145 : *pnum_clobbers = 1;
22146 : return 1902; /* *minus_within_uminhi3 */
22147 :
22148 : default:
22149 : return -1;
22150 : }
22151 : }
22152 :
22153 : int
22154 : recog_367 (rtx x1 ATTRIBUTE_UNUSED,
22155 : rtx_insn *insn ATTRIBUTE_UNUSED,
22156 : int *pnum_clobbers ATTRIBUTE_UNUSED)
22157 : {
22158 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
22159 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
22160 : int res ATTRIBUTE_UNUSED;
22161 : switch (pattern343 (x1))
22162 : {
22163 : case 0:
22164 : x2 = XVECEXP (x1, 0, 0);
22165 : x3 = XEXP (x2, 0);
22166 : operands[0] = x3;
22167 : switch (pattern821 (x1))
22168 : {
22169 : case 0:
22170 : if ((
22171 : #line 16918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22172 : (((INTVAL (operands[3]) & (4 * BITS_PER_UNIT)) == 0
22173 : || ((INTVAL (operands[3]) & (2 * 4 * BITS_PER_UNIT - 1))
22174 : == (2 * 4 * BITS_PER_UNIT - 1)))
22175 : && ix86_pre_reload_split ()) &&
22176 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22177 : (!TARGET_64BIT)))
22178 : return 1154; /* *lshrdi3_doubleword_mask */
22179 : break;
22180 :
22181 : case 1:
22182 : if ((
22183 : #line 16918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22184 : (((INTVAL (operands[3]) & (8 * BITS_PER_UNIT)) == 0
22185 : || ((INTVAL (operands[3]) & (2 * 8 * BITS_PER_UNIT - 1))
22186 : == (2 * 8 * BITS_PER_UNIT - 1)))
22187 : && ix86_pre_reload_split ()) &&
22188 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22189 : (TARGET_64BIT)))
22190 : return 1156; /* *lshrti3_doubleword_mask */
22191 : break;
22192 :
22193 : case 2:
22194 : if ((
22195 : #line 2291 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22196 : (TARGET_AVX512F) &&
22197 : #line 2093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22198 : (TARGET_AVX512DQ)))
22199 : return 2665; /* klshiftrtqi */
22200 : break;
22201 :
22202 : case 3:
22203 : if (
22204 : #line 2291 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22205 : (TARGET_AVX512F))
22206 : return 2667; /* klshiftrthi */
22207 : break;
22208 :
22209 : case 4:
22210 : if ((
22211 : #line 2291 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22212 : (TARGET_AVX512F) &&
22213 : #line 2093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22214 : (TARGET_AVX512BW)))
22215 : return 2669; /* klshiftrtsi */
22216 : break;
22217 :
22218 : case 5:
22219 : if ((
22220 : #line 2291 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22221 : (TARGET_AVX512F) &&
22222 : #line 2093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22223 : (TARGET_AVX512BW)))
22224 : return 2671; /* klshiftrtdi */
22225 : break;
22226 :
22227 : default:
22228 : break;
22229 : }
22230 : x4 = XEXP (x2, 1);
22231 : x5 = XEXP (x4, 1);
22232 : operands[2] = x5;
22233 : switch (pattern822 (x1))
22234 : {
22235 : case 0:
22236 : operands[0] = x3;
22237 : switch (GET_MODE (operands[0]))
22238 : {
22239 : case E_DImode:
22240 : if (register_operand (operands[0], E_DImode)
22241 : && GET_MODE (x4) == E_DImode
22242 : && register_operand (operands[1], E_DImode)
22243 : &&
22244 : #line 1196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22245 : (!TARGET_64BIT))
22246 : return 1162; /* lshrdi3_doubleword */
22247 : break;
22248 :
22249 : case E_TImode:
22250 : if (register_operand (operands[0], E_TImode)
22251 : && GET_MODE (x4) == E_TImode
22252 : && register_operand (operands[1], E_TImode)
22253 : &&
22254 : #line 1197 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22255 : (TARGET_64BIT))
22256 : return 1164; /* lshrti3_doubleword */
22257 : break;
22258 :
22259 : case E_SImode:
22260 : if (nonimmediate_operand (operands[0], E_SImode)
22261 : && GET_MODE (x4) == E_SImode
22262 : && nonimmediate_operand (operands[1], E_SImode)
22263 : &&
22264 : #line 17721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22265 : (ix86_binary_operator_ok (LSHIFTRT, SImode, operands, TARGET_APX_NDD)
22266 : && true))
22267 : return 1213; /* *lshrsi3_1 */
22268 : break;
22269 :
22270 : case E_QImode:
22271 : if (nonimmediate_operand (operands[0], E_QImode)
22272 : && GET_MODE (x4) == E_QImode
22273 : && nonimmediate_operand (operands[1], E_QImode)
22274 : &&
22275 : #line 17897 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22276 : (ix86_binary_operator_ok (LSHIFTRT, QImode, operands, TARGET_APX_NDD)
22277 : && true))
22278 : return 1245; /* *lshrqi3_1 */
22279 : break;
22280 :
22281 : case E_HImode:
22282 : if (nonimmediate_operand (operands[0], E_HImode)
22283 : && GET_MODE (x4) == E_HImode
22284 : && nonimmediate_operand (operands[1], E_HImode)
22285 : &&
22286 : #line 17935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22287 : (ix86_binary_operator_ok (LSHIFTRT, HImode, operands, TARGET_APX_NDD)
22288 : && true))
22289 : return 1247; /* *lshrhi3_1 */
22290 : break;
22291 :
22292 : case E_V2QImode:
22293 : if (register_operand (operands[0], E_V2QImode)
22294 : && GET_MODE (x4) == E_V2QImode
22295 : && register_operand (operands[1], E_V2QImode)
22296 : &&
22297 : #line 4035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
22298 : (!TARGET_PARTIAL_REG_STALL || optimize_size))
22299 : return 2272; /* lshrv2qi3 */
22300 : break;
22301 :
22302 : default:
22303 : break;
22304 : }
22305 : break;
22306 :
22307 : case 1:
22308 : x6 = XEXP (x3, 0);
22309 : operands[0] = x6;
22310 : switch (pattern377 (x4))
22311 : {
22312 : case 0:
22313 : if (
22314 : #line 17974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22315 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
22316 : return 1248; /* *lshrqi3_1_slp */
22317 : break;
22318 :
22319 : case 1:
22320 : if (
22321 : #line 17974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22322 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
22323 : return 1250; /* *lshrhi3_1_slp */
22324 : break;
22325 :
22326 : default:
22327 : break;
22328 : }
22329 : break;
22330 :
22331 : default:
22332 : break;
22333 : }
22334 : x7 = XVECEXP (x1, 0, 1);
22335 : if (GET_CODE (x7) != CLOBBER)
22336 : return -1;
22337 : x8 = XEXP (x7, 0);
22338 : if (GET_CODE (x8) != REG
22339 : || REGNO (x8) != 17
22340 : || GET_MODE (x8) != E_CCmode)
22341 : return -1;
22342 : switch (GET_CODE (x5))
22343 : {
22344 : case CONST_INT:
22345 : if (pattern1241 (x2) == 0
22346 : && GET_MODE (x4) == E_DImode
22347 : && nonimmediate_operand (operands[1], E_DImode)
22348 : &&
22349 : #line 17697 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22350 : (TARGET_64BIT))
22351 : return 1211; /* *highpartdisi2 */
22352 : break;
22353 :
22354 : case SUBREG:
22355 : switch (pattern1244 (x2,
22356 : E_SImode))
22357 : {
22358 : case 0:
22359 : if (
22360 : #line 18174 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22361 : (ix86_binary_operator_ok (LSHIFTRT, SImode, operands)
22362 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
22363 : == 4 * BITS_PER_UNIT - 1
22364 : && ix86_pre_reload_split ()))
22365 : return 1277; /* *lshrsi3_mask */
22366 : break;
22367 :
22368 : case 1:
22369 : if (
22370 : #line 18222 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22371 : (ix86_binary_operator_ok (LSHIFTRT, SImode, operands)
22372 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
22373 : && ix86_pre_reload_split ()))
22374 : return 1289; /* *lshrsi3_add */
22375 : break;
22376 :
22377 : case 2:
22378 : if (
22379 : #line 18268 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22380 : (ix86_binary_operator_ok (LSHIFTRT, SImode, operands)
22381 : && ((INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
22382 : || (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
22383 : == 4 * BITS_PER_UNIT - 1)
22384 : && ix86_pre_reload_split ()))
22385 : return 1301; /* *lshrsi3_sub */
22386 : break;
22387 :
22388 : default:
22389 : break;
22390 : }
22391 : break;
22392 :
22393 : default:
22394 : break;
22395 : }
22396 : operands[0] = x3;
22397 : if (!nonimmediate_operand (operands[0], E_DImode)
22398 : || GET_MODE (x4) != E_DImode
22399 : || !nonimmediate_operand (operands[1], E_DImode))
22400 : return -1;
22401 : operands[2] = x5;
22402 : if (nonmemory_operand (operands[2], E_QImode)
22403 : && (
22404 : #line 17721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22405 : (ix86_binary_operator_ok (LSHIFTRT, DImode, operands, TARGET_APX_NDD)
22406 : && true) &&
22407 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22408 : (TARGET_64BIT)))
22409 : return 1215; /* *lshrdi3_1 */
22410 : if (GET_CODE (x5) != SUBREG
22411 : || maybe_ne (SUBREG_BYTE (x5), 0)
22412 : || GET_MODE (x5) != E_QImode)
22413 : return -1;
22414 : x9 = XEXP (x5, 0);
22415 : switch (pattern1242 (x9))
22416 : {
22417 : case 0:
22418 : if (!(
22419 : #line 18174 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22420 : (ix86_binary_operator_ok (LSHIFTRT, DImode, operands)
22421 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
22422 : == 8 * BITS_PER_UNIT - 1
22423 : && ix86_pre_reload_split ()) &&
22424 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22425 : (TARGET_64BIT)))
22426 : return -1;
22427 : return 1280; /* *lshrdi3_mask */
22428 :
22429 : case 1:
22430 : if (!(
22431 : #line 18222 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22432 : (ix86_binary_operator_ok (LSHIFTRT, DImode, operands)
22433 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
22434 : && ix86_pre_reload_split ()) &&
22435 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22436 : (TARGET_64BIT)))
22437 : return -1;
22438 : return 1292; /* *lshrdi3_add */
22439 :
22440 : case 2:
22441 : if (!(
22442 : #line 18268 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22443 : (ix86_binary_operator_ok (LSHIFTRT, DImode, operands)
22444 : && ((INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
22445 : || (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
22446 : == 8 * BITS_PER_UNIT - 1)
22447 : && ix86_pre_reload_split ()) &&
22448 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22449 : (TARGET_64BIT)))
22450 : return -1;
22451 : return 1304; /* *lshrdi3_sub */
22452 :
22453 : default:
22454 : return -1;
22455 : }
22456 :
22457 : case 1:
22458 : if (register_operand (operands[0], E_DImode)
22459 : && register_operand (operands[1], E_DImode)
22460 : && (
22461 : #line 16979 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22462 : (((INTVAL (operands[3]) & (4 * BITS_PER_UNIT)) == 0
22463 : || ((INTVAL (operands[3]) & (2 * 4 * BITS_PER_UNIT - 1))
22464 : == (2 * 4 * BITS_PER_UNIT - 1)))
22465 : && ix86_pre_reload_split ()) &&
22466 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22467 : (!TARGET_64BIT)))
22468 : return 1158; /* *lshrdi3_doubleword_mask_1 */
22469 : if (!nonimmediate_operand (operands[0], E_DImode)
22470 : || !nonimmediate_operand (operands[1], E_DImode)
22471 : || !(
22472 : #line 18199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22473 : (ix86_binary_operator_ok (LSHIFTRT, DImode, operands)
22474 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
22475 : == 8 * BITS_PER_UNIT - 1
22476 : && ix86_pre_reload_split ()) &&
22477 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22478 : (TARGET_64BIT)))
22479 : return -1;
22480 : return 1286; /* *lshrdi3_mask_1 */
22481 :
22482 : case 2:
22483 : if (!(
22484 : #line 16979 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22485 : (((INTVAL (operands[3]) & (8 * BITS_PER_UNIT)) == 0
22486 : || ((INTVAL (operands[3]) & (2 * 8 * BITS_PER_UNIT - 1))
22487 : == (2 * 8 * BITS_PER_UNIT - 1)))
22488 : && ix86_pre_reload_split ()) &&
22489 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22490 : (TARGET_64BIT)))
22491 : return -1;
22492 : return 1160; /* *lshrti3_doubleword_mask_1 */
22493 :
22494 : case 3:
22495 : if (!
22496 : #line 18199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22497 : (ix86_binary_operator_ok (LSHIFTRT, SImode, operands)
22498 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
22499 : == 4 * BITS_PER_UNIT - 1
22500 : && ix86_pre_reload_split ()))
22501 : return -1;
22502 : return 1283; /* *lshrsi3_mask_1 */
22503 :
22504 : case 4:
22505 : if (!
22506 : #line 18246 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22507 : (ix86_binary_operator_ok (LSHIFTRT, SImode, operands)
22508 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
22509 : && ix86_pre_reload_split ()))
22510 : return -1;
22511 : return 1295; /* *lshrsi3_add_1 */
22512 :
22513 : case 5:
22514 : if (!(
22515 : #line 18246 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22516 : (ix86_binary_operator_ok (LSHIFTRT, DImode, operands)
22517 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
22518 : && ix86_pre_reload_split ()) &&
22519 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22520 : (TARGET_64BIT)))
22521 : return -1;
22522 : return 1298; /* *lshrdi3_add_1 */
22523 :
22524 : case 6:
22525 : if (!
22526 : #line 18301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22527 : (ix86_binary_operator_ok (LSHIFTRT, SImode, operands)
22528 : && ((INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
22529 : || (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
22530 : == 4 * BITS_PER_UNIT - 1)
22531 : && ix86_pre_reload_split ()))
22532 : return -1;
22533 : return 1307; /* *lshrsi3_sub_1 */
22534 :
22535 : case 7:
22536 : if (!(
22537 : #line 18301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22538 : (ix86_binary_operator_ok (LSHIFTRT, DImode, operands)
22539 : && ((INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
22540 : || (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
22541 : == 8 * BITS_PER_UNIT - 1)
22542 : && ix86_pre_reload_split ()) &&
22543 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22544 : (TARGET_64BIT)))
22545 : return -1;
22546 : return 1310; /* *lshrdi3_sub_1 */
22547 :
22548 : default:
22549 : return -1;
22550 : }
22551 : }
22552 :
22553 : int
22554 : recog_381 (rtx x1 ATTRIBUTE_UNUSED,
22555 : rtx_insn *insn ATTRIBUTE_UNUSED,
22556 : int *pnum_clobbers ATTRIBUTE_UNUSED)
22557 : {
22558 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
22559 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
22560 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
22561 : int res ATTRIBUTE_UNUSED;
22562 : x2 = XVECEXP (x1, 0, 0);
22563 : x3 = XEXP (x2, 1);
22564 : x4 = XEXP (x3, 0);
22565 : switch (GET_CODE (x4))
22566 : {
22567 : case REG:
22568 : case SUBREG:
22569 : case MEM:
22570 : operands[1] = x4;
22571 : if (pattern344 (x1) != 0)
22572 : return -1;
22573 : switch (pattern1162 (x3))
22574 : {
22575 : case 0:
22576 : if (!
22577 : #line 4850 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22578 : (TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)))
22579 : return -1;
22580 : return 182; /* zero_extendqisi2_and */
22581 :
22582 : case 1:
22583 : if (!
22584 : #line 4850 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22585 : (TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)))
22586 : return -1;
22587 : return 183; /* zero_extendhisi2_and */
22588 :
22589 : case 2:
22590 : if (!
22591 : #line 4904 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22592 : (TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)))
22593 : return -1;
22594 : return 186; /* zero_extendqihi2_and */
22595 :
22596 : default:
22597 : return -1;
22598 : }
22599 :
22600 : case PLUS:
22601 : return recog_379 (x1, insn, pnum_clobbers);
22602 :
22603 : case MINUS:
22604 : return recog_380 (x1, insn, pnum_clobbers);
22605 :
22606 : case MULT:
22607 : if (pattern345 (x1) != 0)
22608 : return -1;
22609 : switch (GET_MODE (operands[0]))
22610 : {
22611 : case E_SImode:
22612 : if (!register_operand (operands[0], E_SImode)
22613 : || GET_MODE (x3) != E_SImode
22614 : || GET_MODE (x4) != E_HImode
22615 : || !nonimmediate_operand (operands[1], E_HImode)
22616 : || !immediate_operand (operands[2], E_HImode)
22617 : || !
22618 : #line 10986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22619 : (TARGET_APX_ZU && true))
22620 : return -1;
22621 : return 625; /* *imulhisizu */
22622 :
22623 : case E_DImode:
22624 : if (!register_operand (operands[0], E_DImode)
22625 : || GET_MODE (x3) != E_DImode)
22626 : return -1;
22627 : switch (GET_MODE (x4))
22628 : {
22629 : case E_HImode:
22630 : if (!nonimmediate_operand (operands[1], E_HImode)
22631 : || !immediate_operand (operands[2], E_HImode)
22632 : || !
22633 : #line 10986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22634 : (TARGET_APX_ZU && true))
22635 : return -1;
22636 : return 627; /* *imulhidizu */
22637 :
22638 : case E_SImode:
22639 : if (!nonimmediate_operand (operands[1], E_SImode)
22640 : || !x86_64_general_operand (operands[2], E_SImode)
22641 : || !
22642 : #line 10998 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22643 : (TARGET_64BIT
22644 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
22645 : && true))
22646 : return -1;
22647 : return 629; /* *mulsi3_1_zext */
22648 :
22649 : default:
22650 : return -1;
22651 : }
22652 :
22653 : default:
22654 : return -1;
22655 : }
22656 :
22657 : case DIV:
22658 : if (pattern346 (x1, pnum_clobbers,
22659 : MOD) != 0)
22660 : return -1;
22661 : x5 = XEXP (x4, 0);
22662 : operands[2] = x5;
22663 : if (!register_operand (operands[2], E_SImode))
22664 : return -1;
22665 : x6 = XEXP (x4, 1);
22666 : operands[3] = x6;
22667 : if (!nonimmediate_operand (operands[3], E_SImode))
22668 : return -1;
22669 : x7 = XVECEXP (x1, 0, 1);
22670 : x8 = XEXP (x7, 0);
22671 : operands[1] = x8;
22672 : if (!register_operand (operands[1], E_SImode))
22673 : return -1;
22674 : x9 = XEXP (x7, 1);
22675 : x10 = XEXP (x9, 0);
22676 : if (!rtx_equal_p (x10, operands[2]))
22677 : return -1;
22678 : x11 = XEXP (x9, 1);
22679 : if (!rtx_equal_p (x11, operands[3])
22680 : || !
22681 : #line 12027 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22682 : (TARGET_64BIT))
22683 : return -1;
22684 : *pnum_clobbers = 1;
22685 : return 683; /* *divmodsi4_zext_1 */
22686 :
22687 : case UDIV:
22688 : if (pattern346 (x1, pnum_clobbers,
22689 : UMOD) != 0)
22690 : return -1;
22691 : x5 = XEXP (x4, 0);
22692 : operands[2] = x5;
22693 : if (!register_operand (operands[2], E_SImode))
22694 : return -1;
22695 : x6 = XEXP (x4, 1);
22696 : operands[3] = x6;
22697 : x7 = XVECEXP (x1, 0, 1);
22698 : x8 = XEXP (x7, 0);
22699 : operands[1] = x8;
22700 : if (!register_operand (operands[1], E_SImode))
22701 : return -1;
22702 : x9 = XEXP (x7, 1);
22703 : switch (pattern1635 (x9))
22704 : {
22705 : case 0:
22706 : if (!
22707 : #line 12062 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22708 : (TARGET_64BIT))
22709 : return -1;
22710 : *pnum_clobbers = 1;
22711 : return 684; /* *udivmodsi4_zext_1 */
22712 :
22713 : case 1:
22714 : if (!
22715 : #line 12084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22716 : (TARGET_64BIT
22717 : && IN_RANGE (exact_log2 (UINTVAL (operands[3])), 1, 31)))
22718 : return -1;
22719 : *pnum_clobbers = 1;
22720 : return 685; /* *udivmodsi4_pow2_zext_1 */
22721 :
22722 : default:
22723 : return -1;
22724 : }
22725 :
22726 : case MOD:
22727 : if (pattern347 (x1, pnum_clobbers,
22728 : DIV) != 0)
22729 : return -1;
22730 : x5 = XEXP (x4, 0);
22731 : operands[2] = x5;
22732 : if (!register_operand (operands[2], E_SImode))
22733 : return -1;
22734 : x6 = XEXP (x4, 1);
22735 : operands[3] = x6;
22736 : if (!nonimmediate_operand (operands[3], E_SImode))
22737 : return -1;
22738 : x7 = XVECEXP (x1, 0, 1);
22739 : x8 = XEXP (x7, 0);
22740 : operands[0] = x8;
22741 : if (!register_operand (operands[0], E_SImode))
22742 : return -1;
22743 : x9 = XEXP (x7, 1);
22744 : x10 = XEXP (x9, 0);
22745 : if (!rtx_equal_p (x10, operands[2]))
22746 : return -1;
22747 : x11 = XEXP (x9, 1);
22748 : if (!rtx_equal_p (x11, operands[3])
22749 : || !
22750 : #line 12110 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22751 : (TARGET_64BIT))
22752 : return -1;
22753 : *pnum_clobbers = 1;
22754 : return 686; /* *divmodsi4_zext_2 */
22755 :
22756 : case UMOD:
22757 : if (pattern347 (x1, pnum_clobbers,
22758 : UDIV) != 0)
22759 : return -1;
22760 : x5 = XEXP (x4, 0);
22761 : operands[2] = x5;
22762 : if (!register_operand (operands[2], E_SImode))
22763 : return -1;
22764 : x6 = XEXP (x4, 1);
22765 : operands[3] = x6;
22766 : x7 = XVECEXP (x1, 0, 1);
22767 : x8 = XEXP (x7, 0);
22768 : operands[0] = x8;
22769 : if (!register_operand (operands[0], E_SImode))
22770 : return -1;
22771 : x9 = XEXP (x7, 1);
22772 : switch (pattern1635 (x9))
22773 : {
22774 : case 0:
22775 : if (!
22776 : #line 12146 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22777 : (TARGET_64BIT))
22778 : return -1;
22779 : *pnum_clobbers = 1;
22780 : return 687; /* *udivmodsi4_zext_2 */
22781 :
22782 : case 1:
22783 : if (!
22784 : #line 12168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22785 : (TARGET_64BIT
22786 : && IN_RANGE (exact_log2 (UINTVAL (operands[3])), 1, 31)))
22787 : return -1;
22788 : *pnum_clobbers = 1;
22789 : return 688; /* *udivmodsi4_pow2_zext_2 */
22790 :
22791 : default:
22792 : return -1;
22793 : }
22794 :
22795 : case AND:
22796 : if (pattern344 (x1) != 0)
22797 : return -1;
22798 : x5 = XEXP (x4, 0);
22799 : switch (GET_CODE (x5))
22800 : {
22801 : case REG:
22802 : case SUBREG:
22803 : case MEM:
22804 : switch (pattern1049 (x3))
22805 : {
22806 : case 0:
22807 : if (!
22808 : #line 12968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22809 : (TARGET_APX_NDD && true
22810 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22811 : return -1;
22812 : return 737; /* *andqi_1_zexthi */
22813 :
22814 : case 1:
22815 : if (!
22816 : #line 12968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22817 : (TARGET_APX_NDD && true
22818 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22819 : return -1;
22820 : return 739; /* *andqi_1_zextsi */
22821 :
22822 : case 2:
22823 : if (!
22824 : #line 12982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22825 : (TARGET_APX_NDD && true
22826 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22827 : return -1;
22828 : return 743; /* *andhi_1_zextsi */
22829 :
22830 : case 3:
22831 : if (!
22832 : #line 12968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22833 : (TARGET_APX_NDD && true
22834 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22835 : return -1;
22836 : return 741; /* *andqi_1_zextdi */
22837 :
22838 : case 4:
22839 : if (!
22840 : #line 12982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22841 : (TARGET_APX_NDD && true
22842 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22843 : return -1;
22844 : return 745; /* *andhi_1_zextdi */
22845 :
22846 : case 5:
22847 : if (!
22848 : #line 12998 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22849 : (TARGET_64BIT
22850 : && ix86_binary_operator_ok (AND, SImode, operands, TARGET_APX_NDD)))
22851 : return -1;
22852 : return 746; /* *andsi_1_zext */
22853 :
22854 : default:
22855 : return -1;
22856 : }
22857 :
22858 : case PLUS:
22859 : if (pattern704 (x5) != 0
22860 : || !register_operand (operands[0], E_DImode)
22861 : || GET_MODE (x3) != E_DImode
22862 : || GET_MODE (x4) != E_SImode)
22863 : return -1;
22864 : x12 = XEXP (x5, 0);
22865 : x13 = XEXP (x12, 1);
22866 : operands[2] = x13;
22867 : if (!register_operand (operands[2], E_QImode))
22868 : return -1;
22869 : x6 = XEXP (x4, 1);
22870 : operands[1] = x6;
22871 : if (!nonimmediate_operand (operands[1], E_SImode)
22872 : || !
22873 : #line 22472 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22874 : (TARGET_64BIT && TARGET_BMI2))
22875 : return -1;
22876 : return 1632; /* *bmi2_bzhi_zero_extendsidi_4 */
22877 :
22878 : default:
22879 : return -1;
22880 : }
22881 :
22882 : case IOR:
22883 : if (pattern348 (x1) != 0)
22884 : return -1;
22885 : switch (pattern1049 (x3))
22886 : {
22887 : case 0:
22888 : if (!
22889 : #line 14035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22890 : (TARGET_APX_NDD && true
22891 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22892 : return -1;
22893 : return 872; /* *iorqi_1_zexthi */
22894 :
22895 : case 1:
22896 : if (!
22897 : #line 14035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22898 : (TARGET_APX_NDD && true
22899 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22900 : return -1;
22901 : return 876; /* *iorqi_1_zextsi */
22902 :
22903 : case 2:
22904 : if (!
22905 : #line 14049 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22906 : (TARGET_APX_NDD && true
22907 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22908 : return -1;
22909 : return 884; /* *iorhi_1_zextsi */
22910 :
22911 : case 3:
22912 : if (!
22913 : #line 14035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22914 : (TARGET_APX_NDD && true
22915 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22916 : return -1;
22917 : return 880; /* *iorqi_1_zextdi */
22918 :
22919 : case 4:
22920 : if (!
22921 : #line 14049 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22922 : (TARGET_APX_NDD && true
22923 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22924 : return -1;
22925 : return 888; /* *iorhi_1_zextdi */
22926 :
22927 : case 5:
22928 : if (!
22929 : #line 14065 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22930 : (TARGET_64BIT
22931 : && ix86_binary_operator_ok (IOR, SImode, operands, TARGET_APX_NDD)))
22932 : return -1;
22933 : return 891; /* *iorsi_1_zext */
22934 :
22935 : default:
22936 : return -1;
22937 : }
22938 :
22939 : case XOR:
22940 : if (pattern344 (x1) != 0)
22941 : return -1;
22942 : x5 = XEXP (x4, 0);
22943 : switch (GET_CODE (x5))
22944 : {
22945 : case REG:
22946 : case SUBREG:
22947 : case MEM:
22948 : switch (pattern1049 (x3))
22949 : {
22950 : case 0:
22951 : if (!
22952 : #line 14035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22953 : (TARGET_APX_NDD && true
22954 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22955 : return -1;
22956 : return 874; /* *xorqi_1_zexthi */
22957 :
22958 : case 1:
22959 : if (!
22960 : #line 14035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22961 : (TARGET_APX_NDD && true
22962 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22963 : return -1;
22964 : return 878; /* *xorqi_1_zextsi */
22965 :
22966 : case 2:
22967 : if (!
22968 : #line 14049 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22969 : (TARGET_APX_NDD && true
22970 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22971 : return -1;
22972 : return 886; /* *xorhi_1_zextsi */
22973 :
22974 : case 3:
22975 : if (!
22976 : #line 14035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22977 : (TARGET_APX_NDD && true
22978 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22979 : return -1;
22980 : return 882; /* *xorqi_1_zextdi */
22981 :
22982 : case 4:
22983 : if (!
22984 : #line 14049 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22985 : (TARGET_APX_NDD && true
22986 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22987 : return -1;
22988 : return 890; /* *xorhi_1_zextdi */
22989 :
22990 : case 5:
22991 : if (!
22992 : #line 14065 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22993 : (TARGET_64BIT
22994 : && ix86_binary_operator_ok (XOR, SImode, operands, TARGET_APX_NDD)))
22995 : return -1;
22996 : return 892; /* *xorsi_1_zext */
22997 :
22998 : default:
22999 : return -1;
23000 : }
23001 :
23002 : case MINUS:
23003 : if (pattern1166 (x4) != 0
23004 : || !register_operand (operands[0], E_DImode)
23005 : || GET_MODE (x3) != E_DImode
23006 : || GET_MODE (x4) != E_SImode)
23007 : return -1;
23008 : x14 = XEXP (x5, 1);
23009 : x15 = XEXP (x14, 0);
23010 : operands[1] = x15;
23011 : if (!nonimmediate_operand (operands[1], E_SImode)
23012 : || !
23013 : #line 21705 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23014 : (!TARGET_LZCNT && TARGET_64BIT && ix86_pre_reload_split ()))
23015 : return -1;
23016 : return 1565; /* *bsru_2 */
23017 :
23018 : default:
23019 : return -1;
23020 : }
23021 :
23022 : case NEG:
23023 : if (pattern349 (x1) != 0)
23024 : return -1;
23025 : switch (pattern351 (x3))
23026 : {
23027 : case 0:
23028 : if (!
23029 : #line 14696 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23030 : (TARGET_APX_NDD && true))
23031 : return -1;
23032 : return 995; /* *negqi_1_zexthi */
23033 :
23034 : case 1:
23035 : if (!
23036 : #line 14696 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23037 : (TARGET_APX_NDD && true))
23038 : return -1;
23039 : return 997; /* *negqi_1_zextsi */
23040 :
23041 : case 2:
23042 : if (!
23043 : #line 14706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23044 : (TARGET_APX_NDD && true))
23045 : return -1;
23046 : return 1001; /* *neghi_1_zextsi */
23047 :
23048 : case 3:
23049 : if (!
23050 : #line 14696 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23051 : (TARGET_APX_NDD && true))
23052 : return -1;
23053 : return 999; /* *negqi_1_zextdi */
23054 :
23055 : case 4:
23056 : if (!
23057 : #line 14706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23058 : (TARGET_APX_NDD && true))
23059 : return -1;
23060 : return 1003; /* *neghi_1_zextdi */
23061 :
23062 : case 5:
23063 : if (!
23064 : #line 14717 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23065 : (TARGET_64BIT
23066 : && ix86_unary_operator_ok (NEG, SImode, operands, TARGET_APX_NDD)))
23067 : return -1;
23068 : return 1004; /* *negsi_1_zext */
23069 :
23070 : default:
23071 : return -1;
23072 : }
23073 :
23074 : case ASHIFT:
23075 : switch (pattern353 (x1))
23076 : {
23077 : case 0:
23078 : if (!
23079 : #line 16346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23080 : (TARGET_APX_NDD && true))
23081 : return -1;
23082 : return 1126; /* *ashlqi3_1_zexthi */
23083 :
23084 : case 1:
23085 : if (!
23086 : #line 16346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23087 : (TARGET_APX_NDD && true))
23088 : return -1;
23089 : return 1128; /* *ashlqi3_1_zextsi */
23090 :
23091 : case 2:
23092 : if (!
23093 : #line 16357 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23094 : (TARGET_APX_NDD && true))
23095 : return -1;
23096 : return 1132; /* *ashlhi3_1_zextsi */
23097 :
23098 : case 3:
23099 : if (!
23100 : #line 16346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23101 : (TARGET_APX_NDD && true))
23102 : return -1;
23103 : return 1130; /* *ashlqi3_1_zextdi */
23104 :
23105 : case 4:
23106 : if (!
23107 : #line 16357 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23108 : (TARGET_APX_NDD && true))
23109 : return -1;
23110 : return 1134; /* *ashlhi3_1_zextdi */
23111 :
23112 : case 5:
23113 : if (!
23114 : #line 16369 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23115 : (TARGET_64BIT
23116 : && ix86_binary_operator_ok (ASHIFT, SImode, operands, TARGET_APX_NDD)))
23117 : return -1;
23118 : return 1135; /* *ashlsi3_1_zext */
23119 :
23120 : default:
23121 : return -1;
23122 : }
23123 :
23124 : case ASHIFTRT:
23125 : if (pattern345 (x1) != 0)
23126 : return -1;
23127 : switch (GET_MODE (operands[0]))
23128 : {
23129 : case E_DImode:
23130 : if (!register_operand (operands[0], E_DImode)
23131 : || GET_MODE (x3) != E_DImode)
23132 : return -1;
23133 : switch (GET_MODE (x4))
23134 : {
23135 : case E_SImode:
23136 : if (!nonimmediate_operand (operands[1], E_SImode))
23137 : return -1;
23138 : if (const_int_operand (operands[2], E_QImode)
23139 : &&
23140 : #line 17602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23141 : (TARGET_64BIT && INTVAL (operands[2]) == 31
23142 : && (TARGET_USE_CLTD || optimize_function_for_size_p (cfun))
23143 : && ix86_binary_operator_ok (ASHIFTRT, SImode, operands, TARGET_APX_NDD)))
23144 : return 1202; /* *ashrsi3_cvt_zext */
23145 : if (!nonmemory_operand (operands[2], E_QImode)
23146 : || !
23147 : #line 17814 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23148 : (TARGET_64BIT
23149 : && ix86_binary_operator_ok (ASHIFTRT, SImode, operands, TARGET_APX_NDD)))
23150 : return -1;
23151 : return 1239; /* *ashrsi3_1_zext */
23152 :
23153 : case E_QImode:
23154 : if (!nonimmediate_operand (operands[1], E_QImode)
23155 : || !nonmemory_operand (operands[2], E_QImode)
23156 : || !
23157 : #line 17791 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23158 : (TARGET_APX_NDD && true))
23159 : return -1;
23160 : return 1229; /* *ashrqi3_1_zextdi */
23161 :
23162 : case E_HImode:
23163 : if (!nonimmediate_operand (operands[1], E_HImode)
23164 : || !nonmemory_operand (operands[2], E_QImode)
23165 : || !
23166 : #line 17802 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23167 : (TARGET_APX_NDD && true))
23168 : return -1;
23169 : return 1237; /* *ashrhi3_1_zextdi */
23170 :
23171 : default:
23172 : return -1;
23173 : }
23174 :
23175 : case E_HImode:
23176 : if (!register_operand (operands[0], E_HImode)
23177 : || GET_MODE (x3) != E_HImode
23178 : || GET_MODE (x4) != E_QImode
23179 : || !nonimmediate_operand (operands[1], E_QImode)
23180 : || !nonmemory_operand (operands[2], E_QImode)
23181 : || !
23182 : #line 17791 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23183 : (TARGET_APX_NDD && true))
23184 : return -1;
23185 : return 1221; /* *ashrqi3_1_zexthi */
23186 :
23187 : case E_SImode:
23188 : if (!register_operand (operands[0], E_SImode)
23189 : || GET_MODE (x3) != E_SImode
23190 : || !nonmemory_operand (operands[2], E_QImode))
23191 : return -1;
23192 : switch (GET_MODE (x4))
23193 : {
23194 : case E_QImode:
23195 : if (!nonimmediate_operand (operands[1], E_QImode)
23196 : || !
23197 : #line 17791 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23198 : (TARGET_APX_NDD && true))
23199 : return -1;
23200 : return 1225; /* *ashrqi3_1_zextsi */
23201 :
23202 : case E_HImode:
23203 : if (!nonimmediate_operand (operands[1], E_HImode)
23204 : || !
23205 : #line 17802 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23206 : (TARGET_APX_NDD && true))
23207 : return -1;
23208 : return 1233; /* *ashrhi3_1_zextsi */
23209 :
23210 : default:
23211 : return -1;
23212 : }
23213 :
23214 : default:
23215 : return -1;
23216 : }
23217 :
23218 : case LSHIFTRT:
23219 : x16 = XEXP (x2, 0);
23220 : operands[0] = x16;
23221 : x5 = XEXP (x4, 0);
23222 : operands[1] = x5;
23223 : x6 = XEXP (x4, 1);
23224 : operands[2] = x6;
23225 : x7 = XVECEXP (x1, 0, 1);
23226 : switch (GET_CODE (x7))
23227 : {
23228 : case CLOBBER:
23229 : x8 = XEXP (x7, 0);
23230 : if (GET_CODE (x8) != REG
23231 : || REGNO (x8) != 17
23232 : || GET_MODE (x8) != E_CCmode)
23233 : return -1;
23234 : switch (pattern352 (x3))
23235 : {
23236 : case 0:
23237 : if (!
23238 : #line 17791 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23239 : (TARGET_APX_NDD && true))
23240 : return -1;
23241 : return 1219; /* *lshrqi3_1_zexthi */
23242 :
23243 : case 1:
23244 : if (!
23245 : #line 17791 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23246 : (TARGET_APX_NDD && true))
23247 : return -1;
23248 : return 1223; /* *lshrqi3_1_zextsi */
23249 :
23250 : case 2:
23251 : if (!
23252 : #line 17802 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23253 : (TARGET_APX_NDD && true))
23254 : return -1;
23255 : return 1231; /* *lshrhi3_1_zextsi */
23256 :
23257 : case 3:
23258 : if (!
23259 : #line 17791 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23260 : (TARGET_APX_NDD && true))
23261 : return -1;
23262 : return 1227; /* *lshrqi3_1_zextdi */
23263 :
23264 : case 4:
23265 : if (!
23266 : #line 17802 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23267 : (TARGET_APX_NDD && true))
23268 : return -1;
23269 : return 1235; /* *lshrhi3_1_zextdi */
23270 :
23271 : case 5:
23272 : if (!
23273 : #line 17814 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23274 : (TARGET_64BIT
23275 : && ix86_binary_operator_ok (LSHIFTRT, SImode, operands, TARGET_APX_NDD)))
23276 : return -1;
23277 : return 1238; /* *lshrsi3_1_zext */
23278 :
23279 : default:
23280 : return -1;
23281 : }
23282 :
23283 : case UNSPEC:
23284 : if (XVECLEN (x7, 0) != 1
23285 : || XINT (x7, 1) != 175)
23286 : return -1;
23287 : x17 = XVECEXP (x7, 0, 0);
23288 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
23289 : || pattern1239 (x3,
23290 : E_SImode,
23291 : E_DImode) != 0
23292 : || !const_0_to_31_operand (operands[2], E_VOIDmode)
23293 : || !
23294 : #line 2330 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23295 : (TARGET_AVX512BW))
23296 : return -1;
23297 : return 2672; /* *klshrsi3_1_zext */
23298 :
23299 : default:
23300 : return -1;
23301 : }
23302 :
23303 : case ROTATE:
23304 : switch (pattern353 (x1))
23305 : {
23306 : case 0:
23307 : if (!
23308 : #line 18930 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23309 : (TARGET_APX_NDD && true))
23310 : return -1;
23311 : return 1384; /* *rotlqi3_1_zexthi */
23312 :
23313 : case 1:
23314 : if (!
23315 : #line 18930 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23316 : (TARGET_APX_NDD && true))
23317 : return -1;
23318 : return 1388; /* *rotlqi3_1_zextsi */
23319 :
23320 : case 2:
23321 : if (!
23322 : #line 18941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23323 : (TARGET_APX_NDD && true))
23324 : return -1;
23325 : return 1396; /* *rotlhi3_1_zextsi */
23326 :
23327 : case 3:
23328 : if (!
23329 : #line 18930 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23330 : (TARGET_APX_NDD && true))
23331 : return -1;
23332 : return 1392; /* *rotlqi3_1_zextdi */
23333 :
23334 : case 4:
23335 : if (!
23336 : #line 18941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23337 : (TARGET_APX_NDD && true))
23338 : return -1;
23339 : return 1400; /* *rotlhi3_1_zextdi */
23340 :
23341 : case 5:
23342 : if (!
23343 : #line 18953 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23344 : (TARGET_64BIT && ix86_binary_operator_ok (ROTATE, SImode, operands)))
23345 : return -1;
23346 : return 1403; /* *rotlsi3_1_zext */
23347 :
23348 : default:
23349 : return -1;
23350 : }
23351 :
23352 : case ROTATERT:
23353 : switch (pattern353 (x1))
23354 : {
23355 : case 0:
23356 : if (!
23357 : #line 18930 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23358 : (TARGET_APX_NDD && true))
23359 : return -1;
23360 : return 1386; /* *rotrqi3_1_zexthi */
23361 :
23362 : case 1:
23363 : if (!
23364 : #line 18930 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23365 : (TARGET_APX_NDD && true))
23366 : return -1;
23367 : return 1390; /* *rotrqi3_1_zextsi */
23368 :
23369 : case 2:
23370 : if (!
23371 : #line 18941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23372 : (TARGET_APX_NDD && true))
23373 : return -1;
23374 : return 1398; /* *rotrhi3_1_zextsi */
23375 :
23376 : case 3:
23377 : if (!
23378 : #line 18930 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23379 : (TARGET_APX_NDD && true))
23380 : return -1;
23381 : return 1394; /* *rotrqi3_1_zextdi */
23382 :
23383 : case 4:
23384 : if (!
23385 : #line 18941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23386 : (TARGET_APX_NDD && true))
23387 : return -1;
23388 : return 1402; /* *rotrhi3_1_zextdi */
23389 :
23390 : case 5:
23391 : if (!
23392 : #line 18953 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23393 : (TARGET_64BIT && ix86_binary_operator_ok (ROTATERT, SImode, operands)))
23394 : return -1;
23395 : return 1404; /* *rotrsi3_1_zext */
23396 :
23397 : default:
23398 : return -1;
23399 : }
23400 :
23401 : case CTZ:
23402 : if (GET_MODE (x4) != E_SImode)
23403 : return -1;
23404 : x16 = XEXP (x2, 0);
23405 : operands[0] = x16;
23406 : if (!register_operand (operands[0], E_DImode)
23407 : || GET_MODE (x3) != E_DImode)
23408 : return -1;
23409 : switch (pattern939 (x1, pnum_clobbers))
23410 : {
23411 : case 0:
23412 : if (!
23413 : #line 21532 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23414 : (TARGET_64BIT))
23415 : return -1;
23416 : return 1553; /* *ctzsidi2_uext */
23417 :
23418 : case 1:
23419 : if (!
23420 : #line 21572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23421 : (TARGET_64BIT))
23422 : return -1;
23423 : *pnum_clobbers = 1;
23424 : return 1555; /* *ctzsidi2_uext_falsedep */
23425 :
23426 : default:
23427 : return -1;
23428 : }
23429 :
23430 : case CLZ:
23431 : if (GET_MODE (x4) != E_SImode)
23432 : return -1;
23433 : x16 = XEXP (x2, 0);
23434 : operands[0] = x16;
23435 : if (!register_operand (operands[0], E_DImode)
23436 : || GET_MODE (x3) != E_DImode)
23437 : return -1;
23438 : switch (pattern557 (x1, pnum_clobbers))
23439 : {
23440 : case 0:
23441 : if (!nonimmediate_operand (operands[1], E_SImode)
23442 : || !
23443 : #line 21968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23444 : (TARGET_LZCNT && TARGET_64BIT))
23445 : return -1;
23446 : return 1577; /* *clzsi2_lzcnt_zext_2 */
23447 :
23448 : case 1:
23449 : x7 = XVECEXP (x1, 0, 1);
23450 : x17 = XVECEXP (x7, 0, 0);
23451 : switch (pattern1433 (x17))
23452 : {
23453 : case 0:
23454 : if (!
23455 : #line 21993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23456 : (TARGET_LZCNT))
23457 : return -1;
23458 : *pnum_clobbers = 1;
23459 : return 1578; /* *clzsi2_lzcnt_zext_2_falsedep */
23460 :
23461 : case 1:
23462 : if (!(
23463 : #line 21993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23464 : (TARGET_LZCNT) &&
23465 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23466 : (TARGET_64BIT)))
23467 : return -1;
23468 : *pnum_clobbers = 1;
23469 : return 1579; /* *clzsi2_lzcnt_zext_2_falsedep */
23470 :
23471 : default:
23472 : return -1;
23473 : }
23474 :
23475 : default:
23476 : return -1;
23477 : }
23478 :
23479 : case POPCOUNT:
23480 : x16 = XEXP (x2, 0);
23481 : operands[0] = x16;
23482 : switch (pattern557 (x1, pnum_clobbers))
23483 : {
23484 : case 0:
23485 : switch (GET_MODE (operands[0]))
23486 : {
23487 : case E_DImode:
23488 : if (pattern350 (x3,
23489 : E_SImode,
23490 : E_DImode) != 0
23491 : || !
23492 : #line 22805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23493 : (TARGET_POPCNT && TARGET_64BIT))
23494 : return -1;
23495 : return 1668; /* *popcountsi2_zext_2 */
23496 :
23497 : case E_SImode:
23498 : if (pattern350 (x3,
23499 : E_HImode,
23500 : E_SImode) != 0
23501 : || !
23502 : #line 22871 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23503 : (TARGET_POPCNT
23504 : && ix86_pre_reload_split ()))
23505 : return -1;
23506 : return 1671; /* *popcounthi2_2 */
23507 :
23508 : default:
23509 : return -1;
23510 : }
23511 :
23512 : case 1:
23513 : if (!register_operand (operands[0], E_DImode)
23514 : || GET_MODE (x3) != E_DImode
23515 : || GET_MODE (x4) != E_SImode
23516 : || !nonimmediate_operand (operands[1], E_SImode))
23517 : return -1;
23518 : x7 = XVECEXP (x1, 0, 1);
23519 : x17 = XVECEXP (x7, 0, 0);
23520 : operands[2] = x17;
23521 : if (!register_operand (operands[2], E_DImode)
23522 : || !
23523 : #line 22836 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23524 : (TARGET_POPCNT && TARGET_64BIT))
23525 : return -1;
23526 : *pnum_clobbers = 1;
23527 : return 1669; /* *popcountsi2_zext_2_falsedep */
23528 :
23529 : default:
23530 : return -1;
23531 : }
23532 :
23533 : case NOT:
23534 : if (GET_MODE (x4) != E_SImode)
23535 : return -1;
23536 : x7 = XVECEXP (x1, 0, 1);
23537 : if (pattern384 (x7,
23538 : 175,
23539 : 0) != 0)
23540 : return -1;
23541 : x16 = XEXP (x2, 0);
23542 : operands[0] = x16;
23543 : if (!register_operand (operands[0], E_DImode)
23544 : || GET_MODE (x3) != E_DImode)
23545 : return -1;
23546 : x5 = XEXP (x4, 0);
23547 : operands[1] = x5;
23548 : if (!register_operand (operands[1], E_SImode)
23549 : || !
23550 : #line 2253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23551 : (TARGET_AVX512BW))
23552 : return -1;
23553 : return 2659; /* *knotsi_1_zext */
23554 :
23555 : case UNSPEC:
23556 : return recog_378 (x1, insn, pnum_clobbers);
23557 :
23558 : default:
23559 : return -1;
23560 : }
23561 : }
23562 :
23563 : int
23564 : recog_402 (rtx x1 ATTRIBUTE_UNUSED,
23565 : rtx_insn *insn ATTRIBUTE_UNUSED,
23566 : int *pnum_clobbers ATTRIBUTE_UNUSED)
23567 : {
23568 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
23569 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
23570 : int res ATTRIBUTE_UNUSED;
23571 : x2 = XVECEXP (x1, 0, 0);
23572 : x3 = XEXP (x2, 1);
23573 : x4 = XEXP (x3, 1);
23574 : switch (GET_CODE (x4))
23575 : {
23576 : case CONST_INT:
23577 : case CONST_WIDE_INT:
23578 : case CONST_POLY_INT:
23579 : case CONST_FIXED:
23580 : case CONST_DOUBLE:
23581 : case CONST_VECTOR:
23582 : case CONST:
23583 : case REG:
23584 : case SUBREG:
23585 : case MEM:
23586 : case LABEL_REF:
23587 : case SYMBOL_REF:
23588 : case HIGH:
23589 : operands[2] = x4;
23590 : res = recog_401 (x1, insn, pnum_clobbers);
23591 : if (res >= 0)
23592 : return res;
23593 : if (GET_CODE (x4) != SUBREG
23594 : || maybe_ne (SUBREG_BYTE (x4), 0)
23595 : || GET_MODE (x4) != E_QImode)
23596 : return -1;
23597 : x5 = XEXP (x4, 0);
23598 : switch (GET_CODE (x5))
23599 : {
23600 : case ASHIFTRT:
23601 : case LSHIFTRT:
23602 : case SIGN_EXTRACT:
23603 : case ZERO_EXTRACT:
23604 : operands[3] = x5;
23605 : x6 = XVECEXP (x1, 0, 1);
23606 : if (pattern236 (x6,
23607 : E_CCmode,
23608 : 17) != 0
23609 : || GET_MODE (x3) != E_QImode
23610 : || !nonimmediate_operand (operands[1], E_QImode))
23611 : return -1;
23612 : x7 = XEXP (x5, 0);
23613 : operands[2] = x7;
23614 : if (!int248_register_operand (operands[2], E_VOIDmode))
23615 : return -1;
23616 : x8 = XEXP (x2, 0);
23617 : switch (GET_CODE (x8))
23618 : {
23619 : case STRICT_LOW_PART:
23620 : x9 = XEXP (x8, 0);
23621 : operands[0] = x9;
23622 : if (!register_operand (operands[0], E_QImode))
23623 : return -1;
23624 : switch (pattern1784 ())
23625 : {
23626 : case 0:
23627 : if (!
23628 : #line 8246 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23629 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
23630 : return -1;
23631 : return 409; /* *subqi_exthi_1_slp */
23632 :
23633 : case 1:
23634 : if (!
23635 : #line 8246 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23636 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
23637 : return -1;
23638 : return 410; /* *subqi_extsi_1_slp */
23639 :
23640 : case 2:
23641 : if (!(
23642 : #line 8246 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23643 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
23644 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23645 : (TARGET_64BIT)))
23646 : return -1;
23647 : return 411; /* *subqi_extdi_1_slp */
23648 :
23649 : default:
23650 : return -1;
23651 : }
23652 :
23653 : case REG:
23654 : case SUBREG:
23655 : case MEM:
23656 : operands[0] = x8;
23657 : if (!nonimmediate_operand (operands[0], E_QImode))
23658 : return -1;
23659 : switch (pattern1784 ())
23660 : {
23661 : case 0:
23662 : return 420; /* *subqi_exthi_0 */
23663 :
23664 : case 1:
23665 : return 421; /* *subqi_extsi_0 */
23666 :
23667 : case 2:
23668 : if (!
23669 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23670 : (TARGET_64BIT))
23671 : return -1;
23672 : return 422; /* *subqi_extdi_0 */
23673 :
23674 : default:
23675 : return -1;
23676 : }
23677 :
23678 : default:
23679 : return -1;
23680 : }
23681 :
23682 : default:
23683 : return -1;
23684 : }
23685 :
23686 : case ZERO_EXTEND:
23687 : x6 = XVECEXP (x1, 0, 1);
23688 : if (pattern375 (x6) != 0)
23689 : return -1;
23690 : switch (pattern1175 (x2))
23691 : {
23692 : case 0:
23693 : if (!(
23694 : #line 8136 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23695 : (ix86_binary_operator_ok (UNKNOWN, DImode, operands, TARGET_APX_NDD)) &&
23696 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23697 : (!TARGET_64BIT)))
23698 : return -1;
23699 : return 386; /* *subdi3_doubleword_zext */
23700 :
23701 : case 1:
23702 : if (!(
23703 : #line 8136 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23704 : (ix86_binary_operator_ok (UNKNOWN, TImode, operands, TARGET_APX_NDD)) &&
23705 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23706 : (TARGET_64BIT)))
23707 : return -1;
23708 : return 387; /* *subti3_doubleword_zext */
23709 :
23710 : default:
23711 : return -1;
23712 : }
23713 :
23714 : case LTU:
23715 : case UNLT:
23716 : switch (pattern698 (x1))
23717 : {
23718 : case 0:
23719 : if (pattern1575 (x3,
23720 : E_QImode) != 0
23721 : || !
23722 : #line 9606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23723 : (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1])))
23724 : return -1;
23725 : return 511; /* *subqi3_carry_0 */
23726 :
23727 : case 1:
23728 : if (pattern1575 (x3,
23729 : E_HImode) != 0
23730 : || !
23731 : #line 9606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23732 : (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1])))
23733 : return -1;
23734 : return 512; /* *subhi3_carry_0 */
23735 :
23736 : case 2:
23737 : if (pattern1575 (x3,
23738 : E_SImode) != 0
23739 : || !
23740 : #line 9606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23741 : (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1])))
23742 : return -1;
23743 : return 513; /* *subsi3_carry_0 */
23744 :
23745 : case 3:
23746 : if (pattern1575 (x3,
23747 : E_DImode) != 0
23748 : || !(
23749 : #line 9606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23750 : (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1])) &&
23751 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23752 : (TARGET_64BIT)))
23753 : return -1;
23754 : return 514; /* *subdi3_carry_0 */
23755 :
23756 : default:
23757 : return -1;
23758 : }
23759 :
23760 : case GE:
23761 : case GEU:
23762 : switch (pattern698 (x1))
23763 : {
23764 : case 0:
23765 : if (pattern1576 (x3,
23766 : E_QImode) != 0
23767 : || !
23768 : #line 9640 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23769 : (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1])))
23770 : return -1;
23771 : return 519; /* *subqi3_carry_0r */
23772 :
23773 : case 1:
23774 : if (pattern1576 (x3,
23775 : E_HImode) != 0
23776 : || !
23777 : #line 9640 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23778 : (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1])))
23779 : return -1;
23780 : return 520; /* *subhi3_carry_0r */
23781 :
23782 : case 2:
23783 : if (pattern1576 (x3,
23784 : E_SImode) != 0
23785 : || !
23786 : #line 9640 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23787 : (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1])))
23788 : return -1;
23789 : return 521; /* *subsi3_carry_0r */
23790 :
23791 : case 3:
23792 : if (pattern1576 (x3,
23793 : E_DImode) != 0
23794 : || !(
23795 : #line 9640 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23796 : (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1])) &&
23797 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23798 : (TARGET_64BIT)))
23799 : return -1;
23800 : return 522; /* *subdi3_carry_0r */
23801 :
23802 : default:
23803 : return -1;
23804 : }
23805 :
23806 : case EQ:
23807 : switch (pattern702 (x1))
23808 : {
23809 : case 0:
23810 : if (!
23811 : #line 10650 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23812 : (ix86_unary_operator_ok (MINUS, QImode, operands)
23813 : && ix86_pre_reload_split ()))
23814 : return -1;
23815 : return 610; /* *subqi3_eq_0 */
23816 :
23817 : case 1:
23818 : if (!
23819 : #line 10650 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23820 : (ix86_unary_operator_ok (MINUS, HImode, operands)
23821 : && ix86_pre_reload_split ()))
23822 : return -1;
23823 : return 611; /* *subhi3_eq_0 */
23824 :
23825 : case 2:
23826 : if (!
23827 : #line 10650 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23828 : (ix86_unary_operator_ok (MINUS, SImode, operands)
23829 : && ix86_pre_reload_split ()))
23830 : return -1;
23831 : return 612; /* *subsi3_eq_0 */
23832 :
23833 : case 3:
23834 : if (!(
23835 : #line 10650 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23836 : (ix86_unary_operator_ok (MINUS, DImode, operands)
23837 : && ix86_pre_reload_split ()) &&
23838 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23839 : (TARGET_64BIT)))
23840 : return -1;
23841 : return 613; /* *subdi3_eq_0 */
23842 :
23843 : default:
23844 : return -1;
23845 : }
23846 :
23847 : case NE:
23848 : switch (pattern702 (x1))
23849 : {
23850 : case 0:
23851 : if (!
23852 : #line 10671 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23853 : (ix86_unary_operator_ok (MINUS, QImode, operands)
23854 : && ix86_pre_reload_split ()))
23855 : return -1;
23856 : return 614; /* *subqi3_ne_0 */
23857 :
23858 : case 1:
23859 : if (!
23860 : #line 10671 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23861 : (ix86_unary_operator_ok (MINUS, HImode, operands)
23862 : && ix86_pre_reload_split ()))
23863 : return -1;
23864 : return 615; /* *subhi3_ne_0 */
23865 :
23866 : case 2:
23867 : if (!
23868 : #line 10671 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23869 : (ix86_unary_operator_ok (MINUS, SImode, operands)
23870 : && ix86_pre_reload_split ()))
23871 : return -1;
23872 : return 616; /* *subsi3_ne_0 */
23873 :
23874 : case 3:
23875 : if (!(
23876 : #line 10671 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23877 : (ix86_unary_operator_ok (MINUS, DImode, operands)
23878 : && ix86_pre_reload_split ()) &&
23879 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23880 : (TARGET_64BIT)))
23881 : return -1;
23882 : return 617; /* *subdi3_ne_0 */
23883 :
23884 : default:
23885 : return -1;
23886 : }
23887 :
23888 : default:
23889 : return -1;
23890 : }
23891 : }
23892 :
23893 : int
23894 : recog_412 (rtx x1 ATTRIBUTE_UNUSED,
23895 : rtx_insn *insn ATTRIBUTE_UNUSED,
23896 : int *pnum_clobbers ATTRIBUTE_UNUSED)
23897 : {
23898 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
23899 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
23900 : rtx x10, x11;
23901 : int res ATTRIBUTE_UNUSED;
23902 : x2 = XVECEXP (x1, 0, 0);
23903 : x3 = XEXP (x2, 1);
23904 : x4 = XEXP (x3, 0);
23905 : switch (GET_CODE (x4))
23906 : {
23907 : case REG:
23908 : case SUBREG:
23909 : case MEM:
23910 : operands[1] = x4;
23911 : res = recog_410 (x1, insn, pnum_clobbers);
23912 : if (res >= 0)
23913 : return res;
23914 : if (GET_CODE (x4) != SUBREG
23915 : || maybe_ne (SUBREG_BYTE (x4), 0))
23916 : return -1;
23917 : x5 = XEXP (x4, 0);
23918 : switch (GET_CODE (x5))
23919 : {
23920 : case ASHIFTRT:
23921 : case LSHIFTRT:
23922 : case SIGN_EXTRACT:
23923 : case ZERO_EXTRACT:
23924 : operands[3] = x5;
23925 : x6 = XVECEXP (x1, 0, 1);
23926 : if (pattern236 (x6,
23927 : E_CCmode,
23928 : 17) != 0
23929 : || GET_MODE (x3) != E_QImode
23930 : || GET_MODE (x4) != E_QImode)
23931 : return -1;
23932 : x7 = XEXP (x5, 0);
23933 : operands[2] = x7;
23934 : switch (pattern1535 (x2))
23935 : {
23936 : case 0:
23937 : if (
23938 : #line 13108 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23939 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
23940 : return 759; /* *andqi_exthi_1_slp */
23941 : break;
23942 :
23943 : case 1:
23944 : if (
23945 : #line 13108 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23946 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
23947 : return 762; /* *andqi_extsi_1_slp */
23948 : break;
23949 :
23950 : case 2:
23951 : if ((
23952 : #line 13108 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23953 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
23954 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23955 : (TARGET_64BIT)))
23956 : return 765; /* *andqi_extdi_1_slp */
23957 : break;
23958 :
23959 : case 3:
23960 : return 783; /* *andqi_exthi_0 */
23961 :
23962 : case 4:
23963 : return 786; /* *andqi_extsi_0 */
23964 :
23965 : case 5:
23966 : if (
23967 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23968 : (TARGET_64BIT))
23969 : return 789; /* *andqi_extdi_0 */
23970 : break;
23971 :
23972 : default:
23973 : break;
23974 : }
23975 : x8 = XEXP (x3, 1);
23976 : if (GET_CODE (x8) != SUBREG)
23977 : return -1;
23978 : switch (pattern1536 (x2))
23979 : {
23980 : case 0:
23981 : if (!
23982 : #line 13137 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23983 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
23984 : return -1;
23985 : return 768; /* *andqi_exthi_2_slp */
23986 :
23987 : case 1:
23988 : if (!
23989 : #line 13137 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23990 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
23991 : return -1;
23992 : return 771; /* *andqi_extsi_2_slp */
23993 :
23994 : case 2:
23995 : if (!(
23996 : #line 13137 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23997 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
23998 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23999 : (TARGET_64BIT)))
24000 : return -1;
24001 : return 774; /* *andqi_extdi_2_slp */
24002 :
24003 : case 3:
24004 : return 792; /* *andqi_ext2hi_0 */
24005 :
24006 : case 4:
24007 : return 795; /* *andqi_ext2si_0 */
24008 :
24009 : case 5:
24010 : if (!
24011 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24012 : (TARGET_64BIT))
24013 : return -1;
24014 : return 798; /* *andqi_ext2di_0 */
24015 :
24016 : default:
24017 : return -1;
24018 : }
24019 :
24020 : case ROTATE:
24021 : if (GET_MODE (x5) != E_SImode)
24022 : return -1;
24023 : x7 = XEXP (x5, 0);
24024 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + -2])
24025 : return -1;
24026 : x6 = XVECEXP (x1, 0, 1);
24027 : if (pattern375 (x6) != 0)
24028 : return -1;
24029 : switch (pattern1443 (x2))
24030 : {
24031 : case 0:
24032 : if (!
24033 : #line 19302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24034 : (TARGET_USE_BT && ix86_pre_reload_split ()))
24035 : return -1;
24036 : return 1441; /* *btrqi_1 */
24037 :
24038 : case 1:
24039 : if (!
24040 : #line 19302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24041 : (TARGET_USE_BT && ix86_pre_reload_split ()))
24042 : return -1;
24043 : return 1442; /* *btrhi_1 */
24044 :
24045 : default:
24046 : return -1;
24047 : }
24048 :
24049 : case CTZ:
24050 : switch (pattern830 (x1, pnum_clobbers))
24051 : {
24052 : case 0:
24053 : if (!
24054 : #line 21489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24055 : (TARGET_BMI && TARGET_64BIT))
24056 : return -1;
24057 : return 1550; /* *ctzsi2_zext */
24058 :
24059 : case 1:
24060 : if (!
24061 : #line 21519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24062 : (TARGET_BMI && TARGET_64BIT))
24063 : return -1;
24064 : *pnum_clobbers = 1;
24065 : return 1551; /* *ctzsi2_zext_falsedep */
24066 :
24067 : default:
24068 : return -1;
24069 : }
24070 :
24071 : case CLZ:
24072 : if (GET_MODE (x5) != E_SImode)
24073 : return -1;
24074 : x8 = XEXP (x3, 1);
24075 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 63])
24076 : return -1;
24077 : x9 = XEXP (x2, 0);
24078 : operands[0] = x9;
24079 : if (!register_operand (operands[0], E_DImode)
24080 : || GET_MODE (x3) != E_DImode
24081 : || GET_MODE (x4) != E_DImode)
24082 : return -1;
24083 : x7 = XEXP (x5, 0);
24084 : operands[1] = x7;
24085 : x6 = XVECEXP (x1, 0, 1);
24086 : switch (pattern829 (x6, pnum_clobbers))
24087 : {
24088 : case 0:
24089 : if (!nonimmediate_operand (operands[1], E_SImode)
24090 : || !
24091 : #line 21929 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24092 : (TARGET_LZCNT && TARGET_64BIT))
24093 : return -1;
24094 : return 1574; /* *clzsi2_lzcnt_zext */
24095 :
24096 : case 1:
24097 : switch (GET_MODE (operands[1]))
24098 : {
24099 : case E_SImode:
24100 : if (!nonimmediate_operand (operands[1], E_SImode)
24101 : || !
24102 : #line 21957 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24103 : (TARGET_LZCNT))
24104 : return -1;
24105 : *pnum_clobbers = 1;
24106 : return 1575; /* *clzsi2_lzcnt_zext_falsedep */
24107 :
24108 : case E_DImode:
24109 : if (!nonimmediate_operand (operands[1], E_DImode)
24110 : || !(
24111 : #line 21957 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24112 : (TARGET_LZCNT) &&
24113 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24114 : (TARGET_64BIT)))
24115 : return -1;
24116 : *pnum_clobbers = 1;
24117 : return 1576; /* *clzsi2_lzcnt_zext_falsedep */
24118 :
24119 : default:
24120 : return -1;
24121 : }
24122 :
24123 : default:
24124 : return -1;
24125 : }
24126 :
24127 : case POPCOUNT:
24128 : switch (pattern830 (x1, pnum_clobbers))
24129 : {
24130 : case 0:
24131 : if (!
24132 : #line 22754 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24133 : (TARGET_POPCNT && TARGET_64BIT))
24134 : return -1;
24135 : return 1666; /* *popcountsi2_zext */
24136 :
24137 : case 1:
24138 : if (!
24139 : #line 22788 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24140 : (TARGET_POPCNT && TARGET_64BIT))
24141 : return -1;
24142 : *pnum_clobbers = 1;
24143 : return 1667; /* *popcountsi2_zext_falsedep */
24144 :
24145 : default:
24146 : return -1;
24147 : }
24148 :
24149 : default:
24150 : return -1;
24151 : }
24152 :
24153 : case NOT:
24154 : x9 = XEXP (x2, 0);
24155 : operands[0] = x9;
24156 : x5 = XEXP (x4, 0);
24157 : switch (GET_CODE (x5))
24158 : {
24159 : case REG:
24160 : case SUBREG:
24161 : operands[1] = x5;
24162 : res = recog_411 (x1, insn, pnum_clobbers);
24163 : if (res >= 0)
24164 : return res;
24165 : if (GET_CODE (x5) != SUBREG
24166 : || maybe_ne (SUBREG_BYTE (x5), 0)
24167 : || GET_MODE (x5) != E_QImode)
24168 : return -1;
24169 : x7 = XEXP (x5, 0);
24170 : if (GET_CODE (x7) != LSHIFTRT)
24171 : return -1;
24172 : x8 = XEXP (x3, 1);
24173 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
24174 : return -1;
24175 : x6 = XVECEXP (x1, 0, 1);
24176 : if (pattern236 (x6,
24177 : E_CCmode,
24178 : 17) != 0)
24179 : return -1;
24180 : switch (pattern1539 (x3))
24181 : {
24182 : case 0:
24183 : if (!
24184 : #line 19704 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24185 : (TARGET_USE_BT && ix86_pre_reload_split ()))
24186 : return -1;
24187 : return 1468; /* *btsi_setncqi */
24188 :
24189 : case 1:
24190 : if (!(
24191 : #line 19704 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24192 : (TARGET_USE_BT && ix86_pre_reload_split ()) &&
24193 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24194 : (TARGET_64BIT)))
24195 : return -1;
24196 : return 1469; /* *btdi_setncqi */
24197 :
24198 : default:
24199 : return -1;
24200 : }
24201 :
24202 : case LSHIFTRT:
24203 : x8 = XEXP (x3, 1);
24204 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
24205 : return -1;
24206 : x6 = XVECEXP (x1, 0, 1);
24207 : if (pattern236 (x6,
24208 : E_CCmode,
24209 : 17) != 0)
24210 : return -1;
24211 : switch (pattern1255 (x3))
24212 : {
24213 : case 0:
24214 : if (!
24215 : #line 19722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24216 : (TARGET_USE_BT && ix86_pre_reload_split ()))
24217 : return -1;
24218 : return 1470; /* *btsi_setncsi */
24219 :
24220 : case 1:
24221 : if (!(
24222 : #line 19722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24223 : (TARGET_USE_BT && ix86_pre_reload_split ()) &&
24224 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24225 : (TARGET_64BIT)))
24226 : return -1;
24227 : return 1471; /* *btdi_setncdi */
24228 :
24229 : default:
24230 : return -1;
24231 : }
24232 :
24233 : case ASHIFT:
24234 : x7 = XEXP (x5, 0);
24235 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + -1])
24236 : return -1;
24237 : x6 = XVECEXP (x1, 0, 1);
24238 : if (pattern236 (x6,
24239 : E_CCmode,
24240 : 17) != 0)
24241 : return -1;
24242 : switch (pattern1257 (x3))
24243 : {
24244 : case 0:
24245 : if (!
24246 : #line 22456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24247 : (TARGET_BMI2))
24248 : return -1;
24249 : return 1630; /* *bmi2_bzhi_si3_3 */
24250 :
24251 : case 1:
24252 : if (!(
24253 : #line 22456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24254 : (TARGET_BMI2) &&
24255 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24256 : (TARGET_64BIT)))
24257 : return -1;
24258 : return 1631; /* *bmi2_bzhi_di3_3 */
24259 :
24260 : default:
24261 : return -1;
24262 : }
24263 :
24264 : default:
24265 : return -1;
24266 : }
24267 :
24268 : case ROTATE:
24269 : switch (pattern374 (x1,
24270 : -2))
24271 : {
24272 : case 0:
24273 : x10 = XEXP (x4, 1);
24274 : operands[2] = x10;
24275 : if (register_operand (operands[2], E_QImode))
24276 : {
24277 : switch (pattern948 (x3))
24278 : {
24279 : case 0:
24280 : if (
24281 : #line 19233 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24282 : (TARGET_USE_BT))
24283 : return 1435; /* *btrsi */
24284 : break;
24285 :
24286 : case 1:
24287 : if ((
24288 : #line 19233 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24289 : (TARGET_USE_BT) &&
24290 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24291 : (TARGET_64BIT)))
24292 : return 1436; /* *btrdi */
24293 : break;
24294 :
24295 : default:
24296 : break;
24297 : }
24298 : }
24299 : if (GET_CODE (x10) != SUBREG)
24300 : return -1;
24301 : switch (pattern1338 (x3))
24302 : {
24303 : case 0:
24304 : if (!
24305 : #line 19252 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24306 : (TARGET_USE_BT
24307 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (SImode)-1))
24308 : == GET_MODE_BITSIZE (SImode)-1
24309 : && ix86_pre_reload_split ()))
24310 : return -1;
24311 : return 1437; /* *btrsi_mask */
24312 :
24313 : case 1:
24314 : if (!(
24315 : #line 19252 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24316 : (TARGET_USE_BT
24317 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (DImode)-1))
24318 : == GET_MODE_BITSIZE (DImode)-1
24319 : && ix86_pre_reload_split ()) &&
24320 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24321 : (TARGET_64BIT)))
24322 : return -1;
24323 : return 1438; /* *btrdi_mask */
24324 :
24325 : default:
24326 : return -1;
24327 : }
24328 :
24329 : case 1:
24330 : if (!
24331 : #line 19280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24332 : (TARGET_USE_BT
24333 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (SImode)-1))
24334 : == GET_MODE_BITSIZE (SImode)-1
24335 : && ix86_pre_reload_split ()))
24336 : return -1;
24337 : return 1439; /* *btrsi_mask_1 */
24338 :
24339 : case 2:
24340 : if (!(
24341 : #line 19280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24342 : (TARGET_USE_BT
24343 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (DImode)-1))
24344 : == GET_MODE_BITSIZE (DImode)-1
24345 : && ix86_pre_reload_split ()) &&
24346 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24347 : (TARGET_64BIT)))
24348 : return -1;
24349 : return 1440; /* *btrdi_mask_1 */
24350 :
24351 : default:
24352 : return -1;
24353 : }
24354 :
24355 : case NEG:
24356 : x6 = XVECEXP (x1, 0, 1);
24357 : if (pattern375 (x6) != 0)
24358 : return -1;
24359 : switch (pattern952 (x2))
24360 : {
24361 : case 0:
24362 : if (!
24363 : #line 22133 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24364 : (TARGET_BMI))
24365 : return -1;
24366 : return 1604; /* *bmi_blsi_si */
24367 :
24368 : case 1:
24369 : if (!(
24370 : #line 22133 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24371 : (TARGET_BMI) &&
24372 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24373 : (TARGET_64BIT)))
24374 : return -1;
24375 : return 1605; /* *bmi_blsi_di */
24376 :
24377 : default:
24378 : return -1;
24379 : }
24380 :
24381 : case PLUS:
24382 : x10 = XEXP (x4, 1);
24383 : if (GET_CODE (x10) != CONST_INT
24384 : || pattern344 (x1) != 0)
24385 : return -1;
24386 : x5 = XEXP (x4, 0);
24387 : switch (GET_CODE (x5))
24388 : {
24389 : case REG:
24390 : case SUBREG:
24391 : case MEM:
24392 : operands[1] = x5;
24393 : switch (XWINT (x10, 0))
24394 : {
24395 : case -1L:
24396 : switch (pattern1337 (x3))
24397 : {
24398 : case 0:
24399 : if (!
24400 : #line 22278 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24401 : (TARGET_BMI))
24402 : return -1;
24403 : return 1616; /* *bmi_blsr_si */
24404 :
24405 : case 1:
24406 : if (!(
24407 : #line 22278 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24408 : (TARGET_BMI) &&
24409 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24410 : (TARGET_64BIT)))
24411 : return -1;
24412 : return 1617; /* *bmi_blsr_di */
24413 :
24414 : case 2:
24415 : if (!
24416 : #line 22649 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24417 : (TARGET_TBM))
24418 : return -1;
24419 : return 1656; /* *tbm_tzmsk_si */
24420 :
24421 : case 3:
24422 : if (!(
24423 : #line 22649 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24424 : (TARGET_TBM) &&
24425 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24426 : (TARGET_64BIT)))
24427 : return -1;
24428 : return 1657; /* *tbm_tzmsk_di */
24429 :
24430 : default:
24431 : return -1;
24432 : }
24433 :
24434 : case 1L:
24435 : switch (pattern1337 (x3))
24436 : {
24437 : case 0:
24438 : if (!
24439 : #line 22540 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24440 : (TARGET_TBM))
24441 : return -1;
24442 : return 1640; /* *tbm_blcfill_si */
24443 :
24444 : case 1:
24445 : if (!(
24446 : #line 22540 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24447 : (TARGET_TBM) &&
24448 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24449 : (TARGET_64BIT)))
24450 : return -1;
24451 : return 1641; /* *tbm_blcfill_di */
24452 :
24453 : case 2:
24454 : if (!
24455 : #line 22568 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24456 : (TARGET_TBM))
24457 : return -1;
24458 : return 1644; /* *tbm_blcic_si */
24459 :
24460 : case 3:
24461 : if (!(
24462 : #line 22568 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24463 : (TARGET_TBM) &&
24464 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24465 : (TARGET_64BIT)))
24466 : return -1;
24467 : return 1645; /* *tbm_blcic_di */
24468 :
24469 : default:
24470 : return -1;
24471 : }
24472 :
24473 : default:
24474 : return -1;
24475 : }
24476 :
24477 : case ASHIFT:
24478 : x7 = XEXP (x5, 0);
24479 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
24480 : || XWINT (x10, 0) != -1L)
24481 : return -1;
24482 : switch (pattern1257 (x3))
24483 : {
24484 : case 0:
24485 : if (!
24486 : #line 22442 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24487 : (TARGET_BMI2))
24488 : return -1;
24489 : return 1628; /* *bmi2_bzhi_si3_2 */
24490 :
24491 : case 1:
24492 : if (!(
24493 : #line 22442 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24494 : (TARGET_BMI2) &&
24495 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24496 : (TARGET_64BIT)))
24497 : return -1;
24498 : return 1629; /* *bmi2_bzhi_di3_2 */
24499 :
24500 : default:
24501 : return -1;
24502 : }
24503 :
24504 : default:
24505 : return -1;
24506 : }
24507 :
24508 : case ZERO_EXTEND:
24509 : if (GET_MODE (x4) != E_DImode)
24510 : return -1;
24511 : x5 = XEXP (x4, 0);
24512 : if (GET_CODE (x5) != PLUS
24513 : || pattern704 (x5) != 0
24514 : || pattern574 (x1) != 0)
24515 : return -1;
24516 : x7 = XEXP (x5, 0);
24517 : x11 = XEXP (x7, 1);
24518 : operands[2] = x11;
24519 : if (!register_operand (operands[2], E_QImode))
24520 : return -1;
24521 : x8 = XEXP (x3, 1);
24522 : operands[1] = x8;
24523 : if (!nonimmediate_operand (operands[1], E_DImode)
24524 : || !
24525 : #line 22488 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24526 : (TARGET_64BIT && TARGET_BMI2))
24527 : return -1;
24528 : return 1633; /* *bmi2_bzhi_zero_extendsidi_5 */
24529 :
24530 : default:
24531 : return -1;
24532 : }
24533 : }
24534 :
24535 : int
24536 : recog_429 (rtx x1 ATTRIBUTE_UNUSED,
24537 : rtx_insn *insn ATTRIBUTE_UNUSED,
24538 : int *pnum_clobbers ATTRIBUTE_UNUSED)
24539 : {
24540 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
24541 : rtx x2, x3, x4, x5;
24542 : int res ATTRIBUTE_UNUSED;
24543 : x2 = XVECEXP (x1, 0, 0);
24544 : x3 = XEXP (x2, 1);
24545 : switch (GET_CODE (x3))
24546 : {
24547 : case CONST_INT:
24548 : case CONST_WIDE_INT:
24549 : case CONST_POLY_INT:
24550 : case CONST_FIXED:
24551 : case CONST_DOUBLE:
24552 : case CONST_VECTOR:
24553 : case CONST:
24554 : case REG:
24555 : case SUBREG:
24556 : case MEM:
24557 : case LABEL_REF:
24558 : case SYMBOL_REF:
24559 : case HIGH:
24560 : res = recog_365 (x1, insn, pnum_clobbers);
24561 : if (res >= 0)
24562 : return res;
24563 : break;
24564 :
24565 : case ASHIFTRT:
24566 : case LSHIFTRT:
24567 : case SIGN_EXTRACT:
24568 : case ZERO_EXTRACT:
24569 : res = recog_371 (x1, insn, pnum_clobbers);
24570 : if (res >= 0)
24571 : return res;
24572 : break;
24573 :
24574 : case UNSPEC:
24575 : res = recog_377 (x1, insn, pnum_clobbers);
24576 : if (res >= 0)
24577 : return res;
24578 : break;
24579 :
24580 : case ZERO_EXTEND:
24581 : res = recog_381 (x1, insn, pnum_clobbers);
24582 : if (res >= 0)
24583 : return res;
24584 : break;
24585 :
24586 : case UNSIGNED_FIX:
24587 : res = recog_382 (x1, insn, pnum_clobbers);
24588 : if (res >= 0)
24589 : return res;
24590 : break;
24591 :
24592 : case FIX:
24593 : res = recog_383 (x1, insn, pnum_clobbers);
24594 : if (res >= 0)
24595 : return res;
24596 : break;
24597 :
24598 : case FLOAT:
24599 : res = recog_384 (x1, insn, pnum_clobbers);
24600 : if (res >= 0)
24601 : return res;
24602 : break;
24603 :
24604 : case UNSIGNED_FLOAT:
24605 : res = recog_385 (x1, insn, pnum_clobbers);
24606 : if (res >= 0)
24607 : return res;
24608 : break;
24609 :
24610 : case PLUS:
24611 : res = recog_387 (x1, insn, pnum_clobbers);
24612 : if (res >= 0)
24613 : return res;
24614 : break;
24615 :
24616 : case COMPARE:
24617 : res = recog_399 (x1, insn, pnum_clobbers);
24618 : if (res >= 0)
24619 : return res;
24620 : break;
24621 :
24622 : case NE:
24623 : case EQ:
24624 : case GE:
24625 : case GT:
24626 : case LE:
24627 : case LT:
24628 : case LTGT:
24629 : case GEU:
24630 : case GTU:
24631 : case LEU:
24632 : case LTU:
24633 : case UNORDERED:
24634 : case ORDERED:
24635 : case UNEQ:
24636 : case UNGE:
24637 : case UNGT:
24638 : case UNLE:
24639 : case UNLT:
24640 : switch (GET_CODE (x3))
24641 : {
24642 : case NE:
24643 : case EQ:
24644 : if (GET_CODE (x3) == EQ)
24645 : {
24646 : res = recog_400 (x1, insn, pnum_clobbers);
24647 : if (res >= 0)
24648 : return res;
24649 : }
24650 : operands[1] = x3;
24651 : switch (pattern562 (x1))
24652 : {
24653 : case 0:
24654 : if ((
24655 : #line 2407 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24656 : (TARGET_AVX512BW) &&
24657 : #line 1556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24658 : (TARGET_AVX512DQ)))
24659 : return 2689; /* *kortest_cmpqi_setcc */
24660 : break;
24661 :
24662 : case 1:
24663 : if (
24664 : #line 2407 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24665 : (TARGET_AVX512BW))
24666 : return 2690; /* *kortest_cmphi_setcc */
24667 : break;
24668 :
24669 : case 2:
24670 : if (
24671 : #line 2407 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24672 : (TARGET_AVX512BW))
24673 : return 2691; /* *kortest_cmpsi_setcc */
24674 : break;
24675 :
24676 : case 3:
24677 : if ((
24678 : #line 2407 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24679 : (TARGET_AVX512BW) &&
24680 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24681 : (TARGET_AVX512BW && TARGET_64BIT)))
24682 : return 2692; /* *kortest_cmpdi_setcc */
24683 : break;
24684 :
24685 : default:
24686 : break;
24687 : }
24688 : break;
24689 :
24690 : case GT:
24691 : if (pattern370 (x1) == 0
24692 : &&
24693 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24694 : (TARGET_3DNOW))
24695 : return 2127; /* mmx_gtv2sf3 */
24696 : break;
24697 :
24698 : case GE:
24699 : if (pattern370 (x1) == 0
24700 : &&
24701 : #line 1248 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24702 : (TARGET_3DNOW))
24703 : return 2128; /* mmx_gev2sf3 */
24704 : break;
24705 :
24706 : default:
24707 : break;
24708 : }
24709 : operands[1] = x3;
24710 : switch (pattern371 (x1))
24711 : {
24712 : case 0:
24713 : if (
24714 : #line 19857 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24715 : (!TARGET_PARTIAL_REG_STALL
24716 : && TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)))
24717 : return 1480; /* *setcc_hi_1_and */
24718 : break;
24719 :
24720 : case 1:
24721 : if (
24722 : #line 19857 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24723 : (!TARGET_PARTIAL_REG_STALL
24724 : && TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)))
24725 : return 1481; /* *setcc_si_1_and */
24726 : break;
24727 :
24728 : default:
24729 : break;
24730 : }
24731 : break;
24732 :
24733 : case MINUS:
24734 : res = recog_403 (x1, insn, pnum_clobbers);
24735 : if (res >= 0)
24736 : return res;
24737 : break;
24738 :
24739 : case IF_THEN_ELSE:
24740 : res = recog_405 (x1, insn, pnum_clobbers);
24741 : if (res >= 0)
24742 : return res;
24743 : break;
24744 :
24745 : case MULT:
24746 : res = recog_406 (x1, insn, pnum_clobbers);
24747 : if (res >= 0)
24748 : return res;
24749 : break;
24750 :
24751 : case DIV:
24752 : if (pnum_clobbers != NULL)
24753 : {
24754 : switch (pattern224 (x1))
24755 : {
24756 : case 0:
24757 : switch (GET_MODE (operands[0]))
24758 : {
24759 : case E_HImode:
24760 : if (pattern391 (x1,
24761 : E_HImode) == 0
24762 : &&
24763 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24764 : (TARGET_HIMODE_MATH))
24765 : {
24766 : *pnum_clobbers = 1;
24767 : return 675; /* *divmodhi4 */
24768 : }
24769 : break;
24770 :
24771 : case E_SImode:
24772 : if (pattern391 (x1,
24773 : E_SImode) == 0)
24774 : {
24775 : *pnum_clobbers = 1;
24776 : return 676; /* *divmodsi4 */
24777 : }
24778 : break;
24779 :
24780 : case E_DImode:
24781 : if (pattern391 (x1,
24782 : E_DImode) == 0
24783 : &&
24784 : #line 1193 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24785 : (TARGET_64BIT))
24786 : {
24787 : *pnum_clobbers = 1;
24788 : return 677; /* *divmoddi4 */
24789 : }
24790 : break;
24791 :
24792 : default:
24793 : break;
24794 : }
24795 : break;
24796 :
24797 : case 1:
24798 : if (const_int_operand (operands[2], E_SImode)
24799 : && pattern1504 (x1) == 0
24800 : &&
24801 : #line 12250 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24802 : (!optimize_function_for_size_p (cfun)))
24803 : {
24804 : *pnum_clobbers = 1;
24805 : return 705; /* *divmodsi4_const */
24806 : }
24807 : break;
24808 :
24809 : default:
24810 : break;
24811 : }
24812 : }
24813 : break;
24814 :
24815 : case UDIV:
24816 : if (pnum_clobbers != NULL)
24817 : {
24818 : switch (pattern225 (x1))
24819 : {
24820 : case 0:
24821 : switch (GET_MODE (operands[0]))
24822 : {
24823 : case E_HImode:
24824 : if (pattern391 (x1,
24825 : E_HImode) == 0
24826 : &&
24827 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24828 : (TARGET_HIMODE_MATH))
24829 : {
24830 : *pnum_clobbers = 1;
24831 : return 678; /* *udivmodhi4 */
24832 : }
24833 : break;
24834 :
24835 : case E_SImode:
24836 : if (pattern391 (x1,
24837 : E_SImode) == 0)
24838 : {
24839 : *pnum_clobbers = 1;
24840 : return 679; /* *udivmodsi4 */
24841 : }
24842 : break;
24843 :
24844 : case E_DImode:
24845 : if (pattern391 (x1,
24846 : E_DImode) == 0
24847 : &&
24848 : #line 1193 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24849 : (TARGET_64BIT))
24850 : {
24851 : *pnum_clobbers = 1;
24852 : return 680; /* *udivmoddi4 */
24853 : }
24854 : break;
24855 :
24856 : default:
24857 : break;
24858 : }
24859 : break;
24860 :
24861 : case 1:
24862 : switch (GET_MODE (operands[0]))
24863 : {
24864 : case E_SImode:
24865 : if (pattern1505 (x1,
24866 : E_SImode) == 0
24867 : &&
24868 : #line 12003 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24869 : (IN_RANGE (exact_log2 (UINTVAL (operands[3])), 1, 31)))
24870 : {
24871 : *pnum_clobbers = 1;
24872 : return 681; /* *udivmodsi4_pow2 */
24873 : }
24874 : break;
24875 :
24876 : case E_DImode:
24877 : if (pattern1505 (x1,
24878 : E_DImode) == 0
24879 : && (
24880 : #line 12003 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24881 : (IN_RANGE (exact_log2 (UINTVAL (operands[3])), 1, 31)) &&
24882 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24883 : (TARGET_64BIT)))
24884 : {
24885 : *pnum_clobbers = 1;
24886 : return 682; /* *udivmoddi4_pow2 */
24887 : }
24888 : break;
24889 :
24890 : default:
24891 : break;
24892 : }
24893 : break;
24894 :
24895 : default:
24896 : break;
24897 : }
24898 : }
24899 : break;
24900 :
24901 : case IOR:
24902 : res = recog_409 (x1, insn, pnum_clobbers);
24903 : if (res >= 0)
24904 : return res;
24905 : break;
24906 :
24907 : case AND:
24908 : res = recog_412 (x1, insn, pnum_clobbers);
24909 : if (res >= 0)
24910 : return res;
24911 : break;
24912 :
24913 : case XOR:
24914 : res = recog_414 (x1, insn, pnum_clobbers);
24915 : if (res >= 0)
24916 : return res;
24917 : break;
24918 :
24919 : case NOT:
24920 : res = recog_415 (x1, insn, pnum_clobbers);
24921 : if (res >= 0)
24922 : return res;
24923 : break;
24924 :
24925 : case NEG:
24926 : res = recog_416 (x1, insn, pnum_clobbers);
24927 : if (res >= 0)
24928 : return res;
24929 : break;
24930 :
24931 : case ABS:
24932 : res = recog_417 (x1, insn, pnum_clobbers);
24933 : if (res >= 0)
24934 : return res;
24935 : break;
24936 :
24937 : case ASHIFT:
24938 : res = recog_418 (x1, insn, pnum_clobbers);
24939 : if (res >= 0)
24940 : return res;
24941 : break;
24942 :
24943 : case ROTATE:
24944 : switch (pattern211 (x1))
24945 : {
24946 : case 0:
24947 : x4 = XEXP (x3, 1);
24948 : if (GET_CODE (x4) == SUBREG)
24949 : {
24950 : switch (pattern1178 (x2))
24951 : {
24952 : case 0:
24953 : if (
24954 : #line 18484 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24955 : (ix86_binary_operator_ok (ROTATE, QImode, operands)
24956 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (QImode)-1))
24957 : == GET_MODE_BITSIZE (QImode)-1
24958 : && ix86_pre_reload_split ()))
24959 : return 1316; /* *rotlqi3_mask */
24960 : break;
24961 :
24962 : case 1:
24963 : if (
24964 : #line 18484 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24965 : (ix86_binary_operator_ok (ROTATE, HImode, operands)
24966 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (HImode)-1))
24967 : == GET_MODE_BITSIZE (HImode)-1
24968 : && ix86_pre_reload_split ()))
24969 : return 1318; /* *rotlhi3_mask */
24970 : break;
24971 :
24972 : case 2:
24973 : if (
24974 : #line 18484 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24975 : (ix86_binary_operator_ok (ROTATE, SImode, operands)
24976 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
24977 : == GET_MODE_BITSIZE (SImode)-1
24978 : && ix86_pre_reload_split ()))
24979 : return 1320; /* *rotlsi3_mask */
24980 : break;
24981 :
24982 : case 3:
24983 : if ((
24984 : #line 18484 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24985 : (ix86_binary_operator_ok (ROTATE, DImode, operands)
24986 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
24987 : == GET_MODE_BITSIZE (DImode)-1
24988 : && ix86_pre_reload_split ()) &&
24989 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24990 : (TARGET_64BIT)))
24991 : return 1322; /* *rotldi3_mask */
24992 : break;
24993 :
24994 : case 4:
24995 : if (
24996 : #line 18577 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24997 : (ix86_binary_operator_ok (ROTATE, QImode, operands)
24998 : && (INTVAL (operands[3]) & (1 * BITS_PER_UNIT - 1)) == 0
24999 : && ix86_pre_reload_split ()))
25000 : return 1332; /* *rotlqi3_add */
25001 : break;
25002 :
25003 : case 5:
25004 : if (
25005 : #line 18577 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25006 : (ix86_binary_operator_ok (ROTATE, HImode, operands)
25007 : && (INTVAL (operands[3]) & (2 * BITS_PER_UNIT - 1)) == 0
25008 : && ix86_pre_reload_split ()))
25009 : return 1334; /* *rotlhi3_add */
25010 : break;
25011 :
25012 : case 6:
25013 : if (
25014 : #line 18577 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25015 : (ix86_binary_operator_ok (ROTATE, SImode, operands)
25016 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
25017 : && ix86_pre_reload_split ()))
25018 : return 1336; /* *rotlsi3_add */
25019 : break;
25020 :
25021 : case 7:
25022 : if ((
25023 : #line 18577 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25024 : (ix86_binary_operator_ok (ROTATE, DImode, operands)
25025 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
25026 : && ix86_pre_reload_split ()) &&
25027 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25028 : (TARGET_64BIT)))
25029 : return 1338; /* *rotldi3_add */
25030 : break;
25031 :
25032 : case 8:
25033 : if (
25034 : #line 18646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25035 : (ix86_binary_operator_ok (ROTATE, QImode, operands)
25036 : && (INTVAL (operands[3]) & (1 * BITS_PER_UNIT - 1)) == 0
25037 : && ix86_pre_reload_split ()))
25038 : return 1348; /* *rotlqi3_sub */
25039 : break;
25040 :
25041 : case 9:
25042 : if (
25043 : #line 18646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25044 : (ix86_binary_operator_ok (ROTATE, HImode, operands)
25045 : && (INTVAL (operands[3]) & (2 * BITS_PER_UNIT - 1)) == 0
25046 : && ix86_pre_reload_split ()))
25047 : return 1350; /* *rotlhi3_sub */
25048 : break;
25049 :
25050 : case 10:
25051 : if (
25052 : #line 18646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25053 : (ix86_binary_operator_ok (ROTATE, SImode, operands)
25054 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
25055 : && ix86_pre_reload_split ()))
25056 : return 1352; /* *rotlsi3_sub */
25057 : break;
25058 :
25059 : case 11:
25060 : if ((
25061 : #line 18646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25062 : (ix86_binary_operator_ok (ROTATE, DImode, operands)
25063 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
25064 : && ix86_pre_reload_split ()) &&
25065 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25066 : (TARGET_64BIT)))
25067 : return 1354; /* *rotldi3_sub */
25068 : break;
25069 :
25070 : default:
25071 : break;
25072 : }
25073 : }
25074 : operands[2] = x4;
25075 : switch (pattern1179 (x2))
25076 : {
25077 : case 0:
25078 : if (
25079 : #line 18838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25080 : (ix86_binary_operator_ok (ROTATE, SImode, operands, TARGET_APX_NDD)
25081 : && true))
25082 : return 1375; /* *rotlsi3_1 */
25083 : break;
25084 :
25085 : case 1:
25086 : if ((
25087 : #line 18838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25088 : (ix86_binary_operator_ok (ROTATE, DImode, operands, TARGET_APX_NDD)
25089 : && true) &&
25090 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25091 : (TARGET_64BIT)))
25092 : return 1379; /* *rotldi3_1 */
25093 : break;
25094 :
25095 : case 2:
25096 : if (
25097 : #line 19019 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25098 : (ix86_binary_operator_ok (ROTATE, QImode, operands, TARGET_APX_NDD)
25099 : && true))
25100 : return 1406; /* *rotlqi3_1 */
25101 : break;
25102 :
25103 : case 3:
25104 : if (
25105 : #line 19019 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25106 : (ix86_binary_operator_ok (ROTATE, HImode, operands, TARGET_APX_NDD)
25107 : && true))
25108 : return 1410; /* *rotlhi3_1 */
25109 : break;
25110 :
25111 : case 4:
25112 : if (
25113 : #line 19050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25114 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
25115 : return 1413; /* *rotlqi3_1_slp */
25116 : break;
25117 :
25118 : case 5:
25119 : if (
25120 : #line 19050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25121 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
25122 : return 1415; /* *rotlhi3_1_slp */
25123 : break;
25124 :
25125 : default:
25126 : break;
25127 : }
25128 : break;
25129 :
25130 : case 1:
25131 : if (
25132 : #line 18532 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25133 : (ix86_binary_operator_ok (ROTATE, QImode, operands)
25134 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (QImode)-1))
25135 : == GET_MODE_BITSIZE (QImode)-1
25136 : && ix86_pre_reload_split ()))
25137 : return 1324; /* *rotlqi3_mask_1 */
25138 : break;
25139 :
25140 : case 2:
25141 : if (
25142 : #line 18532 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25143 : (ix86_binary_operator_ok (ROTATE, HImode, operands)
25144 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (HImode)-1))
25145 : == GET_MODE_BITSIZE (HImode)-1
25146 : && ix86_pre_reload_split ()))
25147 : return 1326; /* *rotlhi3_mask_1 */
25148 : break;
25149 :
25150 : case 3:
25151 : if (
25152 : #line 18532 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25153 : (ix86_binary_operator_ok (ROTATE, SImode, operands)
25154 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
25155 : == GET_MODE_BITSIZE (SImode)-1
25156 : && ix86_pre_reload_split ()))
25157 : return 1328; /* *rotlsi3_mask_1 */
25158 : break;
25159 :
25160 : case 4:
25161 : if ((
25162 : #line 18532 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25163 : (ix86_binary_operator_ok (ROTATE, DImode, operands)
25164 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
25165 : == GET_MODE_BITSIZE (DImode)-1
25166 : && ix86_pre_reload_split ()) &&
25167 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25168 : (TARGET_64BIT)))
25169 : return 1330; /* *rotldi3_mask_1 */
25170 : break;
25171 :
25172 : case 5:
25173 : if (
25174 : #line 18613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25175 : (ix86_binary_operator_ok (ROTATE, QImode, operands)
25176 : && (INTVAL (operands[3]) & (1 * BITS_PER_UNIT - 1)) == 0
25177 : && ix86_pre_reload_split ()))
25178 : return 1340; /* *rotlqi3_add_1 */
25179 : break;
25180 :
25181 : case 6:
25182 : if (
25183 : #line 18613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25184 : (ix86_binary_operator_ok (ROTATE, HImode, operands)
25185 : && (INTVAL (operands[3]) & (2 * BITS_PER_UNIT - 1)) == 0
25186 : && ix86_pre_reload_split ()))
25187 : return 1342; /* *rotlhi3_add_1 */
25188 : break;
25189 :
25190 : case 7:
25191 : if (
25192 : #line 18613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25193 : (ix86_binary_operator_ok (ROTATE, SImode, operands)
25194 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
25195 : && ix86_pre_reload_split ()))
25196 : return 1344; /* *rotlsi3_add_1 */
25197 : break;
25198 :
25199 : case 8:
25200 : if ((
25201 : #line 18613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25202 : (ix86_binary_operator_ok (ROTATE, DImode, operands)
25203 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
25204 : && ix86_pre_reload_split ()) &&
25205 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25206 : (TARGET_64BIT)))
25207 : return 1346; /* *rotldi3_add_1 */
25208 : break;
25209 :
25210 : case 9:
25211 : if (
25212 : #line 18682 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25213 : (ix86_binary_operator_ok (ROTATE, QImode, operands)
25214 : && (INTVAL (operands[3]) & (1 * BITS_PER_UNIT - 1)) == 0
25215 : && ix86_pre_reload_split ()))
25216 : return 1356; /* *rotlqi3_sub_1 */
25217 : break;
25218 :
25219 : case 10:
25220 : if (
25221 : #line 18682 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25222 : (ix86_binary_operator_ok (ROTATE, HImode, operands)
25223 : && (INTVAL (operands[3]) & (2 * BITS_PER_UNIT - 1)) == 0
25224 : && ix86_pre_reload_split ()))
25225 : return 1358; /* *rotlhi3_sub_1 */
25226 : break;
25227 :
25228 : case 11:
25229 : if (
25230 : #line 18682 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25231 : (ix86_binary_operator_ok (ROTATE, SImode, operands)
25232 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
25233 : && ix86_pre_reload_split ()))
25234 : return 1360; /* *rotlsi3_sub_1 */
25235 : break;
25236 :
25237 : case 12:
25238 : if ((
25239 : #line 18682 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25240 : (ix86_binary_operator_ok (ROTATE, DImode, operands)
25241 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
25242 : && ix86_pre_reload_split ()) &&
25243 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25244 : (TARGET_64BIT)))
25245 : return 1362; /* *rotldi3_sub_1 */
25246 : break;
25247 :
25248 : default:
25249 : break;
25250 : }
25251 : break;
25252 :
25253 : case ROTATERT:
25254 : switch (pattern211 (x1))
25255 : {
25256 : case 0:
25257 : x4 = XEXP (x3, 1);
25258 : if (GET_CODE (x4) == SUBREG)
25259 : {
25260 : switch (pattern1178 (x2))
25261 : {
25262 : case 0:
25263 : if (
25264 : #line 18484 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25265 : (ix86_binary_operator_ok (ROTATERT, QImode, operands)
25266 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (QImode)-1))
25267 : == GET_MODE_BITSIZE (QImode)-1
25268 : && ix86_pre_reload_split ()))
25269 : return 1317; /* *rotrqi3_mask */
25270 : break;
25271 :
25272 : case 1:
25273 : if (
25274 : #line 18484 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25275 : (ix86_binary_operator_ok (ROTATERT, HImode, operands)
25276 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (HImode)-1))
25277 : == GET_MODE_BITSIZE (HImode)-1
25278 : && ix86_pre_reload_split ()))
25279 : return 1319; /* *rotrhi3_mask */
25280 : break;
25281 :
25282 : case 2:
25283 : if (
25284 : #line 18484 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25285 : (ix86_binary_operator_ok (ROTATERT, SImode, operands)
25286 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
25287 : == GET_MODE_BITSIZE (SImode)-1
25288 : && ix86_pre_reload_split ()))
25289 : return 1321; /* *rotrsi3_mask */
25290 : break;
25291 :
25292 : case 3:
25293 : if ((
25294 : #line 18484 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25295 : (ix86_binary_operator_ok (ROTATERT, DImode, operands)
25296 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
25297 : == GET_MODE_BITSIZE (DImode)-1
25298 : && ix86_pre_reload_split ()) &&
25299 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25300 : (TARGET_64BIT)))
25301 : return 1323; /* *rotrdi3_mask */
25302 : break;
25303 :
25304 : case 4:
25305 : if (
25306 : #line 18577 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25307 : (ix86_binary_operator_ok (ROTATERT, QImode, operands)
25308 : && (INTVAL (operands[3]) & (1 * BITS_PER_UNIT - 1)) == 0
25309 : && ix86_pre_reload_split ()))
25310 : return 1333; /* *rotrqi3_add */
25311 : break;
25312 :
25313 : case 5:
25314 : if (
25315 : #line 18577 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25316 : (ix86_binary_operator_ok (ROTATERT, HImode, operands)
25317 : && (INTVAL (operands[3]) & (2 * BITS_PER_UNIT - 1)) == 0
25318 : && ix86_pre_reload_split ()))
25319 : return 1335; /* *rotrhi3_add */
25320 : break;
25321 :
25322 : case 6:
25323 : if (
25324 : #line 18577 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25325 : (ix86_binary_operator_ok (ROTATERT, SImode, operands)
25326 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
25327 : && ix86_pre_reload_split ()))
25328 : return 1337; /* *rotrsi3_add */
25329 : break;
25330 :
25331 : case 7:
25332 : if ((
25333 : #line 18577 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25334 : (ix86_binary_operator_ok (ROTATERT, DImode, operands)
25335 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
25336 : && ix86_pre_reload_split ()) &&
25337 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25338 : (TARGET_64BIT)))
25339 : return 1339; /* *rotrdi3_add */
25340 : break;
25341 :
25342 : case 8:
25343 : if (
25344 : #line 18646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25345 : (ix86_binary_operator_ok (ROTATERT, QImode, operands)
25346 : && (INTVAL (operands[3]) & (1 * BITS_PER_UNIT - 1)) == 0
25347 : && ix86_pre_reload_split ()))
25348 : return 1349; /* *rotrqi3_sub */
25349 : break;
25350 :
25351 : case 9:
25352 : if (
25353 : #line 18646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25354 : (ix86_binary_operator_ok (ROTATERT, HImode, operands)
25355 : && (INTVAL (operands[3]) & (2 * BITS_PER_UNIT - 1)) == 0
25356 : && ix86_pre_reload_split ()))
25357 : return 1351; /* *rotrhi3_sub */
25358 : break;
25359 :
25360 : case 10:
25361 : if (
25362 : #line 18646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25363 : (ix86_binary_operator_ok (ROTATERT, SImode, operands)
25364 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
25365 : && ix86_pre_reload_split ()))
25366 : return 1353; /* *rotrsi3_sub */
25367 : break;
25368 :
25369 : case 11:
25370 : if ((
25371 : #line 18646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25372 : (ix86_binary_operator_ok (ROTATERT, DImode, operands)
25373 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
25374 : && ix86_pre_reload_split ()) &&
25375 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25376 : (TARGET_64BIT)))
25377 : return 1355; /* *rotrdi3_sub */
25378 : break;
25379 :
25380 : default:
25381 : break;
25382 : }
25383 : }
25384 : operands[2] = x4;
25385 : switch (pattern1179 (x2))
25386 : {
25387 : case 0:
25388 : if (
25389 : #line 18838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25390 : (ix86_binary_operator_ok (ROTATERT, SImode, operands, TARGET_APX_NDD)
25391 : && true))
25392 : return 1377; /* *rotrsi3_1 */
25393 : break;
25394 :
25395 : case 1:
25396 : if ((
25397 : #line 18838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25398 : (ix86_binary_operator_ok (ROTATERT, DImode, operands, TARGET_APX_NDD)
25399 : && true) &&
25400 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25401 : (TARGET_64BIT)))
25402 : return 1381; /* *rotrdi3_1 */
25403 : break;
25404 :
25405 : case 2:
25406 : if (
25407 : #line 19019 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25408 : (ix86_binary_operator_ok (ROTATERT, QImode, operands, TARGET_APX_NDD)
25409 : && true))
25410 : return 1408; /* *rotrqi3_1 */
25411 : break;
25412 :
25413 : case 3:
25414 : if (
25415 : #line 19019 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25416 : (ix86_binary_operator_ok (ROTATERT, HImode, operands, TARGET_APX_NDD)
25417 : && true))
25418 : return 1412; /* *rotrhi3_1 */
25419 : break;
25420 :
25421 : case 4:
25422 : if (
25423 : #line 19050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25424 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
25425 : return 1414; /* *rotrqi3_1_slp */
25426 : break;
25427 :
25428 : case 5:
25429 : if (
25430 : #line 19050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25431 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
25432 : return 1416; /* *rotrhi3_1_slp */
25433 : break;
25434 :
25435 : default:
25436 : break;
25437 : }
25438 : break;
25439 :
25440 : case 1:
25441 : if (
25442 : #line 18532 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25443 : (ix86_binary_operator_ok (ROTATERT, QImode, operands)
25444 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (QImode)-1))
25445 : == GET_MODE_BITSIZE (QImode)-1
25446 : && ix86_pre_reload_split ()))
25447 : return 1325; /* *rotrqi3_mask_1 */
25448 : break;
25449 :
25450 : case 2:
25451 : if (
25452 : #line 18532 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25453 : (ix86_binary_operator_ok (ROTATERT, HImode, operands)
25454 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (HImode)-1))
25455 : == GET_MODE_BITSIZE (HImode)-1
25456 : && ix86_pre_reload_split ()))
25457 : return 1327; /* *rotrhi3_mask_1 */
25458 : break;
25459 :
25460 : case 3:
25461 : if (
25462 : #line 18532 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25463 : (ix86_binary_operator_ok (ROTATERT, SImode, operands)
25464 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
25465 : == GET_MODE_BITSIZE (SImode)-1
25466 : && ix86_pre_reload_split ()))
25467 : return 1329; /* *rotrsi3_mask_1 */
25468 : break;
25469 :
25470 : case 4:
25471 : if ((
25472 : #line 18532 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25473 : (ix86_binary_operator_ok (ROTATERT, DImode, operands)
25474 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
25475 : == GET_MODE_BITSIZE (DImode)-1
25476 : && ix86_pre_reload_split ()) &&
25477 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25478 : (TARGET_64BIT)))
25479 : return 1331; /* *rotrdi3_mask_1 */
25480 : break;
25481 :
25482 : case 5:
25483 : if (
25484 : #line 18613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25485 : (ix86_binary_operator_ok (ROTATERT, QImode, operands)
25486 : && (INTVAL (operands[3]) & (1 * BITS_PER_UNIT - 1)) == 0
25487 : && ix86_pre_reload_split ()))
25488 : return 1341; /* *rotrqi3_add_1 */
25489 : break;
25490 :
25491 : case 6:
25492 : if (
25493 : #line 18613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25494 : (ix86_binary_operator_ok (ROTATERT, HImode, operands)
25495 : && (INTVAL (operands[3]) & (2 * BITS_PER_UNIT - 1)) == 0
25496 : && ix86_pre_reload_split ()))
25497 : return 1343; /* *rotrhi3_add_1 */
25498 : break;
25499 :
25500 : case 7:
25501 : if (
25502 : #line 18613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25503 : (ix86_binary_operator_ok (ROTATERT, SImode, operands)
25504 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
25505 : && ix86_pre_reload_split ()))
25506 : return 1345; /* *rotrsi3_add_1 */
25507 : break;
25508 :
25509 : case 8:
25510 : if ((
25511 : #line 18613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25512 : (ix86_binary_operator_ok (ROTATERT, DImode, operands)
25513 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
25514 : && ix86_pre_reload_split ()) &&
25515 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25516 : (TARGET_64BIT)))
25517 : return 1347; /* *rotrdi3_add_1 */
25518 : break;
25519 :
25520 : case 9:
25521 : if (
25522 : #line 18682 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25523 : (ix86_binary_operator_ok (ROTATERT, QImode, operands)
25524 : && (INTVAL (operands[3]) & (1 * BITS_PER_UNIT - 1)) == 0
25525 : && ix86_pre_reload_split ()))
25526 : return 1357; /* *rotrqi3_sub_1 */
25527 : break;
25528 :
25529 : case 10:
25530 : if (
25531 : #line 18682 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25532 : (ix86_binary_operator_ok (ROTATERT, HImode, operands)
25533 : && (INTVAL (operands[3]) & (2 * BITS_PER_UNIT - 1)) == 0
25534 : && ix86_pre_reload_split ()))
25535 : return 1359; /* *rotrhi3_sub_1 */
25536 : break;
25537 :
25538 : case 11:
25539 : if (
25540 : #line 18682 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25541 : (ix86_binary_operator_ok (ROTATERT, SImode, operands)
25542 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
25543 : && ix86_pre_reload_split ()))
25544 : return 1361; /* *rotrsi3_sub_1 */
25545 : break;
25546 :
25547 : case 12:
25548 : if ((
25549 : #line 18682 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25550 : (ix86_binary_operator_ok (ROTATERT, DImode, operands)
25551 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
25552 : && ix86_pre_reload_split ()) &&
25553 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25554 : (TARGET_64BIT)))
25555 : return 1363; /* *rotrdi3_sub_1 */
25556 : break;
25557 :
25558 : default:
25559 : break;
25560 : }
25561 : break;
25562 :
25563 : case CALL:
25564 : res = recog_419 (x1, insn, pnum_clobbers);
25565 : if (res >= 0)
25566 : return res;
25567 : break;
25568 :
25569 : case CTZ:
25570 : res = recog_420 (x1, insn, pnum_clobbers);
25571 : if (res >= 0)
25572 : return res;
25573 : break;
25574 :
25575 : case SIGN_EXTEND:
25576 : res = recog_421 (x1, insn, pnum_clobbers);
25577 : if (res >= 0)
25578 : return res;
25579 : break;
25580 :
25581 : case CLZ:
25582 : res = recog_422 (x1, insn, pnum_clobbers);
25583 : if (res >= 0)
25584 : return res;
25585 : break;
25586 :
25587 : case POPCOUNT:
25588 : res = recog_423 (x1, insn, pnum_clobbers);
25589 : if (res >= 0)
25590 : return res;
25591 : break;
25592 :
25593 : case SMAX:
25594 : switch (pattern215 (x1))
25595 : {
25596 : case 0:
25597 : if ((
25598 : #line 27359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25599 : (TARGET_CMOVE
25600 : && ix86_pre_reload_split ()) &&
25601 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25602 : (!TARGET_64BIT)))
25603 : return 1865; /* *smaxdi3_doubleword */
25604 : if ((
25605 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25606 : (TARGET_CMOVE
25607 : && (DImode != QImode || !TARGET_PARTIAL_REG_STALL)
25608 : && ix86_pre_reload_split ()) &&
25609 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25610 : (TARGET_64BIT)))
25611 : return 1885; /* *smaxdi3_1 */
25612 : break;
25613 :
25614 : case 1:
25615 : if ((
25616 : #line 27359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25617 : (TARGET_CMOVE
25618 : && ix86_pre_reload_split ()) &&
25619 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25620 : (TARGET_64BIT)))
25621 : return 1869; /* *smaxti3_doubleword */
25622 : break;
25623 :
25624 : case 2:
25625 : if (
25626 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25627 : (TARGET_CMOVE
25628 : && (QImode != QImode || !TARGET_PARTIAL_REG_STALL)
25629 : && ix86_pre_reload_split ()))
25630 : return 1873; /* *smaxqi3_1 */
25631 : break;
25632 :
25633 : case 3:
25634 : if (
25635 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25636 : (TARGET_CMOVE
25637 : && (HImode != QImode || !TARGET_PARTIAL_REG_STALL)
25638 : && ix86_pre_reload_split ()))
25639 : return 1877; /* *smaxhi3_1 */
25640 : break;
25641 :
25642 : case 4:
25643 : if (
25644 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25645 : (TARGET_CMOVE
25646 : && (SImode != QImode || !TARGET_PARTIAL_REG_STALL)
25647 : && ix86_pre_reload_split ()))
25648 : return 1881; /* *smaxsi3_1 */
25649 : break;
25650 :
25651 : case 5:
25652 : if (
25653 : #line 894 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
25654 : (TARGET_3DNOW && ix86_binary_operator_ok (SMAX, V2SFmode, operands)))
25655 : return 2112; /* *mmx_smaxv2sf3 */
25656 : break;
25657 :
25658 : default:
25659 : break;
25660 : }
25661 : break;
25662 :
25663 : case SMIN:
25664 : switch (pattern215 (x1))
25665 : {
25666 : case 0:
25667 : if ((
25668 : #line 27359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25669 : (TARGET_CMOVE
25670 : && ix86_pre_reload_split ()) &&
25671 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25672 : (!TARGET_64BIT)))
25673 : return 1866; /* *smindi3_doubleword */
25674 : if ((
25675 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25676 : (TARGET_CMOVE
25677 : && (DImode != QImode || !TARGET_PARTIAL_REG_STALL)
25678 : && ix86_pre_reload_split ()) &&
25679 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25680 : (TARGET_64BIT)))
25681 : return 1886; /* *smindi3_1 */
25682 : break;
25683 :
25684 : case 1:
25685 : if ((
25686 : #line 27359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25687 : (TARGET_CMOVE
25688 : && ix86_pre_reload_split ()) &&
25689 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25690 : (TARGET_64BIT)))
25691 : return 1870; /* *sminti3_doubleword */
25692 : break;
25693 :
25694 : case 2:
25695 : if (
25696 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25697 : (TARGET_CMOVE
25698 : && (QImode != QImode || !TARGET_PARTIAL_REG_STALL)
25699 : && ix86_pre_reload_split ()))
25700 : return 1874; /* *sminqi3_1 */
25701 : break;
25702 :
25703 : case 3:
25704 : if (
25705 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25706 : (TARGET_CMOVE
25707 : && (HImode != QImode || !TARGET_PARTIAL_REG_STALL)
25708 : && ix86_pre_reload_split ()))
25709 : return 1878; /* *sminhi3_1 */
25710 : break;
25711 :
25712 : case 4:
25713 : if (
25714 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25715 : (TARGET_CMOVE
25716 : && (SImode != QImode || !TARGET_PARTIAL_REG_STALL)
25717 : && ix86_pre_reload_split ()))
25718 : return 1882; /* *sminsi3_1 */
25719 : break;
25720 :
25721 : case 5:
25722 : if (
25723 : #line 894 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
25724 : (TARGET_3DNOW && ix86_binary_operator_ok (SMIN, V2SFmode, operands)))
25725 : return 2113; /* *mmx_sminv2sf3 */
25726 : break;
25727 :
25728 : default:
25729 : break;
25730 : }
25731 : break;
25732 :
25733 : case UMAX:
25734 : switch (pattern220 (x1))
25735 : {
25736 : case 0:
25737 : if ((
25738 : #line 27359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25739 : (TARGET_CMOVE
25740 : && ix86_pre_reload_split ()) &&
25741 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25742 : (!TARGET_64BIT)))
25743 : return 1867; /* *umaxdi3_doubleword */
25744 : if ((
25745 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25746 : (TARGET_CMOVE
25747 : && (DImode != QImode || !TARGET_PARTIAL_REG_STALL)
25748 : && ix86_pre_reload_split ()) &&
25749 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25750 : (TARGET_64BIT)))
25751 : return 1887; /* *umaxdi3_1 */
25752 : break;
25753 :
25754 : case 1:
25755 : if ((
25756 : #line 27359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25757 : (TARGET_CMOVE
25758 : && ix86_pre_reload_split ()) &&
25759 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25760 : (TARGET_64BIT)))
25761 : return 1871; /* *umaxti3_doubleword */
25762 : break;
25763 :
25764 : case 2:
25765 : if (
25766 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25767 : (TARGET_CMOVE
25768 : && (QImode != QImode || !TARGET_PARTIAL_REG_STALL)
25769 : && ix86_pre_reload_split ()))
25770 : return 1875; /* *umaxqi3_1 */
25771 : break;
25772 :
25773 : case 3:
25774 : if (
25775 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25776 : (TARGET_CMOVE
25777 : && (HImode != QImode || !TARGET_PARTIAL_REG_STALL)
25778 : && ix86_pre_reload_split ()))
25779 : return 1879; /* *umaxhi3_1 */
25780 : break;
25781 :
25782 : case 4:
25783 : if (
25784 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25785 : (TARGET_CMOVE
25786 : && (SImode != QImode || !TARGET_PARTIAL_REG_STALL)
25787 : && ix86_pre_reload_split ()))
25788 : return 1883; /* *umaxsi3_1 */
25789 : break;
25790 :
25791 : case 5:
25792 : x4 = XEXP (x3, 1);
25793 : if (rtx_equal_p (x4, operands[1])
25794 : &&
25795 : #line 27598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25796 : (TARGET_CMOVE
25797 : && ix86_pre_reload_split ()))
25798 : return 1889; /* *plus_within_umaxhi3_1 */
25799 : if (rtx_equal_p (x4, operands[2])
25800 : &&
25801 : #line 27598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25802 : (TARGET_CMOVE
25803 : && ix86_pre_reload_split ()))
25804 : return 1890; /* *plus_within_umaxhi3_2 */
25805 : break;
25806 :
25807 : case 6:
25808 : x4 = XEXP (x3, 1);
25809 : if (rtx_equal_p (x4, operands[1])
25810 : &&
25811 : #line 27598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25812 : (TARGET_CMOVE
25813 : && ix86_pre_reload_split ()))
25814 : return 1893; /* *plus_within_umaxsi3_1 */
25815 : if (rtx_equal_p (x4, operands[2])
25816 : &&
25817 : #line 27598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25818 : (TARGET_CMOVE
25819 : && ix86_pre_reload_split ()))
25820 : return 1894; /* *plus_within_umaxsi3_2 */
25821 : break;
25822 :
25823 : case 7:
25824 : x4 = XEXP (x3, 1);
25825 : if (rtx_equal_p (x4, operands[1])
25826 : && (
25827 : #line 27598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25828 : (TARGET_CMOVE
25829 : && ix86_pre_reload_split ()) &&
25830 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25831 : (TARGET_64BIT)))
25832 : return 1897; /* *plus_within_umaxdi3_1 */
25833 : if (rtx_equal_p (x4, operands[2])
25834 : && (
25835 : #line 27598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25836 : (TARGET_CMOVE
25837 : && ix86_pre_reload_split ()) &&
25838 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25839 : (TARGET_64BIT)))
25840 : return 1898; /* *plus_within_umaxdi3_2 */
25841 : break;
25842 :
25843 : case 8:
25844 : if (
25845 : #line 27631 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25846 : (TARGET_CMOVE
25847 : && ix86_pre_reload_split ()))
25848 : return 1901; /* *minus_within_umaxhi3 */
25849 : break;
25850 :
25851 : case 9:
25852 : if (
25853 : #line 27631 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25854 : (TARGET_CMOVE
25855 : && ix86_pre_reload_split ()))
25856 : return 1903; /* *minus_within_umaxsi3 */
25857 : break;
25858 :
25859 : case 10:
25860 : if ((
25861 : #line 27631 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25862 : (TARGET_CMOVE
25863 : && ix86_pre_reload_split ()) &&
25864 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25865 : (TARGET_64BIT)))
25866 : return 1905; /* *minus_within_umaxdi3 */
25867 : break;
25868 :
25869 : default:
25870 : break;
25871 : }
25872 : break;
25873 :
25874 : case UMIN:
25875 : switch (pattern220 (x1))
25876 : {
25877 : case 0:
25878 : if ((
25879 : #line 27359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25880 : (TARGET_CMOVE
25881 : && ix86_pre_reload_split ()) &&
25882 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25883 : (!TARGET_64BIT)))
25884 : return 1868; /* *umindi3_doubleword */
25885 : if ((
25886 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25887 : (TARGET_CMOVE
25888 : && (DImode != QImode || !TARGET_PARTIAL_REG_STALL)
25889 : && ix86_pre_reload_split ()) &&
25890 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25891 : (TARGET_64BIT)))
25892 : return 1888; /* *umindi3_1 */
25893 : break;
25894 :
25895 : case 1:
25896 : if ((
25897 : #line 27359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25898 : (TARGET_CMOVE
25899 : && ix86_pre_reload_split ()) &&
25900 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25901 : (TARGET_64BIT)))
25902 : return 1872; /* *uminti3_doubleword */
25903 : break;
25904 :
25905 : case 2:
25906 : if (
25907 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25908 : (TARGET_CMOVE
25909 : && (QImode != QImode || !TARGET_PARTIAL_REG_STALL)
25910 : && ix86_pre_reload_split ()))
25911 : return 1876; /* *uminqi3_1 */
25912 : break;
25913 :
25914 : case 3:
25915 : if (
25916 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25917 : (TARGET_CMOVE
25918 : && (HImode != QImode || !TARGET_PARTIAL_REG_STALL)
25919 : && ix86_pre_reload_split ()))
25920 : return 1880; /* *uminhi3_1 */
25921 : break;
25922 :
25923 : case 4:
25924 : if (
25925 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25926 : (TARGET_CMOVE
25927 : && (SImode != QImode || !TARGET_PARTIAL_REG_STALL)
25928 : && ix86_pre_reload_split ()))
25929 : return 1884; /* *uminsi3_1 */
25930 : break;
25931 :
25932 : case 5:
25933 : x4 = XEXP (x3, 1);
25934 : if (rtx_equal_p (x4, operands[1])
25935 : &&
25936 : #line 27598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25937 : (TARGET_CMOVE
25938 : && ix86_pre_reload_split ()))
25939 : return 1891; /* *plus_within_uminhi3_1 */
25940 : if (rtx_equal_p (x4, operands[2])
25941 : &&
25942 : #line 27598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25943 : (TARGET_CMOVE
25944 : && ix86_pre_reload_split ()))
25945 : return 1892; /* *plus_within_uminhi3_2 */
25946 : break;
25947 :
25948 : case 6:
25949 : x4 = XEXP (x3, 1);
25950 : if (rtx_equal_p (x4, operands[1])
25951 : &&
25952 : #line 27598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25953 : (TARGET_CMOVE
25954 : && ix86_pre_reload_split ()))
25955 : return 1895; /* *plus_within_uminsi3_1 */
25956 : if (rtx_equal_p (x4, operands[2])
25957 : &&
25958 : #line 27598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25959 : (TARGET_CMOVE
25960 : && ix86_pre_reload_split ()))
25961 : return 1896; /* *plus_within_uminsi3_2 */
25962 : break;
25963 :
25964 : case 7:
25965 : x4 = XEXP (x3, 1);
25966 : if (rtx_equal_p (x4, operands[1])
25967 : && (
25968 : #line 27598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25969 : (TARGET_CMOVE
25970 : && ix86_pre_reload_split ()) &&
25971 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25972 : (TARGET_64BIT)))
25973 : return 1899; /* *plus_within_umindi3_1 */
25974 : if (rtx_equal_p (x4, operands[2])
25975 : && (
25976 : #line 27598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25977 : (TARGET_CMOVE
25978 : && ix86_pre_reload_split ()) &&
25979 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25980 : (TARGET_64BIT)))
25981 : return 1900; /* *plus_within_umindi3_2 */
25982 : break;
25983 :
25984 : case 8:
25985 : if (
25986 : #line 27631 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25987 : (TARGET_CMOVE
25988 : && ix86_pre_reload_split ()))
25989 : return 1902; /* *minus_within_uminhi3 */
25990 : break;
25991 :
25992 : case 9:
25993 : if (
25994 : #line 27631 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25995 : (TARGET_CMOVE
25996 : && ix86_pre_reload_split ()))
25997 : return 1904; /* *minus_within_uminsi3 */
25998 : break;
25999 :
26000 : case 10:
26001 : if ((
26002 : #line 27631 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26003 : (TARGET_CMOVE
26004 : && ix86_pre_reload_split ()) &&
26005 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26006 : (TARGET_64BIT)))
26007 : return 1906; /* *minus_within_umindi3 */
26008 : break;
26009 :
26010 : default:
26011 : break;
26012 : }
26013 : break;
26014 :
26015 : case UNSPEC_VOLATILE:
26016 : res = recog_424 (x1, insn, pnum_clobbers);
26017 : if (res >= 0)
26018 : return res;
26019 : break;
26020 :
26021 : case VEC_MERGE:
26022 : if (pattern221 (x1) == 0
26023 : &&
26024 : #line 8696 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26025 : ((TARGET_MMX || TARGET_MMX_WITH_SSE) && TARGET_SSE))
26026 : return 4825; /* sse_cvtpi2ps */
26027 : break;
26028 :
26029 : case VEC_CONCAT:
26030 : res = recog_425 (x1, insn, pnum_clobbers);
26031 : if (res >= 0)
26032 : return res;
26033 : break;
26034 :
26035 : case VEC_DUPLICATE:
26036 : res = recog_426 (x1, insn, pnum_clobbers);
26037 : if (res >= 0)
26038 : return res;
26039 : break;
26040 :
26041 : case VEC_SELECT:
26042 : res = recog_427 (x1, insn, pnum_clobbers);
26043 : if (res >= 0)
26044 : return res;
26045 : break;
26046 :
26047 : default:
26048 : break;
26049 : }
26050 : x5 = XVECEXP (x1, 0, 1);
26051 : if (GET_CODE (x5) != UNSPEC
26052 : || XVECLEN (x5, 0) != 1
26053 : || XINT (x5, 1) != 39)
26054 : return -1;
26055 : return recog_428 (x1, insn, pnum_clobbers);
26056 : }
26057 :
26058 : rtx_insn *
26059 : split_24 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
26060 : {
26061 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
26062 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
26063 : rtx x10, x11;
26064 : rtx_insn *res ATTRIBUTE_UNUSED;
26065 : x2 = XVECEXP (x1, 0, 1);
26066 : if (pattern236 (x2,
26067 : E_CCmode,
26068 : 17) != 0)
26069 : return NULL;
26070 : x3 = XVECEXP (x1, 0, 0);
26071 : x4 = XEXP (x3, 1);
26072 : x5 = XEXP (x4, 0);
26073 : switch (GET_CODE (x5))
26074 : {
26075 : case CONST_INT:
26076 : case CONST_WIDE_INT:
26077 : case CONST_POLY_INT:
26078 : case CONST_FIXED:
26079 : case CONST_DOUBLE:
26080 : case CONST_VECTOR:
26081 : case CONST:
26082 : case REG:
26083 : case SUBREG:
26084 : case MEM:
26085 : case LABEL_REF:
26086 : case SYMBOL_REF:
26087 : case HIGH:
26088 : operands[1] = x5;
26089 : switch (pattern1188 (x3))
26090 : {
26091 : case 0:
26092 : if ((
26093 : #line 13083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26094 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
26095 : #line 13087 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26096 : ( reload_completed
26097 : && !(rtx_equal_p (operands[0], operands[1])
26098 : || rtx_equal_p (operands[0], operands[2])))))
26099 : return gen_split_295 (insn, operands);
26100 : break;
26101 :
26102 : case 1:
26103 : if ((
26104 : #line 13083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26105 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
26106 : #line 13087 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26107 : ( reload_completed
26108 : && !(rtx_equal_p (operands[0], operands[1])
26109 : || rtx_equal_p (operands[0], operands[2])))))
26110 : return gen_split_298 (insn, operands);
26111 : break;
26112 :
26113 : case 2:
26114 : if (nonimmediate_operand (operands[0], E_DImode)
26115 : && nonimmediate_operand (operands[1], E_DImode))
26116 : {
26117 : if (x86_64_hilo_general_operand (operands[2], E_DImode)
26118 : && ((
26119 : #line 13847 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26120 : (ix86_binary_operator_ok (XOR, DImode, operands, TARGET_APX_NDD)) &&
26121 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26122 : (!TARGET_64BIT)) &&
26123 : #line 13849 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26124 : ( reload_completed)))
26125 : return gen_split_394 (insn, operands);
26126 : if (const_int_operand (operands[2], E_DImode)
26127 : && (
26128 : #line 13975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26129 : (TARGET_64BIT && TARGET_USE_BT
26130 : && ix86_binary_operator_ok (XOR, DImode, operands)
26131 : && IN_RANGE (exact_log2 (INTVAL (operands[2])), 31, 63)) &&
26132 : #line 13979 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26133 : ( reload_completed)))
26134 : return gen_split_401 (insn, operands);
26135 : }
26136 : if (const_int_operand (operands[2], E_DImode))
26137 : {
26138 : if (QIreg_operand (operands[0], E_DImode)
26139 : && register_operand (operands[1], E_DImode)
26140 : && (
26141 : #line 14288 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26142 : (reload_completed
26143 : && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
26144 : && !(INTVAL (operands[2]) & ~(255 << 8))
26145 : && !(TARGET_APX_NDD && REGNO (operands[0]) != REGNO (operands[1]))) &&
26146 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26147 : (TARGET_64BIT)))
26148 : return gen_split_429 (insn, operands);
26149 : if (any_QIreg_operand (operands[0], E_DImode)
26150 : && general_operand (operands[1], E_DImode)
26151 : && (
26152 : #line 14326 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26153 : (reload_completed
26154 : && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
26155 : && !(INTVAL (operands[2]) & ~255)
26156 : && (INTVAL (operands[2]) & 128)
26157 : && !(TARGET_APX_NDD
26158 : && !rtx_equal_p (operands[0], operands[1]))) &&
26159 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26160 : (TARGET_64BIT)))
26161 : return gen_split_435 (insn, operands);
26162 : }
26163 : break;
26164 :
26165 : case 3:
26166 : if (((
26167 : #line 13847 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26168 : (ix86_binary_operator_ok (XOR, TImode, operands, TARGET_APX_NDD)) &&
26169 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26170 : (TARGET_64BIT)) &&
26171 : #line 13849 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26172 : ( reload_completed)))
26173 : return gen_split_396 (insn, operands);
26174 : break;
26175 :
26176 : case 4:
26177 : if (QIreg_operand (operands[0], E_HImode)
26178 : && register_operand (operands[1], E_HImode)
26179 : &&
26180 : #line 14288 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26181 : (reload_completed
26182 : && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
26183 : && !(INTVAL (operands[2]) & ~(255 << 8))
26184 : && !(TARGET_APX_NDD && REGNO (operands[0]) != REGNO (operands[1]))))
26185 : return gen_split_425 (insn, operands);
26186 : if (any_QIreg_operand (operands[0], E_HImode)
26187 : && general_operand (operands[1], E_HImode)
26188 : &&
26189 : #line 14326 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26190 : (reload_completed
26191 : && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
26192 : && !(INTVAL (operands[2]) & ~255)
26193 : && (INTVAL (operands[2]) & 128)
26194 : && !(TARGET_APX_NDD
26195 : && !rtx_equal_p (operands[0], operands[1]))))
26196 : return gen_split_431 (insn, operands);
26197 : break;
26198 :
26199 : case 5:
26200 : if (QIreg_operand (operands[0], E_SImode)
26201 : && register_operand (operands[1], E_SImode)
26202 : &&
26203 : #line 14288 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26204 : (reload_completed
26205 : && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
26206 : && !(INTVAL (operands[2]) & ~(255 << 8))
26207 : && !(TARGET_APX_NDD && REGNO (operands[0]) != REGNO (operands[1]))))
26208 : return gen_split_427 (insn, operands);
26209 : if (any_QIreg_operand (operands[0], E_SImode)
26210 : && general_operand (operands[1], E_SImode)
26211 : &&
26212 : #line 14326 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26213 : (reload_completed
26214 : && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
26215 : && !(INTVAL (operands[2]) & ~255)
26216 : && (INTVAL (operands[2]) & 128)
26217 : && !(TARGET_APX_NDD
26218 : && !rtx_equal_p (operands[0], operands[1]))))
26219 : return gen_split_433 (insn, operands);
26220 : break;
26221 :
26222 : default:
26223 : break;
26224 : }
26225 : if (GET_CODE (x5) != SUBREG
26226 : || pattern1187 (x4) != 0)
26227 : return NULL;
26228 : x6 = XEXP (x5, 0);
26229 : x7 = XEXP (x6, 0);
26230 : operands[2] = x7;
26231 : switch (pattern1644 (x3))
26232 : {
26233 : case 0:
26234 : if ((
26235 : #line 13108 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26236 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
26237 : #line 13112 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26238 : ( reload_completed
26239 : && !rtx_equal_p (operands[0], operands[1]))))
26240 : return gen_split_301 (insn, operands);
26241 : break;
26242 :
26243 : case 1:
26244 : if ((
26245 : #line 13108 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26246 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
26247 : #line 13112 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26248 : ( reload_completed
26249 : && !rtx_equal_p (operands[0], operands[1]))))
26250 : return gen_split_304 (insn, operands);
26251 : break;
26252 :
26253 : case 2:
26254 : if (((
26255 : #line 13108 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26256 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
26257 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26258 : (TARGET_64BIT)) &&
26259 : #line 13112 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26260 : ( reload_completed
26261 : && !rtx_equal_p (operands[0], operands[1]))))
26262 : return gen_split_307 (insn, operands);
26263 : break;
26264 :
26265 : default:
26266 : break;
26267 : }
26268 : operands[1] = x7;
26269 : switch (pattern1645 (x3))
26270 : {
26271 : case 0:
26272 : if (!(
26273 : #line 13137 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26274 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
26275 : #line 13139 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26276 : ( reload_completed)))
26277 : return NULL;
26278 : return gen_split_310 (insn, operands);
26279 :
26280 : case 1:
26281 : if (!(
26282 : #line 13137 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26283 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
26284 : #line 13139 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26285 : ( reload_completed)))
26286 : return NULL;
26287 : return gen_split_313 (insn, operands);
26288 :
26289 : case 2:
26290 : if (!((
26291 : #line 13137 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26292 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
26293 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26294 : (TARGET_64BIT)) &&
26295 : #line 13139 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26296 : ( reload_completed)))
26297 : return NULL;
26298 : return gen_split_316 (insn, operands);
26299 :
26300 : case 3:
26301 : if (!
26302 : #line 13374 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26303 : ( reload_completed))
26304 : return NULL;
26305 : return gen_split_330 (insn, operands);
26306 :
26307 : case 4:
26308 : if (!
26309 : #line 13374 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26310 : ( reload_completed))
26311 : return NULL;
26312 : return gen_split_333 (insn, operands);
26313 :
26314 : case 5:
26315 : if (!(
26316 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26317 : (TARGET_64BIT) &&
26318 : #line 13374 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26319 : ( reload_completed)))
26320 : return NULL;
26321 : return gen_split_336 (insn, operands);
26322 :
26323 : default:
26324 : return NULL;
26325 : }
26326 :
26327 : case XOR:
26328 : x6 = XEXP (x5, 0);
26329 : if (GET_CODE (x6) != IOR)
26330 : return NULL;
26331 : x8 = XEXP (x3, 0);
26332 : operands[0] = x8;
26333 : x7 = XEXP (x6, 0);
26334 : operands[1] = x7;
26335 : x9 = XEXP (x6, 1);
26336 : operands[2] = x9;
26337 : switch (GET_MODE (operands[0]))
26338 : {
26339 : case E_SImode:
26340 : if (pattern1254 (x4,
26341 : E_SImode) != 0)
26342 : return NULL;
26343 : x10 = XEXP (x4, 1);
26344 : operands[3] = x10;
26345 : if (nonimmediate_operand (operands[3], E_SImode))
26346 : {
26347 : if (nonimmediate_operand (operands[2], E_SImode))
26348 : {
26349 : x11 = XEXP (x5, 1);
26350 : if (rtx_equal_p (x11, operands[1])
26351 : &&
26352 : #line 13756 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26353 : (TARGET_BMI))
26354 : return gen_split_385 (insn, operands);
26355 : }
26356 : if (register_operand (operands[2], E_SImode))
26357 : {
26358 : x11 = XEXP (x5, 1);
26359 : if (rtx_equal_p (x11, operands[2])
26360 : &&
26361 : #line 13775 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26362 : (TARGET_BMI))
26363 : return gen_split_387 (insn, operands);
26364 : }
26365 : }
26366 : x11 = XEXP (x5, 1);
26367 : operands[3] = x11;
26368 : if (!nonimmediate_operand (operands[3], E_SImode))
26369 : return NULL;
26370 : if (nonimmediate_operand (operands[2], E_SImode)
26371 : && rtx_equal_p (x10, operands[1])
26372 : &&
26373 : #line 13794 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26374 : (TARGET_BMI))
26375 : return gen_split_389 (insn, operands);
26376 : if (!register_operand (operands[2], E_SImode)
26377 : || !rtx_equal_p (x10, operands[2])
26378 : || !
26379 : #line 13813 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26380 : (TARGET_BMI))
26381 : return NULL;
26382 : return gen_split_391 (insn, operands);
26383 :
26384 : case E_DImode:
26385 : if (pattern1254 (x4,
26386 : E_DImode) != 0)
26387 : return NULL;
26388 : x10 = XEXP (x4, 1);
26389 : operands[3] = x10;
26390 : if (nonimmediate_operand (operands[3], E_DImode))
26391 : {
26392 : if (nonimmediate_operand (operands[2], E_DImode))
26393 : {
26394 : x11 = XEXP (x5, 1);
26395 : if (rtx_equal_p (x11, operands[1])
26396 : && (
26397 : #line 13756 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26398 : (TARGET_BMI) &&
26399 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26400 : (TARGET_64BIT)))
26401 : return gen_split_386 (insn, operands);
26402 : }
26403 : if (register_operand (operands[2], E_DImode))
26404 : {
26405 : x11 = XEXP (x5, 1);
26406 : if (rtx_equal_p (x11, operands[2])
26407 : && (
26408 : #line 13775 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26409 : (TARGET_BMI) &&
26410 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26411 : (TARGET_64BIT)))
26412 : return gen_split_388 (insn, operands);
26413 : }
26414 : }
26415 : x11 = XEXP (x5, 1);
26416 : operands[3] = x11;
26417 : if (!nonimmediate_operand (operands[3], E_DImode))
26418 : return NULL;
26419 : if (nonimmediate_operand (operands[2], E_DImode)
26420 : && rtx_equal_p (x10, operands[1])
26421 : && (
26422 : #line 13794 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26423 : (TARGET_BMI) &&
26424 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26425 : (TARGET_64BIT)))
26426 : return gen_split_390 (insn, operands);
26427 : if (!register_operand (operands[2], E_DImode)
26428 : || !rtx_equal_p (x10, operands[2])
26429 : || !(
26430 : #line 13813 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26431 : (TARGET_BMI) &&
26432 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26433 : (TARGET_64BIT)))
26434 : return NULL;
26435 : return gen_split_392 (insn, operands);
26436 :
26437 : default:
26438 : return NULL;
26439 : }
26440 :
26441 : case AND:
26442 : x6 = XEXP (x5, 0);
26443 : if (GET_CODE (x6) != XOR)
26444 : return NULL;
26445 : switch (pattern1060 (x3))
26446 : {
26447 : case 0:
26448 : if (!(
26449 : #line 14004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26450 : (TARGET_BMI && ix86_pre_reload_split ()) &&
26451 : #line 14006 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26452 : ( 1)))
26453 : return NULL;
26454 : return gen_split_402 (insn, operands);
26455 :
26456 : case 1:
26457 : if (!(
26458 : #line 14004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26459 : (TARGET_BMI && ix86_pre_reload_split ()) &&
26460 : #line 14006 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26461 : ( 1)))
26462 : return NULL;
26463 : return gen_split_403 (insn, operands);
26464 :
26465 : case 2:
26466 : if (!((
26467 : #line 14004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26468 : (TARGET_BMI && ix86_pre_reload_split ()) &&
26469 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26470 : (TARGET_64BIT)) &&
26471 : #line 14006 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26472 : ( 1)))
26473 : return NULL;
26474 : return gen_split_404 (insn, operands);
26475 :
26476 : default:
26477 : return NULL;
26478 : }
26479 :
26480 : case ASHIFT:
26481 : switch (pattern1068 (x3,
26482 : 1))
26483 : {
26484 : case 0:
26485 : if (!(
26486 : #line 19184 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26487 : (TARGET_USE_BT
26488 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (SImode)-1))
26489 : == GET_MODE_BITSIZE (SImode)-1
26490 : && ix86_pre_reload_split ()) &&
26491 : #line 19189 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26492 : ( 1)))
26493 : return NULL;
26494 : return gen_split_803 (insn, operands);
26495 :
26496 : case 1:
26497 : if (!((
26498 : #line 19184 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26499 : (TARGET_USE_BT
26500 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (DImode)-1))
26501 : == GET_MODE_BITSIZE (DImode)-1
26502 : && ix86_pre_reload_split ()) &&
26503 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26504 : (TARGET_64BIT)) &&
26505 : #line 19189 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26506 : ( 1)))
26507 : return NULL;
26508 : return gen_split_805 (insn, operands);
26509 :
26510 : case 2:
26511 : if (!(
26512 : #line 19212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26513 : (TARGET_USE_BT
26514 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (SImode)-1))
26515 : == GET_MODE_BITSIZE (SImode)-1
26516 : && ix86_pre_reload_split ()) &&
26517 : #line 19217 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26518 : ( 1)))
26519 : return NULL;
26520 : return gen_split_807 (insn, operands);
26521 :
26522 : case 3:
26523 : if (!((
26524 : #line 19212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26525 : (TARGET_USE_BT
26526 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (DImode)-1))
26527 : == GET_MODE_BITSIZE (DImode)-1
26528 : && ix86_pre_reload_split ()) &&
26529 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26530 : (TARGET_64BIT)) &&
26531 : #line 19217 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26532 : ( 1)))
26533 : return NULL;
26534 : return gen_split_809 (insn, operands);
26535 :
26536 : default:
26537 : return NULL;
26538 : }
26539 :
26540 : case SIGN_EXTEND:
26541 : if (pattern1069 (x3) != 0
26542 : || !(
26543 : #line 21681 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26544 : (!TARGET_LZCNT && TARGET_64BIT && ix86_pre_reload_split ()) &&
26545 : #line 21683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26546 : ( 1)))
26547 : return NULL;
26548 : return gen_split_884 (insn, operands);
26549 :
26550 : case ZERO_EXTEND:
26551 : if (pattern1069 (x3) != 0
26552 : || !(
26553 : #line 21681 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26554 : (!TARGET_LZCNT && TARGET_64BIT && ix86_pre_reload_split ()) &&
26555 : #line 21683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26556 : ( 1)))
26557 : return NULL;
26558 : return gen_split_885 (insn, operands);
26559 :
26560 : case PLUS:
26561 : x11 = XEXP (x5, 1);
26562 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + -1])
26563 : return NULL;
26564 : switch (pattern952 (x3))
26565 : {
26566 : case 0:
26567 : if (!
26568 : #line 22237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26569 : (TARGET_AVOID_FALSE_DEP_FOR_BLS
26570 : && epilogue_completed
26571 : && optimize_function_for_speed_p (cfun)
26572 : && !reg_mentioned_p (operands[0], operands[1])))
26573 : return NULL;
26574 : return gen_split_912 (insn, operands);
26575 :
26576 : case 1:
26577 : if (!(
26578 : #line 22237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26579 : (TARGET_AVOID_FALSE_DEP_FOR_BLS
26580 : && epilogue_completed
26581 : && optimize_function_for_speed_p (cfun)
26582 : && !reg_mentioned_p (operands[0], operands[1])) &&
26583 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26584 : (TARGET_64BIT)))
26585 : return NULL;
26586 : return gen_split_913 (insn, operands);
26587 :
26588 : default:
26589 : return NULL;
26590 : }
26591 :
26592 : default:
26593 : return NULL;
26594 : }
26595 : }
26596 :
26597 : rtx_insn *
26598 : split_34 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
26599 : {
26600 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
26601 : rtx x2, x3, x4, x5, x6;
26602 : rtx_insn *res ATTRIBUTE_UNUSED;
26603 : switch (pattern407 (x1))
26604 : {
26605 : case 0:
26606 : if (!(
26607 : #line 18532 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26608 : (ix86_binary_operator_ok (ROTATERT, QImode, operands)
26609 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (QImode)-1))
26610 : == GET_MODE_BITSIZE (QImode)-1
26611 : && ix86_pre_reload_split ()) &&
26612 : #line 18537 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26613 : ( 1)))
26614 : return NULL;
26615 : return gen_split_701 (insn, operands);
26616 :
26617 : case 1:
26618 : if (!(
26619 : #line 18532 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26620 : (ix86_binary_operator_ok (ROTATERT, HImode, operands)
26621 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (HImode)-1))
26622 : == GET_MODE_BITSIZE (HImode)-1
26623 : && ix86_pre_reload_split ()) &&
26624 : #line 18537 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26625 : ( 1)))
26626 : return NULL;
26627 : return gen_split_703 (insn, operands);
26628 :
26629 : case 2:
26630 : if (!(
26631 : #line 18532 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26632 : (ix86_binary_operator_ok (ROTATERT, SImode, operands)
26633 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
26634 : == GET_MODE_BITSIZE (SImode)-1
26635 : && ix86_pre_reload_split ()) &&
26636 : #line 18537 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26637 : ( 1)))
26638 : return NULL;
26639 : return gen_split_705 (insn, operands);
26640 :
26641 : case 3:
26642 : if (!((
26643 : #line 18532 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26644 : (ix86_binary_operator_ok (ROTATERT, DImode, operands)
26645 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
26646 : == GET_MODE_BITSIZE (DImode)-1
26647 : && ix86_pre_reload_split ()) &&
26648 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26649 : (TARGET_64BIT)) &&
26650 : #line 18537 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26651 : ( 1)))
26652 : return NULL;
26653 : return gen_split_707 (insn, operands);
26654 :
26655 : case 4:
26656 : if (!(
26657 : #line 18613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26658 : (ix86_binary_operator_ok (ROTATERT, QImode, operands)
26659 : && (INTVAL (operands[3]) & (1 * BITS_PER_UNIT - 1)) == 0
26660 : && ix86_pre_reload_split ()) &&
26661 : #line 18617 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26662 : ( 1)))
26663 : return NULL;
26664 : return gen_split_733 (insn, operands);
26665 :
26666 : case 5:
26667 : if (!(
26668 : #line 18613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26669 : (ix86_binary_operator_ok (ROTATERT, HImode, operands)
26670 : && (INTVAL (operands[3]) & (2 * BITS_PER_UNIT - 1)) == 0
26671 : && ix86_pre_reload_split ()) &&
26672 : #line 18617 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26673 : ( 1)))
26674 : return NULL;
26675 : return gen_split_735 (insn, operands);
26676 :
26677 : case 6:
26678 : if (!(
26679 : #line 18613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26680 : (ix86_binary_operator_ok (ROTATERT, SImode, operands)
26681 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
26682 : && ix86_pre_reload_split ()) &&
26683 : #line 18617 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26684 : ( 1)))
26685 : return NULL;
26686 : return gen_split_737 (insn, operands);
26687 :
26688 : case 7:
26689 : if (!((
26690 : #line 18613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26691 : (ix86_binary_operator_ok (ROTATERT, DImode, operands)
26692 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
26693 : && ix86_pre_reload_split ()) &&
26694 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26695 : (TARGET_64BIT)) &&
26696 : #line 18617 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26697 : ( 1)))
26698 : return NULL;
26699 : return gen_split_739 (insn, operands);
26700 :
26701 : case 8:
26702 : if (!(
26703 : #line 18682 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26704 : (ix86_binary_operator_ok (ROTATERT, QImode, operands)
26705 : && (INTVAL (operands[3]) & (1 * BITS_PER_UNIT - 1)) == 0
26706 : && ix86_pre_reload_split ()) &&
26707 : #line 18686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26708 : ( 1)))
26709 : return NULL;
26710 : return gen_split_765 (insn, operands);
26711 :
26712 : case 9:
26713 : if (!(
26714 : #line 18682 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26715 : (ix86_binary_operator_ok (ROTATERT, HImode, operands)
26716 : && (INTVAL (operands[3]) & (2 * BITS_PER_UNIT - 1)) == 0
26717 : && ix86_pre_reload_split ()) &&
26718 : #line 18686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26719 : ( 1)))
26720 : return NULL;
26721 : return gen_split_767 (insn, operands);
26722 :
26723 : case 10:
26724 : if (!(
26725 : #line 18682 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26726 : (ix86_binary_operator_ok (ROTATERT, SImode, operands)
26727 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
26728 : && ix86_pre_reload_split ()) &&
26729 : #line 18686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26730 : ( 1)))
26731 : return NULL;
26732 : return gen_split_769 (insn, operands);
26733 :
26734 : case 11:
26735 : if (!((
26736 : #line 18682 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26737 : (ix86_binary_operator_ok (ROTATERT, DImode, operands)
26738 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
26739 : && ix86_pre_reload_split ()) &&
26740 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26741 : (TARGET_64BIT)) &&
26742 : #line 18686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26743 : ( 1)))
26744 : return NULL;
26745 : return gen_split_771 (insn, operands);
26746 :
26747 : case 12:
26748 : x2 = XVECEXP (x1, 0, 0);
26749 : x3 = XEXP (x2, 0);
26750 : operands[0] = x3;
26751 : x4 = XEXP (x2, 1);
26752 : switch (pattern1189 (x4))
26753 : {
26754 : case 0:
26755 : if ((
26756 : #line 18484 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26757 : (ix86_binary_operator_ok (ROTATERT, QImode, operands)
26758 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (QImode)-1))
26759 : == GET_MODE_BITSIZE (QImode)-1
26760 : && ix86_pre_reload_split ()) &&
26761 : #line 18489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26762 : ( 1)))
26763 : return gen_split_685 (insn, operands);
26764 : break;
26765 :
26766 : case 1:
26767 : if ((
26768 : #line 18484 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26769 : (ix86_binary_operator_ok (ROTATERT, HImode, operands)
26770 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (HImode)-1))
26771 : == GET_MODE_BITSIZE (HImode)-1
26772 : && ix86_pre_reload_split ()) &&
26773 : #line 18489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26774 : ( 1)))
26775 : return gen_split_687 (insn, operands);
26776 : break;
26777 :
26778 : case 2:
26779 : if ((
26780 : #line 18484 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26781 : (ix86_binary_operator_ok (ROTATERT, SImode, operands)
26782 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
26783 : == GET_MODE_BITSIZE (SImode)-1
26784 : && ix86_pre_reload_split ()) &&
26785 : #line 18489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26786 : ( 1)))
26787 : return gen_split_689 (insn, operands);
26788 : break;
26789 :
26790 : case 3:
26791 : if (((
26792 : #line 18484 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26793 : (ix86_binary_operator_ok (ROTATERT, DImode, operands)
26794 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
26795 : == GET_MODE_BITSIZE (DImode)-1
26796 : && ix86_pre_reload_split ()) &&
26797 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26798 : (TARGET_64BIT)) &&
26799 : #line 18489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26800 : ( 1)))
26801 : return gen_split_691 (insn, operands);
26802 : break;
26803 :
26804 : case 4:
26805 : if ((
26806 : #line 18577 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26807 : (ix86_binary_operator_ok (ROTATERT, QImode, operands)
26808 : && (INTVAL (operands[3]) & (1 * BITS_PER_UNIT - 1)) == 0
26809 : && ix86_pre_reload_split ()) &&
26810 : #line 18581 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26811 : ( 1)))
26812 : return gen_split_717 (insn, operands);
26813 : break;
26814 :
26815 : case 5:
26816 : if ((
26817 : #line 18577 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26818 : (ix86_binary_operator_ok (ROTATERT, HImode, operands)
26819 : && (INTVAL (operands[3]) & (2 * BITS_PER_UNIT - 1)) == 0
26820 : && ix86_pre_reload_split ()) &&
26821 : #line 18581 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26822 : ( 1)))
26823 : return gen_split_719 (insn, operands);
26824 : break;
26825 :
26826 : case 6:
26827 : if ((
26828 : #line 18577 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26829 : (ix86_binary_operator_ok (ROTATERT, SImode, operands)
26830 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
26831 : && ix86_pre_reload_split ()) &&
26832 : #line 18581 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26833 : ( 1)))
26834 : return gen_split_721 (insn, operands);
26835 : break;
26836 :
26837 : case 7:
26838 : if (((
26839 : #line 18577 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26840 : (ix86_binary_operator_ok (ROTATERT, DImode, operands)
26841 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
26842 : && ix86_pre_reload_split ()) &&
26843 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26844 : (TARGET_64BIT)) &&
26845 : #line 18581 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26846 : ( 1)))
26847 : return gen_split_723 (insn, operands);
26848 : break;
26849 :
26850 : case 8:
26851 : if ((
26852 : #line 18646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26853 : (ix86_binary_operator_ok (ROTATERT, QImode, operands)
26854 : && (INTVAL (operands[3]) & (1 * BITS_PER_UNIT - 1)) == 0
26855 : && ix86_pre_reload_split ()) &&
26856 : #line 18650 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26857 : ( 1)))
26858 : return gen_split_749 (insn, operands);
26859 : break;
26860 :
26861 : case 9:
26862 : if ((
26863 : #line 18646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26864 : (ix86_binary_operator_ok (ROTATERT, HImode, operands)
26865 : && (INTVAL (operands[3]) & (2 * BITS_PER_UNIT - 1)) == 0
26866 : && ix86_pre_reload_split ()) &&
26867 : #line 18650 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26868 : ( 1)))
26869 : return gen_split_751 (insn, operands);
26870 : break;
26871 :
26872 : case 10:
26873 : if ((
26874 : #line 18646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26875 : (ix86_binary_operator_ok (ROTATERT, SImode, operands)
26876 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
26877 : && ix86_pre_reload_split ()) &&
26878 : #line 18650 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26879 : ( 1)))
26880 : return gen_split_753 (insn, operands);
26881 : break;
26882 :
26883 : case 11:
26884 : if (((
26885 : #line 18646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26886 : (ix86_binary_operator_ok (ROTATERT, DImode, operands)
26887 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
26888 : && ix86_pre_reload_split ()) &&
26889 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26890 : (TARGET_64BIT)) &&
26891 : #line 18650 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26892 : ( 1)))
26893 : return gen_split_755 (insn, operands);
26894 : break;
26895 :
26896 : case 12:
26897 : x5 = XEXP (x4, 1);
26898 : operands[2] = x5;
26899 : switch (pattern1347 (x4))
26900 : {
26901 : case 0:
26902 : if (
26903 : #line 18911 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26904 : (TARGET_BMI2 && reload_completed && !optimize_function_for_size_p (cfun)))
26905 : return gen_split_792 (insn, operands);
26906 : break;
26907 :
26908 : case 1:
26909 : if ((
26910 : #line 18911 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26911 : (TARGET_BMI2 && reload_completed && !optimize_function_for_size_p (cfun)) &&
26912 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26913 : (TARGET_64BIT)))
26914 : return gen_split_793 (insn, operands);
26915 : break;
26916 :
26917 : default:
26918 : break;
26919 : }
26920 : if (XWINT (x5, 0) == 8L
26921 : && QIreg_operand (operands[0], E_HImode)
26922 : && GET_MODE (x4) == E_HImode)
26923 : {
26924 : x6 = XEXP (x4, 0);
26925 : if (rtx_equal_p (x6, operands[0])
26926 : &&
26927 : #line 19083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26928 : (reload_completed
26929 : && (TARGET_USE_XCHGB || optimize_function_for_size_p (cfun))))
26930 : return gen_split_801 (insn, operands);
26931 : }
26932 : break;
26933 :
26934 : default:
26935 : break;
26936 : }
26937 : x5 = XEXP (x4, 1);
26938 : operands[2] = x5;
26939 : switch (pattern1190 (x2))
26940 : {
26941 : case 0:
26942 : if (!(
26943 : #line 19050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26944 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
26945 : #line 19061 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26946 : ( reload_completed
26947 : && !(rtx_equal_p (operands[0], operands[1])))))
26948 : return NULL;
26949 : return gen_split_797 (insn, operands);
26950 :
26951 : case 1:
26952 : if (!(
26953 : #line 19050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26954 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
26955 : #line 19061 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26956 : ( reload_completed
26957 : && !(rtx_equal_p (operands[0], operands[1])))))
26958 : return NULL;
26959 : return gen_split_799 (insn, operands);
26960 :
26961 : default:
26962 : return NULL;
26963 : }
26964 :
26965 : default:
26966 : return NULL;
26967 : }
26968 : }
26969 :
26970 : rtx_insn *
26971 : split_46 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
26972 : {
26973 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
26974 : rtx x2, x3, x4, x5, x6, x7;
26975 : rtx_insn *res ATTRIBUTE_UNUSED;
26976 : x2 = XEXP (x1, 0);
26977 : operands[0] = x2;
26978 : x3 = XEXP (x1, 1);
26979 : x4 = XEXP (x3, 0);
26980 : switch (GET_CODE (x4))
26981 : {
26982 : case REG:
26983 : operands[1] = x4;
26984 : if (general_reg_operand (operands[1], E_VOIDmode)
26985 : && general_reg_operand (operands[0], E_VOIDmode)
26986 : &&
26987 : #line 28310 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26988 : (! TARGET_PARTIAL_REG_STALL && reload_completed
26989 : && (GET_MODE (operands[0]) == HImode
26990 : || (GET_MODE (operands[0]) == QImode && TARGET_PROMOTE_QImode))))
26991 : return gen_split_1015 (insn, operands);
26992 : if (general_reg_operand (operands[1], E_V4QImode)
26993 : && general_reg_operand (operands[0], E_V4QImode)
26994 : && GET_MODE (x3) == E_V4QImode
26995 : &&
26996 : #line 4585 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26997 : (reload_completed))
26998 : return gen_split_1113 (insn, operands);
26999 : if (general_reg_operand (operands[1], E_V2QImode)
27000 : && general_reg_operand (operands[0], E_V2QImode)
27001 : && GET_MODE (x3) == E_V2QImode
27002 : &&
27003 : #line 4585 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
27004 : (reload_completed))
27005 : return gen_split_1114 (insn, operands);
27006 : if (general_reg_operand (operands[1], E_V2HImode)
27007 : && general_reg_operand (operands[0], E_V2HImode)
27008 : && GET_MODE (x3) == E_V2HImode
27009 : &&
27010 : #line 4585 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
27011 : (reload_completed))
27012 : return gen_split_1115 (insn, operands);
27013 : if (sse_reg_operand (operands[1], E_V4QImode)
27014 : && sse_reg_operand (operands[0], E_V4QImode)
27015 : && GET_MODE (x3) == E_V4QImode
27016 : &&
27017 : #line 4597 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
27018 : (TARGET_SSE2 && reload_completed))
27019 : return gen_split_1116 (insn, operands);
27020 : if (sse_reg_operand (operands[1], E_V2QImode)
27021 : && sse_reg_operand (operands[0], E_V2QImode)
27022 : && GET_MODE (x3) == E_V2QImode
27023 : &&
27024 : #line 4597 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
27025 : (TARGET_SSE2 && reload_completed))
27026 : return gen_split_1117 (insn, operands);
27027 : if (sse_reg_operand (operands[1], E_V2HImode)
27028 : && sse_reg_operand (operands[0], E_V2HImode)
27029 : && GET_MODE (x3) == E_V2HImode
27030 : &&
27031 : #line 4597 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
27032 : (TARGET_SSE2 && reload_completed))
27033 : return gen_split_1118 (insn, operands);
27034 : if (mask_reg_operand (operands[1], E_QImode)
27035 : && mask_reg_operand (operands[0], E_QImode)
27036 : && GET_MODE (x3) == E_QImode
27037 : &&
27038 : #line 2242 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27039 : (TARGET_AVX512F && reload_completed))
27040 : return gen_split_1261 (insn, operands);
27041 : if (mask_reg_operand (operands[1], E_HImode)
27042 : && mask_reg_operand (operands[0], E_HImode)
27043 : && GET_MODE (x3) == E_HImode
27044 : &&
27045 : #line 2242 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27046 : (TARGET_AVX512F && reload_completed))
27047 : return gen_split_1262 (insn, operands);
27048 : if (mask_reg_operand (operands[1], E_SImode)
27049 : && mask_reg_operand (operands[0], E_SImode)
27050 : && GET_MODE (x3) == E_SImode
27051 : && (
27052 : #line 2242 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27053 : (TARGET_AVX512F && reload_completed) &&
27054 : #line 2098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27055 : (TARGET_AVX512BW)))
27056 : return gen_split_1263 (insn, operands);
27057 : if (!mask_reg_operand (operands[1], E_DImode)
27058 : || !mask_reg_operand (operands[0], E_DImode)
27059 : || GET_MODE (x3) != E_DImode
27060 : || !(
27061 : #line 2242 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27062 : (TARGET_AVX512F && reload_completed) &&
27063 : #line 2098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27064 : (TARGET_AVX512BW)))
27065 : return NULL;
27066 : return gen_split_1264 (insn, operands);
27067 :
27068 : case UNSPEC:
27069 : if (XVECLEN (x4, 0) != 3)
27070 : return NULL;
27071 : x5 = XVECEXP (x4, 0, 0);
27072 : operands[1] = x5;
27073 : x6 = XVECEXP (x4, 0, 1);
27074 : operands[2] = x6;
27075 : x7 = XVECEXP (x4, 0, 2);
27076 : operands[3] = x7;
27077 : switch (XINT (x4, 1))
27078 : {
27079 : case 60:
27080 : switch (GET_MODE (operands[0]))
27081 : {
27082 : case E_HImode:
27083 : switch (pattern974 (x3))
27084 : {
27085 : case 0:
27086 : if (!(
27087 : #line 4695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27088 : (TARGET_AVX512F && GET_MODE_NUNITS (V16SImode) >= 8
27089 : && ix86_pre_reload_split ()) &&
27090 : #line 4698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27091 : ( 1)))
27092 : return NULL;
27093 : return gen_split_1447 (insn, operands);
27094 :
27095 : case 1:
27096 : if (!((
27097 : #line 4695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27098 : (TARGET_AVX512F && GET_MODE_NUNITS (V16HFmode) >= 8
27099 : && ix86_pre_reload_split ()) &&
27100 : #line 321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27101 : (TARGET_AVX512FP16 && TARGET_AVX512VL)) &&
27102 : #line 4698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27103 : ( 1)))
27104 : return NULL;
27105 : return gen_split_1454 (insn, operands);
27106 :
27107 : case 2:
27108 : if (!(
27109 : #line 4695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27110 : (TARGET_AVX512F && GET_MODE_NUNITS (V16SFmode) >= 8
27111 : && ix86_pre_reload_split ()) &&
27112 : #line 4698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27113 : ( 1)))
27114 : return NULL;
27115 : return gen_split_1456 (insn, operands);
27116 :
27117 : case 3:
27118 : if (!((
27119 : #line 4889 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27120 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
27121 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27122 : (TARGET_AVX512VL)) &&
27123 : #line 4891 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27124 : ( 1)))
27125 : return NULL;
27126 : return gen_split_1482 (insn, operands);
27127 :
27128 : case 4:
27129 : if (!((
27130 : #line 4889 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27131 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
27132 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27133 : (TARGET_AVX512VL)) &&
27134 : #line 4891 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27135 : ( 1)))
27136 : return NULL;
27137 : return gen_split_1488 (insn, operands);
27138 :
27139 : default:
27140 : return NULL;
27141 : }
27142 :
27143 : case E_QImode:
27144 : switch (pattern975 (x3))
27145 : {
27146 : case 0:
27147 : if (!((
27148 : #line 4695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27149 : (TARGET_AVX512F && GET_MODE_NUNITS (V8SImode) >= 8
27150 : && ix86_pre_reload_split ()) &&
27151 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27152 : (TARGET_AVX512VL)) &&
27153 : #line 4698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27154 : ( 1)))
27155 : return NULL;
27156 : return gen_split_1448 (insn, operands);
27157 :
27158 : case 1:
27159 : if (!((
27160 : #line 4695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27161 : (TARGET_AVX512F && GET_MODE_NUNITS (V4SImode) >= 8
27162 : && ix86_pre_reload_split ()) &&
27163 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27164 : (TARGET_AVX512VL)) &&
27165 : #line 4698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27166 : ( 1)))
27167 : return NULL;
27168 : return gen_split_1449 (insn, operands);
27169 :
27170 : case 2:
27171 : if (!(
27172 : #line 4695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27173 : (TARGET_AVX512F && GET_MODE_NUNITS (V8DImode) >= 8
27174 : && ix86_pre_reload_split ()) &&
27175 : #line 4698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27176 : ( 1)))
27177 : return NULL;
27178 : return gen_split_1450 (insn, operands);
27179 :
27180 : case 3:
27181 : if (!((
27182 : #line 4695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27183 : (TARGET_AVX512F && GET_MODE_NUNITS (V4DImode) >= 8
27184 : && ix86_pre_reload_split ()) &&
27185 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27186 : (TARGET_AVX512VL)) &&
27187 : #line 4698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27188 : ( 1)))
27189 : return NULL;
27190 : return gen_split_1451 (insn, operands);
27191 :
27192 : case 4:
27193 : if (!((
27194 : #line 4695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27195 : (TARGET_AVX512F && GET_MODE_NUNITS (V2DImode) >= 8
27196 : && ix86_pre_reload_split ()) &&
27197 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27198 : (TARGET_AVX512VL)) &&
27199 : #line 4698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27200 : ( 1)))
27201 : return NULL;
27202 : return gen_split_1452 (insn, operands);
27203 :
27204 : case 5:
27205 : if (!((
27206 : #line 4695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27207 : (TARGET_AVX512F && GET_MODE_NUNITS (V8HFmode) >= 8
27208 : && ix86_pre_reload_split ()) &&
27209 : #line 322 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27210 : (TARGET_AVX512FP16 && TARGET_AVX512VL)) &&
27211 : #line 4698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27212 : ( 1)))
27213 : return NULL;
27214 : return gen_split_1455 (insn, operands);
27215 :
27216 : case 6:
27217 : if (!((
27218 : #line 4695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27219 : (TARGET_AVX512F && GET_MODE_NUNITS (V8SFmode) >= 8
27220 : && ix86_pre_reload_split ()) &&
27221 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27222 : (TARGET_AVX512VL)) &&
27223 : #line 4698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27224 : ( 1)))
27225 : return NULL;
27226 : return gen_split_1457 (insn, operands);
27227 :
27228 : case 7:
27229 : if (!((
27230 : #line 4695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27231 : (TARGET_AVX512F && GET_MODE_NUNITS (V4SFmode) >= 8
27232 : && ix86_pre_reload_split ()) &&
27233 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27234 : (TARGET_AVX512VL)) &&
27235 : #line 4698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27236 : ( 1)))
27237 : return NULL;
27238 : return gen_split_1458 (insn, operands);
27239 :
27240 : case 8:
27241 : if (!(
27242 : #line 4695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27243 : (TARGET_AVX512F && GET_MODE_NUNITS (V8DFmode) >= 8
27244 : && ix86_pre_reload_split ()) &&
27245 : #line 4698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27246 : ( 1)))
27247 : return NULL;
27248 : return gen_split_1459 (insn, operands);
27249 :
27250 : case 9:
27251 : if (!((
27252 : #line 4695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27253 : (TARGET_AVX512F && GET_MODE_NUNITS (V4DFmode) >= 8
27254 : && ix86_pre_reload_split ()) &&
27255 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27256 : (TARGET_AVX512VL)) &&
27257 : #line 4698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27258 : ( 1)))
27259 : return NULL;
27260 : return gen_split_1460 (insn, operands);
27261 :
27262 : case 10:
27263 : if (!((
27264 : #line 4695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27265 : (TARGET_AVX512F && GET_MODE_NUNITS (V2DFmode) >= 8
27266 : && ix86_pre_reload_split ()) &&
27267 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27268 : (TARGET_AVX512VL)) &&
27269 : #line 4698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27270 : ( 1)))
27271 : return NULL;
27272 : return gen_split_1461 (insn, operands);
27273 :
27274 : case 11:
27275 : if (!((
27276 : #line 4889 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27277 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
27278 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27279 : (TARGET_AVX512VL)) &&
27280 : #line 4891 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27281 : ( 1)))
27282 : return NULL;
27283 : return gen_split_1490 (insn, operands);
27284 :
27285 : default:
27286 : return NULL;
27287 : }
27288 :
27289 : case E_SImode:
27290 : switch (pattern992 (x3))
27291 : {
27292 : case 0:
27293 : if (!((
27294 : #line 4695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27295 : (TARGET_AVX512F && GET_MODE_NUNITS (V32HFmode) >= 8
27296 : && ix86_pre_reload_split ()) &&
27297 : #line 320 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27298 : (TARGET_AVX512FP16)) &&
27299 : #line 4698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27300 : ( 1)))
27301 : return NULL;
27302 : return gen_split_1453 (insn, operands);
27303 :
27304 : case 1:
27305 : if (!((
27306 : #line 4889 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27307 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
27308 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27309 : (TARGET_AVX512VL)) &&
27310 : #line 4891 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27311 : ( 1)))
27312 : return NULL;
27313 : return gen_split_1484 (insn, operands);
27314 :
27315 : case 2:
27316 : if (!(
27317 : #line 4889 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27318 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
27319 : #line 4891 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27320 : ( 1)))
27321 : return NULL;
27322 : return gen_split_1486 (insn, operands);
27323 :
27324 : default:
27325 : return NULL;
27326 : }
27327 :
27328 : case E_DImode:
27329 : if (pattern993 (x3) != 0
27330 : || !(
27331 : #line 4889 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27332 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
27333 : #line 4891 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27334 : ( 1)))
27335 : return NULL;
27336 : return gen_split_1480 (insn, operands);
27337 :
27338 : default:
27339 : return NULL;
27340 : }
27341 :
27342 : case 158:
27343 : if (!const_0_to_7_operand (operands[3], E_SImode))
27344 : return NULL;
27345 : switch (GET_MODE (operands[0]))
27346 : {
27347 : case E_DImode:
27348 : if (pattern1103 (x3,
27349 : E_V64QImode,
27350 : E_DImode) != 0
27351 : || !(
27352 : #line 4889 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27353 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
27354 : #line 4891 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27355 : ( 1)))
27356 : return NULL;
27357 : return gen_split_1481 (insn, operands);
27358 :
27359 : case E_HImode:
27360 : switch (pattern1088 (x3))
27361 : {
27362 : case 0:
27363 : if (!((
27364 : #line 4889 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27365 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
27366 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27367 : (TARGET_AVX512VL)) &&
27368 : #line 4891 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27369 : ( 1)))
27370 : return NULL;
27371 : return gen_split_1483 (insn, operands);
27372 :
27373 : case 1:
27374 : if (!((
27375 : #line 4889 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27376 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
27377 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27378 : (TARGET_AVX512VL)) &&
27379 : #line 4891 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27380 : ( 1)))
27381 : return NULL;
27382 : return gen_split_1489 (insn, operands);
27383 :
27384 : case 2:
27385 : if (!(
27386 : #line 5115 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27387 : (TARGET_AVX512F && ix86_pre_reload_split ()
27388 : && GET_MODE_NUNITS (V16SImode) >= 8) &&
27389 : #line 5118 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27390 : ( 1)))
27391 : return NULL;
27392 : return gen_split_1552 (insn, operands);
27393 :
27394 : default:
27395 : return NULL;
27396 : }
27397 :
27398 : case E_SImode:
27399 : switch (pattern1104 (x3))
27400 : {
27401 : case 0:
27402 : if (!((
27403 : #line 4889 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27404 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
27405 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27406 : (TARGET_AVX512VL)) &&
27407 : #line 4891 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27408 : ( 1)))
27409 : return NULL;
27410 : return gen_split_1485 (insn, operands);
27411 :
27412 : case 1:
27413 : if (!(
27414 : #line 4889 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27415 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
27416 : #line 4891 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27417 : ( 1)))
27418 : return NULL;
27419 : return gen_split_1487 (insn, operands);
27420 :
27421 : default:
27422 : return NULL;
27423 : }
27424 :
27425 : case E_QImode:
27426 : switch (pattern1089 (x3))
27427 : {
27428 : case 0:
27429 : if (!((
27430 : #line 4889 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27431 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
27432 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27433 : (TARGET_AVX512VL)) &&
27434 : #line 4891 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27435 : ( 1)))
27436 : return NULL;
27437 : return gen_split_1491 (insn, operands);
27438 :
27439 : case 1:
27440 : if (!((
27441 : #line 5115 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27442 : (TARGET_AVX512F && ix86_pre_reload_split ()
27443 : && GET_MODE_NUNITS (V8SImode) >= 8) &&
27444 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27445 : (TARGET_AVX512VL)) &&
27446 : #line 5118 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27447 : ( 1)))
27448 : return NULL;
27449 : return gen_split_1553 (insn, operands);
27450 :
27451 : case 2:
27452 : if (!((
27453 : #line 5115 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27454 : (TARGET_AVX512F && ix86_pre_reload_split ()
27455 : && GET_MODE_NUNITS (V4SImode) >= 8) &&
27456 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27457 : (TARGET_AVX512VL)) &&
27458 : #line 5118 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27459 : ( 1)))
27460 : return NULL;
27461 : return gen_split_1554 (insn, operands);
27462 :
27463 : case 3:
27464 : if (!(
27465 : #line 5115 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27466 : (TARGET_AVX512F && ix86_pre_reload_split ()
27467 : && GET_MODE_NUNITS (V8DImode) >= 8) &&
27468 : #line 5118 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27469 : ( 1)))
27470 : return NULL;
27471 : return gen_split_1555 (insn, operands);
27472 :
27473 : case 4:
27474 : if (!((
27475 : #line 5115 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27476 : (TARGET_AVX512F && ix86_pre_reload_split ()
27477 : && GET_MODE_NUNITS (V4DImode) >= 8) &&
27478 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27479 : (TARGET_AVX512VL)) &&
27480 : #line 5118 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27481 : ( 1)))
27482 : return NULL;
27483 : return gen_split_1556 (insn, operands);
27484 :
27485 : case 5:
27486 : if (!((
27487 : #line 5115 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27488 : (TARGET_AVX512F && ix86_pre_reload_split ()
27489 : && GET_MODE_NUNITS (V2DImode) >= 8) &&
27490 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27491 : (TARGET_AVX512VL)) &&
27492 : #line 5118 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27493 : ( 1)))
27494 : return NULL;
27495 : return gen_split_1557 (insn, operands);
27496 :
27497 : default:
27498 : return NULL;
27499 : }
27500 :
27501 : default:
27502 : return NULL;
27503 : }
27504 :
27505 : default:
27506 : return NULL;
27507 : }
27508 :
27509 : default:
27510 : return NULL;
27511 : }
27512 : }
27513 :
27514 : rtx_insn *
27515 : split_61 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
27516 : {
27517 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
27518 : rtx x2, x3;
27519 : rtx_insn *res ATTRIBUTE_UNUSED;
27520 : x2 = XEXP (x1, 1);
27521 : x3 = XEXP (x2, 0);
27522 : switch (GET_CODE (x3))
27523 : {
27524 : case REG:
27525 : case SUBREG:
27526 : case MEM:
27527 : res = split_59 (x1, insn);
27528 : if (res != NULL_RTX)
27529 : return res;
27530 : break;
27531 :
27532 : case CONST_INT:
27533 : case CONST_DOUBLE:
27534 : case CONST_VECTOR:
27535 : switch (pattern320 (x2))
27536 : {
27537 : case 0:
27538 : res = split_60 (x1, insn);
27539 : if (res != NULL_RTX)
27540 : return res;
27541 : break;
27542 :
27543 : case 1:
27544 : if (vector_all_ones_operand (operands[1], E_V16QImode)
27545 : && const0_operand (operands[2], E_V16QImode)
27546 : && (
27547 : #line 18463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27548 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27549 : && (INTVAL (operands[5]) == 2 || INTVAL (operands[5]) == 5)) &&
27550 : #line 18466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27551 : ( 1)))
27552 : return gen_split_3387 (insn, operands);
27553 : if (const0_operand (operands[1], E_V16QImode)
27554 : && vector_all_ones_operand (operands[2], E_V16QImode)
27555 : && (
27556 : #line 18521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27557 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27558 : /* NE is commutative. */
27559 : && INTVAL (operands[5]) == 4) &&
27560 : #line 18526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27561 : ( 1)))
27562 : return gen_split_3410 (insn, operands);
27563 : break;
27564 :
27565 : case 2:
27566 : if (vector_all_ones_operand (operands[1], E_V8HImode)
27567 : && const0_operand (operands[2], E_V8HImode)
27568 : && (
27569 : #line 18463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27570 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27571 : && (INTVAL (operands[5]) == 2 || INTVAL (operands[5]) == 5)) &&
27572 : #line 18466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27573 : ( 1)))
27574 : return gen_split_3389 (insn, operands);
27575 : if (const0_operand (operands[1], E_V8HImode)
27576 : && vector_all_ones_operand (operands[2], E_V8HImode)
27577 : && (
27578 : #line 18521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27579 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27580 : /* NE is commutative. */
27581 : && INTVAL (operands[5]) == 4) &&
27582 : #line 18526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27583 : ( 1)))
27584 : return gen_split_3411 (insn, operands);
27585 : break;
27586 :
27587 : case 3:
27588 : if (vector_all_ones_operand (operands[1], E_V4SImode)
27589 : && const0_operand (operands[2], E_V4SImode)
27590 : && (
27591 : #line 18463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27592 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27593 : && (INTVAL (operands[5]) == 2 || INTVAL (operands[5]) == 5)) &&
27594 : #line 18466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27595 : ( 1)))
27596 : return gen_split_3391 (insn, operands);
27597 : if (const0_operand (operands[1], E_V4SImode)
27598 : && vector_all_ones_operand (operands[2], E_V4SImode)
27599 : && (
27600 : #line 18521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27601 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27602 : /* NE is commutative. */
27603 : && INTVAL (operands[5]) == 4) &&
27604 : #line 18526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27605 : ( 1)))
27606 : return gen_split_3412 (insn, operands);
27607 : break;
27608 :
27609 : case 4:
27610 : if (vector_all_ones_operand (operands[1], E_V2DImode)
27611 : && const0_operand (operands[2], E_V2DImode)
27612 : && (
27613 : #line 18463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27614 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27615 : && (INTVAL (operands[5]) == 2 || INTVAL (operands[5]) == 5)) &&
27616 : #line 18466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27617 : ( 1)))
27618 : return gen_split_3393 (insn, operands);
27619 : if (const0_operand (operands[1], E_V2DImode)
27620 : && vector_all_ones_operand (operands[2], E_V2DImode)
27621 : && (
27622 : #line 18521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27623 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27624 : /* NE is commutative. */
27625 : && INTVAL (operands[5]) == 4) &&
27626 : #line 18526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27627 : ( 1)))
27628 : return gen_split_3413 (insn, operands);
27629 : break;
27630 :
27631 : case 5:
27632 : if (vector_all_ones_operand (operands[1], E_V32QImode)
27633 : && const0_operand (operands[2], E_V32QImode)
27634 : && (
27635 : #line 18463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27636 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27637 : && (INTVAL (operands[5]) == 2 || INTVAL (operands[5]) == 5)) &&
27638 : #line 18466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27639 : ( 1)))
27640 : return gen_split_3395 (insn, operands);
27641 : if (const0_operand (operands[1], E_V32QImode)
27642 : && vector_all_ones_operand (operands[2], E_V32QImode)
27643 : && (
27644 : #line 18521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27645 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27646 : /* NE is commutative. */
27647 : && INTVAL (operands[5]) == 4) &&
27648 : #line 18526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27649 : ( 1)))
27650 : return gen_split_3414 (insn, operands);
27651 : break;
27652 :
27653 : case 6:
27654 : if (vector_all_ones_operand (operands[1], E_V16HImode)
27655 : && const0_operand (operands[2], E_V16HImode)
27656 : && (
27657 : #line 18463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27658 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27659 : && (INTVAL (operands[5]) == 2 || INTVAL (operands[5]) == 5)) &&
27660 : #line 18466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27661 : ( 1)))
27662 : return gen_split_3397 (insn, operands);
27663 : if (const0_operand (operands[1], E_V16HImode)
27664 : && vector_all_ones_operand (operands[2], E_V16HImode)
27665 : && (
27666 : #line 18521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27667 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27668 : /* NE is commutative. */
27669 : && INTVAL (operands[5]) == 4) &&
27670 : #line 18526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27671 : ( 1)))
27672 : return gen_split_3415 (insn, operands);
27673 : break;
27674 :
27675 : case 7:
27676 : if (vector_all_ones_operand (operands[1], E_V8SImode)
27677 : && const0_operand (operands[2], E_V8SImode)
27678 : && (
27679 : #line 18463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27680 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27681 : && (INTVAL (operands[5]) == 2 || INTVAL (operands[5]) == 5)) &&
27682 : #line 18466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27683 : ( 1)))
27684 : return gen_split_3399 (insn, operands);
27685 : if (const0_operand (operands[1], E_V8SImode)
27686 : && vector_all_ones_operand (operands[2], E_V8SImode)
27687 : && (
27688 : #line 18521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27689 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27690 : /* NE is commutative. */
27691 : && INTVAL (operands[5]) == 4) &&
27692 : #line 18526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27693 : ( 1)))
27694 : return gen_split_3416 (insn, operands);
27695 : break;
27696 :
27697 : case 8:
27698 : if (vector_all_ones_operand (operands[1], E_V4DImode)
27699 : && const0_operand (operands[2], E_V4DImode)
27700 : && (
27701 : #line 18463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27702 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27703 : && (INTVAL (operands[5]) == 2 || INTVAL (operands[5]) == 5)) &&
27704 : #line 18466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27705 : ( 1)))
27706 : return gen_split_3401 (insn, operands);
27707 : if (const0_operand (operands[1], E_V4DImode)
27708 : && vector_all_ones_operand (operands[2], E_V4DImode)
27709 : && (
27710 : #line 18521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27711 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27712 : /* NE is commutative. */
27713 : && INTVAL (operands[5]) == 4) &&
27714 : #line 18526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27715 : ( 1)))
27716 : return gen_split_3417 (insn, operands);
27717 : break;
27718 :
27719 : case 9:
27720 : if (((
27721 : #line 4371 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27722 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
27723 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27724 : (TARGET_AVX)) &&
27725 : #line 4373 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27726 : ( 1)))
27727 : return gen_split_1378 (insn, operands);
27728 : break;
27729 :
27730 : case 10:
27731 : if ((
27732 : #line 18338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27733 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27734 : /* NE is commutative. */
27735 : && ((INTVAL (operands[5]) == 4
27736 : && !(MEM_P (operands[3]) && MEM_P (operands[4])))
27737 : /* LE, 3 must be register. */
27738 : || (INTVAL (operands[5]) == 2
27739 : && !MEM_P (operands[3]))
27740 : /* NLT aka GE, 4 must be register and we swap operands. */
27741 : || (INTVAL (operands[5]) == 5
27742 : && !MEM_P (operands[4])))) &&
27743 : #line 18349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27744 : ( 1)))
27745 : return gen_split_3378 (insn, operands);
27746 : break;
27747 :
27748 : case 11:
27749 : if ((
27750 : #line 4371 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27751 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
27752 : #line 4373 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27753 : ( 1)))
27754 : return gen_split_1379 (insn, operands);
27755 : break;
27756 :
27757 : case 12:
27758 : if ((
27759 : #line 18338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27760 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27761 : /* NE is commutative. */
27762 : && ((INTVAL (operands[5]) == 4
27763 : && !(MEM_P (operands[3]) && MEM_P (operands[4])))
27764 : /* LE, 3 must be register. */
27765 : || (INTVAL (operands[5]) == 2
27766 : && !MEM_P (operands[3]))
27767 : /* NLT aka GE, 4 must be register and we swap operands. */
27768 : || (INTVAL (operands[5]) == 5
27769 : && !MEM_P (operands[4])))) &&
27770 : #line 18349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27771 : ( 1)))
27772 : return gen_split_3374 (insn, operands);
27773 : break;
27774 :
27775 : case 13:
27776 : if (((
27777 : #line 4371 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27778 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
27779 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27780 : (TARGET_AVX)) &&
27781 : #line 4373 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27782 : ( 1)))
27783 : return gen_split_1380 (insn, operands);
27784 : break;
27785 :
27786 : case 14:
27787 : if ((
27788 : #line 18338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27789 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27790 : /* NE is commutative. */
27791 : && ((INTVAL (operands[5]) == 4
27792 : && !(MEM_P (operands[3]) && MEM_P (operands[4])))
27793 : /* LE, 3 must be register. */
27794 : || (INTVAL (operands[5]) == 2
27795 : && !MEM_P (operands[3]))
27796 : /* NLT aka GE, 4 must be register and we swap operands. */
27797 : || (INTVAL (operands[5]) == 5
27798 : && !MEM_P (operands[4])))) &&
27799 : #line 18349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27800 : ( 1)))
27801 : return gen_split_3379 (insn, operands);
27802 : break;
27803 :
27804 : case 15:
27805 : if (((
27806 : #line 4371 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27807 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
27808 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27809 : (TARGET_SSE2)) &&
27810 : #line 4373 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27811 : ( 1)))
27812 : return gen_split_1381 (insn, operands);
27813 : break;
27814 :
27815 : case 16:
27816 : if ((
27817 : #line 18338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27818 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27819 : /* NE is commutative. */
27820 : && ((INTVAL (operands[5]) == 4
27821 : && !(MEM_P (operands[3]) && MEM_P (operands[4])))
27822 : /* LE, 3 must be register. */
27823 : || (INTVAL (operands[5]) == 2
27824 : && !MEM_P (operands[3]))
27825 : /* NLT aka GE, 4 must be register and we swap operands. */
27826 : || (INTVAL (operands[5]) == 5
27827 : && !MEM_P (operands[4])))) &&
27828 : #line 18349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27829 : ( 1)))
27830 : return gen_split_3375 (insn, operands);
27831 : break;
27832 :
27833 : case 17:
27834 : if ((
27835 : #line 18338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27836 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27837 : /* NE is commutative. */
27838 : && ((INTVAL (operands[5]) == 4
27839 : && !(MEM_P (operands[3]) && MEM_P (operands[4])))
27840 : /* LE, 3 must be register. */
27841 : || (INTVAL (operands[5]) == 2
27842 : && !MEM_P (operands[3]))
27843 : /* NLT aka GE, 4 must be register and we swap operands. */
27844 : || (INTVAL (operands[5]) == 5
27845 : && !MEM_P (operands[4])))) &&
27846 : #line 18349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27847 : ( 1)))
27848 : return gen_split_3372 (insn, operands);
27849 : break;
27850 :
27851 : case 18:
27852 : if ((
27853 : #line 18338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27854 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27855 : /* NE is commutative. */
27856 : && ((INTVAL (operands[5]) == 4
27857 : && !(MEM_P (operands[3]) && MEM_P (operands[4])))
27858 : /* LE, 3 must be register. */
27859 : || (INTVAL (operands[5]) == 2
27860 : && !MEM_P (operands[3]))
27861 : /* NLT aka GE, 4 must be register and we swap operands. */
27862 : || (INTVAL (operands[5]) == 5
27863 : && !MEM_P (operands[4])))) &&
27864 : #line 18349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27865 : ( 1)))
27866 : return gen_split_3373 (insn, operands);
27867 : break;
27868 :
27869 : case 19:
27870 : if ((
27871 : #line 18338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27872 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27873 : /* NE is commutative. */
27874 : && ((INTVAL (operands[5]) == 4
27875 : && !(MEM_P (operands[3]) && MEM_P (operands[4])))
27876 : /* LE, 3 must be register. */
27877 : || (INTVAL (operands[5]) == 2
27878 : && !MEM_P (operands[3]))
27879 : /* NLT aka GE, 4 must be register and we swap operands. */
27880 : || (INTVAL (operands[5]) == 5
27881 : && !MEM_P (operands[4])))) &&
27882 : #line 18349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27883 : ( 1)))
27884 : return gen_split_3376 (insn, operands);
27885 : break;
27886 :
27887 : case 20:
27888 : if ((
27889 : #line 18338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27890 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27891 : /* NE is commutative. */
27892 : && ((INTVAL (operands[5]) == 4
27893 : && !(MEM_P (operands[3]) && MEM_P (operands[4])))
27894 : /* LE, 3 must be register. */
27895 : || (INTVAL (operands[5]) == 2
27896 : && !MEM_P (operands[3]))
27897 : /* NLT aka GE, 4 must be register and we swap operands. */
27898 : || (INTVAL (operands[5]) == 5
27899 : && !MEM_P (operands[4])))) &&
27900 : #line 18349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27901 : ( 1)))
27902 : return gen_split_3377 (insn, operands);
27903 : break;
27904 :
27905 : case 21:
27906 : switch (GET_MODE (operands[0]))
27907 : {
27908 : case E_V16SImode:
27909 : if (register_operand (operands[0], E_V16SImode)
27910 : && GET_MODE (x2) == E_V16SImode
27911 : && register_operand (operands[1], E_HImode))
27912 : {
27913 : if (vector_all_ones_operand (operands[2], E_V16SImode)
27914 : && const0_operand (operands[3], E_V16SImode)
27915 : && (
27916 : #line 10645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27917 : (TARGET_AVX512F) &&
27918 : #line 10649 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27919 : ( !TARGET_AVX512DQ && reload_completed
27920 : && optimize_function_for_speed_p (cfun))))
27921 : return gen_split_1604 (insn, operands);
27922 : if (const0_operand (operands[2], E_V16SImode)
27923 : && vector_all_ones_operand (operands[3], E_V16SImode)
27924 : && (
27925 : #line 10671 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27926 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
27927 : #line 10673 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27928 : ( 1)))
27929 : return gen_split_1616 (insn, operands);
27930 : }
27931 : break;
27932 :
27933 : case E_V8SImode:
27934 : if (register_operand (operands[0], E_V8SImode)
27935 : && GET_MODE (x2) == E_V8SImode
27936 : && register_operand (operands[1], E_QImode))
27937 : {
27938 : if (vector_all_ones_operand (operands[2], E_V8SImode)
27939 : && const0_operand (operands[3], E_V8SImode)
27940 : && ((
27941 : #line 10645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27942 : (TARGET_AVX512F) &&
27943 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27944 : (TARGET_AVX512VL)) &&
27945 : #line 10649 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27946 : ( !TARGET_AVX512DQ && reload_completed
27947 : && optimize_function_for_speed_p (cfun))))
27948 : return gen_split_1605 (insn, operands);
27949 : if (const0_operand (operands[2], E_V8SImode)
27950 : && vector_all_ones_operand (operands[3], E_V8SImode)
27951 : && ((
27952 : #line 10671 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27953 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
27954 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27955 : (TARGET_AVX512VL)) &&
27956 : #line 10673 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27957 : ( 1)))
27958 : return gen_split_1617 (insn, operands);
27959 : }
27960 : break;
27961 :
27962 : case E_V4SImode:
27963 : if (register_operand (operands[0], E_V4SImode)
27964 : && GET_MODE (x2) == E_V4SImode
27965 : && register_operand (operands[1], E_QImode))
27966 : {
27967 : if (vector_all_ones_operand (operands[2], E_V4SImode)
27968 : && const0_operand (operands[3], E_V4SImode)
27969 : && ((
27970 : #line 10645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27971 : (TARGET_AVX512F) &&
27972 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27973 : (TARGET_AVX512VL)) &&
27974 : #line 10649 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27975 : ( !TARGET_AVX512DQ && reload_completed
27976 : && optimize_function_for_speed_p (cfun))))
27977 : return gen_split_1606 (insn, operands);
27978 : if (const0_operand (operands[2], E_V4SImode)
27979 : && vector_all_ones_operand (operands[3], E_V4SImode)
27980 : && ((
27981 : #line 10671 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27982 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
27983 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27984 : (TARGET_AVX512VL)) &&
27985 : #line 10673 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27986 : ( 1)))
27987 : return gen_split_1618 (insn, operands);
27988 : }
27989 : break;
27990 :
27991 : case E_V8DImode:
27992 : if (register_operand (operands[0], E_V8DImode)
27993 : && GET_MODE (x2) == E_V8DImode
27994 : && register_operand (operands[1], E_QImode))
27995 : {
27996 : if (vector_all_ones_operand (operands[2], E_V8DImode)
27997 : && const0_operand (operands[3], E_V8DImode)
27998 : && (
27999 : #line 10645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28000 : (TARGET_AVX512F) &&
28001 : #line 10649 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28002 : ( !TARGET_AVX512DQ && reload_completed
28003 : && optimize_function_for_speed_p (cfun))))
28004 : return gen_split_1607 (insn, operands);
28005 : if (const0_operand (operands[2], E_V8DImode)
28006 : && vector_all_ones_operand (operands[3], E_V8DImode)
28007 : && (
28008 : #line 10671 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28009 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
28010 : #line 10673 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28011 : ( 1)))
28012 : return gen_split_1619 (insn, operands);
28013 : }
28014 : break;
28015 :
28016 : case E_V4DImode:
28017 : if (register_operand (operands[0], E_V4DImode)
28018 : && GET_MODE (x2) == E_V4DImode
28019 : && register_operand (operands[1], E_QImode))
28020 : {
28021 : if (vector_all_ones_operand (operands[2], E_V4DImode)
28022 : && const0_operand (operands[3], E_V4DImode)
28023 : && ((
28024 : #line 10645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28025 : (TARGET_AVX512F) &&
28026 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28027 : (TARGET_AVX512VL)) &&
28028 : #line 10649 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28029 : ( !TARGET_AVX512DQ && reload_completed
28030 : && optimize_function_for_speed_p (cfun))))
28031 : return gen_split_1608 (insn, operands);
28032 : if (const0_operand (operands[2], E_V4DImode)
28033 : && vector_all_ones_operand (operands[3], E_V4DImode)
28034 : && ((
28035 : #line 10671 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28036 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
28037 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28038 : (TARGET_AVX512VL)) &&
28039 : #line 10673 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28040 : ( 1)))
28041 : return gen_split_1620 (insn, operands);
28042 : }
28043 : break;
28044 :
28045 : case E_V2DImode:
28046 : if (register_operand (operands[0], E_V2DImode)
28047 : && GET_MODE (x2) == E_V2DImode
28048 : && register_operand (operands[1], E_QImode))
28049 : {
28050 : if (vector_all_ones_operand (operands[2], E_V2DImode)
28051 : && const0_operand (operands[3], E_V2DImode)
28052 : && ((
28053 : #line 10645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28054 : (TARGET_AVX512F) &&
28055 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28056 : (TARGET_AVX512VL)) &&
28057 : #line 10649 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28058 : ( !TARGET_AVX512DQ && reload_completed
28059 : && optimize_function_for_speed_p (cfun))))
28060 : return gen_split_1609 (insn, operands);
28061 : if (const0_operand (operands[2], E_V2DImode)
28062 : && vector_all_ones_operand (operands[3], E_V2DImode)
28063 : && ((
28064 : #line 10671 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28065 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
28066 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28067 : (TARGET_AVX512VL)) &&
28068 : #line 10673 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28069 : ( 1)))
28070 : return gen_split_1621 (insn, operands);
28071 : }
28072 : break;
28073 :
28074 : case E_V64QImode:
28075 : if (pattern1195 (x2,
28076 : E_DImode,
28077 : E_V64QImode) == 0
28078 : && ((
28079 : #line 10671 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28080 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
28081 : #line 500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28082 : (TARGET_AVX512BW)) &&
28083 : #line 10673 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28084 : ( 1)))
28085 : return gen_split_1610 (insn, operands);
28086 : break;
28087 :
28088 : case E_V32QImode:
28089 : if (pattern1195 (x2,
28090 : E_SImode,
28091 : E_V32QImode) == 0
28092 : && ((
28093 : #line 10671 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28094 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
28095 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28096 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
28097 : #line 10673 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28098 : ( 1)))
28099 : return gen_split_1611 (insn, operands);
28100 : break;
28101 :
28102 : case E_V16QImode:
28103 : if (pattern1195 (x2,
28104 : E_HImode,
28105 : E_V16QImode) == 0
28106 : && ((
28107 : #line 10671 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28108 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
28109 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28110 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
28111 : #line 10673 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28112 : ( 1)))
28113 : return gen_split_1612 (insn, operands);
28114 : break;
28115 :
28116 : case E_V32HImode:
28117 : if (pattern1195 (x2,
28118 : E_SImode,
28119 : E_V32HImode) == 0
28120 : && ((
28121 : #line 10671 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28122 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
28123 : #line 503 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28124 : (TARGET_AVX512BW)) &&
28125 : #line 10673 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28126 : ( 1)))
28127 : return gen_split_1613 (insn, operands);
28128 : break;
28129 :
28130 : case E_V16HImode:
28131 : if (pattern1195 (x2,
28132 : E_HImode,
28133 : E_V16HImode) == 0
28134 : && ((
28135 : #line 10671 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28136 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
28137 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28138 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
28139 : #line 10673 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28140 : ( 1)))
28141 : return gen_split_1614 (insn, operands);
28142 : break;
28143 :
28144 : case E_V8HImode:
28145 : if (pattern1195 (x2,
28146 : E_QImode,
28147 : E_V8HImode) == 0
28148 : && ((
28149 : #line 10671 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28150 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
28151 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28152 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
28153 : #line 10673 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28154 : ( 1)))
28155 : return gen_split_1615 (insn, operands);
28156 : break;
28157 :
28158 : default:
28159 : break;
28160 : }
28161 : break;
28162 :
28163 : default:
28164 : break;
28165 : }
28166 : break;
28167 :
28168 : default:
28169 : break;
28170 : }
28171 : operands[1] = x3;
28172 : switch (pattern323 (x2))
28173 : {
28174 : case 0:
28175 : if (!((
28176 : #line 4398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28177 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
28178 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28179 : (TARGET_AVX)) &&
28180 : #line 4400 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28181 : ( 1)))
28182 : return NULL;
28183 : return gen_split_1382 (insn, operands);
28184 :
28185 : case 1:
28186 : if (!(
28187 : #line 4398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28188 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
28189 : #line 4400 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28190 : ( 1)))
28191 : return NULL;
28192 : return gen_split_1383 (insn, operands);
28193 :
28194 : case 2:
28195 : if (!((
28196 : #line 4398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28197 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
28198 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28199 : (TARGET_AVX)) &&
28200 : #line 4400 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28201 : ( 1)))
28202 : return NULL;
28203 : return gen_split_1384 (insn, operands);
28204 :
28205 : case 3:
28206 : if (!((
28207 : #line 4398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28208 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
28209 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28210 : (TARGET_SSE2)) &&
28211 : #line 4400 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28212 : ( 1)))
28213 : return NULL;
28214 : return gen_split_1385 (insn, operands);
28215 :
28216 : case 4:
28217 : if (!((
28218 : #line 4419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28219 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
28220 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28221 : (TARGET_AVX)) &&
28222 : #line 4421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28223 : ( 1)))
28224 : return NULL;
28225 : return gen_split_1386 (insn, operands);
28226 :
28227 : case 5:
28228 : if (!(
28229 : #line 4419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28230 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
28231 : #line 4421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28232 : ( 1)))
28233 : return NULL;
28234 : return gen_split_1387 (insn, operands);
28235 :
28236 : case 6:
28237 : if (!((
28238 : #line 4419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28239 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
28240 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28241 : (TARGET_AVX)) &&
28242 : #line 4421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28243 : ( 1)))
28244 : return NULL;
28245 : return gen_split_1388 (insn, operands);
28246 :
28247 : case 7:
28248 : if (!((
28249 : #line 4419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28250 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
28251 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28252 : (TARGET_SSE2)) &&
28253 : #line 4421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28254 : ( 1)))
28255 : return NULL;
28256 : return gen_split_1389 (insn, operands);
28257 :
28258 : default:
28259 : return NULL;
28260 : }
28261 : }
28262 :
28263 : rtx_insn *
28264 : split_70 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
28265 : {
28266 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
28267 : rtx x2, x3, x4, x5, x6, x7, x8;
28268 : rtx_insn *res ATTRIBUTE_UNUSED;
28269 : x2 = XEXP (x1, 1);
28270 : x3 = XEXP (x2, 0);
28271 : x4 = XEXP (x3, 0);
28272 : switch (GET_CODE (x4))
28273 : {
28274 : case REG:
28275 : case SUBREG:
28276 : case MEM:
28277 : case NOT:
28278 : switch (pattern541 (x2))
28279 : {
28280 : case 0:
28281 : if (!((
28282 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28283 : ((64 == 64 || TARGET_AVX512VL
28284 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28285 : && ix86_pre_reload_split ()
28286 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28287 : STRIP_UNARY (operands[4]))
28288 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28289 : STRIP_UNARY (operands[4]))
28290 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28291 : STRIP_UNARY (operands[3]))
28292 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28293 : STRIP_UNARY (operands[3])))) &&
28294 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28295 : (TARGET_AVX512F)) &&
28296 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28297 : ( 1)))
28298 : return NULL;
28299 : return gen_split_2067 (insn, operands);
28300 :
28301 : case 1:
28302 : if (!((
28303 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28304 : ((32 == 64 || TARGET_AVX512VL
28305 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28306 : && ix86_pre_reload_split ()
28307 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28308 : STRIP_UNARY (operands[4]))
28309 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28310 : STRIP_UNARY (operands[4]))
28311 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28312 : STRIP_UNARY (operands[3]))
28313 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28314 : STRIP_UNARY (operands[3])))) &&
28315 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28316 : (TARGET_AVX)) &&
28317 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28318 : ( 1)))
28319 : return NULL;
28320 : return gen_split_2094 (insn, operands);
28321 :
28322 : case 2:
28323 : if (!(
28324 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28325 : ((16 == 64 || TARGET_AVX512VL
28326 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28327 : && ix86_pre_reload_split ()
28328 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28329 : STRIP_UNARY (operands[4]))
28330 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28331 : STRIP_UNARY (operands[4]))
28332 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28333 : STRIP_UNARY (operands[3]))
28334 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28335 : STRIP_UNARY (operands[3])))) &&
28336 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28337 : ( 1)))
28338 : return NULL;
28339 : return gen_split_2121 (insn, operands);
28340 :
28341 : case 3:
28342 : if (!((
28343 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28344 : ((64 == 64 || TARGET_AVX512VL
28345 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28346 : && ix86_pre_reload_split ()
28347 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28348 : STRIP_UNARY (operands[4]))
28349 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28350 : STRIP_UNARY (operands[4]))
28351 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28352 : STRIP_UNARY (operands[3]))
28353 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28354 : STRIP_UNARY (operands[3])))) &&
28355 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28356 : (TARGET_AVX512F)) &&
28357 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28358 : ( 1)))
28359 : return NULL;
28360 : return gen_split_2148 (insn, operands);
28361 :
28362 : case 4:
28363 : if (!((
28364 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28365 : ((32 == 64 || TARGET_AVX512VL
28366 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28367 : && ix86_pre_reload_split ()
28368 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28369 : STRIP_UNARY (operands[4]))
28370 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28371 : STRIP_UNARY (operands[4]))
28372 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28373 : STRIP_UNARY (operands[3]))
28374 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28375 : STRIP_UNARY (operands[3])))) &&
28376 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28377 : (TARGET_AVX)) &&
28378 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28379 : ( 1)))
28380 : return NULL;
28381 : return gen_split_2175 (insn, operands);
28382 :
28383 : case 5:
28384 : if (!(
28385 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28386 : ((16 == 64 || TARGET_AVX512VL
28387 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28388 : && ix86_pre_reload_split ()
28389 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28390 : STRIP_UNARY (operands[4]))
28391 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28392 : STRIP_UNARY (operands[4]))
28393 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28394 : STRIP_UNARY (operands[3]))
28395 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28396 : STRIP_UNARY (operands[3])))) &&
28397 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28398 : ( 1)))
28399 : return NULL;
28400 : return gen_split_2202 (insn, operands);
28401 :
28402 : case 6:
28403 : if (!((
28404 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28405 : ((64 == 64 || TARGET_AVX512VL
28406 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28407 : && ix86_pre_reload_split ()
28408 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28409 : STRIP_UNARY (operands[4]))
28410 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28411 : STRIP_UNARY (operands[4]))
28412 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28413 : STRIP_UNARY (operands[3]))
28414 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28415 : STRIP_UNARY (operands[3])))) &&
28416 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28417 : (TARGET_AVX512F)) &&
28418 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28419 : ( 1)))
28420 : return NULL;
28421 : return gen_split_2229 (insn, operands);
28422 :
28423 : case 7:
28424 : if (!((
28425 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28426 : ((32 == 64 || TARGET_AVX512VL
28427 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28428 : && ix86_pre_reload_split ()
28429 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28430 : STRIP_UNARY (operands[4]))
28431 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28432 : STRIP_UNARY (operands[4]))
28433 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28434 : STRIP_UNARY (operands[3]))
28435 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28436 : STRIP_UNARY (operands[3])))) &&
28437 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28438 : (TARGET_AVX)) &&
28439 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28440 : ( 1)))
28441 : return NULL;
28442 : return gen_split_2256 (insn, operands);
28443 :
28444 : case 8:
28445 : if (!(
28446 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28447 : ((16 == 64 || TARGET_AVX512VL
28448 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28449 : && ix86_pre_reload_split ()
28450 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28451 : STRIP_UNARY (operands[4]))
28452 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28453 : STRIP_UNARY (operands[4]))
28454 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28455 : STRIP_UNARY (operands[3]))
28456 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28457 : STRIP_UNARY (operands[3])))) &&
28458 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28459 : ( 1)))
28460 : return NULL;
28461 : return gen_split_2283 (insn, operands);
28462 :
28463 : case 9:
28464 : if (!((
28465 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28466 : ((64 == 64 || TARGET_AVX512VL
28467 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28468 : && ix86_pre_reload_split ()
28469 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28470 : STRIP_UNARY (operands[4]))
28471 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28472 : STRIP_UNARY (operands[4]))
28473 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28474 : STRIP_UNARY (operands[3]))
28475 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28476 : STRIP_UNARY (operands[3])))) &&
28477 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28478 : (TARGET_AVX512F)) &&
28479 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28480 : ( 1)))
28481 : return NULL;
28482 : return gen_split_2310 (insn, operands);
28483 :
28484 : case 10:
28485 : if (!((
28486 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28487 : ((32 == 64 || TARGET_AVX512VL
28488 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28489 : && ix86_pre_reload_split ()
28490 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28491 : STRIP_UNARY (operands[4]))
28492 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28493 : STRIP_UNARY (operands[4]))
28494 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28495 : STRIP_UNARY (operands[3]))
28496 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28497 : STRIP_UNARY (operands[3])))) &&
28498 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28499 : (TARGET_AVX)) &&
28500 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28501 : ( 1)))
28502 : return NULL;
28503 : return gen_split_2337 (insn, operands);
28504 :
28505 : case 11:
28506 : if (!((
28507 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28508 : ((16 == 64 || TARGET_AVX512VL
28509 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28510 : && ix86_pre_reload_split ()
28511 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28512 : STRIP_UNARY (operands[4]))
28513 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28514 : STRIP_UNARY (operands[4]))
28515 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28516 : STRIP_UNARY (operands[3]))
28517 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28518 : STRIP_UNARY (operands[3])))) &&
28519 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28520 : (TARGET_SSE2)) &&
28521 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28522 : ( 1)))
28523 : return NULL;
28524 : return gen_split_2364 (insn, operands);
28525 :
28526 : case 12:
28527 : if (!((
28528 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28529 : ((64 == 64 || TARGET_AVX512VL
28530 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28531 : && ix86_pre_reload_split ()
28532 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28533 : STRIP_UNARY (operands[4]))
28534 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28535 : STRIP_UNARY (operands[4]))
28536 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28537 : STRIP_UNARY (operands[3]))
28538 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28539 : STRIP_UNARY (operands[3])))) &&
28540 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28541 : (TARGET_AVX512F)) &&
28542 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28543 : ( 1)))
28544 : return NULL;
28545 : return gen_split_2070 (insn, operands);
28546 :
28547 : case 13:
28548 : if (!((
28549 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28550 : ((32 == 64 || TARGET_AVX512VL
28551 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28552 : && ix86_pre_reload_split ()
28553 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28554 : STRIP_UNARY (operands[4]))
28555 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28556 : STRIP_UNARY (operands[4]))
28557 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28558 : STRIP_UNARY (operands[3]))
28559 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28560 : STRIP_UNARY (operands[3])))) &&
28561 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28562 : (TARGET_AVX)) &&
28563 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28564 : ( 1)))
28565 : return NULL;
28566 : return gen_split_2097 (insn, operands);
28567 :
28568 : case 14:
28569 : if (!(
28570 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28571 : ((16 == 64 || TARGET_AVX512VL
28572 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28573 : && ix86_pre_reload_split ()
28574 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28575 : STRIP_UNARY (operands[4]))
28576 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28577 : STRIP_UNARY (operands[4]))
28578 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28579 : STRIP_UNARY (operands[3]))
28580 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28581 : STRIP_UNARY (operands[3])))) &&
28582 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28583 : ( 1)))
28584 : return NULL;
28585 : return gen_split_2124 (insn, operands);
28586 :
28587 : case 15:
28588 : if (!((
28589 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28590 : ((64 == 64 || TARGET_AVX512VL
28591 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28592 : && ix86_pre_reload_split ()
28593 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28594 : STRIP_UNARY (operands[4]))
28595 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28596 : STRIP_UNARY (operands[4]))
28597 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28598 : STRIP_UNARY (operands[3]))
28599 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28600 : STRIP_UNARY (operands[3])))) &&
28601 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28602 : (TARGET_AVX512F)) &&
28603 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28604 : ( 1)))
28605 : return NULL;
28606 : return gen_split_2151 (insn, operands);
28607 :
28608 : case 16:
28609 : if (!((
28610 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28611 : ((32 == 64 || TARGET_AVX512VL
28612 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28613 : && ix86_pre_reload_split ()
28614 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28615 : STRIP_UNARY (operands[4]))
28616 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28617 : STRIP_UNARY (operands[4]))
28618 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28619 : STRIP_UNARY (operands[3]))
28620 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28621 : STRIP_UNARY (operands[3])))) &&
28622 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28623 : (TARGET_AVX)) &&
28624 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28625 : ( 1)))
28626 : return NULL;
28627 : return gen_split_2178 (insn, operands);
28628 :
28629 : case 17:
28630 : if (!(
28631 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28632 : ((16 == 64 || TARGET_AVX512VL
28633 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28634 : && ix86_pre_reload_split ()
28635 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28636 : STRIP_UNARY (operands[4]))
28637 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28638 : STRIP_UNARY (operands[4]))
28639 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28640 : STRIP_UNARY (operands[3]))
28641 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28642 : STRIP_UNARY (operands[3])))) &&
28643 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28644 : ( 1)))
28645 : return NULL;
28646 : return gen_split_2205 (insn, operands);
28647 :
28648 : case 18:
28649 : if (!((
28650 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28651 : ((64 == 64 || TARGET_AVX512VL
28652 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28653 : && ix86_pre_reload_split ()
28654 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28655 : STRIP_UNARY (operands[4]))
28656 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28657 : STRIP_UNARY (operands[4]))
28658 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28659 : STRIP_UNARY (operands[3]))
28660 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28661 : STRIP_UNARY (operands[3])))) &&
28662 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28663 : (TARGET_AVX512F)) &&
28664 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28665 : ( 1)))
28666 : return NULL;
28667 : return gen_split_2232 (insn, operands);
28668 :
28669 : case 19:
28670 : if (!((
28671 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28672 : ((32 == 64 || TARGET_AVX512VL
28673 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28674 : && ix86_pre_reload_split ()
28675 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28676 : STRIP_UNARY (operands[4]))
28677 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28678 : STRIP_UNARY (operands[4]))
28679 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28680 : STRIP_UNARY (operands[3]))
28681 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28682 : STRIP_UNARY (operands[3])))) &&
28683 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28684 : (TARGET_AVX)) &&
28685 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28686 : ( 1)))
28687 : return NULL;
28688 : return gen_split_2259 (insn, operands);
28689 :
28690 : case 20:
28691 : if (!(
28692 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28693 : ((16 == 64 || TARGET_AVX512VL
28694 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28695 : && ix86_pre_reload_split ()
28696 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28697 : STRIP_UNARY (operands[4]))
28698 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28699 : STRIP_UNARY (operands[4]))
28700 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28701 : STRIP_UNARY (operands[3]))
28702 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28703 : STRIP_UNARY (operands[3])))) &&
28704 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28705 : ( 1)))
28706 : return NULL;
28707 : return gen_split_2286 (insn, operands);
28708 :
28709 : case 21:
28710 : if (!((
28711 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28712 : ((64 == 64 || TARGET_AVX512VL
28713 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28714 : && ix86_pre_reload_split ()
28715 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28716 : STRIP_UNARY (operands[4]))
28717 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28718 : STRIP_UNARY (operands[4]))
28719 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28720 : STRIP_UNARY (operands[3]))
28721 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28722 : STRIP_UNARY (operands[3])))) &&
28723 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28724 : (TARGET_AVX512F)) &&
28725 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28726 : ( 1)))
28727 : return NULL;
28728 : return gen_split_2313 (insn, operands);
28729 :
28730 : case 22:
28731 : if (!((
28732 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28733 : ((32 == 64 || TARGET_AVX512VL
28734 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28735 : && ix86_pre_reload_split ()
28736 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28737 : STRIP_UNARY (operands[4]))
28738 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28739 : STRIP_UNARY (operands[4]))
28740 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28741 : STRIP_UNARY (operands[3]))
28742 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28743 : STRIP_UNARY (operands[3])))) &&
28744 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28745 : (TARGET_AVX)) &&
28746 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28747 : ( 1)))
28748 : return NULL;
28749 : return gen_split_2340 (insn, operands);
28750 :
28751 : case 23:
28752 : if (!((
28753 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28754 : ((16 == 64 || TARGET_AVX512VL
28755 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28756 : && ix86_pre_reload_split ()
28757 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28758 : STRIP_UNARY (operands[4]))
28759 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28760 : STRIP_UNARY (operands[4]))
28761 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28762 : STRIP_UNARY (operands[3]))
28763 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28764 : STRIP_UNARY (operands[3])))) &&
28765 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28766 : (TARGET_SSE2)) &&
28767 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28768 : ( 1)))
28769 : return NULL;
28770 : return gen_split_2367 (insn, operands);
28771 :
28772 : case 24:
28773 : if (!((
28774 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28775 : ((64 == 64 || TARGET_AVX512VL
28776 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28777 : && ix86_pre_reload_split ()
28778 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28779 : STRIP_UNARY (operands[4]))
28780 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28781 : STRIP_UNARY (operands[4]))
28782 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28783 : STRIP_UNARY (operands[3]))
28784 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28785 : STRIP_UNARY (operands[3])))) &&
28786 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28787 : (TARGET_AVX512F)) &&
28788 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28789 : ( 1)))
28790 : return NULL;
28791 : return gen_split_2073 (insn, operands);
28792 :
28793 : case 25:
28794 : if (!((
28795 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28796 : ((32 == 64 || TARGET_AVX512VL
28797 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28798 : && ix86_pre_reload_split ()
28799 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28800 : STRIP_UNARY (operands[4]))
28801 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28802 : STRIP_UNARY (operands[4]))
28803 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28804 : STRIP_UNARY (operands[3]))
28805 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28806 : STRIP_UNARY (operands[3])))) &&
28807 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28808 : (TARGET_AVX)) &&
28809 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28810 : ( 1)))
28811 : return NULL;
28812 : return gen_split_2100 (insn, operands);
28813 :
28814 : case 26:
28815 : if (!(
28816 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28817 : ((16 == 64 || TARGET_AVX512VL
28818 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28819 : && ix86_pre_reload_split ()
28820 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28821 : STRIP_UNARY (operands[4]))
28822 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28823 : STRIP_UNARY (operands[4]))
28824 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28825 : STRIP_UNARY (operands[3]))
28826 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28827 : STRIP_UNARY (operands[3])))) &&
28828 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28829 : ( 1)))
28830 : return NULL;
28831 : return gen_split_2127 (insn, operands);
28832 :
28833 : case 27:
28834 : if (!((
28835 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28836 : ((64 == 64 || TARGET_AVX512VL
28837 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28838 : && ix86_pre_reload_split ()
28839 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28840 : STRIP_UNARY (operands[4]))
28841 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28842 : STRIP_UNARY (operands[4]))
28843 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28844 : STRIP_UNARY (operands[3]))
28845 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28846 : STRIP_UNARY (operands[3])))) &&
28847 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28848 : (TARGET_AVX512F)) &&
28849 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28850 : ( 1)))
28851 : return NULL;
28852 : return gen_split_2154 (insn, operands);
28853 :
28854 : case 28:
28855 : if (!((
28856 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28857 : ((32 == 64 || TARGET_AVX512VL
28858 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28859 : && ix86_pre_reload_split ()
28860 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28861 : STRIP_UNARY (operands[4]))
28862 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28863 : STRIP_UNARY (operands[4]))
28864 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28865 : STRIP_UNARY (operands[3]))
28866 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28867 : STRIP_UNARY (operands[3])))) &&
28868 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28869 : (TARGET_AVX)) &&
28870 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28871 : ( 1)))
28872 : return NULL;
28873 : return gen_split_2181 (insn, operands);
28874 :
28875 : case 29:
28876 : if (!(
28877 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28878 : ((16 == 64 || TARGET_AVX512VL
28879 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28880 : && ix86_pre_reload_split ()
28881 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28882 : STRIP_UNARY (operands[4]))
28883 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28884 : STRIP_UNARY (operands[4]))
28885 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28886 : STRIP_UNARY (operands[3]))
28887 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28888 : STRIP_UNARY (operands[3])))) &&
28889 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28890 : ( 1)))
28891 : return NULL;
28892 : return gen_split_2208 (insn, operands);
28893 :
28894 : case 30:
28895 : if (!((
28896 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28897 : ((64 == 64 || TARGET_AVX512VL
28898 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28899 : && ix86_pre_reload_split ()
28900 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28901 : STRIP_UNARY (operands[4]))
28902 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28903 : STRIP_UNARY (operands[4]))
28904 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28905 : STRIP_UNARY (operands[3]))
28906 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28907 : STRIP_UNARY (operands[3])))) &&
28908 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28909 : (TARGET_AVX512F)) &&
28910 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28911 : ( 1)))
28912 : return NULL;
28913 : return gen_split_2235 (insn, operands);
28914 :
28915 : case 31:
28916 : if (!((
28917 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28918 : ((32 == 64 || TARGET_AVX512VL
28919 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28920 : && ix86_pre_reload_split ()
28921 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28922 : STRIP_UNARY (operands[4]))
28923 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28924 : STRIP_UNARY (operands[4]))
28925 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28926 : STRIP_UNARY (operands[3]))
28927 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28928 : STRIP_UNARY (operands[3])))) &&
28929 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28930 : (TARGET_AVX)) &&
28931 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28932 : ( 1)))
28933 : return NULL;
28934 : return gen_split_2262 (insn, operands);
28935 :
28936 : case 32:
28937 : if (!(
28938 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28939 : ((16 == 64 || TARGET_AVX512VL
28940 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28941 : && ix86_pre_reload_split ()
28942 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28943 : STRIP_UNARY (operands[4]))
28944 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28945 : STRIP_UNARY (operands[4]))
28946 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28947 : STRIP_UNARY (operands[3]))
28948 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28949 : STRIP_UNARY (operands[3])))) &&
28950 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28951 : ( 1)))
28952 : return NULL;
28953 : return gen_split_2289 (insn, operands);
28954 :
28955 : case 33:
28956 : if (!((
28957 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28958 : ((64 == 64 || TARGET_AVX512VL
28959 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28960 : && ix86_pre_reload_split ()
28961 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28962 : STRIP_UNARY (operands[4]))
28963 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28964 : STRIP_UNARY (operands[4]))
28965 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28966 : STRIP_UNARY (operands[3]))
28967 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28968 : STRIP_UNARY (operands[3])))) &&
28969 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28970 : (TARGET_AVX512F)) &&
28971 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28972 : ( 1)))
28973 : return NULL;
28974 : return gen_split_2316 (insn, operands);
28975 :
28976 : case 34:
28977 : if (!((
28978 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28979 : ((32 == 64 || TARGET_AVX512VL
28980 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28981 : && ix86_pre_reload_split ()
28982 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28983 : STRIP_UNARY (operands[4]))
28984 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28985 : STRIP_UNARY (operands[4]))
28986 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28987 : STRIP_UNARY (operands[3]))
28988 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28989 : STRIP_UNARY (operands[3])))) &&
28990 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28991 : (TARGET_AVX)) &&
28992 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28993 : ( 1)))
28994 : return NULL;
28995 : return gen_split_2343 (insn, operands);
28996 :
28997 : case 35:
28998 : if (!((
28999 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29000 : ((16 == 64 || TARGET_AVX512VL
29001 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29002 : && ix86_pre_reload_split ()
29003 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29004 : STRIP_UNARY (operands[4]))
29005 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29006 : STRIP_UNARY (operands[4]))
29007 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29008 : STRIP_UNARY (operands[3]))
29009 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29010 : STRIP_UNARY (operands[3])))) &&
29011 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29012 : (TARGET_SSE2)) &&
29013 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29014 : ( 1)))
29015 : return NULL;
29016 : return gen_split_2370 (insn, operands);
29017 :
29018 : case 36:
29019 : if (!((
29020 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29021 : ((64 == 64 || TARGET_AVX512VL
29022 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29023 : && ix86_pre_reload_split ()) &&
29024 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29025 : (TARGET_AVX512F)) &&
29026 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29027 : ( 1)))
29028 : return NULL;
29029 : return gen_split_3147 (insn, operands);
29030 :
29031 : case 37:
29032 : if (!((
29033 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29034 : ((32 == 64 || TARGET_AVX512VL
29035 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29036 : && ix86_pre_reload_split ()) &&
29037 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29038 : (TARGET_AVX)) &&
29039 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29040 : ( 1)))
29041 : return NULL;
29042 : return gen_split_3156 (insn, operands);
29043 :
29044 : case 38:
29045 : if (!(
29046 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29047 : ((16 == 64 || TARGET_AVX512VL
29048 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29049 : && ix86_pre_reload_split ()) &&
29050 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29051 : ( 1)))
29052 : return NULL;
29053 : return gen_split_3165 (insn, operands);
29054 :
29055 : case 39:
29056 : if (!((
29057 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29058 : ((64 == 64 || TARGET_AVX512VL
29059 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29060 : && ix86_pre_reload_split ()) &&
29061 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29062 : (TARGET_AVX512F)) &&
29063 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29064 : ( 1)))
29065 : return NULL;
29066 : return gen_split_3174 (insn, operands);
29067 :
29068 : case 40:
29069 : if (!((
29070 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29071 : ((32 == 64 || TARGET_AVX512VL
29072 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29073 : && ix86_pre_reload_split ()) &&
29074 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29075 : (TARGET_AVX)) &&
29076 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29077 : ( 1)))
29078 : return NULL;
29079 : return gen_split_3183 (insn, operands);
29080 :
29081 : case 41:
29082 : if (!(
29083 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29084 : ((16 == 64 || TARGET_AVX512VL
29085 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29086 : && ix86_pre_reload_split ()) &&
29087 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29088 : ( 1)))
29089 : return NULL;
29090 : return gen_split_3192 (insn, operands);
29091 :
29092 : case 42:
29093 : if (!((
29094 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29095 : ((64 == 64 || TARGET_AVX512VL
29096 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29097 : && ix86_pre_reload_split ()) &&
29098 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29099 : (TARGET_AVX512F)) &&
29100 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29101 : ( 1)))
29102 : return NULL;
29103 : return gen_split_3201 (insn, operands);
29104 :
29105 : case 43:
29106 : if (!((
29107 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29108 : ((32 == 64 || TARGET_AVX512VL
29109 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29110 : && ix86_pre_reload_split ()) &&
29111 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29112 : (TARGET_AVX)) &&
29113 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29114 : ( 1)))
29115 : return NULL;
29116 : return gen_split_3210 (insn, operands);
29117 :
29118 : case 44:
29119 : if (!(
29120 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29121 : ((16 == 64 || TARGET_AVX512VL
29122 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29123 : && ix86_pre_reload_split ()) &&
29124 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29125 : ( 1)))
29126 : return NULL;
29127 : return gen_split_3219 (insn, operands);
29128 :
29129 : case 45:
29130 : if (!((
29131 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29132 : ((64 == 64 || TARGET_AVX512VL
29133 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29134 : && ix86_pre_reload_split ()) &&
29135 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29136 : (TARGET_AVX512F)) &&
29137 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29138 : ( 1)))
29139 : return NULL;
29140 : return gen_split_3228 (insn, operands);
29141 :
29142 : case 46:
29143 : if (!((
29144 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29145 : ((32 == 64 || TARGET_AVX512VL
29146 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29147 : && ix86_pre_reload_split ()) &&
29148 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29149 : (TARGET_AVX)) &&
29150 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29151 : ( 1)))
29152 : return NULL;
29153 : return gen_split_3237 (insn, operands);
29154 :
29155 : case 47:
29156 : if (!((
29157 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29158 : ((16 == 64 || TARGET_AVX512VL
29159 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29160 : && ix86_pre_reload_split ()) &&
29161 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29162 : (TARGET_SSE2)) &&
29163 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29164 : ( 1)))
29165 : return NULL;
29166 : return gen_split_3246 (insn, operands);
29167 :
29168 : default:
29169 : return NULL;
29170 : }
29171 :
29172 : case AND:
29173 : switch (pattern542 (x2))
29174 : {
29175 : case 0:
29176 : if (!((
29177 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29178 : ((64 == 64 || TARGET_AVX512VL
29179 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29180 : && ix86_pre_reload_split ()
29181 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29182 : STRIP_UNARY (operands[4]))
29183 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29184 : STRIP_UNARY (operands[4]))
29185 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29186 : STRIP_UNARY (operands[3]))
29187 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29188 : STRIP_UNARY (operands[3])))) &&
29189 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29190 : (TARGET_AVX512F)) &&
29191 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29192 : ( 1)))
29193 : return NULL;
29194 : return gen_split_2715 (insn, operands);
29195 :
29196 : case 1:
29197 : if (!((
29198 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29199 : ((32 == 64 || TARGET_AVX512VL
29200 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29201 : && ix86_pre_reload_split ()
29202 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29203 : STRIP_UNARY (operands[4]))
29204 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29205 : STRIP_UNARY (operands[4]))
29206 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29207 : STRIP_UNARY (operands[3]))
29208 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29209 : STRIP_UNARY (operands[3])))) &&
29210 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29211 : (TARGET_AVX)) &&
29212 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29213 : ( 1)))
29214 : return NULL;
29215 : return gen_split_2742 (insn, operands);
29216 :
29217 : case 2:
29218 : if (!(
29219 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29220 : ((16 == 64 || TARGET_AVX512VL
29221 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29222 : && ix86_pre_reload_split ()
29223 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29224 : STRIP_UNARY (operands[4]))
29225 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29226 : STRIP_UNARY (operands[4]))
29227 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29228 : STRIP_UNARY (operands[3]))
29229 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29230 : STRIP_UNARY (operands[3])))) &&
29231 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29232 : ( 1)))
29233 : return NULL;
29234 : return gen_split_2769 (insn, operands);
29235 :
29236 : case 3:
29237 : if (!((
29238 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29239 : ((64 == 64 || TARGET_AVX512VL
29240 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29241 : && ix86_pre_reload_split ()
29242 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29243 : STRIP_UNARY (operands[4]))
29244 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29245 : STRIP_UNARY (operands[4]))
29246 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29247 : STRIP_UNARY (operands[3]))
29248 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29249 : STRIP_UNARY (operands[3])))) &&
29250 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29251 : (TARGET_AVX512F)) &&
29252 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29253 : ( 1)))
29254 : return NULL;
29255 : return gen_split_2796 (insn, operands);
29256 :
29257 : case 4:
29258 : if (!((
29259 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29260 : ((32 == 64 || TARGET_AVX512VL
29261 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29262 : && ix86_pre_reload_split ()
29263 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29264 : STRIP_UNARY (operands[4]))
29265 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29266 : STRIP_UNARY (operands[4]))
29267 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29268 : STRIP_UNARY (operands[3]))
29269 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29270 : STRIP_UNARY (operands[3])))) &&
29271 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29272 : (TARGET_AVX)) &&
29273 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29274 : ( 1)))
29275 : return NULL;
29276 : return gen_split_2823 (insn, operands);
29277 :
29278 : case 5:
29279 : if (!(
29280 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29281 : ((16 == 64 || TARGET_AVX512VL
29282 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29283 : && ix86_pre_reload_split ()
29284 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29285 : STRIP_UNARY (operands[4]))
29286 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29287 : STRIP_UNARY (operands[4]))
29288 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29289 : STRIP_UNARY (operands[3]))
29290 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29291 : STRIP_UNARY (operands[3])))) &&
29292 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29293 : ( 1)))
29294 : return NULL;
29295 : return gen_split_2850 (insn, operands);
29296 :
29297 : case 6:
29298 : if (!((
29299 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29300 : ((64 == 64 || TARGET_AVX512VL
29301 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29302 : && ix86_pre_reload_split ()
29303 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29304 : STRIP_UNARY (operands[4]))
29305 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29306 : STRIP_UNARY (operands[4]))
29307 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29308 : STRIP_UNARY (operands[3]))
29309 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29310 : STRIP_UNARY (operands[3])))) &&
29311 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29312 : (TARGET_AVX512F)) &&
29313 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29314 : ( 1)))
29315 : return NULL;
29316 : return gen_split_2877 (insn, operands);
29317 :
29318 : case 7:
29319 : if (!((
29320 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29321 : ((32 == 64 || TARGET_AVX512VL
29322 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29323 : && ix86_pre_reload_split ()
29324 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29325 : STRIP_UNARY (operands[4]))
29326 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29327 : STRIP_UNARY (operands[4]))
29328 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29329 : STRIP_UNARY (operands[3]))
29330 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29331 : STRIP_UNARY (operands[3])))) &&
29332 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29333 : (TARGET_AVX)) &&
29334 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29335 : ( 1)))
29336 : return NULL;
29337 : return gen_split_2904 (insn, operands);
29338 :
29339 : case 8:
29340 : if (!(
29341 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29342 : ((16 == 64 || TARGET_AVX512VL
29343 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29344 : && ix86_pre_reload_split ()
29345 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29346 : STRIP_UNARY (operands[4]))
29347 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29348 : STRIP_UNARY (operands[4]))
29349 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29350 : STRIP_UNARY (operands[3]))
29351 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29352 : STRIP_UNARY (operands[3])))) &&
29353 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29354 : ( 1)))
29355 : return NULL;
29356 : return gen_split_2931 (insn, operands);
29357 :
29358 : case 9:
29359 : if (!((
29360 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29361 : ((64 == 64 || TARGET_AVX512VL
29362 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29363 : && ix86_pre_reload_split ()
29364 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29365 : STRIP_UNARY (operands[4]))
29366 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29367 : STRIP_UNARY (operands[4]))
29368 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29369 : STRIP_UNARY (operands[3]))
29370 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29371 : STRIP_UNARY (operands[3])))) &&
29372 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29373 : (TARGET_AVX512F)) &&
29374 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29375 : ( 1)))
29376 : return NULL;
29377 : return gen_split_2958 (insn, operands);
29378 :
29379 : case 10:
29380 : if (!((
29381 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29382 : ((32 == 64 || TARGET_AVX512VL
29383 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29384 : && ix86_pre_reload_split ()
29385 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29386 : STRIP_UNARY (operands[4]))
29387 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29388 : STRIP_UNARY (operands[4]))
29389 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29390 : STRIP_UNARY (operands[3]))
29391 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29392 : STRIP_UNARY (operands[3])))) &&
29393 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29394 : (TARGET_AVX)) &&
29395 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29396 : ( 1)))
29397 : return NULL;
29398 : return gen_split_2985 (insn, operands);
29399 :
29400 : case 11:
29401 : if (!((
29402 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29403 : ((16 == 64 || TARGET_AVX512VL
29404 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29405 : && ix86_pre_reload_split ()
29406 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29407 : STRIP_UNARY (operands[4]))
29408 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29409 : STRIP_UNARY (operands[4]))
29410 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29411 : STRIP_UNARY (operands[3]))
29412 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29413 : STRIP_UNARY (operands[3])))) &&
29414 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29415 : (TARGET_SSE2)) &&
29416 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29417 : ( 1)))
29418 : return NULL;
29419 : return gen_split_3012 (insn, operands);
29420 :
29421 : default:
29422 : return NULL;
29423 : }
29424 :
29425 : case IOR:
29426 : switch (pattern542 (x2))
29427 : {
29428 : case 0:
29429 : if (!((
29430 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29431 : ((64 == 64 || TARGET_AVX512VL
29432 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29433 : && ix86_pre_reload_split ()
29434 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29435 : STRIP_UNARY (operands[4]))
29436 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29437 : STRIP_UNARY (operands[4]))
29438 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29439 : STRIP_UNARY (operands[3]))
29440 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29441 : STRIP_UNARY (operands[3])))) &&
29442 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29443 : (TARGET_AVX512F)) &&
29444 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29445 : ( 1)))
29446 : return NULL;
29447 : return gen_split_2718 (insn, operands);
29448 :
29449 : case 1:
29450 : if (!((
29451 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29452 : ((32 == 64 || TARGET_AVX512VL
29453 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29454 : && ix86_pre_reload_split ()
29455 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29456 : STRIP_UNARY (operands[4]))
29457 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29458 : STRIP_UNARY (operands[4]))
29459 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29460 : STRIP_UNARY (operands[3]))
29461 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29462 : STRIP_UNARY (operands[3])))) &&
29463 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29464 : (TARGET_AVX)) &&
29465 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29466 : ( 1)))
29467 : return NULL;
29468 : return gen_split_2745 (insn, operands);
29469 :
29470 : case 2:
29471 : if (!(
29472 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29473 : ((16 == 64 || TARGET_AVX512VL
29474 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29475 : && ix86_pre_reload_split ()
29476 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29477 : STRIP_UNARY (operands[4]))
29478 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29479 : STRIP_UNARY (operands[4]))
29480 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29481 : STRIP_UNARY (operands[3]))
29482 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29483 : STRIP_UNARY (operands[3])))) &&
29484 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29485 : ( 1)))
29486 : return NULL;
29487 : return gen_split_2772 (insn, operands);
29488 :
29489 : case 3:
29490 : if (!((
29491 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29492 : ((64 == 64 || TARGET_AVX512VL
29493 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29494 : && ix86_pre_reload_split ()
29495 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29496 : STRIP_UNARY (operands[4]))
29497 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29498 : STRIP_UNARY (operands[4]))
29499 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29500 : STRIP_UNARY (operands[3]))
29501 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29502 : STRIP_UNARY (operands[3])))) &&
29503 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29504 : (TARGET_AVX512F)) &&
29505 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29506 : ( 1)))
29507 : return NULL;
29508 : return gen_split_2799 (insn, operands);
29509 :
29510 : case 4:
29511 : if (!((
29512 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29513 : ((32 == 64 || TARGET_AVX512VL
29514 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29515 : && ix86_pre_reload_split ()
29516 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29517 : STRIP_UNARY (operands[4]))
29518 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29519 : STRIP_UNARY (operands[4]))
29520 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29521 : STRIP_UNARY (operands[3]))
29522 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29523 : STRIP_UNARY (operands[3])))) &&
29524 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29525 : (TARGET_AVX)) &&
29526 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29527 : ( 1)))
29528 : return NULL;
29529 : return gen_split_2826 (insn, operands);
29530 :
29531 : case 5:
29532 : if (!(
29533 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29534 : ((16 == 64 || TARGET_AVX512VL
29535 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29536 : && ix86_pre_reload_split ()
29537 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29538 : STRIP_UNARY (operands[4]))
29539 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29540 : STRIP_UNARY (operands[4]))
29541 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29542 : STRIP_UNARY (operands[3]))
29543 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29544 : STRIP_UNARY (operands[3])))) &&
29545 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29546 : ( 1)))
29547 : return NULL;
29548 : return gen_split_2853 (insn, operands);
29549 :
29550 : case 6:
29551 : if (!((
29552 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29553 : ((64 == 64 || TARGET_AVX512VL
29554 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29555 : && ix86_pre_reload_split ()
29556 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29557 : STRIP_UNARY (operands[4]))
29558 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29559 : STRIP_UNARY (operands[4]))
29560 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29561 : STRIP_UNARY (operands[3]))
29562 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29563 : STRIP_UNARY (operands[3])))) &&
29564 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29565 : (TARGET_AVX512F)) &&
29566 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29567 : ( 1)))
29568 : return NULL;
29569 : return gen_split_2880 (insn, operands);
29570 :
29571 : case 7:
29572 : if (!((
29573 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29574 : ((32 == 64 || TARGET_AVX512VL
29575 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29576 : && ix86_pre_reload_split ()
29577 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29578 : STRIP_UNARY (operands[4]))
29579 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29580 : STRIP_UNARY (operands[4]))
29581 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29582 : STRIP_UNARY (operands[3]))
29583 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29584 : STRIP_UNARY (operands[3])))) &&
29585 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29586 : (TARGET_AVX)) &&
29587 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29588 : ( 1)))
29589 : return NULL;
29590 : return gen_split_2907 (insn, operands);
29591 :
29592 : case 8:
29593 : if (!(
29594 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29595 : ((16 == 64 || TARGET_AVX512VL
29596 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29597 : && ix86_pre_reload_split ()
29598 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29599 : STRIP_UNARY (operands[4]))
29600 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29601 : STRIP_UNARY (operands[4]))
29602 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29603 : STRIP_UNARY (operands[3]))
29604 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29605 : STRIP_UNARY (operands[3])))) &&
29606 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29607 : ( 1)))
29608 : return NULL;
29609 : return gen_split_2934 (insn, operands);
29610 :
29611 : case 9:
29612 : if (!((
29613 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29614 : ((64 == 64 || TARGET_AVX512VL
29615 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29616 : && ix86_pre_reload_split ()
29617 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29618 : STRIP_UNARY (operands[4]))
29619 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29620 : STRIP_UNARY (operands[4]))
29621 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29622 : STRIP_UNARY (operands[3]))
29623 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29624 : STRIP_UNARY (operands[3])))) &&
29625 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29626 : (TARGET_AVX512F)) &&
29627 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29628 : ( 1)))
29629 : return NULL;
29630 : return gen_split_2961 (insn, operands);
29631 :
29632 : case 10:
29633 : if (!((
29634 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29635 : ((32 == 64 || TARGET_AVX512VL
29636 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29637 : && ix86_pre_reload_split ()
29638 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29639 : STRIP_UNARY (operands[4]))
29640 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29641 : STRIP_UNARY (operands[4]))
29642 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29643 : STRIP_UNARY (operands[3]))
29644 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29645 : STRIP_UNARY (operands[3])))) &&
29646 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29647 : (TARGET_AVX)) &&
29648 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29649 : ( 1)))
29650 : return NULL;
29651 : return gen_split_2988 (insn, operands);
29652 :
29653 : case 11:
29654 : if (!((
29655 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29656 : ((16 == 64 || TARGET_AVX512VL
29657 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29658 : && ix86_pre_reload_split ()
29659 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29660 : STRIP_UNARY (operands[4]))
29661 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29662 : STRIP_UNARY (operands[4]))
29663 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29664 : STRIP_UNARY (operands[3]))
29665 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29666 : STRIP_UNARY (operands[3])))) &&
29667 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29668 : (TARGET_SSE2)) &&
29669 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29670 : ( 1)))
29671 : return NULL;
29672 : return gen_split_3015 (insn, operands);
29673 :
29674 : default:
29675 : return NULL;
29676 : }
29677 :
29678 : case XOR:
29679 : x5 = XEXP (x4, 0);
29680 : operands[1] = x5;
29681 : x6 = XEXP (x4, 1);
29682 : operands[2] = x6;
29683 : x7 = XEXP (x3, 1);
29684 : operands[3] = x7;
29685 : switch (GET_MODE (operands[0]))
29686 : {
29687 : case E_V32HFmode:
29688 : if (pattern1197 (x2,
29689 : E_V32HFmode) != 0
29690 : || !((
29691 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29692 : ((64 == 64 || TARGET_AVX512VL
29693 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29694 : && ix86_pre_reload_split ()
29695 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29696 : STRIP_UNARY (operands[4]))
29697 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29698 : STRIP_UNARY (operands[4]))
29699 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29700 : STRIP_UNARY (operands[3]))
29701 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29702 : STRIP_UNARY (operands[3])))) &&
29703 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29704 : (TARGET_AVX512F)) &&
29705 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29706 : ( 1)))
29707 : return NULL;
29708 : return gen_split_2721 (insn, operands);
29709 :
29710 : case E_V16HFmode:
29711 : if (pattern1007 (x2,
29712 : E_V16HFmode) != 0)
29713 : return NULL;
29714 : if (regmem_or_bitnot_regmem_operand (operands[1], E_V16HFmode)
29715 : && regmem_or_bitnot_regmem_operand (operands[2], E_V16HFmode)
29716 : && regmem_or_bitnot_regmem_operand (operands[3], E_V16HFmode))
29717 : {
29718 : x8 = XEXP (x2, 1);
29719 : operands[4] = x8;
29720 : if (regmem_or_bitnot_regmem_operand (operands[4], E_V16HFmode)
29721 : && ((
29722 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29723 : ((32 == 64 || TARGET_AVX512VL
29724 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29725 : && ix86_pre_reload_split ()
29726 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29727 : STRIP_UNARY (operands[4]))
29728 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29729 : STRIP_UNARY (operands[4]))
29730 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29731 : STRIP_UNARY (operands[3]))
29732 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29733 : STRIP_UNARY (operands[3])))) &&
29734 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29735 : (TARGET_AVX)) &&
29736 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29737 : ( 1)))
29738 : return gen_split_2748 (insn, operands);
29739 : }
29740 : if (!register_operand (operands[1], E_V16HFmode)
29741 : || !register_operand (operands[2], E_V16HFmode)
29742 : || !nonimmediate_operand (operands[3], E_V16HFmode))
29743 : return NULL;
29744 : x8 = XEXP (x2, 1);
29745 : if (rtx_equal_p (x8, operands[1])
29746 : &&
29747 : #line 26842 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29748 : (TARGET_XOP))
29749 : return gen_split_3803 (insn, operands);
29750 : if (!rtx_equal_p (x8, operands[2])
29751 : || !
29752 : #line 26854 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29753 : (TARGET_XOP))
29754 : return NULL;
29755 : return gen_split_3819 (insn, operands);
29756 :
29757 : case E_V8HFmode:
29758 : if (pattern1007 (x2,
29759 : E_V8HFmode) != 0)
29760 : return NULL;
29761 : if (regmem_or_bitnot_regmem_operand (operands[1], E_V8HFmode)
29762 : && regmem_or_bitnot_regmem_operand (operands[2], E_V8HFmode)
29763 : && regmem_or_bitnot_regmem_operand (operands[3], E_V8HFmode))
29764 : {
29765 : x8 = XEXP (x2, 1);
29766 : operands[4] = x8;
29767 : if (regmem_or_bitnot_regmem_operand (operands[4], E_V8HFmode)
29768 : && (
29769 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29770 : ((16 == 64 || TARGET_AVX512VL
29771 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29772 : && ix86_pre_reload_split ()
29773 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29774 : STRIP_UNARY (operands[4]))
29775 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29776 : STRIP_UNARY (operands[4]))
29777 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29778 : STRIP_UNARY (operands[3]))
29779 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29780 : STRIP_UNARY (operands[3])))) &&
29781 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29782 : ( 1)))
29783 : return gen_split_2775 (insn, operands);
29784 : }
29785 : if (!register_operand (operands[1], E_V8HFmode)
29786 : || !register_operand (operands[2], E_V8HFmode)
29787 : || !nonimmediate_operand (operands[3], E_V8HFmode))
29788 : return NULL;
29789 : x8 = XEXP (x2, 1);
29790 : if (rtx_equal_p (x8, operands[1])
29791 : &&
29792 : #line 26842 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29793 : (TARGET_XOP))
29794 : return gen_split_3804 (insn, operands);
29795 : if (!rtx_equal_p (x8, operands[2])
29796 : || !
29797 : #line 26854 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29798 : (TARGET_XOP))
29799 : return NULL;
29800 : return gen_split_3820 (insn, operands);
29801 :
29802 : case E_V32BFmode:
29803 : if (pattern1197 (x2,
29804 : E_V32BFmode) != 0
29805 : || !((
29806 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29807 : ((64 == 64 || TARGET_AVX512VL
29808 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29809 : && ix86_pre_reload_split ()
29810 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29811 : STRIP_UNARY (operands[4]))
29812 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29813 : STRIP_UNARY (operands[4]))
29814 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29815 : STRIP_UNARY (operands[3]))
29816 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29817 : STRIP_UNARY (operands[3])))) &&
29818 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29819 : (TARGET_AVX512F)) &&
29820 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29821 : ( 1)))
29822 : return NULL;
29823 : return gen_split_2802 (insn, operands);
29824 :
29825 : case E_V16BFmode:
29826 : if (pattern1197 (x2,
29827 : E_V16BFmode) != 0
29828 : || !((
29829 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29830 : ((32 == 64 || TARGET_AVX512VL
29831 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29832 : && ix86_pre_reload_split ()
29833 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29834 : STRIP_UNARY (operands[4]))
29835 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29836 : STRIP_UNARY (operands[4]))
29837 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29838 : STRIP_UNARY (operands[3]))
29839 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29840 : STRIP_UNARY (operands[3])))) &&
29841 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29842 : (TARGET_AVX)) &&
29843 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29844 : ( 1)))
29845 : return NULL;
29846 : return gen_split_2829 (insn, operands);
29847 :
29848 : case E_V8BFmode:
29849 : if (pattern1197 (x2,
29850 : E_V8BFmode) != 0
29851 : || !(
29852 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29853 : ((16 == 64 || TARGET_AVX512VL
29854 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29855 : && ix86_pre_reload_split ()
29856 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29857 : STRIP_UNARY (operands[4]))
29858 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29859 : STRIP_UNARY (operands[4]))
29860 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29861 : STRIP_UNARY (operands[3]))
29862 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29863 : STRIP_UNARY (operands[3])))) &&
29864 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29865 : ( 1)))
29866 : return NULL;
29867 : return gen_split_2856 (insn, operands);
29868 :
29869 : case E_V16SFmode:
29870 : if (pattern1197 (x2,
29871 : E_V16SFmode) != 0
29872 : || !((
29873 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29874 : ((64 == 64 || TARGET_AVX512VL
29875 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29876 : && ix86_pre_reload_split ()
29877 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29878 : STRIP_UNARY (operands[4]))
29879 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29880 : STRIP_UNARY (operands[4]))
29881 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29882 : STRIP_UNARY (operands[3]))
29883 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29884 : STRIP_UNARY (operands[3])))) &&
29885 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29886 : (TARGET_AVX512F)) &&
29887 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29888 : ( 1)))
29889 : return NULL;
29890 : return gen_split_2883 (insn, operands);
29891 :
29892 : case E_V8SFmode:
29893 : if (pattern1007 (x2,
29894 : E_V8SFmode) != 0)
29895 : return NULL;
29896 : if (regmem_or_bitnot_regmem_operand (operands[1], E_V8SFmode)
29897 : && regmem_or_bitnot_regmem_operand (operands[2], E_V8SFmode)
29898 : && regmem_or_bitnot_regmem_operand (operands[3], E_V8SFmode))
29899 : {
29900 : x8 = XEXP (x2, 1);
29901 : operands[4] = x8;
29902 : if (regmem_or_bitnot_regmem_operand (operands[4], E_V8SFmode)
29903 : && ((
29904 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29905 : ((32 == 64 || TARGET_AVX512VL
29906 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29907 : && ix86_pre_reload_split ()
29908 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29909 : STRIP_UNARY (operands[4]))
29910 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29911 : STRIP_UNARY (operands[4]))
29912 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29913 : STRIP_UNARY (operands[3]))
29914 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29915 : STRIP_UNARY (operands[3])))) &&
29916 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29917 : (TARGET_AVX)) &&
29918 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29919 : ( 1)))
29920 : return gen_split_2910 (insn, operands);
29921 : }
29922 : if (!register_operand (operands[1], E_V8SFmode)
29923 : || !register_operand (operands[2], E_V8SFmode)
29924 : || !nonimmediate_operand (operands[3], E_V8SFmode))
29925 : return NULL;
29926 : x8 = XEXP (x2, 1);
29927 : if (rtx_equal_p (x8, operands[1])
29928 : &&
29929 : #line 26842 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29930 : (TARGET_XOP))
29931 : return gen_split_3805 (insn, operands);
29932 : if (!rtx_equal_p (x8, operands[2])
29933 : || !
29934 : #line 26854 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29935 : (TARGET_XOP))
29936 : return NULL;
29937 : return gen_split_3821 (insn, operands);
29938 :
29939 : case E_V4SFmode:
29940 : if (pattern1007 (x2,
29941 : E_V4SFmode) != 0)
29942 : return NULL;
29943 : if (regmem_or_bitnot_regmem_operand (operands[1], E_V4SFmode)
29944 : && regmem_or_bitnot_regmem_operand (operands[2], E_V4SFmode)
29945 : && regmem_or_bitnot_regmem_operand (operands[3], E_V4SFmode))
29946 : {
29947 : x8 = XEXP (x2, 1);
29948 : operands[4] = x8;
29949 : if (regmem_or_bitnot_regmem_operand (operands[4], E_V4SFmode)
29950 : && (
29951 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29952 : ((16 == 64 || TARGET_AVX512VL
29953 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29954 : && ix86_pre_reload_split ()
29955 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29956 : STRIP_UNARY (operands[4]))
29957 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29958 : STRIP_UNARY (operands[4]))
29959 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29960 : STRIP_UNARY (operands[3]))
29961 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29962 : STRIP_UNARY (operands[3])))) &&
29963 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29964 : ( 1)))
29965 : return gen_split_2937 (insn, operands);
29966 : }
29967 : if (!register_operand (operands[1], E_V4SFmode)
29968 : || !register_operand (operands[2], E_V4SFmode)
29969 : || !nonimmediate_operand (operands[3], E_V4SFmode))
29970 : return NULL;
29971 : x8 = XEXP (x2, 1);
29972 : if (rtx_equal_p (x8, operands[1])
29973 : &&
29974 : #line 26842 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29975 : (TARGET_XOP))
29976 : return gen_split_3806 (insn, operands);
29977 : if (!rtx_equal_p (x8, operands[2])
29978 : || !
29979 : #line 26854 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29980 : (TARGET_XOP))
29981 : return NULL;
29982 : return gen_split_3822 (insn, operands);
29983 :
29984 : case E_V8DFmode:
29985 : if (pattern1197 (x2,
29986 : E_V8DFmode) != 0
29987 : || !((
29988 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29989 : ((64 == 64 || TARGET_AVX512VL
29990 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29991 : && ix86_pre_reload_split ()
29992 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29993 : STRIP_UNARY (operands[4]))
29994 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29995 : STRIP_UNARY (operands[4]))
29996 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29997 : STRIP_UNARY (operands[3]))
29998 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29999 : STRIP_UNARY (operands[3])))) &&
30000 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30001 : (TARGET_AVX512F)) &&
30002 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30003 : ( 1)))
30004 : return NULL;
30005 : return gen_split_2964 (insn, operands);
30006 :
30007 : case E_V4DFmode:
30008 : if (pattern1007 (x2,
30009 : E_V4DFmode) != 0)
30010 : return NULL;
30011 : if (regmem_or_bitnot_regmem_operand (operands[1], E_V4DFmode)
30012 : && regmem_or_bitnot_regmem_operand (operands[2], E_V4DFmode)
30013 : && regmem_or_bitnot_regmem_operand (operands[3], E_V4DFmode))
30014 : {
30015 : x8 = XEXP (x2, 1);
30016 : operands[4] = x8;
30017 : if (regmem_or_bitnot_regmem_operand (operands[4], E_V4DFmode)
30018 : && ((
30019 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30020 : ((32 == 64 || TARGET_AVX512VL
30021 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30022 : && ix86_pre_reload_split ()
30023 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30024 : STRIP_UNARY (operands[4]))
30025 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30026 : STRIP_UNARY (operands[4]))
30027 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30028 : STRIP_UNARY (operands[3]))
30029 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30030 : STRIP_UNARY (operands[3])))) &&
30031 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30032 : (TARGET_AVX)) &&
30033 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30034 : ( 1)))
30035 : return gen_split_2991 (insn, operands);
30036 : }
30037 : if (!register_operand (operands[1], E_V4DFmode)
30038 : || !register_operand (operands[2], E_V4DFmode)
30039 : || !nonimmediate_operand (operands[3], E_V4DFmode))
30040 : return NULL;
30041 : x8 = XEXP (x2, 1);
30042 : if (rtx_equal_p (x8, operands[1])
30043 : &&
30044 : #line 26842 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30045 : (TARGET_XOP))
30046 : return gen_split_3807 (insn, operands);
30047 : if (!rtx_equal_p (x8, operands[2])
30048 : || !
30049 : #line 26854 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30050 : (TARGET_XOP))
30051 : return NULL;
30052 : return gen_split_3823 (insn, operands);
30053 :
30054 : case E_V2DFmode:
30055 : if (pattern1007 (x2,
30056 : E_V2DFmode) != 0)
30057 : return NULL;
30058 : if (regmem_or_bitnot_regmem_operand (operands[1], E_V2DFmode)
30059 : && regmem_or_bitnot_regmem_operand (operands[2], E_V2DFmode)
30060 : && regmem_or_bitnot_regmem_operand (operands[3], E_V2DFmode))
30061 : {
30062 : x8 = XEXP (x2, 1);
30063 : operands[4] = x8;
30064 : if (regmem_or_bitnot_regmem_operand (operands[4], E_V2DFmode)
30065 : && ((
30066 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30067 : ((16 == 64 || TARGET_AVX512VL
30068 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30069 : && ix86_pre_reload_split ()
30070 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30071 : STRIP_UNARY (operands[4]))
30072 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30073 : STRIP_UNARY (operands[4]))
30074 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30075 : STRIP_UNARY (operands[3]))
30076 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30077 : STRIP_UNARY (operands[3])))) &&
30078 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30079 : (TARGET_SSE2)) &&
30080 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30081 : ( 1)))
30082 : return gen_split_3018 (insn, operands);
30083 : }
30084 : if (!register_operand (operands[1], E_V2DFmode)
30085 : || !register_operand (operands[2], E_V2DFmode)
30086 : || !nonimmediate_operand (operands[3], E_V2DFmode))
30087 : return NULL;
30088 : x8 = XEXP (x2, 1);
30089 : if (rtx_equal_p (x8, operands[1])
30090 : &&
30091 : #line 26842 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30092 : (TARGET_XOP))
30093 : return gen_split_3808 (insn, operands);
30094 : if (!rtx_equal_p (x8, operands[2])
30095 : || !
30096 : #line 26854 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30097 : (TARGET_XOP))
30098 : return NULL;
30099 : return gen_split_3824 (insn, operands);
30100 :
30101 : default:
30102 : return NULL;
30103 : }
30104 :
30105 : default:
30106 : return NULL;
30107 : }
30108 : }
30109 :
30110 : rtx_insn *
30111 : split_86 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
30112 : {
30113 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
30114 : rtx x2, x3, x4;
30115 : rtx_insn *res ATTRIBUTE_UNUSED;
30116 : x2 = XEXP (x1, 1);
30117 : x3 = XEXP (x2, 0);
30118 : switch (GET_CODE (x3))
30119 : {
30120 : case NOT:
30121 : x4 = XEXP (x3, 0);
30122 : operands[1] = x4;
30123 : switch (GET_MODE (operands[0]))
30124 : {
30125 : case E_V16SImode:
30126 : if (pattern628 (x2,
30127 : E_V16SImode,
30128 : E_SImode) != 0
30129 : || !(
30130 : #line 18788 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30131 : (64 == 64 || TARGET_AVX512VL
30132 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)) &&
30133 : #line 795 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30134 : (TARGET_AVX512F)))
30135 : return NULL;
30136 : return gen_split_3430 (insn, operands);
30137 :
30138 : case E_V8SImode:
30139 : if (pattern628 (x2,
30140 : E_V8SImode,
30141 : E_SImode) != 0
30142 : || !
30143 : #line 18788 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30144 : (32 == 64 || TARGET_AVX512VL
30145 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)))
30146 : return NULL;
30147 : return gen_split_3431 (insn, operands);
30148 :
30149 : case E_V4SImode:
30150 : if (pattern628 (x2,
30151 : E_V4SImode,
30152 : E_SImode) != 0
30153 : || !
30154 : #line 18788 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30155 : (16 == 64 || TARGET_AVX512VL
30156 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)))
30157 : return NULL;
30158 : return gen_split_3432 (insn, operands);
30159 :
30160 : case E_V8DImode:
30161 : if (pattern628 (x2,
30162 : E_V8DImode,
30163 : E_DImode) != 0
30164 : || !(
30165 : #line 18788 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30166 : (64 == 64 || TARGET_AVX512VL
30167 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)) &&
30168 : #line 796 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30169 : (TARGET_AVX512F)))
30170 : return NULL;
30171 : return gen_split_3433 (insn, operands);
30172 :
30173 : case E_V4DImode:
30174 : if (pattern628 (x2,
30175 : E_V4DImode,
30176 : E_DImode) != 0
30177 : || !
30178 : #line 18788 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30179 : (32 == 64 || TARGET_AVX512VL
30180 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)))
30181 : return NULL;
30182 : return gen_split_3434 (insn, operands);
30183 :
30184 : case E_V2DImode:
30185 : if (pattern628 (x2,
30186 : E_V2DImode,
30187 : E_DImode) != 0
30188 : || !
30189 : #line 18788 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30190 : (16 == 64 || TARGET_AVX512VL
30191 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)))
30192 : return NULL;
30193 : return gen_split_3435 (insn, operands);
30194 :
30195 : default:
30196 : return NULL;
30197 : }
30198 :
30199 : case REG:
30200 : case SUBREG:
30201 : operands[1] = x3;
30202 : switch (GET_MODE (operands[0]))
30203 : {
30204 : case E_V32QImode:
30205 : if (!register_operand (operands[0], E_V32QImode)
30206 : || GET_MODE (x2) != E_V32QImode
30207 : || !register_operand (operands[1], E_QImode)
30208 : || !
30209 : #line 28655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30210 : (TARGET_AVX2
30211 : /* Disable this splitter if avx512vl_vec_dup_gprv*[qhs]i insn is
30212 : available, because then we can broadcast from GPRs directly.
30213 : For V*[QH]I modes it requires both -mavx512vl and -mavx512bw,
30214 : for V*SI mode it requires just -mavx512vl. */
30215 : && !(TARGET_AVX512VL
30216 : && (TARGET_AVX512BW || QImode == SImode))
30217 : && reload_completed && GENERAL_REG_P (operands[1])))
30218 : return NULL;
30219 : return gen_split_3829 (insn, operands);
30220 :
30221 : case E_V16QImode:
30222 : if (!register_operand (operands[0], E_V16QImode)
30223 : || GET_MODE (x2) != E_V16QImode
30224 : || !register_operand (operands[1], E_QImode)
30225 : || !
30226 : #line 28655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30227 : (TARGET_AVX2
30228 : /* Disable this splitter if avx512vl_vec_dup_gprv*[qhs]i insn is
30229 : available, because then we can broadcast from GPRs directly.
30230 : For V*[QH]I modes it requires both -mavx512vl and -mavx512bw,
30231 : for V*SI mode it requires just -mavx512vl. */
30232 : && !(TARGET_AVX512VL
30233 : && (TARGET_AVX512BW || QImode == SImode))
30234 : && reload_completed && GENERAL_REG_P (operands[1])))
30235 : return NULL;
30236 : return gen_split_3830 (insn, operands);
30237 :
30238 : case E_V16HImode:
30239 : if (!register_operand (operands[0], E_V16HImode)
30240 : || GET_MODE (x2) != E_V16HImode
30241 : || !register_operand (operands[1], E_HImode)
30242 : || !
30243 : #line 28655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30244 : (TARGET_AVX2
30245 : /* Disable this splitter if avx512vl_vec_dup_gprv*[qhs]i insn is
30246 : available, because then we can broadcast from GPRs directly.
30247 : For V*[QH]I modes it requires both -mavx512vl and -mavx512bw,
30248 : for V*SI mode it requires just -mavx512vl. */
30249 : && !(TARGET_AVX512VL
30250 : && (TARGET_AVX512BW || HImode == SImode))
30251 : && reload_completed && GENERAL_REG_P (operands[1])))
30252 : return NULL;
30253 : return gen_split_3831 (insn, operands);
30254 :
30255 : case E_V8HImode:
30256 : if (!register_operand (operands[0], E_V8HImode)
30257 : || GET_MODE (x2) != E_V8HImode
30258 : || !register_operand (operands[1], E_HImode)
30259 : || !
30260 : #line 28655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30261 : (TARGET_AVX2
30262 : /* Disable this splitter if avx512vl_vec_dup_gprv*[qhs]i insn is
30263 : available, because then we can broadcast from GPRs directly.
30264 : For V*[QH]I modes it requires both -mavx512vl and -mavx512bw,
30265 : for V*SI mode it requires just -mavx512vl. */
30266 : && !(TARGET_AVX512VL
30267 : && (TARGET_AVX512BW || HImode == SImode))
30268 : && reload_completed && GENERAL_REG_P (operands[1])))
30269 : return NULL;
30270 : return gen_split_3832 (insn, operands);
30271 :
30272 : case E_V8SImode:
30273 : if (!register_operand (operands[0], E_V8SImode)
30274 : || GET_MODE (x2) != E_V8SImode
30275 : || !register_operand (operands[1], E_SImode))
30276 : return NULL;
30277 : if (
30278 : #line 28655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30279 : (TARGET_AVX2
30280 : /* Disable this splitter if avx512vl_vec_dup_gprv*[qhs]i insn is
30281 : available, because then we can broadcast from GPRs directly.
30282 : For V*[QH]I modes it requires both -mavx512vl and -mavx512bw,
30283 : for V*SI mode it requires just -mavx512vl. */
30284 : && !(TARGET_AVX512VL
30285 : && (TARGET_AVX512BW || SImode == SImode))
30286 : && reload_completed && GENERAL_REG_P (operands[1])))
30287 : return gen_split_3833 (insn, operands);
30288 : if (!
30289 : #line 28678 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30290 : (TARGET_AVX && !TARGET_AVX2 && reload_completed))
30291 : return NULL;
30292 : return gen_split_3839 (insn, operands);
30293 :
30294 : case E_V4SImode:
30295 : if (!register_operand (operands[0], E_V4SImode)
30296 : || GET_MODE (x2) != E_V4SImode
30297 : || !register_operand (operands[1], E_SImode)
30298 : || !
30299 : #line 28655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30300 : (TARGET_AVX2
30301 : /* Disable this splitter if avx512vl_vec_dup_gprv*[qhs]i insn is
30302 : available, because then we can broadcast from GPRs directly.
30303 : For V*[QH]I modes it requires both -mavx512vl and -mavx512bw,
30304 : for V*SI mode it requires just -mavx512vl. */
30305 : && !(TARGET_AVX512VL
30306 : && (TARGET_AVX512BW || SImode == SImode))
30307 : && reload_completed && GENERAL_REG_P (operands[1])))
30308 : return NULL;
30309 : return gen_split_3834 (insn, operands);
30310 :
30311 : case E_V16HFmode:
30312 : if (!register_operand (operands[0], E_V16HFmode)
30313 : || GET_MODE (x2) != E_V16HFmode
30314 : || !register_operand (operands[1], E_HFmode)
30315 : || !
30316 : #line 28655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30317 : (TARGET_AVX2
30318 : /* Disable this splitter if avx512vl_vec_dup_gprv*[qhs]i insn is
30319 : available, because then we can broadcast from GPRs directly.
30320 : For V*[QH]I modes it requires both -mavx512vl and -mavx512bw,
30321 : for V*SI mode it requires just -mavx512vl. */
30322 : && !(TARGET_AVX512VL
30323 : && (TARGET_AVX512BW || HFmode == SImode))
30324 : && reload_completed && GENERAL_REG_P (operands[1])))
30325 : return NULL;
30326 : return gen_split_3835 (insn, operands);
30327 :
30328 : case E_V8HFmode:
30329 : if (!register_operand (operands[0], E_V8HFmode)
30330 : || GET_MODE (x2) != E_V8HFmode
30331 : || !register_operand (operands[1], E_HFmode)
30332 : || !
30333 : #line 28655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30334 : (TARGET_AVX2
30335 : /* Disable this splitter if avx512vl_vec_dup_gprv*[qhs]i insn is
30336 : available, because then we can broadcast from GPRs directly.
30337 : For V*[QH]I modes it requires both -mavx512vl and -mavx512bw,
30338 : for V*SI mode it requires just -mavx512vl. */
30339 : && !(TARGET_AVX512VL
30340 : && (TARGET_AVX512BW || HFmode == SImode))
30341 : && reload_completed && GENERAL_REG_P (operands[1])))
30342 : return NULL;
30343 : return gen_split_3836 (insn, operands);
30344 :
30345 : case E_V16BFmode:
30346 : if (!register_operand (operands[0], E_V16BFmode)
30347 : || GET_MODE (x2) != E_V16BFmode
30348 : || !register_operand (operands[1], E_BFmode)
30349 : || !
30350 : #line 28655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30351 : (TARGET_AVX2
30352 : /* Disable this splitter if avx512vl_vec_dup_gprv*[qhs]i insn is
30353 : available, because then we can broadcast from GPRs directly.
30354 : For V*[QH]I modes it requires both -mavx512vl and -mavx512bw,
30355 : for V*SI mode it requires just -mavx512vl. */
30356 : && !(TARGET_AVX512VL
30357 : && (TARGET_AVX512BW || BFmode == SImode))
30358 : && reload_completed && GENERAL_REG_P (operands[1])))
30359 : return NULL;
30360 : return gen_split_3837 (insn, operands);
30361 :
30362 : case E_V8BFmode:
30363 : if (!register_operand (operands[0], E_V8BFmode)
30364 : || GET_MODE (x2) != E_V8BFmode
30365 : || !register_operand (operands[1], E_BFmode)
30366 : || !
30367 : #line 28655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30368 : (TARGET_AVX2
30369 : /* Disable this splitter if avx512vl_vec_dup_gprv*[qhs]i insn is
30370 : available, because then we can broadcast from GPRs directly.
30371 : For V*[QH]I modes it requires both -mavx512vl and -mavx512bw,
30372 : for V*SI mode it requires just -mavx512vl. */
30373 : && !(TARGET_AVX512VL
30374 : && (TARGET_AVX512BW || BFmode == SImode))
30375 : && reload_completed && GENERAL_REG_P (operands[1])))
30376 : return NULL;
30377 : return gen_split_3838 (insn, operands);
30378 :
30379 : case E_V8SFmode:
30380 : if (!register_operand (operands[0], E_V8SFmode)
30381 : || GET_MODE (x2) != E_V8SFmode
30382 : || !register_operand (operands[1], E_SFmode)
30383 : || !
30384 : #line 28678 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30385 : (TARGET_AVX && !TARGET_AVX2 && reload_completed))
30386 : return NULL;
30387 : return gen_split_3840 (insn, operands);
30388 :
30389 : case E_V4DImode:
30390 : if (!register_operand (operands[0], E_V4DImode)
30391 : || GET_MODE (x2) != E_V4DImode
30392 : || !register_operand (operands[1], E_DImode)
30393 : || !
30394 : #line 28678 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30395 : (TARGET_AVX && !TARGET_AVX2 && reload_completed))
30396 : return NULL;
30397 : return gen_split_3841 (insn, operands);
30398 :
30399 : case E_V4DFmode:
30400 : if (!register_operand (operands[0], E_V4DFmode)
30401 : || GET_MODE (x2) != E_V4DFmode
30402 : || !register_operand (operands[1], E_DFmode)
30403 : || !
30404 : #line 28678 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30405 : (TARGET_AVX && !TARGET_AVX2 && reload_completed))
30406 : return NULL;
30407 : return gen_split_3842 (insn, operands);
30408 :
30409 : default:
30410 : return NULL;
30411 : }
30412 :
30413 : default:
30414 : return NULL;
30415 : }
30416 : }
30417 :
30418 : rtx_insn *
30419 : split_87 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
30420 : {
30421 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
30422 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
30423 : rtx x10, x11, x12, x13, x14;
30424 : rtx_insn *res ATTRIBUTE_UNUSED;
30425 : x2 = XEXP (x1, 1);
30426 : operands[1] = x2;
30427 : res = split_84 (x1, insn);
30428 : if (res != NULL_RTX)
30429 : return res;
30430 : switch (GET_CODE (x2))
30431 : {
30432 : case UNSPEC:
30433 : return split_81 (x1, insn);
30434 :
30435 : case VEC_MERGE:
30436 : return split_85 (x1, insn);
30437 :
30438 : case AND:
30439 : case IOR:
30440 : case XOR:
30441 : case NOT:
30442 : return split_82 (x1, insn);
30443 :
30444 : case VEC_SELECT:
30445 : return split_83 (x1, insn);
30446 :
30447 : case PLUS:
30448 : x3 = XEXP (x2, 0);
30449 : if (GET_CODE (x3) != UNSPEC)
30450 : return NULL;
30451 : switch (pattern193 (x2))
30452 : {
30453 : case 0:
30454 : if (!(
30455 : #line 7521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30456 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
30457 : && ix86_pre_reload_split ()) &&
30458 : #line 7524 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30459 : ( 1)))
30460 : return NULL;
30461 : return gen_split_1582 (insn, operands);
30462 :
30463 : case 1:
30464 : if (!((
30465 : #line 7521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30466 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
30467 : && ix86_pre_reload_split ()) &&
30468 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30469 : (TARGET_AVX512VL)) &&
30470 : #line 7524 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30471 : ( 1)))
30472 : return NULL;
30473 : return gen_split_1583 (insn, operands);
30474 :
30475 : case 2:
30476 : if (!((
30477 : #line 7521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30478 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
30479 : && ix86_pre_reload_split ()) &&
30480 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30481 : (TARGET_AVX512VL)) &&
30482 : #line 7524 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30483 : ( 1)))
30484 : return NULL;
30485 : return gen_split_1584 (insn, operands);
30486 :
30487 : case 3:
30488 : if (!(
30489 : #line 7538 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30490 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
30491 : && ix86_pre_reload_split ()) &&
30492 : #line 7541 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30493 : ( 1)))
30494 : return NULL;
30495 : return gen_split_1585 (insn, operands);
30496 :
30497 : case 4:
30498 : if (!((
30499 : #line 7538 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30500 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
30501 : && ix86_pre_reload_split ()) &&
30502 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30503 : (TARGET_AVX512VL)) &&
30504 : #line 7541 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30505 : ( 1)))
30506 : return NULL;
30507 : return gen_split_1586 (insn, operands);
30508 :
30509 : case 5:
30510 : if (!((
30511 : #line 7538 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30512 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
30513 : && ix86_pre_reload_split ()) &&
30514 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30515 : (TARGET_AVX512VL)) &&
30516 : #line 7541 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30517 : ( 1)))
30518 : return NULL;
30519 : return gen_split_1587 (insn, operands);
30520 :
30521 : case 6:
30522 : if (!(
30523 : #line 7556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30524 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
30525 : && ix86_pre_reload_split ()) &&
30526 : #line 7559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30527 : ( 1)))
30528 : return NULL;
30529 : return gen_split_1588 (insn, operands);
30530 :
30531 : case 7:
30532 : if (!((
30533 : #line 7556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30534 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
30535 : && ix86_pre_reload_split ()) &&
30536 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30537 : (TARGET_AVX512VL)) &&
30538 : #line 7559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30539 : ( 1)))
30540 : return NULL;
30541 : return gen_split_1590 (insn, operands);
30542 :
30543 : case 8:
30544 : if (!((
30545 : #line 7556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30546 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
30547 : && ix86_pre_reload_split ()) &&
30548 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30549 : (TARGET_AVX512VL)) &&
30550 : #line 7559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30551 : ( 1)))
30552 : return NULL;
30553 : return gen_split_1592 (insn, operands);
30554 :
30555 : case 9:
30556 : if (!(
30557 : #line 7556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30558 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
30559 : && ix86_pre_reload_split ()) &&
30560 : #line 7559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30561 : ( 1)))
30562 : return NULL;
30563 : return gen_split_1589 (insn, operands);
30564 :
30565 : case 10:
30566 : if (!((
30567 : #line 7556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30568 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
30569 : && ix86_pre_reload_split ()) &&
30570 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30571 : (TARGET_AVX512VL)) &&
30572 : #line 7559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30573 : ( 1)))
30574 : return NULL;
30575 : return gen_split_1591 (insn, operands);
30576 :
30577 : case 11:
30578 : if (!((
30579 : #line 7556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30580 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
30581 : && ix86_pre_reload_split ()) &&
30582 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30583 : (TARGET_AVX512VL)) &&
30584 : #line 7559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30585 : ( 1)))
30586 : return NULL;
30587 : return gen_split_1593 (insn, operands);
30588 :
30589 : default:
30590 : return NULL;
30591 : }
30592 :
30593 : case VEC_CONCAT:
30594 : x3 = XEXP (x2, 0);
30595 : switch (GET_CODE (x3))
30596 : {
30597 : case ZERO_EXTEND:
30598 : switch (pattern188 (x2))
30599 : {
30600 : case 0:
30601 : if (!(
30602 : #line 12426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30603 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()) &&
30604 : #line 12428 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30605 : ( 1)))
30606 : return NULL;
30607 : return gen_split_1631 (insn, operands);
30608 :
30609 : case 1:
30610 : if (!(
30611 : #line 12540 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30612 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30613 : #line 12542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30614 : ( 1)))
30615 : return NULL;
30616 : return gen_split_1635 (insn, operands);
30617 :
30618 : default:
30619 : return NULL;
30620 : }
30621 :
30622 : case VEC_SELECT:
30623 : if (GET_MODE (x3) != E_DFmode)
30624 : return NULL;
30625 : x4 = XEXP (x3, 1);
30626 : if (GET_CODE (x4) != PARALLEL
30627 : || XVECLEN (x4, 0) != 1)
30628 : return NULL;
30629 : x5 = XVECEXP (x4, 0, 0);
30630 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
30631 : || !memory_operand (operands[0], E_V2DFmode)
30632 : || GET_MODE (x2) != E_V2DFmode)
30633 : return NULL;
30634 : x6 = XEXP (x2, 1);
30635 : operands[1] = x6;
30636 : if (!register_operand (operands[1], E_DFmode))
30637 : return NULL;
30638 : x7 = XEXP (x3, 0);
30639 : if (!rtx_equal_p (x7, operands[0])
30640 : || !
30641 : #line 15076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30642 : (TARGET_SSE2 && reload_completed))
30643 : return NULL;
30644 : return gen_split_3257 (insn, operands);
30645 :
30646 : case REG:
30647 : case SUBREG:
30648 : case MEM:
30649 : operands[1] = x3;
30650 : res = split_80 (x1, insn);
30651 : if (res != NULL_RTX)
30652 : return res;
30653 : if (GET_CODE (x3) != SUBREG
30654 : || maybe_ne (SUBREG_BYTE (x3), 0))
30655 : return NULL;
30656 : x6 = XEXP (x2, 1);
30657 : if (GET_CODE (x6) != SUBREG)
30658 : return NULL;
30659 : x7 = XEXP (x3, 0);
30660 : switch (GET_CODE (x7))
30661 : {
30662 : case REG:
30663 : case SUBREG:
30664 : operands[1] = x7;
30665 : if (!register_operand (operands[1], E_TImode)
30666 : || maybe_ne (SUBREG_BYTE (x6), 8)
30667 : || GET_MODE (x6) != E_DImode
30668 : || !register_operand (operands[0], E_V2DImode)
30669 : || GET_MODE (x2) != E_V2DImode
30670 : || GET_MODE (x3) != E_DImode)
30671 : return NULL;
30672 : x8 = XEXP (x6, 0);
30673 : if (!rtx_equal_p (x8, operands[1])
30674 : || !
30675 : #line 22065 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30676 : (TARGET_SSE2 && ix86_pre_reload_split ()))
30677 : return NULL;
30678 : return gen_split_3494 (insn, operands);
30679 :
30680 : case UNSPEC:
30681 : if (XVECLEN (x7, 0) != 1
30682 : || XINT (x7, 1) != 120
30683 : || GET_MODE (x7) != E_V16QImode
30684 : || pattern1263 (x6) != 0
30685 : || !register_operand (operands[0], E_V4DImode)
30686 : || GET_MODE (x2) != E_V4DImode
30687 : || GET_MODE (x3) != E_V2DImode)
30688 : return NULL;
30689 : x9 = XVECEXP (x7, 0, 0);
30690 : operands[1] = x9;
30691 : if (!memory_operand (operands[1], E_V16QImode))
30692 : return NULL;
30693 : x8 = XEXP (x6, 0);
30694 : x10 = XVECEXP (x8, 0, 0);
30695 : if (!rtx_equal_p (x10, operands[1])
30696 : || !(
30697 : #line 28598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30698 : (TARGET_AVX2 && ix86_pre_reload_split ()) &&
30699 : #line 28600 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30700 : ( 1)))
30701 : return NULL;
30702 : return gen_split_3828 (insn, operands);
30703 :
30704 : default:
30705 : return NULL;
30706 : }
30707 :
30708 : case VEC_CONCAT:
30709 : if (pattern416 (x2) != 0)
30710 : return NULL;
30711 : x7 = XEXP (x3, 0);
30712 : operands[1] = x7;
30713 : switch (GET_MODE (operands[0]))
30714 : {
30715 : case E_V16SImode:
30716 : if (pattern1491 (x2,
30717 : E_V8SImode,
30718 : E_V4SImode,
30719 : E_V16SImode) != 0
30720 : || !(
30721 : #line 30839 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30722 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
30723 : #line 30841 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30724 : ( reload_completed)))
30725 : return NULL;
30726 : return gen_split_3920 (insn, operands);
30727 :
30728 : case E_V16SFmode:
30729 : if (pattern1491 (x2,
30730 : E_V8SFmode,
30731 : E_V4SFmode,
30732 : E_V16SFmode) != 0
30733 : || !(
30734 : #line 30839 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30735 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
30736 : #line 30841 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30737 : ( reload_completed)))
30738 : return NULL;
30739 : return gen_split_3921 (insn, operands);
30740 :
30741 : case E_V8DFmode:
30742 : if (pattern1491 (x2,
30743 : E_V4DFmode,
30744 : E_V2DFmode,
30745 : E_V8DFmode) != 0
30746 : || !(
30747 : #line 30839 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30748 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
30749 : #line 30841 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30750 : ( reload_completed)))
30751 : return NULL;
30752 : return gen_split_3922 (insn, operands);
30753 :
30754 : default:
30755 : return NULL;
30756 : }
30757 :
30758 : default:
30759 : return NULL;
30760 : }
30761 :
30762 : case EQ:
30763 : x3 = XEXP (x2, 0);
30764 : switch (GET_CODE (x3))
30765 : {
30766 : case US_MINUS:
30767 : x7 = XEXP (x3, 0);
30768 : operands[1] = x7;
30769 : x4 = XEXP (x3, 1);
30770 : operands[2] = x4;
30771 : x6 = XEXP (x2, 1);
30772 : operands[3] = x6;
30773 : switch (GET_MODE (operands[0]))
30774 : {
30775 : case E_V32QImode:
30776 : if (pattern958 (x2,
30777 : E_V32QImode) != 0
30778 : || !(
30779 : #line 16662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30780 : (TARGET_SSE2
30781 : && (V32QImode != V8HImode || TARGET_SSE4_1)
30782 : && ix86_binary_operator_ok (US_MINUS, V32QImode, operands)) &&
30783 : #line 728 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30784 : (TARGET_AVX2)))
30785 : return NULL;
30786 : return gen_split_3300 (insn, operands);
30787 :
30788 : case E_V16QImode:
30789 : if (pattern958 (x2,
30790 : E_V16QImode) != 0
30791 : || !
30792 : #line 16662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30793 : (TARGET_SSE2
30794 : && (V16QImode != V8HImode || TARGET_SSE4_1)
30795 : && ix86_binary_operator_ok (US_MINUS, V16QImode, operands)))
30796 : return NULL;
30797 : return gen_split_3301 (insn, operands);
30798 :
30799 : case E_V16HImode:
30800 : if (pattern958 (x2,
30801 : E_V16HImode) != 0
30802 : || !(
30803 : #line 16662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30804 : (TARGET_SSE2
30805 : && (V16HImode != V8HImode || TARGET_SSE4_1)
30806 : && ix86_binary_operator_ok (US_MINUS, V16HImode, operands)) &&
30807 : #line 729 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30808 : (TARGET_AVX2)))
30809 : return NULL;
30810 : return gen_split_3302 (insn, operands);
30811 :
30812 : case E_V8HImode:
30813 : if (pattern958 (x2,
30814 : E_V8HImode) != 0
30815 : || !
30816 : #line 16662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30817 : (TARGET_SSE2
30818 : && (V8HImode != V8HImode || TARGET_SSE4_1)
30819 : && ix86_binary_operator_ok (US_MINUS, V8HImode, operands)))
30820 : return NULL;
30821 : return gen_split_3303 (insn, operands);
30822 :
30823 : default:
30824 : return NULL;
30825 : }
30826 :
30827 : case EQ:
30828 : x4 = XEXP (x3, 1);
30829 : operands[3] = x4;
30830 : x6 = XEXP (x2, 1);
30831 : operands[4] = x6;
30832 : x7 = XEXP (x3, 0);
30833 : switch (GET_CODE (x7))
30834 : {
30835 : case LSHIFTRT:
30836 : x11 = XEXP (x7, 0);
30837 : operands[1] = x11;
30838 : x12 = XEXP (x7, 1);
30839 : operands[2] = x12;
30840 : if (!const_int_operand (operands[2], E_SImode))
30841 : return NULL;
30842 : switch (GET_MODE (operands[0]))
30843 : {
30844 : case E_V16HImode:
30845 : if (pattern1264 (x2,
30846 : E_V16HImode) != 0
30847 : || !(
30848 : #line 17856 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30849 : (INTVAL (operands[2]) == GET_MODE_PRECISION (HImode) - 1) &&
30850 : #line 767 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30851 : (TARGET_AVX2)))
30852 : return NULL;
30853 : return gen_split_3348 (insn, operands);
30854 :
30855 : case E_V8HImode:
30856 : if (pattern1264 (x2,
30857 : E_V8HImode) != 0
30858 : || !
30859 : #line 17856 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30860 : (INTVAL (operands[2]) == GET_MODE_PRECISION (HImode) - 1))
30861 : return NULL;
30862 : return gen_split_3349 (insn, operands);
30863 :
30864 : case E_V8SImode:
30865 : if (pattern1264 (x2,
30866 : E_V8SImode) != 0
30867 : || !(
30868 : #line 17856 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30869 : (INTVAL (operands[2]) == GET_MODE_PRECISION (SImode) - 1) &&
30870 : #line 768 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30871 : (TARGET_AVX2)))
30872 : return NULL;
30873 : return gen_split_3350 (insn, operands);
30874 :
30875 : case E_V4SImode:
30876 : if (pattern1264 (x2,
30877 : E_V4SImode) != 0
30878 : || !
30879 : #line 17856 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30880 : (INTVAL (operands[2]) == GET_MODE_PRECISION (SImode) - 1))
30881 : return NULL;
30882 : return gen_split_3351 (insn, operands);
30883 :
30884 : case E_V4DImode:
30885 : if (pattern1264 (x2,
30886 : E_V4DImode) != 0
30887 : || !(
30888 : #line 17856 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30889 : (INTVAL (operands[2]) == GET_MODE_PRECISION (DImode) - 1) &&
30890 : #line 769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30891 : (TARGET_AVX2)))
30892 : return NULL;
30893 : return gen_split_3352 (insn, operands);
30894 :
30895 : case E_V2DImode:
30896 : if (pattern1264 (x2,
30897 : E_V2DImode) != 0
30898 : || !
30899 : #line 17856 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30900 : (INTVAL (operands[2]) == GET_MODE_PRECISION (DImode) - 1))
30901 : return NULL;
30902 : return gen_split_3353 (insn, operands);
30903 :
30904 : default:
30905 : return NULL;
30906 : }
30907 :
30908 : case EQ:
30909 : x11 = XEXP (x7, 0);
30910 : operands[1] = x11;
30911 : x12 = XEXP (x7, 1);
30912 : operands[2] = x12;
30913 : switch (GET_MODE (operands[0]))
30914 : {
30915 : case E_V32QImode:
30916 : if (pattern1153 (x2,
30917 : E_V32QImode) != 0
30918 : || !((
30919 : #line 18280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30920 : (TARGET_SSE4_1 && ix86_pre_reload_split ()) &&
30921 : #line 584 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30922 : (TARGET_AVX2)) &&
30923 : #line 18282 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30924 : ( 1)))
30925 : return NULL;
30926 : return gen_split_3356 (insn, operands);
30927 :
30928 : case E_V16QImode:
30929 : if (pattern1153 (x2,
30930 : E_V16QImode) != 0
30931 : || !(
30932 : #line 18280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30933 : (TARGET_SSE4_1 && ix86_pre_reload_split ()) &&
30934 : #line 18282 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30935 : ( 1)))
30936 : return NULL;
30937 : return gen_split_3357 (insn, operands);
30938 :
30939 : case E_V16HImode:
30940 : if (pattern1153 (x2,
30941 : E_V16HImode) != 0
30942 : || !((
30943 : #line 18280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30944 : (TARGET_SSE4_1 && ix86_pre_reload_split ()) &&
30945 : #line 585 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30946 : (TARGET_AVX2)) &&
30947 : #line 18282 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30948 : ( 1)))
30949 : return NULL;
30950 : return gen_split_3358 (insn, operands);
30951 :
30952 : case E_V8HImode:
30953 : if (pattern1153 (x2,
30954 : E_V8HImode) != 0
30955 : || !(
30956 : #line 18280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30957 : (TARGET_SSE4_1 && ix86_pre_reload_split ()) &&
30958 : #line 18282 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30959 : ( 1)))
30960 : return NULL;
30961 : return gen_split_3359 (insn, operands);
30962 :
30963 : case E_V8SImode:
30964 : if (pattern1153 (x2,
30965 : E_V8SImode) != 0
30966 : || !((
30967 : #line 18280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30968 : (TARGET_SSE4_1 && ix86_pre_reload_split ()) &&
30969 : #line 586 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30970 : (TARGET_AVX2)) &&
30971 : #line 18282 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30972 : ( 1)))
30973 : return NULL;
30974 : return gen_split_3360 (insn, operands);
30975 :
30976 : case E_V4SImode:
30977 : if (pattern1153 (x2,
30978 : E_V4SImode) != 0
30979 : || !(
30980 : #line 18280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30981 : (TARGET_SSE4_1 && ix86_pre_reload_split ()) &&
30982 : #line 18282 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30983 : ( 1)))
30984 : return NULL;
30985 : return gen_split_3361 (insn, operands);
30986 :
30987 : case E_V4DImode:
30988 : if (pattern1153 (x2,
30989 : E_V4DImode) != 0
30990 : || !((
30991 : #line 18280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30992 : (TARGET_SSE4_1 && ix86_pre_reload_split ()) &&
30993 : #line 587 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30994 : (TARGET_AVX2)) &&
30995 : #line 18282 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30996 : ( 1)))
30997 : return NULL;
30998 : return gen_split_3362 (insn, operands);
30999 :
31000 : case E_V2DImode:
31001 : if (pattern1153 (x2,
31002 : E_V2DImode) != 0
31003 : || !(
31004 : #line 18280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31005 : (TARGET_SSE4_1 && ix86_pre_reload_split ()) &&
31006 : #line 18282 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31007 : ( 1)))
31008 : return NULL;
31009 : return gen_split_3363 (insn, operands);
31010 :
31011 : default:
31012 : return NULL;
31013 : }
31014 :
31015 : default:
31016 : return NULL;
31017 : }
31018 :
31019 : default:
31020 : return NULL;
31021 : }
31022 :
31023 : case LT:
31024 : switch (pattern203 (x2))
31025 : {
31026 : case 0:
31027 : if (!((
31028 : #line 17452 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31029 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
31030 : #line 736 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31031 : (TARGET_AVX2)) &&
31032 : #line 17454 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31033 : ( 1)))
31034 : return NULL;
31035 : return gen_split_3304 (insn, operands);
31036 :
31037 : case 1:
31038 : if (!(
31039 : #line 17452 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31040 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
31041 : #line 17454 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31042 : ( 1)))
31043 : return NULL;
31044 : return gen_split_3305 (insn, operands);
31045 :
31046 : case 2:
31047 : if (!((
31048 : #line 17452 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31049 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
31050 : #line 737 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31051 : (TARGET_AVX2)) &&
31052 : #line 17454 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31053 : ( 1)))
31054 : return NULL;
31055 : return gen_split_3306 (insn, operands);
31056 :
31057 : case 3:
31058 : if (!(
31059 : #line 17452 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31060 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
31061 : #line 17454 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31062 : ( 1)))
31063 : return NULL;
31064 : return gen_split_3307 (insn, operands);
31065 :
31066 : default:
31067 : return NULL;
31068 : }
31069 :
31070 : case ASHIFT:
31071 : switch (pattern244 (x2))
31072 : {
31073 : case 0:
31074 : if (!(
31075 : #line 17719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31076 : (TARGET_AVX512F && GET_MODE_UNIT_BITSIZE (V32HImode)
31077 : > INTVAL (XVECEXP (operands[2], 0, 0))) &&
31078 : #line 777 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31079 : (TARGET_AVX512BW)))
31080 : return NULL;
31081 : return gen_split_3336 (insn, operands);
31082 :
31083 : case 1:
31084 : if (!
31085 : #line 17719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31086 : (TARGET_AVX512F && GET_MODE_UNIT_BITSIZE (V16SImode)
31087 : > INTVAL (XVECEXP (operands[2], 0, 0))))
31088 : return NULL;
31089 : return gen_split_3339 (insn, operands);
31090 :
31091 : case 2:
31092 : if (!
31093 : #line 17719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31094 : (TARGET_AVX512F && GET_MODE_UNIT_BITSIZE (V8DImode)
31095 : > INTVAL (XVECEXP (operands[2], 0, 0))))
31096 : return NULL;
31097 : return gen_split_3342 (insn, operands);
31098 :
31099 : case 3:
31100 : if (!(
31101 : #line 17778 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31102 : (TARGET_SSE2 && TARGET_64BIT
31103 : && ix86_pre_reload_split ()) &&
31104 : #line 17781 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31105 : ( 1)))
31106 : return NULL;
31107 : return gen_split_3345 (insn, operands);
31108 :
31109 : default:
31110 : return NULL;
31111 : }
31112 :
31113 : case LSHIFTRT:
31114 : switch (pattern244 (x2))
31115 : {
31116 : case 0:
31117 : if (!(
31118 : #line 17719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31119 : (TARGET_AVX512F && GET_MODE_UNIT_BITSIZE (V32HImode)
31120 : > INTVAL (XVECEXP (operands[2], 0, 0))) &&
31121 : #line 777 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31122 : (TARGET_AVX512BW)))
31123 : return NULL;
31124 : return gen_split_3337 (insn, operands);
31125 :
31126 : case 1:
31127 : if (!
31128 : #line 17719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31129 : (TARGET_AVX512F && GET_MODE_UNIT_BITSIZE (V16SImode)
31130 : > INTVAL (XVECEXP (operands[2], 0, 0))))
31131 : return NULL;
31132 : return gen_split_3340 (insn, operands);
31133 :
31134 : case 2:
31135 : if (!
31136 : #line 17719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31137 : (TARGET_AVX512F && GET_MODE_UNIT_BITSIZE (V8DImode)
31138 : > INTVAL (XVECEXP (operands[2], 0, 0))))
31139 : return NULL;
31140 : return gen_split_3343 (insn, operands);
31141 :
31142 : case 3:
31143 : if (!(
31144 : #line 17807 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31145 : (TARGET_SSE2 && TARGET_64BIT
31146 : && ix86_pre_reload_split ()) &&
31147 : #line 17810 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31148 : ( 1)))
31149 : return NULL;
31150 : return gen_split_3346 (insn, operands);
31151 :
31152 : default:
31153 : return NULL;
31154 : }
31155 :
31156 : case ASHIFTRT:
31157 : x3 = XEXP (x2, 0);
31158 : operands[1] = x3;
31159 : x6 = XEXP (x2, 1);
31160 : operands[2] = x6;
31161 : switch (GET_CODE (operands[2]))
31162 : {
31163 : case CONST_VECTOR:
31164 : switch (GET_MODE (operands[0]))
31165 : {
31166 : case E_V32HImode:
31167 : if (pattern243 (x2,
31168 : E_V32HImode) == 0
31169 : && (
31170 : #line 17719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31171 : (TARGET_AVX512F && GET_MODE_UNIT_BITSIZE (V32HImode)
31172 : > INTVAL (XVECEXP (operands[2], 0, 0))) &&
31173 : #line 777 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31174 : (TARGET_AVX512BW)))
31175 : return gen_split_3338 (insn, operands);
31176 : break;
31177 :
31178 : case E_V16SImode:
31179 : if (pattern243 (x2,
31180 : E_V16SImode) == 0
31181 : &&
31182 : #line 17719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31183 : (TARGET_AVX512F && GET_MODE_UNIT_BITSIZE (V16SImode)
31184 : > INTVAL (XVECEXP (operands[2], 0, 0))))
31185 : return gen_split_3341 (insn, operands);
31186 : break;
31187 :
31188 : case E_V8DImode:
31189 : if (pattern243 (x2,
31190 : E_V8DImode) == 0
31191 : &&
31192 : #line 17719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31193 : (TARGET_AVX512F && GET_MODE_UNIT_BITSIZE (V8DImode)
31194 : > INTVAL (XVECEXP (operands[2], 0, 0))))
31195 : return gen_split_3344 (insn, operands);
31196 : break;
31197 :
31198 : default:
31199 : break;
31200 : }
31201 : break;
31202 :
31203 : case CONST_INT:
31204 : if (const_0_to_255_operand (operands[2], E_SImode)
31205 : && register_operand (operands[0], E_V1TImode)
31206 : && GET_MODE (x2) == E_V1TImode
31207 : && register_operand (operands[1], E_V1TImode)
31208 : && (
31209 : #line 17837 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31210 : (TARGET_SSE2 && TARGET_64BIT
31211 : && ix86_pre_reload_split ()) &&
31212 : #line 17840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31213 : ( 1)))
31214 : return gen_split_3347 (insn, operands);
31215 : break;
31216 :
31217 : default:
31218 : break;
31219 : }
31220 : if (!nonmemory_operand (operands[2], E_DImode)
31221 : || !register_operand (operands[0], E_V2DImode)
31222 : || GET_MODE (x2) != E_V2DImode
31223 : || !register_operand (operands[1], E_V2DImode)
31224 : || !(
31225 : #line 27669 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31226 : (TARGET_SSE2 && !TARGET_AVX512VL && ix86_pre_reload_split ()) &&
31227 : #line 27671 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31228 : ( 1)))
31229 : return NULL;
31230 : return gen_split_3825 (insn, operands);
31231 :
31232 : case ROTATE:
31233 : if (pattern245 (x2) != 0
31234 : || !(
31235 : #line 17878 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31236 : (TARGET_SSE2 && TARGET_64BIT
31237 : && ix86_pre_reload_split ()) &&
31238 : #line 17881 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31239 : ( 1)))
31240 : return NULL;
31241 : return gen_split_3354 (insn, operands);
31242 :
31243 : case ROTATERT:
31244 : if (pattern245 (x2) != 0
31245 : || !(
31246 : #line 17907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31247 : (TARGET_SSE2 && TARGET_64BIT
31248 : && ix86_pre_reload_split ()) &&
31249 : #line 17910 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31250 : ( 1)))
31251 : return NULL;
31252 : return gen_split_3355 (insn, operands);
31253 :
31254 : case VEC_DUPLICATE:
31255 : return split_86 (x1, insn);
31256 :
31257 : case SIGN_EXTEND:
31258 : x3 = XEXP (x2, 0);
31259 : if (pattern246 (x3) != 0)
31260 : return NULL;
31261 : switch (pattern691 (x2))
31262 : {
31263 : case 0:
31264 : if (!(
31265 : #line 24614 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31266 : (TARGET_SSE4_1
31267 : && ix86_pre_reload_split ()) &&
31268 : #line 24617 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31269 : ( 1)))
31270 : return NULL;
31271 : return gen_split_3608 (insn, operands);
31272 :
31273 : case 1:
31274 : if (!(
31275 : #line 24792 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31276 : (TARGET_AVX2
31277 : && ix86_pre_reload_split ()) &&
31278 : #line 24795 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31279 : ( 1)))
31280 : return NULL;
31281 : return gen_split_3616 (insn, operands);
31282 :
31283 : case 2:
31284 : if (!(
31285 : #line 25237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31286 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
31287 : #line 25239 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31288 : ( 1)))
31289 : return NULL;
31290 : return gen_split_3642 (insn, operands);
31291 :
31292 : case 3:
31293 : if (!(
31294 : #line 25082 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31295 : (TARGET_SSE4_1
31296 : && ix86_pre_reload_split ()) &&
31297 : #line 25085 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31298 : ( 1)))
31299 : return NULL;
31300 : return gen_split_3634 (insn, operands);
31301 :
31302 : case 4:
31303 : if (!(
31304 : #line 25492 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31305 : (TARGET_AVX2
31306 : && ix86_pre_reload_split ()) &&
31307 : #line 25495 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31308 : ( 1)))
31309 : return NULL;
31310 : return gen_split_3653 (insn, operands);
31311 :
31312 : case 5:
31313 : if (!(
31314 : #line 25770 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31315 : (TARGET_SSE4_1
31316 : && ix86_pre_reload_split ()) &&
31317 : #line 25773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31318 : ( 1)))
31319 : return NULL;
31320 : return gen_split_3665 (insn, operands);
31321 :
31322 : case 6:
31323 : if ((
31324 : #line 24884 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31325 : (TARGET_SSE4_1 && 1
31326 : && ix86_pre_reload_split ()) &&
31327 : #line 24887 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31328 : ( 1)))
31329 : return gen_split_3620 (insn, operands);
31330 : if (!(
31331 : #line 24884 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31332 : (TARGET_SSE4_1 && TARGET_AVX512VL
31333 : && ix86_pre_reload_split ()) &&
31334 : #line 24887 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31335 : ( 1)))
31336 : return NULL;
31337 : return gen_split_3621 (insn, operands);
31338 :
31339 : case 7:
31340 : if (!(
31341 : #line 25324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31342 : (TARGET_AVX2
31343 : && ix86_pre_reload_split ()) &&
31344 : #line 25327 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31345 : ( 1)))
31346 : return NULL;
31347 : return gen_split_3646 (insn, operands);
31348 :
31349 : case 8:
31350 : if (!(
31351 : #line 25580 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31352 : (TARGET_SSE4_1
31353 : && ix86_pre_reload_split ()) &&
31354 : #line 25583 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31355 : ( 1)))
31356 : return NULL;
31357 : return gen_split_3657 (insn, operands);
31358 :
31359 : default:
31360 : return NULL;
31361 : }
31362 :
31363 : case ZERO_EXTEND:
31364 : x3 = XEXP (x2, 0);
31365 : if (pattern246 (x3) != 0)
31366 : return NULL;
31367 : x7 = XEXP (x3, 0);
31368 : x11 = XEXP (x7, 0);
31369 : switch (GET_CODE (x11))
31370 : {
31371 : case VEC_CONCAT:
31372 : switch (pattern689 (x2))
31373 : {
31374 : case 0:
31375 : if (!(
31376 : #line 24614 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31377 : (TARGET_SSE4_1
31378 : && ix86_pre_reload_split ()) &&
31379 : #line 24617 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31380 : ( 1)))
31381 : return NULL;
31382 : return gen_split_3609 (insn, operands);
31383 :
31384 : case 1:
31385 : if (!(
31386 : #line 24792 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31387 : (TARGET_AVX2
31388 : && ix86_pre_reload_split ()) &&
31389 : #line 24795 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31390 : ( 1)))
31391 : return NULL;
31392 : return gen_split_3617 (insn, operands);
31393 :
31394 : case 2:
31395 : if (!(
31396 : #line 25237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31397 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
31398 : #line 25239 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31399 : ( 1)))
31400 : return NULL;
31401 : return gen_split_3643 (insn, operands);
31402 :
31403 : case 3:
31404 : if (!(
31405 : #line 25082 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31406 : (TARGET_SSE4_1
31407 : && ix86_pre_reload_split ()) &&
31408 : #line 25085 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31409 : ( 1)))
31410 : return NULL;
31411 : return gen_split_3635 (insn, operands);
31412 :
31413 : case 4:
31414 : if (!(
31415 : #line 25492 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31416 : (TARGET_AVX2
31417 : && ix86_pre_reload_split ()) &&
31418 : #line 25495 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31419 : ( 1)))
31420 : return NULL;
31421 : return gen_split_3654 (insn, operands);
31422 :
31423 : case 5:
31424 : if (!(
31425 : #line 25770 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31426 : (TARGET_SSE4_1
31427 : && ix86_pre_reload_split ()) &&
31428 : #line 25773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31429 : ( 1)))
31430 : return NULL;
31431 : return gen_split_3666 (insn, operands);
31432 :
31433 : default:
31434 : return NULL;
31435 : }
31436 :
31437 : case VEC_MERGE:
31438 : x13 = XEXP (x11, 0);
31439 : if (GET_CODE (x13) != VEC_DUPLICATE)
31440 : return NULL;
31441 : if (GET_MODE (x13) == E_V4SImode)
31442 : {
31443 : switch (pattern1042 (x2))
31444 : {
31445 : case 0:
31446 : if ((
31447 : #line 24884 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31448 : (TARGET_SSE4_1 && 1
31449 : && ix86_pre_reload_split ()) &&
31450 : #line 24887 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31451 : ( 1)))
31452 : return gen_split_3622 (insn, operands);
31453 : if ((
31454 : #line 24884 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31455 : (TARGET_SSE4_1 && TARGET_AVX512VL
31456 : && ix86_pre_reload_split ()) &&
31457 : #line 24887 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31458 : ( 1)))
31459 : return gen_split_3623 (insn, operands);
31460 : break;
31461 :
31462 : case 1:
31463 : if ((
31464 : #line 25324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31465 : (TARGET_AVX2
31466 : && ix86_pre_reload_split ()) &&
31467 : #line 25327 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31468 : ( 1)))
31469 : return gen_split_3647 (insn, operands);
31470 : break;
31471 :
31472 : case 2:
31473 : if ((
31474 : #line 25580 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31475 : (TARGET_SSE4_1
31476 : && ix86_pre_reload_split ()) &&
31477 : #line 25583 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31478 : ( 1)))
31479 : return gen_split_3658 (insn, operands);
31480 : break;
31481 :
31482 : default:
31483 : break;
31484 : }
31485 : }
31486 : x14 = XEXP (x11, 2);
31487 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
31488 : return NULL;
31489 : switch (pattern1043 (x2))
31490 : {
31491 : case 0:
31492 : if (!(
31493 : #line 25429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31494 : (TARGET_SSE4_1 && ix86_pre_reload_split ()) &&
31495 : #line 25431 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31496 : ( 1)))
31497 : return NULL;
31498 : return gen_split_3650 (insn, operands);
31499 :
31500 : case 1:
31501 : if (!(
31502 : #line 25429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31503 : (TARGET_SSE4_1 && ix86_pre_reload_split ()) &&
31504 : #line 25431 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31505 : ( 1)))
31506 : return NULL;
31507 : return gen_split_3651 (insn, operands);
31508 :
31509 : case 2:
31510 : if (!(
31511 : #line 25429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31512 : (TARGET_SSE4_1 && ix86_pre_reload_split ()) &&
31513 : #line 25431 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31514 : ( 1)))
31515 : return NULL;
31516 : return gen_split_3652 (insn, operands);
31517 :
31518 : default:
31519 : return NULL;
31520 : }
31521 :
31522 : default:
31523 : return NULL;
31524 : }
31525 :
31526 : default:
31527 : return NULL;
31528 : }
31529 : }
31530 :
31531 : rtx_insn *
31532 : peephole2_9 (rtx x1 ATTRIBUTE_UNUSED,
31533 : rtx_insn *insn ATTRIBUTE_UNUSED,
31534 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31535 : {
31536 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31537 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
31538 : rtx x10, x11, x12;
31539 : rtx_insn *res ATTRIBUTE_UNUSED;
31540 : if (peep2_current_count < 2)
31541 : return NULL;
31542 : x2 = XEXP (x1, 1);
31543 : if (GET_MODE (x2) != E_DFmode)
31544 : return NULL;
31545 : x3 = XEXP (x2, 1);
31546 : if (GET_CODE (x3) != PARALLEL
31547 : || XVECLEN (x3, 0) != 1)
31548 : return NULL;
31549 : x4 = XVECEXP (x3, 0, 0);
31550 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
31551 : return NULL;
31552 : x5 = XEXP (x1, 0);
31553 : operands[0] = x5;
31554 : if (!memory_operand (operands[0], E_DFmode))
31555 : return NULL;
31556 : x6 = XEXP (x2, 0);
31557 : operands[1] = x6;
31558 : if (!sse_reg_operand (operands[1], E_V2DFmode))
31559 : return NULL;
31560 : x7 = PATTERN (peep2_next_insn (1));
31561 : if (GET_CODE (x7) != SET)
31562 : return NULL;
31563 : x8 = XEXP (x7, 1);
31564 : if (GET_CODE (x8) != VEC_SELECT
31565 : || GET_MODE (x8) != E_DFmode)
31566 : return NULL;
31567 : x9 = XEXP (x8, 1);
31568 : if (GET_CODE (x9) != PARALLEL
31569 : || XVECLEN (x9, 0) != 1)
31570 : return NULL;
31571 : x10 = XVECEXP (x9, 0, 0);
31572 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
31573 : return NULL;
31574 : x11 = XEXP (x7, 0);
31575 : operands[2] = x11;
31576 : if (!memory_operand (operands[2], E_DFmode))
31577 : return NULL;
31578 : x12 = XEXP (x8, 0);
31579 : operands[3] = x12;
31580 : if (!sse_reg_operand (operands[3], E_V2DFmode)
31581 : || !
31582 : #line 2002 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31583 : (TARGET_SSE2 && TARGET_SSE_UNALIGNED_STORE_OPTIMAL
31584 : && ix86_operands_ok_for_move_multiple (operands, false, DFmode)))
31585 : return NULL;
31586 : *pmatch_len_ = 1;
31587 : return gen_peephole2_434 (insn, operands);
31588 : }
31589 :
31590 : rtx_insn *
31591 : peephole2_10 (rtx x1 ATTRIBUTE_UNUSED,
31592 : rtx_insn *insn ATTRIBUTE_UNUSED,
31593 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31594 : {
31595 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31596 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
31597 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
31598 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
31599 : rtx x26, x27, x28, x29;
31600 : rtx_insn *res ATTRIBUTE_UNUSED;
31601 : if (address_no_seg_operand (operands[1], E_SImode)
31602 : &&
31603 : #line 6401 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31604 : (ix86_hardreg_mov_ok (operands[0], operands[1])
31605 : && peep2_regno_dead_p (0, FLAGS_REG)
31606 : && ix86_avoid_lea_for_addr (peep2_next_insn (0), operands)))
31607 : {
31608 : *pmatch_len_ = 0;
31609 : res = gen_peephole2_60 (insn, operands);
31610 : if (res != NULL_RTX)
31611 : return res;
31612 : }
31613 : if (peep2_current_count < 2
31614 : || !memory_operand (operands[1], E_SImode))
31615 : return NULL;
31616 : x2 = PATTERN (peep2_next_insn (1));
31617 : switch (GET_CODE (x2))
31618 : {
31619 : case CALL:
31620 : x3 = XEXP (x2, 0);
31621 : if (GET_CODE (x3) != MEM
31622 : || GET_MODE (x3) != E_QImode)
31623 : return NULL;
31624 : x4 = XEXP (x2, 1);
31625 : operands[3] = x4;
31626 : x5 = XEXP (x3, 0);
31627 : if (!rtx_equal_p (x5, operands[0])
31628 : || !(
31629 : #line 20552 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31630 : (!TARGET_X32 && !TARGET_INDIRECT_BRANCH_REGISTER
31631 : && SIBLING_CALL_P (peep2_next_insn (1))
31632 : && !reg_mentioned_p (operands[0],
31633 : CALL_INSN_FUNCTION_USAGE (peep2_next_insn (1)))) &&
31634 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31635 : (word_mode == SImode)))
31636 : return NULL;
31637 : *pmatch_len_ = 1;
31638 : return gen_peephole2_196 (insn, operands);
31639 :
31640 : case UNSPEC_VOLATILE:
31641 : if (pattern850 (x2) != 0)
31642 : return NULL;
31643 : x6 = PATTERN (peep2_next_insn (2));
31644 : switch (GET_CODE (x6))
31645 : {
31646 : case CALL:
31647 : x7 = XEXP (x6, 0);
31648 : if (GET_CODE (x7) != MEM
31649 : || GET_MODE (x7) != E_QImode)
31650 : return NULL;
31651 : x8 = XEXP (x6, 1);
31652 : operands[3] = x8;
31653 : x9 = XEXP (x7, 0);
31654 : if (!rtx_equal_p (x9, operands[0])
31655 : || !(
31656 : #line 20566 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31657 : (!TARGET_X32 && !TARGET_INDIRECT_BRANCH_REGISTER
31658 : && SIBLING_CALL_P (peep2_next_insn (2))
31659 : && !reg_mentioned_p (operands[0],
31660 : CALL_INSN_FUNCTION_USAGE (peep2_next_insn (2)))) &&
31661 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31662 : (word_mode == SImode)))
31663 : return NULL;
31664 : *pmatch_len_ = 2;
31665 : return gen_peephole2_198 (insn, operands);
31666 :
31667 : case PARALLEL:
31668 : if (XVECLEN (x6, 0) != 2)
31669 : return NULL;
31670 : x10 = XVECEXP (x6, 0, 1);
31671 : if (GET_CODE (x10) != SET)
31672 : return NULL;
31673 : x11 = XEXP (x10, 1);
31674 : if (GET_CODE (x11) != PLUS
31675 : || GET_MODE (x11) != E_SImode)
31676 : return NULL;
31677 : x12 = XEXP (x11, 0);
31678 : if (GET_CODE (x12) != REG
31679 : || REGNO (x12) != 7
31680 : || GET_MODE (x12) != E_SImode)
31681 : return NULL;
31682 : x13 = XEXP (x10, 0);
31683 : if (GET_CODE (x13) != REG
31684 : || REGNO (x13) != 7
31685 : || GET_MODE (x13) != E_SImode)
31686 : return NULL;
31687 : x14 = XEXP (x11, 1);
31688 : operands[4] = x14;
31689 : if (!immediate_operand (operands[4], E_SImode))
31690 : return NULL;
31691 : x15 = XVECEXP (x6, 0, 0);
31692 : switch (GET_CODE (x15))
31693 : {
31694 : case CALL:
31695 : x16 = XEXP (x15, 0);
31696 : if (GET_CODE (x16) != MEM
31697 : || GET_MODE (x16) != E_QImode)
31698 : return NULL;
31699 : x17 = XEXP (x15, 1);
31700 : operands[3] = x17;
31701 : x18 = XEXP (x16, 0);
31702 : if (!rtx_equal_p (x18, operands[0])
31703 : || !
31704 : #line 20646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31705 : (!TARGET_64BIT && SIBLING_CALL_P (peep2_next_insn (2))
31706 : && !reg_mentioned_p (operands[0],
31707 : CALL_INSN_FUNCTION_USAGE (peep2_next_insn (2)))))
31708 : return NULL;
31709 : *pmatch_len_ = 2;
31710 : return gen_peephole2_201 (insn, operands);
31711 :
31712 : case SET:
31713 : x17 = XEXP (x15, 1);
31714 : if (GET_CODE (x17) != CALL)
31715 : return NULL;
31716 : x19 = XEXP (x17, 0);
31717 : if (GET_CODE (x19) != MEM
31718 : || GET_MODE (x19) != E_QImode)
31719 : return NULL;
31720 : x16 = XEXP (x15, 0);
31721 : operands[2] = x16;
31722 : x20 = XEXP (x17, 1);
31723 : operands[3] = x20;
31724 : x21 = XEXP (x19, 0);
31725 : if (!rtx_equal_p (x21, operands[0])
31726 : || !
31727 : #line 20861 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31728 : (!TARGET_64BIT && SIBLING_CALL_P (peep2_next_insn (2))
31729 : && !reg_mentioned_p (operands[0],
31730 : CALL_INSN_FUNCTION_USAGE (peep2_next_insn (2)))))
31731 : return NULL;
31732 : *pmatch_len_ = 2;
31733 : return gen_peephole2_209 (insn, operands);
31734 :
31735 : default:
31736 : return NULL;
31737 : }
31738 :
31739 : case SET:
31740 : if (pattern1352 (x6) != 0
31741 : || !(
31742 : #line 20773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31743 : (!TARGET_X32 && !TARGET_INDIRECT_BRANCH_REGISTER
31744 : && SIBLING_CALL_P (peep2_next_insn (2))
31745 : && !reg_mentioned_p (operands[0],
31746 : CALL_INSN_FUNCTION_USAGE (peep2_next_insn (2)))) &&
31747 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31748 : (word_mode == SImode)))
31749 : return NULL;
31750 : *pmatch_len_ = 2;
31751 : return gen_peephole2_206 (insn, operands);
31752 :
31753 : default:
31754 : return NULL;
31755 : }
31756 :
31757 : case PARALLEL:
31758 : if (XVECLEN (x2, 0) != 2)
31759 : return NULL;
31760 : x22 = XVECEXP (x2, 0, 0);
31761 : if (GET_CODE (x22) != CALL)
31762 : return NULL;
31763 : x23 = XEXP (x22, 0);
31764 : if (GET_CODE (x23) != MEM
31765 : || GET_MODE (x23) != E_QImode)
31766 : return NULL;
31767 : x24 = XVECEXP (x2, 0, 1);
31768 : if (pattern1266 (x24) != 0)
31769 : return NULL;
31770 : x25 = XEXP (x24, 0);
31771 : if (GET_CODE (x25) != REG
31772 : || REGNO (x25) != 7
31773 : || GET_MODE (x25) != E_SImode)
31774 : return NULL;
31775 : x26 = XEXP (x22, 1);
31776 : operands[3] = x26;
31777 : x27 = XEXP (x24, 1);
31778 : x28 = XEXP (x27, 1);
31779 : operands[4] = x28;
31780 : if (!immediate_operand (operands[4], E_SImode))
31781 : return NULL;
31782 : x29 = XEXP (x23, 0);
31783 : if (!rtx_equal_p (x29, operands[0])
31784 : || !
31785 : #line 20627 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31786 : (!TARGET_64BIT && SIBLING_CALL_P (peep2_next_insn (1))
31787 : && !reg_mentioned_p (operands[0],
31788 : CALL_INSN_FUNCTION_USAGE (peep2_next_insn (1)))))
31789 : return NULL;
31790 : *pmatch_len_ = 1;
31791 : return gen_peephole2_200 (insn, operands);
31792 :
31793 : case SET:
31794 : switch (pattern851 (x2))
31795 : {
31796 : case 0:
31797 : if (!(
31798 : #line 20663 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31799 : (!TARGET_X32 && !TARGET_INDIRECT_BRANCH_REGISTER
31800 : && peep2_reg_dead_p (2, operands[0])) &&
31801 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31802 : (word_mode == SImode)))
31803 : return NULL;
31804 : *pmatch_len_ = 1;
31805 : return gen_peephole2_202 (insn, operands);
31806 :
31807 : case 1:
31808 : if (!(
31809 : #line 20757 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31810 : (!TARGET_X32 && !TARGET_INDIRECT_BRANCH_REGISTER
31811 : && SIBLING_CALL_P (peep2_next_insn (1))
31812 : && !reg_mentioned_p (operands[0],
31813 : CALL_INSN_FUNCTION_USAGE (peep2_next_insn (1)))) &&
31814 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31815 : (word_mode == SImode)))
31816 : return NULL;
31817 : *pmatch_len_ = 1;
31818 : return gen_peephole2_204 (insn, operands);
31819 :
31820 : default:
31821 : return NULL;
31822 : }
31823 :
31824 : default:
31825 : return NULL;
31826 : }
31827 : }
31828 :
31829 : rtx_insn *
31830 : peephole2_13 (rtx x1 ATTRIBUTE_UNUSED,
31831 : rtx_insn *insn ATTRIBUTE_UNUSED,
31832 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31833 : {
31834 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31835 : rtx x2, x3;
31836 : rtx_insn *res ATTRIBUTE_UNUSED;
31837 : x2 = PATTERN (peep2_next_insn (1));
31838 : if (GET_CODE (x2) != SET)
31839 : return NULL;
31840 : x3 = XEXP (x2, 0);
31841 : if (!general_reg_operand (x3, E_SImode))
31842 : return NULL;
31843 : operands[8] = x3;
31844 : switch (pattern962 (x1,
31845 : E_SImode,
31846 : E_DImode))
31847 : {
31848 : case 0:
31849 : if (
31850 : #line 10003 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31851 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31852 : && peep2_reg_dead_p (4, operands[0])
31853 : && peep2_reg_dead_p (3, operands[2])
31854 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31855 : && !reg_overlap_mentioned_p (operands[2], operands[1])
31856 : && !reg_overlap_mentioned_p (operands[6], operands[9])
31857 : && (rtx_equal_p (operands[6], operands[0])
31858 : ? (rtx_equal_p (operands[7], operands[1])
31859 : && rtx_equal_p (operands[8], operands[2]))
31860 : : (rtx_equal_p (operands[8], operands[0])
31861 : && rtx_equal_p (operands[9], operands[1])
31862 : && rtx_equal_p (operands[6], operands[2])))))
31863 : {
31864 : *pmatch_len_ = 3;
31865 : res = gen_peephole2_116 (insn, operands);
31866 : if (res != NULL_RTX)
31867 : return res;
31868 : }
31869 : break;
31870 :
31871 : case 1:
31872 : if (
31873 : #line 10058 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31874 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31875 : && peep2_reg_dead_p (6, operands[0])
31876 : && peep2_reg_dead_p (3, operands[2])
31877 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31878 : && !reg_overlap_mentioned_p (operands[2], operands[1])
31879 : && !reg_overlap_mentioned_p (operands[6], operands[9])
31880 : && !reg_overlap_mentioned_p (operands[0], operands[10])
31881 : && !reg_overlap_mentioned_p (operands[10], operands[1])
31882 : && !reg_overlap_mentioned_p (operands[0], operands[11])
31883 : && !reg_overlap_mentioned_p (operands[11], operands[1])
31884 : && (rtx_equal_p (operands[6], operands[0])
31885 : ? (rtx_equal_p (operands[7], operands[1])
31886 : && rtx_equal_p (operands[8], operands[2]))
31887 : : (rtx_equal_p (operands[8], operands[0])
31888 : && rtx_equal_p (operands[9], operands[1])
31889 : && rtx_equal_p (operands[6], operands[2])))))
31890 : {
31891 : *pmatch_len_ = 5;
31892 : res = gen_peephole2_118 (insn, operands);
31893 : if (res != NULL_RTX)
31894 : return res;
31895 : }
31896 : break;
31897 :
31898 : default:
31899 : break;
31900 : }
31901 : operands[0] = x3;
31902 : if (pattern965 (x1,
31903 : E_SImode) != 0
31904 : || !
31905 : #line 26984 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31906 : (TARGET_CMOVE
31907 : && REGNO (operands[2]) != REGNO (operands[0])
31908 : && REGNO (operands[2]) != REGNO (operands[1])
31909 : && peep2_reg_dead_p (2, operands[1])
31910 : && peep2_reg_dead_p (4, operands[2])
31911 : && !reg_overlap_mentioned_p (operands[0], operands[3])
31912 : && !reg_mentioned_p (operands[2], operands[6])))
31913 : return NULL;
31914 : *pmatch_len_ = 3;
31915 : return gen_peephole2_227 (insn, operands);
31916 : }
31917 :
31918 : rtx_insn *
31919 : peephole2_15 (rtx x1 ATTRIBUTE_UNUSED,
31920 : rtx_insn *insn ATTRIBUTE_UNUSED,
31921 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31922 : {
31923 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31924 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
31925 : rtx_insn *res ATTRIBUTE_UNUSED;
31926 : if (address_no_seg_operand (operands[1], E_DImode)
31927 : && (
31928 : #line 6401 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31929 : (ix86_hardreg_mov_ok (operands[0], operands[1])
31930 : && peep2_regno_dead_p (0, FLAGS_REG)
31931 : && ix86_avoid_lea_for_addr (peep2_next_insn (0), operands)) &&
31932 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31933 : (TARGET_64BIT)))
31934 : {
31935 : *pmatch_len_ = 0;
31936 : res = gen_peephole2_61 (insn, operands);
31937 : if (res != NULL_RTX)
31938 : return res;
31939 : }
31940 : if (peep2_current_count < 2
31941 : || !memory_operand (operands[1], E_DImode))
31942 : return NULL;
31943 : x2 = PATTERN (peep2_next_insn (1));
31944 : switch (GET_CODE (x2))
31945 : {
31946 : case CALL:
31947 : x3 = XEXP (x2, 0);
31948 : if (GET_CODE (x3) != MEM
31949 : || GET_MODE (x3) != E_QImode)
31950 : return NULL;
31951 : x4 = XEXP (x2, 1);
31952 : operands[3] = x4;
31953 : x5 = XEXP (x3, 0);
31954 : if (!rtx_equal_p (x5, operands[0])
31955 : || !(
31956 : #line 20552 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31957 : (!TARGET_X32 && !TARGET_INDIRECT_BRANCH_REGISTER
31958 : && SIBLING_CALL_P (peep2_next_insn (1))
31959 : && !reg_mentioned_p (operands[0],
31960 : CALL_INSN_FUNCTION_USAGE (peep2_next_insn (1)))) &&
31961 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31962 : (word_mode == DImode)))
31963 : return NULL;
31964 : *pmatch_len_ = 1;
31965 : return gen_peephole2_197 (insn, operands);
31966 :
31967 : case UNSPEC_VOLATILE:
31968 : if (pattern850 (x2) != 0)
31969 : return NULL;
31970 : x6 = PATTERN (peep2_next_insn (2));
31971 : switch (GET_CODE (x6))
31972 : {
31973 : case CALL:
31974 : x7 = XEXP (x6, 0);
31975 : if (GET_CODE (x7) != MEM
31976 : || GET_MODE (x7) != E_QImode)
31977 : return NULL;
31978 : x8 = XEXP (x6, 1);
31979 : operands[3] = x8;
31980 : x9 = XEXP (x7, 0);
31981 : if (!rtx_equal_p (x9, operands[0])
31982 : || !(
31983 : #line 20566 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31984 : (!TARGET_X32 && !TARGET_INDIRECT_BRANCH_REGISTER
31985 : && SIBLING_CALL_P (peep2_next_insn (2))
31986 : && !reg_mentioned_p (operands[0],
31987 : CALL_INSN_FUNCTION_USAGE (peep2_next_insn (2)))) &&
31988 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31989 : (word_mode == DImode)))
31990 : return NULL;
31991 : *pmatch_len_ = 2;
31992 : return gen_peephole2_199 (insn, operands);
31993 :
31994 : case SET:
31995 : if (pattern1352 (x6) != 0
31996 : || !(
31997 : #line 20773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31998 : (!TARGET_X32 && !TARGET_INDIRECT_BRANCH_REGISTER
31999 : && SIBLING_CALL_P (peep2_next_insn (2))
32000 : && !reg_mentioned_p (operands[0],
32001 : CALL_INSN_FUNCTION_USAGE (peep2_next_insn (2)))) &&
32002 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32003 : (word_mode == DImode)))
32004 : return NULL;
32005 : *pmatch_len_ = 2;
32006 : return gen_peephole2_207 (insn, operands);
32007 :
32008 : default:
32009 : return NULL;
32010 : }
32011 :
32012 : case SET:
32013 : switch (pattern851 (x2))
32014 : {
32015 : case 0:
32016 : if (!(
32017 : #line 20663 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32018 : (!TARGET_X32 && !TARGET_INDIRECT_BRANCH_REGISTER
32019 : && peep2_reg_dead_p (2, operands[0])) &&
32020 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32021 : (word_mode == DImode)))
32022 : return NULL;
32023 : *pmatch_len_ = 1;
32024 : return gen_peephole2_203 (insn, operands);
32025 :
32026 : case 1:
32027 : if (!(
32028 : #line 20757 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32029 : (!TARGET_X32 && !TARGET_INDIRECT_BRANCH_REGISTER
32030 : && SIBLING_CALL_P (peep2_next_insn (1))
32031 : && !reg_mentioned_p (operands[0],
32032 : CALL_INSN_FUNCTION_USAGE (peep2_next_insn (1)))) &&
32033 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32034 : (word_mode == DImode)))
32035 : return NULL;
32036 : *pmatch_len_ = 1;
32037 : return gen_peephole2_205 (insn, operands);
32038 :
32039 : default:
32040 : return NULL;
32041 : }
32042 :
32043 : default:
32044 : return NULL;
32045 : }
32046 : }
32047 :
32048 : rtx_insn *
32049 : peephole2_20 (rtx x1 ATTRIBUTE_UNUSED,
32050 : rtx_insn *insn ATTRIBUTE_UNUSED,
32051 : int *pmatch_len_ ATTRIBUTE_UNUSED)
32052 : {
32053 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
32054 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
32055 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
32056 : rtx x18, x19, x20, x21, x22, x23;
32057 : rtx_insn *res ATTRIBUTE_UNUSED;
32058 : x2 = XEXP (x1, 0);
32059 : if (!flags_reg_operand (x2, E_VOIDmode))
32060 : return NULL;
32061 : x3 = XEXP (x1, 1);
32062 : operands[0] = x3;
32063 : operands[4] = x2;
32064 : res = peephole2_19 (x1, insn, pmatch_len_);
32065 : if (res != NULL_RTX)
32066 : return res;
32067 : if (peep2_current_count < 4)
32068 : return NULL;
32069 : operands[6] = x2;
32070 : x4 = PATTERN (peep2_next_insn (1));
32071 : if (GET_CODE (x4) != PARALLEL
32072 : || XVECLEN (x4, 0) != 2)
32073 : return NULL;
32074 : x5 = XVECEXP (x4, 0, 0);
32075 : if (GET_CODE (x5) != SET)
32076 : return NULL;
32077 : x6 = XEXP (x5, 0);
32078 : operands[7] = x6;
32079 : if (!flags_reg_operand (operands[7], E_VOIDmode))
32080 : return NULL;
32081 : x7 = XEXP (x5, 1);
32082 : operands[1] = x7;
32083 : x8 = XVECEXP (x4, 0, 1);
32084 : operands[5] = x8;
32085 : x9 = PATTERN (peep2_next_insn (2));
32086 : if (GET_CODE (x9) != SET)
32087 : return NULL;
32088 : x10 = XEXP (x9, 1);
32089 : if (!ix86_comparison_operator (x10, E_QImode))
32090 : return NULL;
32091 : operands[3] = x10;
32092 : x11 = XEXP (x10, 0);
32093 : if (GET_CODE (x11) != REG
32094 : || REGNO (x11) != 17)
32095 : return NULL;
32096 : x12 = XEXP (x10, 1);
32097 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
32098 : return NULL;
32099 : x13 = XEXP (x9, 0);
32100 : operands[2] = x13;
32101 : if (!register_operand (operands[2], E_QImode))
32102 : return NULL;
32103 : x14 = PATTERN (peep2_next_insn (3));
32104 : switch (GET_CODE (x14))
32105 : {
32106 : case SET:
32107 : x15 = XEXP (x14, 1);
32108 : if (GET_CODE (x15) != ZERO_EXTEND)
32109 : return NULL;
32110 : x16 = XEXP (x14, 0);
32111 : operands[4] = x16;
32112 : if (!any_QIreg_operand (operands[4], E_VOIDmode))
32113 : return NULL;
32114 : x17 = XEXP (x15, 0);
32115 : if (!rtx_equal_p (x17, operands[2])
32116 : || !
32117 : #line 20341 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32118 : ((peep2_reg_dead_p (4, operands[2])
32119 : || operands_match_p (operands[2], operands[4]))
32120 : && ! reg_overlap_mentioned_p (operands[4], operands[0])
32121 : && ! reg_overlap_mentioned_p (operands[4], operands[1])
32122 : && ! reg_overlap_mentioned_p (operands[4], operands[5])
32123 : && ! reg_set_p (operands[4], operands[5])
32124 : && refers_to_regno_p (FLAGS_REG, operands[1], (rtx *)NULL)
32125 : && peep2_regno_dead_p (0, FLAGS_REG)))
32126 : return NULL;
32127 : *pmatch_len_ = 3;
32128 : return gen_peephole2_191 (insn, operands);
32129 :
32130 : case PARALLEL:
32131 : if (XVECLEN (x14, 0) != 2)
32132 : return NULL;
32133 : x18 = XVECEXP (x14, 0, 0);
32134 : if (GET_CODE (x18) != SET)
32135 : return NULL;
32136 : x19 = XEXP (x18, 1);
32137 : if (GET_CODE (x19) != ZERO_EXTEND)
32138 : return NULL;
32139 : x20 = XVECEXP (x14, 0, 1);
32140 : if (GET_CODE (x20) != CLOBBER)
32141 : return NULL;
32142 : x21 = XEXP (x20, 0);
32143 : if (GET_CODE (x21) != REG
32144 : || REGNO (x21) != 17
32145 : || GET_MODE (x21) != E_CCmode)
32146 : return NULL;
32147 : x22 = XEXP (x18, 0);
32148 : operands[4] = x22;
32149 : if (!any_QIreg_operand (operands[4], E_VOIDmode))
32150 : return NULL;
32151 : x23 = XEXP (x19, 0);
32152 : if (!rtx_equal_p (x23, operands[2])
32153 : || !
32154 : #line 20414 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32155 : ((peep2_reg_dead_p (4, operands[2])
32156 : || operands_match_p (operands[2], operands[4]))
32157 : && ! reg_overlap_mentioned_p (operands[4], operands[0])
32158 : && ! reg_overlap_mentioned_p (operands[4], operands[1])
32159 : && ! reg_overlap_mentioned_p (operands[4], operands[5])
32160 : && ! reg_set_p (operands[4], operands[5])
32161 : && refers_to_regno_p (FLAGS_REG, operands[1], (rtx *)NULL)
32162 : && peep2_regno_dead_p (0, FLAGS_REG)))
32163 : return NULL;
32164 : *pmatch_len_ = 3;
32165 : return gen_peephole2_194 (insn, operands);
32166 :
32167 : default:
32168 : return NULL;
32169 : }
32170 : }
32171 :
32172 : rtx_insn *
32173 : peephole2_24 (rtx x1 ATTRIBUTE_UNUSED,
32174 : rtx_insn *insn ATTRIBUTE_UNUSED,
32175 : int *pmatch_len_ ATTRIBUTE_UNUSED)
32176 : {
32177 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
32178 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
32179 : rtx x10;
32180 : rtx_insn *res ATTRIBUTE_UNUSED;
32181 : x2 = XEXP (x1, 1);
32182 : operands[1] = x2;
32183 : if (memory_operand (operands[1], E_SImode)
32184 : && register_operand (operands[0], E_SImode))
32185 : {
32186 : res = peephole2_23 (x1, insn, pmatch_len_);
32187 : if (res != NULL_RTX)
32188 : return res;
32189 : }
32190 : if (peep2_current_count < 3
32191 : || peep2_current_count < 4
32192 : || !general_reg_operand (operands[1], E_SImode)
32193 : || !general_reg_operand (operands[0], E_SImode))
32194 : return NULL;
32195 : x3 = PATTERN (peep2_next_insn (1));
32196 : if (GET_CODE (x3) != PARALLEL
32197 : || XVECLEN (x3, 0) != 2)
32198 : return NULL;
32199 : x4 = XVECEXP (x3, 0, 0);
32200 : if (GET_CODE (x4) != SET)
32201 : return NULL;
32202 : x5 = XEXP (x4, 0);
32203 : if (GET_CODE (x5) != REG
32204 : || REGNO (x5) != 17)
32205 : return NULL;
32206 : x6 = XVECEXP (x3, 0, 1);
32207 : if (GET_CODE (x6) != SET)
32208 : return NULL;
32209 : x7 = XEXP (x4, 1);
32210 : operands[5] = x7;
32211 : x8 = XEXP (x6, 1);
32212 : operands[6] = x8;
32213 : x9 = XEXP (x6, 0);
32214 : if (!rtx_equal_p (x9, operands[0]))
32215 : return NULL;
32216 : x10 = PATTERN (peep2_next_insn (2));
32217 : if (GET_CODE (x10) != SET
32218 : || pattern1356 (x10,
32219 : E_SImode) != 0
32220 : || !
32221 : #line 26950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32222 : (TARGET_CMOVE
32223 : && REGNO (operands[2]) != REGNO (operands[0])
32224 : && REGNO (operands[2]) != REGNO (operands[1])
32225 : && peep2_reg_dead_p (1, operands[1])
32226 : && peep2_reg_dead_p (4, operands[2])
32227 : && !reg_overlap_mentioned_p (operands[0], operands[3])))
32228 : return NULL;
32229 : *pmatch_len_ = 3;
32230 : return gen_peephole2_224 (insn, operands);
32231 : }
32232 :
32233 : rtx_insn *
32234 : peephole2_27 (rtx x1 ATTRIBUTE_UNUSED,
32235 : rtx_insn *insn ATTRIBUTE_UNUSED,
32236 : int *pmatch_len_ ATTRIBUTE_UNUSED)
32237 : {
32238 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
32239 : rtx x2, x3, x4, x5;
32240 : rtx_insn *res ATTRIBUTE_UNUSED;
32241 : if (peep2_current_count >= 2)
32242 : {
32243 : res = peephole2_24 (x1, insn, pmatch_len_);
32244 : if (res != NULL_RTX)
32245 : return res;
32246 : }
32247 : x2 = XEXP (x1, 1);
32248 : operands[1] = x2;
32249 : if (memory_operand (operands[1], E_SImode)
32250 : && push_operand (operands[0], E_SImode)
32251 : &&
32252 : #line 28345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32253 : (!(TARGET_PUSH_MEMORY || optimize_insn_for_size_p ())
32254 : && !RTX_FRAME_RELATED_P (peep2_next_insn (0))))
32255 : {
32256 : *pmatch_len_ = 0;
32257 : res = gen_peephole2_275 (insn, operands);
32258 : if (res != NULL_RTX)
32259 : return res;
32260 : }
32261 : if (peep2_current_count < 2)
32262 : return NULL;
32263 : if (general_reg_operand (operands[1], E_SImode))
32264 : {
32265 : x3 = PATTERN (peep2_next_insn (1));
32266 : if (pattern420 (x3,
32267 : E_SImode) == 0
32268 : &&
32269 : #line 28543 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32270 : (REGNO (operands[0]) != REGNO (operands[1])
32271 : && (SImode != QImode
32272 : || any_QIreg_operand (operands[1], QImode))))
32273 : {
32274 : *pmatch_len_ = 1;
32275 : res = gen_peephole2_303 (insn, operands);
32276 : if (res != NULL_RTX)
32277 : return res;
32278 : }
32279 : }
32280 : if (peep2_current_count >= 3)
32281 : {
32282 : res = peephole2_26 (x1, insn, pmatch_len_);
32283 : if (res != NULL_RTX)
32284 : return res;
32285 : }
32286 : if (mmx_reg_operand (operands[1], E_VOIDmode)
32287 : && mmx_reg_operand (operands[0], E_VOIDmode))
32288 : {
32289 : x3 = PATTERN (peep2_next_insn (1));
32290 : if (pattern607 (x3) == 0
32291 : &&
32292 : #line 28562 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32293 : (REGNO (operands[0]) != REGNO (operands[1])))
32294 : {
32295 : *pmatch_len_ = 1;
32296 : res = gen_peephole2_305 (insn, operands);
32297 : if (res != NULL_RTX)
32298 : return res;
32299 : }
32300 : }
32301 : if (sse_reg_operand (operands[1], E_VOIDmode)
32302 : && sse_reg_operand (operands[0], E_VOIDmode))
32303 : {
32304 : x3 = PATTERN (peep2_next_insn (1));
32305 : if (pattern607 (x3) == 0
32306 : &&
32307 : #line 28574 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32308 : (REGNO (operands[0]) != REGNO (operands[1])
32309 : /* Punt if operands[1] is %[xy]mm16+ and AVX512BW is not enabled,
32310 : as EVEX encoded vpadd[bw], vpmullw, vpmin[su][bw] and vpmax[su][bw]
32311 : instructions require AVX512BW and AVX512VL, but with the original
32312 : instructions it might require just AVX512VL.
32313 : AVX512VL is implied from TARGET_HARD_REGNO_MODE_OK. */
32314 : && (!EXT_REX_SSE_REGNO_P (REGNO (operands[1]))
32315 : || TARGET_AVX512BW
32316 : || GET_MODE_SIZE (GET_MODE_INNER (GET_MODE (operands[0]))) > 2
32317 : || logic_operator (operands[3], VOIDmode))))
32318 : {
32319 : *pmatch_len_ = 1;
32320 : res = gen_peephole2_306 (insn, operands);
32321 : if (res != NULL_RTX)
32322 : return res;
32323 : }
32324 : }
32325 : if (peep2_current_count >= 3
32326 : && peep2_current_count >= 4)
32327 : {
32328 : if (memory_operand (operands[1], E_QImode))
32329 : {
32330 : x3 = PATTERN (peep2_next_insn (1));
32331 : if (pattern736 (x3,
32332 : E_QImode) == 0
32333 : &&
32334 : #line 28734 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32335 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32336 : && REGNO (operands[4]) == REGNO (operands[0])
32337 : && REGNO (operands[5]) == REGNO (operands[3])
32338 : && peep2_reg_dead_p (4, operands[3])
32339 : && ((REGNO (operands[0]) == REGNO (operands[3]))
32340 : || peep2_reg_dead_p (2, operands[0]))
32341 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32342 : && !reg_overlap_mentioned_p (operands[3], operands[1])
32343 : && !reg_overlap_mentioned_p (operands[0], operands[2])
32344 : && (QImode != QImode
32345 : || immediate_operand (operands[2], QImode)
32346 : || any_QIreg_operand (operands[2], QImode))
32347 : && ix86_match_ccmode (peep2_next_insn (3), CCGOCmode)))
32348 : {
32349 : *pmatch_len_ = 3;
32350 : res = gen_peephole2_327 (insn, operands);
32351 : if (res != NULL_RTX)
32352 : return res;
32353 : }
32354 : }
32355 : if (memory_operand (operands[1], E_HImode))
32356 : {
32357 : x3 = PATTERN (peep2_next_insn (1));
32358 : if (pattern736 (x3,
32359 : E_HImode) == 0
32360 : &&
32361 : #line 28734 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32362 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32363 : && REGNO (operands[4]) == REGNO (operands[0])
32364 : && REGNO (operands[5]) == REGNO (operands[3])
32365 : && peep2_reg_dead_p (4, operands[3])
32366 : && ((REGNO (operands[0]) == REGNO (operands[3]))
32367 : || peep2_reg_dead_p (2, operands[0]))
32368 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32369 : && !reg_overlap_mentioned_p (operands[3], operands[1])
32370 : && !reg_overlap_mentioned_p (operands[0], operands[2])
32371 : && (HImode != QImode
32372 : || immediate_operand (operands[2], QImode)
32373 : || any_QIreg_operand (operands[2], QImode))
32374 : && ix86_match_ccmode (peep2_next_insn (3), CCGOCmode)))
32375 : {
32376 : *pmatch_len_ = 3;
32377 : res = gen_peephole2_328 (insn, operands);
32378 : if (res != NULL_RTX)
32379 : return res;
32380 : }
32381 : }
32382 : if (memory_operand (operands[1], E_SImode))
32383 : {
32384 : x3 = PATTERN (peep2_next_insn (1));
32385 : if (pattern737 (x3,
32386 : E_SImode) == 0
32387 : &&
32388 : #line 28734 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32389 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32390 : && REGNO (operands[4]) == REGNO (operands[0])
32391 : && REGNO (operands[5]) == REGNO (operands[3])
32392 : && peep2_reg_dead_p (4, operands[3])
32393 : && ((REGNO (operands[0]) == REGNO (operands[3]))
32394 : || peep2_reg_dead_p (2, operands[0]))
32395 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32396 : && !reg_overlap_mentioned_p (operands[3], operands[1])
32397 : && !reg_overlap_mentioned_p (operands[0], operands[2])
32398 : && (SImode != QImode
32399 : || immediate_operand (operands[2], QImode)
32400 : || any_QIreg_operand (operands[2], QImode))
32401 : && ix86_match_ccmode (peep2_next_insn (3), CCGOCmode)))
32402 : {
32403 : *pmatch_len_ = 3;
32404 : res = gen_peephole2_329 (insn, operands);
32405 : if (res != NULL_RTX)
32406 : return res;
32407 : }
32408 : }
32409 : if (memory_operand (operands[1], E_DImode))
32410 : {
32411 : x3 = PATTERN (peep2_next_insn (1));
32412 : if (pattern737 (x3,
32413 : E_DImode) == 0
32414 : && (
32415 : #line 28734 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32416 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32417 : && REGNO (operands[4]) == REGNO (operands[0])
32418 : && REGNO (operands[5]) == REGNO (operands[3])
32419 : && peep2_reg_dead_p (4, operands[3])
32420 : && ((REGNO (operands[0]) == REGNO (operands[3]))
32421 : || peep2_reg_dead_p (2, operands[0]))
32422 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32423 : && !reg_overlap_mentioned_p (operands[3], operands[1])
32424 : && !reg_overlap_mentioned_p (operands[0], operands[2])
32425 : && (DImode != QImode
32426 : || immediate_operand (operands[2], QImode)
32427 : || any_QIreg_operand (operands[2], QImode))
32428 : && ix86_match_ccmode (peep2_next_insn (3), CCGOCmode)) &&
32429 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32430 : (TARGET_64BIT)))
32431 : {
32432 : *pmatch_len_ = 3;
32433 : res = gen_peephole2_330 (insn, operands);
32434 : if (res != NULL_RTX)
32435 : return res;
32436 : }
32437 : }
32438 : }
32439 : if (!memory_operand (operands[1], E_VOIDmode)
32440 : || !register_operand (operands[0], E_VOIDmode))
32441 : return NULL;
32442 : x3 = PATTERN (peep2_next_insn (1));
32443 : if (GET_CODE (x3) != SET)
32444 : return NULL;
32445 : x4 = XEXP (x3, 0);
32446 : operands[2] = x4;
32447 : if (!memory_operand (operands[2], E_VOIDmode))
32448 : return NULL;
32449 : x5 = XEXP (x3, 1);
32450 : if (!rtx_equal_p (x5, operands[0])
32451 : || !
32452 : #line 29167 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32453 : (!MEM_VOLATILE_P (operands[1])
32454 : && !MEM_VOLATILE_P (operands[2])
32455 : && rtx_equal_p (operands[1], operands[2])
32456 : && !reg_overlap_mentioned_p (operands[0], operands[2])))
32457 : return NULL;
32458 : *pmatch_len_ = 1;
32459 : return gen_peephole2_363 (insn, operands);
32460 : }
32461 :
32462 : rtx_insn *
32463 : peephole2_38 (rtx x1 ATTRIBUTE_UNUSED,
32464 : rtx_insn *insn ATTRIBUTE_UNUSED,
32465 : int *pmatch_len_ ATTRIBUTE_UNUSED)
32466 : {
32467 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
32468 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
32469 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
32470 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
32471 : rtx x26, x27, x28, x29, x30, x31;
32472 : rtx_insn *res ATTRIBUTE_UNUSED;
32473 : x2 = XEXP (x1, 1);
32474 : switch (GET_CODE (x2))
32475 : {
32476 : case COMPARE:
32477 : operands[1] = x2;
32478 : if (!compare_operator (operands[1], E_VOIDmode))
32479 : return NULL;
32480 : x3 = XEXP (x2, 1);
32481 : if (GET_CODE (x3) != CONST_INT
32482 : || !flags_reg_operand (operands[0], E_VOIDmode))
32483 : return NULL;
32484 : x4 = XEXP (x2, 0);
32485 : switch (GET_CODE (x4))
32486 : {
32487 : case REG:
32488 : case SUBREG:
32489 : case MEM:
32490 : operands[2] = x4;
32491 : if (memory_operand (operands[2], E_SImode)
32492 : && XWINT (x3, 0) == 0L
32493 : &&
32494 : #line 28398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32495 : (optimize_insn_for_speed_p () && ix86_match_ccmode (insn, CCNOmode)))
32496 : {
32497 : *pmatch_len_ = 0;
32498 : res = gen_peephole2_284 (insn, operands);
32499 : if (res != NULL_RTX)
32500 : return res;
32501 : }
32502 : if (!register_operand (operands[2], E_VOIDmode))
32503 : return NULL;
32504 : operands[3] = x3;
32505 : if (!const_int_operand (operands[3], E_VOIDmode)
32506 : || !
32507 : #line 29434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32508 : ((((!TARGET_FUSE_CMP_AND_BRANCH || optimize_insn_for_size_p ())
32509 : && incdec_operand (operands[3], GET_MODE (operands[3])))
32510 : || (!TARGET_FUSE_CMP_AND_BRANCH
32511 : && INTVAL (operands[3]) == 128))
32512 : && ix86_match_ccmode (insn, CCGCmode)
32513 : && peep2_reg_dead_p (1, operands[2])))
32514 : return NULL;
32515 : *pmatch_len_ = 0;
32516 : return gen_peephole2_419 (insn, operands);
32517 :
32518 : case AND:
32519 : if (XWINT (x3, 0) != 0L)
32520 : return NULL;
32521 : x5 = XEXP (x4, 0);
32522 : operands[2] = x5;
32523 : x6 = XEXP (x4, 1);
32524 : operands[3] = x6;
32525 : switch (GET_MODE (x4))
32526 : {
32527 : case E_SImode:
32528 : if (register_operand (operands[2], E_SImode)
32529 : && immediate_operand (operands[3], E_SImode)
32530 : &&
32531 : #line 28440 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32532 : (ix86_match_ccmode (insn, CCNOmode)
32533 : && (REGNO (operands[2]) != AX_REG
32534 : || satisfies_constraint_K (operands[3]))
32535 : && peep2_reg_dead_p (1, operands[2])))
32536 : {
32537 : *pmatch_len_ = 0;
32538 : res = gen_peephole2_288 (insn, operands);
32539 : if (res != NULL_RTX)
32540 : return res;
32541 : }
32542 : break;
32543 :
32544 : case E_QImode:
32545 : if (register_operand (operands[2], E_QImode)
32546 : && immediate_operand (operands[3], E_QImode)
32547 : &&
32548 : #line 28460 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32549 : (! TARGET_PARTIAL_REG_STALL
32550 : && ix86_match_ccmode (insn, CCNOmode)
32551 : && REGNO (operands[2]) != AX_REG
32552 : && peep2_reg_dead_p (1, operands[2])))
32553 : {
32554 : *pmatch_len_ = 0;
32555 : res = gen_peephole2_289 (insn, operands);
32556 : if (res != NULL_RTX)
32557 : return res;
32558 : }
32559 : break;
32560 :
32561 : default:
32562 : break;
32563 : }
32564 : if (GET_CODE (x5) != SUBREG
32565 : || maybe_ne (SUBREG_BYTE (x5), 0)
32566 : || GET_MODE (x5) != E_QImode)
32567 : return NULL;
32568 : x7 = XEXP (x5, 0);
32569 : switch (GET_CODE (x7))
32570 : {
32571 : case ASHIFTRT:
32572 : case LSHIFTRT:
32573 : case SIGN_EXTRACT:
32574 : case ZERO_EXTRACT:
32575 : operands[4] = x7;
32576 : if (GET_MODE (x4) != E_QImode)
32577 : return NULL;
32578 : x8 = XEXP (x7, 0);
32579 : operands[2] = x8;
32580 : if (!int248_register_operand (operands[2], E_VOIDmode))
32581 : return NULL;
32582 : operands[3] = x6;
32583 : if (!const_int_operand (operands[3], E_VOIDmode))
32584 : return NULL;
32585 : switch (GET_MODE (operands[4]))
32586 : {
32587 : case E_HImode:
32588 : if (!extract_high_operator (operands[4], E_HImode)
32589 : || !
32590 : #line 28480 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32591 : (! TARGET_PARTIAL_REG_STALL
32592 : && ix86_match_ccmode (insn, CCNOmode)
32593 : && REGNO (operands[2]) != AX_REG
32594 : && peep2_reg_dead_p (1, operands[2])))
32595 : return NULL;
32596 : *pmatch_len_ = 0;
32597 : return gen_peephole2_290 (insn, operands);
32598 :
32599 : case E_SImode:
32600 : if (!extract_high_operator (operands[4], E_SImode)
32601 : || !
32602 : #line 28480 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32603 : (! TARGET_PARTIAL_REG_STALL
32604 : && ix86_match_ccmode (insn, CCNOmode)
32605 : && REGNO (operands[2]) != AX_REG
32606 : && peep2_reg_dead_p (1, operands[2])))
32607 : return NULL;
32608 : *pmatch_len_ = 0;
32609 : return gen_peephole2_291 (insn, operands);
32610 :
32611 : case E_DImode:
32612 : if (!extract_high_operator (operands[4], E_DImode)
32613 : || !(
32614 : #line 28480 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32615 : (! TARGET_PARTIAL_REG_STALL
32616 : && ix86_match_ccmode (insn, CCNOmode)
32617 : && REGNO (operands[2]) != AX_REG
32618 : && peep2_reg_dead_p (1, operands[2])) &&
32619 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32620 : (TARGET_64BIT)))
32621 : return NULL;
32622 : *pmatch_len_ = 0;
32623 : return gen_peephole2_292 (insn, operands);
32624 :
32625 : default:
32626 : return NULL;
32627 : }
32628 :
32629 : default:
32630 : return NULL;
32631 : }
32632 :
32633 : default:
32634 : return NULL;
32635 : }
32636 :
32637 : case NOT:
32638 : x4 = XEXP (x2, 0);
32639 : operands[1] = x4;
32640 : switch (GET_MODE (operands[0]))
32641 : {
32642 : case E_QImode:
32643 : if (!nonimmediate_gr_operand (operands[0], E_QImode)
32644 : || GET_MODE (x2) != E_QImode
32645 : || !nonimmediate_gr_operand (operands[1], E_QImode)
32646 : || !
32647 : #line 28416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32648 : (optimize_insn_for_speed_p ()
32649 : && ((TARGET_NOT_UNPAIRABLE
32650 : && (!MEM_P (operands[0])
32651 : || !memory_displacement_operand (operands[0], QImode)))
32652 : || (TARGET_NOT_VECTORMODE
32653 : && long_memory_operand (operands[0], QImode)))
32654 : && peep2_regno_dead_p (0, FLAGS_REG)))
32655 : return NULL;
32656 : *pmatch_len_ = 0;
32657 : return gen_peephole2_285 (insn, operands);
32658 :
32659 : case E_HImode:
32660 : if (!nonimmediate_gr_operand (operands[0], E_HImode)
32661 : || GET_MODE (x2) != E_HImode
32662 : || !nonimmediate_gr_operand (operands[1], E_HImode)
32663 : || !
32664 : #line 28416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32665 : (optimize_insn_for_speed_p ()
32666 : && ((TARGET_NOT_UNPAIRABLE
32667 : && (!MEM_P (operands[0])
32668 : || !memory_displacement_operand (operands[0], HImode)))
32669 : || (TARGET_NOT_VECTORMODE
32670 : && long_memory_operand (operands[0], HImode)))
32671 : && peep2_regno_dead_p (0, FLAGS_REG)))
32672 : return NULL;
32673 : *pmatch_len_ = 0;
32674 : return gen_peephole2_286 (insn, operands);
32675 :
32676 : case E_SImode:
32677 : if (!nonimmediate_gr_operand (operands[0], E_SImode)
32678 : || GET_MODE (x2) != E_SImode
32679 : || !nonimmediate_gr_operand (operands[1], E_SImode)
32680 : || !
32681 : #line 28416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32682 : (optimize_insn_for_speed_p ()
32683 : && ((TARGET_NOT_UNPAIRABLE
32684 : && (!MEM_P (operands[0])
32685 : || !memory_displacement_operand (operands[0], SImode)))
32686 : || (TARGET_NOT_VECTORMODE
32687 : && long_memory_operand (operands[0], SImode)))
32688 : && peep2_regno_dead_p (0, FLAGS_REG)))
32689 : return NULL;
32690 : *pmatch_len_ = 0;
32691 : return gen_peephole2_287 (insn, operands);
32692 :
32693 : default:
32694 : return NULL;
32695 : }
32696 :
32697 : case CONST_INT:
32698 : case CONST_WIDE_INT:
32699 : case CONST_POLY_INT:
32700 : case CONST_FIXED:
32701 : case CONST_DOUBLE:
32702 : case CONST_VECTOR:
32703 : case CONST:
32704 : case REG:
32705 : case SUBREG:
32706 : case MEM:
32707 : case LABEL_REF:
32708 : case SYMBOL_REF:
32709 : case HIGH:
32710 : if (GET_CODE (x2) == CONST_INT)
32711 : {
32712 : res = peephole2_37 (x1, insn, pmatch_len_);
32713 : if (res != NULL_RTX)
32714 : return res;
32715 : }
32716 : if (peep2_current_count < 2
32717 : || peep2_current_count < 3)
32718 : return NULL;
32719 : operands[1] = x2;
32720 : x9 = PATTERN (peep2_next_insn (1));
32721 : if (pattern608 (x9,
32722 : 4) != 0)
32723 : return NULL;
32724 : x10 = XVECEXP (x9, 0, 1);
32725 : if (GET_CODE (x10) != SET)
32726 : return NULL;
32727 : x11 = XEXP (x10, 1);
32728 : if (GET_CODE (x11) != UNSPEC_VOLATILE
32729 : || XVECLEN (x11, 0) != 1)
32730 : return NULL;
32731 : x12 = XVECEXP (x11, 0, 0);
32732 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
32733 : return NULL;
32734 : x13 = XVECEXP (x9, 0, 2);
32735 : if (GET_CODE (x13) != SET)
32736 : return NULL;
32737 : x14 = XEXP (x13, 0);
32738 : if (GET_CODE (x14) != REG
32739 : || REGNO (x14) != 17)
32740 : return NULL;
32741 : x15 = XVECEXP (x9, 0, 0);
32742 : x16 = XEXP (x15, 1);
32743 : x17 = XVECEXP (x16, 0, 0);
32744 : operands[2] = x17;
32745 : x18 = XVECEXP (x16, 0, 2);
32746 : operands[3] = x18;
32747 : if (pattern1713 (x9) != 0)
32748 : return NULL;
32749 : x19 = PATTERN (peep2_next_insn (2));
32750 : if (GET_CODE (x19) != SET)
32751 : return NULL;
32752 : x20 = XEXP (x19, 1);
32753 : if (GET_CODE (x20) != COMPARE)
32754 : return NULL;
32755 : x21 = XEXP (x19, 0);
32756 : if (GET_CODE (x21) != REG
32757 : || REGNO (x21) != 17)
32758 : return NULL;
32759 : x22 = XEXP (x20, 0);
32760 : operands[5] = x22;
32761 : x23 = XEXP (x20, 1);
32762 : operands[6] = x23;
32763 : switch (GET_MODE (operands[0]))
32764 : {
32765 : case E_HImode:
32766 : if (!register_operand (operands[0], E_HImode)
32767 : || !general_operand (operands[1], E_HImode)
32768 : || XINT (x16, 1) != 109
32769 : || GET_MODE (x16) != E_HImode
32770 : || pattern1892 (x9,
32771 : E_HImode) != 0
32772 : || !
32773 : #line 521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32774 : ((rtx_equal_p (operands[0], operands[5])
32775 : && rtx_equal_p (operands[1], operands[6]))
32776 : || (rtx_equal_p (operands[0], operands[6])
32777 : && rtx_equal_p (operands[1], operands[5]))))
32778 : return NULL;
32779 : *pmatch_len_ = 2;
32780 : return gen_peephole2_436 (insn, operands);
32781 :
32782 : case E_SImode:
32783 : if (!register_operand (operands[0], E_SImode)
32784 : || GET_MODE (x16) != E_SImode)
32785 : return NULL;
32786 : if (XINT (x16, 1) == 109
32787 : && general_operand (operands[1], E_SImode)
32788 : && pattern1892 (x9,
32789 : E_SImode) == 0
32790 : &&
32791 : #line 521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32792 : ((rtx_equal_p (operands[0], operands[5])
32793 : && rtx_equal_p (operands[1], operands[6]))
32794 : || (rtx_equal_p (operands[0], operands[6])
32795 : && rtx_equal_p (operands[1], operands[5]))))
32796 : {
32797 : *pmatch_len_ = 2;
32798 : res = gen_peephole2_437 (insn, operands);
32799 : if (res != NULL_RTX)
32800 : return res;
32801 : }
32802 : if (XINT (x16, 1) != 112
32803 : || pattern1890 (x9,
32804 : E_SImode) != 0)
32805 : return NULL;
32806 : if (
32807 : #line 1149 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32808 : (TARGET_CMPCCXADD && TARGET_64BIT
32809 : && rtx_equal_p (operands[0], operands[5])
32810 : && rtx_equal_p (operands[1], operands[6])))
32811 : {
32812 : *pmatch_len_ = 2;
32813 : res = gen_peephole2_455 (insn, operands);
32814 : if (res != NULL_RTX)
32815 : return res;
32816 : }
32817 : if (peep2_current_count < 4)
32818 : return NULL;
32819 : x24 = PATTERN (peep2_next_insn (3));
32820 : switch (pattern1912 (x24))
32821 : {
32822 : case 0:
32823 : if (!
32824 : #line 1191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32825 : (TARGET_CMPCCXADD && TARGET_64BIT
32826 : && rtx_equal_p (operands[0], operands[6])
32827 : && rtx_equal_p (operands[1], operands[5])
32828 : && peep2_regno_dead_p (4, FLAGS_REG)))
32829 : return NULL;
32830 : *pmatch_len_ = 3;
32831 : return gen_peephole2_457 (insn, operands);
32832 :
32833 : case 1:
32834 : if (!
32835 : #line 1249 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32836 : (TARGET_CMPCCXADD && TARGET_64BIT
32837 : && rtx_equal_p (operands[0], operands[6])
32838 : && rtx_equal_p (operands[1], operands[5])
32839 : && peep2_regno_dead_p (4, FLAGS_REG)))
32840 : return NULL;
32841 : *pmatch_len_ = 3;
32842 : return gen_peephole2_459 (insn, operands);
32843 :
32844 : default:
32845 : return NULL;
32846 : }
32847 :
32848 : case E_DImode:
32849 : if (!register_operand (operands[0], E_DImode)
32850 : || GET_MODE (x16) != E_DImode)
32851 : return NULL;
32852 : if (XINT (x16, 1) == 109
32853 : && general_operand (operands[1], E_DImode)
32854 : && pattern1892 (x9,
32855 : E_DImode) == 0
32856 : && (
32857 : #line 521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32858 : ((rtx_equal_p (operands[0], operands[5])
32859 : && rtx_equal_p (operands[1], operands[6]))
32860 : || (rtx_equal_p (operands[0], operands[6])
32861 : && rtx_equal_p (operands[1], operands[5]))) &&
32862 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32863 : (TARGET_64BIT)))
32864 : {
32865 : *pmatch_len_ = 2;
32866 : res = gen_peephole2_438 (insn, operands);
32867 : if (res != NULL_RTX)
32868 : return res;
32869 : }
32870 : if (XINT (x16, 1) != 112
32871 : || pattern1890 (x9,
32872 : E_DImode) != 0)
32873 : return NULL;
32874 : if (
32875 : #line 1149 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32876 : (TARGET_CMPCCXADD && TARGET_64BIT
32877 : && rtx_equal_p (operands[0], operands[5])
32878 : && rtx_equal_p (operands[1], operands[6])))
32879 : {
32880 : *pmatch_len_ = 2;
32881 : res = gen_peephole2_456 (insn, operands);
32882 : if (res != NULL_RTX)
32883 : return res;
32884 : }
32885 : if (peep2_current_count < 4)
32886 : return NULL;
32887 : x24 = PATTERN (peep2_next_insn (3));
32888 : switch (pattern1912 (x24))
32889 : {
32890 : case 0:
32891 : if (!
32892 : #line 1191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32893 : (TARGET_CMPCCXADD && TARGET_64BIT
32894 : && rtx_equal_p (operands[0], operands[6])
32895 : && rtx_equal_p (operands[1], operands[5])
32896 : && peep2_regno_dead_p (4, FLAGS_REG)))
32897 : return NULL;
32898 : *pmatch_len_ = 3;
32899 : return gen_peephole2_458 (insn, operands);
32900 :
32901 : case 1:
32902 : if (!
32903 : #line 1249 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32904 : (TARGET_CMPCCXADD && TARGET_64BIT
32905 : && rtx_equal_p (operands[0], operands[6])
32906 : && rtx_equal_p (operands[1], operands[5])
32907 : && peep2_regno_dead_p (4, FLAGS_REG)))
32908 : return NULL;
32909 : *pmatch_len_ = 3;
32910 : return gen_peephole2_460 (insn, operands);
32911 :
32912 : default:
32913 : return NULL;
32914 : }
32915 :
32916 : default:
32917 : return NULL;
32918 : }
32919 :
32920 : case PLUS:
32921 : switch (pattern24 (x2))
32922 : {
32923 : case 0:
32924 : x3 = XEXP (x2, 1);
32925 : operands[1] = x3;
32926 : if (x86_64_nonmemory_operand (operands[1], E_SImode))
32927 : {
32928 : x4 = XEXP (x2, 0);
32929 : if (rtx_equal_p (x4, operands[0])
32930 : &&
32931 : #line 29214 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32932 : (!TARGET_OPT_AGU
32933 : && peep2_regno_dead_p (0, FLAGS_REG)))
32934 : {
32935 : *pmatch_len_ = 0;
32936 : res = gen_peephole2_370 (insn, operands);
32937 : if (res != NULL_RTX)
32938 : return res;
32939 : }
32940 : }
32941 : x4 = XEXP (x2, 0);
32942 : operands[1] = x4;
32943 : if (!x86_64_nonmemory_operand (operands[1], E_SImode)
32944 : || !rtx_equal_p (x3, operands[0])
32945 : || !
32946 : #line 29223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32947 : (!TARGET_OPT_AGU
32948 : && peep2_regno_dead_p (0, FLAGS_REG)))
32949 : return NULL;
32950 : *pmatch_len_ = 0;
32951 : return gen_peephole2_372 (insn, operands);
32952 :
32953 : case 1:
32954 : x3 = XEXP (x2, 1);
32955 : operands[1] = x3;
32956 : if (x86_64_nonmemory_operand (operands[1], E_DImode))
32957 : {
32958 : x4 = XEXP (x2, 0);
32959 : if (rtx_equal_p (x4, operands[0])
32960 : && (
32961 : #line 29214 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32962 : (!TARGET_OPT_AGU
32963 : && peep2_regno_dead_p (0, FLAGS_REG)) &&
32964 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32965 : (TARGET_64BIT)))
32966 : {
32967 : *pmatch_len_ = 0;
32968 : res = gen_peephole2_371 (insn, operands);
32969 : if (res != NULL_RTX)
32970 : return res;
32971 : }
32972 : }
32973 : x4 = XEXP (x2, 0);
32974 : operands[1] = x4;
32975 : if (!x86_64_nonmemory_operand (operands[1], E_DImode)
32976 : || !rtx_equal_p (x3, operands[0])
32977 : || !(
32978 : #line 29223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32979 : (!TARGET_OPT_AGU
32980 : && peep2_regno_dead_p (0, FLAGS_REG)) &&
32981 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32982 : (TARGET_64BIT)))
32983 : return NULL;
32984 : *pmatch_len_ = 0;
32985 : return gen_peephole2_373 (insn, operands);
32986 :
32987 : default:
32988 : return NULL;
32989 : }
32990 :
32991 : case ZERO_EXTEND:
32992 : if (GET_MODE (x2) != E_DImode
32993 : || !register_operand (operands[0], E_DImode))
32994 : return NULL;
32995 : x4 = XEXP (x2, 0);
32996 : if (GET_MODE (x4) != E_SImode)
32997 : return NULL;
32998 : switch (GET_CODE (x4))
32999 : {
33000 : case PLUS:
33001 : x5 = XEXP (x4, 0);
33002 : operands[1] = x5;
33003 : x6 = XEXP (x4, 1);
33004 : operands[2] = x6;
33005 : if (nonmemory_operand (operands[2], E_SImode)
33006 : && register_operand (operands[1], E_SImode)
33007 : &&
33008 : #line 29233 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33009 : (TARGET_64BIT && !TARGET_OPT_AGU
33010 : && REGNO (operands[0]) == REGNO (operands[1])
33011 : && peep2_regno_dead_p (0, FLAGS_REG)))
33012 : {
33013 : *pmatch_len_ = 0;
33014 : res = gen_peephole2_374 (insn, operands);
33015 : if (res != NULL_RTX)
33016 : return res;
33017 : }
33018 : if (!register_operand (operands[2], E_SImode)
33019 : || !nonmemory_operand (operands[1], E_SImode)
33020 : || !
33021 : #line 29245 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33022 : (TARGET_64BIT && !TARGET_OPT_AGU
33023 : && REGNO (operands[0]) == REGNO (operands[2])
33024 : && peep2_regno_dead_p (0, FLAGS_REG)))
33025 : return NULL;
33026 : *pmatch_len_ = 0;
33027 : return gen_peephole2_375 (insn, operands);
33028 :
33029 : case MULT:
33030 : x5 = XEXP (x4, 0);
33031 : operands[1] = x5;
33032 : if (!register_operand (operands[1], E_SImode))
33033 : return NULL;
33034 : x6 = XEXP (x4, 1);
33035 : operands[2] = x6;
33036 : if (!const_int_operand (operands[2], E_SImode)
33037 : || !
33038 : #line 29267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33039 : (TARGET_64BIT
33040 : && pow2p_hwi (INTVAL (operands[2]))
33041 : && REGNO (operands[0]) == REGNO (operands[1])
33042 : && peep2_regno_dead_p (0, FLAGS_REG)))
33043 : return NULL;
33044 : *pmatch_len_ = 0;
33045 : return gen_peephole2_378 (insn, operands);
33046 :
33047 : default:
33048 : return NULL;
33049 : }
33050 :
33051 : case MULT:
33052 : x3 = XEXP (x2, 1);
33053 : operands[1] = x3;
33054 : x4 = XEXP (x2, 0);
33055 : if (!rtx_equal_p (x4, operands[0]))
33056 : return NULL;
33057 : switch (GET_MODE (operands[0]))
33058 : {
33059 : case E_SImode:
33060 : if (!register_operand (operands[0], E_SImode)
33061 : || GET_MODE (x2) != E_SImode
33062 : || !const_int_operand (operands[1], E_SImode)
33063 : || !
33064 : #line 29256 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33065 : (pow2p_hwi (INTVAL (operands[1]))
33066 : && peep2_regno_dead_p (0, FLAGS_REG)))
33067 : return NULL;
33068 : *pmatch_len_ = 0;
33069 : return gen_peephole2_376 (insn, operands);
33070 :
33071 : case E_DImode:
33072 : if (!register_operand (operands[0], E_DImode)
33073 : || GET_MODE (x2) != E_DImode
33074 : || !const_int_operand (operands[1], E_DImode)
33075 : || !(
33076 : #line 29256 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33077 : (pow2p_hwi (INTVAL (operands[1]))
33078 : && peep2_regno_dead_p (0, FLAGS_REG)) &&
33079 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33080 : (TARGET_64BIT)))
33081 : return NULL;
33082 : *pmatch_len_ = 0;
33083 : return gen_peephole2_377 (insn, operands);
33084 :
33085 : default:
33086 : return NULL;
33087 : }
33088 :
33089 : case VEC_CONCAT:
33090 : if (peep2_current_count < 2
33091 : || GET_MODE (x2) != E_V2DFmode
33092 : || !sse_reg_operand (operands[0], E_V2DFmode))
33093 : return NULL;
33094 : x4 = XEXP (x2, 0);
33095 : operands[1] = x4;
33096 : if (!memory_operand (operands[1], E_DFmode))
33097 : return NULL;
33098 : x3 = XEXP (x2, 1);
33099 : operands[4] = x3;
33100 : if (!const0_operand (operands[4], E_DFmode))
33101 : return NULL;
33102 : x9 = PATTERN (peep2_next_insn (1));
33103 : if (GET_CODE (x9) != SET)
33104 : return NULL;
33105 : x25 = XEXP (x9, 1);
33106 : if (GET_CODE (x25) != VEC_CONCAT
33107 : || GET_MODE (x25) != E_V2DFmode)
33108 : return NULL;
33109 : x26 = XEXP (x25, 0);
33110 : if (GET_CODE (x26) != VEC_SELECT
33111 : || GET_MODE (x26) != E_DFmode)
33112 : return NULL;
33113 : x27 = XEXP (x26, 1);
33114 : if (GET_CODE (x27) != PARALLEL
33115 : || XVECLEN (x27, 0) != 1)
33116 : return NULL;
33117 : x28 = XVECEXP (x27, 0, 0);
33118 : if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
33119 : return NULL;
33120 : x29 = XEXP (x9, 0);
33121 : operands[2] = x29;
33122 : if (!sse_reg_operand (operands[2], E_V2DFmode))
33123 : return NULL;
33124 : x30 = XEXP (x25, 1);
33125 : operands[3] = x30;
33126 : if (!memory_operand (operands[3], E_DFmode))
33127 : return NULL;
33128 : x31 = XEXP (x26, 0);
33129 : if (!rtx_equal_p (x31, operands[2])
33130 : || !
33131 : #line 1977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
33132 : (TARGET_SSE2 && TARGET_SSE_UNALIGNED_LOAD_OPTIMAL
33133 : && ix86_operands_ok_for_move_multiple (operands, true, DFmode)))
33134 : return NULL;
33135 : *pmatch_len_ = 1;
33136 : return gen_peephole2_432 (insn, operands);
33137 :
33138 : default:
33139 : return NULL;
33140 : }
33141 : }
|