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 63 : pattern1 (rtx x1)
57 : {
58 63 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
59 63 : rtx x2, x3;
60 63 : int res ATTRIBUTE_UNUSED;
61 63 : x2 = XEXP (x1, 1);
62 63 : x3 = XEXP (x2, 1);
63 63 : operands[3] = x3;
64 63 : if (!const_int_operand (operands[3], E_QImode))
65 : return -1;
66 63 : return pattern0 (x1); /* [-1, 1] */
67 : }
68 :
69 : int
70 237 : pattern10 (rtx x1)
71 : {
72 237 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
73 237 : int res ATTRIBUTE_UNUSED;
74 237 : if (!memory_operand (operands[0], E_V8QImode)
75 237 : || GET_MODE (x1) != E_V8QImode)
76 : return -1;
77 20 : switch (GET_MODE (operands[1]))
78 : {
79 12 : case E_V8HImode:
80 12 : if (!register_operand (operands[1], E_V8HImode))
81 : return -1;
82 : return 0;
83 :
84 4 : case E_V8SImode:
85 4 : if (!register_operand (operands[1], E_V8SImode))
86 : return -1;
87 : return 1;
88 :
89 4 : case E_V8DImode:
90 4 : if (!register_operand (operands[1], E_V8DImode))
91 : return -1;
92 : return 2;
93 :
94 : default:
95 : return -1;
96 : }
97 : }
98 :
99 : int
100 49239 : pattern21 (rtx x1, machine_mode i1)
101 : {
102 49239 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
103 49239 : rtx x2;
104 49239 : int res ATTRIBUTE_UNUSED;
105 49239 : if (GET_MODE (x1) != i1)
106 : return -1;
107 49239 : x2 = XEXP (x1, 0);
108 49239 : if (GET_MODE (x2) != i1
109 49239 : || !nonimmediate_operand (operands[1], i1)
110 87844 : || !x86_64_general_operand (operands[2], i1))
111 10652 : return -1;
112 : return 0;
113 : }
114 :
115 : int
116 71473 : pattern25 (rtx x1)
117 : {
118 71473 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
119 71473 : rtx x2, x3, x4, x5, x6, x7;
120 71473 : int res ATTRIBUTE_UNUSED;
121 71473 : x2 = XEXP (x1, 0);
122 71473 : operands[0] = x2;
123 71473 : x3 = XEXP (x1, 1);
124 71473 : x4 = XEXP (x3, 0);
125 71473 : switch (GET_CODE (x4))
126 : {
127 686 : case VEC_SELECT:
128 686 : x5 = XEXP (x4, 1);
129 686 : if (GET_CODE (x5) != PARALLEL
130 686 : || XVECLEN (x5, 0) != 1)
131 : return -1;
132 157 : x6 = XVECEXP (x5, 0, 0);
133 157 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
134 : return -1;
135 105 : x7 = XEXP (x4, 0);
136 105 : operands[1] = x7;
137 105 : switch (GET_MODE (operands[0]))
138 : {
139 97 : case E_SImode:
140 97 : return pattern23 (x3,
141 97 : E_SImode); /* [-1, 2] */
142 :
143 8 : case E_DImode:
144 8 : res = pattern23 (x3,
145 : E_DImode);
146 8 : if (res >= 0)
147 2 : return res + 3; /* [3, 5] */
148 : return -1;
149 :
150 : default:
151 : return -1;
152 : }
153 :
154 14597 : case SUBREG:
155 14597 : case MEM:
156 14597 : operands[1] = x4;
157 14597 : if (!memory_operand (operands[1], E_HFmode))
158 : return -1;
159 0 : res = pattern24 (x3);
160 0 : if (res >= 0)
161 0 : return res + 6; /* [6, 7] */
162 : return -1;
163 :
164 : default:
165 : return -1;
166 : }
167 : }
168 :
169 : int
170 79491 : pattern37 (rtx x1)
171 : {
172 79491 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
173 79491 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
174 79491 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
175 79491 : int res ATTRIBUTE_UNUSED;
176 79491 : x2 = XVECEXP (x1, 0, 1);
177 79491 : if (GET_CODE (x2) != CLOBBER)
178 : return -1;
179 73932 : x3 = XEXP (x2, 0);
180 73932 : if (GET_CODE (x3) != REG
181 73932 : || REGNO (x3) != 8
182 147864 : || GET_MODE (x3) != E_XFmode)
183 : return -1;
184 73932 : x4 = XVECEXP (x1, 0, 2);
185 73932 : if (GET_CODE (x4) != CLOBBER)
186 : return -1;
187 73932 : x5 = XEXP (x4, 0);
188 73932 : if (GET_CODE (x5) != REG
189 73932 : || REGNO (x5) != 9
190 147864 : || GET_MODE (x5) != E_XFmode)
191 : return -1;
192 73932 : x6 = XVECEXP (x1, 0, 3);
193 73932 : if (GET_CODE (x6) != CLOBBER)
194 : return -1;
195 73932 : x7 = XEXP (x6, 0);
196 73932 : if (GET_CODE (x7) != REG
197 73932 : || REGNO (x7) != 10
198 147864 : || GET_MODE (x7) != E_XFmode)
199 : return -1;
200 73932 : x8 = XVECEXP (x1, 0, 4);
201 73932 : if (GET_CODE (x8) != CLOBBER)
202 : return -1;
203 73932 : x9 = XEXP (x8, 0);
204 73932 : if (GET_CODE (x9) != REG
205 73932 : || REGNO (x9) != 11
206 147864 : || GET_MODE (x9) != E_XFmode)
207 : return -1;
208 73932 : x10 = XVECEXP (x1, 0, 5);
209 73932 : if (GET_CODE (x10) != CLOBBER)
210 : return -1;
211 73932 : x11 = XEXP (x10, 0);
212 73932 : if (GET_CODE (x11) != REG
213 73932 : || REGNO (x11) != 12
214 147864 : || GET_MODE (x11) != E_XFmode)
215 : return -1;
216 73932 : x12 = XVECEXP (x1, 0, 6);
217 73932 : if (GET_CODE (x12) != CLOBBER)
218 : return -1;
219 73932 : x13 = XEXP (x12, 0);
220 73932 : if (GET_CODE (x13) != REG
221 73932 : || REGNO (x13) != 13
222 147864 : || GET_MODE (x13) != E_XFmode)
223 : return -1;
224 73932 : x14 = XVECEXP (x1, 0, 7);
225 73932 : if (GET_CODE (x14) != CLOBBER)
226 : return -1;
227 73932 : x15 = XEXP (x14, 0);
228 73932 : if (GET_CODE (x15) != REG
229 73932 : || REGNO (x15) != 14
230 147864 : || GET_MODE (x15) != E_XFmode)
231 : return -1;
232 73932 : x16 = XVECEXP (x1, 0, 8);
233 73932 : if (GET_CODE (x16) != CLOBBER)
234 : return -1;
235 73932 : x17 = XEXP (x16, 0);
236 73932 : if (GET_CODE (x17) != REG
237 73932 : || REGNO (x17) != 15
238 147864 : || GET_MODE (x17) != E_XFmode)
239 0 : return -1;
240 : return 0;
241 : }
242 :
243 : int
244 16648071 : pattern46 (rtx x1, machine_mode i1)
245 : {
246 16648071 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
247 16648071 : rtx x2, x3;
248 16648071 : int res ATTRIBUTE_UNUSED;
249 16648071 : x2 = XEXP (x1, 0);
250 16648071 : if (GET_CODE (x2) != REG
251 16648071 : || REGNO (x2) != 17
252 33296141 : || GET_MODE (x2) != i1)
253 : return -1;
254 12373003 : x3 = XEXP (x1, 1);
255 12373003 : if (GET_MODE (x3) != i1)
256 0 : return -1;
257 : return 0;
258 : }
259 :
260 : int
261 185418 : pattern52 (rtx x1, int *pnum_clobbers)
262 : {
263 185418 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
264 185418 : rtx x2, x3, x4, x5, x6, x7;
265 185418 : int res ATTRIBUTE_UNUSED;
266 185418 : if (pnum_clobbers == NULL)
267 : return -1;
268 185257 : x2 = XEXP (x1, 1);
269 185257 : x3 = XEXP (x2, 1);
270 185257 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
271 : return -1;
272 30689 : x4 = XEXP (x1, 0);
273 30689 : if (GET_CODE (x4) != REG
274 30689 : || REGNO (x4) != 17)
275 : return -1;
276 30689 : x5 = XEXP (x2, 0);
277 30689 : x6 = XEXP (x5, 0);
278 30689 : operands[1] = x6;
279 30689 : x7 = XEXP (x5, 1);
280 30689 : operands[2] = x7;
281 30689 : switch (GET_MODE (x5))
282 : {
283 526 : case E_QImode:
284 526 : if (!nonimmediate_operand (operands[1], E_QImode)
285 526 : || !const_1_to_31_operand (operands[2], E_QImode))
286 83 : return -1;
287 : return 0;
288 :
289 798 : case E_HImode:
290 798 : if (!nonimmediate_operand (operands[1], E_HImode)
291 798 : || !const_1_to_31_operand (operands[2], E_QImode))
292 39 : return -1;
293 : return 1;
294 :
295 3884 : case E_SImode:
296 3884 : if (!nonimmediate_operand (operands[1], E_SImode)
297 3884 : || !const_1_to_31_operand (operands[2], E_QImode))
298 1551 : return -1;
299 : return 2;
300 :
301 24803 : case E_DImode:
302 24803 : if (!nonimmediate_operand (operands[1], E_DImode)
303 24803 : || !const_1_to_63_operand (operands[2], E_QImode))
304 3091 : return -1;
305 : return 3;
306 :
307 : default:
308 : return -1;
309 : }
310 : }
311 :
312 : int
313 44768 : pattern64 (rtx x1, machine_mode i1)
314 : {
315 44768 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
316 44768 : int res ATTRIBUTE_UNUSED;
317 44768 : if (!register_operand (operands[0], i1)
318 43959 : || GET_MODE (x1) != i1
319 43959 : || !register_operand (operands[1], i1)
320 82546 : || !nonimmediate_operand (operands[2], i1))
321 7886 : return -1;
322 : return 0;
323 : }
324 :
325 : int
326 13886 : pattern67 (rtx x1, machine_mode i1)
327 : {
328 13886 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
329 13886 : int res ATTRIBUTE_UNUSED;
330 13886 : if (!register_operand (operands[0], i1)
331 13426 : || GET_MODE (x1) != i1
332 13426 : || !register_operand (operands[1], E_V4HImode)
333 23047 : || !register_mmxmem_operand (operands[2], E_V4HImode))
334 7649 : return -1;
335 : return 0;
336 : }
337 :
338 : int
339 1872 : pattern71 (rtx x1)
340 : {
341 1872 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
342 1872 : rtx x2, x3, x4, x5;
343 1872 : int res ATTRIBUTE_UNUSED;
344 1872 : x2 = XEXP (x1, 0);
345 1872 : operands[0] = x2;
346 1872 : x3 = XEXP (x1, 1);
347 1872 : x4 = XVECEXP (x3, 0, 0);
348 1872 : operands[1] = x4;
349 1872 : x5 = XVECEXP (x3, 0, 1);
350 1872 : operands[2] = x5;
351 1872 : return pattern70 (x3); /* [-1, 8] */
352 : }
353 :
354 : int
355 1471 : pattern77 (rtx x1, machine_mode i1)
356 : {
357 1471 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
358 1471 : int res ATTRIBUTE_UNUSED;
359 1471 : if (!register_operand (operands[0], i1)
360 1471 : || GET_MODE (x1) != i1
361 1471 : || !nonimmediate_operand (operands[1], i1)
362 2515 : || !general_operand (operands[2], i1))
363 427 : return -1;
364 : return 0;
365 : }
366 :
367 : int
368 1494057 : pattern82 (rtx x1, int *pnum_clobbers)
369 : {
370 1494057 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
371 1494057 : rtx x2, x3, x4;
372 1494057 : int res ATTRIBUTE_UNUSED;
373 1494057 : x2 = XEXP (x1, 1);
374 1494057 : x3 = XEXP (x2, 1);
375 1494057 : operands[2] = x3;
376 1494057 : x4 = XEXP (x1, 0);
377 1494057 : switch (GET_CODE (x4))
378 : {
379 846 : case STRICT_LOW_PART:
380 846 : return pattern78 (x1, pnum_clobbers); /* [-1, 1] */
381 :
382 1493211 : case REG:
383 1493211 : case SUBREG:
384 1493211 : case MEM:
385 1493211 : operands[0] = x4;
386 1493211 : switch (GET_MODE (operands[0]))
387 : {
388 3735 : case E_TImode:
389 3735 : if (pattern79 (x2, pnum_clobbers) != 0)
390 : return -1;
391 : return 2;
392 :
393 37778 : case E_HImode:
394 37778 : if (pattern80 (x2,
395 : E_HImode) != 0)
396 : return -1;
397 : return 3;
398 :
399 343 : case E_V2SFmode:
400 343 : if (pattern5 (x2,
401 : E_V2SFmode) != 0)
402 : return -1;
403 : return 4;
404 :
405 1 : case E_V2BFmode:
406 1 : if (pattern5 (x2,
407 : E_V2BFmode) != 0)
408 : return -1;
409 : return 5;
410 :
411 1 : case E_V4BFmode:
412 1 : if (pattern5 (x2,
413 : E_V4BFmode) != 0)
414 : return -1;
415 : return 6;
416 :
417 33 : case E_V2HFmode:
418 33 : if (pattern5 (x2,
419 : E_V2HFmode) != 0)
420 : return -1;
421 : return 7;
422 :
423 34 : case E_V4HFmode:
424 34 : if (pattern5 (x2,
425 : E_V4HFmode) != 0)
426 : return -1;
427 : return 8;
428 :
429 3259 : case E_V8QImode:
430 3259 : if (pattern6 (x2,
431 : E_V8QImode) != 0)
432 : return -1;
433 : return 9;
434 :
435 1537 : case E_V4HImode:
436 1537 : if (pattern6 (x2,
437 : E_V4HImode) != 0)
438 : return -1;
439 : return 10;
440 :
441 9812 : case E_V2SImode:
442 9812 : if (pattern6 (x2,
443 : E_V2SImode) != 0)
444 : return -1;
445 : return 11;
446 :
447 512 : case E_V4QImode:
448 512 : if (pattern81 (x2, pnum_clobbers,
449 : E_V4QImode) != 0)
450 : return -1;
451 : return 12;
452 :
453 196 : case E_V2QImode:
454 196 : if (pattern81 (x2, pnum_clobbers,
455 : E_V2QImode) != 0)
456 : return -1;
457 : return 13;
458 :
459 209 : case E_V2HImode:
460 209 : if (pattern81 (x2, pnum_clobbers,
461 : E_V2HImode) != 0)
462 : return -1;
463 : return 14;
464 :
465 0 : case E_BFmode:
466 0 : if (pattern5 (x2,
467 : E_BFmode) != 0)
468 : return -1;
469 : return 15;
470 :
471 12 : case E_HFmode:
472 12 : if (pattern5 (x2,
473 : E_HFmode) != 0)
474 : return -1;
475 : return 16;
476 :
477 5368 : case E_SFmode:
478 5368 : if (pattern5 (x2,
479 : E_SFmode) != 0)
480 : return -1;
481 : return 17;
482 :
483 5025 : case E_DFmode:
484 5025 : if (pattern5 (x2,
485 : E_DFmode) != 0)
486 : return -1;
487 : return 18;
488 :
489 1931 : case E_TFmode:
490 1931 : if (pattern26 (x2,
491 : E_TFmode) != 0)
492 : return -1;
493 : return 19;
494 :
495 : default:
496 : return -1;
497 : }
498 :
499 : default:
500 : return -1;
501 : }
502 : }
503 :
504 : int
505 17246 : pattern115 (rtx x1, int *pnum_clobbers)
506 : {
507 17246 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
508 17246 : rtx x2, x3, x4;
509 17246 : int res ATTRIBUTE_UNUSED;
510 17246 : x2 = XEXP (x1, 0);
511 17246 : x3 = XEXP (x2, 0);
512 17246 : operands[1] = x3;
513 17246 : x4 = XEXP (x2, 1);
514 17246 : operands[2] = x4;
515 17246 : return pattern114 (x1, pnum_clobbers); /* [-1, 4] */
516 : }
517 :
518 : int
519 781785 : pattern119 (rtx x1)
520 : {
521 781785 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
522 781785 : rtx x2, x3, x4, x5, x6;
523 781785 : int res ATTRIBUTE_UNUSED;
524 781785 : x2 = XEXP (x1, 0);
525 781785 : if (GET_MODE (x2) != E_SImode)
526 : return -1;
527 113962 : x3 = XEXP (x2, 1);
528 113962 : if (GET_CODE (x3) != CONST_INT
529 111638 : || XWINT (x3, 0) != -65536L)
530 : return -1;
531 402 : x4 = XEXP (x1, 1);
532 402 : if (GET_CODE (x4) != LSHIFTRT
533 0 : || GET_MODE (x4) != E_SImode)
534 : return -1;
535 0 : x5 = XEXP (x4, 0);
536 0 : if (GET_CODE (x5) != BSWAP
537 0 : || GET_MODE (x5) != E_SImode)
538 : return -1;
539 0 : x6 = XEXP (x4, 1);
540 0 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
541 0 : return -1;
542 : return 0;
543 : }
544 :
545 : int
546 298 : pattern126 (rtx x1, int *pnum_clobbers)
547 : {
548 298 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
549 298 : rtx x2, x3, x4;
550 298 : int res ATTRIBUTE_UNUSED;
551 298 : if (pnum_clobbers == NULL)
552 : return -1;
553 298 : x2 = XEXP (x1, 0);
554 298 : operands[0] = x2;
555 298 : x3 = XEXP (x1, 1);
556 298 : x4 = XVECEXP (x3, 0, 0);
557 298 : operands[1] = x4;
558 298 : if (!register_operand (operands[1], E_XFmode))
559 : return -1;
560 94 : switch (GET_MODE (operands[0]))
561 : {
562 40 : case E_SImode:
563 40 : if (!nonimmediate_operand (operands[0], E_SImode)
564 40 : || GET_MODE (x3) != E_SImode)
565 : return -1;
566 : return 0;
567 :
568 54 : case E_DImode:
569 54 : if (!nonimmediate_operand (operands[0], E_DImode)
570 54 : || GET_MODE (x3) != E_DImode)
571 : return -1;
572 : return 1;
573 :
574 : default:
575 : return -1;
576 : }
577 : }
578 :
579 : int
580 8736 : pattern139 (rtx x1)
581 : {
582 8736 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
583 8736 : rtx x2, x3, x4, x5, x6;
584 8736 : int res ATTRIBUTE_UNUSED;
585 8736 : x2 = XEXP (x1, 0);
586 8736 : x3 = XEXP (x2, 0);
587 8736 : operands[1] = x3;
588 8736 : x4 = XEXP (x2, 1);
589 8736 : operands[2] = x4;
590 8736 : x5 = XEXP (x1, 2);
591 8736 : switch (GET_CODE (x5))
592 : {
593 8045 : case REG:
594 8045 : case SUBREG:
595 8045 : operands[4] = x5;
596 8045 : x6 = XEXP (x1, 1);
597 8045 : operands[3] = x6;
598 8045 : switch (GET_MODE (operands[0]))
599 : {
600 0 : case E_V32HFmode:
601 0 : return pattern133 (x1,
602 : E_V32HFmode,
603 0 : E_SImode); /* [-1, 0] */
604 :
605 120 : case E_V16HFmode:
606 120 : if (pattern133 (x1,
607 : E_V16HFmode,
608 : E_HImode) != 0)
609 : return -1;
610 : return 1;
611 :
612 0 : case E_V8HFmode:
613 0 : if (pattern133 (x1,
614 : E_V8HFmode,
615 : E_QImode) != 0)
616 : return -1;
617 : return 2;
618 :
619 0 : case E_V16SFmode:
620 0 : if (pattern133 (x1,
621 : E_V16SFmode,
622 : E_HImode) != 0)
623 : return -1;
624 : return 3;
625 :
626 80 : case E_V8SFmode:
627 80 : if (pattern133 (x1,
628 : E_V8SFmode,
629 : E_QImode) != 0)
630 : return -1;
631 : return 4;
632 :
633 0 : case E_V4SFmode:
634 0 : if (pattern133 (x1,
635 : E_V4SFmode,
636 : E_QImode) != 0)
637 : return -1;
638 : return 5;
639 :
640 0 : case E_V8DFmode:
641 0 : if (pattern133 (x1,
642 : E_V8DFmode,
643 : E_QImode) != 0)
644 : return -1;
645 : return 6;
646 :
647 132 : case E_V4DFmode:
648 132 : if (pattern133 (x1,
649 : E_V4DFmode,
650 : E_QImode) != 0)
651 : return -1;
652 : return 7;
653 :
654 0 : case E_V2DFmode:
655 0 : if (pattern133 (x1,
656 : E_V2DFmode,
657 : E_QImode) != 0)
658 : return -1;
659 : return 8;
660 :
661 486 : case E_V16SImode:
662 486 : if (pattern134 (x1,
663 : E_V16SImode,
664 : E_HImode) != 0)
665 : return -1;
666 : return 9;
667 :
668 564 : case E_V8SImode:
669 564 : if (pattern134 (x1,
670 : E_V8SImode,
671 : E_QImode) != 0)
672 : return -1;
673 : return 10;
674 :
675 350 : case E_V4SImode:
676 350 : if (pattern135 (x1,
677 : E_QImode,
678 : E_V4SImode) != 0)
679 : return -1;
680 : return 11;
681 :
682 951 : case E_V8DImode:
683 951 : if (pattern134 (x1,
684 : E_V8DImode,
685 : E_QImode) != 0)
686 : return -1;
687 : return 12;
688 :
689 680 : case E_V4DImode:
690 680 : if (pattern134 (x1,
691 : E_V4DImode,
692 : E_QImode) != 0)
693 : return -1;
694 : return 13;
695 :
696 452 : case E_V2DImode:
697 452 : if (pattern134 (x1,
698 : E_V2DImode,
699 : E_QImode) != 0)
700 : return -1;
701 : return 14;
702 :
703 460 : case E_V64QImode:
704 460 : if (pattern134 (x1,
705 : E_V64QImode,
706 : E_DImode) != 0)
707 : return -1;
708 : return 15;
709 :
710 412 : case E_V16QImode:
711 412 : if (pattern135 (x1,
712 : E_HImode,
713 : E_V16QImode) != 0)
714 : return -1;
715 : return 16;
716 :
717 542 : case E_V32QImode:
718 542 : if (pattern134 (x1,
719 : E_V32QImode,
720 : E_SImode) != 0)
721 : return -1;
722 : return 17;
723 :
724 462 : case E_V32HImode:
725 462 : if (pattern134 (x1,
726 : E_V32HImode,
727 : E_SImode) != 0)
728 : return -1;
729 : return 18;
730 :
731 658 : case E_V16HImode:
732 658 : if (pattern134 (x1,
733 : E_V16HImode,
734 : E_HImode) != 0)
735 : return -1;
736 : return 19;
737 :
738 412 : case E_V8HImode:
739 412 : if (pattern134 (x1,
740 : E_V8HImode,
741 : E_QImode) != 0)
742 : return -1;
743 : return 20;
744 :
745 426 : case E_V32BFmode:
746 426 : if (pattern136 (x1,
747 : E_V32BFmode,
748 : E_SImode) != 0)
749 : return -1;
750 : return 21;
751 :
752 432 : case E_V16BFmode:
753 432 : if (pattern136 (x1,
754 : E_V16BFmode,
755 : E_HImode) != 0)
756 : return -1;
757 : return 22;
758 :
759 426 : case E_V8BFmode:
760 426 : if (pattern136 (x1,
761 : E_V8BFmode,
762 : E_QImode) != 0)
763 : return -1;
764 : return 23;
765 :
766 : default:
767 : return -1;
768 : }
769 :
770 407 : case CONST_INT:
771 407 : res = pattern138 (x1);
772 407 : if (res >= 0)
773 0 : return res + 24; /* [24, 26] */
774 : return -1;
775 :
776 : default:
777 : return -1;
778 : }
779 : }
780 :
781 : int
782 21569 : pattern178 (rtx x1, machine_mode i1)
783 : {
784 21569 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
785 21569 : int res ATTRIBUTE_UNUSED;
786 21569 : if (!register_operand (operands[0], i1)
787 21119 : || GET_MODE (x1) != i1
788 21119 : || !register_operand (operands[1], i1)
789 20527 : || !register_operand (operands[2], i1)
790 38484 : || !nonimmediate_operand (operands[3], i1))
791 5978 : return -1;
792 : return 0;
793 : }
794 :
795 : int
796 2317 : pattern183 (rtx x1)
797 : {
798 2317 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
799 2317 : rtx x2, x3, x4, x5, x6;
800 2317 : int res ATTRIBUTE_UNUSED;
801 2317 : x2 = XEXP (x1, 0);
802 2317 : operands[0] = x2;
803 2317 : x3 = XEXP (x1, 1);
804 2317 : x4 = XVECEXP (x3, 0, 0);
805 2317 : operands[1] = x4;
806 2317 : x5 = XVECEXP (x3, 0, 1);
807 2317 : operands[2] = x5;
808 2317 : x6 = XVECEXP (x3, 0, 2);
809 2317 : operands[3] = x6;
810 2317 : switch (GET_MODE (operands[0]))
811 : {
812 356 : case E_V16SImode:
813 356 : return pattern178 (x3,
814 356 : E_V16SImode); /* [-1, 0] */
815 :
816 984 : case E_V8SImode:
817 984 : if (pattern178 (x3,
818 : E_V8SImode) != 0)
819 : return -1;
820 : return 1;
821 :
822 977 : case E_V4SImode:
823 977 : if (pattern178 (x3,
824 : E_V4SImode) != 0)
825 : return -1;
826 : return 2;
827 :
828 : default:
829 : return -1;
830 : }
831 : }
832 :
833 : int
834 2595627 : pattern189 (rtx x1, machine_mode i1)
835 : {
836 2595627 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
837 2595627 : int res ATTRIBUTE_UNUSED;
838 2595627 : if (!register_operand (operands[0], i1)
839 2490373 : || GET_MODE (x1) != i1
840 2490373 : || !bcst_vector_operand (operands[1], i1)
841 4896397 : || !bcst_vector_operand (operands[2], i1))
842 414157 : return -1;
843 : return 0;
844 : }
845 :
846 : int
847 20138 : pattern193 (rtx x1)
848 : {
849 20138 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
850 20138 : rtx x2, x3, x4, x5, x6;
851 20138 : int res ATTRIBUTE_UNUSED;
852 20138 : x2 = XEXP (x1, 0);
853 20138 : switch (XVECLEN (x2, 0))
854 : {
855 11690 : case 2:
856 11690 : x3 = XVECEXP (x2, 0, 0);
857 11690 : operands[1] = x3;
858 11690 : x4 = XVECEXP (x2, 0, 1);
859 11690 : operands[2] = x4;
860 11690 : x5 = XEXP (x1, 1);
861 11690 : operands[3] = x5;
862 11690 : switch (XINT (x2, 1))
863 : {
864 7 : case 222:
865 7 : switch (GET_MODE (operands[0]))
866 : {
867 7 : case E_V32HFmode:
868 7 : return pattern191 (x1,
869 7 : E_V32HFmode); /* [-1, 0] */
870 :
871 0 : case E_V16HFmode:
872 0 : if (pattern191 (x1,
873 : E_V16HFmode) != 0)
874 : return -1;
875 : return 1;
876 :
877 0 : case E_V8HFmode:
878 0 : if (pattern191 (x1,
879 : E_V8HFmode) != 0)
880 : return -1;
881 : return 2;
882 :
883 : default:
884 : return -1;
885 : }
886 :
887 7 : case 223:
888 7 : switch (GET_MODE (operands[0]))
889 : {
890 7 : case E_V32HFmode:
891 7 : if (pattern191 (x1,
892 : E_V32HFmode) != 0)
893 : return -1;
894 : return 3;
895 :
896 0 : case E_V16HFmode:
897 0 : if (pattern191 (x1,
898 : E_V16HFmode) != 0)
899 : return -1;
900 : return 4;
901 :
902 0 : case E_V8HFmode:
903 0 : if (pattern191 (x1,
904 : E_V8HFmode) != 0)
905 : return -1;
906 : return 5;
907 :
908 : default:
909 : return -1;
910 : }
911 :
912 : default:
913 : return -1;
914 : }
915 :
916 1590 : case 3:
917 1590 : x3 = XVECEXP (x2, 0, 0);
918 1590 : operands[1] = x3;
919 1590 : x4 = XVECEXP (x2, 0, 1);
920 1590 : operands[2] = x4;
921 1590 : x6 = XVECEXP (x2, 0, 2);
922 1590 : operands[3] = x6;
923 1590 : x5 = XEXP (x1, 1);
924 1590 : operands[4] = x5;
925 1590 : switch (XINT (x2, 1))
926 : {
927 8 : case 218:
928 8 : switch (GET_MODE (operands[0]))
929 : {
930 8 : case E_V32HFmode:
931 8 : if (pattern192 (x1,
932 : E_V32HFmode) != 0)
933 : return -1;
934 : return 6;
935 :
936 0 : case E_V16HFmode:
937 0 : if (pattern192 (x1,
938 : E_V16HFmode) != 0)
939 : return -1;
940 : return 7;
941 :
942 0 : case E_V8HFmode:
943 0 : if (pattern192 (x1,
944 : E_V8HFmode) != 0)
945 : return -1;
946 : return 8;
947 :
948 : default:
949 : return -1;
950 : }
951 :
952 8 : case 220:
953 8 : switch (GET_MODE (operands[0]))
954 : {
955 8 : case E_V32HFmode:
956 8 : if (pattern192 (x1,
957 : E_V32HFmode) != 0)
958 : return -1;
959 : return 9;
960 :
961 0 : case E_V16HFmode:
962 0 : if (pattern192 (x1,
963 : E_V16HFmode) != 0)
964 : return -1;
965 : return 10;
966 :
967 0 : case E_V8HFmode:
968 0 : if (pattern192 (x1,
969 : E_V8HFmode) != 0)
970 : return -1;
971 : return 11;
972 :
973 : default:
974 : return -1;
975 : }
976 :
977 : default:
978 : return -1;
979 : }
980 :
981 : default:
982 : return -1;
983 : }
984 : }
985 :
986 : int
987 1004121 : pattern212 (rtx x1, machine_mode i1)
988 : {
989 1004121 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
990 1004121 : int res ATTRIBUTE_UNUSED;
991 1004121 : if (!register_operand (operands[0], i1)
992 998751 : || GET_MODE (x1) != i1
993 998751 : || !register_operand (operands[1], i1)
994 1868761 : || !general_operand (operands[2], i1))
995 139819 : return -1;
996 : return 0;
997 : }
998 :
999 : int
1000 537316 : pattern215 (rtx x1)
1001 : {
1002 537316 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1003 537316 : rtx x2, x3, x4, x5, x6, x7, x8;
1004 537316 : int res ATTRIBUTE_UNUSED;
1005 537316 : x2 = XVECEXP (x1, 0, 0);
1006 537316 : x3 = XEXP (x2, 0);
1007 537316 : operands[0] = x3;
1008 537316 : x4 = XEXP (x2, 1);
1009 537316 : x5 = XEXP (x4, 0);
1010 537316 : operands[1] = x5;
1011 537316 : x6 = XEXP (x4, 1);
1012 537316 : operands[2] = x6;
1013 537316 : x7 = XVECEXP (x1, 0, 1);
1014 537316 : switch (GET_CODE (x7))
1015 : {
1016 494642 : case CLOBBER:
1017 494642 : x8 = XEXP (x7, 0);
1018 494642 : if (GET_CODE (x8) != REG
1019 494642 : || REGNO (x8) != 17
1020 989284 : || GET_MODE (x8) != E_CCmode)
1021 : return -1;
1022 494642 : switch (GET_MODE (operands[0]))
1023 : {
1024 351817 : case E_DImode:
1025 351817 : return pattern212 (x4,
1026 351817 : E_DImode); /* [-1, 0] */
1027 :
1028 801 : case E_TImode:
1029 801 : if (pattern212 (x4,
1030 : E_TImode) != 0)
1031 : return -1;
1032 : return 1;
1033 :
1034 1056 : case E_QImode:
1035 1056 : if (pattern212 (x4,
1036 : E_QImode) != 0)
1037 : return -1;
1038 : return 2;
1039 :
1040 1474 : case E_HImode:
1041 1474 : if (pattern212 (x4,
1042 : E_HImode) != 0)
1043 : return -1;
1044 : return 3;
1045 :
1046 139494 : case E_SImode:
1047 139494 : if (pattern212 (x4,
1048 : E_SImode) != 0)
1049 : return -1;
1050 : return 4;
1051 :
1052 : default:
1053 : return -1;
1054 : }
1055 :
1056 0 : case UNSPEC:
1057 0 : if (pattern214 (x1) != 0)
1058 : return -1;
1059 : return 5;
1060 :
1061 : default:
1062 : return -1;
1063 : }
1064 : }
1065 :
1066 : int
1067 300903 : pattern227 (rtx x1)
1068 : {
1069 300903 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1070 300903 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1071 300903 : int res ATTRIBUTE_UNUSED;
1072 300903 : x2 = XVECEXP (x1, 0, 1);
1073 300903 : if (GET_CODE (x2) != USE)
1074 : return -1;
1075 288459 : x3 = XVECEXP (x1, 0, 2);
1076 288459 : if (GET_CODE (x3) != CLOBBER)
1077 : return -1;
1078 278476 : x4 = XEXP (x3, 0);
1079 278476 : if (GET_CODE (x4) != REG
1080 278476 : || REGNO (x4) != 17
1081 556952 : || GET_MODE (x4) != E_CCmode)
1082 : return -1;
1083 278476 : x5 = XVECEXP (x1, 0, 0);
1084 278476 : x6 = XEXP (x5, 0);
1085 278476 : operands[0] = x6;
1086 278476 : x7 = XEXP (x5, 1);
1087 278476 : x8 = XEXP (x7, 0);
1088 278476 : operands[1] = x8;
1089 278476 : x9 = XEXP (x2, 0);
1090 278476 : operands[2] = x9;
1091 278476 : switch (GET_MODE (operands[0]))
1092 : {
1093 2133 : case E_HFmode:
1094 2133 : return pattern226 (x7,
1095 : E_V8HFmode,
1096 2133 : E_HFmode); /* [-1, 0] */
1097 :
1098 126412 : case E_SFmode:
1099 126412 : if (pattern226 (x7,
1100 : E_V4SFmode,
1101 : E_SFmode) != 0)
1102 : return -1;
1103 : return 1;
1104 :
1105 149931 : case E_DFmode:
1106 149931 : if (pattern226 (x7,
1107 : E_V2DFmode,
1108 : E_DFmode) != 0)
1109 : return -1;
1110 : return 2;
1111 :
1112 : default:
1113 : return -1;
1114 : }
1115 : }
1116 :
1117 : int
1118 354855 : pattern240 (rtx x1)
1119 : {
1120 354855 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1121 354855 : rtx x2, x3;
1122 354855 : int res ATTRIBUTE_UNUSED;
1123 354855 : x2 = XEXP (x1, 0);
1124 354855 : operands[1] = x2;
1125 354855 : x3 = XEXP (x1, 1);
1126 354855 : operands[2] = x3;
1127 354855 : switch (GET_MODE (operands[0]))
1128 : {
1129 3912 : case E_V4HImode:
1130 3912 : return pattern202 (x1,
1131 3912 : E_V4HImode); /* [-1, 0] */
1132 :
1133 2521 : case E_V2SImode:
1134 2521 : if (pattern202 (x1,
1135 : E_V2SImode) != 0)
1136 : return -1;
1137 : return 1;
1138 :
1139 161 : case E_V2HImode:
1140 161 : if (pattern202 (x1,
1141 : E_V2HImode) != 0)
1142 : return -1;
1143 : return 2;
1144 :
1145 : default:
1146 : return -1;
1147 : }
1148 : }
1149 :
1150 : int
1151 314649 : pattern250 (rtx x1)
1152 : {
1153 314649 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1154 314649 : rtx x2, x3, x4, x5, x6, x7, x8;
1155 314649 : int res ATTRIBUTE_UNUSED;
1156 314649 : x2 = XVECEXP (x1, 0, 1);
1157 314649 : if (GET_CODE (x2) != CLOBBER)
1158 : return -1;
1159 313521 : x3 = XEXP (x2, 0);
1160 313521 : if (GET_CODE (x3) != REG
1161 313521 : || REGNO (x3) != 17
1162 627042 : || GET_MODE (x3) != E_CCmode)
1163 : return -1;
1164 313521 : x4 = XVECEXP (x1, 0, 0);
1165 313521 : x5 = XEXP (x4, 0);
1166 313521 : operands[0] = x5;
1167 313521 : x6 = XEXP (x4, 1);
1168 313521 : x7 = XEXP (x6, 0);
1169 313521 : operands[1] = x7;
1170 313521 : x8 = XEXP (x6, 1);
1171 313521 : operands[2] = x8;
1172 313521 : if (!nonmemory_operand (operands[2], E_QImode))
1173 : return -1;
1174 313521 : return pattern249 (x6); /* [-1, 1] */
1175 : }
1176 :
1177 : int
1178 604097 : pattern259 (rtx x1, machine_mode i1, machine_mode i2)
1179 : {
1180 604097 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1181 604097 : rtx x2;
1182 604097 : int res ATTRIBUTE_UNUSED;
1183 604097 : switch (GET_CODE (x1))
1184 : {
1185 236794 : case ZERO_EXTEND:
1186 236794 : if (GET_MODE (x1) != i2)
1187 : return -1;
1188 236794 : x2 = XEXP (x1, 0);
1189 236794 : operands[3] = x2;
1190 236794 : if (!nonimmediate_operand (operands[3], i1))
1191 : return -1;
1192 : return 0;
1193 :
1194 51440 : case CONST_INT:
1195 51440 : case CONST_WIDE_INT:
1196 51440 : operands[3] = x1;
1197 51440 : if (!const_scalar_int_operand (operands[3], i2))
1198 : return -1;
1199 : return 1;
1200 :
1201 : default:
1202 : return -1;
1203 : }
1204 : }
1205 :
1206 : int
1207 1884 : pattern271 (rtx x1)
1208 : {
1209 1884 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1210 1884 : rtx x2, x3, x4, x5;
1211 1884 : int res ATTRIBUTE_UNUSED;
1212 1884 : x2 = XEXP (x1, 0);
1213 1884 : x3 = XEXP (x2, 0);
1214 1884 : operands[1] = x3;
1215 1884 : x4 = XEXP (x1, 1);
1216 1884 : x5 = XEXP (x4, 0);
1217 1884 : operands[2] = x5;
1218 1884 : switch (GET_MODE (operands[0]))
1219 : {
1220 429 : case E_V8QImode:
1221 429 : return pattern270 (x1,
1222 : E_V4HImode,
1223 : E_V4QImode,
1224 429 : E_V8QImode); /* [-1, 0] */
1225 :
1226 658 : case E_V4HImode:
1227 658 : if (pattern270 (x1,
1228 : E_V2SImode,
1229 : E_V2HImode,
1230 : E_V4HImode) != 0)
1231 : return -1;
1232 : return 1;
1233 :
1234 : default:
1235 : return -1;
1236 : }
1237 : }
1238 :
1239 : int
1240 6546 : pattern283 (rtx x1, int *pnum_clobbers)
1241 : {
1242 6546 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1243 6546 : rtx x2, x3;
1244 6546 : int res ATTRIBUTE_UNUSED;
1245 6546 : x2 = XEXP (x1, 0);
1246 6546 : x3 = XEXP (x2, 1);
1247 6546 : operands[2] = x3;
1248 6546 : if (!nonmemory_operand (operands[2], E_QImode))
1249 : return -1;
1250 6403 : return pattern282 (x1, pnum_clobbers); /* [-1, 4] */
1251 : }
1252 :
1253 : int
1254 1104 : pattern286 (rtx x1)
1255 : {
1256 1104 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1257 1104 : rtx x2, x3, x4, x5;
1258 1104 : int res ATTRIBUTE_UNUSED;
1259 1104 : x2 = XEXP (x1, 0);
1260 1104 : x3 = XEXP (x2, 1);
1261 1104 : switch (GET_CODE (x3))
1262 : {
1263 : case REG:
1264 : case SUBREG:
1265 : return 0;
1266 :
1267 0 : case AND:
1268 0 : if (GET_MODE (x3) != E_QImode)
1269 : return -1;
1270 0 : x4 = XEXP (x3, 0);
1271 0 : operands[1] = x4;
1272 0 : if (!register_operand (operands[1], E_QImode))
1273 : return -1;
1274 0 : x5 = XEXP (x3, 1);
1275 0 : operands[2] = x5;
1276 0 : if (!const_int_operand (operands[2], E_QImode))
1277 : return -1;
1278 0 : res = pattern285 (x1);
1279 0 : if (res >= 0)
1280 0 : return res + 1; /* [1, 2] */
1281 : return -1;
1282 :
1283 : default:
1284 : return -1;
1285 : }
1286 : }
1287 :
1288 : int
1289 17 : pattern297 (rtx x1)
1290 : {
1291 17 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1292 17 : rtx x2;
1293 17 : int res ATTRIBUTE_UNUSED;
1294 17 : if (!memory_operand (operands[0], E_DImode)
1295 17 : || GET_MODE (x1) != E_DImode)
1296 : return -1;
1297 9 : x2 = XEXP (x1, 0);
1298 9 : switch (GET_MODE (x2))
1299 : {
1300 6 : case E_V8QImode:
1301 6 : return pattern106 (); /* [-1, 2] */
1302 :
1303 3 : case E_V4HImode:
1304 3 : switch (GET_MODE (operands[1]))
1305 : {
1306 0 : case E_V4SImode:
1307 0 : if (!register_operand (operands[1], E_V4SImode))
1308 : return -1;
1309 : return 3;
1310 :
1311 3 : case E_V4DImode:
1312 3 : if (!register_operand (operands[1], E_V4DImode))
1313 : return -1;
1314 : return 4;
1315 :
1316 : default:
1317 : return -1;
1318 : }
1319 :
1320 0 : case E_V2SImode:
1321 0 : if (!register_operand (operands[1], E_V2DImode))
1322 : return -1;
1323 : return 5;
1324 :
1325 : default:
1326 : return -1;
1327 : }
1328 : }
1329 :
1330 : int
1331 18971 : pattern310 (rtx x1, int i1, machine_mode i2, machine_mode i3)
1332 : {
1333 18971 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1334 18971 : rtx x2, x3, x4, x5;
1335 18971 : int res ATTRIBUTE_UNUSED;
1336 18971 : if (GET_MODE (x1) != i3)
1337 : return -1;
1338 270 : x2 = XEXP (x1, 0);
1339 270 : if (GET_CODE (x2) != VEC_SELECT
1340 235 : || GET_MODE (x2) != i2)
1341 : return -1;
1342 235 : x3 = XEXP (x2, 1);
1343 235 : if (GET_CODE (x3) != PARALLEL
1344 235 : || XVECLEN (x3, 0) != 2)
1345 : return -1;
1346 235 : x4 = XVECEXP (x3, 0, 0);
1347 235 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1348 : return -1;
1349 235 : x5 = XVECEXP (x3, 0, 1);
1350 235 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
1351 8 : return -1;
1352 : return 0;
1353 : }
1354 :
1355 : int
1356 1510 : pattern317 (rtx x1, rtx_code i1)
1357 : {
1358 1510 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1359 1510 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1360 1510 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
1361 1510 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
1362 1510 : rtx x26, x27, x28;
1363 1510 : int res ATTRIBUTE_UNUSED;
1364 1510 : x2 = XEXP (x1, 0);
1365 1510 : x3 = XEXP (x2, 0);
1366 1510 : x4 = XEXP (x3, 0);
1367 1510 : if (GET_CODE (x4) != VEC_SELECT)
1368 : return -1;
1369 1510 : x5 = XEXP (x4, 1);
1370 1510 : if (GET_CODE (x5) != PARALLEL)
1371 : return -1;
1372 1510 : x6 = XEXP (x2, 1);
1373 1510 : if (GET_CODE (x6) != i1)
1374 : return -1;
1375 1422 : x7 = XEXP (x6, 0);
1376 1422 : if (GET_CODE (x7) != VEC_SELECT)
1377 : return -1;
1378 1422 : x8 = XEXP (x7, 1);
1379 1422 : if (GET_CODE (x8) != PARALLEL)
1380 : return -1;
1381 1422 : x9 = XEXP (x4, 0);
1382 1422 : operands[1] = x9;
1383 1422 : x10 = XEXP (x7, 0);
1384 1422 : operands[2] = x10;
1385 1422 : x11 = XEXP (x1, 1);
1386 1422 : operands[3] = x11;
1387 1422 : x12 = XEXP (x1, 2);
1388 1422 : operands[4] = x12;
1389 1422 : if (!register_operand (operands[4], E_QImode))
1390 : return -1;
1391 1318 : switch (XVECLEN (x5, 0))
1392 : {
1393 492 : case 8:
1394 492 : x13 = XVECEXP (x5, 0, 0);
1395 492 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1396 : return -1;
1397 492 : x14 = XVECEXP (x5, 0, 1);
1398 492 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
1399 : return -1;
1400 492 : x15 = XVECEXP (x5, 0, 2);
1401 492 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
1402 : return -1;
1403 492 : x16 = XVECEXP (x5, 0, 3);
1404 492 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
1405 : return -1;
1406 492 : x17 = XVECEXP (x5, 0, 4);
1407 492 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
1408 : return -1;
1409 492 : x18 = XVECEXP (x5, 0, 5);
1410 492 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
1411 : return -1;
1412 492 : x19 = XVECEXP (x5, 0, 6);
1413 492 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
1414 : return -1;
1415 492 : x20 = XVECEXP (x5, 0, 7);
1416 492 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 14]
1417 492 : || XVECLEN (x8, 0) != 8)
1418 : return -1;
1419 492 : x21 = XVECEXP (x8, 0, 0);
1420 492 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1421 : return -1;
1422 492 : x22 = XVECEXP (x8, 0, 1);
1423 492 : if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
1424 : return -1;
1425 492 : x23 = XVECEXP (x8, 0, 2);
1426 492 : if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
1427 : return -1;
1428 492 : x24 = XVECEXP (x8, 0, 3);
1429 492 : if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
1430 : return -1;
1431 492 : x25 = XVECEXP (x8, 0, 4);
1432 492 : if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
1433 : return -1;
1434 492 : x26 = XVECEXP (x8, 0, 5);
1435 492 : if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
1436 : return -1;
1437 492 : x27 = XVECEXP (x8, 0, 6);
1438 492 : if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
1439 : return -1;
1440 492 : x28 = XVECEXP (x8, 0, 7);
1441 492 : if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 14]
1442 492 : || pattern316 (x1,
1443 : E_V8DImode,
1444 : E_V16SImode,
1445 : E_V8SImode) != 0)
1446 68 : return -1;
1447 : return 0;
1448 :
1449 450 : case 4:
1450 450 : x13 = XVECEXP (x5, 0, 0);
1451 450 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1452 : return -1;
1453 450 : x14 = XVECEXP (x5, 0, 1);
1454 450 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
1455 : return -1;
1456 450 : x15 = XVECEXP (x5, 0, 2);
1457 450 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
1458 : return -1;
1459 450 : x16 = XVECEXP (x5, 0, 3);
1460 450 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 6]
1461 450 : || XVECLEN (x8, 0) != 4)
1462 : return -1;
1463 450 : x21 = XVECEXP (x8, 0, 0);
1464 450 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1465 : return -1;
1466 450 : x22 = XVECEXP (x8, 0, 1);
1467 450 : if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
1468 : return -1;
1469 450 : x23 = XVECEXP (x8, 0, 2);
1470 450 : if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
1471 : return -1;
1472 450 : x24 = XVECEXP (x8, 0, 3);
1473 450 : if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 6]
1474 450 : || pattern316 (x1,
1475 : E_V4DImode,
1476 : E_V8SImode,
1477 : E_V4SImode) != 0)
1478 68 : return -1;
1479 : return 1;
1480 :
1481 376 : case 2:
1482 376 : x13 = XVECEXP (x5, 0, 0);
1483 376 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1484 : return -1;
1485 376 : x14 = XVECEXP (x5, 0, 1);
1486 376 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 2]
1487 376 : || XVECLEN (x8, 0) != 2)
1488 : return -1;
1489 376 : x21 = XVECEXP (x8, 0, 0);
1490 376 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1491 : return -1;
1492 376 : x22 = XVECEXP (x8, 0, 1);
1493 376 : if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 2]
1494 376 : || !register_operand (operands[0], E_V2DImode)
1495 364 : || GET_MODE (x1) != E_V2DImode
1496 364 : || GET_MODE (x2) != E_V2DImode
1497 364 : || GET_MODE (x3) != E_V2DImode
1498 364 : || GET_MODE (x4) != E_V2SImode
1499 364 : || !vector_operand (operands[1], E_V4SImode)
1500 364 : || GET_MODE (x6) != E_V2DImode
1501 364 : || GET_MODE (x7) != E_V2SImode
1502 364 : || !vector_operand (operands[2], E_V4SImode)
1503 740 : || !nonimm_or_0_operand (operands[3], E_V2DImode))
1504 14 : return -1;
1505 : return 2;
1506 :
1507 : default:
1508 : return -1;
1509 : }
1510 : }
1511 :
1512 : int
1513 5928 : pattern353 (rtx x1)
1514 : {
1515 5928 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1516 5928 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1517 5928 : int res ATTRIBUTE_UNUSED;
1518 5928 : x2 = XVECEXP (x1, 0, 1);
1519 5928 : if (GET_CODE (x2) != CLOBBER)
1520 : return -1;
1521 5472 : x3 = XEXP (x2, 0);
1522 5472 : if (GET_CODE (x3) != REG
1523 5472 : || REGNO (x3) != 17
1524 10944 : || GET_MODE (x3) != E_CCmode)
1525 : return -1;
1526 5472 : x4 = XVECEXP (x1, 0, 0);
1527 5472 : x5 = XEXP (x4, 0);
1528 5472 : operands[0] = x5;
1529 5472 : x6 = XEXP (x4, 1);
1530 5472 : x7 = XEXP (x6, 0);
1531 5472 : x8 = XEXP (x7, 0);
1532 5472 : operands[1] = x8;
1533 5472 : x9 = XEXP (x7, 1);
1534 5472 : operands[2] = x9;
1535 5472 : return pattern352 (x6); /* [-1, 5] */
1536 : }
1537 :
1538 : int
1539 10013 : pattern360 (rtx x1)
1540 : {
1541 10013 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1542 10013 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1543 10013 : rtx x10;
1544 10013 : int res ATTRIBUTE_UNUSED;
1545 10013 : x2 = XVECEXP (x1, 0, 0);
1546 10013 : x3 = XEXP (x2, 1);
1547 10013 : x4 = XEXP (x3, 0);
1548 10013 : operands[2] = x4;
1549 10013 : x5 = XEXP (x4, 0);
1550 10013 : if (GET_CODE (x5) != REG
1551 10013 : || REGNO (x5) != 17)
1552 : return -1;
1553 3521 : x6 = XEXP (x4, 1);
1554 3521 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1555 : return -1;
1556 3521 : x7 = XVECEXP (x1, 0, 1);
1557 3521 : if (GET_CODE (x7) != CLOBBER)
1558 : return -1;
1559 3429 : x8 = XEXP (x7, 0);
1560 3429 : if (GET_CODE (x8) != REG
1561 3429 : || REGNO (x8) != 17
1562 6858 : || GET_MODE (x8) != E_CCmode)
1563 : return -1;
1564 3429 : x9 = XEXP (x2, 0);
1565 3429 : operands[0] = x9;
1566 3429 : x10 = XEXP (x3, 1);
1567 3429 : operands[1] = x10;
1568 3429 : switch (GET_MODE (operands[0]))
1569 : {
1570 : case E_QImode:
1571 : return 0;
1572 :
1573 : case E_HImode:
1574 : return 1;
1575 :
1576 : case E_SImode:
1577 : return 2;
1578 :
1579 : case E_DImode:
1580 : return 3;
1581 :
1582 : default:
1583 : return -1;
1584 : }
1585 : }
1586 :
1587 : int
1588 253657 : pattern368 (rtx x1, rtx_code i1)
1589 : {
1590 253657 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1591 253657 : rtx x2, x3, x4, x5, x6, x7;
1592 253657 : int res ATTRIBUTE_UNUSED;
1593 253657 : x2 = XVECEXP (x1, 0, 0);
1594 253657 : x3 = XEXP (x2, 1);
1595 253657 : x4 = XEXP (x3, 1);
1596 253657 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1597 : return -1;
1598 241785 : x5 = XEXP (x3, 0);
1599 241785 : x6 = XEXP (x5, 0);
1600 241785 : switch (GET_CODE (x6))
1601 : {
1602 144238 : case REG:
1603 144238 : case SUBREG:
1604 144238 : case MEM:
1605 144238 : x7 = XEXP (x5, 1);
1606 144238 : operands[2] = x7;
1607 144238 : return 0;
1608 :
1609 2704 : case UNSPEC_VOLATILE:
1610 2704 : res = pattern367 (x1,
1611 : i1);
1612 2704 : if (res >= 0)
1613 2480 : return res + 1; /* [1, 4] */
1614 : return -1;
1615 :
1616 : default:
1617 : return -1;
1618 : }
1619 : }
1620 :
1621 : int
1622 14177 : pattern374 (rtx x1, int i1)
1623 : {
1624 14177 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1625 14177 : rtx x2, x3, x4, x5, x6, x7, x8;
1626 14177 : int res ATTRIBUTE_UNUSED;
1627 14177 : x2 = XVECEXP (x1, 0, 0);
1628 14177 : x3 = XEXP (x2, 1);
1629 14177 : x4 = XEXP (x3, 0);
1630 14177 : x5 = XEXP (x4, 0);
1631 14177 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
1632 : return -1;
1633 657 : x6 = XVECEXP (x1, 0, 1);
1634 657 : if (GET_CODE (x6) != CLOBBER)
1635 : return -1;
1636 497 : x7 = XEXP (x6, 0);
1637 497 : if (GET_CODE (x7) != REG
1638 497 : || REGNO (x7) != 17
1639 994 : || GET_MODE (x7) != E_CCmode)
1640 : return -1;
1641 497 : x8 = XEXP (x2, 0);
1642 497 : operands[0] = x8;
1643 497 : return pattern373 (x3); /* [-1, 2] */
1644 : }
1645 :
1646 : int
1647 141969 : pattern381 (rtx x1, machine_mode i1, machine_mode i2)
1648 : {
1649 141969 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1650 141969 : rtx x2;
1651 141969 : int res ATTRIBUTE_UNUSED;
1652 141969 : if (!register_operand (operands[0], i2)
1653 141969 : || GET_MODE (x1) != i2)
1654 : return -1;
1655 141969 : x2 = XEXP (x1, 0);
1656 141969 : if (GET_MODE (x2) != i2
1657 141969 : || !nonimmediate_operand (operands[1], i1))
1658 26011 : return -1;
1659 : return 0;
1660 : }
1661 :
1662 : int
1663 0 : pattern387 (machine_mode i1, machine_mode i2)
1664 : {
1665 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1666 0 : int res ATTRIBUTE_UNUSED;
1667 0 : if (!nonimmediate_operand (operands[3], i2)
1668 0 : || !nonimmediate_operand (operands[4], i1)
1669 0 : || !scratch_operand (operands[1], i1)
1670 0 : || !scratch_operand (operands[2], i1))
1671 0 : return -1;
1672 : return 0;
1673 : }
1674 :
1675 : int
1676 87762 : pattern393 (rtx x1, machine_mode i1)
1677 : {
1678 87762 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1679 87762 : rtx x2, x3, x4, x5;
1680 87762 : int res ATTRIBUTE_UNUSED;
1681 87762 : if (!register_operand (operands[0], i1))
1682 : return -1;
1683 87762 : x2 = XVECEXP (x1, 0, 0);
1684 87762 : x3 = XEXP (x2, 1);
1685 87762 : if (GET_MODE (x3) != i1
1686 87762 : || !register_operand (operands[2], i1)
1687 87762 : || !nonimmediate_operand (operands[3], i1)
1688 175524 : || !register_operand (operands[1], i1))
1689 0 : return -1;
1690 87762 : x4 = XVECEXP (x1, 0, 1);
1691 87762 : x5 = XEXP (x4, 1);
1692 87762 : if (GET_MODE (x5) != i1
1693 87762 : || !register_operand (operands[4], i1))
1694 0 : return -1;
1695 : return 0;
1696 : }
1697 :
1698 : int
1699 0 : pattern402 (rtx x1, machine_mode i1, machine_mode i2)
1700 : {
1701 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1702 0 : rtx x2, x3, x4;
1703 0 : int res ATTRIBUTE_UNUSED;
1704 0 : if (!nonimmediate_operand (operands[0], i2)
1705 0 : || GET_MODE (x1) != i2)
1706 : return -1;
1707 0 : x2 = XEXP (x1, 0);
1708 0 : if (GET_MODE (x2) != i2
1709 0 : || !nonimmediate_operand (operands[1], i1))
1710 0 : return -1;
1711 0 : x3 = XEXP (x1, 1);
1712 0 : if (GET_MODE (x3) != i2)
1713 : return -1;
1714 0 : x4 = XEXP (x3, 0);
1715 0 : if (GET_MODE (x4) != i2
1716 0 : || !nonimmediate_operand (operands[2], i1))
1717 0 : return -1;
1718 : return 0;
1719 : }
1720 :
1721 : int
1722 121089 : pattern410 (rtx x1)
1723 : {
1724 121089 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1725 121089 : rtx x2, x3, x4, x5, x6;
1726 121089 : int res ATTRIBUTE_UNUSED;
1727 121089 : x2 = XVECEXP (x1, 0, 1);
1728 121089 : if (GET_CODE (x2) != CLOBBER)
1729 : return -1;
1730 121089 : x3 = XEXP (x2, 0);
1731 121089 : if (GET_CODE (x3) != REG
1732 121089 : || REGNO (x3) != 17
1733 204053 : || GET_MODE (x3) != E_CCmode)
1734 : return -1;
1735 82958 : x4 = XVECEXP (x1, 0, 0);
1736 82958 : x5 = XEXP (x4, 0);
1737 82958 : operands[0] = x5;
1738 82958 : x6 = XEXP (x4, 1);
1739 82958 : return pattern216 (x6); /* [-1, 4] */
1740 : }
1741 :
1742 : int
1743 895 : pattern414 (rtx x1)
1744 : {
1745 895 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1746 895 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1747 895 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
1748 895 : rtx x18, x19, x20, x21, x22;
1749 895 : int res ATTRIBUTE_UNUSED;
1750 895 : if (!register_operand (operands[3], E_QImode))
1751 : return -1;
1752 623 : x2 = XEXP (x1, 0);
1753 623 : x3 = XEXP (x2, 0);
1754 623 : x4 = XEXP (x3, 0);
1755 623 : x5 = XEXP (x4, 0);
1756 623 : switch (GET_CODE (x5))
1757 : {
1758 99 : case VEC_CONCAT:
1759 99 : if (GET_MODE (x5) != E_V2DImode)
1760 : return -1;
1761 99 : x6 = XEXP (x5, 1);
1762 99 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1763 : return -1;
1764 63 : x7 = XEXP (x5, 0);
1765 63 : operands[1] = x7;
1766 63 : if (!memory_operand (operands[1], E_DImode))
1767 : return -1;
1768 54 : x8 = XEXP (x3, 1);
1769 54 : switch (XVECLEN (x8, 0))
1770 : {
1771 27 : case 8:
1772 27 : x9 = XVECEXP (x8, 0, 0);
1773 27 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1774 : return -1;
1775 27 : x10 = XVECEXP (x8, 0, 1);
1776 27 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
1777 : return -1;
1778 27 : x11 = XVECEXP (x8, 0, 2);
1779 27 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
1780 : return -1;
1781 27 : x12 = XVECEXP (x8, 0, 3);
1782 27 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
1783 : return -1;
1784 27 : x13 = XVECEXP (x8, 0, 4);
1785 27 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
1786 : return -1;
1787 27 : x14 = XVECEXP (x8, 0, 5);
1788 27 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
1789 : return -1;
1790 27 : x15 = XVECEXP (x8, 0, 6);
1791 27 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
1792 : return -1;
1793 27 : x16 = XVECEXP (x8, 0, 7);
1794 27 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
1795 27 : || GET_MODE (x3) != E_V8QImode
1796 27 : || GET_MODE (x4) != E_V16QImode)
1797 : return -1;
1798 27 : switch (GET_MODE (operands[0]))
1799 : {
1800 9 : case E_V8HImode:
1801 9 : return pattern143 (x1,
1802 9 : E_V8HImode); /* [-1, 0] */
1803 :
1804 9 : case E_V8SImode:
1805 9 : if (pattern143 (x1,
1806 : E_V8SImode) != 0)
1807 : return -1;
1808 : return 1;
1809 :
1810 9 : case E_V8DImode:
1811 9 : if (pattern143 (x1,
1812 : E_V8DImode) != 0)
1813 : return -1;
1814 : return 2;
1815 :
1816 : default:
1817 : return -1;
1818 : }
1819 :
1820 18 : case 4:
1821 18 : res = pattern412 (x1,
1822 : E_V8HImode,
1823 : E_V4HImode);
1824 18 : if (res >= 0)
1825 12 : return res + 3; /* [3, 4] */
1826 : return -1;
1827 :
1828 9 : case 2:
1829 9 : if (pattern413 (x1,
1830 : E_V4SImode,
1831 : E_V2SImode) != 0)
1832 : return -1;
1833 : return 5;
1834 :
1835 : default:
1836 : return -1;
1837 : }
1838 :
1839 30 : case VEC_MERGE:
1840 30 : if (GET_MODE (x5) != E_V4SImode)
1841 : return -1;
1842 30 : x7 = XEXP (x5, 0);
1843 30 : if (GET_CODE (x7) != VEC_DUPLICATE
1844 30 : || GET_MODE (x7) != E_V4SImode)
1845 : return -1;
1846 30 : x6 = XEXP (x5, 1);
1847 30 : if (GET_CODE (x6) != CONST_VECTOR
1848 30 : || XVECLEN (x6, 0) != 4
1849 30 : || GET_MODE (x6) != E_V4SImode)
1850 : return -1;
1851 30 : x17 = XVECEXP (x6, 0, 0);
1852 30 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1853 : return -1;
1854 30 : x18 = XVECEXP (x6, 0, 1);
1855 30 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1856 : return -1;
1857 30 : x19 = XVECEXP (x6, 0, 2);
1858 30 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1859 : return -1;
1860 30 : x20 = XVECEXP (x6, 0, 3);
1861 30 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1862 : return -1;
1863 30 : x21 = XEXP (x5, 2);
1864 30 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
1865 : return -1;
1866 30 : x22 = XEXP (x7, 0);
1867 30 : operands[1] = x22;
1868 30 : if (!memory_operand (operands[1], E_SImode))
1869 : return -1;
1870 27 : x8 = XEXP (x3, 1);
1871 27 : switch (XVECLEN (x8, 0))
1872 : {
1873 18 : case 4:
1874 18 : res = pattern412 (x1,
1875 : E_V16QImode,
1876 : E_V4QImode);
1877 18 : if (res >= 0)
1878 12 : return res + 6; /* [6, 7] */
1879 : return -1;
1880 :
1881 9 : case 2:
1882 9 : if (pattern413 (x1,
1883 : E_V8HImode,
1884 : E_V2HImode) != 0)
1885 : return -1;
1886 : return 8;
1887 :
1888 : default:
1889 : return -1;
1890 : }
1891 :
1892 : default:
1893 : return -1;
1894 : }
1895 : }
1896 :
1897 : int
1898 2168 : pattern469 (rtx x1)
1899 : {
1900 2168 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1901 2168 : rtx x2, x3, x4, x5, x6;
1902 2168 : int res ATTRIBUTE_UNUSED;
1903 2168 : x2 = XEXP (x1, 0);
1904 2168 : x3 = XVECEXP (x2, 0, 0);
1905 2168 : operands[1] = x3;
1906 2168 : x4 = XVECEXP (x2, 0, 1);
1907 2168 : operands[2] = x4;
1908 2168 : x5 = XEXP (x1, 1);
1909 2168 : operands[3] = x5;
1910 2168 : x6 = XEXP (x1, 2);
1911 2168 : operands[4] = x6;
1912 2168 : switch (GET_MODE (operands[0]))
1913 : {
1914 1058 : case E_V32QImode:
1915 1058 : return pattern468 (x1,
1916 : E_SImode,
1917 : E_V32QImode,
1918 : E_V32HFmode,
1919 1058 : E_V64QImode); /* [-1, 0] */
1920 :
1921 1026 : case E_V16QImode:
1922 1026 : if (pattern468 (x1,
1923 : E_HImode,
1924 : E_V16QImode,
1925 : E_V16HFmode,
1926 : E_V32QImode) != 0)
1927 : return -1;
1928 : return 1;
1929 :
1930 : default:
1931 : return -1;
1932 : }
1933 : }
1934 :
1935 : int
1936 736 : pattern477 (rtx x1, machine_mode i1)
1937 : {
1938 736 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1939 736 : rtx x2;
1940 736 : int res ATTRIBUTE_UNUSED;
1941 736 : if (!register_operand (operands[0], i1)
1942 736 : || GET_MODE (x1) != i1)
1943 : return -1;
1944 674 : x2 = XEXP (x1, 0);
1945 674 : if (GET_MODE (x2) != i1
1946 674 : || !register_operand (operands[1], i1)
1947 649 : || !register_operand (operands[2], i1)
1948 623 : || !nonimmediate_operand (operands[3], i1)
1949 1297 : || !const0_operand (operands[4], i1))
1950 51 : return -1;
1951 : return 0;
1952 : }
1953 :
1954 : int
1955 4958 : pattern484 (rtx x1, machine_mode i1, machine_mode i2)
1956 : {
1957 4958 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1958 4958 : rtx x2;
1959 4958 : int res ATTRIBUTE_UNUSED;
1960 4958 : if (!register_operand (operands[0], i1)
1961 4958 : || GET_MODE (x1) != i1)
1962 : return -1;
1963 4695 : x2 = XEXP (x1, 0);
1964 4695 : if (GET_MODE (x2) != i1
1965 4695 : || !register_operand (operands[1], i1)
1966 9299 : || pattern483 (
1967 : i1,
1968 : i2) != 0)
1969 354 : return -1;
1970 : return 0;
1971 : }
1972 :
1973 : int
1974 640 : pattern491 (rtx x1, machine_mode i1)
1975 : {
1976 640 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1977 640 : rtx x2;
1978 640 : int res ATTRIBUTE_UNUSED;
1979 640 : if (!register_operand (operands[0], i1)
1980 640 : || GET_MODE (x1) != i1)
1981 : return -1;
1982 596 : x2 = XVECEXP (x1, 0, 0);
1983 596 : if (GET_MODE (x2) != i1
1984 596 : || !register_operand (operands[1], i1)
1985 1156 : || !register_operand (operands[2], i1))
1986 62 : return -1;
1987 : return 0;
1988 : }
1989 :
1990 : int
1991 485 : pattern492 (rtx x1)
1992 : {
1993 485 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1994 485 : rtx x2, x3, x4, x5;
1995 485 : int res ATTRIBUTE_UNUSED;
1996 485 : x2 = XVECEXP (x1, 0, 0);
1997 485 : x3 = XEXP (x2, 0);
1998 485 : operands[1] = x3;
1999 485 : x4 = XEXP (x2, 1);
2000 485 : operands[2] = x4;
2001 485 : x5 = XVECEXP (x1, 0, 1);
2002 485 : operands[3] = x5;
2003 485 : if (!const_4_or_8_to_11_operand (operands[3], E_SImode))
2004 : return -1;
2005 485 : switch (GET_MODE (operands[0]))
2006 : {
2007 165 : case E_V32HFmode:
2008 165 : return pattern491 (x1,
2009 165 : E_V32HFmode); /* [-1, 0] */
2010 :
2011 0 : case E_V16HFmode:
2012 0 : if (pattern491 (x1,
2013 : E_V16HFmode) != 0)
2014 : return -1;
2015 : return 1;
2016 :
2017 0 : case E_V8HFmode:
2018 0 : if (pattern491 (x1,
2019 : E_V8HFmode) != 0)
2020 : return -1;
2021 : return 2;
2022 :
2023 170 : case E_V16SFmode:
2024 170 : if (pattern491 (x1,
2025 : E_V16SFmode) != 0)
2026 : return -1;
2027 : return 3;
2028 :
2029 0 : case E_V8SFmode:
2030 0 : if (pattern491 (x1,
2031 : E_V8SFmode) != 0)
2032 : return -1;
2033 : return 4;
2034 :
2035 0 : case E_V4SFmode:
2036 0 : if (pattern491 (x1,
2037 : E_V4SFmode) != 0)
2038 : return -1;
2039 : return 5;
2040 :
2041 150 : case E_V8DFmode:
2042 150 : if (pattern491 (x1,
2043 : E_V8DFmode) != 0)
2044 : return -1;
2045 : return 6;
2046 :
2047 0 : case E_V4DFmode:
2048 0 : if (pattern491 (x1,
2049 : E_V4DFmode) != 0)
2050 : return -1;
2051 : return 7;
2052 :
2053 0 : case E_V2DFmode:
2054 0 : if (pattern491 (x1,
2055 : E_V2DFmode) != 0)
2056 : return -1;
2057 : return 8;
2058 :
2059 : default:
2060 : return -1;
2061 : }
2062 : }
2063 :
2064 : int
2065 1794 : pattern503 (rtx x1)
2066 : {
2067 1794 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2068 1794 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2069 1794 : rtx x10, x11, x12, x13;
2070 1794 : int res ATTRIBUTE_UNUSED;
2071 1794 : x2 = XEXP (x1, 0);
2072 1794 : x3 = XEXP (x2, 0);
2073 1794 : x4 = XEXP (x3, 0);
2074 1794 : operands[1] = x4;
2075 1794 : x5 = XEXP (x1, 1);
2076 1794 : operands[4] = x5;
2077 1794 : x6 = XEXP (x2, 1);
2078 1794 : switch (GET_CODE (x6))
2079 : {
2080 1290 : case VEC_SELECT:
2081 1290 : x7 = XEXP (x6, 1);
2082 1290 : if (GET_CODE (x7) != PARALLEL)
2083 : return -1;
2084 1290 : x8 = XEXP (x6, 0);
2085 1290 : operands[2] = x8;
2086 1290 : x9 = XEXP (x2, 2);
2087 1290 : operands[3] = x9;
2088 1290 : switch (XVECLEN (x7, 0))
2089 : {
2090 626 : case 4:
2091 626 : x10 = XVECEXP (x7, 0, 0);
2092 626 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2093 : return -1;
2094 626 : x11 = XVECEXP (x7, 0, 1);
2095 626 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
2096 : return -1;
2097 626 : x12 = XVECEXP (x7, 0, 2);
2098 626 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
2099 : return -1;
2100 626 : x13 = XVECEXP (x7, 0, 3);
2101 626 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 3]
2102 626 : || !register_operand (operands[0], E_V8HFmode)
2103 612 : || GET_MODE (x1) != E_V8HFmode
2104 612 : || GET_MODE (x2) != E_V4HFmode
2105 612 : || GET_MODE (x3) != E_V4HFmode
2106 612 : || GET_MODE (x6) != E_V4HFmode
2107 1238 : || !nonimm_or_0_operand (operands[2], E_V8HFmode))
2108 16 : return -1;
2109 610 : return pattern498 (); /* [-1, 1] */
2110 :
2111 664 : case 2:
2112 664 : res = pattern500 (x1,
2113 : E_V2DImode);
2114 664 : if (res >= 0)
2115 646 : return res + 2; /* [2, 3] */
2116 : return -1;
2117 :
2118 : default:
2119 : return -1;
2120 : }
2121 :
2122 504 : case CONST_INT:
2123 504 : case CONST_DOUBLE:
2124 504 : case CONST_VECTOR:
2125 504 : operands[3] = x6;
2126 504 : x9 = XEXP (x2, 2);
2127 504 : operands[2] = x9;
2128 504 : switch (GET_MODE (operands[0]))
2129 : {
2130 378 : case E_V8HFmode:
2131 378 : if (!register_operand (operands[0], E_V8HFmode)
2132 378 : || GET_MODE (x1) != E_V8HFmode)
2133 : return -1;
2134 360 : switch (GET_MODE (x2))
2135 : {
2136 240 : case E_V4HFmode:
2137 240 : if (GET_MODE (x3) != E_V4HFmode
2138 240 : || !const0_operand (operands[3], E_V4HFmode))
2139 0 : return -1;
2140 240 : res = pattern498 ();
2141 240 : if (res >= 0)
2142 240 : return res + 4; /* [4, 5] */
2143 : return -1;
2144 :
2145 120 : case E_V2HFmode:
2146 120 : if (pattern501 (x3,
2147 : E_V2DImode) != 0)
2148 : return -1;
2149 : return 6;
2150 :
2151 : default:
2152 : return -1;
2153 : }
2154 :
2155 126 : case E_V4SFmode:
2156 126 : if (pattern502 (x1,
2157 : E_V2DImode) != 0)
2158 : return -1;
2159 : return 7;
2160 :
2161 : default:
2162 : return -1;
2163 : }
2164 :
2165 : default:
2166 : return -1;
2167 : }
2168 : }
2169 :
2170 : int
2171 26800 : pattern529 (rtx x1)
2172 : {
2173 26800 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2174 26800 : rtx x2, x3, x4, x5;
2175 26800 : int res ATTRIBUTE_UNUSED;
2176 26800 : x2 = XEXP (x1, 0);
2177 26800 : x3 = XEXP (x2, 0);
2178 26800 : operands[2] = x3;
2179 26800 : x4 = XEXP (x2, 1);
2180 26800 : operands[3] = x4;
2181 26800 : x5 = XEXP (x1, 1);
2182 26800 : operands[4] = x5;
2183 26800 : switch (GET_MODE (operands[0]))
2184 : {
2185 86 : case E_V8SFmode:
2186 86 : return pattern528 (x1,
2187 86 : E_V8SFmode); /* [-1, 0] */
2188 :
2189 256 : case E_V4SFmode:
2190 256 : if (pattern528 (x1,
2191 : E_V4SFmode) != 0)
2192 : return -1;
2193 : return 1;
2194 :
2195 30 : case E_V4DFmode:
2196 30 : if (pattern528 (x1,
2197 : E_V4DFmode) != 0)
2198 : return -1;
2199 : return 2;
2200 :
2201 411 : case E_V2DFmode:
2202 411 : if (pattern528 (x1,
2203 : E_V2DFmode) != 0)
2204 : return -1;
2205 : return 3;
2206 :
2207 : default:
2208 : return -1;
2209 : }
2210 : }
2211 :
2212 : int
2213 10637 : pattern536 (rtx x1, machine_mode i1)
2214 : {
2215 10637 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2216 10637 : rtx x2, x3;
2217 10637 : int res ATTRIBUTE_UNUSED;
2218 10637 : if (!register_operand (operands[0], i1)
2219 10637 : || GET_MODE (x1) != i1)
2220 : return -1;
2221 10637 : x2 = XEXP (x1, 0);
2222 10637 : if (GET_MODE (x2) != i1)
2223 : return -1;
2224 10637 : x3 = XEXP (x2, 0);
2225 10637 : if (GET_MODE (x3) != i1
2226 10637 : || !regmem_or_bitnot_regmem_operand (operands[1], i1)
2227 10325 : || !regmem_or_bitnot_regmem_operand (operands[2], i1)
2228 10317 : || !regmem_or_bitnot_regmem_operand (operands[3], i1)
2229 20946 : || !regmem_or_bitnot_regmem_operand (operands[4], i1))
2230 336 : return -1;
2231 : return 0;
2232 : }
2233 :
2234 : int
2235 125588 : pattern542 (rtx x1)
2236 : {
2237 125588 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2238 125588 : rtx x2, x3, x4, x5, x6, x7;
2239 125588 : int res ATTRIBUTE_UNUSED;
2240 125588 : x2 = XEXP (x1, 0);
2241 125588 : x3 = XEXP (x2, 0);
2242 125588 : x4 = XEXP (x3, 0);
2243 125588 : operands[1] = x4;
2244 125588 : x5 = XEXP (x3, 1);
2245 125588 : operands[2] = x5;
2246 125588 : x6 = XEXP (x2, 1);
2247 125588 : operands[3] = x6;
2248 125588 : x7 = XEXP (x1, 1);
2249 125588 : operands[4] = x7;
2250 125588 : switch (GET_MODE (operands[0]))
2251 : {
2252 0 : case E_V32HFmode:
2253 0 : return pattern536 (x1,
2254 0 : E_V32HFmode); /* [-1, 0] */
2255 :
2256 0 : case E_V16HFmode:
2257 0 : if (pattern536 (x1,
2258 : E_V16HFmode) != 0)
2259 : return -1;
2260 : return 1;
2261 :
2262 0 : case E_V8HFmode:
2263 0 : if (pattern536 (x1,
2264 : E_V8HFmode) != 0)
2265 : return -1;
2266 : return 2;
2267 :
2268 0 : case E_V32BFmode:
2269 0 : if (pattern536 (x1,
2270 : E_V32BFmode) != 0)
2271 : return -1;
2272 : return 3;
2273 :
2274 0 : case E_V16BFmode:
2275 0 : if (pattern536 (x1,
2276 : E_V16BFmode) != 0)
2277 : return -1;
2278 : return 4;
2279 :
2280 0 : case E_V8BFmode:
2281 0 : if (pattern536 (x1,
2282 : E_V8BFmode) != 0)
2283 : return -1;
2284 : return 5;
2285 :
2286 0 : case E_V16SFmode:
2287 0 : if (pattern536 (x1,
2288 : E_V16SFmode) != 0)
2289 : return -1;
2290 : return 6;
2291 :
2292 0 : case E_V8SFmode:
2293 0 : if (pattern536 (x1,
2294 : E_V8SFmode) != 0)
2295 : return -1;
2296 : return 7;
2297 :
2298 18 : case E_V4SFmode:
2299 18 : if (pattern536 (x1,
2300 : E_V4SFmode) != 0)
2301 : return -1;
2302 : return 8;
2303 :
2304 0 : case E_V8DFmode:
2305 0 : if (pattern536 (x1,
2306 : E_V8DFmode) != 0)
2307 : return -1;
2308 : return 9;
2309 :
2310 0 : case E_V4DFmode:
2311 0 : if (pattern536 (x1,
2312 : E_V4DFmode) != 0)
2313 : return -1;
2314 : return 10;
2315 :
2316 0 : case E_V2DFmode:
2317 0 : if (pattern536 (x1,
2318 : E_V2DFmode) != 0)
2319 : return -1;
2320 : return 11;
2321 :
2322 : default:
2323 : return -1;
2324 : }
2325 : }
2326 :
2327 : int
2328 85 : pattern550 (rtx x1, int i1)
2329 : {
2330 85 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2331 85 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2332 85 : int res ATTRIBUTE_UNUSED;
2333 85 : x2 = XVECEXP (x1, 0, 0);
2334 85 : x3 = XEXP (x2, 1);
2335 85 : if (GET_MODE (x3) != E_XFmode)
2336 : return -1;
2337 85 : x4 = XVECEXP (x1, 0, 1);
2338 85 : if (GET_CODE (x4) != SET)
2339 : return -1;
2340 85 : x5 = XEXP (x4, 1);
2341 85 : if (GET_CODE (x5) != UNSPEC
2342 85 : || XVECLEN (x5, 0) != 1
2343 85 : || XINT (x5, 1) != i1
2344 85 : || GET_MODE (x5) != E_XFmode)
2345 : return -1;
2346 85 : x6 = XEXP (x2, 0);
2347 85 : operands[0] = x6;
2348 85 : if (!register_operand (operands[0], E_XFmode))
2349 : return -1;
2350 85 : x7 = XVECEXP (x3, 0, 0);
2351 85 : operands[2] = x7;
2352 85 : if (!register_operand (operands[2], E_XFmode))
2353 : return -1;
2354 49 : x8 = XEXP (x4, 0);
2355 49 : operands[1] = x8;
2356 49 : if (!register_operand (operands[1], E_XFmode))
2357 : return -1;
2358 49 : x9 = XVECEXP (x5, 0, 0);
2359 49 : if (!rtx_equal_p (x9, operands[2]))
2360 : return -1;
2361 : return 0;
2362 : }
2363 :
2364 : int
2365 6886 : pattern559 (rtx x1)
2366 : {
2367 6886 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2368 6886 : rtx x2, x3, x4;
2369 6886 : int res ATTRIBUTE_UNUSED;
2370 6886 : x2 = XEXP (x1, 0);
2371 6886 : x3 = XEXP (x2, 0);
2372 6886 : operands[0] = x3;
2373 6886 : switch (GET_MODE (operands[0]))
2374 : {
2375 6242 : case E_QImode:
2376 6242 : x4 = XEXP (x1, 1);
2377 6242 : return pattern558 (x4,
2378 6242 : E_QImode); /* [-1, 0] */
2379 :
2380 644 : case E_HImode:
2381 644 : x4 = XEXP (x1, 1);
2382 644 : if (pattern558 (x4,
2383 : E_HImode) != 0)
2384 : return -1;
2385 : return 1;
2386 :
2387 : default:
2388 : return -1;
2389 : }
2390 : }
2391 :
2392 : int
2393 307553 : pattern564 (rtx x1, machine_mode i1, machine_mode i2)
2394 : {
2395 307553 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2396 307553 : int res ATTRIBUTE_UNUSED;
2397 307553 : if (!register_operand (operands[0], i2)
2398 307492 : || GET_MODE (x1) != i2
2399 615045 : || pattern563 (x1,
2400 : i1,
2401 : i2) != 0)
2402 15215 : return -1;
2403 : return 0;
2404 : }
2405 :
2406 : int
2407 26850965 : pattern568 (rtx x1)
2408 : {
2409 26850965 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2410 26850965 : int res ATTRIBUTE_UNUSED;
2411 26850965 : if (!nonimmediate_operand (operands[0], E_SImode)
2412 26823299 : || GET_MODE (x1) != E_SImode
2413 26823299 : || !nonimmediate_operand (operands[1], E_SImode)
2414 53346870 : || !x86_64_general_operand (operands[2], E_SImode))
2415 388104 : return -1;
2416 : return 0;
2417 : }
2418 :
2419 : int
2420 800576 : pattern573 (rtx x1)
2421 : {
2422 800576 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2423 800576 : rtx x2, x3, x4, x5;
2424 800576 : int res ATTRIBUTE_UNUSED;
2425 800576 : x2 = XVECEXP (x1, 0, 1);
2426 800576 : x3 = XEXP (x2, 0);
2427 800576 : if (GET_CODE (x3) != REG
2428 800576 : || REGNO (x3) != 17
2429 1601152 : || GET_MODE (x3) != E_CCmode)
2430 : return -1;
2431 800576 : x4 = XVECEXP (x1, 0, 0);
2432 800576 : x5 = XEXP (x4, 1);
2433 800576 : if (GET_MODE (x5) != E_QImode)
2434 180085 : return -1;
2435 : return 0;
2436 : }
2437 :
2438 : int
2439 343 : pattern577 (rtx x1)
2440 : {
2441 343 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2442 343 : int res ATTRIBUTE_UNUSED;
2443 343 : if (GET_MODE (x1) != E_BLKmode
2444 343 : || !memory_operand (operands[0], E_BLKmode)
2445 343 : || !register_operand (operands[1], E_SImode)
2446 666 : || !register_operand (operands[2], E_SImode))
2447 141 : return -1;
2448 : return 0;
2449 : }
2450 :
2451 : int
2452 100 : pattern582 (rtx x1)
2453 : {
2454 100 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2455 100 : rtx x2, x3, x4, x5;
2456 100 : int res ATTRIBUTE_UNUSED;
2457 100 : x2 = XEXP (x1, 1);
2458 100 : x3 = XEXP (x2, 0);
2459 100 : x4 = XEXP (x3, 0);
2460 100 : operands[2] = x4;
2461 100 : if (!int248_register_operand (operands[2], E_VOIDmode))
2462 : return -1;
2463 100 : x5 = XEXP (x3, 1);
2464 100 : operands[3] = x5;
2465 100 : if (!const_int_operand (operands[3], E_VOIDmode))
2466 : return -1;
2467 100 : return pattern581 (x1); /* [-1, 3] */
2468 : }
2469 :
2470 : int
2471 836 : pattern589 (rtx x1)
2472 : {
2473 836 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2474 836 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2475 836 : int res ATTRIBUTE_UNUSED;
2476 836 : x2 = XVECEXP (x1, 0, 0);
2477 836 : x3 = XEXP (x2, 1);
2478 836 : x4 = XEXP (x3, 0);
2479 836 : x5 = XEXP (x4, 0);
2480 836 : x6 = XEXP (x5, 0);
2481 836 : x7 = XEXP (x6, 0);
2482 836 : operands[1] = x7;
2483 836 : if (!int248_register_operand (operands[1], E_VOIDmode))
2484 : return -1;
2485 836 : x8 = XEXP (x4, 1);
2486 836 : operands[2] = x8;
2487 836 : if (!general_operand (operands[2], E_QImode))
2488 : return -1;
2489 836 : x9 = XVECEXP (x1, 0, 1);
2490 836 : return pattern588 (x9); /* [-1, 2] */
2491 : }
2492 :
2493 : int
2494 49 : pattern593 (rtx x1)
2495 : {
2496 49 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2497 49 : rtx x2, x3;
2498 49 : int res ATTRIBUTE_UNUSED;
2499 49 : x2 = XVECEXP (x1, 0, 1);
2500 49 : if (GET_CODE (x2) != CLOBBER)
2501 : return -1;
2502 49 : x3 = XEXP (x2, 0);
2503 49 : if (GET_CODE (x3) != REG
2504 49 : || REGNO (x3) != 17
2505 98 : || GET_MODE (x3) != E_CCmode)
2506 : return -1;
2507 49 : return pattern228 (x1); /* [-1, 1] */
2508 : }
2509 :
2510 : int
2511 15409 : pattern598 (rtx x1)
2512 : {
2513 15409 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2514 15409 : int res ATTRIBUTE_UNUSED;
2515 15409 : if (!register_operand (operands[0], E_HImode)
2516 15409 : || GET_MODE (x1) != E_HImode)
2517 : return -1;
2518 15357 : switch (GET_MODE (operands[1]))
2519 : {
2520 1470 : case E_V16QImode:
2521 1470 : if (!general_operand (operands[1], E_V16QImode)
2522 1470 : || !general_operand (operands[2], E_V16QImode))
2523 29 : return -1;
2524 : return 0;
2525 :
2526 2741 : case E_V16HImode:
2527 2741 : if (!general_operand (operands[1], E_V16HImode)
2528 2741 : || !general_operand (operands[2], E_V16HImode))
2529 25 : return -1;
2530 : return 1;
2531 :
2532 10273 : case E_V16SImode:
2533 10273 : if (!general_operand (operands[1], E_V16SImode)
2534 10273 : || !general_operand (operands[2], E_V16SImode))
2535 110 : return -1;
2536 : return 2;
2537 :
2538 : default:
2539 : return -1;
2540 : }
2541 : }
2542 :
2543 : int
2544 14894917 : pattern606 (rtx x1, machine_mode i1)
2545 : {
2546 14894917 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2547 14894917 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2548 14894917 : rtx x10, x11, x12, x13, x14, x15;
2549 14894917 : int res ATTRIBUTE_UNUSED;
2550 14894917 : x2 = XEXP (x1, 0);
2551 14894917 : operands[5] = x2;
2552 14894917 : if (!memory_operand (operands[5], i1))
2553 : return -1;
2554 3678307 : x3 = XEXP (x1, 1);
2555 3678307 : operands[0] = x3;
2556 3678307 : if (!general_reg_operand (operands[0], i1))
2557 : return -1;
2558 2404403 : x4 = PATTERN (peep2_next_insn (1));
2559 2404403 : if (GET_CODE (x4) != SET)
2560 : return -1;
2561 2215735 : x5 = XEXP (x4, 1);
2562 2215735 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2563 : return -1;
2564 99965 : x6 = XEXP (x4, 0);
2565 99965 : operands[1] = x6;
2566 99965 : if (!memory_operand (operands[1], i1))
2567 : return -1;
2568 44311 : x7 = PATTERN (peep2_next_insn (2));
2569 44311 : if (GET_CODE (x7) != SET)
2570 : return -1;
2571 42346 : x8 = XEXP (x7, 1);
2572 42346 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2573 : return -1;
2574 18571 : x9 = XEXP (x7, 0);
2575 18571 : operands[2] = x9;
2576 18571 : if (!memory_operand (operands[2], i1))
2577 : return -1;
2578 15468 : x10 = PATTERN (peep2_next_insn (3));
2579 15468 : if (GET_CODE (x10) != SET)
2580 : return -1;
2581 14607 : x11 = XEXP (x10, 1);
2582 14607 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2583 : return -1;
2584 7381 : x12 = XEXP (x10, 0);
2585 7381 : operands[3] = x12;
2586 7381 : if (!memory_operand (operands[3], i1))
2587 : return -1;
2588 6905 : x13 = PATTERN (peep2_next_insn (4));
2589 6905 : if (GET_CODE (x13) != SET)
2590 : return -1;
2591 6691 : x14 = XEXP (x13, 1);
2592 6691 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2593 : return -1;
2594 2275 : x15 = XEXP (x13, 0);
2595 2275 : operands[4] = x15;
2596 2275 : if (!memory_operand (operands[4], i1))
2597 : return -1;
2598 : return 0;
2599 : }
2600 :
2601 : int
2602 12114 : pattern620 (rtx x1)
2603 : {
2604 12114 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2605 12114 : rtx x2, x3, x4, x5;
2606 12114 : int res ATTRIBUTE_UNUSED;
2607 12114 : x2 = XEXP (x1, 0);
2608 12114 : x3 = XEXP (x2, 1);
2609 12114 : x4 = XVECEXP (x3, 0, 0);
2610 12114 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2611 : return -1;
2612 12112 : x5 = XVECEXP (x3, 0, 1);
2613 12112 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
2614 : return -1;
2615 11963 : switch (GET_MODE (operands[0]))
2616 : {
2617 3659 : case E_V2SImode:
2618 3659 : if (!register_operand (operands[0], E_V2SImode)
2619 3659 : || GET_MODE (x1) != E_V2SImode)
2620 : return -1;
2621 3583 : switch (GET_MODE (x2))
2622 : {
2623 3190 : case E_V2HImode:
2624 3190 : if (!register_operand (operands[1], E_V4HImode))
2625 : return -1;
2626 : return 0;
2627 :
2628 393 : case E_V2QImode:
2629 393 : if (!register_operand (operands[1], E_V4QImode))
2630 : return -1;
2631 : return 1;
2632 :
2633 : default:
2634 : return -1;
2635 : }
2636 :
2637 162 : case E_V2HImode:
2638 162 : if (pattern618 (x1,
2639 : E_V4QImode,
2640 : E_V2QImode,
2641 : E_V2HImode) != 0)
2642 : return -1;
2643 : return 2;
2644 :
2645 : default:
2646 : return -1;
2647 : }
2648 : }
2649 :
2650 : int
2651 7118 : pattern638 (rtx x1, machine_mode i1, machine_mode i2)
2652 : {
2653 7118 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2654 7118 : rtx x2;
2655 7118 : int res ATTRIBUTE_UNUSED;
2656 7118 : if (!register_operand (operands[0], i1)
2657 7118 : || GET_MODE (x1) != i1)
2658 : return -1;
2659 6791 : x2 = XEXP (x1, 0);
2660 6791 : if (GET_MODE (x2) != i1
2661 6791 : || !nonimmediate_operand (operands[1], i1)
2662 6767 : || !nonimm_or_0_operand (operands[2], i1)
2663 13453 : || !register_operand (operands[3], i2))
2664 217 : return -1;
2665 : return 0;
2666 : }
2667 :
2668 : int
2669 6092 : pattern645 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
2670 : {
2671 6092 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2672 6092 : rtx x2, x3, x4;
2673 6092 : int res ATTRIBUTE_UNUSED;
2674 6092 : x2 = XEXP (x1, 0);
2675 6092 : x3 = XVECEXP (x2, 0, 0);
2676 6092 : operands[1] = x3;
2677 6092 : x4 = XEXP (x1, 2);
2678 6092 : operands[3] = x4;
2679 6092 : switch (GET_MODE (operands[0]))
2680 : {
2681 2052 : case E_V32HImode:
2682 2052 : return pattern644 (x1,
2683 : E_V32HImode,
2684 : E_SImode,
2685 2052 : i1); /* [-1, 0] */
2686 :
2687 2040 : case E_V16HImode:
2688 2040 : if (pattern644 (x1,
2689 : E_V16HImode,
2690 : E_HImode,
2691 : i2) != 0)
2692 : return -1;
2693 : return 1;
2694 :
2695 2000 : case E_V8HImode:
2696 2000 : if (pattern644 (x1,
2697 : E_V8HImode,
2698 : E_QImode,
2699 : i3) != 0)
2700 : return -1;
2701 : return 2;
2702 :
2703 : default:
2704 : return -1;
2705 : }
2706 : }
2707 :
2708 : int
2709 2361 : pattern651 (rtx x1)
2710 : {
2711 2361 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2712 2361 : rtx x2, x3, x4, x5;
2713 2361 : int res ATTRIBUTE_UNUSED;
2714 2361 : x2 = XVECEXP (x1, 0, 0);
2715 2361 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2716 : return -1;
2717 2361 : x3 = XVECEXP (x1, 0, 1);
2718 2361 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
2719 : return -1;
2720 2361 : x4 = XVECEXP (x1, 0, 2);
2721 2361 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
2722 : return -1;
2723 2361 : x5 = XVECEXP (x1, 0, 3);
2724 2361 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
2725 0 : return -1;
2726 : return 0;
2727 : }
2728 :
2729 : int
2730 396 : pattern655 (rtx x1)
2731 : {
2732 396 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2733 396 : int res ATTRIBUTE_UNUSED;
2734 396 : if (!register_operand (operands[0], E_V4DImode)
2735 396 : || GET_MODE (x1) != E_V4DImode)
2736 : return -1;
2737 358 : switch (GET_MODE (operands[1]))
2738 : {
2739 118 : case E_V8HFmode:
2740 118 : if (!register_operand (operands[1], E_V8HFmode))
2741 : return -1;
2742 : return 0;
2743 :
2744 120 : case E_V4DFmode:
2745 120 : if (!vector_operand (operands[1], E_V4DFmode))
2746 : return -1;
2747 : return 1;
2748 :
2749 120 : case E_V4SFmode:
2750 120 : if (!vector_operand (operands[1], E_V4SFmode))
2751 : return -1;
2752 : return 2;
2753 :
2754 : default:
2755 : return -1;
2756 : }
2757 : }
2758 :
2759 : int
2760 0 : pattern662 (rtx x1)
2761 : {
2762 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2763 0 : rtx x2, x3, x4, x5, x6, x7;
2764 0 : int res ATTRIBUTE_UNUSED;
2765 0 : x2 = XVECEXP (x1, 0, 0);
2766 0 : x3 = XEXP (x2, 0);
2767 0 : x4 = XEXP (x3, 0);
2768 0 : operands[1] = x4;
2769 0 : x5 = XEXP (x3, 1);
2770 0 : operands[2] = x5;
2771 0 : x6 = XVECEXP (x1, 0, 1);
2772 0 : if (!const48_operand (x6, E_SImode))
2773 : return -1;
2774 0 : x7 = XEXP (x2, 2);
2775 0 : switch (GET_CODE (x7))
2776 : {
2777 0 : case REG:
2778 0 : case SUBREG:
2779 0 : return pattern661 (x1); /* [-1, 2] */
2780 :
2781 0 : case CONST_INT:
2782 0 : res = pattern659 (x1);
2783 0 : if (res >= 0)
2784 0 : return res + 3; /* [3, 5] */
2785 : return -1;
2786 :
2787 : default:
2788 : return -1;
2789 : }
2790 : }
2791 :
2792 : int
2793 419 : pattern671 (rtx x1, machine_mode i1, machine_mode i2)
2794 : {
2795 419 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2796 419 : rtx x2;
2797 419 : int res ATTRIBUTE_UNUSED;
2798 419 : if (!register_operand (operands[0], i2)
2799 410 : || GET_MODE (x1) != i2
2800 410 : || !vector_operand (operands[1], i2)
2801 570 : || !register_operand (operands[2], i2))
2802 353 : return -1;
2803 66 : x2 = XVECEXP (x1, 0, 2);
2804 66 : if (GET_MODE (x2) != i2
2805 66 : || !register_operand (operands[3], i1)
2806 132 : || !vector_all_ones_operand (operands[4], i1))
2807 66 : return -1;
2808 : return 0;
2809 : }
2810 :
2811 : int
2812 44 : pattern675 (rtx x1)
2813 : {
2814 44 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2815 44 : rtx x2, x3, x4, x5, x6, x7, x8;
2816 44 : int res ATTRIBUTE_UNUSED;
2817 44 : x2 = XVECEXP (x1, 0, 2);
2818 44 : x3 = XEXP (x2, 0);
2819 44 : if (maybe_ne (SUBREG_BYTE (x3), 0))
2820 : return -1;
2821 44 : x4 = XEXP (x3, 0);
2822 44 : if (GET_CODE (x4) != NOT)
2823 : return -1;
2824 0 : x5 = XVECEXP (x1, 0, 0);
2825 0 : operands[2] = x5;
2826 0 : x6 = XVECEXP (x1, 0, 1);
2827 0 : operands[1] = x6;
2828 0 : x7 = XEXP (x4, 0);
2829 0 : operands[3] = x7;
2830 0 : if (!register_operand (operands[3], E_VOIDmode))
2831 : return -1;
2832 0 : x8 = XEXP (x2, 1);
2833 0 : operands[4] = x8;
2834 0 : switch (GET_MODE (operands[0]))
2835 : {
2836 0 : case E_V32QImode:
2837 0 : return pattern674 (x1,
2838 0 : E_V32QImode); /* [-1, 0] */
2839 :
2840 0 : case E_V16QImode:
2841 0 : if (pattern674 (x1,
2842 : E_V16QImode) != 0)
2843 : return -1;
2844 : return 1;
2845 :
2846 : default:
2847 : return -1;
2848 : }
2849 : }
2850 :
2851 : int
2852 222 : pattern684 (rtx x1, machine_mode i1)
2853 : {
2854 222 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2855 222 : int res ATTRIBUTE_UNUSED;
2856 222 : if (!register_operand (operands[0], i1)
2857 222 : || GET_MODE (x1) != i1)
2858 : return -1;
2859 216 : switch (GET_MODE (operands[1]))
2860 : {
2861 110 : case E_BFmode:
2862 110 : if (!memory_operand (operands[1], E_BFmode))
2863 : return -1;
2864 : return 0;
2865 :
2866 106 : case E_HFmode:
2867 106 : if (!memory_operand (operands[1], E_HFmode))
2868 : return -1;
2869 : return 1;
2870 :
2871 : default:
2872 : return -1;
2873 : }
2874 : }
2875 :
2876 : int
2877 83 : pattern689 (rtx x1)
2878 : {
2879 83 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2880 83 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2881 83 : rtx x10, x11, x12, x13, x14, x15;
2882 83 : int res ATTRIBUTE_UNUSED;
2883 83 : x2 = XEXP (x1, 0);
2884 83 : x3 = XEXP (x2, 0);
2885 83 : x4 = XEXP (x3, 0);
2886 83 : if (GET_MODE (x4) != E_V2DImode)
2887 : return -1;
2888 67 : x5 = XEXP (x4, 1);
2889 67 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2890 : return -1;
2891 53 : x6 = XEXP (x4, 0);
2892 53 : operands[1] = x6;
2893 53 : if (!memory_operand (operands[1], E_DImode))
2894 : return -1;
2895 33 : x7 = XEXP (x2, 1);
2896 33 : switch (XVECLEN (x7, 0))
2897 : {
2898 12 : case 8:
2899 12 : x8 = XVECEXP (x7, 0, 0);
2900 12 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2901 : return -1;
2902 12 : x9 = XVECEXP (x7, 0, 1);
2903 12 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
2904 : return -1;
2905 12 : x10 = XVECEXP (x7, 0, 2);
2906 12 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
2907 : return -1;
2908 12 : x11 = XVECEXP (x7, 0, 3);
2909 12 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
2910 : return -1;
2911 12 : x12 = XVECEXP (x7, 0, 4);
2912 12 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
2913 : return -1;
2914 12 : x13 = XVECEXP (x7, 0, 5);
2915 12 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
2916 : return -1;
2917 12 : x14 = XVECEXP (x7, 0, 6);
2918 12 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
2919 : return -1;
2920 12 : x15 = XVECEXP (x7, 0, 7);
2921 12 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
2922 12 : || GET_MODE (x2) != E_V8QImode
2923 12 : || GET_MODE (x3) != E_V16QImode)
2924 : return -1;
2925 12 : return pattern543 (x1); /* [-1, 2] */
2926 :
2927 15 : case 4:
2928 15 : res = pattern687 (x1,
2929 : E_V8HImode,
2930 : E_V4HImode);
2931 15 : if (res >= 0)
2932 11 : return res + 3; /* [3, 4] */
2933 : return -1;
2934 :
2935 6 : case 2:
2936 6 : if (pattern688 (x1,
2937 : E_V2SImode,
2938 : E_V4SImode) != 0)
2939 : return -1;
2940 : return 5;
2941 :
2942 : default:
2943 : return -1;
2944 : }
2945 : }
2946 :
2947 : int
2948 126839 : pattern709 (rtx x1, int *pnum_clobbers)
2949 : {
2950 126839 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2951 126839 : rtx x2, x3, x4, x5;
2952 126839 : int res ATTRIBUTE_UNUSED;
2953 126839 : x2 = XVECEXP (x1, 0, 1);
2954 126839 : x3 = XEXP (x2, 0);
2955 126839 : operands[2] = x3;
2956 126839 : switch (GET_MODE (operands[0]))
2957 : {
2958 28435 : case E_TFmode:
2959 28435 : x4 = XVECEXP (x1, 0, 0);
2960 28435 : x5 = XEXP (x4, 1);
2961 28435 : return pattern706 (x5,
2962 28435 : E_TFmode); /* [-1, 0] */
2963 :
2964 511 : case E_HFmode:
2965 511 : if (pnum_clobbers == NULL)
2966 : return -1;
2967 71 : x4 = XVECEXP (x1, 0, 0);
2968 71 : x5 = XEXP (x4, 1);
2969 71 : if (pattern226 (x5,
2970 : E_V8HFmode,
2971 : E_HFmode) != 0)
2972 : return -1;
2973 : return 1;
2974 :
2975 35877 : case E_SFmode:
2976 35877 : if (pnum_clobbers == NULL)
2977 : return -1;
2978 16703 : x4 = XVECEXP (x1, 0, 0);
2979 16703 : x5 = XEXP (x4, 1);
2980 16703 : if (pattern226 (x5,
2981 : E_V4SFmode,
2982 : E_SFmode) != 0)
2983 : return -1;
2984 : return 2;
2985 :
2986 41295 : case E_DFmode:
2987 41295 : if (pnum_clobbers == NULL)
2988 : return -1;
2989 18658 : x4 = XVECEXP (x1, 0, 0);
2990 18658 : x5 = XEXP (x4, 1);
2991 18658 : if (pattern226 (x5,
2992 : E_V2DFmode,
2993 : E_DFmode) != 0)
2994 : return -1;
2995 : return 3;
2996 :
2997 615 : case E_V2SFmode:
2998 615 : x4 = XVECEXP (x1, 0, 0);
2999 615 : x5 = XEXP (x4, 1);
3000 615 : if (pattern707 (x5) != 0)
3001 : return -1;
3002 : return 4;
3003 :
3004 44 : case E_V2BFmode:
3005 44 : x4 = XVECEXP (x1, 0, 0);
3006 44 : x5 = XEXP (x4, 1);
3007 44 : if (pattern708 (x5,
3008 : E_V2BFmode) != 0)
3009 : return -1;
3010 : return 5;
3011 :
3012 44 : case E_V4BFmode:
3013 44 : x4 = XVECEXP (x1, 0, 0);
3014 44 : x5 = XEXP (x4, 1);
3015 44 : if (pattern708 (x5,
3016 : E_V4BFmode) != 0)
3017 : return -1;
3018 : return 6;
3019 :
3020 44 : case E_V2HFmode:
3021 44 : x4 = XVECEXP (x1, 0, 0);
3022 44 : x5 = XEXP (x4, 1);
3023 44 : if (pattern708 (x5,
3024 : E_V2HFmode) != 0)
3025 : return -1;
3026 : return 7;
3027 :
3028 45 : case E_V4HFmode:
3029 45 : x4 = XVECEXP (x1, 0, 0);
3030 45 : x5 = XEXP (x4, 1);
3031 45 : if (pattern708 (x5,
3032 : E_V4HFmode) != 0)
3033 : return -1;
3034 : return 8;
3035 :
3036 30 : case E_V32BFmode:
3037 30 : x4 = XVECEXP (x1, 0, 0);
3038 30 : x5 = XEXP (x4, 1);
3039 30 : if (pattern706 (x5,
3040 : E_V32BFmode) != 0)
3041 : return -1;
3042 : return 9;
3043 :
3044 30 : case E_V16BFmode:
3045 30 : x4 = XVECEXP (x1, 0, 0);
3046 30 : x5 = XEXP (x4, 1);
3047 30 : if (pattern706 (x5,
3048 : E_V16BFmode) != 0)
3049 : return -1;
3050 : return 10;
3051 :
3052 30 : case E_V8BFmode:
3053 30 : x4 = XVECEXP (x1, 0, 0);
3054 30 : x5 = XEXP (x4, 1);
3055 30 : if (pattern706 (x5,
3056 : E_V8BFmode) != 0)
3057 : return -1;
3058 : return 11;
3059 :
3060 112 : case E_V32HFmode:
3061 112 : x4 = XVECEXP (x1, 0, 0);
3062 112 : x5 = XEXP (x4, 1);
3063 112 : if (pattern706 (x5,
3064 : E_V32HFmode) != 0)
3065 : return -1;
3066 : return 12;
3067 :
3068 74 : case E_V16HFmode:
3069 74 : x4 = XVECEXP (x1, 0, 0);
3070 74 : x5 = XEXP (x4, 1);
3071 74 : if (pattern706 (x5,
3072 : E_V16HFmode) != 0)
3073 : return -1;
3074 : return 13;
3075 :
3076 1507 : case E_V8HFmode:
3077 1507 : x4 = XVECEXP (x1, 0, 0);
3078 1507 : x5 = XEXP (x4, 1);
3079 1507 : if (pattern706 (x5,
3080 : E_V8HFmode) != 0)
3081 : return -1;
3082 : return 14;
3083 :
3084 541 : case E_V16SFmode:
3085 541 : x4 = XVECEXP (x1, 0, 0);
3086 541 : x5 = XEXP (x4, 1);
3087 541 : if (pattern706 (x5,
3088 : E_V16SFmode) != 0)
3089 : return -1;
3090 : return 15;
3091 :
3092 3150 : case E_V8SFmode:
3093 3150 : x4 = XVECEXP (x1, 0, 0);
3094 3150 : x5 = XEXP (x4, 1);
3095 3150 : if (pattern706 (x5,
3096 : E_V8SFmode) != 0)
3097 : return -1;
3098 : return 16;
3099 :
3100 4084 : case E_V4SFmode:
3101 4084 : x4 = XVECEXP (x1, 0, 0);
3102 4084 : x5 = XEXP (x4, 1);
3103 4084 : if (pattern706 (x5,
3104 : E_V4SFmode) != 0)
3105 : return -1;
3106 : return 17;
3107 :
3108 415 : case E_V8DFmode:
3109 415 : x4 = XVECEXP (x1, 0, 0);
3110 415 : x5 = XEXP (x4, 1);
3111 415 : if (pattern706 (x5,
3112 : E_V8DFmode) != 0)
3113 : return -1;
3114 : return 18;
3115 :
3116 6184 : case E_V4DFmode:
3117 6184 : x4 = XVECEXP (x1, 0, 0);
3118 6184 : x5 = XEXP (x4, 1);
3119 6184 : if (pattern706 (x5,
3120 : E_V4DFmode) != 0)
3121 : return -1;
3122 : return 19;
3123 :
3124 3772 : case E_V2DFmode:
3125 3772 : x4 = XVECEXP (x1, 0, 0);
3126 3772 : x5 = XEXP (x4, 1);
3127 3772 : if (pattern706 (x5,
3128 : E_V2DFmode) != 0)
3129 : return -1;
3130 : return 20;
3131 :
3132 : default:
3133 : return -1;
3134 : }
3135 : }
3136 :
3137 : int
3138 5770 : pattern759 (rtx x1)
3139 : {
3140 5770 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3141 5770 : rtx x2;
3142 5770 : int res ATTRIBUTE_UNUSED;
3143 5770 : x2 = XEXP (x1, 1);
3144 5770 : operands[1] = x2;
3145 5770 : switch (GET_MODE (operands[0]))
3146 : {
3147 448 : case E_SImode:
3148 448 : return pattern758 (x1,
3149 448 : E_SImode); /* [-1, 0] */
3150 :
3151 5085 : case E_DImode:
3152 5085 : if (pattern758 (x1,
3153 : E_DImode) != 0)
3154 : return -1;
3155 : return 1;
3156 :
3157 : default:
3158 : return -1;
3159 : }
3160 : }
3161 :
3162 : int
3163 826 : pattern768 (rtx x1)
3164 : {
3165 826 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3166 826 : rtx x2, x3, x4, x5, x6;
3167 826 : int res ATTRIBUTE_UNUSED;
3168 826 : x2 = XEXP (x1, 0);
3169 826 : x3 = XEXP (x2, 1);
3170 826 : if (maybe_ne (SUBREG_BYTE (x3), 0)
3171 826 : || GET_MODE (x3) != E_QImode)
3172 : return -1;
3173 826 : x4 = XEXP (x3, 0);
3174 826 : if (GET_CODE (x4) != AND)
3175 : return -1;
3176 167 : x5 = XEXP (x4, 0);
3177 167 : operands[1] = x5;
3178 167 : if (!int248_register_operand (operands[1], E_VOIDmode))
3179 : return -1;
3180 160 : x6 = XEXP (x4, 1);
3181 160 : operands[2] = x6;
3182 160 : if (!const_int_operand (operands[2], E_VOIDmode))
3183 : return -1;
3184 160 : return pattern285 (x1); /* [-1, 1] */
3185 : }
3186 :
3187 : int
3188 71 : pattern777 (rtx x1)
3189 : {
3190 71 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3191 71 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
3192 71 : int res ATTRIBUTE_UNUSED;
3193 71 : x2 = XEXP (x1, 0);
3194 71 : x3 = XEXP (x2, 0);
3195 71 : x4 = XVECEXP (x3, 0, 0);
3196 71 : if (GET_CODE (x4) != VEC_SELECT)
3197 : return -1;
3198 51 : x5 = XEXP (x4, 1);
3199 51 : if (GET_CODE (x5) != PARALLEL
3200 51 : || XVECLEN (x5, 0) != 1)
3201 : return -1;
3202 51 : x6 = XVECEXP (x5, 0, 0);
3203 51 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3204 : return -1;
3205 51 : x7 = XEXP (x4, 0);
3206 51 : operands[1] = x7;
3207 51 : x8 = XVECEXP (x3, 0, 1);
3208 51 : operands[2] = x8;
3209 51 : x9 = XEXP (x1, 1);
3210 51 : if (!rtx_equal_p (x9, operands[1]))
3211 : return -1;
3212 51 : switch (GET_MODE (operands[0]))
3213 : {
3214 49 : case E_V8HFmode:
3215 49 : return pattern776 (x1,
3216 : E_HFmode,
3217 49 : E_V8HFmode); /* [-1, 0] */
3218 :
3219 0 : case E_V4SFmode:
3220 0 : if (pattern776 (x1,
3221 : E_SFmode,
3222 : E_V4SFmode) != 0)
3223 : return -1;
3224 : return 1;
3225 :
3226 2 : case E_V2DFmode:
3227 2 : if (pattern776 (x1,
3228 : E_DFmode,
3229 : E_V2DFmode) != 0)
3230 : return -1;
3231 : return 2;
3232 :
3233 : default:
3234 : return -1;
3235 : }
3236 : }
3237 :
3238 : int
3239 1447 : pattern789 (rtx x1, machine_mode i1, machine_mode i2)
3240 : {
3241 1447 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3242 1447 : int res ATTRIBUTE_UNUSED;
3243 1447 : if (!register_operand (operands[0], i2)
3244 1423 : || GET_MODE (x1) != i2
3245 1423 : || !register_operand (operands[1], i2)
3246 2747 : || !nonimmediate_operand (operands[2], i1))
3247 158 : return -1;
3248 : return 0;
3249 : }
3250 :
3251 : int
3252 277 : pattern798 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
3253 : {
3254 277 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3255 277 : rtx x2;
3256 277 : int res ATTRIBUTE_UNUSED;
3257 277 : if (!register_operand (operands[0], i3)
3258 276 : || GET_MODE (x1) != i3
3259 553 : || !nonimmediate_operand (operands[1], i2))
3260 43 : return -1;
3261 234 : x2 = XEXP (x1, 1);
3262 234 : operands[2] = x2;
3263 234 : if (!const0_operand (operands[2], i1))
3264 : return -1;
3265 : return 0;
3266 : }
3267 :
3268 : int
3269 536 : pattern806 (rtx x1, machine_mode i1, machine_mode i2)
3270 : {
3271 536 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3272 536 : rtx x2;
3273 536 : int res ATTRIBUTE_UNUSED;
3274 536 : if (!register_operand (operands[0], i1)
3275 536 : || GET_MODE (x1) != i1)
3276 : return -1;
3277 536 : x2 = XEXP (x1, 0);
3278 536 : if (GET_MODE (x2) != i2
3279 536 : || !nonimmediate_operand (operands[1], i1)
3280 512 : || !const0_operand (operands[2], i1)
3281 1012 : || !pmovzx_parallel (operands[3], E_VOIDmode))
3282 310 : return -1;
3283 : return 0;
3284 : }
3285 :
3286 : int
3287 5941 : pattern817 (rtx x1, rtx_code i1)
3288 : {
3289 5941 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3290 5941 : rtx x2, x3, x4, x5, x6, x7;
3291 5941 : int res ATTRIBUTE_UNUSED;
3292 5941 : x2 = XEXP (x1, 0);
3293 5941 : x3 = XEXP (x2, 0);
3294 5941 : x4 = XEXP (x3, 1);
3295 5941 : if (GET_CODE (x4) != i1)
3296 : return -1;
3297 5547 : x5 = XEXP (x3, 0);
3298 5547 : x6 = XEXP (x5, 0);
3299 5547 : operands[1] = x6;
3300 5547 : x7 = XEXP (x4, 0);
3301 5547 : operands[2] = x7;
3302 5547 : switch (GET_MODE (operands[0]))
3303 : {
3304 110 : case E_V32HImode:
3305 110 : return pattern816 (x1,
3306 : E_V32HImode,
3307 110 : E_V32SImode); /* [-1, 0] */
3308 :
3309 346 : case E_V16HImode:
3310 346 : if (pattern816 (x1,
3311 : E_V16HImode,
3312 : E_V16SImode) != 0)
3313 : return -1;
3314 : return 1;
3315 :
3316 4914 : case E_V8HImode:
3317 4914 : if (pattern816 (x1,
3318 : E_V8HImode,
3319 : E_V8SImode) != 0)
3320 : return -1;
3321 : return 2;
3322 :
3323 : default:
3324 : return -1;
3325 : }
3326 : }
3327 :
3328 : int
3329 946 : pattern824 (rtx x1, machine_mode i1, int i2, int i3, rtx_code i4)
3330 : {
3331 946 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3332 946 : int res ATTRIBUTE_UNUSED;
3333 946 : if (GET_CODE (x1) != i4
3334 946 : || XVECLEN (x1, 0) != i3
3335 946 : || XINT (x1, 1) != i2
3336 946 : || GET_MODE (x1) != i1)
3337 0 : return -1;
3338 : return 0;
3339 : }
3340 :
3341 : int
3342 39693 : pattern826 (rtx x1)
3343 : {
3344 39693 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3345 39693 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
3346 39693 : int res ATTRIBUTE_UNUSED;
3347 39693 : x2 = XVECEXP (x1, 0, 0);
3348 39693 : x3 = XEXP (x2, 1);
3349 39693 : x4 = XEXP (x3, 0);
3350 39693 : x5 = XEXP (x4, 0);
3351 39693 : operands[2] = x5;
3352 39693 : x6 = XEXP (x5, 1);
3353 39693 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3354 : return -1;
3355 6988 : x7 = XEXP (x3, 1);
3356 6988 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3357 : return -1;
3358 36 : x8 = XVECEXP (x1, 0, 1);
3359 36 : if (GET_CODE (x8) != SET)
3360 : return -1;
3361 36 : x9 = XEXP (x8, 1);
3362 36 : if (GET_CODE (x9) != PLUS)
3363 0 : return -1;
3364 : return 0;
3365 : }
3366 :
3367 : int
3368 11162 : pattern834 (rtx x1, int *pnum_clobbers)
3369 : {
3370 11162 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3371 11162 : rtx x2, x3, x4, x5, x6, x7;
3372 11162 : int res ATTRIBUTE_UNUSED;
3373 11162 : x2 = XVECEXP (x1, 0, 1);
3374 11162 : x3 = XEXP (x2, 0);
3375 11162 : operands[2] = x3;
3376 11162 : if (!memory_operand (operands[2], E_HImode))
3377 : return -1;
3378 11162 : x4 = XVECEXP (x1, 0, 2);
3379 11162 : x5 = XEXP (x4, 0);
3380 11162 : operands[3] = x5;
3381 11162 : if (!memory_operand (operands[3], E_HImode))
3382 : return -1;
3383 11162 : switch (GET_MODE (operands[0]))
3384 : {
3385 0 : case E_DImode:
3386 0 : if (pnum_clobbers == NULL
3387 0 : || !nonimmediate_operand (operands[0], E_DImode))
3388 0 : return -1;
3389 0 : x6 = XVECEXP (x1, 0, 0);
3390 0 : x7 = XEXP (x6, 1);
3391 0 : if (GET_MODE (x7) != E_DImode)
3392 : return -1;
3393 : return 0;
3394 :
3395 6655 : case E_HImode:
3396 6655 : if (!nonimmediate_operand (operands[0], E_HImode))
3397 : return -1;
3398 6655 : x6 = XVECEXP (x1, 0, 0);
3399 6655 : x7 = XEXP (x6, 1);
3400 6655 : if (GET_MODE (x7) != E_HImode)
3401 : return -1;
3402 : return 1;
3403 :
3404 4507 : case E_SImode:
3405 4507 : if (!nonimmediate_operand (operands[0], E_SImode))
3406 : return -1;
3407 4507 : x6 = XVECEXP (x1, 0, 0);
3408 4507 : x7 = XEXP (x6, 1);
3409 4507 : if (GET_MODE (x7) != E_SImode)
3410 : return -1;
3411 : return 2;
3412 :
3413 : default:
3414 : return -1;
3415 : }
3416 : }
3417 :
3418 : int
3419 361 : pattern848 (rtx x1, int i1, int i2, int i3, int i4)
3420 : {
3421 361 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3422 361 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
3423 361 : int res ATTRIBUTE_UNUSED;
3424 361 : x2 = XVECEXP (x1, 0, 0);
3425 361 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3426 : return -1;
3427 190 : x3 = XVECEXP (x1, 0, 1);
3428 190 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
3429 : return -1;
3430 190 : x4 = XVECEXP (x1, 0, 2);
3431 190 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
3432 : return -1;
3433 190 : x5 = XVECEXP (x1, 0, 3);
3434 190 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
3435 : return -1;
3436 190 : x6 = XVECEXP (x1, 0, 4);
3437 190 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
3438 : return -1;
3439 190 : x7 = XVECEXP (x1, 0, 5);
3440 190 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
3441 : return -1;
3442 190 : x8 = XVECEXP (x1, 0, 6);
3443 190 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
3444 : return -1;
3445 190 : x9 = XVECEXP (x1, 0, 7);
3446 190 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
3447 190 : || pattern847 (x1,
3448 : i1,
3449 : i2,
3450 : i3,
3451 : i4) != 0)
3452 0 : return -1;
3453 : return 0;
3454 : }
3455 :
3456 : int
3457 28185 : pattern857 (rtx x1)
3458 : {
3459 28185 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3460 28185 : rtx x2, x3, x4, x5, x6, x7;
3461 28185 : int res ATTRIBUTE_UNUSED;
3462 28185 : x2 = XVECEXP (x1, 0, 2);
3463 28185 : if (maybe_ne (SUBREG_BYTE (x2), 0))
3464 : return -1;
3465 28185 : x3 = XEXP (x2, 0);
3466 28185 : if (GET_CODE (x3) != EQ)
3467 : return -1;
3468 2968 : x4 = XEXP (x3, 0);
3469 2968 : if (GET_CODE (x4) != EQ)
3470 : return -1;
3471 424 : x5 = XEXP (x4, 0);
3472 424 : operands[3] = x5;
3473 424 : x6 = XEXP (x4, 1);
3474 424 : operands[4] = x6;
3475 424 : x7 = XEXP (x3, 1);
3476 424 : operands[5] = x7;
3477 424 : switch (GET_MODE (operands[0]))
3478 : {
3479 75 : case E_V8QImode:
3480 75 : if (!register_operand (operands[0], E_V8QImode)
3481 75 : || GET_MODE (x1) != E_V8QImode
3482 75 : || !register_operand (operands[1], E_V8QImode)
3483 42 : || !register_operand (operands[2], E_V8QImode)
3484 96 : || GET_MODE (x2) != E_V8QImode)
3485 54 : return -1;
3486 21 : switch (GET_MODE (x3))
3487 : {
3488 21 : case E_V4HImode:
3489 21 : return pattern856 (x4,
3490 21 : E_V4HImode); /* [-1, 0] */
3491 :
3492 0 : case E_V2SImode:
3493 0 : if (pattern856 (x4,
3494 : E_V2SImode) != 0)
3495 : return -1;
3496 : return 1;
3497 :
3498 : default:
3499 : return -1;
3500 : }
3501 :
3502 315 : case E_V4QImode:
3503 315 : if (!register_operand (operands[0], E_V4QImode)
3504 315 : || GET_MODE (x1) != E_V4QImode
3505 315 : || !register_operand (operands[1], E_V4QImode)
3506 174 : || !register_operand (operands[2], E_V4QImode)
3507 93 : || GET_MODE (x2) != E_V4QImode
3508 93 : || GET_MODE (x3) != E_V2HImode
3509 408 : || pattern856 (x4,
3510 : E_V2HImode) != 0)
3511 270 : return -1;
3512 : return 2;
3513 :
3514 : default:
3515 : return -1;
3516 : }
3517 : }
3518 :
3519 : int
3520 21960 : pattern874 (rtx x1, machine_mode i1)
3521 : {
3522 21960 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3523 21960 : int res ATTRIBUTE_UNUSED;
3524 21960 : if (!register_operand (operands[0], i1)
3525 21557 : || GET_MODE (x1) != i1
3526 21557 : || !bcst_vector_operand (operands[1], i1)
3527 21430 : || !bcst_vector_operand (operands[2], i1)
3528 43273 : || !bcst_vector_operand (operands[3], i1))
3529 735 : return -1;
3530 : return 0;
3531 : }
3532 :
3533 : int
3534 544 : pattern882 (rtx x1, machine_mode i1, machine_mode i2)
3535 : {
3536 544 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3537 544 : rtx x2;
3538 544 : int res ATTRIBUTE_UNUSED;
3539 544 : if (!register_operand (operands[0], i1)
3540 544 : || GET_MODE (x1) != i1)
3541 : return -1;
3542 530 : x2 = XEXP (x1, 0);
3543 530 : if (GET_MODE (x2) != i1
3544 530 : || !register_operand (operands[1], i2)
3545 530 : || !nonimmediate_operand (operands[2], i2)
3546 1060 : || !register_operand (operands[3], i1))
3547 55 : return -1;
3548 : return 0;
3549 : }
3550 :
3551 : int
3552 0 : pattern890 (rtx x1, machine_mode i1)
3553 : {
3554 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3555 0 : int res ATTRIBUTE_UNUSED;
3556 0 : if (!register_operand (operands[0], i1)
3557 0 : || GET_MODE (x1) != i1
3558 0 : || !register_operand (operands[1], i1)
3559 0 : || !const_int_operand (operands[2], i1))
3560 0 : return -1;
3561 : return 0;
3562 : }
3563 :
3564 : int
3565 5137 : pattern893 (rtx x1, machine_mode i1, machine_mode i2)
3566 : {
3567 5137 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3568 5137 : rtx x2, x3, x4;
3569 5137 : int res ATTRIBUTE_UNUSED;
3570 5137 : if (!register_operand (operands[0], i2)
3571 5137 : || GET_MODE (x1) != i2)
3572 : return -1;
3573 4982 : x2 = XEXP (x1, 0);
3574 4982 : if (GET_MODE (x2) != i2)
3575 : return -1;
3576 4982 : x3 = XEXP (x2, 0);
3577 4982 : if (GET_MODE (x3) != i2)
3578 : return -1;
3579 4982 : x4 = XEXP (x3, 0);
3580 4982 : if (GET_MODE (x4) != i1)
3581 0 : return -1;
3582 : return 0;
3583 : }
3584 :
3585 : int
3586 721 : pattern903 (rtx x1, machine_mode i1)
3587 : {
3588 721 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3589 721 : rtx x2;
3590 721 : int res ATTRIBUTE_UNUSED;
3591 721 : if (!register_operand (operands[0], i1)
3592 721 : || GET_MODE (x1) != i1)
3593 : return -1;
3594 665 : x2 = XEXP (x1, 0);
3595 665 : if (GET_MODE (x2) != i1
3596 665 : || !nonimm_or_0_operand (operands[2], i1)
3597 1304 : || !register_operand (operands[3], E_QImode))
3598 100 : return -1;
3599 565 : switch (GET_MODE (operands[1]))
3600 : {
3601 408 : case E_V8SImode:
3602 408 : if (!nonimmediate_operand (operands[1], E_V8SImode))
3603 : return -1;
3604 : return 0;
3605 :
3606 157 : case E_V8DImode:
3607 157 : if (!nonimmediate_operand (operands[1], E_V8DImode))
3608 : return -1;
3609 : return 1;
3610 :
3611 : default:
3612 : return -1;
3613 : }
3614 : }
3615 :
3616 : int
3617 2441 : pattern913 (rtx x1)
3618 : {
3619 2441 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3620 2441 : rtx x2, x3, x4, x5, x6, x7, x8;
3621 2441 : int res ATTRIBUTE_UNUSED;
3622 2441 : x2 = XVECEXP (x1, 0, 0);
3623 2441 : x3 = XEXP (x2, 0);
3624 2441 : x4 = XVECEXP (x3, 0, 0);
3625 2441 : operands[1] = x4;
3626 2441 : x5 = XVECEXP (x3, 0, 1);
3627 2441 : operands[2] = x5;
3628 2441 : x6 = XVECEXP (x1, 0, 1);
3629 2441 : if (!const48_operand (x6, E_SImode))
3630 : return -1;
3631 2441 : x7 = XEXP (x2, 2);
3632 2441 : switch (GET_CODE (x7))
3633 : {
3634 2096 : case REG:
3635 2096 : case SUBREG:
3636 2096 : operands[4] = x7;
3637 2096 : x8 = XEXP (x2, 1);
3638 2096 : operands[3] = x8;
3639 2096 : operands[5] = x6;
3640 2096 : switch (GET_MODE (operands[0]))
3641 : {
3642 592 : case E_V32HFmode:
3643 592 : return pattern911 (x1,
3644 : E_V32HFmode,
3645 592 : E_SImode); /* [-1, 0] */
3646 :
3647 752 : case E_V16SFmode:
3648 752 : if (pattern911 (x1,
3649 : E_V16SFmode,
3650 : E_HImode) != 0)
3651 : return -1;
3652 : return 1;
3653 :
3654 752 : case E_V8DFmode:
3655 752 : if (pattern911 (x1,
3656 : E_V8DFmode,
3657 : E_QImode) != 0)
3658 : return -1;
3659 : return 2;
3660 :
3661 : default:
3662 : return -1;
3663 : }
3664 :
3665 327 : case CONST_INT:
3666 327 : if (XWINT (x7, 0) != 1L)
3667 : return -1;
3668 305 : operands[3] = x6;
3669 305 : x8 = XEXP (x2, 1);
3670 305 : if (!rtx_equal_p (x8, operands[1]))
3671 : return -1;
3672 305 : switch (GET_MODE (operands[0]))
3673 : {
3674 185 : case E_V8HFmode:
3675 185 : if (pattern912 (x1,
3676 : E_V8HFmode) != 0)
3677 : return -1;
3678 : return 3;
3679 :
3680 60 : case E_V4SFmode:
3681 60 : if (pattern912 (x1,
3682 : E_V4SFmode) != 0)
3683 : return -1;
3684 : return 4;
3685 :
3686 60 : case E_V2DFmode:
3687 60 : if (pattern912 (x1,
3688 : E_V2DFmode) != 0)
3689 : return -1;
3690 : return 5;
3691 :
3692 : default:
3693 : return -1;
3694 : }
3695 :
3696 : default:
3697 : return -1;
3698 : }
3699 : }
3700 :
3701 : int
3702 639 : pattern932 (rtx x1, machine_mode i1, machine_mode i2)
3703 : {
3704 639 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3705 639 : rtx x2;
3706 639 : int res ATTRIBUTE_UNUSED;
3707 639 : if (!register_operand (operands[0], i1)
3708 639 : || GET_MODE (x1) != i1)
3709 : return -1;
3710 609 : x2 = XEXP (x1, 0);
3711 609 : if (GET_MODE (x2) != i2
3712 609 : || !nonimmediate_operand (operands[1], i1))
3713 29 : return -1;
3714 : return 0;
3715 : }
3716 :
3717 : int
3718 4201752 : pattern935 (rtx x1)
3719 : {
3720 4201752 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3721 4201752 : rtx x2, x3, x4;
3722 4201752 : int res ATTRIBUTE_UNUSED;
3723 4201752 : x2 = XEXP (x1, 1);
3724 4201752 : x3 = XEXP (x2, 0);
3725 4201752 : operands[1] = x3;
3726 4201752 : x4 = XEXP (x2, 1);
3727 4201752 : switch (GET_CODE (x4))
3728 : {
3729 : case CONST_INT:
3730 : case CONST_WIDE_INT:
3731 : case CONST_POLY_INT:
3732 : case CONST_FIXED:
3733 : case CONST_DOUBLE:
3734 : case CONST_VECTOR:
3735 : case CONST:
3736 : case REG:
3737 : case SUBREG:
3738 : case LABEL_REF:
3739 : case SYMBOL_REF:
3740 : case HIGH:
3741 : return 0;
3742 :
3743 1224 : case AND:
3744 1224 : if (GET_MODE (x4) != E_QImode)
3745 : return -1;
3746 1224 : res = pattern339 (x1);
3747 1224 : if (res >= 0)
3748 774 : return res + 1; /* [1, 3] */
3749 : return -1;
3750 :
3751 3666 : case PLUS:
3752 3666 : if (GET_MODE (x4) != E_QImode)
3753 : return -1;
3754 3666 : res = pattern341 (x1);
3755 3666 : if (res >= 0)
3756 1193 : return res + 4; /* [4, 5] */
3757 : return -1;
3758 :
3759 2826 : case MINUS:
3760 2826 : if (GET_MODE (x4) != E_QImode)
3761 : return -1;
3762 2826 : res = pattern342 (x1);
3763 2826 : if (res >= 0)
3764 1741 : return res + 6; /* [6, 7] */
3765 : return -1;
3766 :
3767 : default:
3768 : return -1;
3769 : }
3770 : }
3771 :
3772 : int
3773 219381 : pattern953 (rtx x1, machine_mode i1, unsigned int i2)
3774 : {
3775 219381 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3776 219381 : rtx x2;
3777 219381 : int res ATTRIBUTE_UNUSED;
3778 219381 : if (GET_CODE (x1) != CLOBBER)
3779 : return -1;
3780 218141 : x2 = XEXP (x1, 0);
3781 218141 : if (GET_CODE (x2) != REG
3782 218141 : || REGNO (x2) != i2
3783 436282 : || GET_MODE (x2) != i1)
3784 0 : return -1;
3785 : return 0;
3786 : }
3787 :
3788 : int
3789 4704880 : pattern959 (rtx x1, machine_mode i1)
3790 : {
3791 4704880 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3792 4704880 : rtx x2, x3;
3793 4704880 : int res ATTRIBUTE_UNUSED;
3794 4704880 : if (!immediate_operand (operands[1], i1)
3795 4704880 : || GET_CODE (x1) != SET)
3796 : return -1;
3797 3690139 : x2 = XEXP (x1, 0);
3798 3690139 : operands[2] = x2;
3799 3690139 : if (!mask_reg_operand (operands[2], i1))
3800 : return -1;
3801 2971 : x3 = XEXP (x1, 1);
3802 2971 : if (!rtx_equal_p (x3, operands[0]))
3803 : return -1;
3804 : return 0;
3805 : }
3806 :
3807 : int
3808 9546 : pattern966 ()
3809 : {
3810 9546 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3811 9546 : int res ATTRIBUTE_UNUSED;
3812 9546 : switch (GET_MODE (operands[0]))
3813 : {
3814 202 : case E_QImode:
3815 202 : if (!register_operand (operands[0], E_QImode)
3816 202 : || !register_operand (operands[1], E_QImode))
3817 1 : return -1;
3818 : return 0;
3819 :
3820 8908 : case E_HImode:
3821 8908 : if (!register_operand (operands[0], E_HImode)
3822 8908 : || !register_operand (operands[1], E_HImode))
3823 8707 : return -1;
3824 : return 1;
3825 :
3826 202 : case E_SImode:
3827 202 : if (!register_operand (operands[0], E_SImode)
3828 202 : || !register_operand (operands[1], E_SImode))
3829 1 : return -1;
3830 : return 2;
3831 :
3832 215 : case E_DImode:
3833 215 : if (!register_operand (operands[0], E_DImode)
3834 215 : || !register_operand (operands[1], E_DImode))
3835 12 : return -1;
3836 : return 3;
3837 :
3838 : default:
3839 : return -1;
3840 : }
3841 : }
3842 :
3843 : int
3844 4 : pattern972 (rtx x1)
3845 : {
3846 4 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3847 4 : rtx x2, x3;
3848 4 : int res ATTRIBUTE_UNUSED;
3849 4 : x2 = XEXP (x1, 0);
3850 4 : switch (GET_MODE (x2))
3851 : {
3852 0 : case E_HImode:
3853 0 : x3 = XEXP (x1, 1);
3854 0 : if (GET_MODE (x3) != E_HImode
3855 0 : || !register_operand (operands[1], E_HImode))
3856 0 : return -1;
3857 : return 0;
3858 :
3859 4 : case E_SImode:
3860 4 : x3 = XEXP (x1, 1);
3861 4 : if (GET_MODE (x3) != E_SImode
3862 4 : || !register_operand (operands[1], E_SImode))
3863 4 : return -1;
3864 : return 1;
3865 :
3866 0 : case E_DImode:
3867 0 : x3 = XEXP (x1, 1);
3868 0 : if (GET_MODE (x3) != E_DImode
3869 0 : || !register_operand (operands[1], E_DImode))
3870 0 : return -1;
3871 : return 2;
3872 :
3873 : default:
3874 : return -1;
3875 : }
3876 : }
3877 :
3878 : int
3879 113229 : pattern977 (rtx x1)
3880 : {
3881 113229 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3882 113229 : int res ATTRIBUTE_UNUSED;
3883 113229 : if (!nonimmediate_operand (operands[0], E_SFmode)
3884 113229 : || GET_MODE (x1) != E_SFmode)
3885 : return -1;
3886 113031 : switch (GET_MODE (operands[1]))
3887 : {
3888 13515 : case E_V2SFmode:
3889 13515 : if (!nonimmediate_operand (operands[1], E_V2SFmode))
3890 : return -1;
3891 : return 0;
3892 :
3893 99100 : case E_V4SFmode:
3894 99100 : if (!nonimmediate_operand (operands[1], E_V4SFmode))
3895 : return -1;
3896 : return 1;
3897 :
3898 : default:
3899 : return -1;
3900 : }
3901 : }
3902 :
3903 : int
3904 290668 : pattern980 (rtx x1)
3905 : {
3906 290668 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3907 290668 : rtx x2, x3, x4;
3908 290668 : int res ATTRIBUTE_UNUSED;
3909 290668 : x2 = XEXP (x1, 1);
3910 290668 : x3 = XVECEXP (x2, 0, 0);
3911 290668 : switch (XWINT (x3, 0))
3912 : {
3913 139644 : case 0L:
3914 139644 : x4 = XVECEXP (x2, 0, 1);
3915 139644 : if (XWINT (x4, 0) != 2L)
3916 : return -1;
3917 138990 : switch (GET_MODE (operands[0]))
3918 : {
3919 6872 : case E_V2SFmode:
3920 6872 : return pattern272 (x1,
3921 : E_V2SFmode,
3922 6872 : E_V4SFmode); /* [-1, 0] */
3923 :
3924 14934 : case E_V2SImode:
3925 14934 : if (pattern273 (x1,
3926 : E_V2SImode,
3927 : E_V4SImode) != 0)
3928 : return -1;
3929 : return 1;
3930 :
3931 : default:
3932 : return -1;
3933 : }
3934 :
3935 146964 : case 1L:
3936 146964 : x4 = XVECEXP (x2, 0, 1);
3937 146964 : if (XWINT (x4, 0) != 3L)
3938 : return -1;
3939 103225 : switch (GET_MODE (operands[0]))
3940 : {
3941 2638 : case E_V2SFmode:
3942 2638 : if (pattern272 (x1,
3943 : E_V2SFmode,
3944 : E_V4SFmode) != 0)
3945 : return -1;
3946 : return 2;
3947 :
3948 7921 : case E_V2SImode:
3949 7921 : if (pattern273 (x1,
3950 : E_V2SImode,
3951 : E_V4SImode) != 0)
3952 : return -1;
3953 : return 3;
3954 :
3955 : default:
3956 : return -1;
3957 : }
3958 :
3959 : default:
3960 : return -1;
3961 : }
3962 : }
3963 :
3964 : int
3965 1735 : pattern991 (rtx x1)
3966 : {
3967 1735 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3968 1735 : rtx x2, x3;
3969 1735 : int res ATTRIBUTE_UNUSED;
3970 1735 : x2 = XEXP (x1, 1);
3971 1735 : operands[3] = x2;
3972 1735 : switch (GET_MODE (operands[0]))
3973 : {
3974 184 : case E_DImode:
3975 184 : if (!register_operand (operands[0], E_DImode)
3976 184 : || GET_MODE (x1) != E_DImode)
3977 : return -1;
3978 176 : x3 = XEXP (x1, 0);
3979 176 : if (GET_MODE (x3) != E_DImode
3980 176 : || !nonimm_or_0_operand (operands[1], E_V64QImode)
3981 176 : || !nonimm_or_0_operand (operands[2], E_V64QImode)
3982 352 : || !register_operand (operands[3], E_DImode))
3983 80 : return -1;
3984 : return 0;
3985 :
3986 388 : case E_SImode:
3987 388 : if (!register_operand (operands[0], E_SImode)
3988 388 : || GET_MODE (x1) != E_SImode)
3989 : return -1;
3990 368 : x3 = XEXP (x1, 0);
3991 368 : if (GET_MODE (x3) != E_SImode
3992 368 : || !register_operand (operands[3], E_SImode))
3993 230 : return -1;
3994 138 : switch (GET_MODE (operands[1]))
3995 : {
3996 67 : case E_V32QImode:
3997 67 : if (!nonimm_or_0_operand (operands[1], E_V32QImode)
3998 67 : || !nonimm_or_0_operand (operands[2], E_V32QImode))
3999 0 : return -1;
4000 : return 1;
4001 :
4002 67 : case E_V32HImode:
4003 67 : if (!nonimm_or_0_operand (operands[1], E_V32HImode)
4004 67 : || !nonimm_or_0_operand (operands[2], E_V32HImode))
4005 0 : return -1;
4006 : return 2;
4007 :
4008 : default:
4009 : return -1;
4010 : }
4011 :
4012 : default:
4013 : return -1;
4014 : }
4015 : }
4016 :
4017 : int
4018 2661 : pattern1001 (rtx x1, machine_mode i1, machine_mode i2)
4019 : {
4020 2661 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4021 2661 : rtx x2;
4022 2661 : int res ATTRIBUTE_UNUSED;
4023 2661 : if (!register_operand (operands[0], i1)
4024 2661 : || GET_MODE (x1) != i1)
4025 : return -1;
4026 2494 : x2 = XEXP (x1, 0);
4027 2494 : if (GET_MODE (x2) != i1
4028 2494 : || !vector_operand (operands[1], i1)
4029 2494 : || !nonimm_or_0_operand (operands[2], i1)
4030 4955 : || !register_operand (operands[3], i2))
4031 146 : return -1;
4032 : return 0;
4033 : }
4034 :
4035 : int
4036 180 : pattern1008 (rtx x1, machine_mode i1)
4037 : {
4038 180 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4039 180 : rtx x2, x3, x4, x5, x6;
4040 180 : int res ATTRIBUTE_UNUSED;
4041 180 : if (!register_operand (operands[0], i1)
4042 180 : || GET_MODE (x1) != i1)
4043 : return -1;
4044 142 : x2 = XEXP (x1, 0);
4045 142 : if (GET_MODE (x2) != i1)
4046 : return -1;
4047 142 : x3 = XEXP (x2, 0);
4048 142 : if (GET_MODE (x3) != i1)
4049 : return -1;
4050 142 : x4 = XEXP (x3, 0);
4051 142 : if (GET_MODE (x4) != i1)
4052 : return -1;
4053 142 : x5 = XEXP (x4, 0);
4054 142 : if (!nonimmediate_operand (x5, i1))
4055 : return -1;
4056 142 : x6 = XEXP (x3, 1);
4057 142 : if (!nonimmediate_operand (x6, i1))
4058 : return -1;
4059 : return 0;
4060 : }
4061 :
4062 : int
4063 839 : pattern1019 (rtx x1, machine_mode i1)
4064 : {
4065 839 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4066 839 : rtx x2, x3;
4067 839 : int res ATTRIBUTE_UNUSED;
4068 839 : if (!register_operand (operands[0], i1)
4069 839 : || GET_MODE (x1) != i1)
4070 : return -1;
4071 805 : x2 = XEXP (x1, 0);
4072 805 : if (GET_MODE (x2) != i1)
4073 : return -1;
4074 805 : x3 = XEXP (x2, 0);
4075 805 : if (GET_MODE (x3) != i1
4076 805 : || !register_operand (operands[1], i1)
4077 805 : || !vector_operand (operands[2], i1)
4078 781 : || !nonimm_or_0_operand (operands[3], i1)
4079 1574 : || !register_operand (operands[4], E_QImode))
4080 81 : return -1;
4081 : return 0;
4082 : }
4083 :
4084 : int
4085 195 : pattern1026 (rtx x1)
4086 : {
4087 195 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4088 195 : rtx x2;
4089 195 : int res ATTRIBUTE_UNUSED;
4090 195 : if (!register_operand (operands[0], E_V8SImode)
4091 195 : || GET_MODE (x1) != E_V8SImode)
4092 : return -1;
4093 195 : x2 = XVECEXP (x1, 0, 0);
4094 195 : if (GET_MODE (x2) != E_V8SImode)
4095 : return -1;
4096 195 : switch (GET_MODE (operands[1]))
4097 : {
4098 0 : case E_V8HFmode:
4099 0 : if (!register_operand (operands[1], E_V8HFmode))
4100 : return -1;
4101 : return 0;
4102 :
4103 195 : case E_V8DFmode:
4104 195 : if (!register_operand (operands[1], E_V8DFmode))
4105 : return -1;
4106 : return 1;
4107 :
4108 : default:
4109 : return -1;
4110 : }
4111 : }
4112 :
4113 : int
4114 13903 : pattern1037 (rtx x1, machine_mode i1, machine_mode i2)
4115 : {
4116 13903 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4117 13903 : int res ATTRIBUTE_UNUSED;
4118 13903 : if (!register_operand (operands[0], i1)
4119 13846 : || GET_MODE (x1) != i1
4120 13846 : || !register_operand (operands[1], i2)
4121 13846 : || !register_operand (operands[2], i1)
4122 27670 : || !nonimmediate_operand (operands[3], i1))
4123 220 : return -1;
4124 : return 0;
4125 : }
4126 :
4127 : int
4128 111 : pattern1043 (rtx x1)
4129 : {
4130 111 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4131 111 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
4132 111 : rtx x10;
4133 111 : int res ATTRIBUTE_UNUSED;
4134 111 : x2 = XEXP (x1, 0);
4135 111 : x3 = XEXP (x2, 1);
4136 111 : if (XVECLEN (x3, 0) != 2)
4137 : return -1;
4138 16 : x4 = XVECEXP (x3, 0, 0);
4139 16 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
4140 : return -1;
4141 16 : x5 = XVECEXP (x3, 0, 1);
4142 16 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
4143 16 : || !register_operand (operands[0], E_V2DImode)
4144 15 : || GET_MODE (x1) != E_V2DImode
4145 31 : || GET_MODE (x2) != E_V2QImode)
4146 5 : return -1;
4147 11 : x6 = XEXP (x2, 0);
4148 11 : if (GET_MODE (x6) != E_V16QImode)
4149 : return -1;
4150 11 : x7 = XEXP (x6, 0);
4151 11 : x8 = XEXP (x7, 0);
4152 11 : x9 = XEXP (x8, 0);
4153 11 : operands[1] = x9;
4154 11 : x10 = XEXP (x7, 1);
4155 11 : operands[2] = x10;
4156 11 : switch (GET_MODE (x7))
4157 : {
4158 6 : case E_V8HImode:
4159 6 : if (GET_MODE (x8) != E_V8HImode
4160 6 : || !nonimmediate_operand (operands[1], E_HImode)
4161 12 : || !const0_operand (operands[2], E_V8HImode))
4162 0 : return -1;
4163 : return 0;
4164 :
4165 5 : case E_V8HFmode:
4166 5 : if (GET_MODE (x8) != E_V8HFmode
4167 5 : || !nonimmediate_operand (operands[1], E_HFmode)
4168 10 : || !const0_operand (operands[2], E_V8HFmode))
4169 0 : return -1;
4170 : return 1;
4171 :
4172 0 : case E_V8BFmode:
4173 0 : if (GET_MODE (x8) != E_V8BFmode
4174 0 : || !nonimmediate_operand (operands[1], E_BFmode)
4175 0 : || !const0_operand (operands[2], E_V8BFmode))
4176 0 : return -1;
4177 : return 2;
4178 :
4179 : default:
4180 : return -1;
4181 : }
4182 : }
4183 :
4184 : int
4185 55085 : pattern1056 (rtx x1)
4186 : {
4187 55085 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4188 55085 : rtx x2, x3, x4, x5, x6;
4189 55085 : int res ATTRIBUTE_UNUSED;
4190 55085 : x2 = XEXP (x1, 1);
4191 55085 : x3 = XEXP (x2, 0);
4192 55085 : if (maybe_ne (SUBREG_BYTE (x3), 0)
4193 55085 : || GET_MODE (x3) != E_QImode)
4194 : return -1;
4195 1034 : x4 = XEXP (x3, 0);
4196 1034 : switch (GET_CODE (x4))
4197 : {
4198 266 : case ASHIFTRT:
4199 266 : case LSHIFTRT:
4200 266 : case SIGN_EXTRACT:
4201 266 : case ZERO_EXTRACT:
4202 266 : operands[3] = x4;
4203 266 : x5 = XEXP (x2, 1);
4204 266 : if (GET_CODE (x5) != SUBREG
4205 134 : || maybe_ne (SUBREG_BYTE (x5), 0)
4206 400 : || GET_MODE (x5) != E_QImode)
4207 : return -1;
4208 134 : x6 = XEXP (x5, 0);
4209 134 : switch (GET_CODE (x6))
4210 : {
4211 60 : case ASHIFTRT:
4212 60 : case LSHIFTRT:
4213 60 : case SIGN_EXTRACT:
4214 60 : case ZERO_EXTRACT:
4215 60 : operands[4] = x6;
4216 60 : if (GET_MODE (x2) != E_QImode)
4217 : return -1;
4218 60 : return pattern1055 (x1); /* [-1, 5] */
4219 :
4220 : default:
4221 : return -1;
4222 : }
4223 :
4224 : default:
4225 : return -1;
4226 : }
4227 : }
4228 :
4229 : int
4230 0 : pattern1064 (rtx x1, machine_mode i1)
4231 : {
4232 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4233 0 : rtx x2;
4234 0 : int res ATTRIBUTE_UNUSED;
4235 0 : if (!register_operand (operands[0], i1)
4236 0 : || GET_MODE (x1) != i1)
4237 : return -1;
4238 0 : x2 = XEXP (x1, 0);
4239 0 : if (GET_MODE (x2) != i1
4240 0 : || !register_operand (operands[1], i1)
4241 0 : || !register_operand (operands[2], i1))
4242 0 : return -1;
4243 : return 0;
4244 : }
4245 :
4246 : int
4247 289 : pattern1070 (rtx x1)
4248 : {
4249 289 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4250 289 : rtx x2, x3, x4, x5;
4251 289 : int res ATTRIBUTE_UNUSED;
4252 289 : x2 = XVECEXP (x1, 0, 0);
4253 289 : x3 = XEXP (x2, 1);
4254 289 : if (GET_MODE (x3) != E_XFmode)
4255 : return -1;
4256 289 : x4 = XVECEXP (x1, 0, 1);
4257 289 : x5 = XEXP (x4, 0);
4258 289 : if (GET_CODE (x5) != REG
4259 289 : || REGNO (x5) != 17
4260 226 : || GET_MODE (x5) != E_CCmode
4261 226 : || !register_operand (operands[0], E_XFmode)
4262 515 : || !register_operand (operands[1], E_XFmode))
4263 123 : return -1;
4264 : return 0;
4265 : }
4266 :
4267 : int
4268 2767 : pattern1076 (rtx x1)
4269 : {
4270 2767 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4271 2767 : rtx x2, x3, x4;
4272 2767 : int res ATTRIBUTE_UNUSED;
4273 2767 : if (GET_MODE (x1) != E_DImode)
4274 : return -1;
4275 2767 : x2 = XEXP (x1, 1);
4276 2767 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
4277 : return -1;
4278 2767 : x3 = XEXP (x1, 0);
4279 2767 : operands[0] = x3;
4280 2767 : if (!nonimmediate_operand (operands[0], E_DImode))
4281 : return -1;
4282 2767 : x4 = XEXP (x1, 2);
4283 2767 : operands[1] = x4;
4284 2767 : if (!const_0_to_63_operand (operands[1], E_QImode))
4285 : return -1;
4286 : return 0;
4287 : }
4288 :
4289 : int
4290 315 : pattern1081 ()
4291 : {
4292 315 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4293 315 : int res ATTRIBUTE_UNUSED;
4294 315 : switch (GET_MODE (operands[3]))
4295 : {
4296 33 : case E_HImode:
4297 33 : if (!extract_high_operator (operands[3], E_HImode)
4298 33 : || !extract_high_operator (operands[4], E_HImode))
4299 2 : return -1;
4300 : return 0;
4301 :
4302 226 : case E_SImode:
4303 226 : if (!extract_high_operator (operands[3], E_SImode)
4304 226 : || !extract_high_operator (operands[4], E_SImode))
4305 181 : return -1;
4306 : return 1;
4307 :
4308 56 : case E_DImode:
4309 56 : if (!extract_high_operator (operands[3], E_DImode)
4310 56 : || !extract_high_operator (operands[4], E_DImode))
4311 36 : return -1;
4312 : return 2;
4313 :
4314 : default:
4315 : return -1;
4316 : }
4317 : }
4318 :
4319 : int
4320 17533 : pattern1090 (rtx x1, machine_mode i1)
4321 : {
4322 17533 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4323 17533 : rtx x2;
4324 17533 : int res ATTRIBUTE_UNUSED;
4325 17533 : if (!register_operand (operands[0], i1)
4326 17533 : || GET_MODE (x1) != i1)
4327 : return -1;
4328 17231 : x2 = XEXP (x1, 0);
4329 17231 : if (GET_MODE (x2) != i1
4330 17231 : || !register_no_SP_operand (operands[1], i1)
4331 17191 : || !const123_operand (operands[2], E_VOIDmode)
4332 26734 : || !nonmemory_operand (operands[3], i1))
4333 7730 : return -1;
4334 : return 0;
4335 : }
4336 :
4337 : int
4338 385 : pattern1101 (rtx x1, machine_mode i1)
4339 : {
4340 385 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4341 385 : rtx x2, x3;
4342 385 : int res ATTRIBUTE_UNUSED;
4343 385 : if (!register_operand (operands[0], i1)
4344 385 : || GET_MODE (x1) != i1)
4345 : return -1;
4346 383 : x2 = XEXP (x1, 0);
4347 383 : if (GET_MODE (x2) != i1)
4348 : return -1;
4349 383 : x3 = XEXP (x2, 0);
4350 383 : if (GET_MODE (x3) != i1
4351 383 : || !nonimmediate_operand (operands[1], i1)
4352 383 : || !nonimmediate_operand (operands[2], i1)
4353 742 : || !nonimmediate_operand (operands[3], i1))
4354 52 : return -1;
4355 : return 0;
4356 : }
4357 :
4358 : int
4359 424 : pattern1110 (rtx x1, machine_mode i1)
4360 : {
4361 424 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4362 424 : rtx x2;
4363 424 : int res ATTRIBUTE_UNUSED;
4364 424 : if (!register_operand (operands[0], i1)
4365 424 : || GET_MODE (x1) != i1)
4366 : return -1;
4367 424 : x2 = XEXP (x1, 0);
4368 424 : if (GET_MODE (x2) != i1
4369 424 : || !memory_operand (operands[1], i1)
4370 848 : || !nonimm_or_0_operand (operands[2], i1))
4371 0 : return -1;
4372 : return 0;
4373 : }
4374 :
4375 : int
4376 939 : pattern1112 (rtx x1, machine_mode i1)
4377 : {
4378 939 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4379 939 : rtx x2;
4380 939 : int res ATTRIBUTE_UNUSED;
4381 939 : if (!register_operand (operands[0], i1)
4382 939 : || GET_MODE (x1) != i1)
4383 : return -1;
4384 857 : x2 = XEXP (x1, 0);
4385 857 : if (GET_MODE (x2) != i1
4386 857 : || !nonimm_or_0_operand (operands[2], i1)
4387 1675 : || !register_operand (operands[3], E_QImode))
4388 105 : return -1;
4389 752 : switch (GET_MODE (operands[1]))
4390 : {
4391 291 : case E_V8HFmode:
4392 291 : if (!vector_operand (operands[1], E_V8HFmode))
4393 : return -1;
4394 : return 0;
4395 :
4396 302 : case E_V8SFmode:
4397 302 : if (!nonimmediate_operand (operands[1], E_V8SFmode))
4398 : return -1;
4399 : return 1;
4400 :
4401 159 : case E_V8DFmode:
4402 159 : if (!nonimmediate_operand (operands[1], E_V8DFmode))
4403 : return -1;
4404 : return 2;
4405 :
4406 : default:
4407 : return -1;
4408 : }
4409 : }
4410 :
4411 : int
4412 1193 : pattern1118 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
4413 : {
4414 1193 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4415 1193 : rtx x2;
4416 1193 : int res ATTRIBUTE_UNUSED;
4417 1193 : if (!register_operand (operands[0], i2)
4418 1193 : || GET_MODE (x1) != i2)
4419 : return -1;
4420 1122 : x2 = XEXP (x1, 0);
4421 1122 : if (GET_MODE (x2) != i2
4422 1122 : || !nonimmediate_operand (operands[1], i2)
4423 1122 : || !register_operand (operands[2], i3)
4424 1122 : || !nonimm_or_0_operand (operands[3], i2)
4425 2220 : || !register_operand (operands[4], i1))
4426 110 : return -1;
4427 : return 0;
4428 : }
4429 :
4430 : int
4431 76 : pattern1125 (rtx x1)
4432 : {
4433 76 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4434 76 : rtx x2, x3, x4, x5, x6, x7, x8;
4435 76 : int res ATTRIBUTE_UNUSED;
4436 76 : x2 = XEXP (x1, 0);
4437 76 : x3 = XEXP (x2, 0);
4438 76 : if (GET_MODE (x3) != E_V8HFmode)
4439 : return -1;
4440 76 : x4 = XEXP (x2, 2);
4441 76 : if (GET_CODE (x4) != UNSPEC
4442 76 : || XVECLEN (x4, 0) != 1
4443 76 : || XINT (x4, 1) != 224
4444 76 : || GET_MODE (x4) != E_QImode)
4445 : return -1;
4446 76 : x5 = XEXP (x1, 2);
4447 76 : if (XWINT (x5, 0) != 3L
4448 76 : || !register_operand (operands[0], E_V8HFmode)
4449 68 : || GET_MODE (x1) != E_V8HFmode
4450 68 : || GET_MODE (x2) != E_V8HFmode
4451 68 : || !vector_operand (operands[1], E_V8HFmode)
4452 68 : || !vector_operand (operands[2], E_V8HFmode)
4453 144 : || !vector_operand (operands[3], E_V8HFmode))
4454 8 : return -1;
4455 68 : x6 = XVECEXP (x4, 0, 0);
4456 68 : if (!register_operand (x6, E_QImode))
4457 : return -1;
4458 66 : x7 = XEXP (x1, 1);
4459 66 : if (!rtx_equal_p (x7, operands[2]))
4460 : return -1;
4461 66 : x8 = XEXP (x2, 1);
4462 66 : switch (GET_CODE (x8))
4463 : {
4464 22 : case CONST_INT:
4465 22 : case CONST_DOUBLE:
4466 22 : case CONST_VECTOR:
4467 22 : operands[4] = x8;
4468 22 : if (!const0_operand (operands[4], E_V8HFmode))
4469 : return -1;
4470 22 : operands[5] = x6;
4471 22 : return 0;
4472 :
4473 44 : case REG:
4474 44 : case SUBREG:
4475 44 : case MEM:
4476 44 : if (!rtx_equal_p (x8, operands[1]))
4477 : return -1;
4478 44 : operands[4] = x6;
4479 44 : return 1;
4480 :
4481 : default:
4482 : return -1;
4483 : }
4484 : }
4485 :
4486 : int
4487 436 : pattern1148 (rtx x1, machine_mode i1, machine_mode i2)
4488 : {
4489 436 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4490 436 : int res ATTRIBUTE_UNUSED;
4491 436 : if (!register_operand (operands[0], i2)
4492 401 : || GET_MODE (x1) != i2
4493 401 : || !register_operand (operands[1], i2)
4494 339 : || !register_operand (operands[2], i2)
4495 761 : || !nonimmediate_operand (operands[3], i1))
4496 111 : return -1;
4497 : return 0;
4498 : }
4499 :
4500 : int
4501 2312 : pattern1154 (rtx x1)
4502 : {
4503 2312 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4504 2312 : rtx x2, x3, x4, x5;
4505 2312 : int res ATTRIBUTE_UNUSED;
4506 2312 : x2 = XVECEXP (x1, 0, 0);
4507 2312 : switch (XWINT (x2, 0))
4508 : {
4509 1500 : case 0L:
4510 1500 : x3 = XVECEXP (x1, 0, 1);
4511 1500 : switch (XWINT (x3, 0))
4512 : {
4513 : case 1L:
4514 : return 0;
4515 :
4516 232 : case 2L:
4517 232 : return 1;
4518 :
4519 : default:
4520 : return -1;
4521 : }
4522 :
4523 224 : case 1L:
4524 224 : x3 = XVECEXP (x1, 0, 1);
4525 224 : if (XWINT (x3, 0) != 3L)
4526 : return -1;
4527 224 : x4 = XVECEXP (x1, 0, 2);
4528 224 : if (XWINT (x4, 0) != 5L)
4529 : return -1;
4530 224 : x5 = XVECEXP (x1, 0, 3);
4531 224 : if (XWINT (x5, 0) != 7L)
4532 : return -1;
4533 : return 2;
4534 :
4535 : default:
4536 : return -1;
4537 : }
4538 : }
4539 :
4540 : int
4541 0 : pattern1165 (rtx x1)
4542 : {
4543 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4544 0 : rtx x2;
4545 0 : int res ATTRIBUTE_UNUSED;
4546 0 : if (XVECLEN (x1, 0) != 1
4547 0 : || XINT (x1, 1) != 20
4548 0 : || GET_MODE (x1) != E_SImode)
4549 : return -1;
4550 0 : x2 = XVECEXP (x1, 0, 0);
4551 0 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
4552 0 : return -1;
4553 : return 0;
4554 : }
4555 :
4556 : int
4557 486 : pattern1170 (rtx x1)
4558 : {
4559 486 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4560 486 : rtx x2, x3, x4, x5, x6, x7;
4561 486 : int res ATTRIBUTE_UNUSED;
4562 486 : x2 = XEXP (x1, 0);
4563 486 : x3 = XEXP (x2, 0);
4564 486 : x4 = XEXP (x3, 1);
4565 486 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
4566 : return -1;
4567 478 : x5 = XEXP (x3, 0);
4568 478 : operands[3] = x5;
4569 478 : if (!int_nonimmediate_operand (operands[3], E_VOIDmode))
4570 : return -1;
4571 237 : x6 = XEXP (x2, 1);
4572 237 : operands[1] = x6;
4573 237 : x7 = XEXP (x1, 1);
4574 237 : operands[2] = x7;
4575 237 : switch (GET_MODE (operands[0]))
4576 : {
4577 0 : case E_QImode:
4578 0 : return pattern1168 (x1,
4579 0 : E_QImode); /* [-1, 0] */
4580 :
4581 0 : case E_HImode:
4582 0 : if (pattern1168 (x1,
4583 : E_HImode) != 0)
4584 : return -1;
4585 : return 1;
4586 :
4587 219 : case E_SImode:
4588 219 : if (pattern1169 (x1,
4589 : E_SImode) != 0)
4590 : return -1;
4591 : return 2;
4592 :
4593 18 : case E_DImode:
4594 18 : if (pattern1169 (x1,
4595 : E_DImode) != 0)
4596 : return -1;
4597 : return 3;
4598 :
4599 : default:
4600 : return -1;
4601 : }
4602 : }
4603 :
4604 : int
4605 107 : pattern1184 (rtx x1)
4606 : {
4607 107 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4608 107 : rtx x2, x3, x4;
4609 107 : int res ATTRIBUTE_UNUSED;
4610 107 : x2 = XEXP (x1, 0);
4611 107 : if (GET_MODE (x2) != E_SImode
4612 77 : || !register_operand (operands[0], E_DImode)
4613 184 : || GET_MODE (x1) != E_DImode)
4614 30 : return -1;
4615 77 : x3 = XEXP (x2, 0);
4616 77 : operands[1] = x3;
4617 77 : if (!nonimmediate_operand (operands[1], E_SImode))
4618 : return -1;
4619 72 : x4 = XEXP (x2, 1);
4620 72 : operands[2] = x4;
4621 72 : if (!const_int_operand (operands[2], E_QImode))
4622 : return -1;
4623 : return 0;
4624 : }
4625 :
4626 : int
4627 246 : pattern1193 (rtx x1)
4628 : {
4629 246 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4630 246 : rtx x2, x3, x4, x5, x6, x7, x8;
4631 246 : int res ATTRIBUTE_UNUSED;
4632 246 : x2 = XEXP (x1, 1);
4633 246 : x3 = XEXP (x2, 1);
4634 246 : switch (GET_CODE (x3))
4635 : {
4636 196 : case LABEL_REF:
4637 196 : x4 = XEXP (x2, 2);
4638 196 : if (GET_CODE (x4) != PC)
4639 : return -1;
4640 196 : x5 = XEXP (x1, 0);
4641 196 : if (GET_CODE (x5) != PC)
4642 : return -1;
4643 196 : x6 = XEXP (x2, 0);
4644 196 : operands[0] = x6;
4645 196 : x7 = XEXP (x6, 0);
4646 196 : operands[1] = x7;
4647 196 : x8 = XEXP (x3, 0);
4648 196 : operands[2] = x8;
4649 196 : switch (GET_MODE (operands[1]))
4650 : {
4651 8 : case E_QImode:
4652 8 : if (!register_operand (operands[1], E_QImode))
4653 : return -1;
4654 : return 0;
4655 :
4656 68 : case E_HImode:
4657 68 : if (!register_operand (operands[1], E_HImode))
4658 : return -1;
4659 : return 1;
4660 :
4661 95 : case E_SImode:
4662 95 : if (!register_operand (operands[1], E_SImode))
4663 : return -1;
4664 : return 2;
4665 :
4666 25 : case E_DImode:
4667 25 : if (!register_operand (operands[1], E_DImode))
4668 : return -1;
4669 : return 3;
4670 :
4671 : default:
4672 : return -1;
4673 : }
4674 :
4675 49 : case REG:
4676 49 : case SUBREG:
4677 49 : case MEM:
4678 49 : operands[2] = x3;
4679 49 : x5 = XEXP (x1, 0);
4680 49 : operands[0] = x5;
4681 49 : x6 = XEXP (x2, 0);
4682 49 : operands[1] = x6;
4683 49 : x7 = XEXP (x6, 0);
4684 49 : operands[4] = x7;
4685 49 : x4 = XEXP (x2, 2);
4686 49 : operands[3] = x4;
4687 49 : switch (GET_MODE (operands[0]))
4688 : {
4689 7 : case E_QImode:
4690 7 : if (!register_operand (operands[0], E_QImode)
4691 7 : || GET_MODE (x2) != E_QImode
4692 7 : || !register_operand (operands[2], E_QImode)
4693 14 : || !register_operand (operands[3], E_QImode))
4694 0 : return -1;
4695 7 : res = pattern1191 ();
4696 7 : if (res >= 0)
4697 7 : return res + 4; /* [4, 7] */
4698 : return -1;
4699 :
4700 7 : case E_HImode:
4701 7 : res = pattern1192 (x2,
4702 : E_HImode);
4703 7 : if (res >= 0)
4704 7 : return res + 8; /* [8, 11] */
4705 : return -1;
4706 :
4707 28 : case E_SImode:
4708 28 : res = pattern1192 (x2,
4709 : E_SImode);
4710 28 : if (res >= 0)
4711 28 : return res + 12; /* [12, 15] */
4712 : return -1;
4713 :
4714 7 : case E_DImode:
4715 7 : res = pattern1192 (x2,
4716 : E_DImode);
4717 7 : if (res >= 0)
4718 7 : return res + 16; /* [16, 19] */
4719 : return -1;
4720 :
4721 : default:
4722 : return -1;
4723 : }
4724 :
4725 : default:
4726 : return -1;
4727 : }
4728 : }
4729 :
4730 : int
4731 52 : pattern1225 (rtx x1, machine_mode i1, machine_mode i2)
4732 : {
4733 52 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4734 52 : rtx x2, x3;
4735 52 : int res ATTRIBUTE_UNUSED;
4736 52 : if (!register_operand (operands[0], i1)
4737 52 : || GET_MODE (x1) != i1)
4738 : return -1;
4739 52 : x2 = XEXP (x1, 0);
4740 52 : if (GET_MODE (x2) != i1)
4741 : return -1;
4742 52 : x3 = XEXP (x2, 0);
4743 52 : if (GET_MODE (x3) != i2
4744 52 : || !register_operand (operands[1], i1))
4745 10 : return -1;
4746 : return 0;
4747 : }
4748 :
4749 : int
4750 238 : pattern1231 (rtx x1, machine_mode i1)
4751 : {
4752 238 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4753 238 : rtx x2;
4754 238 : int res ATTRIBUTE_UNUSED;
4755 238 : if (!register_operand (operands[0], i1)
4756 238 : || GET_MODE (x1) != i1)
4757 : return -1;
4758 228 : x2 = XVECEXP (x1, 0, 0);
4759 228 : if (GET_MODE (x2) != i1)
4760 : return -1;
4761 228 : switch (GET_MODE (operands[1]))
4762 : {
4763 59 : case E_V8HFmode:
4764 59 : if (!register_operand (operands[1], E_V8HFmode))
4765 : return -1;
4766 : return 0;
4767 :
4768 52 : case E_V8SFmode:
4769 52 : if (!nonimmediate_operand (operands[1], E_V8SFmode))
4770 : return -1;
4771 : return 1;
4772 :
4773 117 : case E_V8DFmode:
4774 117 : if (!nonimmediate_operand (operands[1], E_V8DFmode))
4775 : return -1;
4776 : return 2;
4777 :
4778 : default:
4779 : return -1;
4780 : }
4781 : }
4782 :
4783 : int
4784 9998 : pattern1240 (rtx x1)
4785 : {
4786 9998 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4787 9998 : rtx x2, x3, x4;
4788 9998 : int res ATTRIBUTE_UNUSED;
4789 9998 : x2 = XEXP (x1, 0);
4790 9998 : x3 = XEXP (x2, 0);
4791 9998 : operands[1] = x3;
4792 9998 : x4 = XEXP (x2, 1);
4793 9998 : operands[2] = x4;
4794 9998 : if (!const_int_operand (operands[2], E_QImode))
4795 : return -1;
4796 9985 : switch (GET_MODE (operands[0]))
4797 : {
4798 8067 : case E_SImode:
4799 8067 : return pattern1239 (x1,
4800 : E_DImode,
4801 8067 : E_SImode); /* [-1, 0] */
4802 :
4803 270 : case E_DImode:
4804 270 : if (pattern1239 (x1,
4805 : E_TImode,
4806 : E_DImode) != 0)
4807 : return -1;
4808 : return 1;
4809 :
4810 : default:
4811 : return -1;
4812 : }
4813 : }
4814 :
4815 : int
4816 20494 : pattern1246 (rtx x1, rtx_code i1)
4817 : {
4818 20494 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4819 20494 : rtx x2, x3, x4, x5;
4820 20494 : int res ATTRIBUTE_UNUSED;
4821 20494 : x2 = XVECEXP (x1, 0, 1);
4822 20494 : x3 = XEXP (x2, 1);
4823 20494 : if (GET_CODE (x3) != i1)
4824 : return -1;
4825 17114 : x4 = XVECEXP (x1, 0, 0);
4826 17114 : x5 = XEXP (x4, 0);
4827 17114 : if (GET_MODE (x5) != E_CCGOCmode)
4828 : return -1;
4829 17114 : return pattern366 (x1,
4830 17114 : E_CCGOCmode); /* [-1, 3] */
4831 : }
4832 :
4833 : int
4834 10387 : pattern1249 (rtx x1)
4835 : {
4836 10387 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4837 10387 : rtx x2, x3, x4, x5, x6, x7;
4838 10387 : int res ATTRIBUTE_UNUSED;
4839 10387 : x2 = XVECEXP (x1, 0, 1);
4840 10387 : x3 = XEXP (x2, 1);
4841 10387 : x4 = XEXP (x3, 0);
4842 10387 : if (!rtx_equal_p (x4, operands[1]))
4843 : return -1;
4844 10387 : x5 = XVECEXP (x1, 0, 0);
4845 10387 : x6 = XEXP (x5, 1);
4846 10387 : x7 = XEXP (x6, 0);
4847 10387 : switch (GET_MODE (x7))
4848 : {
4849 202 : case E_QImode:
4850 202 : if (!nonimmediate_operand (operands[1], E_QImode)
4851 146 : || !nonimmediate_operand (operands[0], E_QImode)
4852 348 : || GET_MODE (x3) != E_QImode)
4853 56 : return -1;
4854 : return 0;
4855 :
4856 738 : case E_HImode:
4857 738 : if (!nonimmediate_operand (operands[1], E_HImode)
4858 738 : || !nonimmediate_operand (operands[0], E_HImode)
4859 1476 : || GET_MODE (x3) != E_HImode)
4860 0 : return -1;
4861 : return 1;
4862 :
4863 4574 : case E_SImode:
4864 4574 : if (!nonimmediate_operand (operands[1], E_SImode)
4865 4551 : || !nonimmediate_operand (operands[0], E_SImode)
4866 9125 : || GET_MODE (x3) != E_SImode)
4867 23 : return -1;
4868 : return 2;
4869 :
4870 4807 : case E_DImode:
4871 4807 : if (!nonimmediate_operand (operands[1], E_DImode)
4872 4807 : || !nonimmediate_operand (operands[0], E_DImode)
4873 9614 : || GET_MODE (x3) != E_DImode)
4874 0 : return -1;
4875 : return 3;
4876 :
4877 : default:
4878 : return -1;
4879 : }
4880 : }
4881 :
4882 : int
4883 96322 : pattern1265 (rtx x1, int i1)
4884 : {
4885 96322 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4886 96322 : rtx x2, x3, x4, x5, x6, x7, x8;
4887 96322 : int res ATTRIBUTE_UNUSED;
4888 96322 : if (GET_CODE (x1) != SET)
4889 : return -1;
4890 71017 : x2 = XEXP (x1, 1);
4891 71017 : if (GET_CODE (x2) != COMPARE
4892 29786 : || GET_MODE (x2) != E_CCZmode)
4893 : return -1;
4894 18309 : x3 = XEXP (x2, 1);
4895 18309 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
4896 : return -1;
4897 8433 : x4 = XEXP (x1, 0);
4898 8433 : if (GET_CODE (x4) != REG
4899 8433 : || REGNO (x4) != 17
4900 16866 : || GET_MODE (x4) != E_CCZmode)
4901 : return -1;
4902 8433 : x5 = XEXP (x2, 0);
4903 8433 : if (!rtx_equal_p (x5, operands[0]))
4904 : return -1;
4905 3063 : x6 = PATTERN (peep2_next_insn (2));
4906 3063 : if (GET_CODE (x6) != SET)
4907 : return -1;
4908 3063 : x7 = XEXP (x6, 1);
4909 3063 : if (GET_CODE (x7) != IF_THEN_ELSE)
4910 : return -1;
4911 3058 : x8 = XEXP (x7, 0);
4912 3058 : if (!bt_comparison_operator (x8, E_VOIDmode))
4913 : return -1;
4914 : return 0;
4915 : }
4916 :
4917 : int
4918 0 : pattern1276 (rtx x1, machine_mode i1)
4919 : {
4920 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4921 0 : rtx x2, x3;
4922 0 : int res ATTRIBUTE_UNUSED;
4923 0 : if (!nonimmediate_operand (operands[0], i1)
4924 0 : || GET_MODE (x1) != i1)
4925 : return -1;
4926 0 : x2 = XEXP (x1, 0);
4927 0 : if (GET_MODE (x2) != i1
4928 0 : || !nonimmediate_operand (operands[1], i1))
4929 0 : return -1;
4930 0 : x3 = XEXP (x2, 1);
4931 0 : if (GET_MODE (x3) != i1
4932 0 : || !general_operand (operands[2], i1))
4933 0 : return -1;
4934 : return 0;
4935 : }
4936 :
4937 : int
4938 666 : pattern1284 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
4939 : {
4940 666 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4941 666 : rtx x2;
4942 666 : int res ATTRIBUTE_UNUSED;
4943 666 : if (!register_operand (operands[0], i2)
4944 666 : || GET_MODE (x1) != i2)
4945 : return -1;
4946 640 : x2 = XEXP (x1, 0);
4947 640 : if (GET_MODE (x2) != i2
4948 640 : || !register_operand (operands[1], i3)
4949 640 : || !nonimmediate_operand (operands[2], i3)
4950 640 : || !nonimm_or_0_operand (operands[4], i2)
4951 1259 : || !register_operand (operands[5], i1))
4952 54 : return -1;
4953 : return 0;
4954 : }
4955 :
4956 : int
4957 1755 : pattern1293 (rtx x1, machine_mode i1, machine_mode i2)
4958 : {
4959 1755 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4960 1755 : int res ATTRIBUTE_UNUSED;
4961 1755 : if (!register_operand (operands[0], i2)
4962 1750 : || GET_MODE (x1) != i2
4963 1750 : || !vector_all_ones_operand (operands[1], i2)
4964 384 : || !const0_operand (operands[2], i2)
4965 384 : || !register_operand (operands[3], i1)
4966 1860 : || !nonimmediate_operand (operands[4], i1))
4967 1650 : return -1;
4968 : return 0;
4969 : }
4970 :
4971 : int
4972 1487 : pattern1299 (rtx x1, machine_mode i1, machine_mode i2)
4973 : {
4974 1487 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4975 1487 : int res ATTRIBUTE_UNUSED;
4976 1487 : if (!nonimmediate_operand (operands[2], i2)
4977 1472 : || GET_MODE (x1) != i2
4978 1472 : || !nonimmediate_operand (operands[3], i2)
4979 2941 : || !register_operand (operands[4], i1))
4980 33 : return -1;
4981 : return 0;
4982 : }
4983 :
4984 : int
4985 787 : pattern1304 (rtx x1, machine_mode i1, machine_mode i2)
4986 : {
4987 787 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4988 787 : rtx x2, x3, x4;
4989 787 : int res ATTRIBUTE_UNUSED;
4990 787 : if (!register_operand (operands[0], i2)
4991 787 : || GET_MODE (x1) != i2)
4992 : return -1;
4993 763 : x2 = XEXP (x1, 0);
4994 763 : if (GET_MODE (x2) != i2)
4995 : return -1;
4996 763 : x3 = XEXP (x2, 0);
4997 763 : if (GET_MODE (x3) != i2
4998 763 : || !nonimmediate_operand (operands[1], i2))
4999 12 : return -1;
5000 751 : x4 = XEXP (x2, 2);
5001 751 : return pattern1299 (x4,
5002 : i1,
5003 751 : i2); /* [-1, 0] */
5004 : }
5005 :
5006 : int
5007 1050 : pattern1313 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
5008 : {
5009 1050 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5010 1050 : rtx x2, x3;
5011 1050 : int res ATTRIBUTE_UNUSED;
5012 1050 : x2 = XVECEXP (x1, 0, 0);
5013 1050 : x3 = XEXP (x2, 0);
5014 1050 : if (GET_MODE (x3) != i2
5015 1050 : || !register_operand (operands[0], i2)
5016 1002 : || GET_MODE (x1) != i2
5017 1002 : || GET_MODE (x2) != i2
5018 1002 : || !register_operand (operands[1], i3)
5019 1002 : || !nonimm_or_0_operand (operands[2], i2)
5020 974 : || !register_operand (operands[3], i1)
5021 1980 : || !const_4_or_8_to_11_operand (operands[4], E_SImode))
5022 120 : return -1;
5023 : return 0;
5024 : }
5025 :
5026 : int
5027 1059 : pattern1320 (rtx x1, int i1)
5028 : {
5029 1059 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5030 1059 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5031 1059 : int res ATTRIBUTE_UNUSED;
5032 1059 : if (XVECLEN (x1, 0) != i1)
5033 : return -1;
5034 1059 : x2 = XVECEXP (x1, 0, 0);
5035 1059 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
5036 : return -1;
5037 1059 : x3 = XVECEXP (x1, 0, 1);
5038 1059 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
5039 : return -1;
5040 1059 : x4 = XVECEXP (x1, 0, 2);
5041 1059 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
5042 : return -1;
5043 1059 : x5 = XVECEXP (x1, 0, 3);
5044 1059 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
5045 : return -1;
5046 1059 : x6 = XVECEXP (x1, 0, 4);
5047 1059 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
5048 : return -1;
5049 1059 : x7 = XVECEXP (x1, 0, 5);
5050 1059 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
5051 : return -1;
5052 1059 : x8 = XVECEXP (x1, 0, 6);
5053 1059 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
5054 : return -1;
5055 1059 : x9 = XVECEXP (x1, 0, 7);
5056 1059 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 14])
5057 0 : return -1;
5058 : return 0;
5059 : }
5060 :
5061 : int
5062 27868 : pattern1331 (rtx x1)
5063 : {
5064 27868 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5065 27868 : rtx x2, x3, x4, x5, x6, x7, x8;
5066 27868 : int res ATTRIBUTE_UNUSED;
5067 27868 : x2 = XVECEXP (x1, 0, 1);
5068 27868 : x3 = XEXP (x2, 1);
5069 27868 : x4 = XEXP (x3, 0);
5070 27868 : if (!rtx_equal_p (x4, operands[1]))
5071 : return -1;
5072 27862 : x5 = XEXP (x3, 1);
5073 27862 : if (!rtx_equal_p (x5, operands[2]))
5074 : return -1;
5075 27858 : x6 = XVECEXP (x1, 0, 0);
5076 27858 : x7 = XEXP (x6, 1);
5077 27858 : x8 = XEXP (x7, 0);
5078 27858 : switch (GET_MODE (x8))
5079 : {
5080 466 : case E_QImode:
5081 466 : return pattern1330 (x3,
5082 466 : E_QImode); /* [-1, 0] */
5083 :
5084 135 : case E_HImode:
5085 135 : if (pattern1330 (x3,
5086 : E_HImode) != 0)
5087 : return -1;
5088 : return 1;
5089 :
5090 4847 : case E_SImode:
5091 4847 : if (pattern1330 (x3,
5092 : E_SImode) != 0)
5093 : return -1;
5094 : return 2;
5095 :
5096 22131 : case E_DImode:
5097 22131 : if (!nonimmediate_operand (operands[1], E_DImode)
5098 18423 : || !const_1_to_63_operand (operands[2], E_QImode)
5099 17352 : || !nonimmediate_operand (operands[0], E_DImode)
5100 39483 : || GET_MODE (x3) != E_DImode)
5101 4779 : return -1;
5102 : return 3;
5103 :
5104 : default:
5105 : return -1;
5106 : }
5107 : }
5108 :
5109 : int
5110 1681 : pattern1350 ()
5111 : {
5112 1681 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5113 1681 : int res ATTRIBUTE_UNUSED;
5114 1681 : switch (GET_MODE (operands[1]))
5115 : {
5116 1538 : case E_QImode:
5117 1538 : if (!general_reg_operand (operands[1], E_QImode)
5118 1538 : || !nonimmediate_operand (operands[2], E_QImode))
5119 590 : return -1;
5120 : return 0;
5121 :
5122 143 : case E_HImode:
5123 143 : if (!general_reg_operand (operands[1], E_HImode)
5124 143 : || !nonimmediate_operand (operands[2], E_HImode))
5125 10 : return -1;
5126 : return 1;
5127 :
5128 : default:
5129 : return -1;
5130 : }
5131 : }
5132 :
5133 : int
5134 8944 : pattern1356 (rtx x1, machine_mode i1)
5135 : {
5136 8944 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5137 8944 : rtx x2, x3, x4;
5138 8944 : int res ATTRIBUTE_UNUSED;
5139 8944 : x2 = XEXP (x1, 0);
5140 8944 : operands[2] = x2;
5141 8944 : if (!general_reg_operand (operands[2], i1))
5142 : return -1;
5143 4873 : x3 = XEXP (x1, 1);
5144 4873 : operands[3] = x3;
5145 4873 : if (!general_gr_operand (operands[3], i1))
5146 : return -1;
5147 1748 : x4 = PATTERN (peep2_next_insn (3));
5148 1748 : return pattern963 (x4,
5149 1748 : i1); /* [-1, 0] */
5150 : }
5151 :
5152 : int
5153 0 : pattern1364 (rtx x1, machine_mode i1)
5154 : {
5155 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5156 0 : rtx x2, x3, x4, x5, x6, x7;
5157 0 : int res ATTRIBUTE_UNUSED;
5158 0 : if (!general_reg_operand (operands[0], i1)
5159 0 : || GET_CODE (x1) != PARALLEL
5160 0 : || XVECLEN (x1, 0) != 2)
5161 : return -1;
5162 0 : x2 = XVECEXP (x1, 0, 0);
5163 0 : if (GET_CODE (x2) != SET)
5164 : return -1;
5165 0 : x3 = XVECEXP (x1, 0, 1);
5166 0 : if (GET_CODE (x3) != CLOBBER)
5167 : return -1;
5168 0 : x4 = XEXP (x3, 0);
5169 0 : if (GET_CODE (x4) != REG
5170 0 : || REGNO (x4) != 17
5171 0 : || GET_MODE (x4) != E_CCmode)
5172 : return -1;
5173 0 : x5 = XEXP (x2, 1);
5174 0 : if (GET_MODE (x5) != i1)
5175 : return -1;
5176 0 : x6 = XEXP (x2, 0);
5177 0 : if (!rtx_equal_p (x6, operands[0]))
5178 : return -1;
5179 0 : switch (GET_CODE (x5))
5180 : {
5181 0 : case PLUS:
5182 0 : x7 = XEXP (x5, 0);
5183 0 : if (!rtx_equal_p (x7, operands[0]))
5184 : return -1;
5185 : return 0;
5186 :
5187 0 : case IOR:
5188 0 : x7 = XEXP (x5, 0);
5189 0 : if (!rtx_equal_p (x7, operands[0]))
5190 : return -1;
5191 : return 1;
5192 :
5193 0 : case XOR:
5194 0 : x7 = XEXP (x5, 0);
5195 0 : if (!rtx_equal_p (x7, operands[0]))
5196 : return -1;
5197 : return 2;
5198 :
5199 : default:
5200 : return -1;
5201 : }
5202 : }
5203 :
5204 : int
5205 1208 : pattern1377 (rtx x1, machine_mode i1, machine_mode i2)
5206 : {
5207 1208 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5208 1208 : rtx x2;
5209 1208 : int res ATTRIBUTE_UNUSED;
5210 1208 : if (!register_operand (operands[0], i1)
5211 1208 : || GET_MODE (x1) != i1)
5212 : return -1;
5213 1126 : x2 = XEXP (x1, 0);
5214 1126 : if (GET_MODE (x2) != i1
5215 1126 : || !vector_operand (operands[1], i1)
5216 1118 : || !vector_operand (operands[2], i1)
5217 1118 : || !vector_operand (operands[3], i1)
5218 1118 : || !const0_operand (operands[4], i1)
5219 2244 : || !register_operand (operands[5], i2))
5220 91 : return -1;
5221 : return 0;
5222 : }
5223 :
5224 : int
5225 279 : pattern1386 (rtx x1, machine_mode i1, machine_mode i2)
5226 : {
5227 279 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5228 279 : rtx x2;
5229 279 : int res ATTRIBUTE_UNUSED;
5230 279 : if (!register_operand (operands[0], i2)
5231 279 : || GET_MODE (x1) != i2)
5232 : return -1;
5233 273 : x2 = XEXP (x1, 0);
5234 273 : if (GET_MODE (x2) != i2
5235 273 : || !nonimmediate_operand (operands[1], i2)
5236 546 : || pattern1385 (
5237 : i1,
5238 : i2) != 0)
5239 0 : return -1;
5240 : return 0;
5241 : }
5242 :
5243 : int
5244 258 : pattern1395 (rtx x1, machine_mode i1)
5245 : {
5246 258 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5247 258 : rtx x2, x3;
5248 258 : int res ATTRIBUTE_UNUSED;
5249 258 : if (!register_operand (operands[0], i1)
5250 258 : || GET_MODE (x1) != i1)
5251 : return -1;
5252 244 : x2 = XEXP (x1, 0);
5253 244 : if (GET_MODE (x2) != i1
5254 244 : || !nonimmediate_operand (operands[1], i1)
5255 488 : || !nonimmediate_operand (operands[2], i1))
5256 0 : return -1;
5257 244 : x3 = XEXP (x2, 2);
5258 244 : if (GET_MODE (x3) != i1
5259 244 : || !nonimmediate_operand (operands[3], i1))
5260 0 : return -1;
5261 : return 0;
5262 : }
5263 :
5264 : int
5265 5598 : pattern1405 (rtx x1, machine_mode i1, machine_mode i2)
5266 : {
5267 5598 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5268 5598 : rtx x2;
5269 5598 : int res ATTRIBUTE_UNUSED;
5270 5598 : if (!register_operand (operands[0], i1)
5271 5598 : || GET_MODE (x1) != i1)
5272 : return -1;
5273 5210 : x2 = XEXP (x1, 0);
5274 5210 : if (GET_MODE (x2) != i1
5275 5210 : || !nonimmediate_operand (operands[1], i1)
5276 4692 : || !nonimm_or_0_operand (operands[4], i1)
5277 9149 : || !register_operand (operands[5], i2))
5278 3238 : return -1;
5279 : return 0;
5280 : }
5281 :
5282 : int
5283 0 : pattern1414 (rtx x1, machine_mode i1, machine_mode i2)
5284 : {
5285 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5286 0 : rtx x2, x3, x4;
5287 0 : int res ATTRIBUTE_UNUSED;
5288 0 : if (!register_operand (operands[0], i1)
5289 0 : || GET_MODE (x1) != i1)
5290 : return -1;
5291 0 : x2 = XVECEXP (x1, 0, 0);
5292 0 : if (GET_MODE (x2) != i1)
5293 : return -1;
5294 0 : x3 = XEXP (x2, 0);
5295 0 : if (GET_MODE (x3) != i1)
5296 : return -1;
5297 0 : x4 = XEXP (x3, 0);
5298 0 : if (GET_MODE (x4) != i2
5299 0 : || !nonimmediate_operand (operands[1], i2)
5300 0 : || !register_operand (operands[2], i1))
5301 0 : return -1;
5302 : return 0;
5303 : }
5304 :
5305 : int
5306 333 : pattern1422 (rtx x1, machine_mode i1)
5307 : {
5308 333 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5309 333 : rtx x2, x3;
5310 333 : int res ATTRIBUTE_UNUSED;
5311 333 : if (!register_operand (operands[0], i1)
5312 333 : || GET_MODE (x1) != i1)
5313 : return -1;
5314 320 : x2 = XVECEXP (x1, 0, 0);
5315 320 : if (GET_MODE (x2) != i1)
5316 : return -1;
5317 320 : x3 = XEXP (x2, 0);
5318 320 : if (GET_MODE (x3) != i1
5319 320 : || !register_operand (operands[1], i1)
5320 312 : || !register_operand (operands[2], i1)
5321 627 : || !register_operand (operands[3], i1))
5322 13 : return -1;
5323 : return 0;
5324 : }
5325 :
5326 : int
5327 614 : pattern1430 (rtx x1, machine_mode i1)
5328 : {
5329 614 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5330 614 : int res ATTRIBUTE_UNUSED;
5331 614 : if (!register_operand (operands[0], i1)
5332 614 : || GET_MODE (x1) != i1
5333 614 : || !nonimmediate_operand (operands[1], i1)
5334 1228 : || !register_operand (operands[2], i1))
5335 107 : return -1;
5336 : return 0;
5337 : }
5338 :
5339 : int
5340 213 : pattern1437 (rtx x1, machine_mode i1)
5341 : {
5342 213 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5343 213 : int res ATTRIBUTE_UNUSED;
5344 213 : if (GET_MODE (x1) != i1
5345 213 : || !register_operand (operands[1], i1)
5346 213 : || !nonimmediate_operand (operands[2], i1)
5347 230 : || !scratch_operand (operands[0], i1))
5348 196 : return -1;
5349 : return 0;
5350 : }
5351 :
5352 : int
5353 59 : pattern1443 (rtx x1)
5354 : {
5355 59 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5356 59 : rtx x2, x3, x4, x5, x6, x7;
5357 59 : int res ATTRIBUTE_UNUSED;
5358 59 : x2 = XEXP (x1, 0);
5359 59 : operands[0] = x2;
5360 59 : x3 = XEXP (x1, 1);
5361 59 : x4 = XEXP (x3, 0);
5362 59 : x5 = XEXP (x4, 0);
5363 59 : x6 = XEXP (x5, 1);
5364 59 : operands[2] = x6;
5365 59 : if (!register_operand (operands[2], E_QImode))
5366 : return -1;
5367 34 : x7 = XEXP (x3, 1);
5368 34 : operands[1] = x7;
5369 34 : switch (GET_MODE (operands[0]))
5370 : {
5371 22 : case E_QImode:
5372 22 : return pattern1442 (x3,
5373 22 : E_QImode); /* [-1, 0] */
5374 :
5375 12 : case E_HImode:
5376 12 : if (pattern1442 (x3,
5377 : E_HImode) != 0)
5378 : return -1;
5379 : return 1;
5380 :
5381 : default:
5382 : return -1;
5383 : }
5384 : }
5385 :
5386 : int
5387 5352 : pattern1457 (rtx x1, machine_mode i1)
5388 : {
5389 5352 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5390 5352 : rtx x2, x3;
5391 5352 : int res ATTRIBUTE_UNUSED;
5392 5352 : if (!register_operand (operands[0], i1)
5393 5352 : || !addsub_vm_operator (operands[6], i1))
5394 1311 : return -1;
5395 4041 : x2 = XEXP (x1, 0);
5396 4041 : if (GET_MODE (x2) != i1
5397 4041 : || !vector_operand (operands[1], i1)
5398 4482 : || !vector_operand (operands[2], i1))
5399 3600 : return -1;
5400 441 : x3 = XEXP (x1, 1);
5401 441 : if (GET_MODE (x3) != i1
5402 441 : || !register_operand (operands[3], i1)
5403 874 : || !vector_operand (operands[4], i1))
5404 8 : return -1;
5405 : return 0;
5406 : }
5407 :
5408 : int
5409 563 : pattern1465 (rtx x1, machine_mode i1)
5410 : {
5411 563 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5412 563 : rtx x2, x3;
5413 563 : int res ATTRIBUTE_UNUSED;
5414 563 : if (!register_operand (operands[0], i1)
5415 563 : || GET_MODE (x1) != i1
5416 1126 : || !register_operand (operands[1], i1))
5417 354 : return -1;
5418 209 : x2 = XEXP (x1, 2);
5419 209 : x3 = XEXP (x2, 0);
5420 209 : if (GET_MODE (x3) != i1
5421 209 : || !register_operand (operands[2], i1))
5422 90 : return -1;
5423 : return 0;
5424 : }
5425 :
5426 : int
5427 564 : pattern1469 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
5428 : {
5429 564 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5430 564 : rtx x2;
5431 564 : int res ATTRIBUTE_UNUSED;
5432 564 : if (!register_operand (operands[0], i1)
5433 564 : || GET_MODE (x1) != i1)
5434 : return -1;
5435 493 : x2 = XEXP (x1, 0);
5436 493 : if (GET_MODE (x2) != i1
5437 493 : || !register_operand (operands[1], i1)
5438 461 : || !register_operand (operands[2], i1)
5439 461 : || !nonimmediate_operand (operands[3], i2)
5440 461 : || !const0_operand (operands[5], i1)
5441 954 : || !register_operand (operands[6], i3))
5442 68 : return -1;
5443 : return 0;
5444 : }
5445 :
5446 : int
5447 0 : pattern1481 (rtx x1, machine_mode i1, machine_mode i2)
5448 : {
5449 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5450 0 : rtx x2;
5451 0 : int res ATTRIBUTE_UNUSED;
5452 0 : if (!register_operand (operands[0], i1)
5453 0 : || GET_MODE (x1) != i1
5454 0 : || !vector_all_ones_operand (operands[1], i1))
5455 0 : return -1;
5456 0 : x2 = XEXP (x1, 2);
5457 0 : return pattern1480 (x2,
5458 : i1,
5459 0 : i2); /* [-1, 0] */
5460 : }
5461 :
5462 : int
5463 1188 : pattern1486 (rtx x1, machine_mode i1, machine_mode i2)
5464 : {
5465 1188 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5466 1188 : rtx x2, x3;
5467 1188 : int res ATTRIBUTE_UNUSED;
5468 1188 : if (!register_operand (operands[0], i1)
5469 1188 : || GET_MODE (x1) != i1)
5470 : return -1;
5471 1155 : x2 = XVECEXP (x1, 0, 0);
5472 1155 : if (GET_MODE (x2) != i1)
5473 : return -1;
5474 1155 : x3 = XEXP (x2, 0);
5475 1155 : if (GET_MODE (x3) != i1
5476 1155 : || !register_operand (operands[1], i1)
5477 1147 : || !nonimm_or_0_operand (operands[2], i1)
5478 2302 : || !register_operand (operands[3], i2))
5479 23 : return -1;
5480 : return 0;
5481 : }
5482 :
5483 : int
5484 87015 : pattern1493 (rtx x1, machine_mode i1, machine_mode i2)
5485 : {
5486 87015 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5487 87015 : rtx x2;
5488 87015 : int res ATTRIBUTE_UNUSED;
5489 87015 : if (!nonimmediate_operand (operands[0], i1)
5490 87015 : || GET_MODE (x1) != i1)
5491 : return -1;
5492 87015 : x2 = XEXP (x1, 0);
5493 87015 : if (GET_MODE (x2) != i2
5494 87015 : || !nonimmediate_operand (operands[1], i1)
5495 174010 : || !nonimmediate_operand (operands[2], i1))
5496 199 : return -1;
5497 : return 0;
5498 : }
5499 :
5500 : int
5501 11924 : pattern1499 (rtx x1, machine_mode i1)
5502 : {
5503 11924 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5504 11924 : int res ATTRIBUTE_UNUSED;
5505 11924 : if (!nonimmediate_operand (operands[1], i1)
5506 11924 : || !general_operand (operands[2], i1)
5507 11888 : || !nonimmediate_operand (operands[0], i1)
5508 23812 : || GET_MODE (x1) != i1)
5509 36 : return -1;
5510 : return 0;
5511 : }
5512 :
5513 : int
5514 69624 : pattern1505 (rtx x1, machine_mode i1)
5515 : {
5516 69624 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5517 69624 : rtx x2, x3, x4, x5;
5518 69624 : int res ATTRIBUTE_UNUSED;
5519 69624 : if (!register_operand (operands[0], i1))
5520 : return -1;
5521 69620 : x2 = XVECEXP (x1, 0, 0);
5522 69620 : x3 = XEXP (x2, 1);
5523 69620 : if (GET_MODE (x3) != i1
5524 69620 : || !register_operand (operands[2], i1)
5525 69332 : || !const_int_operand (operands[3], i1)
5526 138952 : || !register_operand (operands[1], i1))
5527 288 : return -1;
5528 69332 : x4 = XVECEXP (x1, 0, 1);
5529 69332 : x5 = XEXP (x4, 1);
5530 69332 : if (GET_MODE (x5) != i1)
5531 : return -1;
5532 : return 0;
5533 : }
5534 :
5535 : int
5536 4650 : pattern1516 (rtx x1)
5537 : {
5538 4650 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5539 4650 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5540 4650 : rtx x10;
5541 4650 : int res ATTRIBUTE_UNUSED;
5542 4650 : x2 = XVECEXP (x1, 0, 0);
5543 4650 : x3 = XEXP (x2, 1);
5544 4650 : x4 = XEXP (x3, 0);
5545 4650 : x5 = XEXP (x4, 0);
5546 4650 : if (!rtx_equal_p (x5, operands[0]))
5547 : return -1;
5548 4253 : x6 = XVECEXP (x1, 0, 1);
5549 4253 : x7 = XEXP (x6, 1);
5550 4253 : if (!rtx_equal_p (x7, operands[3]))
5551 : return -1;
5552 4253 : x8 = XEXP (x6, 0);
5553 4253 : if (!rtx_equal_p (x8, operands[0]))
5554 : return -1;
5555 4253 : x9 = PATTERN (peep2_next_insn (2));
5556 4253 : x10 = XEXP (x9, 1);
5557 4253 : if (!rtx_equal_p (x10, operands[0]))
5558 : return -1;
5559 : return 0;
5560 : }
5561 :
5562 : int
5563 546 : pattern1525 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
5564 : {
5565 546 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5566 546 : rtx x2;
5567 546 : int res ATTRIBUTE_UNUSED;
5568 546 : if (!register_operand (operands[0], i2)
5569 546 : || GET_MODE (x1) != i2)
5570 : return -1;
5571 503 : x2 = XEXP (x1, 0);
5572 503 : if (GET_MODE (x2) != i2
5573 503 : || !register_operand (operands[1], i2)
5574 503 : || !register_operand (operands[2], i2)
5575 503 : || !nonimmediate_operand (operands[3], i1)
5576 1006 : || !register_operand (operands[5], i3))
5577 0 : return -1;
5578 : return 0;
5579 : }
5580 :
5581 : int
5582 274 : pattern1532 (rtx x1, machine_mode i1, machine_mode i2)
5583 : {
5584 274 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5585 274 : rtx x2, x3, x4, x5, x6, x7;
5586 274 : int res ATTRIBUTE_UNUSED;
5587 274 : if (!register_operand (operands[0], i1)
5588 274 : || GET_MODE (x1) != i1)
5589 : return -1;
5590 269 : x2 = XEXP (x1, 0);
5591 269 : if (GET_MODE (x2) != i2)
5592 : return -1;
5593 269 : x3 = XEXP (x2, 0);
5594 269 : if (GET_MODE (x3) != i2)
5595 : return -1;
5596 269 : x4 = XEXP (x3, 0);
5597 269 : if (GET_MODE (x4) != i2)
5598 : return -1;
5599 269 : x5 = XEXP (x4, 0);
5600 269 : if (GET_MODE (x5) != i2)
5601 : return -1;
5602 269 : x6 = XEXP (x5, 0);
5603 269 : if (GET_MODE (x6) != i2
5604 269 : || !vector_operand (operands[1], i1))
5605 4 : return -1;
5606 265 : x7 = XEXP (x5, 1);
5607 265 : if (GET_MODE (x7) != i2
5608 265 : || !vector_operand (operands[2], i1)
5609 530 : || !const1_operand (operands[3], i1))
5610 0 : return -1;
5611 : return 0;
5612 : }
5613 :
5614 : int
5615 6459 : pattern1546 (rtx x1)
5616 : {
5617 6459 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5618 6459 : rtx x2, x3;
5619 6459 : int res ATTRIBUTE_UNUSED;
5620 6459 : if (GET_CODE (x1) != SET)
5621 : return -1;
5622 5761 : x2 = XEXP (x1, 1);
5623 5761 : if (GET_CODE (x2) != COMPARE
5624 3292 : || GET_MODE (x2) != E_CCZmode)
5625 : return -1;
5626 3238 : x3 = XEXP (x1, 0);
5627 3238 : if (GET_CODE (x3) != REG
5628 3238 : || REGNO (x3) != 17
5629 6476 : || GET_MODE (x3) != E_CCZmode)
5630 0 : return -1;
5631 : return 0;
5632 : }
5633 :
5634 : int
5635 18 : pattern1553 (rtx x1, machine_mode i1)
5636 : {
5637 18 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5638 18 : rtx x2, x3, x4;
5639 18 : int res ATTRIBUTE_UNUSED;
5640 18 : if (!register_operand (operands[0], i1)
5641 18 : || GET_MODE (x1) != i1)
5642 : return -1;
5643 12 : x2 = XEXP (x1, 0);
5644 12 : if (GET_MODE (x2) != i1)
5645 : return -1;
5646 12 : x3 = XEXP (x2, 0);
5647 12 : if (GET_MODE (x3) != i1
5648 12 : || !nonimmediate_operand (operands[1], i1)
5649 24 : || !nonimmediate_operand (operands[2], i1))
5650 0 : return -1;
5651 12 : x4 = XEXP (x3, 2);
5652 12 : if (GET_MODE (x4) != i1
5653 12 : || !nonimmediate_operand (operands[3], i1)
5654 24 : || !const0_operand (operands[4], i1))
5655 0 : return -1;
5656 : return 0;
5657 : }
5658 :
5659 : int
5660 302 : pattern1564 (rtx x1, machine_mode i1)
5661 : {
5662 302 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5663 302 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5664 302 : rtx x10, x11, x12, x13, x14, x15;
5665 302 : int res ATTRIBUTE_UNUSED;
5666 302 : x2 = XEXP (x1, 0);
5667 302 : x3 = XEXP (x2, 0);
5668 302 : x4 = XEXP (x3, 0);
5669 302 : if (GET_MODE (x4) != i1)
5670 : return -1;
5671 302 : x5 = XEXP (x3, 1);
5672 302 : if (GET_MODE (x5) != i1)
5673 : return -1;
5674 302 : x6 = XEXP (x2, 1);
5675 302 : x7 = XEXP (x6, 0);
5676 302 : if (GET_MODE (x7) != i1)
5677 : return -1;
5678 302 : x8 = XEXP (x6, 1);
5679 302 : if (GET_MODE (x8) != i1)
5680 : return -1;
5681 302 : x9 = XEXP (x1, 1);
5682 302 : x10 = XEXP (x9, 0);
5683 302 : x11 = XEXP (x10, 0);
5684 302 : if (GET_MODE (x11) != i1)
5685 : return -1;
5686 302 : x12 = XEXP (x10, 1);
5687 302 : if (GET_MODE (x12) != i1)
5688 : return -1;
5689 302 : x13 = XEXP (x9, 1);
5690 302 : x14 = XEXP (x13, 0);
5691 302 : if (GET_MODE (x14) != i1)
5692 : return -1;
5693 302 : x15 = XEXP (x13, 1);
5694 302 : if (GET_MODE (x15) != i1)
5695 0 : return -1;
5696 : return 0;
5697 : }
5698 :
5699 : int
5700 34 : pattern1578 (rtx x1, machine_mode i1)
5701 : {
5702 34 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5703 34 : rtx x2, x3;
5704 34 : int res ATTRIBUTE_UNUSED;
5705 34 : if (!nonimmediate_operand (operands[0], i1)
5706 34 : || GET_MODE (x1) != i1)
5707 : return -1;
5708 34 : x2 = XEXP (x1, 0);
5709 34 : if (GET_MODE (x2) != i1
5710 34 : || !nonimmediate_operand (operands[1], i1))
5711 0 : return -1;
5712 34 : x3 = XEXP (x2, 1);
5713 34 : if (GET_MODE (x3) != i1
5714 34 : || !x86_64_general_operand (operands[2], i1))
5715 0 : return -1;
5716 : return 0;
5717 : }
5718 :
5719 : int
5720 0 : pattern1586 (rtx x1, machine_mode i1)
5721 : {
5722 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5723 0 : rtx x2, x3, x4, x5;
5724 0 : int res ATTRIBUTE_UNUSED;
5725 0 : x2 = XVECEXP (x1, 0, 0);
5726 0 : x3 = XEXP (x2, 0);
5727 0 : if (GET_MODE (x3) != i1
5728 0 : || !register_operand (operands[2], i1))
5729 0 : return -1;
5730 0 : switch (GET_MODE (operands[1]))
5731 : {
5732 0 : case E_SImode:
5733 0 : if (!register_operand (operands[1], E_SImode)
5734 0 : || !register_operand (operands[0], E_SImode))
5735 0 : return -1;
5736 0 : x4 = XVECEXP (x1, 0, 1);
5737 0 : x5 = XEXP (x4, 1);
5738 0 : if (GET_MODE (x5) != E_SImode)
5739 : return -1;
5740 : return 0;
5741 :
5742 0 : case E_DImode:
5743 0 : if (!register_operand (operands[1], E_DImode)
5744 0 : || !register_operand (operands[0], E_DImode))
5745 0 : return -1;
5746 0 : x4 = XVECEXP (x1, 0, 1);
5747 0 : x5 = XEXP (x4, 1);
5748 0 : if (GET_MODE (x5) != E_DImode)
5749 : return -1;
5750 : return 1;
5751 :
5752 : default:
5753 : return -1;
5754 : }
5755 : }
5756 :
5757 : int
5758 976 : pattern1600 (machine_mode i1, machine_mode i2)
5759 : {
5760 976 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5761 976 : int res ATTRIBUTE_UNUSED;
5762 976 : if (!register_operand (operands[2], i2)
5763 968 : || !register_operand (operands[3], i2)
5764 968 : || !const0_operand (operands[4], i2)
5765 1944 : || !register_operand (operands[5], i1))
5766 24 : return -1;
5767 : return 0;
5768 : }
5769 :
5770 : int
5771 1223 : pattern1606 (rtx x1, machine_mode i1, machine_mode i2)
5772 : {
5773 1223 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5774 1223 : rtx x2, x3, x4;
5775 1223 : int res ATTRIBUTE_UNUSED;
5776 1223 : if (!register_operand (operands[0], i2)
5777 1223 : || GET_MODE (x1) != i2)
5778 : return -1;
5779 1200 : x2 = XVECEXP (x1, 0, 0);
5780 1200 : if (GET_MODE (x2) != i2)
5781 : return -1;
5782 1200 : x3 = XEXP (x2, 0);
5783 1200 : if (GET_MODE (x3) != i2
5784 1200 : || !register_operand (operands[2], i2))
5785 10 : return -1;
5786 1190 : x4 = XEXP (x3, 2);
5787 1190 : if (GET_MODE (x4) != i2
5788 1190 : || !register_operand (operands[4], i1))
5789 0 : return -1;
5790 : return 0;
5791 : }
5792 :
5793 : int
5794 287 : pattern1614 (machine_mode i1)
5795 : {
5796 287 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5797 287 : int res ATTRIBUTE_UNUSED;
5798 287 : if (!vsib_address_operand (operands[0], i1))
5799 : return -1;
5800 233 : switch (GET_MODE (operands[2]))
5801 : {
5802 159 : case E_V8SImode:
5803 159 : if (!register_operand (operands[2], E_V8SImode))
5804 : return -1;
5805 : return 0;
5806 :
5807 74 : case E_V8DImode:
5808 74 : if (!register_operand (operands[2], E_V8DImode))
5809 : return -1;
5810 : return 1;
5811 :
5812 : default:
5813 : return -1;
5814 : }
5815 : }
5816 :
5817 : int
5818 1076 : pattern1622 (rtx x1, machine_mode i1, machine_mode i2)
5819 : {
5820 1076 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5821 1076 : rtx x2, x3;
5822 1076 : int res ATTRIBUTE_UNUSED;
5823 1076 : if (!register_operand (operands[0], i2)
5824 1043 : || GET_MODE (x1) != i2
5825 2119 : || !vsib_mem_operator (operands[5], i1))
5826 33 : return -1;
5827 1043 : switch (GET_MODE (operands[6]))
5828 : {
5829 94 : case E_HImode:
5830 94 : x2 = XVECEXP (x1, 0, 2);
5831 94 : x3 = XEXP (x2, 0);
5832 94 : return pattern1621 (x3,
5833 : E_V16SImode,
5834 94 : E_HImode); /* [-1, 1] */
5835 :
5836 95 : case E_QImode:
5837 95 : x2 = XVECEXP (x1, 0, 2);
5838 95 : x3 = XEXP (x2, 0);
5839 95 : res = pattern1621 (x3,
5840 : E_V8DImode,
5841 : E_QImode);
5842 95 : if (res >= 0)
5843 58 : return res + 2; /* [2, 3] */
5844 : return -1;
5845 :
5846 : default:
5847 : return -1;
5848 : }
5849 : }
5850 :
5851 : int
5852 2 : pattern1634 (rtx x1)
5853 : {
5854 2 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5855 2 : rtx x2, x3, x4, x5, x6, x7, x8;
5856 2 : int res ATTRIBUTE_UNUSED;
5857 2 : x2 = XVECEXP (x1, 0, 1);
5858 2 : x3 = XEXP (x2, 1);
5859 2 : x4 = XEXP (x3, 1);
5860 2 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
5861 : return -1;
5862 2 : x5 = XEXP (x3, 0);
5863 2 : if (!rtx_equal_p (x5, operands[1]))
5864 : return -1;
5865 2 : x6 = XVECEXP (x1, 0, 0);
5866 2 : x7 = XEXP (x6, 1);
5867 2 : x8 = XVECEXP (x7, 0, 0);
5868 2 : switch (GET_MODE (x8))
5869 : {
5870 0 : case E_SImode:
5871 0 : if (!nonimmediate_operand (operands[1], E_SImode)
5872 0 : || !register_operand (operands[0], E_SImode)
5873 0 : || GET_MODE (x3) != E_SImode)
5874 0 : return -1;
5875 : return 0;
5876 :
5877 2 : case E_DImode:
5878 2 : if (!nonimmediate_operand (operands[1], E_DImode)
5879 2 : || !register_operand (operands[0], E_DImode)
5880 4 : || GET_MODE (x3) != E_DImode)
5881 0 : return -1;
5882 : return 1;
5883 :
5884 : default:
5885 : return -1;
5886 : }
5887 : }
5888 :
5889 : int
5890 1420 : pattern1650 (rtx x1, machine_mode i1)
5891 : {
5892 1420 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5893 1420 : rtx x2, x3, x4;
5894 1420 : int res ATTRIBUTE_UNUSED;
5895 1420 : if (!x86_64_nonmemory_operand (operands[1], i1))
5896 : return -1;
5897 1420 : operands[3] = x1;
5898 1420 : if (!register_operand (operands[3], i1))
5899 : return -1;
5900 9 : x2 = PATTERN (peep2_next_insn (1));
5901 9 : x3 = XEXP (x2, 1);
5902 9 : if (!rtx_equal_p (x3, operands[3]))
5903 : return -1;
5904 9 : x4 = XEXP (x2, 0);
5905 9 : if (!rtx_equal_p (x4, operands[0]))
5906 : return -1;
5907 : return 0;
5908 : }
5909 :
5910 : int
5911 470 : pattern1658 (rtx x1, machine_mode i1, machine_mode i2)
5912 : {
5913 470 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5914 470 : rtx x2, x3;
5915 470 : int res ATTRIBUTE_UNUSED;
5916 470 : if (!register_operand (operands[0], i1)
5917 470 : || GET_MODE (x1) != i1)
5918 : return -1;
5919 397 : x2 = XEXP (x1, 0);
5920 397 : if (GET_MODE (x2) != i1)
5921 : return -1;
5922 397 : x3 = XEXP (x2, 0);
5923 397 : if (GET_MODE (x3) != i2
5924 397 : || !register_operand (operands[1], i1)
5925 395 : || !nonimmediate_operand (operands[2], i1)
5926 395 : || !const_0_to_3_operand (operands[3], E_VOIDmode)
5927 395 : || !const_0_to_3_operand (operands[4], E_VOIDmode)
5928 383 : || !const_4_to_7_operand (operands[5], E_VOIDmode)
5929 383 : || !const_4_to_7_operand (operands[6], E_VOIDmode)
5930 780 : || !nonimm_or_0_operand (operands[7], i1))
5931 14 : return -1;
5932 : return 0;
5933 : }
5934 :
5935 : int
5936 191 : pattern1668 (rtx x1, machine_mode i1)
5937 : {
5938 191 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5939 191 : rtx x2, x3, x4;
5940 191 : int res ATTRIBUTE_UNUSED;
5941 191 : if (!register_operand (operands[0], i1)
5942 191 : || GET_MODE (x1) != i1)
5943 : return -1;
5944 171 : x2 = XVECEXP (x1, 0, 0);
5945 171 : if (GET_MODE (x2) != i1)
5946 : return -1;
5947 171 : x3 = XEXP (x2, 0);
5948 171 : if (GET_MODE (x3) != i1)
5949 : return -1;
5950 171 : x4 = XEXP (x3, 0);
5951 171 : if (GET_MODE (x4) != i1
5952 171 : || !nonimmediate_operand (operands[1], i1)
5953 171 : || !register_operand (operands[2], i1)
5954 329 : || !register_operand (operands[3], i1))
5955 15 : return -1;
5956 : return 0;
5957 : }
5958 :
5959 : int
5960 31 : pattern1680 (rtx x1, machine_mode i1)
5961 : {
5962 31 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5963 31 : rtx x2, x3, x4, x5;
5964 31 : int res ATTRIBUTE_UNUSED;
5965 31 : if (!register_operand (operands[2], i1)
5966 31 : || !register_operand (operands[3], i1)
5967 62 : || !register_operand (operands[0], i1))
5968 0 : return -1;
5969 31 : x2 = XVECEXP (x1, 0, 1);
5970 31 : x3 = XEXP (x2, 1);
5971 31 : if (GET_MODE (x3) != i1
5972 31 : || !register_operand (operands[1], i1))
5973 0 : return -1;
5974 31 : x4 = XVECEXP (x1, 0, 2);
5975 31 : x5 = XEXP (x4, 1);
5976 31 : if (GET_MODE (x5) != i1)
5977 : return -1;
5978 : return 0;
5979 : }
5980 :
5981 : int
5982 2468 : pattern1691 (rtx x1, machine_mode i1)
5983 : {
5984 2468 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5985 2468 : rtx x2, x3, x4;
5986 2468 : int res ATTRIBUTE_UNUSED;
5987 2468 : if (!register_operand (operands[0], i1)
5988 2468 : || GET_MODE (x1) != i1)
5989 : return -1;
5990 2436 : x2 = XVECEXP (x1, 0, 0);
5991 2436 : if (GET_MODE (x2) != i1)
5992 : return -1;
5993 2436 : x3 = XEXP (x2, 0);
5994 2436 : if (GET_MODE (x3) != i1)
5995 : return -1;
5996 2436 : x4 = XEXP (x3, 0);
5997 2436 : if (GET_MODE (x4) != i1
5998 2436 : || !register_operand (operands[2], i1))
5999 13 : return -1;
6000 : return 0;
6001 : }
6002 :
6003 : int
6004 1474 : pattern1700 (rtx x1)
6005 : {
6006 1474 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6007 1474 : rtx x2, x3, x4, x5, x6, x7, x8;
6008 1474 : int res ATTRIBUTE_UNUSED;
6009 1474 : if (!nonimmediate_operand (operands[0], E_DImode))
6010 : return -1;
6011 1474 : x2 = XEXP (x1, 1);
6012 1474 : if (GET_MODE (x2) != E_DImode)
6013 : return -1;
6014 1474 : x3 = XEXP (x2, 0);
6015 1474 : if (GET_MODE (x3) != E_TImode)
6016 : return -1;
6017 1474 : x4 = XEXP (x3, 0);
6018 1474 : if (GET_MODE (x4) != E_TImode)
6019 : return -1;
6020 1474 : x5 = XEXP (x4, 0);
6021 1474 : operands[1] = x5;
6022 1474 : if (!register_operand (operands[1], E_DImode))
6023 : return -1;
6024 1474 : x6 = XEXP (x3, 1);
6025 1474 : operands[3] = x6;
6026 1474 : if (!const_0_to_255_operand (operands[3], E_QImode))
6027 : return -1;
6028 1474 : x7 = XEXP (x1, 0);
6029 1474 : x8 = XEXP (x7, 0);
6030 1474 : if (!rtx_equal_p (x8, operands[0]))
6031 : return -1;
6032 : return 0;
6033 : }
6034 :
6035 : int
6036 380 : pattern1711 (rtx x1, int i1, int i2, int i3, int i4, int i5)
6037 : {
6038 380 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6039 380 : rtx x2, x3, x4, x5, x6;
6040 380 : int res ATTRIBUTE_UNUSED;
6041 380 : x2 = XVECEXP (x1, 0, 12);
6042 380 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + i4])
6043 : return -1;
6044 380 : x3 = XVECEXP (x1, 0, 13);
6045 380 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + i3])
6046 : return -1;
6047 380 : x4 = XVECEXP (x1, 0, 14);
6048 380 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + i2])
6049 : return -1;
6050 380 : x5 = XVECEXP (x1, 0, 15);
6051 380 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
6052 : return -1;
6053 380 : x6 = XVECEXP (x1, 0, 16);
6054 380 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + i5])
6055 0 : return -1;
6056 : return 0;
6057 : }
6058 :
6059 : int
6060 423 : pattern1720 (machine_mode i1)
6061 : {
6062 423 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6063 423 : int res ATTRIBUTE_UNUSED;
6064 423 : if (!vsib_address_operand (operands[0], i1))
6065 : return -1;
6066 401 : switch (GET_MODE (operands[2]))
6067 : {
6068 125 : case E_V16SImode:
6069 125 : if (!register_operand (operands[2], E_V16SImode)
6070 108 : || !register_operand (operands[6], E_HImode)
6071 160 : || !register_operand (operands[3], E_V16SImode))
6072 99 : return -1;
6073 : return 0;
6074 :
6075 276 : case E_V8DImode:
6076 276 : if (!register_operand (operands[2], E_V8DImode)
6077 266 : || !register_operand (operands[6], E_QImode)
6078 466 : || !register_operand (operands[3], E_V8SImode))
6079 208 : return -1;
6080 : return 1;
6081 :
6082 : default:
6083 : return -1;
6084 : }
6085 : }
6086 :
6087 : int
6088 872 : pattern1731 (rtx x1, machine_mode i1)
6089 : {
6090 872 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6091 872 : rtx x2, x3, x4;
6092 872 : int res ATTRIBUTE_UNUSED;
6093 872 : if (!vsib_mem_operator (operands[5], i1)
6094 872 : || !register_operand (operands[6], E_QImode))
6095 80 : return -1;
6096 792 : x2 = XEXP (x1, 1);
6097 792 : if (GET_MODE (x2) != i1
6098 792 : || !scratch_operand (operands[1], E_QImode))
6099 0 : return -1;
6100 792 : x3 = XEXP (x1, 0);
6101 792 : x4 = XEXP (x3, 0);
6102 792 : switch (GET_MODE (x4))
6103 : {
6104 : case E_SImode:
6105 : return 0;
6106 :
6107 792 : case E_DImode:
6108 792 : return 1;
6109 :
6110 : default:
6111 : return -1;
6112 : }
6113 : }
6114 :
6115 : int
6116 123 : pattern1742 (machine_mode i1)
6117 : {
6118 123 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6119 123 : int res ATTRIBUTE_UNUSED;
6120 123 : if (!vsib_address_operand (operands[3], i1))
6121 : return -1;
6122 119 : switch (GET_MODE (operands[2]))
6123 : {
6124 34 : case E_V4SImode:
6125 34 : if (!register_operand (operands[2], E_V4SImode))
6126 : return -1;
6127 : return 0;
6128 :
6129 85 : case E_V4DImode:
6130 85 : if (!register_operand (operands[2], E_V4DImode))
6131 : return -1;
6132 : return 1;
6133 :
6134 : default:
6135 : return -1;
6136 : }
6137 : }
6138 :
6139 : int
6140 0 : pattern1751 (rtx x1, machine_mode i1)
6141 : {
6142 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6143 0 : rtx x2, x3, x4, x5;
6144 0 : int res ATTRIBUTE_UNUSED;
6145 0 : x2 = XVECEXP (x1, 0, 1);
6146 0 : if (GET_CODE (x2) != CLOBBER)
6147 : return -1;
6148 0 : x3 = XEXP (x2, 0);
6149 0 : if (GET_CODE (x3) != REG
6150 0 : || REGNO (x3) != 17
6151 0 : || GET_MODE (x3) != E_CCmode)
6152 : return -1;
6153 0 : x4 = XVECEXP (x1, 0, 0);
6154 0 : x5 = XEXP (x4, 0);
6155 0 : operands[3] = x5;
6156 0 : if (!any_QIreg_operand (operands[3], i1))
6157 : return -1;
6158 : return 0;
6159 : }
6160 :
6161 : int
6162 148 : pattern1759 (machine_mode i1)
6163 : {
6164 148 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6165 148 : int res ATTRIBUTE_UNUSED;
6166 148 : if (!vsib_address_operand (operands[0], i1))
6167 : return -1;
6168 131 : switch (GET_MODE (operands[2]))
6169 : {
6170 75 : case E_V8SImode:
6171 75 : if (!register_operand (operands[2], E_V8SImode)
6172 75 : || !register_operand (operands[3], E_V8SImode))
6173 48 : return -1;
6174 : return 0;
6175 :
6176 56 : case E_V4DImode:
6177 56 : if (!register_operand (operands[2], E_V4DImode)
6178 56 : || !register_operand (operands[3], E_V4SImode))
6179 29 : return -1;
6180 : return 1;
6181 :
6182 : default:
6183 : return -1;
6184 : }
6185 : }
6186 :
6187 : int
6188 574 : pattern1765 (machine_mode i1)
6189 : {
6190 574 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6191 574 : int res ATTRIBUTE_UNUSED;
6192 574 : if (!vsib_address_operand (operands[4], i1))
6193 : return -1;
6194 574 : switch (GET_MODE (operands[3]))
6195 : {
6196 324 : case E_V8SImode:
6197 324 : if (!register_operand (operands[3], E_V8SImode))
6198 : return -1;
6199 : return 0;
6200 :
6201 250 : case E_V8DImode:
6202 250 : if (!register_operand (operands[3], E_V8DImode))
6203 : return -1;
6204 : return 1;
6205 :
6206 : default:
6207 : return -1;
6208 : }
6209 : }
6210 :
6211 : int
6212 22 : pattern1773 (rtx x1, machine_mode i1)
6213 : {
6214 22 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6215 22 : int res ATTRIBUTE_UNUSED;
6216 22 : if (GET_MODE (x1) != i1
6217 22 : || !nonimmediate_operand (operands[1], i1)
6218 22 : || !ix86_carry_flag_operator (operands[3], i1)
6219 44 : || !x86_64_general_operand (operands[2], i1))
6220 0 : return -1;
6221 : return 0;
6222 : }
6223 :
6224 : int
6225 147458 : pattern1781 (rtx x1, machine_mode i1, machine_mode i2)
6226 : {
6227 147458 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6228 147458 : rtx x2, x3;
6229 147458 : int res ATTRIBUTE_UNUSED;
6230 147458 : if (!register_operand (operands[1], i1)
6231 147458 : || GET_MODE (x1) != i2)
6232 : return -1;
6233 146416 : x2 = XEXP (x1, 0);
6234 146416 : if (GET_MODE (x2) != i2)
6235 : return -1;
6236 146416 : x3 = XEXP (x1, 1);
6237 146416 : if (GET_MODE (x3) != i2
6238 146416 : || !x86_64_sext_operand (operands[2], i1)
6239 292486 : || !scratch_operand (operands[0], i1))
6240 427 : return -1;
6241 : return 0;
6242 : }
6243 :
6244 : int
6245 449 : pattern1788 (rtx x1, machine_mode i1)
6246 : {
6247 449 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6248 449 : int res ATTRIBUTE_UNUSED;
6249 449 : if (!register_operand (operands[1], i1))
6250 : return -1;
6251 221 : switch (GET_MODE (x1))
6252 : {
6253 0 : case E_HImode:
6254 0 : if (!register_operand (operands[2], E_HImode))
6255 : return -1;
6256 : return 0;
6257 :
6258 201 : case E_SImode:
6259 201 : if (!register_operand (operands[2], E_SImode))
6260 : return -1;
6261 : return 1;
6262 :
6263 20 : case E_DImode:
6264 20 : if (!register_operand (operands[2], E_DImode))
6265 : return -1;
6266 : return 2;
6267 :
6268 : default:
6269 : return -1;
6270 : }
6271 : }
6272 :
6273 : int
6274 1016 : pattern1797 (machine_mode i1)
6275 : {
6276 1016 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6277 1016 : int res ATTRIBUTE_UNUSED;
6278 1016 : if (!vsib_address_operand (operands[2], i1))
6279 : return -1;
6280 976 : switch (GET_MODE (operands[3]))
6281 : {
6282 377 : case E_V4SImode:
6283 377 : if (!register_operand (operands[3], E_V4SImode))
6284 : return -1;
6285 : return 0;
6286 :
6287 599 : case E_V2DImode:
6288 599 : if (!register_operand (operands[3], E_V2DImode))
6289 : return -1;
6290 : return 1;
6291 :
6292 : default:
6293 : return -1;
6294 : }
6295 : }
6296 :
6297 : int
6298 3058 : pattern1805 (rtx x1)
6299 : {
6300 3058 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6301 3058 : rtx x2, x3, x4, x5, x6, x7;
6302 3058 : int res ATTRIBUTE_UNUSED;
6303 3058 : x2 = XEXP (x1, 1);
6304 3058 : x3 = XEXP (x2, 0);
6305 3058 : x4 = XEXP (x3, 0);
6306 3058 : if (GET_CODE (x4) != REG
6307 3058 : || REGNO (x4) != 17
6308 6116 : || GET_MODE (x4) != E_CCZmode)
6309 : return -1;
6310 3058 : x5 = XEXP (x3, 1);
6311 3058 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6312 : return -1;
6313 3058 : x6 = XEXP (x2, 2);
6314 3058 : if (GET_CODE (x6) != PC)
6315 : return -1;
6316 3009 : x7 = XEXP (x1, 0);
6317 3009 : if (GET_CODE (x7) != PC)
6318 0 : return -1;
6319 : return 0;
6320 : }
6321 :
6322 : int
6323 1020 : pattern1815 (machine_mode i1)
6324 : {
6325 1020 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6326 1020 : int res ATTRIBUTE_UNUSED;
6327 1020 : if (!vsib_address_operand (operands[3], i1))
6328 : return -1;
6329 988 : switch (GET_MODE (operands[4]))
6330 : {
6331 441 : case E_V4SImode:
6332 441 : if (!register_operand (operands[4], E_V4SImode))
6333 : return -1;
6334 : return 0;
6335 :
6336 547 : case E_V2DImode:
6337 547 : if (!register_operand (operands[4], E_V2DImode))
6338 : return -1;
6339 : return 1;
6340 :
6341 : default:
6342 : return -1;
6343 : }
6344 : }
6345 :
6346 : int
6347 0 : pattern1821 (rtx x1, machine_mode i1)
6348 : {
6349 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6350 0 : rtx x2, x3, x4, x5, x6, x7;
6351 0 : int res ATTRIBUTE_UNUSED;
6352 0 : x2 = XVECEXP (x1, 0, 0);
6353 0 : x3 = XEXP (x2, 1);
6354 0 : x4 = XEXP (x3, 0);
6355 0 : x5 = XEXP (x4, 0);
6356 0 : if (GET_MODE (x5) != i1
6357 0 : || !ix86_carry_flag_operator (operands[4], i1)
6358 0 : || !nonimmediate_operand (operands[1], i1))
6359 0 : return -1;
6360 0 : x6 = XVECEXP (x1, 0, 1);
6361 0 : x7 = XEXP (x6, 1);
6362 0 : return pattern1820 (x7,
6363 0 : i1); /* [-1, 0] */
6364 : }
6365 :
6366 : int
6367 18242 : pattern1829 (rtx x1, machine_mode i1, machine_mode i2)
6368 : {
6369 18242 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6370 18242 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6371 18242 : int res ATTRIBUTE_UNUSED;
6372 18242 : x2 = XVECEXP (x1, 0, 0);
6373 18242 : x3 = XEXP (x2, 1);
6374 18242 : x4 = XEXP (x3, 0);
6375 18242 : x5 = XEXP (x4, 0);
6376 18242 : if (GET_MODE (x5) != i2
6377 18242 : || !nonimmediate_operand (operands[1], i1)
6378 36332 : || !const_int_operand (operands[3], i2))
6379 152 : return -1;
6380 18090 : x6 = XEXP (x3, 1);
6381 18090 : if (GET_MODE (x6) != i2)
6382 : return -1;
6383 18090 : x7 = XEXP (x6, 0);
6384 18090 : if (GET_MODE (x7) != i1
6385 18090 : || !x86_64_immediate_operand (operands[2], i1)
6386 31248 : || !register_operand (operands[0], i1))
6387 4932 : return -1;
6388 13158 : x8 = XVECEXP (x1, 0, 1);
6389 13158 : x9 = XEXP (x8, 1);
6390 13158 : if (GET_MODE (x9) != i1)
6391 : return -1;
6392 : return 0;
6393 : }
6394 :
6395 : int
6396 318 : pattern1840 (rtx x1, machine_mode i1)
6397 : {
6398 318 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6399 318 : rtx x2, x3, x4, x5, x6, x7, x8;
6400 318 : int res ATTRIBUTE_UNUSED;
6401 318 : x2 = XEXP (x1, 0);
6402 318 : x3 = XEXP (x2, 0);
6403 318 : x4 = XEXP (x3, 0);
6404 318 : x5 = XEXP (x4, 0);
6405 318 : operands[1] = x5;
6406 318 : if (!nonimmediate_operand (operands[1], i1))
6407 : return -1;
6408 318 : x6 = XEXP (x3, 2);
6409 318 : if (GET_MODE (x6) != i1
6410 318 : || !register_operand (operands[3], i1))
6411 1 : return -1;
6412 317 : x7 = XEXP (x2, 1);
6413 317 : if (!rtx_equal_p (x7, operands[1]))
6414 : return -1;
6415 84 : x8 = XEXP (x1, 1);
6416 84 : if (!rtx_equal_p (x8, operands[1]))
6417 : return -1;
6418 : return 0;
6419 : }
6420 :
6421 : int
6422 26426 : pattern1851 (rtx x1, machine_mode i1)
6423 : {
6424 26426 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6425 26426 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6426 26426 : int res ATTRIBUTE_UNUSED;
6427 26426 : operands[4] = x1;
6428 26426 : if (!register_operand (operands[4], i1))
6429 : return -1;
6430 1947 : x2 = PATTERN (peep2_next_insn (3));
6431 1947 : x3 = XEXP (x2, 1);
6432 1947 : if (!rtx_equal_p (x3, operands[4]))
6433 : return -1;
6434 371 : x4 = XEXP (x2, 0);
6435 371 : if (!rtx_equal_p (x4, operands[1]))
6436 : return -1;
6437 5 : x5 = PATTERN (peep2_next_insn (4));
6438 5 : if (GET_CODE (x5) != SET)
6439 : return -1;
6440 5 : x6 = XEXP (x5, 1);
6441 5 : if (GET_CODE (x6) != COMPARE)
6442 : return -1;
6443 0 : x7 = XEXP (x6, 1);
6444 0 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6445 : return -1;
6446 0 : x8 = XEXP (x5, 0);
6447 0 : if (GET_CODE (x8) != REG
6448 0 : || REGNO (x8) != 17)
6449 : return -1;
6450 0 : x9 = XEXP (x6, 0);
6451 0 : if (!rtx_equal_p (x9, operands[4]))
6452 : return -1;
6453 : return 0;
6454 : }
6455 :
6456 : int
6457 359 : pattern1860 (rtx x1)
6458 : {
6459 359 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6460 359 : rtx x2, x3, x4, x5;
6461 359 : int res ATTRIBUTE_UNUSED;
6462 359 : x2 = XVECEXP (x1, 0, 4);
6463 359 : if (XWINT (x2, 0) != 6L)
6464 : return -1;
6465 359 : x3 = XVECEXP (x1, 0, 5);
6466 359 : if (XWINT (x3, 0) != 22L)
6467 : return -1;
6468 359 : x4 = XVECEXP (x1, 0, 6);
6469 359 : if (XWINT (x4, 0) != 7L)
6470 : return -1;
6471 359 : x5 = XVECEXP (x1, 0, 7);
6472 359 : if (XWINT (x5, 0) != 23L)
6473 0 : return -1;
6474 : return 0;
6475 : }
6476 :
6477 : int
6478 23154 : pattern1866 (rtx x1, machine_mode i1, machine_mode i2)
6479 : {
6480 23154 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6481 23154 : rtx x2, x3, x4, x5;
6482 23154 : int res ATTRIBUTE_UNUSED;
6483 23154 : if (!register_operand (operands[0], i1))
6484 : return -1;
6485 23154 : x2 = XVECEXP (x1, 0, 0);
6486 23154 : x3 = XEXP (x2, 1);
6487 23154 : if (GET_MODE (x3) != i1
6488 23154 : || !memory_operand (operands[1], i1)
6489 22992 : || !register_operand (operands[2], i1)
6490 22862 : || !register_operand (operands[3], i2)
6491 43166 : || !register_operand (operands[4], i2))
6492 3814 : return -1;
6493 19340 : x4 = XVECEXP (x1, 0, 1);
6494 19340 : x5 = XEXP (x4, 1);
6495 19340 : if (GET_MODE (x5) != i1)
6496 : return -1;
6497 : return 0;
6498 : }
6499 :
6500 : int
6501 839 : pattern1874 (rtx x1, machine_mode i1, machine_mode i2)
6502 : {
6503 839 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6504 839 : rtx x2, x3;
6505 839 : int res ATTRIBUTE_UNUSED;
6506 839 : if (GET_CODE (x1) != SIGN_EXTEND
6507 839 : || GET_MODE (x1) != i2)
6508 : return -1;
6509 839 : x2 = XEXP (x1, 0);
6510 839 : if (GET_CODE (x2) != VEC_SELECT
6511 839 : || GET_MODE (x2) != i1)
6512 : return -1;
6513 839 : x3 = XEXP (x2, 1);
6514 839 : if (GET_CODE (x3) != PARALLEL)
6515 0 : return -1;
6516 : return 0;
6517 : }
6518 :
6519 : int
6520 76118 : pattern1878 (machine_mode i1)
6521 : {
6522 76118 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6523 76118 : int res ATTRIBUTE_UNUSED;
6524 76118 : if (!register_operand (operands[6], i1)
6525 75891 : || !register_operand (operands[4], i1)
6526 72210 : || !register_operand (operands[5], i1)
6527 65277 : || !register_operand (operands[0], i1)
6528 65277 : || !register_operand (operands[1], i1)
6529 141395 : || !register_operand (operands[2], i1))
6530 10841 : return -1;
6531 : return 0;
6532 : }
6533 :
6534 : int
6535 1212 : pattern1884 ()
6536 : {
6537 1212 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6538 1212 : int res ATTRIBUTE_UNUSED;
6539 1212 : if (!const_0_to_15_operand (operands[4], E_VOIDmode)
6540 1061 : || !const_0_to_15_operand (operands[5], E_VOIDmode)
6541 962 : || !const_0_to_15_operand (operands[6], E_VOIDmode)
6542 962 : || !const_0_to_15_operand (operands[7], E_VOIDmode)
6543 934 : || !const_0_to_15_operand (operands[8], E_VOIDmode)
6544 930 : || !const_0_to_15_operand (operands[9], E_VOIDmode)
6545 930 : || !const_0_to_15_operand (operands[10], E_VOIDmode)
6546 930 : || !const_16_to_31_operand (operands[11], E_VOIDmode)
6547 859 : || !const_16_to_31_operand (operands[12], E_VOIDmode)
6548 859 : || !const_16_to_31_operand (operands[13], E_VOIDmode)
6549 859 : || !const_16_to_31_operand (operands[14], E_VOIDmode)
6550 859 : || !const_16_to_31_operand (operands[15], E_VOIDmode)
6551 859 : || !const_16_to_31_operand (operands[16], E_VOIDmode)
6552 859 : || !const_16_to_31_operand (operands[17], E_VOIDmode)
6553 2071 : || !const_16_to_31_operand (operands[18], E_VOIDmode))
6554 353 : return -1;
6555 : return 0;
6556 : }
6557 :
6558 : int
6559 5575 : pattern1893 (rtx x1, machine_mode i1, machine_mode i2)
6560 : {
6561 5575 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6562 5575 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6563 5575 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
6564 5575 : rtx x18, x19, x20, x21, x22, x23;
6565 5575 : int res ATTRIBUTE_UNUSED;
6566 5575 : x2 = XVECEXP (x1, 0, 0);
6567 5575 : x3 = XEXP (x2, 1);
6568 5575 : x4 = XEXP (x3, 0);
6569 5575 : x5 = XEXP (x4, 0);
6570 5575 : if (GET_MODE (x5) != i1)
6571 : return -1;
6572 5575 : x6 = XEXP (x5, 0);
6573 5575 : if (GET_MODE (x6) != i1
6574 5575 : || !ix86_carry_flag_operator (operands[4], i1)
6575 5575 : || !general_reg_operand (operands[0], i1)
6576 10810 : || !memory_operand (operands[1], i1))
6577 1832 : return -1;
6578 3743 : x7 = XEXP (x3, 1);
6579 3743 : if (GET_MODE (x7) != i2
6580 3743 : || !ix86_carry_flag_operator (operands[3], i2))
6581 0 : return -1;
6582 3743 : x8 = XEXP (x7, 1);
6583 3743 : if (GET_MODE (x8) != i2)
6584 : return -1;
6585 3743 : x9 = XVECEXP (x1, 0, 1);
6586 3743 : x10 = XEXP (x9, 1);
6587 3743 : if (GET_MODE (x10) != i1)
6588 : return -1;
6589 3743 : x11 = XEXP (x10, 0);
6590 3743 : if (GET_MODE (x11) != i1)
6591 : return -1;
6592 3743 : x12 = PATTERN (peep2_next_insn (1));
6593 3743 : x13 = XEXP (x12, 1);
6594 3743 : switch (GET_CODE (x13))
6595 : {
6596 2043 : case REG:
6597 2043 : if (!rtx_equal_p (x13, operands[0]))
6598 : return -1;
6599 1492 : x14 = XEXP (x12, 0);
6600 1492 : if (!rtx_equal_p (x14, operands[1]))
6601 : return -1;
6602 : return 0;
6603 :
6604 1146 : case LTU:
6605 1146 : if (peep2_current_count < 3
6606 1146 : || peep2_current_count < 4
6607 1144 : || GET_MODE (x13) != E_QImode)
6608 : return -1;
6609 1144 : x15 = XEXP (x13, 0);
6610 1144 : if (GET_CODE (x15) != REG
6611 1144 : || REGNO (x15) != 17
6612 2288 : || GET_MODE (x15) != E_CCCmode)
6613 : return -1;
6614 1144 : x16 = XEXP (x13, 1);
6615 1144 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6616 : return -1;
6617 1144 : x14 = XEXP (x12, 0);
6618 1144 : operands[5] = x14;
6619 1144 : if (!general_reg_operand (operands[5], E_QImode))
6620 : return -1;
6621 1136 : x17 = PATTERN (peep2_next_insn (2));
6622 1136 : if (GET_CODE (x17) != SET)
6623 : return -1;
6624 917 : x18 = XEXP (x17, 1);
6625 917 : if (GET_CODE (x18) != ZERO_EXTEND
6626 15 : || GET_MODE (x18) != i1)
6627 : return -1;
6628 15 : x19 = XEXP (x17, 0);
6629 15 : operands[6] = x19;
6630 15 : if (!general_reg_operand (operands[6], i1))
6631 : return -1;
6632 15 : x20 = XEXP (x18, 0);
6633 15 : if (!rtx_equal_p (x20, operands[5]))
6634 : return -1;
6635 15 : x21 = PATTERN (peep2_next_insn (3));
6636 15 : if (GET_CODE (x21) != SET)
6637 : return -1;
6638 15 : x22 = XEXP (x21, 1);
6639 15 : if (!rtx_equal_p (x22, operands[0]))
6640 : return -1;
6641 10 : x23 = XEXP (x21, 0);
6642 10 : if (!rtx_equal_p (x23, operands[1]))
6643 : return -1;
6644 : return 1;
6645 :
6646 : default:
6647 : return -1;
6648 : }
6649 : }
6650 :
6651 : int
6652 423 : pattern1920 (rtx x1)
6653 : {
6654 423 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6655 423 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6656 423 : int res ATTRIBUTE_UNUSED;
6657 423 : x2 = XVECEXP (x1, 0, 24);
6658 423 : if (XWINT (x2, 0) != 28L)
6659 : return -1;
6660 423 : x3 = XVECEXP (x1, 0, 25);
6661 423 : if (XWINT (x3, 0) != 60L)
6662 : return -1;
6663 423 : x4 = XVECEXP (x1, 0, 26);
6664 423 : if (XWINT (x4, 0) != 29L)
6665 : return -1;
6666 423 : x5 = XVECEXP (x1, 0, 27);
6667 423 : if (XWINT (x5, 0) != 61L)
6668 : return -1;
6669 423 : x6 = XVECEXP (x1, 0, 28);
6670 423 : if (XWINT (x6, 0) != 30L)
6671 : return -1;
6672 423 : x7 = XVECEXP (x1, 0, 29);
6673 423 : if (XWINT (x7, 0) != 62L)
6674 : return -1;
6675 423 : x8 = XVECEXP (x1, 0, 30);
6676 423 : if (XWINT (x8, 0) != 31L)
6677 : return -1;
6678 423 : x9 = XVECEXP (x1, 0, 31);
6679 423 : if (XWINT (x9, 0) != 63L)
6680 0 : return -1;
6681 : return 0;
6682 : }
6683 :
6684 : int
6685 2976 : recog_8 (rtx x1 ATTRIBUTE_UNUSED,
6686 : rtx_insn *insn ATTRIBUTE_UNUSED,
6687 : int *pnum_clobbers ATTRIBUTE_UNUSED)
6688 : {
6689 2976 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6690 2976 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6691 2976 : rtx x10;
6692 2976 : int res ATTRIBUTE_UNUSED;
6693 2976 : x2 = XEXP (x1, 1);
6694 2976 : if (GET_MODE (x2) != E_HImode)
6695 : return -1;
6696 2976 : x3 = XEXP (x1, 0);
6697 2976 : operands[0] = x3;
6698 2976 : if (!register_operand (operands[0], E_HImode))
6699 : return -1;
6700 2976 : x4 = XVECEXP (x2, 0, 0);
6701 2976 : if (GET_MODE (x4) != E_CCFPmode)
6702 : return -1;
6703 2976 : switch (GET_CODE (x4))
6704 : {
6705 0 : case COMPARE:
6706 0 : x5 = XEXP (x4, 0);
6707 0 : operands[1] = x5;
6708 0 : x6 = XEXP (x4, 1);
6709 0 : switch (GET_CODE (x6))
6710 : {
6711 0 : case CONST_INT:
6712 0 : case CONST_DOUBLE:
6713 0 : case CONST_VECTOR:
6714 0 : case REG:
6715 0 : case SUBREG:
6716 0 : case MEM:
6717 0 : operands[2] = x6;
6718 0 : switch (GET_MODE (operands[1]))
6719 : {
6720 0 : case E_XFmode:
6721 0 : if (!register_operand (operands[1], E_XFmode)
6722 0 : || !reg_or_0_operand (operands[2], E_XFmode)
6723 0 : || !
6724 : #line 1941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6725 : (TARGET_80387))
6726 : return -1;
6727 : return 39; /* *cmpxf_i387 */
6728 :
6729 : case E_SFmode:
6730 : if (!register_operand (operands[1], E_SFmode)
6731 : || !nonimm_or_0_operand (operands[2], E_SFmode)
6732 : || !
6733 : #line 1954 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6734 : (TARGET_80387))
6735 : return -1;
6736 : return 40; /* *cmpsf_i387 */
6737 :
6738 : case E_DFmode:
6739 : if (!register_operand (operands[1], E_DFmode)
6740 : || !nonimm_or_0_operand (operands[2], E_DFmode)
6741 : || !
6742 : #line 1954 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6743 : (TARGET_80387))
6744 : return -1;
6745 : return 41; /* *cmpdf_i387 */
6746 :
6747 : default:
6748 : return -1;
6749 : }
6750 :
6751 : case FLOAT:
6752 : x7 = XEXP (x6, 0);
6753 : operands[2] = x7;
6754 : switch (GET_MODE (operands[1]))
6755 : {
6756 : case E_SFmode:
6757 : switch (pattern1272 (x6,
6758 : E_SFmode))
6759 : {
6760 : case 0:
6761 : if (!
6762 : #line 1968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6763 : (TARGET_80387
6764 : && (TARGET_USE_HIMODE_FIOP
6765 : || optimize_function_for_size_p (cfun))))
6766 : return -1;
6767 : return 42; /* *cmpsf_hi_i387 */
6768 :
6769 : case 1:
6770 : if (!
6771 : #line 1968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6772 : (TARGET_80387
6773 : && (TARGET_USE_SIMODE_FIOP
6774 : || optimize_function_for_size_p (cfun))))
6775 : return -1;
6776 : return 45; /* *cmpsf_si_i387 */
6777 :
6778 : default:
6779 : return -1;
6780 : }
6781 :
6782 : case E_DFmode:
6783 : switch (pattern1272 (x6,
6784 : E_DFmode))
6785 : {
6786 : case 0:
6787 : if (!
6788 : #line 1968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6789 : (TARGET_80387
6790 : && (TARGET_USE_HIMODE_FIOP
6791 : || optimize_function_for_size_p (cfun))))
6792 : return -1;
6793 : return 43; /* *cmpdf_hi_i387 */
6794 :
6795 : case 1:
6796 : if (!
6797 : #line 1968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6798 : (TARGET_80387
6799 : && (TARGET_USE_SIMODE_FIOP
6800 : || optimize_function_for_size_p (cfun))))
6801 : return -1;
6802 : return 46; /* *cmpdf_si_i387 */
6803 :
6804 : default:
6805 : return -1;
6806 : }
6807 :
6808 : case E_XFmode:
6809 : switch (pattern1272 (x6,
6810 : E_XFmode))
6811 : {
6812 : case 0:
6813 : if (!
6814 : #line 1968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6815 : (TARGET_80387
6816 : && (TARGET_USE_HIMODE_FIOP
6817 : || optimize_function_for_size_p (cfun))))
6818 : return -1;
6819 : return 44; /* *cmpxf_hi_i387 */
6820 :
6821 : case 1:
6822 : if (!
6823 : #line 1968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6824 : (TARGET_80387
6825 : && (TARGET_USE_SIMODE_FIOP
6826 : || optimize_function_for_size_p (cfun))))
6827 : return -1;
6828 : return 47; /* *cmpxf_si_i387 */
6829 :
6830 : default:
6831 : return -1;
6832 : }
6833 :
6834 : default:
6835 : return -1;
6836 : }
6837 :
6838 : default:
6839 : return -1;
6840 : }
6841 :
6842 : case UNSPEC:
6843 : if (XVECLEN (x4, 0) != 1
6844 : || XINT (x4, 1) != 27)
6845 : return -1;
6846 : x8 = XVECEXP (x4, 0, 0);
6847 : if (GET_CODE (x8) != COMPARE
6848 : || GET_MODE (x8) != E_CCFPmode)
6849 : return -1;
6850 : x9 = XEXP (x8, 0);
6851 : operands[1] = x9;
6852 : x10 = XEXP (x8, 1);
6853 : operands[2] = x10;
6854 : switch (GET_MODE (operands[1]))
6855 : {
6856 : case E_SFmode:
6857 : if (!register_operand (operands[1], E_SFmode)
6858 : || !register_operand (operands[2], E_SFmode)
6859 : || !
6860 : #line 1986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6861 : (TARGET_80387))
6862 : return -1;
6863 : return 48; /* *cmpusf_i387 */
6864 :
6865 : case E_DFmode:
6866 : if (!register_operand (operands[1], E_DFmode)
6867 : || !register_operand (operands[2], E_DFmode)
6868 : || !
6869 : #line 1986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6870 : (TARGET_80387))
6871 : return -1;
6872 : return 49; /* *cmpudf_i387 */
6873 :
6874 : case E_XFmode:
6875 : if (!register_operand (operands[1], E_XFmode)
6876 : || !register_operand (operands[2], E_XFmode)
6877 : || !
6878 : #line 1986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6879 : (TARGET_80387))
6880 : return -1;
6881 : return 50; /* *cmpuxf_i387 */
6882 :
6883 : default:
6884 : return -1;
6885 : }
6886 :
6887 : case REG:
6888 : if (REGNO (x4) != 18
6889 : || !
6890 : #line 24246 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6891 : (TARGET_80387))
6892 : return -1;
6893 : return 1748; /* x86_fnstsw_1 */
6894 :
6895 : default:
6896 : return -1;
6897 : }
6898 : }
6899 :
6900 : int
6901 : recog_15 (rtx x1 ATTRIBUTE_UNUSED,
6902 : rtx_insn *insn ATTRIBUTE_UNUSED,
6903 : int *pnum_clobbers ATTRIBUTE_UNUSED)
6904 : {
6905 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6906 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6907 : rtx x10, x11;
6908 : int res ATTRIBUTE_UNUSED;
6909 : x2 = XEXP (x1, 1);
6910 : switch (XVECLEN (x2, 0))
6911 : {
6912 : case 1:
6913 : return recog_14 (x1, insn, pnum_clobbers);
6914 :
6915 : case 2:
6916 : return recog_13 (x1, insn, pnum_clobbers);
6917 :
6918 : case 3:
6919 : switch (XINT (x2, 1))
6920 : {
6921 : case 40:
6922 : if (pnum_clobbers == NULL
6923 : || GET_MODE (x2) != E_CCGZmode)
6924 : return -1;
6925 : x3 = XVECEXP (x2, 0, 2);
6926 : if (GET_CODE (x3) != LTU)
6927 : return -1;
6928 : x4 = XEXP (x3, 0);
6929 : if (GET_CODE (x4) != REG
6930 : || REGNO (x4) != 17
6931 : || GET_MODE (x4) != E_CCmode)
6932 : return -1;
6933 : x5 = XEXP (x3, 1);
6934 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6935 : return -1;
6936 : x6 = XEXP (x1, 0);
6937 : if (GET_CODE (x6) != REG
6938 : || REGNO (x6) != 17
6939 : || GET_MODE (x6) != E_CCGZmode)
6940 : return -1;
6941 : x7 = XVECEXP (x2, 0, 0);
6942 : operands[1] = x7;
6943 : x8 = XVECEXP (x2, 0, 1);
6944 : operands[2] = x8;
6945 : switch (GET_MODE (operands[1]))
6946 : {
6947 : case E_SImode:
6948 : if (!register_operand (operands[1], E_SImode)
6949 : || !x86_64_general_operand (operands[2], E_SImode)
6950 : || GET_MODE (x3) != E_SImode
6951 : || !
6952 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6953 : (!TARGET_64BIT))
6954 : return -1;
6955 : *pnum_clobbers = 1;
6956 : return 549; /* subsi3_carry_ccgz */
6957 :
6958 : case E_DImode:
6959 : if (!register_operand (operands[1], E_DImode)
6960 : || !x86_64_general_operand (operands[2], E_DImode)
6961 : || GET_MODE (x3) != E_DImode
6962 : || !
6963 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6964 : (TARGET_64BIT))
6965 : return -1;
6966 : *pnum_clobbers = 1;
6967 : return 550; /* subdi3_carry_ccgz */
6968 :
6969 : default:
6970 : return -1;
6971 : }
6972 :
6973 : case 60:
6974 : return recog_12 (x1, insn, pnum_clobbers);
6975 :
6976 : case 49:
6977 : if (GET_MODE (x2) != E_HFmode)
6978 : return -1;
6979 : x6 = XEXP (x1, 0);
6980 : operands[0] = x6;
6981 : if (!nonimmediate_operand (operands[0], E_HFmode))
6982 : return -1;
6983 : x7 = XVECEXP (x2, 0, 0);
6984 : operands[1] = x7;
6985 : if (!nonimmediate_operand (operands[1], E_HFmode))
6986 : return -1;
6987 : x8 = XVECEXP (x2, 0, 1);
6988 : operands[2] = x8;
6989 : if (!nonimm_or_0_operand (operands[2], E_HFmode))
6990 : return -1;
6991 : x3 = XVECEXP (x2, 0, 2);
6992 : operands[3] = x3;
6993 : if (!register_operand (operands[3], E_QImode)
6994 : || !
6995 : #line 27015 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6996 : (TARGET_AVX512FP16))
6997 : return -1;
6998 : return 1843; /* movhf_mask */
6999 :
7000 : case 52:
7001 : x6 = XEXP (x1, 0);
7002 : operands[0] = x6;
7003 : x7 = XVECEXP (x2, 0, 0);
7004 : operands[1] = x7;
7005 : x8 = XVECEXP (x2, 0, 1);
7006 : operands[2] = x8;
7007 : x3 = XVECEXP (x2, 0, 2);
7008 : switch (GET_CODE (x3))
7009 : {
7010 : case LT:
7011 : switch (pattern741 (x2))
7012 : {
7013 : case 0:
7014 : if (
7015 : #line 27248 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7016 : (SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH
7017 : && (rtx_equal_p (operands[1], operands[3])
7018 : && rtx_equal_p (operands[2], operands[4]))
7019 : && ix86_pre_reload_split ()))
7020 : return 1861; /* *ieee_maxsf3_1 */
7021 : if (!
7022 : #line 27269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7023 : (SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH
7024 : && (rtx_equal_p (operands[1], operands[4])
7025 : && rtx_equal_p (operands[2], operands[3]))
7026 : && ix86_pre_reload_split ()))
7027 : return -1;
7028 : return 1863; /* *ieee_minsf3_1 */
7029 :
7030 : case 1:
7031 : if (
7032 : #line 27248 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7033 : (SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH
7034 : && (rtx_equal_p (operands[1], operands[3])
7035 : && rtx_equal_p (operands[2], operands[4]))
7036 : && ix86_pre_reload_split ()))
7037 : return 1862; /* *ieee_maxdf3_1 */
7038 : if (!
7039 : #line 27269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7040 : (SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH
7041 : && (rtx_equal_p (operands[1], operands[4])
7042 : && rtx_equal_p (operands[2], operands[3]))
7043 : && ix86_pre_reload_split ()))
7044 : return -1;
7045 : return 1864; /* *ieee_mindf3_1 */
7046 :
7047 : default:
7048 : return -1;
7049 : }
7050 :
7051 : case REG:
7052 : case SUBREG:
7053 : operands[3] = x3;
7054 : switch (GET_MODE (operands[0]))
7055 : {
7056 : case E_V2SFmode:
7057 : if (pattern969 (x2,
7058 : E_V2SFmode) == 0
7059 : &&
7060 : #line 1340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7061 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
7062 : return 2131; /* mmx_blendvps */
7063 : break;
7064 :
7065 : case E_V8QImode:
7066 : if (pattern969 (x2,
7067 : E_V8QImode) == 0
7068 : &&
7069 : #line 4342 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7070 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
7071 : return 2297; /* mmx_pblendvb_v8qi */
7072 : break;
7073 :
7074 : case E_V4QImode:
7075 : if (pattern969 (x2,
7076 : E_V4QImode) == 0
7077 : &&
7078 : #line 4418 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7079 : (TARGET_SSE4_1))
7080 : return 2301; /* mmx_pblendvb_v4qi */
7081 : break;
7082 :
7083 : case E_V2QImode:
7084 : if (pattern969 (x2,
7085 : E_V2QImode) == 0
7086 : &&
7087 : #line 4418 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7088 : (TARGET_SSE4_1))
7089 : return 2302; /* mmx_pblendvb_v2qi */
7090 : break;
7091 :
7092 : case E_V2HImode:
7093 : if (pattern969 (x2,
7094 : E_V2HImode) == 0
7095 : &&
7096 : #line 4418 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7097 : (TARGET_SSE4_1))
7098 : return 2303; /* mmx_pblendvb_v2hi */
7099 : break;
7100 :
7101 : case E_SFmode:
7102 : if (pattern969 (x2,
7103 : E_SFmode) == 0
7104 : &&
7105 : #line 23899 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7106 : (TARGET_SSE4_1))
7107 : return 8731; /* sse4_1_blendvss */
7108 : break;
7109 :
7110 : case E_DFmode:
7111 : if (pattern969 (x2,
7112 : E_DFmode) == 0
7113 : &&
7114 : #line 23899 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7115 : (TARGET_SSE4_1))
7116 : return 8732; /* sse4_1_blendvsd */
7117 : break;
7118 :
7119 : default:
7120 : break;
7121 : }
7122 : if (GET_CODE (x3) != SUBREG)
7123 : return -1;
7124 : switch (pattern857 (x2))
7125 : {
7126 : case 0:
7127 : if (!
7128 : #line 4394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7129 : (TARGET_MMX_WITH_SSE && ix86_pre_reload_split ()))
7130 : return -1;
7131 : return 2299; /* *mmx_pblendvb_v8qi_2 */
7132 :
7133 : case 1:
7134 : if (!
7135 : #line 4394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7136 : (TARGET_MMX_WITH_SSE && ix86_pre_reload_split ()))
7137 : return -1;
7138 : return 2300; /* *mmx_pblendvb_v8qi_2 */
7139 :
7140 : case 2:
7141 : if (!
7142 : #line 4470 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7143 : (TARGET_SSE2 && ix86_pre_reload_split ()))
7144 : return -1;
7145 : return 2307; /* *mmx_pblendvb_v4qi_2 */
7146 :
7147 : default:
7148 : return -1;
7149 : }
7150 :
7151 : case EQ:
7152 : switch (pattern743 (x2))
7153 : {
7154 : case 0:
7155 : if (!
7156 : #line 4366 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7157 : (TARGET_MMX_WITH_SSE && ix86_pre_reload_split ()))
7158 : return -1;
7159 : return 2298; /* *mmx_pblendvb_v8qi_1 */
7160 :
7161 : case 1:
7162 : if (!
7163 : #line 4442 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7164 : (TARGET_SSE2 && ix86_pre_reload_split ()))
7165 : return -1;
7166 : return 2304; /* *mmx_pblendvb_v4qi_1 */
7167 :
7168 : case 2:
7169 : if (!
7170 : #line 4442 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7171 : (TARGET_SSE2 && ix86_pre_reload_split ()))
7172 : return -1;
7173 : return 2305; /* *mmx_pblendvb_v2qi_1 */
7174 :
7175 : case 3:
7176 : if (!
7177 : #line 4442 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7178 : (TARGET_SSE2 && ix86_pre_reload_split ()))
7179 : return -1;
7180 : return 2306; /* *mmx_pblendvb_v2hi_1 */
7181 :
7182 : default:
7183 : return -1;
7184 : }
7185 :
7186 : default:
7187 : return -1;
7188 : }
7189 :
7190 : case 51:
7191 : x6 = XEXP (x1, 0);
7192 : operands[0] = x6;
7193 : x7 = XVECEXP (x2, 0, 0);
7194 : operands[2] = x7;
7195 : x8 = XVECEXP (x2, 0, 1);
7196 : operands[1] = x8;
7197 : x3 = XVECEXP (x2, 0, 2);
7198 : operands[3] = x3;
7199 : if (!const_0_to_255_operand (operands[3], E_SImode))
7200 : return -1;
7201 : switch (GET_MODE (operands[0]))
7202 : {
7203 : case E_V2SFmode:
7204 : if (pattern970 (x2,
7205 : E_V2SFmode) != 0
7206 : || !
7207 : #line 1284 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7208 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
7209 : return -1;
7210 : return 2128; /* sse4_1_insertps_v2sf */
7211 :
7212 : case E_V2SImode:
7213 : if (pattern970 (x2,
7214 : E_V2SImode) != 0
7215 : || !
7216 : #line 1284 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7217 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
7218 : return -1;
7219 : return 2129; /* sse4_1_insertps_v2si */
7220 :
7221 : default:
7222 : return -1;
7223 : }
7224 :
7225 : case 54:
7226 : x6 = XEXP (x1, 0);
7227 : operands[0] = x6;
7228 : x7 = XVECEXP (x2, 0, 0);
7229 : operands[1] = x7;
7230 : x8 = XVECEXP (x2, 0, 1);
7231 : operands[2] = x8;
7232 : x3 = XVECEXP (x2, 0, 2);
7233 : operands[3] = x3;
7234 : if (!nonimmediate_operand (operands[3], E_V16QImode))
7235 : return -1;
7236 : switch (GET_MODE (operands[0]))
7237 : {
7238 : case E_V8QImode:
7239 : if (pattern971 (x2,
7240 : E_V8QImode) != 0
7241 : || !
7242 : #line 4540 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7243 : (TARGET_XOP && TARGET_MMX_WITH_SSE))
7244 : return -1;
7245 : return 2319; /* mmx_ppermv64 */
7246 :
7247 : case E_V4QImode:
7248 : if (pattern971 (x2,
7249 : E_V4QImode) != 0
7250 : || !
7251 : #line 4552 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7252 : (TARGET_XOP))
7253 : return -1;
7254 : return 2320; /* mmx_ppermv32 */
7255 :
7256 : default:
7257 : return -1;
7258 : }
7259 :
7260 : case 48:
7261 : if (GET_MODE (x2) != E_V8QImode)
7262 : return -1;
7263 : x3 = XVECEXP (x2, 0, 2);
7264 : if (GET_CODE (x3) != MEM
7265 : || GET_MODE (x3) != E_V8QImode)
7266 : return -1;
7267 : x6 = XEXP (x1, 0);
7268 : if (GET_CODE (x6) != MEM
7269 : || GET_MODE (x6) != E_V8QImode)
7270 : return -1;
7271 : x9 = XEXP (x6, 0);
7272 : operands[0] = x9;
7273 : x7 = XVECEXP (x2, 0, 0);
7274 : operands[1] = x7;
7275 : switch (pattern1078 (x2,
7276 : E_V8QImode))
7277 : {
7278 : case 0:
7279 : if (!(
7280 : #line 6888 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7281 : (TARGET_SSE || TARGET_3DNOW_A) &&
7282 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7283 : (Pmode == SImode)))
7284 : return -1;
7285 : return 2441; /* *mmx_maskmovq */
7286 :
7287 : case 1:
7288 : if (!(
7289 : #line 6888 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7290 : (TARGET_SSE || TARGET_3DNOW_A) &&
7291 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7292 : (Pmode == DImode)))
7293 : return -1;
7294 : return 2442; /* *mmx_maskmovq */
7295 :
7296 : default:
7297 : return -1;
7298 : }
7299 :
7300 : case 158:
7301 : switch (pattern74 (x1))
7302 : {
7303 : case 0:
7304 : x3 = XVECEXP (x2, 0, 2);
7305 : operands[3] = x3;
7306 : if (const_0_to_7_operand (operands[3], E_SImode))
7307 : {
7308 : x8 = XVECEXP (x2, 0, 1);
7309 : operands[2] = x8;
7310 : switch (GET_MODE (operands[0]))
7311 : {
7312 : case E_HImode:
7313 : switch (pattern598 (x2))
7314 : {
7315 : case 0:
7316 : if ((
7317 : #line 4907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7318 : (TARGET_AVX512F && ix86_pre_reload_split ()
7319 : && rtx_equal_p (operands[1], operands[2])
7320 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
7321 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7322 : (TARGET_AVX512VL && TARGET_AVX512BW)))
7323 : return 3546; /* *avx512vl_cmpv16qi3_dup_op */
7324 : break;
7325 :
7326 : case 1:
7327 : if ((
7328 : #line 4907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7329 : (TARGET_AVX512F && ix86_pre_reload_split ()
7330 : && rtx_equal_p (operands[1], operands[2])
7331 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
7332 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7333 : (TARGET_AVX512VL && TARGET_AVX512BW)))
7334 : return 3550; /* *avx512vl_cmpv16hi3_dup_op */
7335 : break;
7336 :
7337 : case 2:
7338 : if (
7339 : #line 4907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7340 : (TARGET_AVX512F && ix86_pre_reload_split ()
7341 : && rtx_equal_p (operands[1], operands[2])
7342 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))))
7343 : return 3554; /* *avx512f_cmpv16si3_dup_op */
7344 : break;
7345 :
7346 : default:
7347 : break;
7348 : }
7349 : break;
7350 :
7351 : case E_QImode:
7352 : switch (pattern599 (x2))
7353 : {
7354 : case 0:
7355 : if ((
7356 : #line 4907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7357 : (TARGET_AVX512F && ix86_pre_reload_split ()
7358 : && rtx_equal_p (operands[1], operands[2])
7359 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
7360 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7361 : (TARGET_AVX512VL && TARGET_AVX512BW)))
7362 : return 3552; /* *avx512vl_cmpv8hi3_dup_op */
7363 : break;
7364 :
7365 : case 1:
7366 : if ((
7367 : #line 4907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7368 : (TARGET_AVX512F && ix86_pre_reload_split ()
7369 : && rtx_equal_p (operands[1], operands[2])
7370 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
7371 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7372 : (TARGET_AVX512VL)))
7373 : return 3556; /* *avx512vl_cmpv8si3_dup_op */
7374 : break;
7375 :
7376 : case 2:
7377 : if ((
7378 : #line 4907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7379 : (TARGET_AVX512F && ix86_pre_reload_split ()
7380 : && rtx_equal_p (operands[1], operands[2])
7381 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
7382 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7383 : (TARGET_AVX512VL)))
7384 : return 3558; /* *avx512vl_cmpv4si3_dup_op */
7385 : break;
7386 :
7387 : case 3:
7388 : if (
7389 : #line 4907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7390 : (TARGET_AVX512F && ix86_pre_reload_split ()
7391 : && rtx_equal_p (operands[1], operands[2])
7392 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))))
7393 : return 3560; /* *avx512f_cmpv8di3_dup_op */
7394 : break;
7395 :
7396 : case 4:
7397 : if ((
7398 : #line 4907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7399 : (TARGET_AVX512F && ix86_pre_reload_split ()
7400 : && rtx_equal_p (operands[1], operands[2])
7401 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
7402 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7403 : (TARGET_AVX512VL)))
7404 : return 3562; /* *avx512vl_cmpv4di3_dup_op */
7405 : break;
7406 :
7407 : case 5:
7408 : if ((
7409 : #line 4907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7410 : (TARGET_AVX512F && ix86_pre_reload_split ()
7411 : && rtx_equal_p (operands[1], operands[2])
7412 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
7413 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7414 : (TARGET_AVX512VL)))
7415 : return 3564; /* *avx512vl_cmpv2di3_dup_op */
7416 : break;
7417 :
7418 : default:
7419 : break;
7420 : }
7421 : break;
7422 :
7423 : default:
7424 : break;
7425 : }
7426 : }
7427 : x8 = XVECEXP (x2, 0, 1);
7428 : operands[2] = x8;
7429 : if (XWINT (x3, 0) == 0L)
7430 : {
7431 : switch (pattern968 (x2))
7432 : {
7433 : case 0:
7434 : if ((
7435 : #line 4935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7436 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
7437 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7438 : (TARGET_AVX512VL)))
7439 : return 3571; /* *avx512vl_eqv16qi3_1 */
7440 : break;
7441 :
7442 : case 1:
7443 : if ((
7444 : #line 4935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7445 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
7446 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7447 : (TARGET_AVX512VL)))
7448 : return 3583; /* *avx512vl_eqv16hi3_1 */
7449 : break;
7450 :
7451 : case 2:
7452 : if (
7453 : #line 5024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7454 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
7455 : return 3639; /* *avx512f_eqv16si3_1 */
7456 : break;
7457 :
7458 : case 3:
7459 : if ((
7460 : #line 4935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7461 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
7462 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7463 : (TARGET_AVX512VL)))
7464 : return 3587; /* *avx512vl_eqv8hi3_1 */
7465 : break;
7466 :
7467 : case 4:
7468 : if ((
7469 : #line 5024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7470 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
7471 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7472 : (TARGET_AVX512VL)))
7473 : return 3643; /* *avx512vl_eqv8si3_1 */
7474 : break;
7475 :
7476 : case 5:
7477 : if ((
7478 : #line 5024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7479 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
7480 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7481 : (TARGET_AVX512VL)))
7482 : return 3647; /* *avx512vl_eqv4si3_1 */
7483 : break;
7484 :
7485 : case 6:
7486 : if (
7487 : #line 5024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7488 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
7489 : return 3651; /* *avx512f_eqv8di3_1 */
7490 : break;
7491 :
7492 : case 7:
7493 : if ((
7494 : #line 5024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7495 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
7496 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7497 : (TARGET_AVX512VL)))
7498 : return 3655; /* *avx512vl_eqv4di3_1 */
7499 : break;
7500 :
7501 : case 8:
7502 : if ((
7503 : #line 5024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7504 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
7505 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7506 : (TARGET_AVX512VL)))
7507 : return 3659; /* *avx512vl_eqv2di3_1 */
7508 : break;
7509 :
7510 : default:
7511 : break;
7512 : }
7513 : }
7514 : operands[3] = x3;
7515 : if (!const_0_to_7_operand (operands[3], E_SImode))
7516 : return -1;
7517 : switch (pattern70 (x2))
7518 : {
7519 : case 0:
7520 : if (!(
7521 : #line 4950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7522 : (TARGET_AVX512BW) &&
7523 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7524 : (TARGET_AVX512VL)))
7525 : return -1;
7526 : return 3591; /* avx512vl_ucmpv16qi3 */
7527 :
7528 : case 1:
7529 : if (!(
7530 : #line 4950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7531 : (TARGET_AVX512BW) &&
7532 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7533 : (TARGET_AVX512VL)))
7534 : return -1;
7535 : return 3597; /* avx512vl_ucmpv16hi3 */
7536 :
7537 : case 2:
7538 : if (!
7539 : #line 5039 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7540 : (TARGET_AVX512F))
7541 : return -1;
7542 : return 3661; /* avx512f_ucmpv16si3 */
7543 :
7544 : case 3:
7545 : if (!(
7546 : #line 4950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7547 : (TARGET_AVX512BW) &&
7548 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7549 : (TARGET_AVX512VL)))
7550 : return -1;
7551 : return 3599; /* avx512vl_ucmpv8hi3 */
7552 :
7553 : case 4:
7554 : if (!(
7555 : #line 5039 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7556 : (TARGET_AVX512F) &&
7557 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7558 : (TARGET_AVX512VL)))
7559 : return -1;
7560 : return 3663; /* avx512vl_ucmpv8si3 */
7561 :
7562 : case 5:
7563 : if (!(
7564 : #line 5039 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7565 : (TARGET_AVX512F) &&
7566 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7567 : (TARGET_AVX512VL)))
7568 : return -1;
7569 : return 3665; /* avx512vl_ucmpv4si3 */
7570 :
7571 : case 6:
7572 : if (!
7573 : #line 5039 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7574 : (TARGET_AVX512F))
7575 : return -1;
7576 : return 3667; /* avx512f_ucmpv8di3 */
7577 :
7578 : case 7:
7579 : if (!(
7580 : #line 5039 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7581 : (TARGET_AVX512F) &&
7582 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7583 : (TARGET_AVX512VL)))
7584 : return -1;
7585 : return 3669; /* avx512vl_ucmpv4di3 */
7586 :
7587 : case 8:
7588 : if (!(
7589 : #line 5039 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7590 : (TARGET_AVX512F) &&
7591 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7592 : (TARGET_AVX512VL)))
7593 : return -1;
7594 : return 3671; /* avx512vl_ucmpv2di3 */
7595 :
7596 : default:
7597 : return -1;
7598 : }
7599 :
7600 : case 1:
7601 : if (!(
7602 : #line 5143 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7603 : (TARGET_AVX512BW && ix86_pre_reload_split ()
7604 : && ix86_binary_operator_ok (US_MINUS, V16QImode, operands)
7605 : && (INTVAL (operands[4]) & 1) == 0) &&
7606 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7607 : (TARGET_AVX512VL)))
7608 : return -1;
7609 : return 3718; /* *avx512vl_ucmpv16qi3_1 */
7610 :
7611 : case 2:
7612 : if (!(
7613 : #line 5143 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7614 : (TARGET_AVX512BW && ix86_pre_reload_split ()
7615 : && ix86_binary_operator_ok (US_MINUS, V16HImode, operands)
7616 : && (INTVAL (operands[4]) & 1) == 0) &&
7617 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7618 : (TARGET_AVX512VL)))
7619 : return -1;
7620 : return 3724; /* *avx512vl_ucmpv16hi3_1 */
7621 :
7622 : case 3:
7623 : if (!(
7624 : #line 5143 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7625 : (TARGET_AVX512BW && ix86_pre_reload_split ()
7626 : && ix86_binary_operator_ok (US_MINUS, V8HImode, operands)
7627 : && (INTVAL (operands[4]) & 1) == 0) &&
7628 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7629 : (TARGET_AVX512VL)))
7630 : return -1;
7631 : return 3726; /* *avx512vl_ucmpv8hi3_1 */
7632 :
7633 : default:
7634 : return -1;
7635 : }
7636 :
7637 : case 53:
7638 : if (pattern62 (x1, pnum_clobbers,
7639 : E_V8QImode) != 0)
7640 : return -1;
7641 : x8 = XVECEXP (x2, 0, 1);
7642 : operands[2] = x8;
7643 : if (!register_mmxmem_operand (operands[2], E_V8QImode))
7644 : return -1;
7645 : x3 = XVECEXP (x2, 0, 2);
7646 : operands[4] = x3;
7647 : if (!reg_or_const_vector_operand (operands[4], E_V4SImode)
7648 : || !
7649 : #line 23505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7650 : ((TARGET_MMX || TARGET_MMX_WITH_SSE) && TARGET_SSSE3))
7651 : return -1;
7652 : *pnum_clobbers = 1;
7653 : return 8674; /* *ssse3_pshufbv8qi3 */
7654 :
7655 : case 133:
7656 : if (pnum_clobbers == NULL
7657 : || pattern255 (x1) != 0
7658 : || !nonimmediate_operand (operands[3], E_V16QImode))
7659 : return -1;
7660 : x3 = XVECEXP (x2, 0, 2);
7661 : operands[4] = x3;
7662 : if (!const_0_to_255_operand (operands[4], E_SImode)
7663 : || !
7664 : #line 26687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7665 : (TARGET_SSE4_2))
7666 : return -1;
7667 : *pnum_clobbers = 2;
7668 : return 9038; /* sse4_2_pcmpistr_cconly */
7669 :
7670 : default:
7671 : return -1;
7672 : }
7673 :
7674 : case 5:
7675 : if (pnum_clobbers == NULL
7676 : || XINT (x2, 1) != 132
7677 : || pattern255 (x1) != 0
7678 : || !register_operand (operands[3], E_SImode))
7679 : return -1;
7680 : x3 = XVECEXP (x2, 0, 2);
7681 : operands[4] = x3;
7682 : if (!nonimmediate_operand (operands[4], E_V16QImode))
7683 : return -1;
7684 : x10 = XVECEXP (x2, 0, 3);
7685 : operands[5] = x10;
7686 : if (!register_operand (operands[5], E_SImode))
7687 : return -1;
7688 : x11 = XVECEXP (x2, 0, 4);
7689 : operands[6] = x11;
7690 : if (!const_0_to_255_operand (operands[6], E_SImode)
7691 : || !
7692 : #line 26562 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7693 : (TARGET_SSE4_2))
7694 : return -1;
7695 : *pnum_clobbers = 2;
7696 : return 9034; /* sse4_2_pcmpestr_cconly */
7697 :
7698 : default:
7699 : return -1;
7700 : }
7701 : }
7702 :
7703 : int
7704 : recog_37 (rtx x1 ATTRIBUTE_UNUSED,
7705 : rtx_insn *insn ATTRIBUTE_UNUSED,
7706 : int *pnum_clobbers ATTRIBUTE_UNUSED)
7707 : {
7708 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
7709 : rtx x2, x3, x4;
7710 : int res ATTRIBUTE_UNUSED;
7711 : x2 = XEXP (x1, 0);
7712 : operands[0] = x2;
7713 : x3 = XEXP (x1, 1);
7714 : x4 = XEXP (x3, 0);
7715 : operands[1] = x4;
7716 : switch (GET_MODE (operands[0]))
7717 : {
7718 : case E_HFmode:
7719 : switch (pattern264 (x3,
7720 : E_HFmode))
7721 : {
7722 : case 0:
7723 : if (!
7724 : #line 6145 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7725 : (TARGET_AVX512FP16))
7726 : return -1;
7727 : return 253; /* floatunssihf2 */
7728 :
7729 : case 1:
7730 : if (!(
7731 : #line 6145 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7732 : (TARGET_AVX512FP16) &&
7733 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7734 : (TARGET_64BIT)))
7735 : return -1;
7736 : return 255; /* floatunsdihf2 */
7737 :
7738 : default:
7739 : return -1;
7740 : }
7741 :
7742 : case E_SFmode:
7743 : switch (pattern264 (x3,
7744 : E_SFmode))
7745 : {
7746 : case 0:
7747 : if (!
7748 : #line 6289 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7749 : (TARGET_AVX512F && TARGET_SSE_MATH))
7750 : return -1;
7751 : return 261; /* *floatunssisf2_avx512 */
7752 :
7753 : case 1:
7754 : if (!(
7755 : #line 6289 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7756 : (TARGET_AVX512F && TARGET_SSE_MATH) &&
7757 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7758 : (TARGET_64BIT)))
7759 : return -1;
7760 : return 262; /* *floatunsdisf2_avx512 */
7761 :
7762 : default:
7763 : return -1;
7764 : }
7765 :
7766 : case E_DFmode:
7767 : switch (pattern264 (x3,
7768 : E_DFmode))
7769 : {
7770 : case 0:
7771 : if (!
7772 : #line 6289 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7773 : (TARGET_AVX512F && TARGET_SSE_MATH))
7774 : return -1;
7775 : return 263; /* *floatunssidf2_avx512 */
7776 :
7777 : case 1:
7778 : if (!(
7779 : #line 6289 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7780 : (TARGET_AVX512F && TARGET_SSE_MATH) &&
7781 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7782 : (TARGET_64BIT)))
7783 : return -1;
7784 : return 264; /* *floatunsdidf2_avx512 */
7785 :
7786 : default:
7787 : return -1;
7788 : }
7789 :
7790 : default:
7791 : return -1;
7792 : }
7793 : }
7794 :
7795 : int
7796 : recog_41 (rtx x1 ATTRIBUTE_UNUSED,
7797 : rtx_insn *insn ATTRIBUTE_UNUSED,
7798 : int *pnum_clobbers ATTRIBUTE_UNUSED)
7799 : {
7800 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
7801 : rtx x2, x3, x4, x5;
7802 : int res ATTRIBUTE_UNUSED;
7803 : x2 = XEXP (x1, 1);
7804 : x3 = XEXP (x2, 1);
7805 : if (GET_CODE (x3) != CONST_INT
7806 : || !register_operand (operands[0], E_QImode)
7807 : || GET_MODE (x2) != E_QImode)
7808 : return -1;
7809 : x4 = XEXP (x2, 0);
7810 : x5 = XVECEXP (x4, 0, 2);
7811 : operands[3] = x5;
7812 : if (!const_0_to_7_operand (operands[3], E_SImode))
7813 : return -1;
7814 : switch (XWINT (x3, 0))
7815 : {
7816 : case 15L:
7817 : switch (GET_MODE (operands[1]))
7818 : {
7819 : case E_V4SImode:
7820 : if (!nonimmediate_operand (operands[1], E_V4SImode)
7821 : || !nonimmediate_operand (operands[2], E_V4SImode)
7822 : || !(
7823 : #line 4735 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7824 : (TARGET_AVX512F) &&
7825 : #line 525 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7826 : (TARGET_AVX512VL)))
7827 : return -1;
7828 : return 3470; /* *avx512vl_ucmpv4si3_and15 */
7829 :
7830 : case E_V4DImode:
7831 : if (!nonimmediate_operand (operands[1], E_V4DImode)
7832 : || !nonimmediate_operand (operands[2], E_V4DImode)
7833 : || !(
7834 : #line 4735 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7835 : (TARGET_AVX512F) &&
7836 : #line 525 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7837 : (TARGET_AVX512VL)))
7838 : return -1;
7839 : return 3471; /* *avx512vl_ucmpv4di3_and15 */
7840 :
7841 : default:
7842 : return -1;
7843 : }
7844 :
7845 : case 3L:
7846 : if (!nonimmediate_operand (operands[1], E_V2DImode)
7847 : || !nonimmediate_operand (operands[2], E_V2DImode)
7848 : || !
7849 : #line 4784 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7850 : (TARGET_AVX512F))
7851 : return -1;
7852 : return 3478; /* *avx512vl_ucmpv2di3_and3 */
7853 :
7854 : default:
7855 : return -1;
7856 : }
7857 : }
7858 :
7859 : int
7860 : recog_43 (rtx x1 ATTRIBUTE_UNUSED,
7861 : rtx_insn *insn ATTRIBUTE_UNUSED,
7862 : int *pnum_clobbers ATTRIBUTE_UNUSED)
7863 : {
7864 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
7865 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
7866 : rtx x10, x11, x12, x13;
7867 : int res ATTRIBUTE_UNUSED;
7868 : x2 = XEXP (x1, 1);
7869 : x3 = XEXP (x2, 0);
7870 : switch (GET_CODE (x3))
7871 : {
7872 : case XOR:
7873 : if (pnum_clobbers == NULL)
7874 : return -1;
7875 : x4 = XEXP (x1, 0);
7876 : operands[0] = x4;
7877 : x5 = XEXP (x3, 0);
7878 : operands[1] = x5;
7879 : x6 = XEXP (x3, 1);
7880 : operands[2] = x6;
7881 : switch (GET_MODE (operands[0]))
7882 : {
7883 : case E_HImode:
7884 : if (pattern749 (x2,
7885 : E_HImode) != 0
7886 : || !
7887 : #line 13927 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7888 : (ix86_binary_operator_ok (XOR, HImode, operands, TARGET_APX_NDD)))
7889 : return -1;
7890 : *pnum_clobbers = 1;
7891 : return 863; /* *notxorhi_1 */
7892 :
7893 : case E_QImode:
7894 : if (pattern749 (x2,
7895 : E_QImode) != 0
7896 : || !
7897 : #line 14127 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7898 : (ix86_binary_operator_ok (XOR, QImode, operands, TARGET_APX_NDD)))
7899 : return -1;
7900 : *pnum_clobbers = 1;
7901 : return 899; /* *notxorqi_1 */
7902 :
7903 : default:
7904 : return -1;
7905 : }
7906 :
7907 : case REG:
7908 : case SUBREG:
7909 : case MEM:
7910 : switch (pattern42 (x1))
7911 : {
7912 : case 0:
7913 : switch (GET_MODE (operands[0]))
7914 : {
7915 : case E_TImode:
7916 : if (!nonimmediate_operand (operands[0], E_TImode)
7917 : || GET_MODE (x2) != E_TImode
7918 : || !nonimmediate_operand (operands[1], E_TImode)
7919 : || !(
7920 : #line 15321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7921 : (ix86_unary_operator_ok (NOT, TImode, operands, TARGET_APX_NDD)) &&
7922 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7923 : (TARGET_64BIT)))
7924 : return -1;
7925 : return 1063; /* *one_cmplti2_doubleword */
7926 :
7927 : case E_HImode:
7928 : if (!nonimmediate_operand (operands[0], E_HImode)
7929 : || GET_MODE (x2) != E_HImode
7930 : || !nonimmediate_operand (operands[1], E_HImode)
7931 : || !
7932 : #line 15334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7933 : (ix86_unary_operator_ok (NOT, HImode, operands, TARGET_APX_NDD)))
7934 : return -1;
7935 : return 1064; /* *one_cmplhi2_1 */
7936 :
7937 : case E_QImode:
7938 : if (!nonimmediate_operand (operands[0], E_QImode)
7939 : || GET_MODE (x2) != E_QImode
7940 : || !nonimmediate_operand (operands[1], E_QImode)
7941 : || !
7942 : #line 15378 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7943 : (ix86_unary_operator_ok (NOT, QImode, operands, TARGET_APX_NDD)))
7944 : return -1;
7945 : return 1073; /* *one_cmplqi2_1 */
7946 :
7947 : case E_V4QImode:
7948 : if (!register_operand (operands[0], E_V4QImode)
7949 : || GET_MODE (x2) != E_V4QImode
7950 : || !register_operand (operands[1], E_V4QImode))
7951 : return -1;
7952 : return 2321; /* one_cmplv4qi2 */
7953 :
7954 : case E_V2QImode:
7955 : if (!register_operand (operands[0], E_V2QImode)
7956 : || GET_MODE (x2) != E_V2QImode
7957 : || !register_operand (operands[1], E_V2QImode))
7958 : return -1;
7959 : return 2322; /* one_cmplv2qi2 */
7960 :
7961 : case E_V2HImode:
7962 : if (!register_operand (operands[0], E_V2HImode)
7963 : || GET_MODE (x2) != E_V2HImode
7964 : || !register_operand (operands[1], E_V2HImode))
7965 : return -1;
7966 : return 2323; /* one_cmplv2hi2 */
7967 :
7968 : default:
7969 : return -1;
7970 : }
7971 :
7972 : case 1:
7973 : if (!
7974 : #line 15404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7975 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
7976 : return -1;
7977 : return 1074; /* *one_cmplqi_1_slp */
7978 :
7979 : case 2:
7980 : if (!
7981 : #line 15404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7982 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
7983 : return -1;
7984 : return 1075; /* *one_cmplhi_1_slp */
7985 :
7986 : default:
7987 : return -1;
7988 : }
7989 :
7990 : case ASHIFTRT:
7991 : case LSHIFTRT:
7992 : case SIGN_EXTRACT:
7993 : case ZERO_EXTRACT:
7994 : operands[2] = x3;
7995 : switch (pattern90 (x1))
7996 : {
7997 : case 0:
7998 : return 1081; /* *one_cmplqi_exthi_1 */
7999 :
8000 : case 1:
8001 : return 1082; /* *one_cmplqi_extsi_1 */
8002 :
8003 : case 2:
8004 : if (
8005 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8006 : (TARGET_64BIT))
8007 : return 1083; /* *one_cmplqi_extdi_1 */
8008 : break;
8009 :
8010 : default:
8011 : break;
8012 : }
8013 : if (pnum_clobbers == NULL
8014 : || GET_CODE (x3) != ZERO_EXTRACT
8015 : || GET_MODE (x3) != E_DImode)
8016 : return -1;
8017 : x6 = XEXP (x3, 1);
8018 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
8019 : return -1;
8020 : x4 = XEXP (x1, 0);
8021 : if (GET_CODE (x4) != ZERO_EXTRACT
8022 : || GET_MODE (x4) != E_DImode)
8023 : return -1;
8024 : x7 = XEXP (x4, 1);
8025 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
8026 : return -1;
8027 : x8 = XEXP (x4, 0);
8028 : operands[0] = x8;
8029 : if (!nonimmediate_operand (operands[0], E_DImode))
8030 : return -1;
8031 : x9 = XEXP (x4, 2);
8032 : operands[1] = x9;
8033 : if (!const_0_to_63_operand (operands[1], E_QImode)
8034 : || GET_MODE (x2) != E_DImode)
8035 : return -1;
8036 : x5 = XEXP (x3, 0);
8037 : if (!rtx_equal_p (x5, operands[0]))
8038 : return -1;
8039 : x10 = XEXP (x3, 2);
8040 : if (!rtx_equal_p (x10, operands[1])
8041 : || !
8042 : #line 19400 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8043 : (TARGET_64BIT && (TARGET_USE_BT || reload_completed)))
8044 : return -1;
8045 : *pnum_clobbers = 1;
8046 : return 1447; /* *btcq_imm */
8047 :
8048 : case UNSPEC:
8049 : if (XVECLEN (x3, 0) != 3)
8050 : return -1;
8051 : x4 = XEXP (x1, 0);
8052 : operands[0] = x4;
8053 : x11 = XVECEXP (x3, 0, 0);
8054 : operands[1] = x11;
8055 : x12 = XVECEXP (x3, 0, 1);
8056 : operands[2] = x12;
8057 : x13 = XVECEXP (x3, 0, 2);
8058 : operands[3] = x13;
8059 : switch (XINT (x3, 1))
8060 : {
8061 : case 60:
8062 : switch (GET_MODE (operands[0]))
8063 : {
8064 : case E_HImode:
8065 : switch (pattern974 (x2))
8066 : {
8067 : case 0:
8068 : if (!
8069 : #line 4695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8070 : (TARGET_AVX512F && GET_MODE_NUNITS (V16SImode) >= 8
8071 : && ix86_pre_reload_split ()))
8072 : return -1;
8073 : return 3451; /* *avx512f_cmpv16si3 */
8074 :
8075 : case 1:
8076 : if (!(
8077 : #line 4695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8078 : (TARGET_AVX512F && GET_MODE_NUNITS (V16HFmode) >= 8
8079 : && ix86_pre_reload_split ()) &&
8080 : #line 321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8081 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
8082 : return -1;
8083 : return 3458; /* *avx512vl_cmpv16hf3 */
8084 :
8085 : case 2:
8086 : if (!
8087 : #line 4695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8088 : (TARGET_AVX512F && GET_MODE_NUNITS (V16SFmode) >= 8
8089 : && ix86_pre_reload_split ()))
8090 : return -1;
8091 : return 3460; /* *avx512f_cmpv16sf3 */
8092 :
8093 : case 3:
8094 : if (!(
8095 : #line 4889 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8096 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
8097 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8098 : (TARGET_AVX512VL)))
8099 : return -1;
8100 : return 3531; /* *avx512vl_cmpv16qi3 */
8101 :
8102 : case 4:
8103 : if (!(
8104 : #line 4889 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8105 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
8106 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8107 : (TARGET_AVX512VL)))
8108 : return -1;
8109 : return 3537; /* *avx512vl_cmpv16hi3 */
8110 :
8111 : default:
8112 : return -1;
8113 : }
8114 :
8115 : case E_QImode:
8116 : switch (pattern975 (x2))
8117 : {
8118 : case 0:
8119 : if (!(
8120 : #line 4695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8121 : (TARGET_AVX512F && GET_MODE_NUNITS (V8SImode) >= 8
8122 : && ix86_pre_reload_split ()) &&
8123 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8124 : (TARGET_AVX512VL)))
8125 : return -1;
8126 : return 3452; /* *avx512vl_cmpv8si3 */
8127 :
8128 : case 1:
8129 : if (!(
8130 : #line 4695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8131 : (TARGET_AVX512F && GET_MODE_NUNITS (V4SImode) >= 8
8132 : && ix86_pre_reload_split ()) &&
8133 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8134 : (TARGET_AVX512VL)))
8135 : return -1;
8136 : return 3453; /* *avx512vl_cmpv4si3 */
8137 :
8138 : case 2:
8139 : if (!
8140 : #line 4695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8141 : (TARGET_AVX512F && GET_MODE_NUNITS (V8DImode) >= 8
8142 : && ix86_pre_reload_split ()))
8143 : return -1;
8144 : return 3454; /* *avx512f_cmpv8di3 */
8145 :
8146 : case 3:
8147 : if (!(
8148 : #line 4695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8149 : (TARGET_AVX512F && GET_MODE_NUNITS (V4DImode) >= 8
8150 : && ix86_pre_reload_split ()) &&
8151 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8152 : (TARGET_AVX512VL)))
8153 : return -1;
8154 : return 3455; /* *avx512vl_cmpv4di3 */
8155 :
8156 : case 4:
8157 : if (!(
8158 : #line 4695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8159 : (TARGET_AVX512F && GET_MODE_NUNITS (V2DImode) >= 8
8160 : && ix86_pre_reload_split ()) &&
8161 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8162 : (TARGET_AVX512VL)))
8163 : return -1;
8164 : return 3456; /* *avx512vl_cmpv2di3 */
8165 :
8166 : case 5:
8167 : if (!(
8168 : #line 4695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8169 : (TARGET_AVX512F && GET_MODE_NUNITS (V8HFmode) >= 8
8170 : && ix86_pre_reload_split ()) &&
8171 : #line 322 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8172 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
8173 : return -1;
8174 : return 3459; /* *avx512fp16_cmpv8hf3 */
8175 :
8176 : case 6:
8177 : if (!(
8178 : #line 4695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8179 : (TARGET_AVX512F && GET_MODE_NUNITS (V8SFmode) >= 8
8180 : && ix86_pre_reload_split ()) &&
8181 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8182 : (TARGET_AVX512VL)))
8183 : return -1;
8184 : return 3461; /* *avx512vl_cmpv8sf3 */
8185 :
8186 : case 7:
8187 : if (!(
8188 : #line 4695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8189 : (TARGET_AVX512F && GET_MODE_NUNITS (V4SFmode) >= 8
8190 : && ix86_pre_reload_split ()) &&
8191 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8192 : (TARGET_AVX512VL)))
8193 : return -1;
8194 : return 3462; /* *avx512vl_cmpv4sf3 */
8195 :
8196 : case 8:
8197 : if (!
8198 : #line 4695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8199 : (TARGET_AVX512F && GET_MODE_NUNITS (V8DFmode) >= 8
8200 : && ix86_pre_reload_split ()))
8201 : return -1;
8202 : return 3463; /* *avx512f_cmpv8df3 */
8203 :
8204 : case 9:
8205 : if (!(
8206 : #line 4695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8207 : (TARGET_AVX512F && GET_MODE_NUNITS (V4DFmode) >= 8
8208 : && ix86_pre_reload_split ()) &&
8209 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8210 : (TARGET_AVX512VL)))
8211 : return -1;
8212 : return 3464; /* *avx512vl_cmpv4df3 */
8213 :
8214 : case 10:
8215 : if (!(
8216 : #line 4695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8217 : (TARGET_AVX512F && GET_MODE_NUNITS (V2DFmode) >= 8
8218 : && ix86_pre_reload_split ()) &&
8219 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8220 : (TARGET_AVX512VL)))
8221 : return -1;
8222 : return 3465; /* *avx512vl_cmpv2df3 */
8223 :
8224 : case 11:
8225 : if (!(
8226 : #line 4889 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8227 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
8228 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8229 : (TARGET_AVX512VL)))
8230 : return -1;
8231 : return 3539; /* *avx512vl_cmpv8hi3 */
8232 :
8233 : default:
8234 : return -1;
8235 : }
8236 :
8237 : default:
8238 : return -1;
8239 : }
8240 :
8241 : case 158:
8242 : if (!const_0_to_7_operand (operands[3], E_SImode))
8243 : return -1;
8244 : switch (GET_MODE (operands[0]))
8245 : {
8246 : case E_HImode:
8247 : switch (pattern1088 (x2))
8248 : {
8249 : case 0:
8250 : if (!(
8251 : #line 4889 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8252 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
8253 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8254 : (TARGET_AVX512VL)))
8255 : return -1;
8256 : return 3532; /* *avx512vl_cmpv16qi3 */
8257 :
8258 : case 1:
8259 : if (!(
8260 : #line 4889 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8261 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
8262 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8263 : (TARGET_AVX512VL)))
8264 : return -1;
8265 : return 3538; /* *avx512vl_cmpv16hi3 */
8266 :
8267 : case 2:
8268 : if (!
8269 : #line 5115 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8270 : (TARGET_AVX512F && ix86_pre_reload_split ()
8271 : && GET_MODE_NUNITS (V16SImode) >= 8))
8272 : return -1;
8273 : return 3709; /* *avx512f_ucmpv16si3 */
8274 :
8275 : default:
8276 : return -1;
8277 : }
8278 :
8279 : case E_QImode:
8280 : switch (pattern1089 (x2))
8281 : {
8282 : case 0:
8283 : if (!(
8284 : #line 4889 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8285 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
8286 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8287 : (TARGET_AVX512VL)))
8288 : return -1;
8289 : return 3540; /* *avx512vl_cmpv8hi3 */
8290 :
8291 : case 1:
8292 : if (!(
8293 : #line 5115 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8294 : (TARGET_AVX512F && ix86_pre_reload_split ()
8295 : && GET_MODE_NUNITS (V8SImode) >= 8) &&
8296 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8297 : (TARGET_AVX512VL)))
8298 : return -1;
8299 : return 3710; /* *avx512vl_ucmpv8si3 */
8300 :
8301 : case 2:
8302 : if (!(
8303 : #line 5115 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8304 : (TARGET_AVX512F && ix86_pre_reload_split ()
8305 : && GET_MODE_NUNITS (V4SImode) >= 8) &&
8306 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8307 : (TARGET_AVX512VL)))
8308 : return -1;
8309 : return 3711; /* *avx512vl_ucmpv4si3 */
8310 :
8311 : case 3:
8312 : if (!
8313 : #line 5115 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8314 : (TARGET_AVX512F && ix86_pre_reload_split ()
8315 : && GET_MODE_NUNITS (V8DImode) >= 8))
8316 : return -1;
8317 : return 3712; /* *avx512f_ucmpv8di3 */
8318 :
8319 : case 4:
8320 : if (!(
8321 : #line 5115 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8322 : (TARGET_AVX512F && ix86_pre_reload_split ()
8323 : && GET_MODE_NUNITS (V4DImode) >= 8) &&
8324 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8325 : (TARGET_AVX512VL)))
8326 : return -1;
8327 : return 3713; /* *avx512vl_ucmpv4di3 */
8328 :
8329 : case 5:
8330 : if (!(
8331 : #line 5115 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8332 : (TARGET_AVX512F && ix86_pre_reload_split ()
8333 : && GET_MODE_NUNITS (V2DImode) >= 8) &&
8334 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8335 : (TARGET_AVX512VL)))
8336 : return -1;
8337 : return 3714; /* *avx512vl_ucmpv2di3 */
8338 :
8339 : default:
8340 : return -1;
8341 : }
8342 :
8343 : default:
8344 : return -1;
8345 : }
8346 :
8347 : default:
8348 : return -1;
8349 : }
8350 :
8351 : default:
8352 : return -1;
8353 : }
8354 : }
8355 :
8356 : int
8357 : recog_63 (rtx x1 ATTRIBUTE_UNUSED,
8358 : rtx_insn *insn ATTRIBUTE_UNUSED,
8359 : int *pnum_clobbers ATTRIBUTE_UNUSED)
8360 : {
8361 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
8362 : rtx x2, x3, x4, x5, x6;
8363 : int res ATTRIBUTE_UNUSED;
8364 : x2 = XEXP (x1, 1);
8365 : switch (XVECLEN (x2, 0))
8366 : {
8367 : case 1:
8368 : switch (XINT (x2, 1))
8369 : {
8370 : case 20:
8371 : if (GET_MODE (x2) != E_BLKmode)
8372 : return -1;
8373 : x3 = XVECEXP (x2, 0, 0);
8374 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
8375 : return -1;
8376 : x4 = XEXP (x1, 0);
8377 : operands[0] = x4;
8378 : if (!memory_operand (operands[0], E_BLKmode)
8379 : || !
8380 : #line 29852 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8381 : (TARGET_FXSR))
8382 : return -1;
8383 : return 1954; /* fxsave */
8384 :
8385 : case 22:
8386 : if (GET_MODE (x2) != E_BLKmode)
8387 : return -1;
8388 : x3 = XVECEXP (x2, 0, 0);
8389 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
8390 : return -1;
8391 : x4 = XEXP (x1, 0);
8392 : operands[0] = x4;
8393 : if (!memory_operand (operands[0], E_BLKmode)
8394 : || !
8395 : #line 29862 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8396 : (TARGET_64BIT && TARGET_FXSR))
8397 : return -1;
8398 : return 1955; /* fxsave64 */
8399 :
8400 : case 24:
8401 : if (GET_MODE (x2) != E_BLKmode)
8402 : return -1;
8403 : x4 = XEXP (x1, 0);
8404 : operands[0] = x4;
8405 : if (!memory_operand (operands[0], E_BLKmode))
8406 : return -1;
8407 : x3 = XVECEXP (x2, 0, 0);
8408 : operands[1] = x3;
8409 : if (!register_operand (operands[1], E_DImode)
8410 : || !
8411 : #line 29932 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8412 : (!TARGET_64BIT && TARGET_XSAVE))
8413 : return -1;
8414 : return 1958; /* xsave */
8415 :
8416 : case 28:
8417 : if (GET_MODE (x2) != E_BLKmode)
8418 : return -1;
8419 : x4 = XEXP (x1, 0);
8420 : operands[0] = x4;
8421 : if (!memory_operand (operands[0], E_BLKmode))
8422 : return -1;
8423 : x3 = XVECEXP (x2, 0, 0);
8424 : operands[1] = x3;
8425 : if (!register_operand (operands[1], E_DImode)
8426 : || !(
8427 : #line 29932 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8428 : (!TARGET_64BIT && TARGET_XSAVE) &&
8429 : #line 29893 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8430 : (TARGET_XSAVEOPT)))
8431 : return -1;
8432 : return 1959; /* xsaveopt */
8433 :
8434 : case 34:
8435 : if (GET_MODE (x2) != E_BLKmode)
8436 : return -1;
8437 : x4 = XEXP (x1, 0);
8438 : operands[0] = x4;
8439 : if (!memory_operand (operands[0], E_BLKmode))
8440 : return -1;
8441 : x3 = XVECEXP (x2, 0, 0);
8442 : operands[1] = x3;
8443 : if (!register_operand (operands[1], E_DImode)
8444 : || !(
8445 : #line 29932 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8446 : (!TARGET_64BIT && TARGET_XSAVE) &&
8447 : #line 29894 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8448 : (TARGET_XSAVEC)))
8449 : return -1;
8450 : return 1960; /* xsavec */
8451 :
8452 : case 30:
8453 : if (GET_MODE (x2) != E_BLKmode)
8454 : return -1;
8455 : x4 = XEXP (x1, 0);
8456 : operands[0] = x4;
8457 : if (!memory_operand (operands[0], E_BLKmode))
8458 : return -1;
8459 : x3 = XVECEXP (x2, 0, 0);
8460 : operands[1] = x3;
8461 : if (!register_operand (operands[1], E_DImode)
8462 : || !(
8463 : #line 29932 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8464 : (!TARGET_64BIT && TARGET_XSAVE) &&
8465 : #line 29895 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8466 : (TARGET_XSAVES)))
8467 : return -1;
8468 : return 1961; /* xsaves */
8469 :
8470 : case 40:
8471 : if (pnum_clobbers == NULL
8472 : || GET_MODE (x2) != E_BLKmode)
8473 : return -1;
8474 : x3 = XVECEXP (x2, 0, 0);
8475 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
8476 : return -1;
8477 : x4 = XEXP (x1, 0);
8478 : operands[0] = x4;
8479 : if (!memory_operand (operands[0], E_BLKmode)
8480 : || !
8481 : #line 30063 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8482 : (TARGET_80387))
8483 : return -1;
8484 : *pnum_clobbers = 8;
8485 : return 1980; /* fnstenv */
8486 :
8487 : case 42:
8488 : if (GET_MODE (x2) != E_HImode)
8489 : return -1;
8490 : x3 = XVECEXP (x2, 0, 0);
8491 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
8492 : return -1;
8493 : x4 = XEXP (x1, 0);
8494 : operands[0] = x4;
8495 : if (!nonimmediate_operand (operands[0], E_HImode)
8496 : || !
8497 : #line 30091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8498 : (TARGET_80387))
8499 : return -1;
8500 : return 1982; /* fnstsw */
8501 :
8502 : case 49:
8503 : if (pattern60 (x1,
8504 : E_CCZmode) != 0
8505 : || !
8506 : #line 30377 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8507 : (TARGET_RTM))
8508 : return -1;
8509 : return 2025; /* xtest_1 */
8510 :
8511 : case 74:
8512 : if (pattern60 (x1,
8513 : E_CCCmode) != 0
8514 : || !
8515 : #line 30562 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8516 : (TARGET_UINTR && TARGET_64BIT))
8517 : return -1;
8518 : return 2051; /* testui */
8519 :
8520 : case 88:
8521 : if (GET_MODE (x2) != E_BLKmode)
8522 : return -1;
8523 : x3 = XVECEXP (x2, 0, 0);
8524 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
8525 : return -1;
8526 : x4 = XEXP (x1, 0);
8527 : operands[0] = x4;
8528 : if (!memory_operand (operands[0], E_BLKmode)
8529 : || !
8530 : #line 30790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8531 : (TARGET_AMX_TILE))
8532 : return -1;
8533 : return 2067; /* sttilecfg */
8534 :
8535 : case 89:
8536 : x4 = XEXP (x1, 0);
8537 : operands[0] = x4;
8538 : x3 = XVECEXP (x2, 0, 0);
8539 : operands[1] = x3;
8540 : switch (GET_MODE (operands[0]))
8541 : {
8542 : case E_QImode:
8543 : if (!register_operand (operands[0], E_QImode)
8544 : || GET_MODE (x2) != E_QImode
8545 : || !memory_operand (operands[1], E_QImode)
8546 : || !
8547 : #line 30801 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8548 : (TARGET_MOVRS && TARGET_64BIT))
8549 : return -1;
8550 : return 2068; /* movrsqi */
8551 :
8552 : case E_HImode:
8553 : if (!register_operand (operands[0], E_HImode)
8554 : || GET_MODE (x2) != E_HImode
8555 : || !memory_operand (operands[1], E_HImode)
8556 : || !
8557 : #line 30801 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8558 : (TARGET_MOVRS && TARGET_64BIT))
8559 : return -1;
8560 : return 2069; /* movrshi */
8561 :
8562 : default:
8563 : return -1;
8564 : }
8565 :
8566 : default:
8567 : return -1;
8568 : }
8569 :
8570 : case 2:
8571 : switch (XINT (x2, 1))
8572 : {
8573 : case 24:
8574 : if (pattern99 (x1) != 0
8575 : || !
8576 : #line 29945 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8577 : (TARGET_64BIT && TARGET_XSAVE))
8578 : return -1;
8579 : return 1962; /* xsave_rex64 */
8580 :
8581 : case 28:
8582 : if (pattern99 (x1) != 0
8583 : || !(
8584 : #line 29945 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8585 : (TARGET_64BIT && TARGET_XSAVE) &&
8586 : #line 29893 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8587 : (TARGET_XSAVEOPT)))
8588 : return -1;
8589 : return 1963; /* xsaveopt_rex64 */
8590 :
8591 : case 34:
8592 : if (pattern99 (x1) != 0
8593 : || !(
8594 : #line 29945 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8595 : (TARGET_64BIT && TARGET_XSAVE) &&
8596 : #line 29894 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8597 : (TARGET_XSAVEC)))
8598 : return -1;
8599 : return 1964; /* xsavec_rex64 */
8600 :
8601 : case 30:
8602 : if (pattern99 (x1) != 0
8603 : || !(
8604 : #line 29945 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8605 : (TARGET_64BIT && TARGET_XSAVE) &&
8606 : #line 29895 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8607 : (TARGET_XSAVES)))
8608 : return -1;
8609 : return 1965; /* xsaves_rex64 */
8610 :
8611 : case 26:
8612 : if (pattern99 (x1) != 0
8613 : || !
8614 : #line 29959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8615 : (TARGET_64BIT && TARGET_XSAVE))
8616 : return -1;
8617 : return 1966; /* xsave64 */
8618 :
8619 : case 29:
8620 : if (pattern99 (x1) != 0
8621 : || !(
8622 : #line 29959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8623 : (TARGET_64BIT && TARGET_XSAVE) &&
8624 : #line 29899 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8625 : (TARGET_XSAVEOPT)))
8626 : return -1;
8627 : return 1967; /* xsaveopt64 */
8628 :
8629 : case 35:
8630 : if (pattern99 (x1) != 0
8631 : || !(
8632 : #line 29959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8633 : (TARGET_64BIT && TARGET_XSAVE) &&
8634 : #line 29900 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8635 : (TARGET_XSAVEC)))
8636 : return -1;
8637 : return 1968; /* xsavec64 */
8638 :
8639 : case 32:
8640 : if (pattern99 (x1) != 0
8641 : || !(
8642 : #line 29959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8643 : (TARGET_64BIT && TARGET_XSAVE) &&
8644 : #line 29901 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8645 : (TARGET_XSAVES)))
8646 : return -1;
8647 : return 1969; /* xsaves64 */
8648 :
8649 : case 79:
8650 : switch (pattern100 (x1))
8651 : {
8652 : case 0:
8653 : if (!(
8654 : #line 30544 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8655 : (TARGET_ENQCMD) &&
8656 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8657 : (Pmode == SImode)))
8658 : return -1;
8659 : return 2045; /* enqcmd_si */
8660 :
8661 : case 1:
8662 : if (!(
8663 : #line 30544 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8664 : (TARGET_ENQCMD) &&
8665 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8666 : (Pmode == DImode)))
8667 : return -1;
8668 : return 2047; /* enqcmd_di */
8669 :
8670 : default:
8671 : return -1;
8672 : }
8673 :
8674 : case 80:
8675 : switch (pattern100 (x1))
8676 : {
8677 : case 0:
8678 : if (!(
8679 : #line 30544 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8680 : (TARGET_ENQCMD) &&
8681 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8682 : (Pmode == SImode)))
8683 : return -1;
8684 : return 2046; /* enqcmds_si */
8685 :
8686 : case 1:
8687 : if (!(
8688 : #line 30544 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8689 : (TARGET_ENQCMD) &&
8690 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8691 : (Pmode == DImode)))
8692 : return -1;
8693 : return 2048; /* enqcmds_di */
8694 :
8695 : default:
8696 : return -1;
8697 : }
8698 :
8699 : case 69:
8700 : if (pattern101 (x1) != 0
8701 : || !
8702 : #line 30583 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8703 : (!TARGET_64BIT && TARGET_WAITPKG))
8704 : return -1;
8705 : return 2053; /* umwait */
8706 :
8707 : case 71:
8708 : if (pattern101 (x1) != 0
8709 : || !
8710 : #line 30610 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8711 : (!TARGET_64BIT && TARGET_WAITPKG))
8712 : return -1;
8713 : return 2057; /* tpause */
8714 :
8715 : case 111:
8716 : if (pnum_clobbers == NULL)
8717 : return -1;
8718 : x4 = XEXP (x1, 0);
8719 : operands[0] = x4;
8720 : x5 = XVECEXP (x2, 0, 1);
8721 : operands[2] = x5;
8722 : if (!const_int_operand (operands[2], E_SImode))
8723 : return -1;
8724 : x3 = XVECEXP (x2, 0, 0);
8725 : switch (GET_CODE (x3))
8726 : {
8727 : case PLUS:
8728 : switch (pattern869 (x2))
8729 : {
8730 : case 0:
8731 : *pnum_clobbers = 1;
8732 : return 11099; /* atomic_addqi */
8733 :
8734 : case 1:
8735 : *pnum_clobbers = 1;
8736 : return 11100; /* atomic_addhi */
8737 :
8738 : default:
8739 : return -1;
8740 : }
8741 :
8742 : case MINUS:
8743 : switch (pattern869 (x2))
8744 : {
8745 : case 0:
8746 : *pnum_clobbers = 1;
8747 : return 11103; /* atomic_subqi */
8748 :
8749 : case 1:
8750 : *pnum_clobbers = 1;
8751 : return 11104; /* atomic_subhi */
8752 :
8753 : default:
8754 : return -1;
8755 : }
8756 :
8757 : case AND:
8758 : switch (pattern869 (x2))
8759 : {
8760 : case 0:
8761 : *pnum_clobbers = 1;
8762 : return 11107; /* atomic_andqi */
8763 :
8764 : case 1:
8765 : *pnum_clobbers = 1;
8766 : return 11110; /* atomic_andhi */
8767 :
8768 : default:
8769 : return -1;
8770 : }
8771 :
8772 : case IOR:
8773 : switch (pattern869 (x2))
8774 : {
8775 : case 0:
8776 : *pnum_clobbers = 1;
8777 : return 11108; /* atomic_orqi */
8778 :
8779 : case 1:
8780 : *pnum_clobbers = 1;
8781 : return 11111; /* atomic_orhi */
8782 :
8783 : default:
8784 : return -1;
8785 : }
8786 :
8787 : case XOR:
8788 : switch (pattern869 (x2))
8789 : {
8790 : case 0:
8791 : *pnum_clobbers = 1;
8792 : return 11109; /* atomic_xorqi */
8793 :
8794 : case 1:
8795 : *pnum_clobbers = 1;
8796 : return 11112; /* atomic_xorhi */
8797 :
8798 : default:
8799 : return -1;
8800 : }
8801 :
8802 : default:
8803 : return -1;
8804 : }
8805 :
8806 : default:
8807 : return -1;
8808 : }
8809 :
8810 : case 3:
8811 : if (pattern46 (x1,
8812 : E_CCCmode) != 0)
8813 : return -1;
8814 : x3 = XVECEXP (x2, 0, 0);
8815 : operands[0] = x3;
8816 : x5 = XVECEXP (x2, 0, 1);
8817 : operands[1] = x5;
8818 : x6 = XVECEXP (x2, 0, 2);
8819 : operands[2] = x6;
8820 : switch (XINT (x2, 1))
8821 : {
8822 : case 15:
8823 : if (!nonimmediate_operand (operands[1], E_SImode)
8824 : || !const_int_operand (operands[2], E_SImode))
8825 : return -1;
8826 : switch (GET_MODE (operands[0]))
8827 : {
8828 : case E_SImode:
8829 : if (!register_operand (operands[0], E_SImode)
8830 : || !
8831 : #line 30148 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8832 : (TARGET_LWP))
8833 : return -1;
8834 : return 1990; /* lwp_lwpinssi */
8835 :
8836 : case E_DImode:
8837 : if (!register_operand (operands[0], E_DImode)
8838 : || !(
8839 : #line 30148 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8840 : (TARGET_LWP) &&
8841 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8842 : (TARGET_64BIT)))
8843 : return -1;
8844 : return 1991; /* lwp_lwpinsdi */
8845 :
8846 : default:
8847 : return -1;
8848 : }
8849 :
8850 : case 69:
8851 : if (!register_operand (operands[0], E_SImode)
8852 : || !register_operand (operands[1], E_SImode)
8853 : || !register_operand (operands[2], E_SImode)
8854 : || !
8855 : #line 30593 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8856 : (TARGET_64BIT && TARGET_WAITPKG))
8857 : return -1;
8858 : return 2054; /* umwait_rex64 */
8859 :
8860 : case 71:
8861 : if (!register_operand (operands[0], E_SImode)
8862 : || !register_operand (operands[1], E_SImode)
8863 : || !register_operand (operands[2], E_SImode)
8864 : || !
8865 : #line 30620 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8866 : (TARGET_64BIT && TARGET_WAITPKG))
8867 : return -1;
8868 : return 2058; /* tpause_rex64 */
8869 :
8870 : default:
8871 : return -1;
8872 : }
8873 :
8874 : default:
8875 : return -1;
8876 : }
8877 : }
8878 :
8879 : int
8880 : recog_76 (rtx x1 ATTRIBUTE_UNUSED,
8881 : rtx_insn *insn ATTRIBUTE_UNUSED,
8882 : int *pnum_clobbers ATTRIBUTE_UNUSED)
8883 : {
8884 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
8885 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
8886 : rtx x10;
8887 : int res ATTRIBUTE_UNUSED;
8888 : x2 = XEXP (x1, 1);
8889 : x3 = XEXP (x2, 0);
8890 : x4 = XEXP (x3, 0);
8891 : switch (GET_CODE (x4))
8892 : {
8893 : case REG:
8894 : case SUBREG:
8895 : case MEM:
8896 : switch (pattern115 (x2, pnum_clobbers))
8897 : {
8898 : case 0:
8899 : if (
8900 : #line 12968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8901 : (TARGET_APX_NDD && TARGET_APX_NF
8902 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8903 : return 738; /* *andqi_1_zextsi_nf */
8904 : if (pnum_clobbers == NULL
8905 : || !
8906 : #line 12968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8907 : (TARGET_APX_NDD && true
8908 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8909 : return -1;
8910 : *pnum_clobbers = 1;
8911 : return 739; /* *andqi_1_zextsi */
8912 :
8913 : case 1:
8914 : if (
8915 : #line 12982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8916 : (TARGET_APX_NDD && TARGET_APX_NF
8917 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8918 : return 742; /* *andhi_1_zextsi_nf */
8919 : if (pnum_clobbers == NULL
8920 : || !
8921 : #line 12982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8922 : (TARGET_APX_NDD && true
8923 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8924 : return -1;
8925 : *pnum_clobbers = 1;
8926 : return 743; /* *andhi_1_zextsi */
8927 :
8928 : case 2:
8929 : if (
8930 : #line 12968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8931 : (TARGET_APX_NDD && TARGET_APX_NF
8932 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8933 : return 740; /* *andqi_1_zextdi_nf */
8934 : if (pnum_clobbers == NULL
8935 : || !
8936 : #line 12968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8937 : (TARGET_APX_NDD && true
8938 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8939 : return -1;
8940 : *pnum_clobbers = 1;
8941 : return 741; /* *andqi_1_zextdi */
8942 :
8943 : case 3:
8944 : if (
8945 : #line 12982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8946 : (TARGET_APX_NDD && TARGET_APX_NF
8947 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8948 : return 744; /* *andhi_1_zextdi_nf */
8949 : if (pnum_clobbers == NULL
8950 : || !
8951 : #line 12982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8952 : (TARGET_APX_NDD && true
8953 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8954 : return -1;
8955 : *pnum_clobbers = 1;
8956 : return 745; /* *andhi_1_zextdi */
8957 :
8958 : case 4:
8959 : if (!
8960 : #line 12998 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8961 : (TARGET_64BIT
8962 : && ix86_binary_operator_ok (AND, SImode, operands, TARGET_APX_NDD)))
8963 : return -1;
8964 : *pnum_clobbers = 1;
8965 : return 746; /* *andsi_1_zext */
8966 :
8967 : default:
8968 : return -1;
8969 : }
8970 :
8971 : case PLUS:
8972 : if (pnum_clobbers == NULL
8973 : || pattern441 (x4) != 0)
8974 : return -1;
8975 : x5 = XEXP (x4, 1);
8976 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + -1]
8977 : || !register_operand (operands[0], E_DImode)
8978 : || GET_MODE (x2) != E_DImode
8979 : || GET_MODE (x3) != E_SImode)
8980 : return -1;
8981 : x6 = XEXP (x4, 0);
8982 : x7 = XEXP (x6, 1);
8983 : operands[2] = x7;
8984 : if (!register_operand (operands[2], E_QImode))
8985 : return -1;
8986 : x8 = XEXP (x3, 1);
8987 : operands[1] = x8;
8988 : if (!nonimmediate_operand (operands[1], E_SImode)
8989 : || !
8990 : #line 22474 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8991 : (TARGET_64BIT && TARGET_BMI2))
8992 : return -1;
8993 : *pnum_clobbers = 1;
8994 : return 1632; /* *bmi2_bzhi_zero_extendsidi_4 */
8995 :
8996 : case UNSPEC:
8997 : if (XVECLEN (x4, 0) != 2)
8998 : return -1;
8999 : x9 = XVECEXP (x4, 0, 0);
9000 : operands[1] = x9;
9001 : x10 = XVECEXP (x4, 0, 1);
9002 : operands[2] = x10;
9003 : x8 = XEXP (x3, 1);
9004 : operands[3] = x8;
9005 : switch (XINT (x4, 1))
9006 : {
9007 : case 159:
9008 : switch (GET_MODE (operands[0]))
9009 : {
9010 : case E_DImode:
9011 : switch (pattern1096 (x2,
9012 : E_DImode))
9013 : {
9014 : case 0:
9015 : if (!(
9016 : #line 19429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9017 : (TARGET_AVX512BW
9018 : && (8
9019 : > GET_MODE_SIZE (DImode))) &&
9020 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9021 : (TARGET_AVX512BW)))
9022 : return -1;
9023 : return 8237; /* *avx512bw_testmv64qi3_zext_mask */
9024 :
9025 : case 1:
9026 : if (!(
9027 : #line 19429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9028 : (TARGET_AVX512BW
9029 : && (8
9030 : > GET_MODE_SIZE (SImode))) && ((
9031 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9032 : (TARGET_AVX512BW) &&
9033 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9034 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9035 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9036 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9037 : return -1;
9038 : return 8240; /* *avx512vl_testmv32qi3_zext_mask */
9039 :
9040 : case 2:
9041 : if (!(
9042 : #line 19429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9043 : (TARGET_AVX512BW
9044 : && (8
9045 : > GET_MODE_SIZE (SImode))) &&
9046 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9047 : (TARGET_AVX512BW)))
9048 : return -1;
9049 : return 8246; /* *avx512bw_testmv32hi3_zext_mask */
9050 :
9051 : case 3:
9052 : if (!(
9053 : #line 19429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9054 : (TARGET_AVX512BW
9055 : && (8
9056 : > GET_MODE_SIZE (HImode))) && ((
9057 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9058 : (TARGET_AVX512BW) &&
9059 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9060 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9061 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9062 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9063 : return -1;
9064 : return 8243; /* *avx512vl_testmv16qi3_zext_mask */
9065 :
9066 : case 4:
9067 : if (!(
9068 : #line 19429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9069 : (TARGET_AVX512BW
9070 : && (8
9071 : > GET_MODE_SIZE (HImode))) && ((
9072 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9073 : (TARGET_AVX512BW) &&
9074 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9075 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9076 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9077 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9078 : return -1;
9079 : return 8249; /* *avx512vl_testmv16hi3_zext_mask */
9080 :
9081 : case 5:
9082 : if (!(
9083 : #line 19429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9084 : (TARGET_AVX512BW
9085 : && (8
9086 : > GET_MODE_SIZE (HImode))) &&
9087 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9088 : (TARGET_AVX512BW)))
9089 : return -1;
9090 : return 8255; /* *avx512f_testmv16si3_zext_mask */
9091 :
9092 : case 6:
9093 : if (!(
9094 : #line 19429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9095 : (TARGET_AVX512BW
9096 : && (8
9097 : > GET_MODE_SIZE (QImode))) && ((
9098 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9099 : (TARGET_AVX512BW) &&
9100 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9101 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9102 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9103 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9104 : return -1;
9105 : return 8252; /* *avx512vl_testmv8hi3_zext_mask */
9106 :
9107 : case 7:
9108 : if (!(
9109 : #line 19429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9110 : (TARGET_AVX512BW
9111 : && (8
9112 : > GET_MODE_SIZE (QImode))) && ((
9113 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9114 : (TARGET_AVX512BW) &&
9115 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9116 : (TARGET_AVX512VL)) &&
9117 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9118 : (TARGET_AVX512VL))))
9119 : return -1;
9120 : return 8258; /* *avx512vl_testmv8si3_zext_mask */
9121 :
9122 : case 8:
9123 : if (!(
9124 : #line 19429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9125 : (TARGET_AVX512BW
9126 : && (8
9127 : > GET_MODE_SIZE (QImode))) && ((
9128 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9129 : (TARGET_AVX512BW) &&
9130 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9131 : (TARGET_AVX512VL)) &&
9132 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9133 : (TARGET_AVX512VL))))
9134 : return -1;
9135 : return 8261; /* *avx512vl_testmv4si3_zext_mask */
9136 :
9137 : case 9:
9138 : if (!(
9139 : #line 19429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9140 : (TARGET_AVX512BW
9141 : && (8
9142 : > GET_MODE_SIZE (QImode))) &&
9143 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9144 : (TARGET_AVX512BW)))
9145 : return -1;
9146 : return 8264; /* *avx512f_testmv8di3_zext_mask */
9147 :
9148 : case 10:
9149 : if (!(
9150 : #line 19429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9151 : (TARGET_AVX512BW
9152 : && (8
9153 : > GET_MODE_SIZE (QImode))) && ((
9154 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9155 : (TARGET_AVX512BW) &&
9156 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9157 : (TARGET_AVX512VL)) &&
9158 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9159 : (TARGET_AVX512VL))))
9160 : return -1;
9161 : return 8267; /* *avx512vl_testmv4di3_zext_mask */
9162 :
9163 : case 11:
9164 : if (!(
9165 : #line 19429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9166 : (TARGET_AVX512BW
9167 : && (8
9168 : > GET_MODE_SIZE (QImode))) && ((
9169 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9170 : (TARGET_AVX512BW) &&
9171 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9172 : (TARGET_AVX512VL)) &&
9173 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9174 : (TARGET_AVX512VL))))
9175 : return -1;
9176 : return 8270; /* *avx512vl_testmv2di3_zext_mask */
9177 :
9178 : default:
9179 : return -1;
9180 : }
9181 :
9182 : case E_SImode:
9183 : switch (pattern1096 (x2,
9184 : E_SImode))
9185 : {
9186 : case 0:
9187 : if (!(
9188 : #line 19429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9189 : (TARGET_AVX512BW
9190 : && (4
9191 : > GET_MODE_SIZE (DImode))) &&
9192 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9193 : (TARGET_AVX512BW)))
9194 : return -1;
9195 : return 8238; /* *avx512bw_testmv64qi3_zext_mask */
9196 :
9197 : case 1:
9198 : if (!(
9199 : #line 19429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9200 : (TARGET_AVX512BW
9201 : && (4
9202 : > GET_MODE_SIZE (SImode))) && ((
9203 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9204 : (TARGET_AVX512BW) &&
9205 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9206 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9207 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9208 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9209 : return -1;
9210 : return 8241; /* *avx512vl_testmv32qi3_zext_mask */
9211 :
9212 : case 2:
9213 : if (!(
9214 : #line 19429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9215 : (TARGET_AVX512BW
9216 : && (4
9217 : > GET_MODE_SIZE (SImode))) &&
9218 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9219 : (TARGET_AVX512BW)))
9220 : return -1;
9221 : return 8247; /* *avx512bw_testmv32hi3_zext_mask */
9222 :
9223 : case 3:
9224 : if (!(
9225 : #line 19429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9226 : (TARGET_AVX512BW
9227 : && (4
9228 : > GET_MODE_SIZE (HImode))) && ((
9229 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9230 : (TARGET_AVX512BW) &&
9231 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9232 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9233 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9234 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9235 : return -1;
9236 : return 8244; /* *avx512vl_testmv16qi3_zext_mask */
9237 :
9238 : case 4:
9239 : if (!(
9240 : #line 19429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9241 : (TARGET_AVX512BW
9242 : && (4
9243 : > GET_MODE_SIZE (HImode))) && ((
9244 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9245 : (TARGET_AVX512BW) &&
9246 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9247 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9248 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9249 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9250 : return -1;
9251 : return 8250; /* *avx512vl_testmv16hi3_zext_mask */
9252 :
9253 : case 5:
9254 : if (!(
9255 : #line 19429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9256 : (TARGET_AVX512BW
9257 : && (4
9258 : > GET_MODE_SIZE (HImode))) &&
9259 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9260 : (TARGET_AVX512BW)))
9261 : return -1;
9262 : return 8256; /* *avx512f_testmv16si3_zext_mask */
9263 :
9264 : case 6:
9265 : if (!(
9266 : #line 19429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9267 : (TARGET_AVX512BW
9268 : && (4
9269 : > GET_MODE_SIZE (QImode))) && ((
9270 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9271 : (TARGET_AVX512BW) &&
9272 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9273 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9274 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9275 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9276 : return -1;
9277 : return 8253; /* *avx512vl_testmv8hi3_zext_mask */
9278 :
9279 : case 7:
9280 : if (!(
9281 : #line 19429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9282 : (TARGET_AVX512BW
9283 : && (4
9284 : > GET_MODE_SIZE (QImode))) && ((
9285 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9286 : (TARGET_AVX512BW) &&
9287 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9288 : (TARGET_AVX512VL)) &&
9289 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9290 : (TARGET_AVX512VL))))
9291 : return -1;
9292 : return 8259; /* *avx512vl_testmv8si3_zext_mask */
9293 :
9294 : case 8:
9295 : if (!(
9296 : #line 19429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9297 : (TARGET_AVX512BW
9298 : && (4
9299 : > GET_MODE_SIZE (QImode))) && ((
9300 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9301 : (TARGET_AVX512BW) &&
9302 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9303 : (TARGET_AVX512VL)) &&
9304 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9305 : (TARGET_AVX512VL))))
9306 : return -1;
9307 : return 8262; /* *avx512vl_testmv4si3_zext_mask */
9308 :
9309 : case 9:
9310 : if (!(
9311 : #line 19429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9312 : (TARGET_AVX512BW
9313 : && (4
9314 : > GET_MODE_SIZE (QImode))) &&
9315 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9316 : (TARGET_AVX512BW)))
9317 : return -1;
9318 : return 8265; /* *avx512f_testmv8di3_zext_mask */
9319 :
9320 : case 10:
9321 : if (!(
9322 : #line 19429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9323 : (TARGET_AVX512BW
9324 : && (4
9325 : > GET_MODE_SIZE (QImode))) && ((
9326 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9327 : (TARGET_AVX512BW) &&
9328 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9329 : (TARGET_AVX512VL)) &&
9330 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9331 : (TARGET_AVX512VL))))
9332 : return -1;
9333 : return 8268; /* *avx512vl_testmv4di3_zext_mask */
9334 :
9335 : case 11:
9336 : if (!(
9337 : #line 19429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9338 : (TARGET_AVX512BW
9339 : && (4
9340 : > GET_MODE_SIZE (QImode))) && ((
9341 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9342 : (TARGET_AVX512BW) &&
9343 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9344 : (TARGET_AVX512VL)) &&
9345 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9346 : (TARGET_AVX512VL))))
9347 : return -1;
9348 : return 8271; /* *avx512vl_testmv2di3_zext_mask */
9349 :
9350 : default:
9351 : return -1;
9352 : }
9353 :
9354 : default:
9355 : return -1;
9356 : }
9357 :
9358 : case 160:
9359 : switch (GET_MODE (operands[0]))
9360 : {
9361 : case E_DImode:
9362 : switch (pattern1096 (x2,
9363 : E_DImode))
9364 : {
9365 : case 0:
9366 : if (!(
9367 : #line 19459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9368 : (TARGET_AVX512BW
9369 : && (8
9370 : > GET_MODE_SIZE (DImode))) &&
9371 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9372 : (TARGET_AVX512BW)))
9373 : return -1;
9374 : return 8309; /* *avx512bw_testnmv64qi3_zext_mask */
9375 :
9376 : case 1:
9377 : if (!(
9378 : #line 19459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9379 : (TARGET_AVX512BW
9380 : && (8
9381 : > GET_MODE_SIZE (SImode))) && ((
9382 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9383 : (TARGET_AVX512BW) &&
9384 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9385 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9386 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9387 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9388 : return -1;
9389 : return 8312; /* *avx512vl_testnmv32qi3_zext_mask */
9390 :
9391 : case 2:
9392 : if (!(
9393 : #line 19459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9394 : (TARGET_AVX512BW
9395 : && (8
9396 : > GET_MODE_SIZE (SImode))) &&
9397 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9398 : (TARGET_AVX512BW)))
9399 : return -1;
9400 : return 8318; /* *avx512bw_testnmv32hi3_zext_mask */
9401 :
9402 : case 3:
9403 : if (!(
9404 : #line 19459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9405 : (TARGET_AVX512BW
9406 : && (8
9407 : > GET_MODE_SIZE (HImode))) && ((
9408 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9409 : (TARGET_AVX512BW) &&
9410 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9411 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9412 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9413 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9414 : return -1;
9415 : return 8315; /* *avx512vl_testnmv16qi3_zext_mask */
9416 :
9417 : case 4:
9418 : if (!(
9419 : #line 19459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9420 : (TARGET_AVX512BW
9421 : && (8
9422 : > GET_MODE_SIZE (HImode))) && ((
9423 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9424 : (TARGET_AVX512BW) &&
9425 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9426 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9427 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9428 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9429 : return -1;
9430 : return 8321; /* *avx512vl_testnmv16hi3_zext_mask */
9431 :
9432 : case 5:
9433 : if (!(
9434 : #line 19459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9435 : (TARGET_AVX512BW
9436 : && (8
9437 : > GET_MODE_SIZE (HImode))) &&
9438 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9439 : (TARGET_AVX512BW)))
9440 : return -1;
9441 : return 8327; /* *avx512f_testnmv16si3_zext_mask */
9442 :
9443 : case 6:
9444 : if (!(
9445 : #line 19459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9446 : (TARGET_AVX512BW
9447 : && (8
9448 : > GET_MODE_SIZE (QImode))) && ((
9449 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9450 : (TARGET_AVX512BW) &&
9451 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9452 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9453 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9454 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9455 : return -1;
9456 : return 8324; /* *avx512vl_testnmv8hi3_zext_mask */
9457 :
9458 : case 7:
9459 : if (!(
9460 : #line 19459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9461 : (TARGET_AVX512BW
9462 : && (8
9463 : > GET_MODE_SIZE (QImode))) && ((
9464 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9465 : (TARGET_AVX512BW) &&
9466 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9467 : (TARGET_AVX512VL)) &&
9468 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9469 : (TARGET_AVX512VL))))
9470 : return -1;
9471 : return 8330; /* *avx512vl_testnmv8si3_zext_mask */
9472 :
9473 : case 8:
9474 : if (!(
9475 : #line 19459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9476 : (TARGET_AVX512BW
9477 : && (8
9478 : > GET_MODE_SIZE (QImode))) && ((
9479 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9480 : (TARGET_AVX512BW) &&
9481 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9482 : (TARGET_AVX512VL)) &&
9483 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9484 : (TARGET_AVX512VL))))
9485 : return -1;
9486 : return 8333; /* *avx512vl_testnmv4si3_zext_mask */
9487 :
9488 : case 9:
9489 : if (!(
9490 : #line 19459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9491 : (TARGET_AVX512BW
9492 : && (8
9493 : > GET_MODE_SIZE (QImode))) &&
9494 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9495 : (TARGET_AVX512BW)))
9496 : return -1;
9497 : return 8336; /* *avx512f_testnmv8di3_zext_mask */
9498 :
9499 : case 10:
9500 : if (!(
9501 : #line 19459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9502 : (TARGET_AVX512BW
9503 : && (8
9504 : > GET_MODE_SIZE (QImode))) && ((
9505 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9506 : (TARGET_AVX512BW) &&
9507 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9508 : (TARGET_AVX512VL)) &&
9509 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9510 : (TARGET_AVX512VL))))
9511 : return -1;
9512 : return 8339; /* *avx512vl_testnmv4di3_zext_mask */
9513 :
9514 : case 11:
9515 : if (!(
9516 : #line 19459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9517 : (TARGET_AVX512BW
9518 : && (8
9519 : > GET_MODE_SIZE (QImode))) && ((
9520 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9521 : (TARGET_AVX512BW) &&
9522 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9523 : (TARGET_AVX512VL)) &&
9524 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9525 : (TARGET_AVX512VL))))
9526 : return -1;
9527 : return 8342; /* *avx512vl_testnmv2di3_zext_mask */
9528 :
9529 : default:
9530 : return -1;
9531 : }
9532 :
9533 : case E_SImode:
9534 : switch (pattern1096 (x2,
9535 : E_SImode))
9536 : {
9537 : case 0:
9538 : if (!(
9539 : #line 19459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9540 : (TARGET_AVX512BW
9541 : && (4
9542 : > GET_MODE_SIZE (DImode))) &&
9543 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9544 : (TARGET_AVX512BW)))
9545 : return -1;
9546 : return 8310; /* *avx512bw_testnmv64qi3_zext_mask */
9547 :
9548 : case 1:
9549 : if (!(
9550 : #line 19459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9551 : (TARGET_AVX512BW
9552 : && (4
9553 : > GET_MODE_SIZE (SImode))) && ((
9554 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9555 : (TARGET_AVX512BW) &&
9556 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9557 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9558 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9559 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9560 : return -1;
9561 : return 8313; /* *avx512vl_testnmv32qi3_zext_mask */
9562 :
9563 : case 2:
9564 : if (!(
9565 : #line 19459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9566 : (TARGET_AVX512BW
9567 : && (4
9568 : > GET_MODE_SIZE (SImode))) &&
9569 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9570 : (TARGET_AVX512BW)))
9571 : return -1;
9572 : return 8319; /* *avx512bw_testnmv32hi3_zext_mask */
9573 :
9574 : case 3:
9575 : if (!(
9576 : #line 19459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9577 : (TARGET_AVX512BW
9578 : && (4
9579 : > GET_MODE_SIZE (HImode))) && ((
9580 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9581 : (TARGET_AVX512BW) &&
9582 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9583 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9584 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9585 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9586 : return -1;
9587 : return 8316; /* *avx512vl_testnmv16qi3_zext_mask */
9588 :
9589 : case 4:
9590 : if (!(
9591 : #line 19459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9592 : (TARGET_AVX512BW
9593 : && (4
9594 : > GET_MODE_SIZE (HImode))) && ((
9595 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9596 : (TARGET_AVX512BW) &&
9597 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9598 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9599 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9600 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9601 : return -1;
9602 : return 8322; /* *avx512vl_testnmv16hi3_zext_mask */
9603 :
9604 : case 5:
9605 : if (!(
9606 : #line 19459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9607 : (TARGET_AVX512BW
9608 : && (4
9609 : > GET_MODE_SIZE (HImode))) &&
9610 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9611 : (TARGET_AVX512BW)))
9612 : return -1;
9613 : return 8328; /* *avx512f_testnmv16si3_zext_mask */
9614 :
9615 : case 6:
9616 : if (!(
9617 : #line 19459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9618 : (TARGET_AVX512BW
9619 : && (4
9620 : > GET_MODE_SIZE (QImode))) && ((
9621 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9622 : (TARGET_AVX512BW) &&
9623 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9624 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9625 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9626 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9627 : return -1;
9628 : return 8325; /* *avx512vl_testnmv8hi3_zext_mask */
9629 :
9630 : case 7:
9631 : if (!(
9632 : #line 19459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9633 : (TARGET_AVX512BW
9634 : && (4
9635 : > GET_MODE_SIZE (QImode))) && ((
9636 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9637 : (TARGET_AVX512BW) &&
9638 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9639 : (TARGET_AVX512VL)) &&
9640 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9641 : (TARGET_AVX512VL))))
9642 : return -1;
9643 : return 8331; /* *avx512vl_testnmv8si3_zext_mask */
9644 :
9645 : case 8:
9646 : if (!(
9647 : #line 19459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9648 : (TARGET_AVX512BW
9649 : && (4
9650 : > GET_MODE_SIZE (QImode))) && ((
9651 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9652 : (TARGET_AVX512BW) &&
9653 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9654 : (TARGET_AVX512VL)) &&
9655 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9656 : (TARGET_AVX512VL))))
9657 : return -1;
9658 : return 8334; /* *avx512vl_testnmv4si3_zext_mask */
9659 :
9660 : case 9:
9661 : if (!(
9662 : #line 19459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9663 : (TARGET_AVX512BW
9664 : && (4
9665 : > GET_MODE_SIZE (QImode))) &&
9666 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9667 : (TARGET_AVX512BW)))
9668 : return -1;
9669 : return 8337; /* *avx512f_testnmv8di3_zext_mask */
9670 :
9671 : case 10:
9672 : if (!(
9673 : #line 19459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9674 : (TARGET_AVX512BW
9675 : && (4
9676 : > GET_MODE_SIZE (QImode))) && ((
9677 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9678 : (TARGET_AVX512BW) &&
9679 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9680 : (TARGET_AVX512VL)) &&
9681 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9682 : (TARGET_AVX512VL))))
9683 : return -1;
9684 : return 8340; /* *avx512vl_testnmv4di3_zext_mask */
9685 :
9686 : case 11:
9687 : if (!(
9688 : #line 19459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9689 : (TARGET_AVX512BW
9690 : && (4
9691 : > GET_MODE_SIZE (QImode))) && ((
9692 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9693 : (TARGET_AVX512BW) &&
9694 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9695 : (TARGET_AVX512VL)) &&
9696 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9697 : (TARGET_AVX512VL))))
9698 : return -1;
9699 : return 8343; /* *avx512vl_testnmv2di3_zext_mask */
9700 :
9701 : default:
9702 : return -1;
9703 : }
9704 :
9705 : default:
9706 : return -1;
9707 : }
9708 :
9709 : default:
9710 : return -1;
9711 : }
9712 :
9713 : default:
9714 : return -1;
9715 : }
9716 : }
9717 :
9718 : int
9719 : recog_98 (rtx x1 ATTRIBUTE_UNUSED,
9720 : rtx_insn *insn ATTRIBUTE_UNUSED,
9721 : int *pnum_clobbers ATTRIBUTE_UNUSED)
9722 : {
9723 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
9724 : rtx x2, x3, x4;
9725 : int res ATTRIBUTE_UNUSED;
9726 : if (pnum_clobbers == NULL)
9727 : return -1;
9728 : x2 = XEXP (x1, 0);
9729 : operands[0] = x2;
9730 : x3 = XEXP (x1, 1);
9731 : x4 = XEXP (x3, 0);
9732 : operands[1] = x4;
9733 : switch (GET_MODE (operands[0]))
9734 : {
9735 : case E_DImode:
9736 : if (!register_operand (operands[0], E_DImode)
9737 : || GET_MODE (x3) != E_DImode
9738 : || !general_operand (operands[1], E_DImode))
9739 : return -1;
9740 : if ((
9741 : #line 14945 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9742 : (TARGET_CMOVE
9743 : && ix86_pre_reload_split ()) &&
9744 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9745 : (!TARGET_64BIT)))
9746 : {
9747 : *pnum_clobbers = 1;
9748 : return 1027; /* *absdi2_doubleword */
9749 : }
9750 : if (!(
9751 : #line 15032 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9752 : (TARGET_CMOVE
9753 : && (DImode != QImode || !TARGET_PARTIAL_REG_STALL)
9754 : && ix86_pre_reload_split ()) &&
9755 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9756 : (TARGET_64BIT)))
9757 : return -1;
9758 : *pnum_clobbers = 1;
9759 : return 1034; /* *absdi2_1 */
9760 :
9761 : case E_SImode:
9762 : if (!register_operand (operands[0], E_SImode)
9763 : || GET_MODE (x3) != E_SImode
9764 : || !general_operand (operands[1], E_SImode)
9765 : || !
9766 : #line 15032 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9767 : (TARGET_CMOVE
9768 : && (SImode != QImode || !TARGET_PARTIAL_REG_STALL)
9769 : && ix86_pre_reload_split ()))
9770 : return -1;
9771 : *pnum_clobbers = 1;
9772 : return 1033; /* *abssi2_1 */
9773 :
9774 : default:
9775 : return -1;
9776 : }
9777 : }
9778 :
9779 : int
9780 : recog_102 (rtx x1 ATTRIBUTE_UNUSED,
9781 : rtx_insn *insn ATTRIBUTE_UNUSED,
9782 : int *pnum_clobbers ATTRIBUTE_UNUSED)
9783 : {
9784 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
9785 : rtx x2, x3, x4, x5, x6;
9786 : int res ATTRIBUTE_UNUSED;
9787 : x2 = XEXP (x1, 1);
9788 : x3 = XEXP (x2, 0);
9789 : operands[1] = x3;
9790 : x4 = XEXP (x2, 1);
9791 : switch (GET_CODE (x4))
9792 : {
9793 : case CONST_INT:
9794 : case CONST_WIDE_INT:
9795 : case CONST_POLY_INT:
9796 : case CONST_FIXED:
9797 : case CONST_DOUBLE:
9798 : case CONST_VECTOR:
9799 : case CONST:
9800 : case REG:
9801 : case SUBREG:
9802 : case LABEL_REF:
9803 : case SYMBOL_REF:
9804 : case HIGH:
9805 : if (pnum_clobbers != NULL
9806 : && pattern292 (x1,
9807 : E_DImode) == 0
9808 : && (
9809 : #line 16918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9810 : (((INTVAL (operands[3]) & (4 * BITS_PER_UNIT)) == 0
9811 : || ((INTVAL (operands[3]) & (2 * 4 * BITS_PER_UNIT - 1))
9812 : == (2 * 4 * BITS_PER_UNIT - 1)))
9813 : && ix86_pre_reload_split ()) &&
9814 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9815 : (!TARGET_64BIT)))
9816 : {
9817 : *pnum_clobbers = 1;
9818 : return 1154; /* *lshrdi3_doubleword_mask */
9819 : }
9820 : operands[2] = x4;
9821 : res = recog_101 (x1, insn, pnum_clobbers);
9822 : if (res >= 0)
9823 : return res;
9824 : if (pnum_clobbers != NULL)
9825 : {
9826 : switch (GET_CODE (x4))
9827 : {
9828 : case CONST_INT:
9829 : if (XWINT (x4, 0) == 32L)
9830 : {
9831 : x5 = XEXP (x1, 0);
9832 : if (GET_CODE (x5) == SUBREG
9833 : && known_eq (SUBREG_BYTE (x5), 0)
9834 : && GET_MODE (x5) == E_DImode)
9835 : {
9836 : x6 = XEXP (x5, 0);
9837 : operands[0] = x6;
9838 : if (register_operand (operands[0], E_SImode)
9839 : && GET_MODE (x2) == E_DImode
9840 : && nonimmediate_operand (operands[1], E_DImode)
9841 : &&
9842 : #line 17697 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9843 : (TARGET_64BIT))
9844 : {
9845 : *pnum_clobbers = 1;
9846 : return 1211; /* *highpartdisi2 */
9847 : }
9848 : }
9849 : }
9850 : break;
9851 :
9852 : case SUBREG:
9853 : switch (pattern451 (x1,
9854 : E_SImode))
9855 : {
9856 : case 0:
9857 : if (
9858 : #line 18174 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9859 : (ix86_binary_operator_ok (LSHIFTRT, SImode, operands)
9860 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
9861 : == 4 * BITS_PER_UNIT - 1
9862 : && ix86_pre_reload_split ()))
9863 : {
9864 : *pnum_clobbers = 1;
9865 : return 1277; /* *lshrsi3_mask */
9866 : }
9867 : break;
9868 :
9869 : case 1:
9870 : if (
9871 : #line 18222 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9872 : (ix86_binary_operator_ok (LSHIFTRT, SImode, operands)
9873 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
9874 : && ix86_pre_reload_split ()))
9875 : {
9876 : *pnum_clobbers = 1;
9877 : return 1289; /* *lshrsi3_add */
9878 : }
9879 : break;
9880 :
9881 : case 2:
9882 : if (
9883 : #line 18268 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9884 : (ix86_binary_operator_ok (LSHIFTRT, SImode, operands)
9885 : && ((INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
9886 : || (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
9887 : == 4 * BITS_PER_UNIT - 1)
9888 : && ix86_pre_reload_split ()))
9889 : {
9890 : *pnum_clobbers = 1;
9891 : return 1301; /* *lshrsi3_sub */
9892 : }
9893 : break;
9894 :
9895 : default:
9896 : break;
9897 : }
9898 : break;
9899 :
9900 : default:
9901 : break;
9902 : }
9903 : }
9904 : operands[2] = x4;
9905 : if (nonmemory_operand (operands[2], E_QImode))
9906 : {
9907 : x5 = XEXP (x1, 0);
9908 : operands[0] = x5;
9909 : if (nonimmediate_operand (operands[0], E_DImode)
9910 : && GET_MODE (x2) == E_DImode
9911 : && nonimmediate_operand (operands[1], E_DImode))
9912 : {
9913 : if ((
9914 : #line 17721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9915 : (ix86_binary_operator_ok (LSHIFTRT, DImode, operands, TARGET_APX_NDD)
9916 : && TARGET_APX_NF) &&
9917 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9918 : (TARGET_64BIT)))
9919 : return 1214; /* *lshrdi3_1_nf */
9920 : if (pnum_clobbers != NULL
9921 : && (
9922 : #line 17721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9923 : (ix86_binary_operator_ok (LSHIFTRT, DImode, operands, TARGET_APX_NDD)
9924 : && true) &&
9925 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9926 : (TARGET_64BIT)))
9927 : {
9928 : *pnum_clobbers = 1;
9929 : return 1215; /* *lshrdi3_1 */
9930 : }
9931 : }
9932 : }
9933 : if (pnum_clobbers == NULL
9934 : || GET_CODE (x4) != SUBREG)
9935 : return -1;
9936 : switch (pattern451 (x1,
9937 : E_DImode))
9938 : {
9939 : case 0:
9940 : if (!(
9941 : #line 18174 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9942 : (ix86_binary_operator_ok (LSHIFTRT, DImode, operands)
9943 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
9944 : == 8 * BITS_PER_UNIT - 1
9945 : && ix86_pre_reload_split ()) &&
9946 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9947 : (TARGET_64BIT)))
9948 : return -1;
9949 : *pnum_clobbers = 1;
9950 : return 1280; /* *lshrdi3_mask */
9951 :
9952 : case 1:
9953 : if (!(
9954 : #line 18222 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9955 : (ix86_binary_operator_ok (LSHIFTRT, DImode, operands)
9956 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
9957 : && ix86_pre_reload_split ()) &&
9958 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9959 : (TARGET_64BIT)))
9960 : return -1;
9961 : *pnum_clobbers = 1;
9962 : return 1292; /* *lshrdi3_add */
9963 :
9964 : case 2:
9965 : if (!(
9966 : #line 18268 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9967 : (ix86_binary_operator_ok (LSHIFTRT, DImode, operands)
9968 : && ((INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
9969 : || (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
9970 : == 8 * BITS_PER_UNIT - 1)
9971 : && ix86_pre_reload_split ()) &&
9972 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9973 : (TARGET_64BIT)))
9974 : return -1;
9975 : *pnum_clobbers = 1;
9976 : return 1304; /* *lshrdi3_sub */
9977 :
9978 : default:
9979 : return -1;
9980 : }
9981 :
9982 : case AND:
9983 : if (pnum_clobbers == NULL
9984 : || GET_MODE (x4) != E_QImode)
9985 : return -1;
9986 : x5 = XEXP (x1, 0);
9987 : operands[0] = x5;
9988 : switch (pattern122 (x2))
9989 : {
9990 : case 0:
9991 : if (register_operand (operands[0], E_DImode)
9992 : && register_operand (operands[1], E_DImode)
9993 : && (
9994 : #line 16979 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9995 : (((INTVAL (operands[3]) & (4 * BITS_PER_UNIT)) == 0
9996 : || ((INTVAL (operands[3]) & (2 * 4 * BITS_PER_UNIT - 1))
9997 : == (2 * 4 * BITS_PER_UNIT - 1)))
9998 : && ix86_pre_reload_split ()) &&
9999 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10000 : (!TARGET_64BIT)))
10001 : {
10002 : *pnum_clobbers = 1;
10003 : return 1158; /* *lshrdi3_doubleword_mask_1 */
10004 : }
10005 : if (!nonimmediate_operand (operands[0], E_DImode)
10006 : || !nonimmediate_operand (operands[1], E_DImode)
10007 : || !(
10008 : #line 18199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10009 : (ix86_binary_operator_ok (LSHIFTRT, DImode, operands)
10010 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
10011 : == 8 * BITS_PER_UNIT - 1
10012 : && ix86_pre_reload_split ()) &&
10013 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10014 : (TARGET_64BIT)))
10015 : return -1;
10016 : *pnum_clobbers = 1;
10017 : return 1286; /* *lshrdi3_mask_1 */
10018 :
10019 : case 1:
10020 : if (!
10021 : #line 18199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10022 : (ix86_binary_operator_ok (LSHIFTRT, SImode, operands)
10023 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
10024 : == 4 * BITS_PER_UNIT - 1
10025 : && ix86_pre_reload_split ()))
10026 : return -1;
10027 : *pnum_clobbers = 1;
10028 : return 1283; /* *lshrsi3_mask_1 */
10029 :
10030 : default:
10031 : return -1;
10032 : }
10033 :
10034 : case PLUS:
10035 : if (pnum_clobbers == NULL
10036 : || GET_MODE (x4) != E_QImode)
10037 : return -1;
10038 : x5 = XEXP (x1, 0);
10039 : operands[0] = x5;
10040 : switch (pattern16 (x2))
10041 : {
10042 : case 0:
10043 : if (!
10044 : #line 18246 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10045 : (ix86_binary_operator_ok (LSHIFTRT, SImode, operands)
10046 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
10047 : && ix86_pre_reload_split ()))
10048 : return -1;
10049 : *pnum_clobbers = 1;
10050 : return 1295; /* *lshrsi3_add_1 */
10051 :
10052 : case 1:
10053 : if (!(
10054 : #line 18246 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10055 : (ix86_binary_operator_ok (LSHIFTRT, DImode, operands)
10056 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
10057 : && ix86_pre_reload_split ()) &&
10058 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10059 : (TARGET_64BIT)))
10060 : return -1;
10061 : *pnum_clobbers = 1;
10062 : return 1298; /* *lshrdi3_add_1 */
10063 :
10064 : default:
10065 : return -1;
10066 : }
10067 :
10068 : case MINUS:
10069 : if (pnum_clobbers == NULL
10070 : || GET_MODE (x4) != E_QImode)
10071 : return -1;
10072 : x5 = XEXP (x1, 0);
10073 : operands[0] = x5;
10074 : switch (pattern123 (x2))
10075 : {
10076 : case 0:
10077 : if (!
10078 : #line 18301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10079 : (ix86_binary_operator_ok (LSHIFTRT, SImode, operands)
10080 : && ((INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
10081 : || (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
10082 : == 4 * BITS_PER_UNIT - 1)
10083 : && ix86_pre_reload_split ()))
10084 : return -1;
10085 : *pnum_clobbers = 1;
10086 : return 1307; /* *lshrsi3_sub_1 */
10087 :
10088 : case 1:
10089 : if (!(
10090 : #line 18301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10091 : (ix86_binary_operator_ok (LSHIFTRT, DImode, operands)
10092 : && ((INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
10093 : || (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
10094 : == 8 * BITS_PER_UNIT - 1)
10095 : && ix86_pre_reload_split ()) &&
10096 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10097 : (TARGET_64BIT)))
10098 : return -1;
10099 : *pnum_clobbers = 1;
10100 : return 1310; /* *lshrdi3_sub_1 */
10101 :
10102 : default:
10103 : return -1;
10104 : }
10105 :
10106 : default:
10107 : return -1;
10108 : }
10109 : }
10110 :
10111 : int
10112 : recog_115 (rtx x1 ATTRIBUTE_UNUSED,
10113 : rtx_insn *insn ATTRIBUTE_UNUSED,
10114 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10115 : {
10116 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10117 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
10118 : int res ATTRIBUTE_UNUSED;
10119 : x2 = XEXP (x1, 1);
10120 : x3 = XEXP (x2, 0);
10121 : if (GET_CODE (x3) != MEM
10122 : || GET_MODE (x3) != E_QImode)
10123 : return -1;
10124 : x4 = XEXP (x1, 0);
10125 : operands[0] = x4;
10126 : x5 = XEXP (x3, 0);
10127 : operands[1] = x5;
10128 : x6 = XEXP (x2, 1);
10129 : operands[2] = x6;
10130 : if (call_insn_operand (operands[1], E_SImode)
10131 : && (
10132 : #line 20697 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10133 : (!SIBLING_CALL_P (insn)) &&
10134 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10135 : (word_mode == SImode)))
10136 : return 1507; /* *call_value */
10137 : if (call_insn_operand (operands[1], E_DImode)
10138 : && (
10139 : #line 20697 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10140 : (!SIBLING_CALL_P (insn)) &&
10141 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10142 : (word_mode == DImode)))
10143 : return 1508; /* *call_value */
10144 : switch (GET_CODE (x5))
10145 : {
10146 : case ZERO_EXTEND:
10147 : if (GET_MODE (x5) == E_DImode)
10148 : {
10149 : x7 = XEXP (x5, 0);
10150 : operands[1] = x7;
10151 : if (GOT_memory_operand (operands[1], E_SImode))
10152 : {
10153 : operands[2] = x6;
10154 : if (
10155 : #line 20708 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10156 : (TARGET_X32 && !TARGET_INDIRECT_BRANCH_REGISTER))
10157 : return 1509; /* *call_value_got_x32 */
10158 : }
10159 : }
10160 : break;
10161 :
10162 : case MEM:
10163 : if (GET_MODE (x5) == E_SImode)
10164 : {
10165 : x7 = XEXP (x5, 0);
10166 : if (GET_CODE (x7) == PLUS
10167 : && GET_MODE (x7) == E_SImode)
10168 : {
10169 : x8 = XEXP (x7, 0);
10170 : operands[1] = x8;
10171 : if (register_no_elim_operand (operands[1], E_SImode))
10172 : {
10173 : x9 = XEXP (x7, 1);
10174 : operands[2] = x9;
10175 : if (GOT32_symbol_operand (operands[2], E_SImode))
10176 : {
10177 : operands[3] = x6;
10178 : if (
10179 : #line 20724 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10180 : (!TARGET_MACHO
10181 : && !TARGET_64BIT && !TARGET_INDIRECT_BRANCH_REGISTER
10182 : && SIBLING_CALL_P (insn)))
10183 : return 1510; /* *sibcall_value_GOT_32 */
10184 : }
10185 : }
10186 : }
10187 : }
10188 : break;
10189 :
10190 : default:
10191 : break;
10192 : }
10193 : operands[1] = x5;
10194 : operands[2] = x6;
10195 : if (sibcall_insn_operand (operands[1], E_SImode)
10196 : && (
10197 : #line 20738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10198 : (SIBLING_CALL_P (insn)) &&
10199 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10200 : (word_mode == SImode)))
10201 : return 1511; /* *sibcall_value */
10202 : if (!sibcall_insn_operand (operands[1], E_DImode)
10203 : || !(
10204 : #line 20738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10205 : (SIBLING_CALL_P (insn)) &&
10206 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10207 : (word_mode == DImode)))
10208 : return -1;
10209 : return 1512; /* *sibcall_value */
10210 : }
10211 :
10212 : int
10213 : recog_120 (rtx x1 ATTRIBUTE_UNUSED,
10214 : rtx_insn *insn ATTRIBUTE_UNUSED,
10215 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10216 : {
10217 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10218 : rtx x2, x3, x4, x5, x6, x7, x8;
10219 : int res ATTRIBUTE_UNUSED;
10220 : if (pnum_clobbers == NULL)
10221 : return -1;
10222 : x2 = XEXP (x1, 1);
10223 : x3 = XEXP (x2, 0);
10224 : if (!ix86_carry_flag_operator (x3, E_VOIDmode))
10225 : return -1;
10226 : operands[1] = x3;
10227 : x4 = XEXP (x3, 0);
10228 : if (GET_CODE (x4) != REG
10229 : || REGNO (x4) != 17)
10230 : return -1;
10231 : x5 = XEXP (x3, 1);
10232 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
10233 : return -1;
10234 : x6 = XEXP (x2, 1);
10235 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
10236 : return -1;
10237 : x7 = XEXP (x2, 2);
10238 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
10239 : return -1;
10240 : x8 = XEXP (x1, 0);
10241 : operands[0] = x8;
10242 : switch (pattern24 (x2))
10243 : {
10244 : case 0:
10245 : *pnum_clobbers = 1;
10246 : return 1831; /* *x86_movsicc_0_m1_se */
10247 :
10248 : case 1:
10249 : if (!
10250 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10251 : (TARGET_64BIT))
10252 : return -1;
10253 : *pnum_clobbers = 1;
10254 : return 1832; /* *x86_movdicc_0_m1_se */
10255 :
10256 : default:
10257 : return -1;
10258 : }
10259 : }
10260 :
10261 : int
10262 : recog_122 (rtx x1 ATTRIBUTE_UNUSED,
10263 : rtx_insn *insn ATTRIBUTE_UNUSED,
10264 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10265 : {
10266 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10267 : rtx x2, x3, x4;
10268 : int res ATTRIBUTE_UNUSED;
10269 : x2 = XEXP (x1, 1);
10270 : x3 = XEXP (x2, 1);
10271 : x4 = XVECEXP (x3, 0, 0);
10272 : switch (XWINT (x4, 0))
10273 : {
10274 : case 0L:
10275 : if (nonimmediate_operand (operands[0], E_SImode)
10276 : && GET_MODE (x2) == E_SImode)
10277 : {
10278 : switch (GET_MODE (operands[1]))
10279 : {
10280 : case E_V2SImode:
10281 : if (nonimmediate_operand (operands[1], E_V2SImode)
10282 : &&
10283 : #line 5757 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
10284 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
10285 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
10286 : return 2405; /* *vec_extractv2si_0 */
10287 : break;
10288 :
10289 : case E_V4SImode:
10290 : if (nonimmediate_operand (operands[1], E_V4SImode)
10291 : &&
10292 : #line 21497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10293 : (TARGET_SSE && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
10294 : return 8511; /* *vec_extractv4si_0 */
10295 : break;
10296 :
10297 : default:
10298 : break;
10299 : }
10300 : }
10301 : break;
10302 :
10303 : case 1L:
10304 : switch (GET_MODE (operands[0]))
10305 : {
10306 : case E_SImode:
10307 : if (nonimmediate_operand (operands[0], E_SImode)
10308 : && GET_MODE (x2) == E_SImode
10309 : && nonimmediate_operand (operands[1], E_V2SImode)
10310 : &&
10311 : #line 5814 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
10312 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
10313 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
10314 : return 2408; /* *vec_extractv2si_1 */
10315 : break;
10316 :
10317 : case E_DImode:
10318 : if (nonimmediate_operand (operands[0], E_DImode)
10319 : && GET_MODE (x2) == E_DImode
10320 : && nonimmediate_operand (operands[1], E_V2DImode)
10321 : &&
10322 : #line 21666 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10323 : (TARGET_SSE && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
10324 : return 8520; /* *vec_extractv2di_1 */
10325 : break;
10326 :
10327 : default:
10328 : break;
10329 : }
10330 : break;
10331 :
10332 : default:
10333 : break;
10334 : }
10335 : operands[2] = x4;
10336 : switch (GET_MODE (operands[0]))
10337 : {
10338 : case E_SImode:
10339 : if (GET_MODE (x2) != E_SImode)
10340 : return -1;
10341 : if (register_operand (operands[0], E_SImode))
10342 : {
10343 : switch (GET_MODE (operands[1]))
10344 : {
10345 : case E_V16SImode:
10346 : if (register_operand (operands[1], E_V16SImode)
10347 : && const_0_to_15_operand (operands[2], E_VOIDmode)
10348 : &&
10349 : #line 14397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10350 : (TARGET_AVX512F
10351 : && INTVAL(operands[2]) * GET_MODE_SIZE (SImode) >= 16))
10352 : return 7115; /* *vec_extractv16sisi_valign */
10353 : break;
10354 :
10355 : case E_V8SImode:
10356 : if (register_operand (operands[1], E_V8SImode)
10357 : && const_0_to_7_operand (operands[2], E_VOIDmode)
10358 : && (
10359 : #line 14397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10360 : (TARGET_AVX512F
10361 : && INTVAL(operands[2]) * GET_MODE_SIZE (SImode) >= 16) &&
10362 : #line 305 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10363 : (TARGET_AVX512VL)))
10364 : return 7116; /* *vec_extractv8sisi_valign */
10365 : break;
10366 :
10367 : default:
10368 : break;
10369 : }
10370 : }
10371 : if (nonimmediate_operand (operands[0], E_SImode)
10372 : && register_operand (operands[1], E_V4SImode)
10373 : && const_0_to_3_operand (operands[2], E_SImode)
10374 : &&
10375 : #line 21587 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10376 : (TARGET_SSE4_1))
10377 : return 8516; /* *vec_extractv4si */
10378 : if (!register_operand (operands[0], E_SImode)
10379 : || !memory_operand (operands[1], E_V4SImode)
10380 : || !const_0_to_3_operand (operands[2], E_VOIDmode)
10381 : || !
10382 : #line 21644 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10383 : (TARGET_SSE))
10384 : return -1;
10385 : return 8518; /* *vec_extractv4si_mem */
10386 :
10387 : case E_DImode:
10388 : if (!register_operand (operands[0], E_DImode)
10389 : || GET_MODE (x2) != E_DImode)
10390 : return -1;
10391 : switch (GET_MODE (operands[1]))
10392 : {
10393 : case E_V8DImode:
10394 : if (!register_operand (operands[1], E_V8DImode)
10395 : || !const_0_to_7_operand (operands[2], E_VOIDmode)
10396 : || !
10397 : #line 14397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10398 : (TARGET_AVX512F
10399 : && INTVAL(operands[2]) * GET_MODE_SIZE (DImode) >= 16))
10400 : return -1;
10401 : return 7117; /* *vec_extractv8didi_valign */
10402 :
10403 : case E_V4DImode:
10404 : if (!register_operand (operands[1], E_V4DImode)
10405 : || !const_0_to_3_operand (operands[2], E_VOIDmode)
10406 : || !(
10407 : #line 14397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10408 : (TARGET_AVX512F
10409 : && INTVAL(operands[2]) * GET_MODE_SIZE (DImode) >= 16) &&
10410 : #line 306 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10411 : (TARGET_AVX512VL)))
10412 : return -1;
10413 : return 7118; /* *vec_extractv4didi_valign */
10414 :
10415 : default:
10416 : return -1;
10417 : }
10418 :
10419 : default:
10420 : return -1;
10421 : }
10422 : }
10423 :
10424 : int
10425 : recog_127 (rtx x1 ATTRIBUTE_UNUSED,
10426 : rtx_insn *insn ATTRIBUTE_UNUSED,
10427 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10428 : {
10429 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10430 : rtx x2, x3, x4, x5;
10431 : int res ATTRIBUTE_UNUSED;
10432 : x2 = XEXP (x1, 1);
10433 : x3 = XEXP (x2, 0);
10434 : x4 = XVECEXP (x3, 0, 0);
10435 : operands[1] = x4;
10436 : x5 = XEXP (x2, 2);
10437 : operands[3] = x5;
10438 : switch (GET_MODE (operands[0]))
10439 : {
10440 : case E_V8HImode:
10441 : if (pattern644 (x2,
10442 : E_V8HImode,
10443 : E_QImode,
10444 : E_V8HFmode) != 0
10445 : || !(
10446 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10447 : (TARGET_AVX512F) && (
10448 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10449 : (TARGET_AVX512FP16) &&
10450 : #line 687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10451 : (TARGET_AVX512VL))))
10452 : return -1;
10453 : return 4609; /* unspec_avx512fp16_fixuns_truncv8hi2_mask */
10454 :
10455 : case E_V16HImode:
10456 : if (pattern644 (x2,
10457 : E_V16HImode,
10458 : E_HImode,
10459 : E_V16HFmode) != 0
10460 : || !(
10461 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10462 : (TARGET_AVX512F) && (
10463 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10464 : (TARGET_AVX512FP16) &&
10465 : #line 687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10466 : (TARGET_AVX512VL))))
10467 : return -1;
10468 : return 4617; /* unspec_avx512fp16_fixuns_truncv16hi2_mask */
10469 :
10470 : case E_V32HImode:
10471 : if (pattern644 (x2,
10472 : E_V32HImode,
10473 : E_SImode,
10474 : E_V32HFmode) != 0
10475 : || !(
10476 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10477 : (TARGET_AVX512F) &&
10478 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10479 : (TARGET_AVX512FP16)))
10480 : return -1;
10481 : return 4625; /* unspec_avx512fp16_fixuns_truncv32hi2_mask */
10482 :
10483 : case E_V8SImode:
10484 : if (pattern142 (x2,
10485 : E_V8SImode,
10486 : E_QImode) != 0)
10487 : return -1;
10488 : switch (GET_MODE (operands[1]))
10489 : {
10490 : case E_V8HFmode:
10491 : if (!vector_operand (operands[1], E_V8HFmode)
10492 : || !(
10493 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10494 : (TARGET_AVX512F) && (
10495 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10496 : (TARGET_AVX512FP16) &&
10497 : #line 688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10498 : (TARGET_AVX512VL))))
10499 : return -1;
10500 : return 4633; /* unspec_avx512fp16_fixuns_truncv8si2_mask */
10501 :
10502 : case E_V8DFmode:
10503 : if (!vector_operand (operands[1], E_V8DFmode)
10504 : || !
10505 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10506 : (TARGET_AVX512F))
10507 : return -1;
10508 : return 5064; /* unspec_fixuns_truncv8dfv8si2_mask */
10509 :
10510 : case E_V8SFmode:
10511 : if (!nonimmediate_operand (operands[1], E_V8SFmode)
10512 : || !(
10513 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10514 : (TARGET_AVX512F) && (
10515 : #line 10233 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10516 : (TARGET_AVX512VL) &&
10517 : #line 444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10518 : (TARGET_AVX))))
10519 : return -1;
10520 : return 5168; /* unspec_fixuns_truncv8sfv8si2_mask */
10521 :
10522 : default:
10523 : return -1;
10524 : }
10525 :
10526 : case E_V16SImode:
10527 : switch (pattern997 (x2))
10528 : {
10529 : case 0:
10530 : if (!(
10531 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10532 : (TARGET_AVX512F) &&
10533 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10534 : (TARGET_AVX512FP16)))
10535 : return -1;
10536 : return 4641; /* unspec_avx512fp16_fixuns_truncv16si2_mask */
10537 :
10538 : case 1:
10539 : if (!
10540 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10541 : (TARGET_AVX512F))
10542 : return -1;
10543 : return 4915; /* unspec_fixuns_truncv16sfv16si2_mask */
10544 :
10545 : default:
10546 : return -1;
10547 : }
10548 :
10549 : case E_V8DImode:
10550 : switch (pattern998 (x2))
10551 : {
10552 : case 0:
10553 : if (!(
10554 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10555 : (TARGET_AVX512F) &&
10556 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10557 : (TARGET_AVX512FP16)))
10558 : return -1;
10559 : return 4649; /* unspec_avx512fp16_fixuns_truncv8di2_mask */
10560 :
10561 : case 1:
10562 : if (!(
10563 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10564 : (TARGET_AVX512F) &&
10565 : #line 10019 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10566 : (TARGET_AVX512DQ && 1)))
10567 : return -1;
10568 : return 5093; /* unspec_fixuns_truncv8dfv8di2_mask */
10569 :
10570 : case 2:
10571 : if (!(
10572 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10573 : (TARGET_AVX512F) &&
10574 : #line 10062 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10575 : (TARGET_AVX512DQ && 1)))
10576 : return -1;
10577 : return 5141; /* unspec_fixuns_truncv8sfv8di2_mask */
10578 :
10579 : default:
10580 : return -1;
10581 : }
10582 :
10583 : case E_V4SImode:
10584 : if (pattern142 (x2,
10585 : E_V4SImode,
10586 : E_QImode) != 0)
10587 : return -1;
10588 : switch (GET_MODE (operands[1]))
10589 : {
10590 : case E_V8HFmode:
10591 : if (!register_operand (operands[1], E_V8HFmode)
10592 : || !(
10593 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10594 : (TARGET_AVX512F) &&
10595 : #line 8240 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10596 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
10597 : return -1;
10598 : return 4702; /* unspec_avx512fp16_fixuns_truncv4si2_mask */
10599 :
10600 : case E_V4DFmode:
10601 : if (!nonimmediate_operand (operands[1], E_V4DFmode)
10602 : || !(
10603 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10604 : (TARGET_AVX512F) &&
10605 : #line 9999 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10606 : (TARGET_AVX512VL && TARGET_AVX512F)))
10607 : return -1;
10608 : return 5084; /* unspec_fixuns_truncv4dfv4si2_mask */
10609 :
10610 : case E_V4SFmode:
10611 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
10612 : || !(
10613 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10614 : (TARGET_AVX512F) &&
10615 : #line 10233 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10616 : (TARGET_AVX512VL)))
10617 : return -1;
10618 : return 5170; /* unspec_fixuns_truncv4sfv4si2_mask */
10619 :
10620 : default:
10621 : return -1;
10622 : }
10623 :
10624 : case E_V4DImode:
10625 : switch (pattern999 (x2))
10626 : {
10627 : case 0:
10628 : if (!(
10629 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10630 : (TARGET_AVX512F) &&
10631 : #line 8240 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10632 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
10633 : return -1;
10634 : return 4706; /* unspec_avx512fp16_fixuns_truncv4di2_mask */
10635 :
10636 : case 1:
10637 : if (!(
10638 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10639 : (TARGET_AVX512F) && (
10640 : #line 10019 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10641 : (TARGET_AVX512DQ && 1) &&
10642 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10643 : (TARGET_AVX512VL))))
10644 : return -1;
10645 : return 5098; /* unspec_fixuns_truncv4dfv4di2_mask */
10646 :
10647 : case 2:
10648 : if (!(
10649 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10650 : (TARGET_AVX512F) && (
10651 : #line 10062 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10652 : (TARGET_AVX512DQ && 1) &&
10653 : #line 620 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10654 : (TARGET_AVX512VL))))
10655 : return -1;
10656 : return 5146; /* unspec_fixuns_truncv4sfv4di2_mask */
10657 :
10658 : default:
10659 : return -1;
10660 : }
10661 :
10662 : case E_V2DImode:
10663 : switch (pattern1000 (x2))
10664 : {
10665 : case 0:
10666 : if (!(
10667 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10668 : (TARGET_AVX512F) &&
10669 : #line 8290 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10670 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
10671 : return -1;
10672 : return 4726; /* unspec_avx512fp16_fixuns_truncv2di2_mask */
10673 :
10674 : case 1:
10675 : if (!(
10676 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10677 : (TARGET_AVX512F) && (
10678 : #line 10019 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10679 : (TARGET_AVX512DQ && 1) &&
10680 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10681 : (TARGET_AVX512VL))))
10682 : return -1;
10683 : return 5102; /* unspec_fixuns_truncv2dfv2di2_mask */
10684 :
10685 : case 2:
10686 : if (!(
10687 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10688 : (TARGET_AVX512F) &&
10689 : #line 10083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10690 : (TARGET_AVX512DQ && TARGET_AVX512VL)))
10691 : return -1;
10692 : return 5162; /* unspec_avx512dq_fixuns_truncv2sfv2di2_mask */
10693 :
10694 : default:
10695 : return -1;
10696 : }
10697 :
10698 : default:
10699 : return -1;
10700 : }
10701 : }
10702 :
10703 : int
10704 : recog_133 (rtx x1 ATTRIBUTE_UNUSED,
10705 : rtx_insn *insn ATTRIBUTE_UNUSED,
10706 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10707 : {
10708 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10709 : rtx x2, x3, x4, x5, x6, x7;
10710 : int res ATTRIBUTE_UNUSED;
10711 : x2 = XEXP (x1, 1);
10712 : x3 = XEXP (x2, 2);
10713 : switch (GET_CODE (x3))
10714 : {
10715 : case REG:
10716 : case SUBREG:
10717 : operands[4] = x3;
10718 : x4 = XEXP (x2, 0);
10719 : x5 = XVECEXP (x4, 0, 0);
10720 : operands[1] = x5;
10721 : x6 = XVECEXP (x4, 0, 1);
10722 : operands[2] = x6;
10723 : if (!const_0_to_255_operand (operands[2], E_SImode))
10724 : return -1;
10725 : x7 = XEXP (x2, 1);
10726 : operands[3] = x7;
10727 : switch (GET_MODE (operands[0]))
10728 : {
10729 : case E_V32HFmode:
10730 : if (pattern470 (x2,
10731 : E_V32HFmode,
10732 : E_SImode) != 0
10733 : || !(
10734 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10735 : (TARGET_AVX512F) && (
10736 : #line 14549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10737 : (TARGET_AVX512F) &&
10738 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10739 : (TARGET_AVX512FP16))))
10740 : return -1;
10741 : return 7173; /* avx512bw_rndscalev32hf_mask */
10742 :
10743 : case E_V16HFmode:
10744 : if (pattern470 (x2,
10745 : E_V16HFmode,
10746 : E_HImode) != 0
10747 : || !(
10748 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10749 : (TARGET_AVX512F) && (
10750 : #line 14549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10751 : (TARGET_AVX512F) &&
10752 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10753 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
10754 : return -1;
10755 : return 7177; /* avx512vl_rndscalev16hf_mask */
10756 :
10757 : case E_V8HFmode:
10758 : if (pattern470 (x2,
10759 : E_V8HFmode,
10760 : E_QImode) != 0
10761 : || !(
10762 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10763 : (TARGET_AVX512F) && (
10764 : #line 14549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10765 : (TARGET_AVX512F) &&
10766 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10767 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
10768 : return -1;
10769 : return 7181; /* avx512fp16_rndscalev8hf_mask */
10770 :
10771 : case E_V16SFmode:
10772 : if (pattern470 (x2,
10773 : E_V16SFmode,
10774 : E_HImode) != 0
10775 : || !
10776 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10777 : (TARGET_AVX512F))
10778 : return -1;
10779 : return 7185; /* avx512f_rndscalev16sf_mask */
10780 :
10781 : case E_V8SFmode:
10782 : if (pattern470 (x2,
10783 : E_V8SFmode,
10784 : E_QImode) != 0
10785 : || !(
10786 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10787 : (TARGET_AVX512F) && (
10788 : #line 14549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10789 : (TARGET_AVX512F) &&
10790 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10791 : (TARGET_AVX512VL))))
10792 : return -1;
10793 : return 7189; /* avx512vl_rndscalev8sf_mask */
10794 :
10795 : case E_V4SFmode:
10796 : if (pattern470 (x2,
10797 : E_V4SFmode,
10798 : E_QImode) != 0
10799 : || !(
10800 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10801 : (TARGET_AVX512F) && (
10802 : #line 14549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10803 : (TARGET_AVX512F) &&
10804 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10805 : (TARGET_AVX512VL))))
10806 : return -1;
10807 : return 7193; /* avx512vl_rndscalev4sf_mask */
10808 :
10809 : case E_V8DFmode:
10810 : if (pattern470 (x2,
10811 : E_V8DFmode,
10812 : E_QImode) != 0
10813 : || !
10814 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10815 : (TARGET_AVX512F))
10816 : return -1;
10817 : return 7197; /* avx512f_rndscalev8df_mask */
10818 :
10819 : case E_V4DFmode:
10820 : if (pattern470 (x2,
10821 : E_V4DFmode,
10822 : E_QImode) != 0
10823 : || !(
10824 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10825 : (TARGET_AVX512F) && (
10826 : #line 14549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10827 : (TARGET_AVX512F) &&
10828 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10829 : (TARGET_AVX512VL))))
10830 : return -1;
10831 : return 7201; /* avx512vl_rndscalev4df_mask */
10832 :
10833 : case E_V2DFmode:
10834 : if (pattern470 (x2,
10835 : E_V2DFmode,
10836 : E_QImode) != 0
10837 : || !(
10838 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10839 : (TARGET_AVX512F) && (
10840 : #line 14549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10841 : (TARGET_AVX512F) &&
10842 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10843 : (TARGET_AVX512VL))))
10844 : return -1;
10845 : return 7205; /* avx512vl_rndscalev2df_mask */
10846 :
10847 : default:
10848 : return -1;
10849 : }
10850 :
10851 : case CONST_INT:
10852 : if (XWINT (x3, 0) != 1L)
10853 : return -1;
10854 : x4 = XEXP (x2, 0);
10855 : x5 = XVECEXP (x4, 0, 0);
10856 : operands[2] = x5;
10857 : x6 = XVECEXP (x4, 0, 1);
10858 : operands[3] = x6;
10859 : x7 = XEXP (x2, 1);
10860 : operands[1] = x7;
10861 : switch (GET_MODE (operands[0]))
10862 : {
10863 : case E_V8HFmode:
10864 : if (pattern1222 (x2,
10865 : E_V8HFmode) != 0)
10866 : return -1;
10867 : if (const_0_to_255_operand (operands[3], E_SImode)
10868 : && (
10869 : #line 14564 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10870 : (TARGET_AVX512F) &&
10871 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10872 : (TARGET_AVX512FP16)))
10873 : return 7207; /* avx512f_rndscalev8hf */
10874 : if (!const_0_to_15_operand (operands[3], E_SImode)
10875 : || !(
10876 : #line 26189 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10877 : (TARGET_SSE4_1) &&
10878 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10879 : (TARGET_AVX512FP16)))
10880 : return -1;
10881 : return 9025; /* sse4_1_roundsh */
10882 :
10883 : case E_V4SFmode:
10884 : if (pattern1222 (x2,
10885 : E_V4SFmode) != 0)
10886 : return -1;
10887 : if (const_0_to_255_operand (operands[3], E_SImode)
10888 : &&
10889 : #line 14564 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10890 : (TARGET_AVX512F))
10891 : return 7211; /* avx512f_rndscalev4sf */
10892 : if (!const_0_to_15_operand (operands[3], E_SImode)
10893 : || !
10894 : #line 26189 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10895 : (TARGET_SSE4_1))
10896 : return -1;
10897 : return 9026; /* sse4_1_roundss */
10898 :
10899 : case E_V2DFmode:
10900 : if (pattern1222 (x2,
10901 : E_V2DFmode) != 0)
10902 : return -1;
10903 : if (const_0_to_255_operand (operands[3], E_SImode)
10904 : && (
10905 : #line 14564 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10906 : (TARGET_AVX512F) &&
10907 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10908 : (TARGET_SSE2)))
10909 : return 7215; /* avx512f_rndscalev2df */
10910 : if (!const_0_to_15_operand (operands[3], E_SImode)
10911 : || !(
10912 : #line 26189 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10913 : (TARGET_SSE4_1) &&
10914 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10915 : (TARGET_SSE2)))
10916 : return -1;
10917 : return 9027; /* sse4_1_roundsd */
10918 :
10919 : default:
10920 : return -1;
10921 : }
10922 :
10923 : default:
10924 : return -1;
10925 : }
10926 : }
10927 :
10928 : int
10929 : recog_142 (rtx x1 ATTRIBUTE_UNUSED,
10930 : rtx_insn *insn ATTRIBUTE_UNUSED,
10931 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10932 : {
10933 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10934 : rtx x2, x3, x4, x5, x6, x7, x8;
10935 : int res ATTRIBUTE_UNUSED;
10936 : x2 = XEXP (x1, 1);
10937 : x3 = XEXP (x2, 0);
10938 : x4 = XVECEXP (x3, 0, 0);
10939 : operands[1] = x4;
10940 : x5 = XVECEXP (x3, 0, 1);
10941 : operands[2] = x5;
10942 : x6 = XVECEXP (x3, 0, 2);
10943 : operands[3] = x6;
10944 : x7 = XEXP (x2, 2);
10945 : if (!register_operand (x7, E_QImode))
10946 : return -1;
10947 : x8 = XEXP (x2, 1);
10948 : switch (GET_CODE (x8))
10949 : {
10950 : case CONST_INT:
10951 : case CONST_DOUBLE:
10952 : case CONST_VECTOR:
10953 : operands[4] = x8;
10954 : operands[5] = x7;
10955 : switch (GET_MODE (operands[0]))
10956 : {
10957 : case E_V16SFmode:
10958 : if (pattern1379 (x2,
10959 : E_V16SFmode,
10960 : E_V32BFmode) != 0
10961 : || !
10962 : #line 31906 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10963 : (TARGET_AVX512BF16))
10964 : return -1;
10965 : return 10425; /* avx512f_dpbf16ps_v16sf_maskz_1 */
10966 :
10967 : case E_V8SFmode:
10968 : if (pattern1379 (x2,
10969 : E_V8SFmode,
10970 : E_V16BFmode) != 0
10971 : || !(
10972 : #line 31906 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10973 : (TARGET_AVX512BF16) &&
10974 : #line 534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10975 : (TARGET_AVX512VL)))
10976 : return -1;
10977 : return 10427; /* avx512f_dpbf16ps_v8sf_maskz_1 */
10978 :
10979 : case E_V4SFmode:
10980 : if (pattern1379 (x2,
10981 : E_V4SFmode,
10982 : E_V8BFmode) != 0
10983 : || !(
10984 : #line 31906 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10985 : (TARGET_AVX512BF16) &&
10986 : #line 534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10987 : (TARGET_AVX512VL)))
10988 : return -1;
10989 : return 10429; /* avx512f_dpbf16ps_v4sf_maskz_1 */
10990 :
10991 : default:
10992 : return -1;
10993 : }
10994 :
10995 : case REG:
10996 : case SUBREG:
10997 : if (!rtx_equal_p (x8, operands[1]))
10998 : return -1;
10999 : operands[4] = x7;
11000 : switch (GET_MODE (operands[0]))
11001 : {
11002 : case E_V16SFmode:
11003 : if (pattern1380 (x2,
11004 : E_V32BFmode,
11005 : E_V16SFmode) != 0
11006 : || !
11007 : #line 31919 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11008 : (TARGET_AVX512BF16))
11009 : return -1;
11010 : return 10430; /* avx512f_dpbf16ps_v16sf_mask */
11011 :
11012 : case E_V8SFmode:
11013 : if (pattern1380 (x2,
11014 : E_V16BFmode,
11015 : E_V8SFmode) != 0
11016 : || !(
11017 : #line 31919 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11018 : (TARGET_AVX512BF16) &&
11019 : #line 534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11020 : (TARGET_AVX512VL)))
11021 : return -1;
11022 : return 10431; /* avx512f_dpbf16ps_v8sf_mask */
11023 :
11024 : case E_V4SFmode:
11025 : if (pattern1380 (x2,
11026 : E_V8BFmode,
11027 : E_V4SFmode) != 0
11028 : || !(
11029 : #line 31919 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11030 : (TARGET_AVX512BF16) &&
11031 : #line 534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11032 : (TARGET_AVX512VL)))
11033 : return -1;
11034 : return 10432; /* avx512f_dpbf16ps_v4sf_mask */
11035 :
11036 : default:
11037 : return -1;
11038 : }
11039 :
11040 : default:
11041 : return -1;
11042 : }
11043 : }
11044 :
11045 : int
11046 : recog_149 (rtx x1 ATTRIBUTE_UNUSED,
11047 : rtx_insn *insn ATTRIBUTE_UNUSED,
11048 : int *pnum_clobbers ATTRIBUTE_UNUSED)
11049 : {
11050 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
11051 : rtx x2, x3, x4, x5, x6, x7;
11052 : int res ATTRIBUTE_UNUSED;
11053 : x2 = XEXP (x1, 1);
11054 : x3 = XEXP (x2, 0);
11055 : switch (XINT (x3, 1))
11056 : {
11057 : case 64:
11058 : switch (pattern461 (x2))
11059 : {
11060 : case 0:
11061 : if (!(
11062 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11063 : (TARGET_AVX512F) && (
11064 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11065 : (TARGET_SSE
11066 : && (64 == 64 || TARGET_AVX512VL)
11067 : && 1) &&
11068 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11069 : (TARGET_AVX512FP16))))
11070 : return -1;
11071 : return 3115; /* ieee_maxv32hf3_mask */
11072 :
11073 : case 1:
11074 : if (!(
11075 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11076 : (TARGET_AVX512F) && (
11077 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11078 : (TARGET_SSE
11079 : && (32 == 64 || TARGET_AVX512VL)
11080 : && 1) &&
11081 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11082 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
11083 : return -1;
11084 : return 3122; /* ieee_maxv16hf3_mask */
11085 :
11086 : case 2:
11087 : if (!(
11088 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11089 : (TARGET_AVX512F) && (
11090 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11091 : (TARGET_SSE
11092 : && (16 == 64 || TARGET_AVX512VL)
11093 : && 1) &&
11094 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11095 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
11096 : return -1;
11097 : return 3126; /* ieee_maxv8hf3_mask */
11098 :
11099 : case 3:
11100 : if (!(
11101 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11102 : (TARGET_AVX512F) && (
11103 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11104 : (TARGET_SSE
11105 : && (64 == 64 || TARGET_AVX512VL)
11106 : && 1) &&
11107 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11108 : (TARGET_AVX512F))))
11109 : return -1;
11110 : return 3131; /* ieee_maxv16sf3_mask */
11111 :
11112 : case 4:
11113 : if (!(
11114 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11115 : (TARGET_AVX512F) && (
11116 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11117 : (TARGET_SSE
11118 : && (32 == 64 || TARGET_AVX512VL)
11119 : && 1) &&
11120 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11121 : (TARGET_AVX))))
11122 : return -1;
11123 : return 3138; /* ieee_maxv8sf3_mask */
11124 :
11125 : case 5:
11126 : if (!(
11127 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11128 : (TARGET_AVX512F) &&
11129 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11130 : (TARGET_SSE
11131 : && (16 == 64 || TARGET_AVX512VL)
11132 : && 1)))
11133 : return -1;
11134 : return 3142; /* ieee_maxv4sf3_mask */
11135 :
11136 : case 6:
11137 : if (!(
11138 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11139 : (TARGET_AVX512F) && (
11140 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11141 : (TARGET_SSE
11142 : && (64 == 64 || TARGET_AVX512VL)
11143 : && 1) &&
11144 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11145 : (TARGET_AVX512F))))
11146 : return -1;
11147 : return 3147; /* ieee_maxv8df3_mask */
11148 :
11149 : case 7:
11150 : if (!(
11151 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11152 : (TARGET_AVX512F) && (
11153 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11154 : (TARGET_SSE
11155 : && (32 == 64 || TARGET_AVX512VL)
11156 : && 1) &&
11157 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11158 : (TARGET_AVX))))
11159 : return -1;
11160 : return 3154; /* ieee_maxv4df3_mask */
11161 :
11162 : case 8:
11163 : if (!(
11164 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11165 : (TARGET_AVX512F) && (
11166 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11167 : (TARGET_SSE
11168 : && (16 == 64 || TARGET_AVX512VL)
11169 : && 1) &&
11170 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11171 : (TARGET_SSE2))))
11172 : return -1;
11173 : return 3158; /* ieee_maxv2df3_mask */
11174 :
11175 : case 9:
11176 : if (!(
11177 : #line 3555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11178 : (TARGET_SSE) &&
11179 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11180 : (TARGET_AVX512FP16)))
11181 : return -1;
11182 : return 3191; /* avx512fp16_ieee_vmmaxv8hf3 */
11183 :
11184 : case 10:
11185 : if (!
11186 : #line 3555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11187 : (TARGET_SSE))
11188 : return -1;
11189 : return 3199; /* sse_ieee_vmmaxv4sf3 */
11190 :
11191 : case 11:
11192 : if (!(
11193 : #line 3555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11194 : (TARGET_SSE) &&
11195 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11196 : (TARGET_SSE2)))
11197 : return -1;
11198 : return 3207; /* sse2_ieee_vmmaxv2df3 */
11199 :
11200 : default:
11201 : return -1;
11202 : }
11203 :
11204 : case 63:
11205 : switch (pattern461 (x2))
11206 : {
11207 : case 0:
11208 : if (!(
11209 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11210 : (TARGET_AVX512F) && (
11211 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11212 : (TARGET_SSE
11213 : && (64 == 64 || TARGET_AVX512VL)
11214 : && 1) &&
11215 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11216 : (TARGET_AVX512FP16))))
11217 : return -1;
11218 : return 3119; /* ieee_minv32hf3_mask */
11219 :
11220 : case 1:
11221 : if (!(
11222 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11223 : (TARGET_AVX512F) && (
11224 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11225 : (TARGET_SSE
11226 : && (32 == 64 || TARGET_AVX512VL)
11227 : && 1) &&
11228 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11229 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
11230 : return -1;
11231 : return 3124; /* ieee_minv16hf3_mask */
11232 :
11233 : case 2:
11234 : if (!(
11235 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11236 : (TARGET_AVX512F) && (
11237 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11238 : (TARGET_SSE
11239 : && (16 == 64 || TARGET_AVX512VL)
11240 : && 1) &&
11241 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11242 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
11243 : return -1;
11244 : return 3128; /* ieee_minv8hf3_mask */
11245 :
11246 : case 3:
11247 : if (!(
11248 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11249 : (TARGET_AVX512F) && (
11250 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11251 : (TARGET_SSE
11252 : && (64 == 64 || TARGET_AVX512VL)
11253 : && 1) &&
11254 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11255 : (TARGET_AVX512F))))
11256 : return -1;
11257 : return 3135; /* ieee_minv16sf3_mask */
11258 :
11259 : case 4:
11260 : if (!(
11261 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11262 : (TARGET_AVX512F) && (
11263 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11264 : (TARGET_SSE
11265 : && (32 == 64 || TARGET_AVX512VL)
11266 : && 1) &&
11267 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11268 : (TARGET_AVX))))
11269 : return -1;
11270 : return 3140; /* ieee_minv8sf3_mask */
11271 :
11272 : case 5:
11273 : if (!(
11274 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11275 : (TARGET_AVX512F) &&
11276 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11277 : (TARGET_SSE
11278 : && (16 == 64 || TARGET_AVX512VL)
11279 : && 1)))
11280 : return -1;
11281 : return 3144; /* ieee_minv4sf3_mask */
11282 :
11283 : case 6:
11284 : if (!(
11285 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11286 : (TARGET_AVX512F) && (
11287 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11288 : (TARGET_SSE
11289 : && (64 == 64 || TARGET_AVX512VL)
11290 : && 1) &&
11291 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11292 : (TARGET_AVX512F))))
11293 : return -1;
11294 : return 3151; /* ieee_minv8df3_mask */
11295 :
11296 : case 7:
11297 : if (!(
11298 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11299 : (TARGET_AVX512F) && (
11300 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11301 : (TARGET_SSE
11302 : && (32 == 64 || TARGET_AVX512VL)
11303 : && 1) &&
11304 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11305 : (TARGET_AVX))))
11306 : return -1;
11307 : return 3156; /* ieee_minv4df3_mask */
11308 :
11309 : case 8:
11310 : if (!(
11311 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11312 : (TARGET_AVX512F) && (
11313 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11314 : (TARGET_SSE
11315 : && (16 == 64 || TARGET_AVX512VL)
11316 : && 1) &&
11317 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11318 : (TARGET_SSE2))))
11319 : return -1;
11320 : return 3160; /* ieee_minv2df3_mask */
11321 :
11322 : case 9:
11323 : if (!(
11324 : #line 3555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11325 : (TARGET_SSE) &&
11326 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11327 : (TARGET_AVX512FP16)))
11328 : return -1;
11329 : return 3195; /* avx512fp16_ieee_vmminv8hf3 */
11330 :
11331 : case 10:
11332 : if (!
11333 : #line 3555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11334 : (TARGET_SSE))
11335 : return -1;
11336 : return 3203; /* sse_ieee_vmminv4sf3 */
11337 :
11338 : case 11:
11339 : if (!(
11340 : #line 3555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11341 : (TARGET_SSE) &&
11342 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11343 : (TARGET_SSE2)))
11344 : return -1;
11345 : return 3211; /* sse2_ieee_vmminv2df3 */
11346 :
11347 : default:
11348 : return -1;
11349 : }
11350 :
11351 : case 193:
11352 : x4 = XVECEXP (x3, 0, 0);
11353 : operands[1] = x4;
11354 : x5 = XVECEXP (x3, 0, 1);
11355 : operands[2] = x5;
11356 : if (!const_0_to_255_operand (operands[2], E_SImode))
11357 : return -1;
11358 : x6 = XEXP (x2, 1);
11359 : operands[3] = x6;
11360 : x7 = XEXP (x2, 2);
11361 : operands[4] = x7;
11362 : switch (GET_MODE (operands[0]))
11363 : {
11364 : case E_V32HFmode:
11365 : if (pattern1221 (x2,
11366 : E_V32HFmode,
11367 : E_SImode) != 0
11368 : || !(
11369 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11370 : (TARGET_AVX512F) && (
11371 : #line 4253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11372 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V32HFmode))) &&
11373 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11374 : (TARGET_AVX512FP16))))
11375 : return -1;
11376 : return 3231; /* reducepv32hf_mask */
11377 :
11378 : case E_V16HFmode:
11379 : if (pattern1221 (x2,
11380 : E_V16HFmode,
11381 : E_HImode) != 0
11382 : || !(
11383 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11384 : (TARGET_AVX512F) && (
11385 : #line 4253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11386 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V16HFmode))) &&
11387 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11388 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
11389 : return -1;
11390 : return 3235; /* reducepv16hf_mask */
11391 :
11392 : case E_V8HFmode:
11393 : if (pattern1221 (x2,
11394 : E_V8HFmode,
11395 : E_QImode) != 0
11396 : || !(
11397 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11398 : (TARGET_AVX512F) && (
11399 : #line 4253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11400 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V8HFmode))) &&
11401 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11402 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
11403 : return -1;
11404 : return 3239; /* reducepv8hf_mask */
11405 :
11406 : case E_V16SFmode:
11407 : if (pattern1221 (x2,
11408 : E_V16SFmode,
11409 : E_HImode) != 0
11410 : || !(
11411 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11412 : (TARGET_AVX512F) &&
11413 : #line 4253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11414 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V16SFmode)))))
11415 : return -1;
11416 : return 3243; /* reducepv16sf_mask */
11417 :
11418 : case E_V8SFmode:
11419 : if (pattern1221 (x2,
11420 : E_V8SFmode,
11421 : E_QImode) != 0
11422 : || !(
11423 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11424 : (TARGET_AVX512F) && (
11425 : #line 4253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11426 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V8SFmode))) &&
11427 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11428 : (TARGET_AVX512VL))))
11429 : return -1;
11430 : return 3247; /* reducepv8sf_mask */
11431 :
11432 : case E_V4SFmode:
11433 : if (pattern1221 (x2,
11434 : E_V4SFmode,
11435 : E_QImode) != 0
11436 : || !(
11437 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11438 : (TARGET_AVX512F) && (
11439 : #line 4253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11440 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V4SFmode))) &&
11441 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11442 : (TARGET_AVX512VL))))
11443 : return -1;
11444 : return 3251; /* reducepv4sf_mask */
11445 :
11446 : case E_V8DFmode:
11447 : if (pattern1221 (x2,
11448 : E_V8DFmode,
11449 : E_QImode) != 0
11450 : || !(
11451 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11452 : (TARGET_AVX512F) &&
11453 : #line 4253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11454 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V8DFmode)))))
11455 : return -1;
11456 : return 3255; /* reducepv8df_mask */
11457 :
11458 : case E_V4DFmode:
11459 : if (pattern1221 (x2,
11460 : E_V4DFmode,
11461 : E_QImode) != 0
11462 : || !(
11463 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11464 : (TARGET_AVX512F) && (
11465 : #line 4253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11466 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V4DFmode))) &&
11467 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11468 : (TARGET_AVX512VL))))
11469 : return -1;
11470 : return 3259; /* reducepv4df_mask */
11471 :
11472 : case E_V2DFmode:
11473 : if (pattern1221 (x2,
11474 : E_V2DFmode,
11475 : E_QImode) != 0
11476 : || !(
11477 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11478 : (TARGET_AVX512F) && (
11479 : #line 4253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11480 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V2DFmode))) &&
11481 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11482 : (TARGET_AVX512VL))))
11483 : return -1;
11484 : return 3263; /* reducepv2df_mask */
11485 :
11486 : default:
11487 : return -1;
11488 : }
11489 :
11490 : case 222:
11491 : switch (pattern463 (x2))
11492 : {
11493 : case 0:
11494 : if (!(
11495 : #line 106 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11496 : (TARGET_AVX512F) &&
11497 : #line 7665 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11498 : (TARGET_AVX512FP16 && 1)))
11499 : return -1;
11500 : return 4410; /* avx512bw_fmulc_v32hf_mask */
11501 :
11502 : case 1:
11503 : if (!(
11504 : #line 106 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11505 : (TARGET_AVX512F) && (
11506 : #line 7665 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11507 : (TARGET_AVX512FP16 && 1) &&
11508 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11509 : (TARGET_AVX512VL))))
11510 : return -1;
11511 : return 4418; /* avx512vl_fmulc_v16hf_mask */
11512 :
11513 : case 2:
11514 : if (!(
11515 : #line 106 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11516 : (TARGET_AVX512F) && (
11517 : #line 7665 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11518 : (TARGET_AVX512FP16 && 1) &&
11519 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11520 : (TARGET_AVX512VL))))
11521 : return -1;
11522 : return 4422; /* avx512fp16_fmulc_v8hf_mask */
11523 :
11524 : case 3:
11525 : if (!
11526 : #line 7869 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11527 : (TARGET_AVX512FP16))
11528 : return -1;
11529 : return 4437; /* avx512fp16_fmulcsh_v8hf */
11530 :
11531 : default:
11532 : return -1;
11533 : }
11534 :
11535 : case 223:
11536 : switch (pattern463 (x2))
11537 : {
11538 : case 0:
11539 : if (!(
11540 : #line 106 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11541 : (TARGET_AVX512F) &&
11542 : #line 7665 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11543 : (TARGET_AVX512FP16 && 1)))
11544 : return -1;
11545 : return 4414; /* avx512bw_fcmulc_v32hf_mask */
11546 :
11547 : case 1:
11548 : if (!(
11549 : #line 106 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11550 : (TARGET_AVX512F) && (
11551 : #line 7665 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11552 : (TARGET_AVX512FP16 && 1) &&
11553 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11554 : (TARGET_AVX512VL))))
11555 : return -1;
11556 : return 4420; /* avx512vl_fcmulc_v16hf_mask */
11557 :
11558 : case 2:
11559 : if (!(
11560 : #line 106 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11561 : (TARGET_AVX512F) && (
11562 : #line 7665 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11563 : (TARGET_AVX512FP16 && 1) &&
11564 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11565 : (TARGET_AVX512VL))))
11566 : return -1;
11567 : return 4424; /* avx512fp16_fcmulc_v8hf_mask */
11568 :
11569 : case 3:
11570 : if (!
11571 : #line 7869 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11572 : (TARGET_AVX512FP16))
11573 : return -1;
11574 : return 4441; /* avx512fp16_fcmulcsh_v8hf */
11575 :
11576 : default:
11577 : return -1;
11578 : }
11579 :
11580 : case 59:
11581 : return recog_134 (x1, insn, pnum_clobbers);
11582 :
11583 : case 166:
11584 : x7 = XEXP (x2, 2);
11585 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
11586 : return -1;
11587 : x4 = XVECEXP (x3, 0, 0);
11588 : operands[1] = x4;
11589 : x5 = XVECEXP (x3, 0, 1);
11590 : operands[2] = x5;
11591 : switch (pattern460 (x2))
11592 : {
11593 : case 0:
11594 : if (!(
11595 : #line 14370 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11596 : (TARGET_AVX512F) &&
11597 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11598 : (TARGET_AVX512FP16)))
11599 : return -1;
11600 : return 7091; /* avx512f_sgetexpv8hf */
11601 :
11602 : case 1:
11603 : if (!
11604 : #line 14370 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11605 : (TARGET_AVX512F))
11606 : return -1;
11607 : return 7095; /* avx512f_sgetexpv4sf */
11608 :
11609 : case 2:
11610 : if (!(
11611 : #line 14370 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11612 : (TARGET_AVX512F) &&
11613 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11614 : (TARGET_SSE2)))
11615 : return -1;
11616 : return 7099; /* avx512f_sgetexpv2df */
11617 :
11618 : default:
11619 : return -1;
11620 : }
11621 :
11622 : case 95:
11623 : return recog_133 (x1, insn, pnum_clobbers);
11624 :
11625 : case 189:
11626 : x4 = XVECEXP (x3, 0, 0);
11627 : operands[1] = x4;
11628 : x5 = XVECEXP (x3, 0, 1);
11629 : operands[2] = x5;
11630 : x6 = XEXP (x2, 1);
11631 : operands[3] = x6;
11632 : x7 = XEXP (x2, 2);
11633 : operands[4] = x7;
11634 : switch (GET_MODE (operands[0]))
11635 : {
11636 : case E_V16SImode:
11637 : if (pattern466 (x2,
11638 : E_HImode,
11639 : E_V16SImode,
11640 : E_V32HImode) != 0
11641 : || !(
11642 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11643 : (TARGET_AVX512F) && (
11644 : #line 16996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11645 : (TARGET_AVX512BW && (64 == 64 || TARGET_AVX512VL)) &&
11646 : #line 646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11647 : (TARGET_AVX512BW))))
11648 : return -1;
11649 : return 7625; /* avx512bw_pmaddwd512v32hi_mask */
11650 :
11651 : case E_V8SImode:
11652 : if (pattern466 (x2,
11653 : E_QImode,
11654 : E_V8SImode,
11655 : E_V16HImode) != 0
11656 : || !(
11657 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11658 : (TARGET_AVX512F) && (
11659 : #line 16996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11660 : (TARGET_AVX512BW && (32 == 64 || TARGET_AVX512VL)) &&
11661 : #line 646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11662 : (TARGET_AVX2))))
11663 : return -1;
11664 : return 7627; /* avx512bw_pmaddwd512v16hi_mask */
11665 :
11666 : case E_V4SImode:
11667 : if (pattern466 (x2,
11668 : E_QImode,
11669 : E_V4SImode,
11670 : E_V8HImode) != 0
11671 : || !(
11672 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11673 : (TARGET_AVX512F) &&
11674 : #line 16996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11675 : (TARGET_AVX512BW && (16 == 64 || TARGET_AVX512VL))))
11676 : return -1;
11677 : return 7629; /* avx512bw_pmaddwd512v8hi_mask */
11678 :
11679 : default:
11680 : return -1;
11681 : }
11682 :
11683 : case 58:
11684 : x4 = XVECEXP (x3, 0, 0);
11685 : operands[1] = x4;
11686 : x5 = XVECEXP (x3, 0, 1);
11687 : operands[2] = x5;
11688 : x6 = XEXP (x2, 1);
11689 : operands[3] = x6;
11690 : x7 = XEXP (x2, 2);
11691 : operands[4] = x7;
11692 : switch (GET_MODE (operands[0]))
11693 : {
11694 : case E_V64QImode:
11695 : if (pattern1116 (x2,
11696 : E_DImode,
11697 : E_V64QImode,
11698 : E_V32HImode) != 0
11699 : || !(
11700 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11701 : (TARGET_AVX512F) && (
11702 : #line 19714 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11703 : (TARGET_SSE2 && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) &&
11704 : #line 626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11705 : (TARGET_AVX512BW))))
11706 : return -1;
11707 : return 8358; /* avx512bw_packuswb_mask */
11708 :
11709 : case E_V32QImode:
11710 : if (pattern1116 (x2,
11711 : E_SImode,
11712 : E_V32QImode,
11713 : E_V16HImode) != 0
11714 : || !(
11715 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11716 : (TARGET_AVX512F) && (
11717 : #line 19714 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11718 : (TARGET_SSE2 && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) &&
11719 : #line 626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11720 : (TARGET_AVX2))))
11721 : return -1;
11722 : return 8360; /* avx2_packuswb_mask */
11723 :
11724 : case E_V16QImode:
11725 : if (pattern1116 (x2,
11726 : E_HImode,
11727 : E_V16QImode,
11728 : E_V8HImode) != 0
11729 : || !(
11730 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11731 : (TARGET_AVX512F) &&
11732 : #line 19714 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11733 : (TARGET_SSE2 && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW)))
11734 : return -1;
11735 : return 8362; /* sse2_packuswb_mask */
11736 :
11737 : case E_V32HImode:
11738 : if (pattern1116 (x2,
11739 : E_SImode,
11740 : E_V32HImode,
11741 : E_V16SImode) != 0
11742 : || !(
11743 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11744 : (TARGET_AVX512F) && (
11745 : #line 24189 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11746 : (TARGET_SSE4_1 && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) &&
11747 : #line 646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11748 : (TARGET_AVX512BW))))
11749 : return -1;
11750 : return 8773; /* avx512bw_packusdw_mask */
11751 :
11752 : case E_V16HImode:
11753 : if (pattern1116 (x2,
11754 : E_HImode,
11755 : E_V16HImode,
11756 : E_V8SImode) != 0
11757 : || !(
11758 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11759 : (TARGET_AVX512F) && (
11760 : #line 24189 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11761 : (TARGET_SSE4_1 && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) &&
11762 : #line 646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11763 : (TARGET_AVX2))))
11764 : return -1;
11765 : return 8775; /* avx2_packusdw_mask */
11766 :
11767 : case E_V8HImode:
11768 : if (pattern1116 (x2,
11769 : E_QImode,
11770 : E_V8HImode,
11771 : E_V4SImode) != 0
11772 : || !(
11773 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11774 : (TARGET_AVX512F) &&
11775 : #line 24189 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11776 : (TARGET_SSE4_1 && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW)))
11777 : return -1;
11778 : return 8777; /* sse4_1_packusdw_mask */
11779 :
11780 : default:
11781 : return -1;
11782 : }
11783 :
11784 : case 191:
11785 : if (pattern464 (x2) != 0
11786 : || !(
11787 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11788 : (TARGET_AVX512F) &&
11789 : #line 21053 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11790 : (TARGET_AVX512BW)))
11791 : return -1;
11792 : return 8488; /* avx512bw_pshuflwv32hi_mask */
11793 :
11794 : case 190:
11795 : if (pattern464 (x2) != 0
11796 : || !(
11797 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11798 : (TARGET_AVX512F) &&
11799 : #line 21229 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11800 : (TARGET_AVX512BW)))
11801 : return -1;
11802 : return 8494; /* avx512bw_pshufhwv32hi_mask */
11803 :
11804 : case 188:
11805 : x4 = XVECEXP (x3, 0, 0);
11806 : operands[1] = x4;
11807 : x5 = XVECEXP (x3, 0, 1);
11808 : operands[2] = x5;
11809 : x6 = XEXP (x2, 1);
11810 : operands[3] = x6;
11811 : x7 = XEXP (x2, 2);
11812 : operands[4] = x7;
11813 : switch (GET_MODE (operands[0]))
11814 : {
11815 : case E_V8HImode:
11816 : if (pattern466 (x2,
11817 : E_QImode,
11818 : E_V8HImode,
11819 : E_V16QImode) != 0
11820 : || !(
11821 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11822 : (TARGET_AVX512F) && (
11823 : #line 23147 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11824 : (TARGET_AVX512BW) &&
11825 : #line 679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11826 : (TARGET_AVX512VL))))
11827 : return -1;
11828 : return 8651; /* avx512bw_pmaddubsw512v8hi_mask */
11829 :
11830 : case E_V16HImode:
11831 : if (pattern466 (x2,
11832 : E_HImode,
11833 : E_V16HImode,
11834 : E_V32QImode) != 0
11835 : || !(
11836 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11837 : (TARGET_AVX512F) && (
11838 : #line 23147 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11839 : (TARGET_AVX512BW) &&
11840 : #line 679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11841 : (TARGET_AVX512VL))))
11842 : return -1;
11843 : return 8653; /* avx512bw_pmaddubsw512v16hi_mask */
11844 :
11845 : case E_V32HImode:
11846 : if (pattern466 (x2,
11847 : E_SImode,
11848 : E_V32HImode,
11849 : E_V64QImode) != 0
11850 : || !(
11851 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11852 : (TARGET_AVX512F) &&
11853 : #line 23147 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11854 : (TARGET_AVX512BW)))
11855 : return -1;
11856 : return 8655; /* avx512bw_pmaddubsw512v32hi_mask */
11857 :
11858 : default:
11859 : return -1;
11860 : }
11861 :
11862 : case 53:
11863 : switch (pattern465 (x2))
11864 : {
11865 : case 0:
11866 : if (!(
11867 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11868 : (TARGET_AVX512F) && (
11869 : #line 23472 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11870 : (TARGET_SSSE3 && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) &&
11871 : #line 626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11872 : (TARGET_AVX512BW))))
11873 : return -1;
11874 : return 8669; /* avx512bw_pshufbv64qi3_mask */
11875 :
11876 : case 1:
11877 : if (!(
11878 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11879 : (TARGET_AVX512F) && (
11880 : #line 23472 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11881 : (TARGET_SSSE3 && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) &&
11882 : #line 626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11883 : (TARGET_AVX2))))
11884 : return -1;
11885 : return 8671; /* avx2_pshufbv32qi3_mask */
11886 :
11887 : case 2:
11888 : if (!(
11889 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11890 : (TARGET_AVX512F) &&
11891 : #line 23472 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11892 : (TARGET_SSSE3 && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW)))
11893 : return -1;
11894 : return 8673; /* ssse3_pshufbv16qi3_mask */
11895 :
11896 : default:
11897 : return -1;
11898 : }
11899 :
11900 : case 152:
11901 : return recog_132 (x1, insn, pnum_clobbers);
11902 :
11903 : case 145:
11904 : x4 = XVECEXP (x3, 0, 0);
11905 : operands[1] = x4;
11906 : x5 = XVECEXP (x3, 0, 1);
11907 : operands[2] = x5;
11908 : x6 = XEXP (x2, 1);
11909 : operands[3] = x6;
11910 : x7 = XEXP (x2, 2);
11911 : operands[4] = x7;
11912 : switch (GET_MODE (operands[0]))
11913 : {
11914 : case E_V16SFmode:
11915 : if (pattern1119 (x2,
11916 : E_V16SFmode,
11917 : E_V16SImode,
11918 : E_HImode) != 0
11919 : || !(
11920 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11921 : (TARGET_AVX512F) && (
11922 : #line 28825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11923 : (TARGET_AVX && (64 == 64 || TARGET_AVX512VL)) &&
11924 : #line 382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11925 : (TARGET_AVX512F))))
11926 : return -1;
11927 : return 9426; /* avx512f_vpermilvarv16sf3_mask */
11928 :
11929 : case E_V8SFmode:
11930 : if (pattern1119 (x2,
11931 : E_V8SFmode,
11932 : E_V8SImode,
11933 : E_QImode) != 0
11934 : || !(
11935 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11936 : (TARGET_AVX512F) && (
11937 : #line 28825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11938 : (TARGET_AVX && (32 == 64 || TARGET_AVX512VL)) &&
11939 : #line 382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11940 : (TARGET_AVX))))
11941 : return -1;
11942 : return 9428; /* avx_vpermilvarv8sf3_mask */
11943 :
11944 : case E_V4SFmode:
11945 : if (pattern1119 (x2,
11946 : E_V4SFmode,
11947 : E_V4SImode,
11948 : E_QImode) != 0
11949 : || !(
11950 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11951 : (TARGET_AVX512F) &&
11952 : #line 28825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11953 : (TARGET_AVX && (16 == 64 || TARGET_AVX512VL))))
11954 : return -1;
11955 : return 9430; /* avx_vpermilvarv4sf3_mask */
11956 :
11957 : case E_V8DFmode:
11958 : if (pattern1119 (x2,
11959 : E_V8DFmode,
11960 : E_V8DImode,
11961 : E_QImode) != 0
11962 : || !(
11963 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11964 : (TARGET_AVX512F) && (
11965 : #line 28825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11966 : (TARGET_AVX && (64 == 64 || TARGET_AVX512VL)) &&
11967 : #line 383 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11968 : (TARGET_AVX512F))))
11969 : return -1;
11970 : return 9432; /* avx512f_vpermilvarv8df3_mask */
11971 :
11972 : case E_V4DFmode:
11973 : if (pattern1119 (x2,
11974 : E_V4DFmode,
11975 : E_V4DImode,
11976 : E_QImode) != 0
11977 : || !(
11978 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11979 : (TARGET_AVX512F) && (
11980 : #line 28825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11981 : (TARGET_AVX && (32 == 64 || TARGET_AVX512VL)) &&
11982 : #line 383 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11983 : (TARGET_AVX))))
11984 : return -1;
11985 : return 9434; /* avx_vpermilvarv4df3_mask */
11986 :
11987 : case E_V2DFmode:
11988 : if (pattern1119 (x2,
11989 : E_V2DFmode,
11990 : E_V2DImode,
11991 : E_QImode) != 0
11992 : || !(
11993 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11994 : (TARGET_AVX512F) && (
11995 : #line 28825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11996 : (TARGET_AVX && (16 == 64 || TARGET_AVX512VL)) &&
11997 : #line 384 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11998 : (TARGET_SSE2))))
11999 : return -1;
12000 : return 9436; /* avx_vpermilvarv2df3_mask */
12001 :
12002 : default:
12003 : return -1;
12004 : }
12005 :
12006 : case 151:
12007 : x4 = XVECEXP (x3, 0, 0);
12008 : operands[1] = x4;
12009 : x5 = XVECEXP (x3, 0, 1);
12010 : operands[2] = x5;
12011 : if (!const_0_to_255_operand (operands[2], E_SImode))
12012 : return -1;
12013 : switch (GET_MODE (operands[0]))
12014 : {
12015 : case E_V8HImode:
12016 : if (pattern1005 (x2,
12017 : E_QImode,
12018 : E_V8SFmode,
12019 : E_V8HImode) != 0)
12020 : return -1;
12021 : x7 = XEXP (x2, 2);
12022 : operands[4] = x7;
12023 : if (register_operand (operands[0], E_V8HImode))
12024 : {
12025 : x6 = XEXP (x2, 1);
12026 : operands[3] = x6;
12027 : if (nonimm_or_0_operand (operands[3], E_V8HImode)
12028 : && (
12029 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12030 : (TARGET_AVX512F) &&
12031 : #line 29868 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12032 : (TARGET_F16C || TARGET_AVX512VL)))
12033 : return 9734; /* vcvtps2ph256_mask */
12034 : }
12035 : operands[3] = x7;
12036 : if (!memory_operand (operands[0], E_V8HImode))
12037 : return -1;
12038 : x6 = XEXP (x2, 1);
12039 : if (!rtx_equal_p (x6, operands[0])
12040 : || !(
12041 : #line 96 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12042 : (TARGET_AVX512F) &&
12043 : #line 29880 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12044 : (TARGET_F16C || TARGET_AVX512VL)))
12045 : return -1;
12046 : return 9736; /* *vcvtps2ph256_merge_mask */
12047 :
12048 : case E_V16HImode:
12049 : if (pattern1005 (x2,
12050 : E_HImode,
12051 : E_V16SFmode,
12052 : E_V16HImode) != 0)
12053 : return -1;
12054 : x7 = XEXP (x2, 2);
12055 : operands[4] = x7;
12056 : if (register_operand (operands[0], E_V16HImode))
12057 : {
12058 : x6 = XEXP (x2, 1);
12059 : operands[3] = x6;
12060 : if (nonimm_or_0_operand (operands[3], E_V16HImode)
12061 : &&
12062 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12063 : (TARGET_AVX512F))
12064 : return 9739; /* avx512f_vcvtps2ph512_mask */
12065 : }
12066 : operands[3] = x7;
12067 : if (!memory_operand (operands[0], E_V16HImode))
12068 : return -1;
12069 : x6 = XEXP (x2, 1);
12070 : if (!rtx_equal_p (x6, operands[0])
12071 : || !
12072 : #line 96 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12073 : (TARGET_AVX512F))
12074 : return -1;
12075 : return 9742; /* *avx512f_vcvtps2ph512_merge_mask */
12076 :
12077 : default:
12078 : return -1;
12079 : }
12080 :
12081 : case 167:
12082 : return recog_135 (x1, insn, pnum_clobbers);
12083 :
12084 : case 198:
12085 : x4 = XVECEXP (x3, 0, 0);
12086 : operands[1] = x4;
12087 : x5 = XVECEXP (x3, 0, 1);
12088 : operands[2] = x5;
12089 : x6 = XEXP (x2, 1);
12090 : operands[3] = x6;
12091 : x7 = XEXP (x2, 2);
12092 : operands[4] = x7;
12093 : switch (GET_MODE (operands[0]))
12094 : {
12095 : case E_V64QImode:
12096 : if (pattern1120 (x2,
12097 : E_V64QImode,
12098 : E_DImode) != 0
12099 : || !(
12100 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12101 : (TARGET_AVX512F) &&
12102 : #line 30971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12103 : (TARGET_AVX512VBMI)))
12104 : return -1;
12105 : return 10201; /* vpmultishiftqbv64qi_mask */
12106 :
12107 : case E_V16QImode:
12108 : if (pattern1120 (x2,
12109 : E_V16QImode,
12110 : E_HImode) != 0
12111 : || !(
12112 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12113 : (TARGET_AVX512F) && (
12114 : #line 30971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12115 : (TARGET_AVX512VBMI) &&
12116 : #line 338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12117 : (TARGET_AVX512VL))))
12118 : return -1;
12119 : return 10203; /* vpmultishiftqbv16qi_mask */
12120 :
12121 : case E_V32QImode:
12122 : if (pattern1120 (x2,
12123 : E_V32QImode,
12124 : E_SImode) != 0
12125 : || !(
12126 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12127 : (TARGET_AVX512F) && (
12128 : #line 30971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12129 : (TARGET_AVX512VBMI) &&
12130 : #line 338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12131 : (TARGET_AVX512VL))))
12132 : return -1;
12133 : return 10205; /* vpmultishiftqbv32qi_mask */
12134 :
12135 : default:
12136 : return -1;
12137 : }
12138 :
12139 : case 201:
12140 : switch (pattern465 (x2))
12141 : {
12142 : case 0:
12143 : if (!(
12144 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12145 : (TARGET_AVX512F) && (
12146 : #line 31080 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12147 : (TARGET_GFNI) &&
12148 : #line 629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12149 : (TARGET_AVX512F))))
12150 : return -1;
12151 : return 10251; /* vgf2p8mulb_v64qi_mask */
12152 :
12153 : case 1:
12154 : if (!(
12155 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12156 : (TARGET_AVX512F) && (
12157 : #line 31080 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12158 : (TARGET_GFNI) &&
12159 : #line 629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12160 : (TARGET_AVX))))
12161 : return -1;
12162 : return 10253; /* vgf2p8mulb_v32qi_mask */
12163 :
12164 : case 2:
12165 : if (!(
12166 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12167 : (TARGET_AVX512F) &&
12168 : #line 31080 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12169 : (TARGET_GFNI)))
12170 : return -1;
12171 : return 10255; /* vgf2p8mulb_v16qi_mask */
12172 :
12173 : default:
12174 : return -1;
12175 : }
12176 :
12177 : case 250:
12178 : switch (pattern467 (x2))
12179 : {
12180 : case 0:
12181 : if (!(
12182 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12183 : (TARGET_AVX512F) &&
12184 : #line 32446 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12185 : (TARGET_AVX10_2)))
12186 : return -1;
12187 : return 10519; /* vcvt2ph2bf8v32hf_mask */
12188 :
12189 : case 1:
12190 : if (!(
12191 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12192 : (TARGET_AVX512F) && (
12193 : #line 32446 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12194 : (TARGET_AVX10_2) &&
12195 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12196 : (TARGET_AVX512VL))))
12197 : return -1;
12198 : return 10527; /* vcvt2ph2bf8v16hf_mask */
12199 :
12200 : case 2:
12201 : if (!(
12202 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12203 : (TARGET_AVX512F) && (
12204 : #line 32446 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12205 : (TARGET_AVX10_2) &&
12206 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12207 : (TARGET_AVX512VL))))
12208 : return -1;
12209 : return 10535; /* vcvt2ph2bf8v8hf_mask */
12210 :
12211 : default:
12212 : return -1;
12213 : }
12214 :
12215 : case 251:
12216 : switch (pattern467 (x2))
12217 : {
12218 : case 0:
12219 : if (!(
12220 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12221 : (TARGET_AVX512F) &&
12222 : #line 32446 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12223 : (TARGET_AVX10_2)))
12224 : return -1;
12225 : return 10521; /* vcvt2ph2bf8sv32hf_mask */
12226 :
12227 : case 1:
12228 : if (!(
12229 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12230 : (TARGET_AVX512F) && (
12231 : #line 32446 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12232 : (TARGET_AVX10_2) &&
12233 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12234 : (TARGET_AVX512VL))))
12235 : return -1;
12236 : return 10529; /* vcvt2ph2bf8sv16hf_mask */
12237 :
12238 : case 2:
12239 : if (!(
12240 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12241 : (TARGET_AVX512F) && (
12242 : #line 32446 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12243 : (TARGET_AVX10_2) &&
12244 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12245 : (TARGET_AVX512VL))))
12246 : return -1;
12247 : return 10537; /* vcvt2ph2bf8sv8hf_mask */
12248 :
12249 : default:
12250 : return -1;
12251 : }
12252 :
12253 : case 252:
12254 : switch (pattern467 (x2))
12255 : {
12256 : case 0:
12257 : if (!(
12258 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12259 : (TARGET_AVX512F) &&
12260 : #line 32446 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12261 : (TARGET_AVX10_2)))
12262 : return -1;
12263 : return 10523; /* vcvt2ph2hf8v32hf_mask */
12264 :
12265 : case 1:
12266 : if (!(
12267 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12268 : (TARGET_AVX512F) && (
12269 : #line 32446 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12270 : (TARGET_AVX10_2) &&
12271 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12272 : (TARGET_AVX512VL))))
12273 : return -1;
12274 : return 10531; /* vcvt2ph2hf8v16hf_mask */
12275 :
12276 : case 2:
12277 : if (!(
12278 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12279 : (TARGET_AVX512F) && (
12280 : #line 32446 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12281 : (TARGET_AVX10_2) &&
12282 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12283 : (TARGET_AVX512VL))))
12284 : return -1;
12285 : return 10539; /* vcvt2ph2hf8v8hf_mask */
12286 :
12287 : default:
12288 : return -1;
12289 : }
12290 :
12291 : case 253:
12292 : switch (pattern467 (x2))
12293 : {
12294 : case 0:
12295 : if (!(
12296 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12297 : (TARGET_AVX512F) &&
12298 : #line 32446 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12299 : (TARGET_AVX10_2)))
12300 : return -1;
12301 : return 10525; /* vcvt2ph2hf8sv32hf_mask */
12302 :
12303 : case 1:
12304 : if (!(
12305 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12306 : (TARGET_AVX512F) && (
12307 : #line 32446 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12308 : (TARGET_AVX10_2) &&
12309 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12310 : (TARGET_AVX512VL))))
12311 : return -1;
12312 : return 10533; /* vcvt2ph2hf8sv16hf_mask */
12313 :
12314 : case 2:
12315 : if (!(
12316 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12317 : (TARGET_AVX512F) && (
12318 : #line 32446 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12319 : (TARGET_AVX10_2) &&
12320 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12321 : (TARGET_AVX512VL))))
12322 : return -1;
12323 : return 10541; /* vcvt2ph2hf8sv8hf_mask */
12324 :
12325 : default:
12326 : return -1;
12327 : }
12328 :
12329 : case 246:
12330 : switch (pattern469 (x2))
12331 : {
12332 : case 0:
12333 : if (!(
12334 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12335 : (TARGET_AVX512F) &&
12336 : #line 32538 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12337 : (TARGET_AVX10_2)))
12338 : return -1;
12339 : return 10551; /* vcvtbiasph2bf8v32hf_mask */
12340 :
12341 : case 1:
12342 : if (!(
12343 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12344 : (TARGET_AVX512F) &&
12345 : #line 32538 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12346 : (TARGET_AVX10_2)))
12347 : return -1;
12348 : return 10559; /* vcvtbiasph2bf8v16hf_mask */
12349 :
12350 : default:
12351 : return -1;
12352 : }
12353 :
12354 : case 247:
12355 : switch (pattern469 (x2))
12356 : {
12357 : case 0:
12358 : if (!(
12359 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12360 : (TARGET_AVX512F) &&
12361 : #line 32538 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12362 : (TARGET_AVX10_2)))
12363 : return -1;
12364 : return 10553; /* vcvtbiasph2bf8sv32hf_mask */
12365 :
12366 : case 1:
12367 : if (!(
12368 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12369 : (TARGET_AVX512F) &&
12370 : #line 32538 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12371 : (TARGET_AVX10_2)))
12372 : return -1;
12373 : return 10561; /* vcvtbiasph2bf8sv16hf_mask */
12374 :
12375 : default:
12376 : return -1;
12377 : }
12378 :
12379 : case 248:
12380 : switch (pattern469 (x2))
12381 : {
12382 : case 0:
12383 : if (!(
12384 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12385 : (TARGET_AVX512F) &&
12386 : #line 32538 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12387 : (TARGET_AVX10_2)))
12388 : return -1;
12389 : return 10555; /* vcvtbiasph2hf8v32hf_mask */
12390 :
12391 : case 1:
12392 : if (!(
12393 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12394 : (TARGET_AVX512F) &&
12395 : #line 32538 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12396 : (TARGET_AVX10_2)))
12397 : return -1;
12398 : return 10563; /* vcvtbiasph2hf8v16hf_mask */
12399 :
12400 : default:
12401 : return -1;
12402 : }
12403 :
12404 : case 249:
12405 : switch (pattern469 (x2))
12406 : {
12407 : case 0:
12408 : if (!(
12409 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12410 : (TARGET_AVX512F) &&
12411 : #line 32538 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12412 : (TARGET_AVX10_2)))
12413 : return -1;
12414 : return 10557; /* vcvtbiasph2hf8sv32hf_mask */
12415 :
12416 : case 1:
12417 : if (!(
12418 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12419 : (TARGET_AVX512F) &&
12420 : #line 32538 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12421 : (TARGET_AVX10_2)))
12422 : return -1;
12423 : return 10565; /* vcvtbiasph2hf8sv16hf_mask */
12424 :
12425 : default:
12426 : return -1;
12427 : }
12428 :
12429 : case 259:
12430 : x4 = XVECEXP (x3, 0, 0);
12431 : operands[1] = x4;
12432 : x5 = XVECEXP (x3, 0, 1);
12433 : operands[2] = x5;
12434 : x6 = XEXP (x2, 1);
12435 : operands[3] = x6;
12436 : x7 = XEXP (x2, 2);
12437 : operands[4] = x7;
12438 : switch (GET_MODE (operands[0]))
12439 : {
12440 : case E_V32BFmode:
12441 : if (pattern1120 (x2,
12442 : E_V32BFmode,
12443 : E_SImode) != 0
12444 : || !(
12445 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12446 : (TARGET_AVX512F) &&
12447 : #line 32805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12448 : (TARGET_AVX10_2)))
12449 : return -1;
12450 : return 10660; /* avx10_2_scalefbf16_v32bf_mask */
12451 :
12452 : case E_V16BFmode:
12453 : if (pattern1120 (x2,
12454 : E_V16BFmode,
12455 : E_HImode) != 0
12456 : || !(
12457 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12458 : (TARGET_AVX512F) &&
12459 : #line 32805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12460 : (TARGET_AVX10_2)))
12461 : return -1;
12462 : return 10662; /* avx10_2_scalefbf16_v16bf_mask */
12463 :
12464 : case E_V8BFmode:
12465 : if (pattern1120 (x2,
12466 : E_V8BFmode,
12467 : E_QImode) != 0
12468 : || !(
12469 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12470 : (TARGET_AVX512F) &&
12471 : #line 32805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12472 : (TARGET_AVX10_2)))
12473 : return -1;
12474 : return 10664; /* avx10_2_scalefbf16_v8bf_mask */
12475 :
12476 : default:
12477 : return -1;
12478 : }
12479 :
12480 : case 260:
12481 : switch (pattern471 (x2))
12482 : {
12483 : case 0:
12484 : if (!(
12485 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12486 : (TARGET_AVX512F) &&
12487 : #line 33146 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12488 : (TARGET_AVX10_2)))
12489 : return -1;
12490 : return 10774; /* avx10_2_rndscalebf16_v32bf_mask */
12491 :
12492 : case 1:
12493 : if (!(
12494 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12495 : (TARGET_AVX512F) &&
12496 : #line 33146 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12497 : (TARGET_AVX10_2)))
12498 : return -1;
12499 : return 10780; /* avx10_2_rndscalebf16_v16bf_mask */
12500 :
12501 : case 2:
12502 : if (!(
12503 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12504 : (TARGET_AVX512F) &&
12505 : #line 33146 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12506 : (TARGET_AVX10_2)))
12507 : return -1;
12508 : return 10786; /* avx10_2_rndscalebf16_v8bf_mask */
12509 :
12510 : default:
12511 : return -1;
12512 : }
12513 :
12514 : case 261:
12515 : switch (pattern471 (x2))
12516 : {
12517 : case 0:
12518 : if (!(
12519 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12520 : (TARGET_AVX512F) &&
12521 : #line 33146 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12522 : (TARGET_AVX10_2)))
12523 : return -1;
12524 : return 10776; /* avx10_2_reducebf16_v32bf_mask */
12525 :
12526 : case 1:
12527 : if (!(
12528 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12529 : (TARGET_AVX512F) &&
12530 : #line 33146 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12531 : (TARGET_AVX10_2)))
12532 : return -1;
12533 : return 10782; /* avx10_2_reducebf16_v16bf_mask */
12534 :
12535 : case 2:
12536 : if (!(
12537 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12538 : (TARGET_AVX512F) &&
12539 : #line 33146 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12540 : (TARGET_AVX10_2)))
12541 : return -1;
12542 : return 10788; /* avx10_2_reducebf16_v8bf_mask */
12543 :
12544 : default:
12545 : return -1;
12546 : }
12547 :
12548 : case 262:
12549 : switch (pattern471 (x2))
12550 : {
12551 : case 0:
12552 : if (!(
12553 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12554 : (TARGET_AVX512F) &&
12555 : #line 33146 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12556 : (TARGET_AVX10_2)))
12557 : return -1;
12558 : return 10778; /* avx10_2_getmantbf16_v32bf_mask */
12559 :
12560 : case 1:
12561 : if (!(
12562 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12563 : (TARGET_AVX512F) &&
12564 : #line 33146 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12565 : (TARGET_AVX10_2)))
12566 : return -1;
12567 : return 10784; /* avx10_2_getmantbf16_v16bf_mask */
12568 :
12569 : case 2:
12570 : if (!(
12571 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12572 : (TARGET_AVX512F) &&
12573 : #line 33146 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12574 : (TARGET_AVX10_2)))
12575 : return -1;
12576 : return 10790; /* avx10_2_getmantbf16_v8bf_mask */
12577 :
12578 : default:
12579 : return -1;
12580 : }
12581 :
12582 : default:
12583 : return -1;
12584 : }
12585 : }
12586 :
12587 : int
12588 : recog_184 (rtx x1 ATTRIBUTE_UNUSED,
12589 : rtx_insn *insn ATTRIBUTE_UNUSED,
12590 : int *pnum_clobbers ATTRIBUTE_UNUSED)
12591 : {
12592 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
12593 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
12594 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
12595 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
12596 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
12597 : rtx x34, x35, x36, x37, x38, x39, x40, x41;
12598 : rtx x42, x43, x44, x45, x46, x47, x48, x49;
12599 : rtx x50, x51, x52, x53, x54, x55, x56, x57;
12600 : rtx x58, x59, x60, x61;
12601 : int res ATTRIBUTE_UNUSED;
12602 : x2 = XEXP (x1, 1);
12603 : x3 = XEXP (x2, 0);
12604 : x4 = XEXP (x3, 1);
12605 : if (GET_CODE (x4) != PARALLEL)
12606 : return -1;
12607 : x5 = XEXP (x3, 0);
12608 : switch (GET_CODE (x5))
12609 : {
12610 : case VEC_CONCAT:
12611 : x6 = XEXP (x5, 0);
12612 : switch (GET_CODE (x6))
12613 : {
12614 : case REG:
12615 : case SUBREG:
12616 : case MEM:
12617 : return recog_170 (x1, insn, pnum_clobbers);
12618 :
12619 : case SS_TRUNCATE:
12620 : x7 = XEXP (x5, 1);
12621 : if (GET_CODE (x7) != SS_TRUNCATE)
12622 : return -1;
12623 : x8 = XEXP (x6, 0);
12624 : operands[1] = x8;
12625 : x9 = XEXP (x7, 0);
12626 : operands[2] = x9;
12627 : x10 = XEXP (x2, 1);
12628 : operands[3] = x10;
12629 : x11 = XEXP (x2, 2);
12630 : operands[4] = x11;
12631 : switch (XVECLEN (x4, 0))
12632 : {
12633 : case 32:
12634 : if (pattern682 (x4,
12635 : 3,
12636 : 2,
12637 : 1) != 0
12638 : || pattern1305 (x4) != 0
12639 : || pattern1809 (x4,
12640 : 23,
12641 : 22,
12642 : 21,
12643 : 20) != 0)
12644 : return -1;
12645 : x12 = XVECEXP (x4, 0, 20);
12646 : if (GET_CODE (x12) != CONST_INT)
12647 : return -1;
12648 : x13 = XVECEXP (x4, 0, 21);
12649 : if (GET_CODE (x13) != CONST_INT)
12650 : return -1;
12651 : x14 = XVECEXP (x4, 0, 22);
12652 : if (GET_CODE (x14) != CONST_INT)
12653 : return -1;
12654 : x15 = XVECEXP (x4, 0, 23);
12655 : if (GET_CODE (x15) != CONST_INT)
12656 : return -1;
12657 : x16 = XVECEXP (x4, 0, 24);
12658 : if (GET_CODE (x16) != CONST_INT)
12659 : return -1;
12660 : x17 = XVECEXP (x4, 0, 25);
12661 : if (GET_CODE (x17) != CONST_INT)
12662 : return -1;
12663 : x18 = XVECEXP (x4, 0, 26);
12664 : if (GET_CODE (x18) != CONST_INT)
12665 : return -1;
12666 : x19 = XVECEXP (x4, 0, 27);
12667 : if (GET_CODE (x19) != CONST_INT
12668 : || pattern1910 (x4,
12669 : 31,
12670 : 30,
12671 : 29,
12672 : 28) != 0
12673 : || !register_operand (operands[4], E_SImode))
12674 : return -1;
12675 : x20 = XVECEXP (x4, 0, 4);
12676 : switch (XWINT (x20, 0))
12677 : {
12678 : case 4L:
12679 : x21 = XVECEXP (x4, 0, 5);
12680 : if (XWINT (x21, 0) != 5L)
12681 : return -1;
12682 : x22 = XVECEXP (x4, 0, 6);
12683 : if (XWINT (x22, 0) != 6L)
12684 : return -1;
12685 : x23 = XVECEXP (x4, 0, 7);
12686 : if (XWINT (x23, 0) != 7L)
12687 : return -1;
12688 : x24 = XVECEXP (x4, 0, 8);
12689 : if (XWINT (x24, 0) != 16L)
12690 : return -1;
12691 : x25 = XVECEXP (x4, 0, 9);
12692 : if (XWINT (x25, 0) != 17L)
12693 : return -1;
12694 : x26 = XVECEXP (x4, 0, 10);
12695 : if (XWINT (x26, 0) != 18L)
12696 : return -1;
12697 : x27 = XVECEXP (x4, 0, 11);
12698 : if (XWINT (x27, 0) != 19L
12699 : || XWINT (x12, 0) != 12L
12700 : || XWINT (x13, 0) != 13L
12701 : || XWINT (x14, 0) != 14L
12702 : || XWINT (x15, 0) != 15L
12703 : || XWINT (x16, 0) != 24L
12704 : || XWINT (x17, 0) != 25L
12705 : || XWINT (x18, 0) != 26L
12706 : || XWINT (x19, 0) != 27L
12707 : || pattern1918 (x2,
12708 : E_V32QImode,
12709 : E_V16HImode,
12710 : E_V16QImode) != 0
12711 : || !(
12712 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12713 : (TARGET_AVX512F) &&
12714 : #line 19584 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12715 : (TARGET_AVX2 && TARGET_AVX512VL && TARGET_AVX512BW)))
12716 : return -1;
12717 : return 8348; /* avx2_packsswb_mask */
12718 :
12719 : case 16L:
12720 : x21 = XVECEXP (x4, 0, 5);
12721 : if (XWINT (x21, 0) != 17L)
12722 : return -1;
12723 : x22 = XVECEXP (x4, 0, 6);
12724 : if (XWINT (x22, 0) != 18L)
12725 : return -1;
12726 : x23 = XVECEXP (x4, 0, 7);
12727 : if (XWINT (x23, 0) != 19L)
12728 : return -1;
12729 : x24 = XVECEXP (x4, 0, 8);
12730 : if (XWINT (x24, 0) != 4L)
12731 : return -1;
12732 : x25 = XVECEXP (x4, 0, 9);
12733 : if (XWINT (x25, 0) != 5L)
12734 : return -1;
12735 : x26 = XVECEXP (x4, 0, 10);
12736 : if (XWINT (x26, 0) != 6L)
12737 : return -1;
12738 : x27 = XVECEXP (x4, 0, 11);
12739 : if (XWINT (x27, 0) != 7L
12740 : || XWINT (x12, 0) != 24L
12741 : || XWINT (x13, 0) != 25L
12742 : || XWINT (x14, 0) != 26L
12743 : || XWINT (x15, 0) != 27L
12744 : || XWINT (x16, 0) != 12L
12745 : || XWINT (x17, 0) != 13L
12746 : || XWINT (x18, 0) != 14L
12747 : || XWINT (x19, 0) != 15L
12748 : || pattern1918 (x2,
12749 : E_V32HImode,
12750 : E_V16SImode,
12751 : E_V16HImode) != 0
12752 : || !(
12753 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12754 : (TARGET_AVX512F) &&
12755 : #line 19700 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12756 : (TARGET_AVX512BW)))
12757 : return -1;
12758 : return 8356; /* avx512bw_packssdw_mask */
12759 :
12760 : default:
12761 : return -1;
12762 : }
12763 :
12764 : case 64:
12765 : if (pattern681 (x4) != 0
12766 : || pattern1307 (x4,
12767 : 35,
12768 : 34,
12769 : 33,
12770 : 32) != 0
12771 : || pattern1809 (x4,
12772 : 39,
12773 : 38,
12774 : 37,
12775 : 36) != 0)
12776 : return -1;
12777 : x12 = XVECEXP (x4, 0, 20);
12778 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
12779 : return -1;
12780 : x13 = XVECEXP (x4, 0, 21);
12781 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 13])
12782 : return -1;
12783 : x14 = XVECEXP (x4, 0, 22);
12784 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 14])
12785 : return -1;
12786 : x15 = XVECEXP (x4, 0, 23);
12787 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 15])
12788 : return -1;
12789 : x16 = XVECEXP (x4, 0, 24);
12790 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 40])
12791 : return -1;
12792 : x17 = XVECEXP (x4, 0, 25);
12793 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 41])
12794 : return -1;
12795 : x18 = XVECEXP (x4, 0, 26);
12796 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 42])
12797 : return -1;
12798 : x19 = XVECEXP (x4, 0, 27);
12799 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 43]
12800 : || pattern1910 (x4,
12801 : 47,
12802 : 46,
12803 : 45,
12804 : 44) != 0)
12805 : return -1;
12806 : x28 = XVECEXP (x4, 0, 32);
12807 : if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
12808 : return -1;
12809 : x29 = XVECEXP (x4, 0, 33);
12810 : if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 17])
12811 : return -1;
12812 : x30 = XVECEXP (x4, 0, 34);
12813 : if (x30 != const_int_rtx[MAX_SAVED_CONST_INT + 18])
12814 : return -1;
12815 : x31 = XVECEXP (x4, 0, 35);
12816 : if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 19])
12817 : return -1;
12818 : x32 = XVECEXP (x4, 0, 36);
12819 : if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 20])
12820 : return -1;
12821 : x33 = XVECEXP (x4, 0, 37);
12822 : if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 21])
12823 : return -1;
12824 : x34 = XVECEXP (x4, 0, 38);
12825 : if (x34 != const_int_rtx[MAX_SAVED_CONST_INT + 22])
12826 : return -1;
12827 : x35 = XVECEXP (x4, 0, 39);
12828 : if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + 23])
12829 : return -1;
12830 : x36 = XVECEXP (x4, 0, 40);
12831 : if (x36 != const_int_rtx[MAX_SAVED_CONST_INT + 48])
12832 : return -1;
12833 : x37 = XVECEXP (x4, 0, 41);
12834 : if (x37 != const_int_rtx[MAX_SAVED_CONST_INT + 49])
12835 : return -1;
12836 : x38 = XVECEXP (x4, 0, 42);
12837 : if (x38 != const_int_rtx[MAX_SAVED_CONST_INT + 50])
12838 : return -1;
12839 : x39 = XVECEXP (x4, 0, 43);
12840 : if (x39 != const_int_rtx[MAX_SAVED_CONST_INT + 51])
12841 : return -1;
12842 : x40 = XVECEXP (x4, 0, 44);
12843 : if (x40 != const_int_rtx[MAX_SAVED_CONST_INT + 52])
12844 : return -1;
12845 : x41 = XVECEXP (x4, 0, 45);
12846 : if (x41 != const_int_rtx[MAX_SAVED_CONST_INT + 53])
12847 : return -1;
12848 : x42 = XVECEXP (x4, 0, 46);
12849 : if (x42 != const_int_rtx[MAX_SAVED_CONST_INT + 54])
12850 : return -1;
12851 : x43 = XVECEXP (x4, 0, 47);
12852 : if (x43 != const_int_rtx[MAX_SAVED_CONST_INT + 55])
12853 : return -1;
12854 : x44 = XVECEXP (x4, 0, 48);
12855 : if (x44 != const_int_rtx[MAX_SAVED_CONST_INT + 24])
12856 : return -1;
12857 : x45 = XVECEXP (x4, 0, 49);
12858 : if (x45 != const_int_rtx[MAX_SAVED_CONST_INT + 25])
12859 : return -1;
12860 : x46 = XVECEXP (x4, 0, 50);
12861 : if (x46 != const_int_rtx[MAX_SAVED_CONST_INT + 26])
12862 : return -1;
12863 : x47 = XVECEXP (x4, 0, 51);
12864 : if (x47 != const_int_rtx[MAX_SAVED_CONST_INT + 27])
12865 : return -1;
12866 : x48 = XVECEXP (x4, 0, 52);
12867 : if (x48 != const_int_rtx[MAX_SAVED_CONST_INT + 28])
12868 : return -1;
12869 : x49 = XVECEXP (x4, 0, 53);
12870 : if (x49 != const_int_rtx[MAX_SAVED_CONST_INT + 29])
12871 : return -1;
12872 : x50 = XVECEXP (x4, 0, 54);
12873 : if (x50 != const_int_rtx[MAX_SAVED_CONST_INT + 30])
12874 : return -1;
12875 : x51 = XVECEXP (x4, 0, 55);
12876 : if (x51 != const_int_rtx[MAX_SAVED_CONST_INT + 31])
12877 : return -1;
12878 : x52 = XVECEXP (x4, 0, 56);
12879 : if (x52 != const_int_rtx[MAX_SAVED_CONST_INT + 56])
12880 : return -1;
12881 : x53 = XVECEXP (x4, 0, 57);
12882 : if (x53 != const_int_rtx[MAX_SAVED_CONST_INT + 57])
12883 : return -1;
12884 : x54 = XVECEXP (x4, 0, 58);
12885 : if (x54 != const_int_rtx[MAX_SAVED_CONST_INT + 58])
12886 : return -1;
12887 : x55 = XVECEXP (x4, 0, 59);
12888 : if (x55 != const_int_rtx[MAX_SAVED_CONST_INT + 59])
12889 : return -1;
12890 : x56 = XVECEXP (x4, 0, 60);
12891 : if (x56 != const_int_rtx[MAX_SAVED_CONST_INT + 60])
12892 : return -1;
12893 : x57 = XVECEXP (x4, 0, 61);
12894 : if (x57 != const_int_rtx[MAX_SAVED_CONST_INT + 61])
12895 : return -1;
12896 : x58 = XVECEXP (x4, 0, 62);
12897 : if (x58 != const_int_rtx[MAX_SAVED_CONST_INT + 62])
12898 : return -1;
12899 : x59 = XVECEXP (x4, 0, 63);
12900 : if (x59 != const_int_rtx[MAX_SAVED_CONST_INT + 63]
12901 : || pattern1859 (x2,
12902 : E_DImode,
12903 : E_V64QImode,
12904 : E_V32HImode,
12905 : E_V32QImode) != 0
12906 : || !(
12907 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12908 : (TARGET_AVX512F) &&
12909 : #line 19631 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12910 : (TARGET_AVX512BW)))
12911 : return -1;
12912 : return 8350; /* avx512bw_packsswb_mask */
12913 :
12914 : case 16:
12915 : if (pattern795 (x4,
12916 : 10,
12917 : 9,
12918 : 8) != 0
12919 : || pattern1490 (x4,
12920 : 7,
12921 : 6,
12922 : 5,
12923 : 4,
12924 : 11) != 0
12925 : || pattern1859 (x2,
12926 : E_HImode,
12927 : E_V16HImode,
12928 : E_V8SImode,
12929 : E_V8HImode) != 0
12930 : || !(
12931 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12932 : (TARGET_AVX512F) &&
12933 : #line 19670 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12934 : (TARGET_AVX2 && TARGET_AVX512VL && TARGET_AVX512BW)))
12935 : return -1;
12936 : return 8354; /* avx2_packssdw_mask */
12937 :
12938 : default:
12939 : return -1;
12940 : }
12941 :
12942 : default:
12943 : return -1;
12944 : }
12945 :
12946 : case REG:
12947 : case SUBREG:
12948 : case MEM:
12949 : operands[1] = x5;
12950 : switch (XVECLEN (x4, 0))
12951 : {
12952 : case 2:
12953 : res = recog_171 (x1, insn, pnum_clobbers);
12954 : if (res >= 0)
12955 : return res;
12956 : break;
12957 :
12958 : case 4:
12959 : res = recog_173 (x1, insn, pnum_clobbers);
12960 : if (res >= 0)
12961 : return res;
12962 : break;
12963 :
12964 : case 8:
12965 : res = recog_177 (x1, insn, pnum_clobbers);
12966 : if (res >= 0)
12967 : return res;
12968 : break;
12969 :
12970 : case 16:
12971 : res = recog_180 (x1, insn, pnum_clobbers);
12972 : if (res >= 0)
12973 : return res;
12974 : break;
12975 :
12976 : default:
12977 : break;
12978 : }
12979 : if (XVECLEN (x4, 0) >= 1)
12980 : {
12981 : operands[2] = x4;
12982 : x60 = XVECEXP (x4, 0, 0);
12983 : operands[3] = x60;
12984 : if (const_int_operand (operands[3], E_VOIDmode))
12985 : {
12986 : x10 = XEXP (x2, 1);
12987 : operands[4] = x10;
12988 : x11 = XEXP (x2, 2);
12989 : operands[5] = x11;
12990 : switch (GET_MODE (operands[0]))
12991 : {
12992 : case E_V16SImode:
12993 : if (pattern1405 (x2,
12994 : E_V16SImode,
12995 : E_HImode) == 0
12996 : && (
12997 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12998 : (TARGET_AVX512F) && (
12999 : #line 28187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13000 : (TARGET_AVX && (64 == 64 || TARGET_AVX512VL)
13001 : && avx_vpermilp_parallel (operands[2], V16SImode)) &&
13002 : #line 311 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13003 : (TARGET_AVX512F))))
13004 : return 9212; /* *avx512f_vpermilpv16si_mask */
13005 : break;
13006 :
13007 : case E_V8SImode:
13008 : if (pattern1405 (x2,
13009 : E_V8SImode,
13010 : E_QImode) == 0
13011 : && (
13012 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13013 : (TARGET_AVX512F) && (
13014 : #line 28187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13015 : (TARGET_AVX && (32 == 64 || TARGET_AVX512VL)
13016 : && avx_vpermilp_parallel (operands[2], V8SImode)) &&
13017 : #line 311 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13018 : (TARGET_AVX))))
13019 : return 9214; /* *avx_vpermilpv8si_mask */
13020 : break;
13021 :
13022 : case E_V4SImode:
13023 : if (pattern1405 (x2,
13024 : E_V4SImode,
13025 : E_QImode) == 0
13026 : && (
13027 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13028 : (TARGET_AVX512F) &&
13029 : #line 28187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13030 : (TARGET_AVX && (16 == 64 || TARGET_AVX512VL)
13031 : && avx_vpermilp_parallel (operands[2], V4SImode))))
13032 : return 9216; /* *sse2_vpermilpv4si_mask */
13033 : break;
13034 :
13035 : case E_V8DImode:
13036 : if (pattern1405 (x2,
13037 : E_V8DImode,
13038 : E_QImode) == 0
13039 : && (
13040 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13041 : (TARGET_AVX512F) && (
13042 : #line 28187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13043 : (TARGET_AVX && (64 == 64 || TARGET_AVX512VL)
13044 : && avx_vpermilp_parallel (operands[2], V8DImode)) &&
13045 : #line 312 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13046 : (TARGET_AVX512F))))
13047 : return 9218; /* *avx512f_vpermilpv8di_mask */
13048 : break;
13049 :
13050 : case E_V4DImode:
13051 : if (pattern1405 (x2,
13052 : E_V4DImode,
13053 : E_QImode) == 0
13054 : && (
13055 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13056 : (TARGET_AVX512F) && (
13057 : #line 28187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13058 : (TARGET_AVX && (32 == 64 || TARGET_AVX512VL)
13059 : && avx_vpermilp_parallel (operands[2], V4DImode)) &&
13060 : #line 312 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13061 : (TARGET_AVX))))
13062 : return 9220; /* *avx512vl_vpermilpv4di_mask */
13063 : break;
13064 :
13065 : case E_V2DImode:
13066 : if (pattern1405 (x2,
13067 : E_V2DImode,
13068 : E_QImode) == 0
13069 : && (
13070 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13071 : (TARGET_AVX512F) && (
13072 : #line 28187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13073 : (TARGET_AVX && (16 == 64 || TARGET_AVX512VL)
13074 : && avx_vpermilp_parallel (operands[2], V2DImode)) &&
13075 : #line 312 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13076 : (TARGET_SSE2))))
13077 : return 9222; /* *avx512vl_vpermilpv2di_mask */
13078 : break;
13079 :
13080 : case E_V16SFmode:
13081 : if (pattern1405 (x2,
13082 : E_V16SFmode,
13083 : E_HImode) == 0
13084 : && (
13085 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13086 : (TARGET_AVX512F) && (
13087 : #line 28187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13088 : (TARGET_AVX && (64 == 64 || TARGET_AVX512VL)
13089 : && avx_vpermilp_parallel (operands[2], V16SFmode)) &&
13090 : #line 313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13091 : (TARGET_AVX512F))))
13092 : return 9224; /* *avx512f_vpermilpv16sf_mask */
13093 : break;
13094 :
13095 : case E_V8SFmode:
13096 : if (pattern1405 (x2,
13097 : E_V8SFmode,
13098 : E_QImode) == 0
13099 : && (
13100 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13101 : (TARGET_AVX512F) && (
13102 : #line 28187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13103 : (TARGET_AVX && (32 == 64 || TARGET_AVX512VL)
13104 : && avx_vpermilp_parallel (operands[2], V8SFmode)) &&
13105 : #line 313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13106 : (TARGET_AVX))))
13107 : return 9226; /* *avx_vpermilpv8sf_mask */
13108 : break;
13109 :
13110 : case E_V4SFmode:
13111 : if (pattern1405 (x2,
13112 : E_V4SFmode,
13113 : E_QImode) == 0
13114 : && (
13115 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13116 : (TARGET_AVX512F) &&
13117 : #line 28187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13118 : (TARGET_AVX && (16 == 64 || TARGET_AVX512VL)
13119 : && avx_vpermilp_parallel (operands[2], V4SFmode))))
13120 : return 9228; /* *avx_vpermilpv4sf_mask */
13121 : break;
13122 :
13123 : case E_V8DFmode:
13124 : if (pattern1405 (x2,
13125 : E_V8DFmode,
13126 : E_QImode) == 0
13127 : && (
13128 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13129 : (TARGET_AVX512F) && (
13130 : #line 28187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13131 : (TARGET_AVX && (64 == 64 || TARGET_AVX512VL)
13132 : && avx_vpermilp_parallel (operands[2], V8DFmode)) &&
13133 : #line 314 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13134 : (TARGET_AVX512F))))
13135 : return 9230; /* *avx512f_vpermilpv8df_mask */
13136 : break;
13137 :
13138 : case E_V4DFmode:
13139 : if (pattern1405 (x2,
13140 : E_V4DFmode,
13141 : E_QImode) == 0
13142 : && (
13143 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13144 : (TARGET_AVX512F) && (
13145 : #line 28187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13146 : (TARGET_AVX && (32 == 64 || TARGET_AVX512VL)
13147 : && avx_vpermilp_parallel (operands[2], V4DFmode)) &&
13148 : #line 314 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13149 : (TARGET_AVX))))
13150 : return 9232; /* *avx_vpermilpv4df_mask */
13151 : break;
13152 :
13153 : case E_V2DFmode:
13154 : if (pattern1405 (x2,
13155 : E_V2DFmode,
13156 : E_QImode) == 0
13157 : && (
13158 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13159 : (TARGET_AVX512F) && (
13160 : #line 28187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13161 : (TARGET_AVX && (16 == 64 || TARGET_AVX512VL)
13162 : && avx_vpermilp_parallel (operands[2], V2DFmode)) &&
13163 : #line 314 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13164 : (TARGET_SSE2))))
13165 : return 9234; /* *avx_vpermilpv2df_mask */
13166 : break;
13167 :
13168 : default:
13169 : break;
13170 : }
13171 : }
13172 : }
13173 : x11 = XEXP (x2, 2);
13174 : if (!register_operand (x11, E_QImode))
13175 : return -1;
13176 : switch (XVECLEN (x4, 0))
13177 : {
13178 : case 4:
13179 : x60 = XVECEXP (x4, 0, 0);
13180 : operands[2] = x60;
13181 : if (pattern1022 (x4) != 0)
13182 : return -1;
13183 : x10 = XEXP (x2, 1);
13184 : operands[6] = x10;
13185 : operands[7] = x11;
13186 : switch (GET_MODE (operands[0]))
13187 : {
13188 : case E_V4DImode:
13189 : if (pattern1690 (x2,
13190 : E_V4DImode) != 0
13191 : || !(
13192 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13193 : (TARGET_AVX512F) &&
13194 : #line 28241 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13195 : (TARGET_AVX2 && (32 == 64 || TARGET_AVX512VL))))
13196 : return -1;
13197 : return 9236; /* avx2_permv4di_1_mask */
13198 :
13199 : case E_V4DFmode:
13200 : if (pattern1690 (x2,
13201 : E_V4DFmode) != 0
13202 : || !(
13203 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13204 : (TARGET_AVX512F) &&
13205 : #line 28241 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13206 : (TARGET_AVX2 && (32 == 64 || TARGET_AVX512VL))))
13207 : return -1;
13208 : return 9238; /* avx2_permv4df_1_mask */
13209 :
13210 : default:
13211 : return -1;
13212 : }
13213 :
13214 : case 8:
13215 : x60 = XVECEXP (x4, 0, 0);
13216 : operands[2] = x60;
13217 : if (pattern1022 (x4) != 0)
13218 : return -1;
13219 : x20 = XVECEXP (x4, 0, 4);
13220 : operands[6] = x20;
13221 : if (!const_4_to_7_operand (operands[6], E_VOIDmode))
13222 : return -1;
13223 : x21 = XVECEXP (x4, 0, 5);
13224 : operands[7] = x21;
13225 : if (!const_4_to_7_operand (operands[7], E_VOIDmode))
13226 : return -1;
13227 : x22 = XVECEXP (x4, 0, 6);
13228 : operands[8] = x22;
13229 : if (!const_4_to_7_operand (operands[8], E_VOIDmode))
13230 : return -1;
13231 : x23 = XVECEXP (x4, 0, 7);
13232 : operands[9] = x23;
13233 : if (!const_4_to_7_operand (operands[9], E_VOIDmode))
13234 : return -1;
13235 : x10 = XEXP (x2, 1);
13236 : operands[10] = x10;
13237 : operands[11] = x11;
13238 : switch (GET_MODE (operands[0]))
13239 : {
13240 : case E_V8DFmode:
13241 : if (pattern1857 (x2,
13242 : E_V8DFmode) != 0
13243 : || !(
13244 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13245 : (TARGET_AVX512F) &&
13246 : #line 28312 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13247 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL)
13248 : && (INTVAL (operands[2]) == (INTVAL (operands[6]) - 4)
13249 : && INTVAL (operands[3]) == (INTVAL (operands[7]) - 4)
13250 : && INTVAL (operands[4]) == (INTVAL (operands[8]) - 4)
13251 : && INTVAL (operands[5]) == (INTVAL (operands[9]) - 4)))))
13252 : return -1;
13253 : return 9240; /* avx512f_permv8df_1_mask */
13254 :
13255 : case E_V8DImode:
13256 : if (pattern1857 (x2,
13257 : E_V8DImode) != 0
13258 : || !(
13259 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13260 : (TARGET_AVX512F) &&
13261 : #line 28312 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13262 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL)
13263 : && (INTVAL (operands[2]) == (INTVAL (operands[6]) - 4)
13264 : && INTVAL (operands[3]) == (INTVAL (operands[7]) - 4)
13265 : && INTVAL (operands[4]) == (INTVAL (operands[8]) - 4)
13266 : && INTVAL (operands[5]) == (INTVAL (operands[9]) - 4)))))
13267 : return -1;
13268 : return 9242; /* avx512f_permv8di_1_mask */
13269 :
13270 : default:
13271 : return -1;
13272 : }
13273 :
13274 : default:
13275 : return -1;
13276 : }
13277 :
13278 : case UNSPEC:
13279 : if (XVECLEN (x5, 0) != 1
13280 : || XINT (x5, 1) != 150
13281 : || GET_MODE (x5) != E_V8SFmode
13282 : || XVECLEN (x4, 0) != 4
13283 : || pattern682 (x4,
13284 : 3,
13285 : 2,
13286 : 1) != 0
13287 : || !register_operand (operands[0], E_V4SFmode)
13288 : || GET_MODE (x2) != E_V4SFmode
13289 : || GET_MODE (x3) != E_V4SFmode)
13290 : return -1;
13291 : x61 = XVECEXP (x5, 0, 0);
13292 : operands[1] = x61;
13293 : if (!register_operand (operands[1], E_V8HImode))
13294 : return -1;
13295 : x10 = XEXP (x2, 1);
13296 : operands[2] = x10;
13297 : if (!nonimm_or_0_operand (operands[2], E_V4SFmode))
13298 : return -1;
13299 : x11 = XEXP (x2, 2);
13300 : operands[3] = x11;
13301 : if (!register_operand (operands[3], E_QImode)
13302 : || !(
13303 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13304 : (TARGET_AVX512F) &&
13305 : #line 29778 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13306 : (TARGET_F16C || TARGET_AVX512VL)))
13307 : return -1;
13308 : return 9721; /* vcvtph2ps_mask */
13309 :
13310 : default:
13311 : return -1;
13312 : }
13313 : }
13314 :
13315 : int
13316 : recog_199 (rtx x1 ATTRIBUTE_UNUSED,
13317 : rtx_insn *insn ATTRIBUTE_UNUSED,
13318 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13319 : {
13320 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13321 : rtx x2, x3, x4, x5, x6, x7;
13322 : int res ATTRIBUTE_UNUSED;
13323 : x2 = XEXP (x1, 1);
13324 : x3 = XEXP (x2, 0);
13325 : x4 = XEXP (x3, 0);
13326 : operands[1] = x4;
13327 : x5 = XEXP (x3, 1);
13328 : operands[2] = x5;
13329 : x6 = XEXP (x2, 1);
13330 : operands[3] = x6;
13331 : x7 = XEXP (x2, 2);
13332 : operands[4] = x7;
13333 : switch (GET_CODE (operands[2]))
13334 : {
13335 : case REG:
13336 : case SUBREG:
13337 : case MEM:
13338 : case VEC_DUPLICATE:
13339 : switch (GET_MODE (operands[0]))
13340 : {
13341 : case E_V8SFmode:
13342 : if (pattern133 (x2,
13343 : E_V8SFmode,
13344 : E_QImode) != 0
13345 : || !(
13346 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13347 : (TARGET_AVX512F) && (
13348 : #line 5717 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13349 : (TARGET_SSE && TARGET_AVX512VL
13350 : && (!true || 32 != 16)
13351 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
13352 : #line 432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13353 : (TARGET_AVX))))
13354 : return -1;
13355 : return 3799; /* *xorv8sf3_mask */
13356 :
13357 : case E_V4SFmode:
13358 : if (pattern133 (x2,
13359 : E_V4SFmode,
13360 : E_QImode) != 0
13361 : || !(
13362 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13363 : (TARGET_AVX512F) &&
13364 : #line 5717 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13365 : (TARGET_SSE && TARGET_AVX512VL
13366 : && (!true || 32 != 16)
13367 : && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
13368 : return -1;
13369 : return 3805; /* *xorv4sf3_mask */
13370 :
13371 : case E_V4DFmode:
13372 : if (pattern133 (x2,
13373 : E_V4DFmode,
13374 : E_QImode) != 0
13375 : || !(
13376 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13377 : (TARGET_AVX512F) && (
13378 : #line 5717 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13379 : (TARGET_SSE && TARGET_AVX512VL
13380 : && (!true || 64 != 16)
13381 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
13382 : #line 433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13383 : (TARGET_AVX))))
13384 : return -1;
13385 : return 3811; /* *xorv4df3_mask */
13386 :
13387 : case E_V2DFmode:
13388 : if (pattern133 (x2,
13389 : E_V2DFmode,
13390 : E_QImode) != 0
13391 : || !(
13392 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13393 : (TARGET_AVX512F) && (
13394 : #line 5717 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13395 : (TARGET_SSE && TARGET_AVX512VL
13396 : && (!true || 64 != 16)
13397 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
13398 : #line 433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13399 : (TARGET_SSE2))))
13400 : return -1;
13401 : return 3817; /* *xorv2df3_mask */
13402 :
13403 : case E_V16SFmode:
13404 : if (pattern134 (x2,
13405 : E_V16SFmode,
13406 : E_HImode) != 0
13407 : || !(
13408 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13409 : (TARGET_AVX512F) &&
13410 : #line 5787 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13411 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13412 : && (!true || 32 != 16))))
13413 : return -1;
13414 : return 3829; /* *xorv16sf3_mask */
13415 :
13416 : case E_V8DFmode:
13417 : if (pattern134 (x2,
13418 : E_V8DFmode,
13419 : E_QImode) != 0
13420 : || !(
13421 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13422 : (TARGET_AVX512F) &&
13423 : #line 5787 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13424 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13425 : && (!true || 64 != 16))))
13426 : return -1;
13427 : return 3835; /* *xorv8df3_mask */
13428 :
13429 : case E_V16SImode:
13430 : if (pattern489 (x2,
13431 : E_V16SImode,
13432 : E_HImode) != 0
13433 : || !(
13434 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13435 : (TARGET_AVX512F) && (
13436 : #line 19069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13437 : (TARGET_SSE && (64 == 64 || TARGET_AVX512VL)
13438 : && ix86_binary_operator_ok (XOR, V16SImode, operands)) &&
13439 : #line 799 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13440 : (TARGET_AVX512F))))
13441 : return -1;
13442 : return 8053; /* *xorv16si3_mask */
13443 :
13444 : case E_V8SImode:
13445 : if (pattern489 (x2,
13446 : E_V8SImode,
13447 : E_QImode) != 0
13448 : || !(
13449 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13450 : (TARGET_AVX512F) && (
13451 : #line 19069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13452 : (TARGET_SSE && (32 == 64 || TARGET_AVX512VL)
13453 : && ix86_binary_operator_ok (XOR, V8SImode, operands)) &&
13454 : #line 799 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13455 : (TARGET_AVX))))
13456 : return -1;
13457 : return 8059; /* *xorv8si3_mask */
13458 :
13459 : case E_V4SImode:
13460 : if (pattern489 (x2,
13461 : E_V4SImode,
13462 : E_QImode) != 0
13463 : || !(
13464 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13465 : (TARGET_AVX512F) &&
13466 : #line 19069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13467 : (TARGET_SSE && (16 == 64 || TARGET_AVX512VL)
13468 : && ix86_binary_operator_ok (XOR, V4SImode, operands))))
13469 : return -1;
13470 : return 8065; /* *xorv4si3_mask */
13471 :
13472 : case E_V8DImode:
13473 : if (pattern489 (x2,
13474 : E_V8DImode,
13475 : E_QImode) != 0
13476 : || !(
13477 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13478 : (TARGET_AVX512F) && (
13479 : #line 19069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13480 : (TARGET_SSE && (64 == 64 || TARGET_AVX512VL)
13481 : && ix86_binary_operator_ok (XOR, V8DImode, operands)) &&
13482 : #line 800 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13483 : (TARGET_AVX512F))))
13484 : return -1;
13485 : return 8071; /* *xorv8di3_mask */
13486 :
13487 : case E_V4DImode:
13488 : if (pattern489 (x2,
13489 : E_V4DImode,
13490 : E_QImode) != 0
13491 : || !(
13492 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13493 : (TARGET_AVX512F) && (
13494 : #line 19069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13495 : (TARGET_SSE && (32 == 64 || TARGET_AVX512VL)
13496 : && ix86_binary_operator_ok (XOR, V4DImode, operands)) &&
13497 : #line 800 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13498 : (TARGET_AVX))))
13499 : return -1;
13500 : return 8077; /* *xorv4di3_mask */
13501 :
13502 : case E_V2DImode:
13503 : if (pattern489 (x2,
13504 : E_V2DImode,
13505 : E_QImode) != 0
13506 : || !(
13507 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13508 : (TARGET_AVX512F) &&
13509 : #line 19069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13510 : (TARGET_SSE && (16 == 64 || TARGET_AVX512VL)
13511 : && ix86_binary_operator_ok (XOR, V2DImode, operands))))
13512 : return -1;
13513 : return 8083; /* *xorv2di3_mask */
13514 :
13515 : default:
13516 : return -1;
13517 : }
13518 :
13519 : case CONST_VECTOR:
13520 : switch (GET_MODE (operands[0]))
13521 : {
13522 : case E_V16SImode:
13523 : if (pattern1021 (x2,
13524 : E_V16SImode,
13525 : E_HImode) != 0
13526 : || !(
13527 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13528 : (TARGET_AVX512F) && (
13529 : #line 18698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13530 : (TARGET_AVX512F
13531 : && (!true
13532 : || SImode == SImode
13533 : || SImode == DImode)) &&
13534 : #line 556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13535 : (TARGET_AVX512F))))
13536 : return -1;
13537 : return 8001; /* one_cmplv16si2_mask */
13538 :
13539 : case E_V8DImode:
13540 : if (pattern1021 (x2,
13541 : E_V8DImode,
13542 : E_QImode) != 0
13543 : || !(
13544 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13545 : (TARGET_AVX512F) && (
13546 : #line 18698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13547 : (TARGET_AVX512F
13548 : && (!true
13549 : || DImode == SImode
13550 : || DImode == DImode)) &&
13551 : #line 556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13552 : (TARGET_AVX512F))))
13553 : return -1;
13554 : return 8003; /* one_cmplv8di2_mask */
13555 :
13556 : case E_V8SImode:
13557 : if (pattern1021 (x2,
13558 : E_V8SImode,
13559 : E_QImode) != 0
13560 : || !(
13561 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13562 : (TARGET_AVX512F) && (
13563 : #line 18698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13564 : (TARGET_AVX512F
13565 : && (!true
13566 : || SImode == SImode
13567 : || SImode == DImode)) &&
13568 : #line 559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13569 : (TARGET_AVX))))
13570 : return -1;
13571 : return 8011; /* one_cmplv8si2_mask */
13572 :
13573 : case E_V4SImode:
13574 : if (pattern1021 (x2,
13575 : E_V4SImode,
13576 : E_QImode) != 0
13577 : || !(
13578 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13579 : (TARGET_AVX512F) &&
13580 : #line 18698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13581 : (TARGET_AVX512F
13582 : && (!true
13583 : || SImode == SImode
13584 : || SImode == DImode))))
13585 : return -1;
13586 : return 8013; /* one_cmplv4si2_mask */
13587 :
13588 : case E_V4DImode:
13589 : if (pattern1021 (x2,
13590 : E_V4DImode,
13591 : E_QImode) != 0
13592 : || !(
13593 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13594 : (TARGET_AVX512F) && (
13595 : #line 18698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13596 : (TARGET_AVX512F
13597 : && (!true
13598 : || DImode == SImode
13599 : || DImode == DImode)) &&
13600 : #line 560 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13601 : (TARGET_AVX))))
13602 : return -1;
13603 : return 8015; /* one_cmplv4di2_mask */
13604 :
13605 : case E_V2DImode:
13606 : if (pattern1021 (x2,
13607 : E_V2DImode,
13608 : E_QImode) != 0
13609 : || !(
13610 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13611 : (TARGET_AVX512F) &&
13612 : #line 18698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13613 : (TARGET_AVX512F
13614 : && (!true
13615 : || DImode == SImode
13616 : || DImode == DImode))))
13617 : return -1;
13618 : return 8017; /* one_cmplv2di2_mask */
13619 :
13620 : default:
13621 : return -1;
13622 : }
13623 :
13624 : default:
13625 : return -1;
13626 : }
13627 : }
13628 :
13629 : int
13630 : recog_208 (rtx x1 ATTRIBUTE_UNUSED,
13631 : rtx_insn *insn ATTRIBUTE_UNUSED,
13632 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13633 : {
13634 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13635 : rtx x2, x3, x4, x5;
13636 : int res ATTRIBUTE_UNUSED;
13637 : x2 = XEXP (x1, 1);
13638 : x3 = XEXP (x2, 0);
13639 : x4 = XEXP (x3, 0);
13640 : operands[1] = x4;
13641 : x5 = XEXP (x3, 1);
13642 : operands[2] = x5;
13643 : switch (pattern490 (x2))
13644 : {
13645 : case 0:
13646 : if (!(
13647 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13648 : (TARGET_AVX512F) && (
13649 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13650 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V32HFmode, operands)
13651 : && (64 == 64 || TARGET_AVX512VL) && 1) &&
13652 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13653 : (TARGET_AVX512FP16))))
13654 : return -1;
13655 : return 2747; /* *addv32hf3_mask */
13656 :
13657 : case 1:
13658 : if (!(
13659 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13660 : (TARGET_AVX512F) && (
13661 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13662 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V16HFmode, operands)
13663 : && (32 == 64 || TARGET_AVX512VL) && 1) &&
13664 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13665 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
13666 : return -1;
13667 : return 2755; /* *addv16hf3_mask */
13668 :
13669 : case 2:
13670 : if (!(
13671 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13672 : (TARGET_AVX512F) && (
13673 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13674 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V8HFmode, operands)
13675 : && (16 == 64 || TARGET_AVX512VL) && 1) &&
13676 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13677 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
13678 : return -1;
13679 : return 2763; /* *addv8hf3_mask */
13680 :
13681 : case 3:
13682 : if (!(
13683 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13684 : (TARGET_AVX512F) && (
13685 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13686 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V16SFmode, operands)
13687 : && (64 == 64 || TARGET_AVX512VL) && 1) &&
13688 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13689 : (TARGET_AVX512F))))
13690 : return -1;
13691 : return 2771; /* *addv16sf3_mask */
13692 :
13693 : case 4:
13694 : if (!(
13695 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13696 : (TARGET_AVX512F) && (
13697 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13698 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V8SFmode, operands)
13699 : && (32 == 64 || TARGET_AVX512VL) && 1) &&
13700 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13701 : (TARGET_AVX))))
13702 : return -1;
13703 : return 2779; /* *addv8sf3_mask */
13704 :
13705 : case 5:
13706 : if (!(
13707 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13708 : (TARGET_AVX512F) &&
13709 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13710 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V4SFmode, operands)
13711 : && (16 == 64 || TARGET_AVX512VL) && 1)))
13712 : return -1;
13713 : return 2787; /* *addv4sf3_mask */
13714 :
13715 : case 6:
13716 : if (!(
13717 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13718 : (TARGET_AVX512F) && (
13719 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13720 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V8DFmode, operands)
13721 : && (64 == 64 || TARGET_AVX512VL) && 1) &&
13722 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13723 : (TARGET_AVX512F))))
13724 : return -1;
13725 : return 2795; /* *addv8df3_mask */
13726 :
13727 : case 7:
13728 : if (!(
13729 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13730 : (TARGET_AVX512F) && (
13731 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13732 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V4DFmode, operands)
13733 : && (32 == 64 || TARGET_AVX512VL) && 1) &&
13734 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13735 : (TARGET_AVX))))
13736 : return -1;
13737 : return 2803; /* *addv4df3_mask */
13738 :
13739 : case 8:
13740 : if (!(
13741 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13742 : (TARGET_AVX512F) && (
13743 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13744 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V2DFmode, operands)
13745 : && (16 == 64 || TARGET_AVX512VL) && 1) &&
13746 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13747 : (TARGET_SSE2))))
13748 : return -1;
13749 : return 2811; /* *addv2df3_mask */
13750 :
13751 : case 9:
13752 : if (!
13753 : #line 16610 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13754 : (TARGET_AVX512F && ix86_binary_operator_ok (PLUS, V16SImode, operands)))
13755 : return -1;
13756 : return 7522; /* *addv16si3_mask */
13757 :
13758 : case 10:
13759 : if (!(
13760 : #line 16610 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13761 : (TARGET_AVX512F && ix86_binary_operator_ok (PLUS, V8SImode, operands)) &&
13762 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13763 : (TARGET_AVX512VL)))
13764 : return -1;
13765 : return 7524; /* *addv8si3_mask */
13766 :
13767 : case 11:
13768 : if (!(
13769 : #line 16610 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13770 : (TARGET_AVX512F && ix86_binary_operator_ok (PLUS, V4SImode, operands)) &&
13771 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13772 : (TARGET_AVX512VL)))
13773 : return -1;
13774 : return 7526; /* *addv4si3_mask */
13775 :
13776 : case 12:
13777 : if (!
13778 : #line 16610 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13779 : (TARGET_AVX512F && ix86_binary_operator_ok (PLUS, V8DImode, operands)))
13780 : return -1;
13781 : return 7528; /* *addv8di3_mask */
13782 :
13783 : case 13:
13784 : if (!(
13785 : #line 16610 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13786 : (TARGET_AVX512F && ix86_binary_operator_ok (PLUS, V4DImode, operands)) &&
13787 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13788 : (TARGET_AVX512VL)))
13789 : return -1;
13790 : return 7530; /* *addv4di3_mask */
13791 :
13792 : case 14:
13793 : if (!(
13794 : #line 16610 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13795 : (TARGET_AVX512F && ix86_binary_operator_ok (PLUS, V2DImode, operands)) &&
13796 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13797 : (TARGET_AVX512VL)))
13798 : return -1;
13799 : return 7532; /* *addv2di3_mask */
13800 :
13801 : case 15:
13802 : if (!
13803 : #line 16624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13804 : (TARGET_AVX512BW && ix86_binary_operator_ok (PLUS, V64QImode, operands)))
13805 : return -1;
13806 : return 7534; /* *addv64qi3_mask */
13807 :
13808 : case 16:
13809 : if (!(
13810 : #line 16624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13811 : (TARGET_AVX512BW && ix86_binary_operator_ok (PLUS, V16QImode, operands)) &&
13812 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13813 : (TARGET_AVX512VL)))
13814 : return -1;
13815 : return 7536; /* *addv16qi3_mask */
13816 :
13817 : case 17:
13818 : if (!(
13819 : #line 16624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13820 : (TARGET_AVX512BW && ix86_binary_operator_ok (PLUS, V32QImode, operands)) &&
13821 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13822 : (TARGET_AVX512VL)))
13823 : return -1;
13824 : return 7538; /* *addv32qi3_mask */
13825 :
13826 : case 18:
13827 : if (!
13828 : #line 16624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13829 : (TARGET_AVX512BW && ix86_binary_operator_ok (PLUS, V32HImode, operands)))
13830 : return -1;
13831 : return 7540; /* *addv32hi3_mask */
13832 :
13833 : case 19:
13834 : if (!(
13835 : #line 16624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13836 : (TARGET_AVX512BW && ix86_binary_operator_ok (PLUS, V16HImode, operands)) &&
13837 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13838 : (TARGET_AVX512VL)))
13839 : return -1;
13840 : return 7542; /* *addv16hi3_mask */
13841 :
13842 : case 20:
13843 : if (!(
13844 : #line 16624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13845 : (TARGET_AVX512BW && ix86_binary_operator_ok (PLUS, V8HImode, operands)) &&
13846 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13847 : (TARGET_AVX512VL)))
13848 : return -1;
13849 : return 7544; /* *addv8hi3_mask */
13850 :
13851 : case 21:
13852 : if (!(
13853 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13854 : (TARGET_AVX512F) &&
13855 : #line 32831 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13856 : (TARGET_AVX10_2)))
13857 : return -1;
13858 : return 10678; /* avx10_2_addbf16_v32bf_mask */
13859 :
13860 : case 22:
13861 : if (!(
13862 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13863 : (TARGET_AVX512F) &&
13864 : #line 32831 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13865 : (TARGET_AVX10_2)))
13866 : return -1;
13867 : return 10686; /* avx10_2_addbf16_v16bf_mask */
13868 :
13869 : case 23:
13870 : if (!(
13871 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13872 : (TARGET_AVX512F) &&
13873 : #line 32831 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13874 : (TARGET_AVX10_2)))
13875 : return -1;
13876 : return 10694; /* avx10_2_addbf16_v8bf_mask */
13877 :
13878 : case 24:
13879 : if (!(
13880 : #line 2733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13881 : (TARGET_SSE) &&
13882 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13883 : (TARGET_AVX512FP16)))
13884 : return -1;
13885 : return 2823; /* avx512fp16_vmaddv8hf3 */
13886 :
13887 : case 25:
13888 : if (!
13889 : #line 2733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13890 : (TARGET_SSE))
13891 : return -1;
13892 : return 2831; /* sse_vmaddv4sf3 */
13893 :
13894 : case 26:
13895 : if (!(
13896 : #line 2733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13897 : (TARGET_SSE) &&
13898 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13899 : (TARGET_SSE2)))
13900 : return -1;
13901 : return 2839; /* sse2_vmaddv2df3 */
13902 :
13903 : default:
13904 : return -1;
13905 : }
13906 : }
13907 :
13908 : int
13909 : recog_225 (rtx x1 ATTRIBUTE_UNUSED,
13910 : rtx_insn *insn ATTRIBUTE_UNUSED,
13911 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13912 : {
13913 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13914 : rtx x2, x3, x4, x5, x6, x7, x8;
13915 : int res ATTRIBUTE_UNUSED;
13916 : x2 = XEXP (x1, 1);
13917 : x3 = XVECEXP (x2, 0, 0);
13918 : x4 = XEXP (x3, 0);
13919 : x5 = XVECEXP (x4, 0, 0);
13920 : operands[1] = x5;
13921 : x6 = XEXP (x3, 1);
13922 : operands[2] = x6;
13923 : x7 = XEXP (x3, 2);
13924 : operands[3] = x7;
13925 : x8 = XVECEXP (x2, 0, 1);
13926 : operands[4] = x8;
13927 : switch (XINT (x4, 1))
13928 : {
13929 : case 157:
13930 : if (!const_4_or_8_to_11_operand (operands[4], E_SImode))
13931 : return -1;
13932 : switch (GET_MODE (operands[0]))
13933 : {
13934 : case E_V32HImode:
13935 : if (pattern1308 (x2,
13936 : E_SImode,
13937 : E_V32HImode,
13938 : E_V32HFmode) != 0
13939 : || !(
13940 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13941 : (TARGET_AVX512F) && (
13942 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13943 : (TARGET_AVX512F) &&
13944 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13945 : (TARGET_AVX512FP16))))
13946 : return -1;
13947 : return 4448; /* avx512fp16_vcvtph2uw_v32hi_mask_round */
13948 :
13949 : case E_V16SImode:
13950 : if (pattern1318 (x2,
13951 : E_V16SImode,
13952 : E_HImode) != 0)
13953 : return -1;
13954 : switch (GET_MODE (operands[1]))
13955 : {
13956 : case E_V16HFmode:
13957 : if (!register_operand (operands[1], E_V16HFmode)
13958 : || !(
13959 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13960 : (TARGET_AVX512F) && (
13961 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13962 : (TARGET_AVX512F) &&
13963 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13964 : (TARGET_AVX512FP16))))
13965 : return -1;
13966 : return 4456; /* avx512fp16_vcvtph2udq_v16si_mask_round */
13967 :
13968 : case E_V16SFmode:
13969 : if (!nonimmediate_operand (operands[1], E_V16SFmode)
13970 : || !
13971 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13972 : (TARGET_AVX512F))
13973 : return -1;
13974 : return 4884; /* avx512f_fixuns_notruncv16sfv16si_mask_round */
13975 :
13976 : default:
13977 : return -1;
13978 : }
13979 :
13980 : case E_V8DImode:
13981 : switch (pattern1485 (x2,
13982 : E_V8DImode))
13983 : {
13984 : case 0:
13985 : if (!(
13986 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13987 : (TARGET_AVX512F) && (
13988 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13989 : (TARGET_AVX512F) &&
13990 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13991 : (TARGET_AVX512FP16))))
13992 : return -1;
13993 : return 4464; /* avx512fp16_vcvtph2uqq_v8di_mask_round */
13994 :
13995 : case 1:
13996 : if (!(
13997 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13998 : (TARGET_AVX512F) && (
13999 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14000 : (TARGET_AVX512F) &&
14001 : #line 9073 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14002 : (TARGET_AVX512DQ && (V8DImode == V16SFmode
14003 : || V8DImode == V8DFmode
14004 : || V8DImode == V8DImode
14005 : || V8DImode == V16SImode
14006 : || V8DImode == V32HFmode)))))
14007 : return -1;
14008 : return 4904; /* avx512dq_cvtps2uqqv8di_mask_round */
14009 :
14010 : case 2:
14011 : if (!(
14012 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14013 : (TARGET_AVX512F) && (
14014 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14015 : (TARGET_AVX512F) &&
14016 : #line 10051 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14017 : (TARGET_AVX512DQ && (V8DFmode == V16SFmode
14018 : || V8DFmode == V8DFmode
14019 : || V8DFmode == V8DImode
14020 : || V8DFmode == V16SImode
14021 : || V8DFmode == V32HFmode)))))
14022 : return -1;
14023 : return 5130; /* fixuns_notruncv8dfv8di2_mask_round */
14024 :
14025 : default:
14026 : return -1;
14027 : }
14028 :
14029 : case E_V16HImode:
14030 : if (pattern1308 (x2,
14031 : E_HImode,
14032 : E_V16HImode,
14033 : E_V16HFmode) != 0
14034 : || !(
14035 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14036 : (TARGET_AVX512F) && (
14037 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14038 : (TARGET_AVX512F) && (
14039 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14040 : (TARGET_AVX512FP16) &&
14041 : #line 751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14042 : (TARGET_AVX512VL)))))
14043 : return -1;
14044 : return 4472; /* avx512fp16_vcvtph2uw_v16hi_mask_round */
14045 :
14046 : case E_V8SImode:
14047 : switch (pattern1485 (x2,
14048 : E_V8SImode))
14049 : {
14050 : case 0:
14051 : if (!(
14052 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14053 : (TARGET_AVX512F) && (
14054 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14055 : (TARGET_AVX512F) && (
14056 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14057 : (TARGET_AVX512FP16) &&
14058 : #line 751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14059 : (TARGET_AVX512VL)))))
14060 : return -1;
14061 : return 4480; /* avx512fp16_vcvtph2udq_v8si_mask_round */
14062 :
14063 : case 1:
14064 : if (!(
14065 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14066 : (TARGET_AVX512F) && (
14067 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14068 : (TARGET_AVX512F) && (
14069 : #line 9040 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14070 : (TARGET_AVX512F) &&
14071 : #line 668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14072 : (TARGET_AVX512VL)))))
14073 : return -1;
14074 : return 4888; /* avx512vl_fixuns_notruncv8sfv8si_mask_round */
14075 :
14076 : case 2:
14077 : if (!
14078 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14079 : (TARGET_AVX512F))
14080 : return -1;
14081 : return 5050; /* fixuns_notruncv8dfv8si2_mask_round */
14082 :
14083 : default:
14084 : return -1;
14085 : }
14086 :
14087 : case E_V4DImode:
14088 : if (pattern1308 (x2,
14089 : E_QImode,
14090 : E_V4DImode,
14091 : E_V8HFmode) != 0
14092 : || !(
14093 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14094 : (TARGET_AVX512F) && (
14095 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14096 : (TARGET_AVX512F) && (
14097 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14098 : (TARGET_AVX512FP16) &&
14099 : #line 752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14100 : (TARGET_AVX512VL)))))
14101 : return -1;
14102 : return 4488; /* avx512fp16_vcvtph2uqq_v4di_mask_round */
14103 :
14104 : case E_V8HImode:
14105 : if (pattern1308 (x2,
14106 : E_QImode,
14107 : E_V8HImode,
14108 : E_V8HFmode) != 0
14109 : || !(
14110 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14111 : (TARGET_AVX512F) && (
14112 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14113 : (TARGET_AVX512F) && (
14114 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14115 : (TARGET_AVX512FP16) &&
14116 : #line 752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14117 : (TARGET_AVX512VL)))))
14118 : return -1;
14119 : return 4496; /* avx512fp16_vcvtph2uw_v8hi_mask_round */
14120 :
14121 : case E_V4SImode:
14122 : if (pattern1318 (x2,
14123 : E_V4SImode,
14124 : E_QImode) != 0)
14125 : return -1;
14126 : switch (GET_MODE (operands[1]))
14127 : {
14128 : case E_V8HFmode:
14129 : if (!register_operand (operands[1], E_V8HFmode)
14130 : || !(
14131 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14132 : (TARGET_AVX512F) && (
14133 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14134 : (TARGET_AVX512F) && (
14135 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14136 : (TARGET_AVX512FP16) &&
14137 : #line 753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14138 : (TARGET_AVX512VL)))))
14139 : return -1;
14140 : return 4504; /* avx512fp16_vcvtph2udq_v4si_mask_round */
14141 :
14142 : case E_V4SFmode:
14143 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
14144 : || !(
14145 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14146 : (TARGET_AVX512F) && (
14147 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14148 : (TARGET_AVX512F) && (
14149 : #line 9040 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14150 : (TARGET_AVX512F) &&
14151 : #line 668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14152 : (TARGET_AVX512VL)))))
14153 : return -1;
14154 : return 4892; /* avx512vl_fixuns_notruncv4sfv4si_mask_round */
14155 :
14156 : case E_V4DFmode:
14157 : if (!nonimmediate_operand (operands[1], E_V4DFmode)
14158 : || !(
14159 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14160 : (TARGET_AVX512F) && (
14161 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14162 : (TARGET_AVX512F) && (
14163 : #line 9832 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14164 : (TARGET_AVX512F) &&
14165 : #line 469 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14166 : (TARGET_AVX512VL)))))
14167 : return -1;
14168 : return 5054; /* fixuns_notruncv4dfv4si2_mask_round */
14169 :
14170 : default:
14171 : return -1;
14172 : }
14173 :
14174 : case E_V2DImode:
14175 : if (pattern1308 (x2,
14176 : E_QImode,
14177 : E_V2DImode,
14178 : E_V8HFmode) != 0
14179 : || !(
14180 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14181 : (TARGET_AVX512F) && (
14182 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14183 : (TARGET_AVX512F) && (
14184 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14185 : (TARGET_AVX512FP16) &&
14186 : #line 753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14187 : (TARGET_AVX512VL)))))
14188 : return -1;
14189 : return 4512; /* avx512fp16_vcvtph2uqq_v2di_mask_round */
14190 :
14191 : default:
14192 : return -1;
14193 : }
14194 :
14195 : case 47:
14196 : if (!const_4_or_8_to_11_operand (operands[4], E_SImode))
14197 : return -1;
14198 : switch (GET_MODE (operands[0]))
14199 : {
14200 : case E_V32HImode:
14201 : if (pattern1308 (x2,
14202 : E_SImode,
14203 : E_V32HImode,
14204 : E_V32HFmode) != 0
14205 : || !(
14206 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14207 : (TARGET_AVX512F) && (
14208 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14209 : (TARGET_AVX512F) &&
14210 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14211 : (TARGET_AVX512FP16))))
14212 : return -1;
14213 : return 4452; /* avx512fp16_vcvtph2w_v32hi_mask_round */
14214 :
14215 : case E_V16SImode:
14216 : switch (pattern1310 (x2))
14217 : {
14218 : case 0:
14219 : if (!(
14220 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14221 : (TARGET_AVX512F) && (
14222 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14223 : (TARGET_AVX512F) &&
14224 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14225 : (TARGET_AVX512FP16))))
14226 : return -1;
14227 : return 4460; /* avx512fp16_vcvtph2dq_v16si_mask_round */
14228 :
14229 : case 1:
14230 : if (!
14231 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14232 : (TARGET_AVX512F))
14233 : return -1;
14234 : return 4880; /* avx512f_fix_notruncv16sfv16si_mask_round */
14235 :
14236 : default:
14237 : return -1;
14238 : }
14239 :
14240 : case E_V8DImode:
14241 : if (pattern1318 (x2,
14242 : E_V8DImode,
14243 : E_QImode) != 0)
14244 : return -1;
14245 : switch (GET_MODE (operands[1]))
14246 : {
14247 : case E_V8HFmode:
14248 : if (!register_operand (operands[1], E_V8HFmode)
14249 : || !(
14250 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14251 : (TARGET_AVX512F) && (
14252 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14253 : (TARGET_AVX512F) &&
14254 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14255 : (TARGET_AVX512FP16))))
14256 : return -1;
14257 : return 4468; /* avx512fp16_vcvtph2qq_v8di_mask_round */
14258 :
14259 : case E_V8SFmode:
14260 : if (!nonimmediate_operand (operands[1], E_V8SFmode)
14261 : || !(
14262 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14263 : (TARGET_AVX512F) && (
14264 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14265 : (TARGET_AVX512F) &&
14266 : #line 9050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14267 : (TARGET_AVX512DQ && (V8DImode == V16SFmode
14268 : || V8DImode == V8DFmode
14269 : || V8DImode == V8DImode
14270 : || V8DImode == V16SImode
14271 : || V8DImode == V32HFmode)))))
14272 : return -1;
14273 : return 4896; /* avx512dq_cvtps2qqv8di_mask_round */
14274 :
14275 : case E_V8DFmode:
14276 : if (!register_operand (operands[1], E_V8DFmode)
14277 : || !(
14278 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14279 : (TARGET_AVX512F) && (
14280 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14281 : (TARGET_AVX512F) &&
14282 : #line 10040 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14283 : (TARGET_AVX512DQ && (V8DFmode == V16SFmode
14284 : || V8DFmode == V8DFmode
14285 : || V8DFmode == V8DImode
14286 : || V8DFmode == V16SImode
14287 : || V8DFmode == V32HFmode)))))
14288 : return -1;
14289 : return 5122; /* fix_notruncv8dfv8di2_mask_round */
14290 :
14291 : default:
14292 : return -1;
14293 : }
14294 :
14295 : case E_V16HImode:
14296 : if (pattern1308 (x2,
14297 : E_HImode,
14298 : E_V16HImode,
14299 : E_V16HFmode) != 0
14300 : || !(
14301 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14302 : (TARGET_AVX512F) && (
14303 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14304 : (TARGET_AVX512F) && (
14305 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14306 : (TARGET_AVX512FP16) &&
14307 : #line 751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14308 : (TARGET_AVX512VL)))))
14309 : return -1;
14310 : return 4476; /* avx512fp16_vcvtph2w_v16hi_mask_round */
14311 :
14312 : case E_V8SImode:
14313 : switch (pattern1309 (x2))
14314 : {
14315 : case 0:
14316 : if (!(
14317 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14318 : (TARGET_AVX512F) && (
14319 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14320 : (TARGET_AVX512F) && (
14321 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14322 : (TARGET_AVX512FP16) &&
14323 : #line 751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14324 : (TARGET_AVX512VL)))))
14325 : return -1;
14326 : return 4484; /* avx512fp16_vcvtph2dq_v8si_mask_round */
14327 :
14328 : case 1:
14329 : if (!
14330 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14331 : (TARGET_AVX512F))
14332 : return -1;
14333 : return 5040; /* avx512f_cvtpd2dq512_mask_round */
14334 :
14335 : default:
14336 : return -1;
14337 : }
14338 :
14339 : case E_V4DImode:
14340 : if (pattern1308 (x2,
14341 : E_QImode,
14342 : E_V4DImode,
14343 : E_V8HFmode) != 0
14344 : || !(
14345 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14346 : (TARGET_AVX512F) && (
14347 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14348 : (TARGET_AVX512F) && (
14349 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14350 : (TARGET_AVX512FP16) &&
14351 : #line 752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14352 : (TARGET_AVX512VL)))))
14353 : return -1;
14354 : return 4492; /* avx512fp16_vcvtph2qq_v4di_mask_round */
14355 :
14356 : case E_V8HImode:
14357 : if (pattern1308 (x2,
14358 : E_QImode,
14359 : E_V8HImode,
14360 : E_V8HFmode) != 0
14361 : || !(
14362 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14363 : (TARGET_AVX512F) && (
14364 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14365 : (TARGET_AVX512F) && (
14366 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14367 : (TARGET_AVX512FP16) &&
14368 : #line 752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14369 : (TARGET_AVX512VL)))))
14370 : return -1;
14371 : return 4500; /* avx512fp16_vcvtph2w_v8hi_mask_round */
14372 :
14373 : case E_V4SImode:
14374 : if (pattern1308 (x2,
14375 : E_QImode,
14376 : E_V4SImode,
14377 : E_V8HFmode) != 0
14378 : || !(
14379 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14380 : (TARGET_AVX512F) && (
14381 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14382 : (TARGET_AVX512F) && (
14383 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14384 : (TARGET_AVX512FP16) &&
14385 : #line 753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14386 : (TARGET_AVX512VL)))))
14387 : return -1;
14388 : return 4508; /* avx512fp16_vcvtph2dq_v4si_mask_round */
14389 :
14390 : case E_V2DImode:
14391 : if (pattern1308 (x2,
14392 : E_QImode,
14393 : E_V2DImode,
14394 : E_V8HFmode) != 0
14395 : || !(
14396 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14397 : (TARGET_AVX512F) && (
14398 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14399 : (TARGET_AVX512F) && (
14400 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14401 : (TARGET_AVX512FP16) &&
14402 : #line 753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14403 : (TARGET_AVX512VL)))))
14404 : return -1;
14405 : return 4516; /* avx512fp16_vcvtph2qq_v2di_mask_round */
14406 :
14407 : default:
14408 : return -1;
14409 : }
14410 :
14411 : case 173:
14412 : switch (pattern1311 (x2))
14413 : {
14414 : case 0:
14415 : if (!(
14416 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14417 : (TARGET_AVX512F) && (
14418 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14419 : (TARGET_AVX512F) && (
14420 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14421 : (TARGET_AVX512FP16) &&
14422 : #line 687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14423 : (TARGET_AVX512VL)))))
14424 : return -1;
14425 : return 4606; /* unspec_avx512fp16_fix_truncv8hi2_mask_round */
14426 :
14427 : case 1:
14428 : if (!(
14429 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14430 : (TARGET_AVX512F) && (
14431 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14432 : (TARGET_AVX512F) && (
14433 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14434 : (TARGET_AVX512FP16) &&
14435 : #line 687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14436 : (TARGET_AVX512VL)))))
14437 : return -1;
14438 : return 4614; /* unspec_avx512fp16_fix_truncv16hi2_mask_round */
14439 :
14440 : case 2:
14441 : if (!(
14442 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14443 : (TARGET_AVX512F) && (
14444 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14445 : (TARGET_AVX512F) &&
14446 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14447 : (TARGET_AVX512FP16))))
14448 : return -1;
14449 : return 4622; /* unspec_avx512fp16_fix_truncv32hi2_mask_round */
14450 :
14451 : case 3:
14452 : if (!(
14453 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14454 : (TARGET_AVX512F) && (
14455 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14456 : (TARGET_AVX512F) && (
14457 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14458 : (TARGET_AVX512FP16) &&
14459 : #line 688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14460 : (TARGET_AVX512VL)))))
14461 : return -1;
14462 : return 4630; /* unspec_avx512fp16_fix_truncv8si2_mask_round */
14463 :
14464 : case 4:
14465 : if (!
14466 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14467 : (TARGET_AVX512F))
14468 : return -1;
14469 : return 5061; /* unspec_fix_truncv8dfv8si2_mask_round */
14470 :
14471 : case 5:
14472 : if (!(
14473 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14474 : (TARGET_AVX512F) && (
14475 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14476 : (TARGET_AVX512F) &&
14477 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14478 : (TARGET_AVX512FP16))))
14479 : return -1;
14480 : return 4638; /* unspec_avx512fp16_fix_truncv16si2_mask_round */
14481 :
14482 : case 6:
14483 : if (!
14484 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14485 : (TARGET_AVX512F))
14486 : return -1;
14487 : return 4912; /* unspec_fix_truncv16sfv16si2_mask_round */
14488 :
14489 : case 7:
14490 : if (!(
14491 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14492 : (TARGET_AVX512F) && (
14493 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14494 : (TARGET_AVX512F) &&
14495 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14496 : (TARGET_AVX512FP16))))
14497 : return -1;
14498 : return 4646; /* unspec_avx512fp16_fix_truncv8di2_mask_round */
14499 :
14500 : case 8:
14501 : if (!(
14502 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14503 : (TARGET_AVX512F) && (
14504 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14505 : (TARGET_AVX512F) &&
14506 : #line 10019 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14507 : (TARGET_AVX512DQ && (V8DFmode == V16SFmode
14508 : || V8DFmode == V8DFmode
14509 : || V8DFmode == V8DImode
14510 : || V8DFmode == V16SImode
14511 : || V8DFmode == V32HFmode)))))
14512 : return -1;
14513 : return 5090; /* unspec_fix_truncv8dfv8di2_mask_round */
14514 :
14515 : case 9:
14516 : if (!(
14517 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14518 : (TARGET_AVX512F) && (
14519 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14520 : (TARGET_AVX512F) &&
14521 : #line 10062 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14522 : (TARGET_AVX512DQ && (V8DImode == V16SFmode
14523 : || V8DImode == V8DFmode
14524 : || V8DImode == V8DImode
14525 : || V8DImode == V16SImode
14526 : || V8DImode == V32HFmode)))))
14527 : return -1;
14528 : return 5138; /* unspec_fix_truncv8sfv8di2_mask_round */
14529 :
14530 : default:
14531 : return -1;
14532 : }
14533 :
14534 : case 174:
14535 : switch (pattern1311 (x2))
14536 : {
14537 : case 0:
14538 : if (!(
14539 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14540 : (TARGET_AVX512F) && (
14541 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14542 : (TARGET_AVX512F) && (
14543 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14544 : (TARGET_AVX512FP16) &&
14545 : #line 687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14546 : (TARGET_AVX512VL)))))
14547 : return -1;
14548 : return 4610; /* unspec_avx512fp16_fixuns_truncv8hi2_mask_round */
14549 :
14550 : case 1:
14551 : if (!(
14552 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14553 : (TARGET_AVX512F) && (
14554 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14555 : (TARGET_AVX512F) && (
14556 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14557 : (TARGET_AVX512FP16) &&
14558 : #line 687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14559 : (TARGET_AVX512VL)))))
14560 : return -1;
14561 : return 4618; /* unspec_avx512fp16_fixuns_truncv16hi2_mask_round */
14562 :
14563 : case 2:
14564 : if (!(
14565 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14566 : (TARGET_AVX512F) && (
14567 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14568 : (TARGET_AVX512F) &&
14569 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14570 : (TARGET_AVX512FP16))))
14571 : return -1;
14572 : return 4626; /* unspec_avx512fp16_fixuns_truncv32hi2_mask_round */
14573 :
14574 : case 3:
14575 : if (!(
14576 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14577 : (TARGET_AVX512F) && (
14578 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14579 : (TARGET_AVX512F) && (
14580 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14581 : (TARGET_AVX512FP16) &&
14582 : #line 688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14583 : (TARGET_AVX512VL)))))
14584 : return -1;
14585 : return 4634; /* unspec_avx512fp16_fixuns_truncv8si2_mask_round */
14586 :
14587 : case 4:
14588 : if (!
14589 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14590 : (TARGET_AVX512F))
14591 : return -1;
14592 : return 5065; /* unspec_fixuns_truncv8dfv8si2_mask_round */
14593 :
14594 : case 5:
14595 : if (!(
14596 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14597 : (TARGET_AVX512F) && (
14598 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14599 : (TARGET_AVX512F) &&
14600 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14601 : (TARGET_AVX512FP16))))
14602 : return -1;
14603 : return 4642; /* unspec_avx512fp16_fixuns_truncv16si2_mask_round */
14604 :
14605 : case 6:
14606 : if (!
14607 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14608 : (TARGET_AVX512F))
14609 : return -1;
14610 : return 4916; /* unspec_fixuns_truncv16sfv16si2_mask_round */
14611 :
14612 : case 7:
14613 : if (!(
14614 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14615 : (TARGET_AVX512F) && (
14616 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14617 : (TARGET_AVX512F) &&
14618 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14619 : (TARGET_AVX512FP16))))
14620 : return -1;
14621 : return 4650; /* unspec_avx512fp16_fixuns_truncv8di2_mask_round */
14622 :
14623 : case 8:
14624 : if (!(
14625 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14626 : (TARGET_AVX512F) && (
14627 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14628 : (TARGET_AVX512F) &&
14629 : #line 10019 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14630 : (TARGET_AVX512DQ && (V8DFmode == V16SFmode
14631 : || V8DFmode == V8DFmode
14632 : || V8DFmode == V8DImode
14633 : || V8DFmode == V16SImode
14634 : || V8DFmode == V32HFmode)))))
14635 : return -1;
14636 : return 5094; /* unspec_fixuns_truncv8dfv8di2_mask_round */
14637 :
14638 : case 9:
14639 : if (!(
14640 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14641 : (TARGET_AVX512F) && (
14642 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14643 : (TARGET_AVX512F) &&
14644 : #line 10062 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14645 : (TARGET_AVX512DQ && (V8DImode == V16SFmode
14646 : || V8DImode == V8DFmode
14647 : || V8DImode == V8DImode
14648 : || V8DImode == V16SImode
14649 : || V8DImode == V32HFmode)))))
14650 : return -1;
14651 : return 5142; /* unspec_fixuns_truncv8sfv8di2_mask_round */
14652 :
14653 : default:
14654 : return -1;
14655 : }
14656 :
14657 : case 166:
14658 : if (!const48_operand (operands[4], E_SImode))
14659 : return -1;
14660 : switch (GET_MODE (operands[0]))
14661 : {
14662 : case E_V32HFmode:
14663 : if (pattern1486 (x2,
14664 : E_V32HFmode,
14665 : E_SImode) != 0
14666 : || !(
14667 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14668 : (TARGET_AVX512F) && (
14669 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14670 : (TARGET_AVX512F) && (
14671 : #line 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14672 : (TARGET_AVX512F) &&
14673 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14674 : (TARGET_AVX512FP16)))))
14675 : return -1;
14676 : return 7058; /* avx512bw_getexpv32hf_mask_round */
14677 :
14678 : case E_V16HFmode:
14679 : if (pattern1486 (x2,
14680 : E_V16HFmode,
14681 : E_HImode) != 0
14682 : || !(
14683 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14684 : (TARGET_AVX512F) && (
14685 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14686 : (TARGET_AVX512F) && (
14687 : #line 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14688 : (TARGET_AVX512F) &&
14689 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14690 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))))
14691 : return -1;
14692 : return 7062; /* avx512vl_getexpv16hf_mask_round */
14693 :
14694 : case E_V8HFmode:
14695 : if (pattern1486 (x2,
14696 : E_V8HFmode,
14697 : E_QImode) != 0
14698 : || !(
14699 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14700 : (TARGET_AVX512F) && (
14701 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14702 : (TARGET_AVX512F) && (
14703 : #line 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14704 : (TARGET_AVX512F) &&
14705 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14706 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))))
14707 : return -1;
14708 : return 7066; /* avx512fp16_getexpv8hf_mask_round */
14709 :
14710 : case E_V16SFmode:
14711 : if (pattern1486 (x2,
14712 : E_V16SFmode,
14713 : E_HImode) != 0
14714 : || !
14715 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14716 : (TARGET_AVX512F))
14717 : return -1;
14718 : return 7070; /* avx512f_getexpv16sf_mask_round */
14719 :
14720 : case E_V8SFmode:
14721 : if (pattern1486 (x2,
14722 : E_V8SFmode,
14723 : E_QImode) != 0
14724 : || !(
14725 : #line 263 "/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 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14730 : (TARGET_AVX512F) &&
14731 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14732 : (TARGET_AVX512VL)))))
14733 : return -1;
14734 : return 7074; /* avx512vl_getexpv8sf_mask_round */
14735 :
14736 : case E_V4SFmode:
14737 : if (pattern1486 (x2,
14738 : E_V4SFmode,
14739 : E_QImode) != 0
14740 : || !(
14741 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14742 : (TARGET_AVX512F) && (
14743 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14744 : (TARGET_AVX512F) && (
14745 : #line 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14746 : (TARGET_AVX512F) &&
14747 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14748 : (TARGET_AVX512VL)))))
14749 : return -1;
14750 : return 7078; /* avx512vl_getexpv4sf_mask_round */
14751 :
14752 : case E_V8DFmode:
14753 : if (pattern1486 (x2,
14754 : E_V8DFmode,
14755 : E_QImode) != 0
14756 : || !
14757 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14758 : (TARGET_AVX512F))
14759 : return -1;
14760 : return 7082; /* avx512f_getexpv8df_mask_round */
14761 :
14762 : case E_V4DFmode:
14763 : if (pattern1486 (x2,
14764 : E_V4DFmode,
14765 : E_QImode) != 0
14766 : || !(
14767 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14768 : (TARGET_AVX512F) && (
14769 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14770 : (TARGET_AVX512F) && (
14771 : #line 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14772 : (TARGET_AVX512F) &&
14773 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14774 : (TARGET_AVX512VL)))))
14775 : return -1;
14776 : return 7086; /* avx512vl_getexpv4df_mask_round */
14777 :
14778 : case E_V2DFmode:
14779 : if (pattern1486 (x2,
14780 : E_V2DFmode,
14781 : E_QImode) != 0
14782 : || !(
14783 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14784 : (TARGET_AVX512F) && (
14785 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14786 : (TARGET_AVX512F) && (
14787 : #line 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14788 : (TARGET_AVX512F) &&
14789 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14790 : (TARGET_AVX512VL)))))
14791 : return -1;
14792 : return 7090; /* avx512vl_getexpv2df_mask_round */
14793 :
14794 : default:
14795 : return -1;
14796 : }
14797 :
14798 : case 150:
14799 : if (pattern1312 (x2,
14800 : E_HImode,
14801 : E_V16SFmode,
14802 : E_V16HImode) != 0
14803 : || !
14804 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14805 : (TARGET_AVX512F))
14806 : return -1;
14807 : return 9729; /* avx512f_vcvtph2ps512_mask_round */
14808 :
14809 : case 266:
14810 : if (pattern1313 (x2,
14811 : E_SImode,
14812 : E_V32HImode,
14813 : E_V32HFmode) != 0
14814 : || !(
14815 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14816 : (TARGET_AVX512F) && (
14817 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14818 : (TARGET_AVX512F) &&
14819 : #line 33219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14820 : (TARGET_AVX10_2 && (V32HFmode == V16SFmode
14821 : || V32HFmode == V8DFmode
14822 : || V32HFmode == V8DImode
14823 : || V32HFmode == V16SImode
14824 : || V32HFmode == V32HFmode)))))
14825 : return -1;
14826 : return 10830; /* avx10_2_cvtph2ibsv32hf_mask_round */
14827 :
14828 : case 267:
14829 : if (pattern1313 (x2,
14830 : E_SImode,
14831 : E_V32HImode,
14832 : E_V32HFmode) != 0
14833 : || !(
14834 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14835 : (TARGET_AVX512F) && (
14836 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14837 : (TARGET_AVX512F) &&
14838 : #line 33219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14839 : (TARGET_AVX10_2 && (V32HFmode == V16SFmode
14840 : || V32HFmode == V8DFmode
14841 : || V32HFmode == V8DImode
14842 : || V32HFmode == V16SImode
14843 : || V32HFmode == V32HFmode)))))
14844 : return -1;
14845 : return 10834; /* avx10_2_cvtph2iubsv32hf_mask_round */
14846 :
14847 : case 272:
14848 : if (pattern1312 (x2,
14849 : E_SImode,
14850 : E_V32HImode,
14851 : E_V32HFmode) != 0
14852 : || !(
14853 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14854 : (TARGET_AVX512F) && (
14855 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14856 : (TARGET_AVX512F) &&
14857 : #line 33234 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14858 : (TARGET_AVX10_2 && (V32HFmode == V16SFmode
14859 : || V32HFmode == V8DFmode
14860 : || V32HFmode == V8DImode
14861 : || V32HFmode == V16SImode
14862 : || V32HFmode == V32HFmode)))))
14863 : return -1;
14864 : return 10846; /* avx10_2_cvttph2ibsv32hf_mask_round */
14865 :
14866 : case 273:
14867 : if (pattern1312 (x2,
14868 : E_SImode,
14869 : E_V32HImode,
14870 : E_V32HFmode) != 0
14871 : || !(
14872 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14873 : (TARGET_AVX512F) && (
14874 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14875 : (TARGET_AVX512F) &&
14876 : #line 33234 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14877 : (TARGET_AVX10_2 && (V32HFmode == V16SFmode
14878 : || V32HFmode == V8DFmode
14879 : || V32HFmode == V8DImode
14880 : || V32HFmode == V16SImode
14881 : || V32HFmode == V32HFmode)))))
14882 : return -1;
14883 : return 10850; /* avx10_2_cvttph2iubsv32hf_mask_round */
14884 :
14885 : case 268:
14886 : if (pattern1313 (x2,
14887 : E_HImode,
14888 : E_V16SImode,
14889 : E_V16SFmode) != 0
14890 : || !(
14891 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14892 : (TARGET_AVX512F) && (
14893 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14894 : (TARGET_AVX512F) &&
14895 : #line 33249 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14896 : (TARGET_AVX10_2 && (V16SFmode == V16SFmode
14897 : || V16SFmode == V8DFmode
14898 : || V16SFmode == V8DImode
14899 : || V16SFmode == V16SImode
14900 : || V16SFmode == V32HFmode)))))
14901 : return -1;
14902 : return 10862; /* avx10_2_cvtps2ibsv16sf_mask_round */
14903 :
14904 : case 269:
14905 : if (pattern1313 (x2,
14906 : E_HImode,
14907 : E_V16SImode,
14908 : E_V16SFmode) != 0
14909 : || !(
14910 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14911 : (TARGET_AVX512F) && (
14912 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14913 : (TARGET_AVX512F) &&
14914 : #line 33249 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14915 : (TARGET_AVX10_2 && (V16SFmode == V16SFmode
14916 : || V16SFmode == V8DFmode
14917 : || V16SFmode == V8DImode
14918 : || V16SFmode == V16SImode
14919 : || V16SFmode == V32HFmode)))))
14920 : return -1;
14921 : return 10866; /* avx10_2_cvtps2iubsv16sf_mask_round */
14922 :
14923 : case 274:
14924 : if (pattern1312 (x2,
14925 : E_HImode,
14926 : E_V16SImode,
14927 : E_V16SFmode) != 0
14928 : || !(
14929 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14930 : (TARGET_AVX512F) && (
14931 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14932 : (TARGET_AVX512F) &&
14933 : #line 33264 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14934 : (TARGET_AVX10_2 && (V16SFmode == V16SFmode
14935 : || V16SFmode == V8DFmode
14936 : || V16SFmode == V8DImode
14937 : || V16SFmode == V16SImode
14938 : || V16SFmode == V32HFmode)))))
14939 : return -1;
14940 : return 10878; /* avx10_2_cvttps2ibsv16sf_mask_round */
14941 :
14942 : case 275:
14943 : if (pattern1312 (x2,
14944 : E_HImode,
14945 : E_V16SImode,
14946 : E_V16SFmode) != 0
14947 : || !(
14948 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14949 : (TARGET_AVX512F) && (
14950 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14951 : (TARGET_AVX512F) &&
14952 : #line 33264 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14953 : (TARGET_AVX10_2 && (V16SFmode == V16SFmode
14954 : || V16SFmode == V8DFmode
14955 : || V16SFmode == V8DImode
14956 : || V16SFmode == V16SImode
14957 : || V16SFmode == V32HFmode)))))
14958 : return -1;
14959 : return 10882; /* avx10_2_cvttps2iubsv16sf_mask_round */
14960 :
14961 : case 276:
14962 : switch (pattern1314 (x2))
14963 : {
14964 : case 0:
14965 : if (!(
14966 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14967 : (TARGET_AVX512F) && (
14968 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14969 : (TARGET_AVX512F) && (
14970 : #line 33288 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14971 : (TARGET_AVX10_2 && (V16SFmode == V16SFmode
14972 : || V16SFmode == V8DFmode
14973 : || V16SFmode == V8DImode
14974 : || V16SFmode == V16SImode
14975 : || V16SFmode == V32HFmode)) &&
14976 : #line 382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14977 : (TARGET_AVX512F)))))
14978 : return -1;
14979 : return 10894; /* avx10_2_vcvttps2dqsv16sf_mask_round */
14980 :
14981 : case 1:
14982 : if (!(
14983 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14984 : (TARGET_AVX512F) && (
14985 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14986 : (TARGET_AVX512F) && (
14987 : #line 33288 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14988 : (TARGET_AVX10_2 && (V8DFmode == V16SFmode
14989 : || V8DFmode == V8DFmode
14990 : || V8DFmode == V8DImode
14991 : || V8DFmode == V16SImode
14992 : || V8DFmode == V32HFmode)) &&
14993 : #line 383 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14994 : (TARGET_AVX512F)))))
14995 : return -1;
14996 : return 10910; /* avx10_2_vcvttpd2dqsv8df_mask_round */
14997 :
14998 : case 2:
14999 : if (!(
15000 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15001 : (TARGET_AVX512F) && (
15002 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15003 : (TARGET_AVX512F) && (
15004 : #line 33299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15005 : (TARGET_AVX10_2 && (V8DFmode == V16SFmode
15006 : || V8DFmode == V8DFmode
15007 : || V8DFmode == V8DImode
15008 : || V8DFmode == V16SImode
15009 : || V8DFmode == V32HFmode)) &&
15010 : #line 451 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15011 : (TARGET_AVX512F)))))
15012 : return -1;
15013 : return 10926; /* avx10_2_vcvttpd2qqsv8df_mask_round */
15014 :
15015 : case 3:
15016 : if (!(
15017 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15018 : (TARGET_AVX512F) && (
15019 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15020 : (TARGET_AVX512F) && (
15021 : #line 33310 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15022 : (TARGET_AVX10_2 && (V8DImode == V16SFmode
15023 : || V8DImode == V8DFmode
15024 : || V8DImode == V8DImode
15025 : || V8DImode == V16SImode
15026 : || V8DImode == V32HFmode)) &&
15027 : #line 611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15028 : (TARGET_AVX512F)))))
15029 : return -1;
15030 : return 10942; /* avx10_2_vcvttps2qqsv8di_mask_round */
15031 :
15032 : default:
15033 : return -1;
15034 : }
15035 :
15036 : case 277:
15037 : switch (pattern1314 (x2))
15038 : {
15039 : case 0:
15040 : if (!(
15041 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15042 : (TARGET_AVX512F) && (
15043 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15044 : (TARGET_AVX512F) && (
15045 : #line 33288 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15046 : (TARGET_AVX10_2 && (V16SFmode == V16SFmode
15047 : || V16SFmode == V8DFmode
15048 : || V16SFmode == V8DImode
15049 : || V16SFmode == V16SImode
15050 : || V16SFmode == V32HFmode)) &&
15051 : #line 382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15052 : (TARGET_AVX512F)))))
15053 : return -1;
15054 : return 10898; /* avx10_2_vcvttps2udqsv16sf_mask_round */
15055 :
15056 : case 1:
15057 : if (!(
15058 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15059 : (TARGET_AVX512F) && (
15060 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15061 : (TARGET_AVX512F) && (
15062 : #line 33288 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15063 : (TARGET_AVX10_2 && (V8DFmode == V16SFmode
15064 : || V8DFmode == V8DFmode
15065 : || V8DFmode == V8DImode
15066 : || V8DFmode == V16SImode
15067 : || V8DFmode == V32HFmode)) &&
15068 : #line 383 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15069 : (TARGET_AVX512F)))))
15070 : return -1;
15071 : return 10914; /* avx10_2_vcvttpd2udqsv8df_mask_round */
15072 :
15073 : case 2:
15074 : if (!(
15075 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15076 : (TARGET_AVX512F) && (
15077 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15078 : (TARGET_AVX512F) && (
15079 : #line 33299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15080 : (TARGET_AVX10_2 && (V8DFmode == V16SFmode
15081 : || V8DFmode == V8DFmode
15082 : || V8DFmode == V8DImode
15083 : || V8DFmode == V16SImode
15084 : || V8DFmode == V32HFmode)) &&
15085 : #line 451 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15086 : (TARGET_AVX512F)))))
15087 : return -1;
15088 : return 10930; /* avx10_2_vcvttpd2uqqsv8df_mask_round */
15089 :
15090 : case 3:
15091 : if (!(
15092 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15093 : (TARGET_AVX512F) && (
15094 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15095 : (TARGET_AVX512F) && (
15096 : #line 33310 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15097 : (TARGET_AVX10_2 && (V8DImode == V16SFmode
15098 : || V8DImode == V8DFmode
15099 : || V8DImode == V8DImode
15100 : || V8DImode == V16SImode
15101 : || V8DImode == V32HFmode)) &&
15102 : #line 611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15103 : (TARGET_AVX512F)))))
15104 : return -1;
15105 : return 10946; /* avx10_2_vcvttps2uqqsv8di_mask_round */
15106 :
15107 : default:
15108 : return -1;
15109 : }
15110 :
15111 : default:
15112 : return -1;
15113 : }
15114 : }
15115 :
15116 : int
15117 : recog_245 (rtx x1 ATTRIBUTE_UNUSED,
15118 : rtx_insn *insn ATTRIBUTE_UNUSED,
15119 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15120 : {
15121 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15122 : rtx x2, x3, x4, x5;
15123 : int res ATTRIBUTE_UNUSED;
15124 : x2 = XEXP (x1, 0);
15125 : operands[0] = x2;
15126 : x3 = XEXP (x1, 1);
15127 : x4 = XVECEXP (x3, 0, 0);
15128 : operands[1] = x4;
15129 : x5 = XVECEXP (x3, 0, 1);
15130 : operands[2] = x5;
15131 : if (!const_0_to_255_operand (operands[2], E_SImode))
15132 : return -1;
15133 : switch (GET_MODE (operands[0]))
15134 : {
15135 : case E_V8HImode:
15136 : if (GET_MODE (x3) != E_V8HImode
15137 : || !register_operand (operands[1], E_V8SFmode))
15138 : return -1;
15139 : if (register_operand (operands[0], E_V8HImode)
15140 : &&
15141 : #line 29868 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15142 : (TARGET_F16C || TARGET_AVX512VL))
15143 : return 9733; /* vcvtps2ph256 */
15144 : if (!memory_operand (operands[0], E_V8HImode)
15145 : || !
15146 : #line 29880 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15147 : (TARGET_F16C || TARGET_AVX512VL))
15148 : return -1;
15149 : return 9735; /* *vcvtps2ph256 */
15150 :
15151 : case E_V16HImode:
15152 : if (GET_MODE (x3) != E_V16HImode
15153 : || !register_operand (operands[1], E_V16SFmode))
15154 : return -1;
15155 : if (register_operand (operands[0], E_V16HImode)
15156 : &&
15157 : #line 29919 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15158 : (TARGET_AVX512F))
15159 : return 9737; /* *avx512f_vcvtps2ph512 */
15160 : if (!memory_operand (operands[0], E_V16HImode)
15161 : || !
15162 : #line 29931 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15163 : (TARGET_AVX512F))
15164 : return -1;
15165 : return 9741; /* *avx512f_vcvtps2ph512 */
15166 :
15167 : default:
15168 : return -1;
15169 : }
15170 : }
15171 :
15172 : int
15173 : recog_249 (rtx x1 ATTRIBUTE_UNUSED,
15174 : rtx_insn *insn ATTRIBUTE_UNUSED,
15175 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15176 : {
15177 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15178 : rtx x2, x3, x4, x5, x6;
15179 : int res ATTRIBUTE_UNUSED;
15180 : x2 = XEXP (x1, 1);
15181 : x3 = XVECEXP (x2, 0, 0);
15182 : operands[1] = x3;
15183 : x4 = XVECEXP (x2, 0, 2);
15184 : switch (GET_CODE (x4))
15185 : {
15186 : case REG:
15187 : case SUBREG:
15188 : case MEM:
15189 : switch (GET_CODE (x4))
15190 : {
15191 : case MEM:
15192 : res = recog_247 (x1, insn, pnum_clobbers);
15193 : if (res >= 0)
15194 : return res;
15195 : break;
15196 :
15197 : case REG:
15198 : case SUBREG:
15199 : operands[2] = x4;
15200 : x5 = XEXP (x1, 0);
15201 : operands[0] = x5;
15202 : x6 = XVECEXP (x2, 0, 1);
15203 : if (rtx_equal_p (x6, operands[0]))
15204 : {
15205 : switch (GET_MODE (operands[0]))
15206 : {
15207 : case E_V16SImode:
15208 : if (pattern916 (x2,
15209 : E_HImode,
15210 : E_V16SImode) == 0
15211 : &&
15212 : #line 29436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15213 : (TARGET_AVX512F))
15214 : return 9575; /* avx512f_storev16si_mask */
15215 : break;
15216 :
15217 : case E_V8DImode:
15218 : if (pattern916 (x2,
15219 : E_QImode,
15220 : E_V8DImode) == 0
15221 : &&
15222 : #line 29436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15223 : (TARGET_AVX512F))
15224 : return 9578; /* avx512f_storev8di_mask */
15225 : break;
15226 :
15227 : case E_V16SFmode:
15228 : if (pattern916 (x2,
15229 : E_HImode,
15230 : E_V16SFmode) == 0
15231 : &&
15232 : #line 29436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15233 : (TARGET_AVX512F))
15234 : return 9581; /* avx512f_storev16sf_mask */
15235 : break;
15236 :
15237 : case E_V8SFmode:
15238 : if (pattern916 (x2,
15239 : E_QImode,
15240 : E_V8SFmode) == 0
15241 : && (
15242 : #line 29436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15243 : (TARGET_AVX512F) &&
15244 : #line 301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15245 : (TARGET_AVX512VL)))
15246 : return 9582; /* avx512vl_storev8sf_mask */
15247 : break;
15248 :
15249 : case E_V4SFmode:
15250 : if (pattern916 (x2,
15251 : E_QImode,
15252 : E_V4SFmode) == 0
15253 : && (
15254 : #line 29436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15255 : (TARGET_AVX512F) &&
15256 : #line 301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15257 : (TARGET_AVX512VL)))
15258 : return 9583; /* avx512vl_storev4sf_mask */
15259 : break;
15260 :
15261 : case E_V8DFmode:
15262 : if (pattern916 (x2,
15263 : E_QImode,
15264 : E_V8DFmode) == 0
15265 : &&
15266 : #line 29436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15267 : (TARGET_AVX512F))
15268 : return 9584; /* avx512f_storev8df_mask */
15269 : break;
15270 :
15271 : case E_V4DFmode:
15272 : if (pattern916 (x2,
15273 : E_QImode,
15274 : E_V4DFmode) == 0
15275 : && (
15276 : #line 29436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15277 : (TARGET_AVX512F) &&
15278 : #line 302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15279 : (TARGET_AVX512VL)))
15280 : return 9585; /* avx512vl_storev4df_mask */
15281 : break;
15282 :
15283 : case E_V2DFmode:
15284 : if (pattern916 (x2,
15285 : E_QImode,
15286 : E_V2DFmode) == 0
15287 : && (
15288 : #line 29436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15289 : (TARGET_AVX512F) &&
15290 : #line 302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15291 : (TARGET_AVX512VL)))
15292 : return 9586; /* avx512vl_storev2df_mask */
15293 : break;
15294 :
15295 : case E_V64QImode:
15296 : if (pattern916 (x2,
15297 : E_DImode,
15298 : E_V64QImode) == 0
15299 : &&
15300 : #line 29465 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15301 : (TARGET_AVX512BW))
15302 : return 9587; /* avx512bw_storev64qi_mask */
15303 : break;
15304 :
15305 : case E_V16QImode:
15306 : if (pattern916 (x2,
15307 : E_HImode,
15308 : E_V16QImode) == 0
15309 : && (
15310 : #line 29465 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15311 : (TARGET_AVX512BW) &&
15312 : #line 332 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15313 : (TARGET_AVX512VL)))
15314 : return 9588; /* avx512vl_storev16qi_mask */
15315 : break;
15316 :
15317 : case E_V32QImode:
15318 : if (pattern916 (x2,
15319 : E_SImode,
15320 : E_V32QImode) == 0
15321 : && (
15322 : #line 29465 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15323 : (TARGET_AVX512BW) &&
15324 : #line 332 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15325 : (TARGET_AVX512VL)))
15326 : return 9589; /* avx512vl_storev32qi_mask */
15327 : break;
15328 :
15329 : case E_V32HImode:
15330 : if (pattern916 (x2,
15331 : E_SImode,
15332 : E_V32HImode) == 0
15333 : &&
15334 : #line 29465 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15335 : (TARGET_AVX512BW))
15336 : return 9590; /* avx512bw_storev32hi_mask */
15337 : break;
15338 :
15339 : case E_V16HImode:
15340 : if (pattern916 (x2,
15341 : E_HImode,
15342 : E_V16HImode) == 0
15343 : && (
15344 : #line 29465 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15345 : (TARGET_AVX512BW) &&
15346 : #line 333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15347 : (TARGET_AVX512VL)))
15348 : return 9591; /* avx512vl_storev16hi_mask */
15349 : break;
15350 :
15351 : case E_V8HImode:
15352 : if (pattern916 (x2,
15353 : E_QImode,
15354 : E_V8HImode) == 0
15355 : && (
15356 : #line 29465 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15357 : (TARGET_AVX512BW) &&
15358 : #line 333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15359 : (TARGET_AVX512VL)))
15360 : return 9592; /* avx512vl_storev8hi_mask */
15361 : break;
15362 :
15363 : case E_V32HFmode:
15364 : if (pattern916 (x2,
15365 : E_SImode,
15366 : E_V32HFmode) == 0
15367 : &&
15368 : #line 29465 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15369 : (TARGET_AVX512BW))
15370 : return 9593; /* avx512bw_storev32hf_mask */
15371 : break;
15372 :
15373 : case E_V16HFmode:
15374 : if (pattern916 (x2,
15375 : E_HImode,
15376 : E_V16HFmode) == 0
15377 : && (
15378 : #line 29465 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15379 : (TARGET_AVX512BW) &&
15380 : #line 334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15381 : (TARGET_AVX512VL)))
15382 : return 9594; /* avx512vl_storev16hf_mask */
15383 : break;
15384 :
15385 : case E_V8HFmode:
15386 : if (pattern916 (x2,
15387 : E_QImode,
15388 : E_V8HFmode) == 0
15389 : && (
15390 : #line 29465 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15391 : (TARGET_AVX512BW) &&
15392 : #line 334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15393 : (TARGET_AVX512VL)))
15394 : return 9595; /* avx512fp16_storev8hf_mask */
15395 : break;
15396 :
15397 : case E_V32BFmode:
15398 : if (pattern916 (x2,
15399 : E_SImode,
15400 : E_V32BFmode) == 0
15401 : &&
15402 : #line 29465 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15403 : (TARGET_AVX512BW))
15404 : return 9596; /* avx512bw_storev32bf_mask */
15405 : break;
15406 :
15407 : case E_V16BFmode:
15408 : if (pattern916 (x2,
15409 : E_HImode,
15410 : E_V16BFmode) == 0
15411 : && (
15412 : #line 29465 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15413 : (TARGET_AVX512BW) &&
15414 : #line 335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15415 : (TARGET_AVX512VL)))
15416 : return 9597; /* avx512vl_storev16bf_mask */
15417 : break;
15418 :
15419 : case E_V8BFmode:
15420 : if (pattern916 (x2,
15421 : E_QImode,
15422 : E_V8BFmode) == 0
15423 : && (
15424 : #line 29465 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15425 : (TARGET_AVX512BW) &&
15426 : #line 335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15427 : (TARGET_AVX512VL)))
15428 : return 9598; /* avx512vl_storev8bf_mask */
15429 : break;
15430 :
15431 : default:
15432 : break;
15433 : }
15434 : }
15435 : break;
15436 :
15437 : default:
15438 : break;
15439 : }
15440 : x5 = XEXP (x1, 0);
15441 : operands[0] = x5;
15442 : switch (GET_MODE (operands[0]))
15443 : {
15444 : case E_V4SFmode:
15445 : if (pattern792 (x2,
15446 : E_V4SFmode,
15447 : E_V4SImode) != 0
15448 : || !
15449 : #line 29345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15450 : (TARGET_AVX))
15451 : return -1;
15452 : return 9567; /* avx_maskstoreps */
15453 :
15454 : case E_V2DFmode:
15455 : if (pattern792 (x2,
15456 : E_V2DFmode,
15457 : E_V2DImode) != 0
15458 : || !
15459 : #line 29345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15460 : (TARGET_AVX))
15461 : return -1;
15462 : return 9568; /* avx_maskstorepd */
15463 :
15464 : case E_V4DImode:
15465 : if (!memory_operand (operands[0], E_V4DImode)
15466 : || GET_MODE (x2) != E_V4DImode
15467 : || !register_operand (operands[1], E_V4DImode))
15468 : return -1;
15469 : x6 = XVECEXP (x2, 0, 1);
15470 : operands[2] = x6;
15471 : if (register_operand (operands[2], E_V4DImode)
15472 : && rtx_equal_p (x4, operands[0])
15473 : &&
15474 : #line 29345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15475 : (TARGET_AVX))
15476 : return 9569; /* avx2_maskstoreq256 */
15477 : operands[2] = x4;
15478 : if (!register_operand (operands[2], E_QImode)
15479 : || !rtx_equal_p (x6, operands[0])
15480 : || !(
15481 : #line 29436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15482 : (TARGET_AVX512F) &&
15483 : #line 300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15484 : (TARGET_AVX512VL)))
15485 : return -1;
15486 : return 9579; /* avx512vl_storev4di_mask */
15487 :
15488 : case E_V2DImode:
15489 : if (!memory_operand (operands[0], E_V2DImode)
15490 : || GET_MODE (x2) != E_V2DImode
15491 : || !register_operand (operands[1], E_V2DImode))
15492 : return -1;
15493 : x6 = XVECEXP (x2, 0, 1);
15494 : operands[2] = x6;
15495 : if (register_operand (operands[2], E_V2DImode)
15496 : && rtx_equal_p (x4, operands[0])
15497 : &&
15498 : #line 29345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15499 : (TARGET_AVX))
15500 : return 9570; /* avx2_maskstoreq */
15501 : operands[2] = x4;
15502 : if (!register_operand (operands[2], E_QImode)
15503 : || !rtx_equal_p (x6, operands[0])
15504 : || !(
15505 : #line 29436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15506 : (TARGET_AVX512F) &&
15507 : #line 300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15508 : (TARGET_AVX512VL)))
15509 : return -1;
15510 : return 9580; /* avx512vl_storev2di_mask */
15511 :
15512 : case E_V8SFmode:
15513 : if (pattern792 (x2,
15514 : E_V8SFmode,
15515 : E_V8SImode) != 0
15516 : || !
15517 : #line 29345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15518 : (TARGET_AVX))
15519 : return -1;
15520 : return 9571; /* avx_maskstoreps256 */
15521 :
15522 : case E_V4DFmode:
15523 : if (pattern792 (x2,
15524 : E_V4DFmode,
15525 : E_V4DImode) != 0
15526 : || !
15527 : #line 29345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15528 : (TARGET_AVX))
15529 : return -1;
15530 : return 9572; /* avx_maskstorepd256 */
15531 :
15532 : case E_V8SImode:
15533 : if (!memory_operand (operands[0], E_V8SImode)
15534 : || GET_MODE (x2) != E_V8SImode
15535 : || !register_operand (operands[1], E_V8SImode))
15536 : return -1;
15537 : x6 = XVECEXP (x2, 0, 1);
15538 : operands[2] = x6;
15539 : if (register_operand (operands[2], E_V8SImode)
15540 : && rtx_equal_p (x4, operands[0])
15541 : &&
15542 : #line 29345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15543 : (TARGET_AVX))
15544 : return 9573; /* avx2_maskstored256 */
15545 : operands[2] = x4;
15546 : if (!register_operand (operands[2], E_QImode)
15547 : || !rtx_equal_p (x6, operands[0])
15548 : || !(
15549 : #line 29436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15550 : (TARGET_AVX512F) &&
15551 : #line 299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15552 : (TARGET_AVX512VL)))
15553 : return -1;
15554 : return 9576; /* avx512vl_storev8si_mask */
15555 :
15556 : case E_V4SImode:
15557 : if (!memory_operand (operands[0], E_V4SImode)
15558 : || GET_MODE (x2) != E_V4SImode
15559 : || !register_operand (operands[1], E_V4SImode))
15560 : return -1;
15561 : x6 = XVECEXP (x2, 0, 1);
15562 : operands[2] = x6;
15563 : if (register_operand (operands[2], E_V4SImode)
15564 : && rtx_equal_p (x4, operands[0])
15565 : &&
15566 : #line 29345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15567 : (TARGET_AVX))
15568 : return 9574; /* avx2_maskstored */
15569 : operands[2] = x4;
15570 : if (!register_operand (operands[2], E_QImode)
15571 : || !rtx_equal_p (x6, operands[0])
15572 : || !(
15573 : #line 29436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15574 : (TARGET_AVX512F) &&
15575 : #line 299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15576 : (TARGET_AVX512VL)))
15577 : return -1;
15578 : return 9577; /* avx512vl_storev4si_mask */
15579 :
15580 : default:
15581 : return -1;
15582 : }
15583 :
15584 : case CONST_INT:
15585 : case CONST_DOUBLE:
15586 : case CONST_VECTOR:
15587 : operands[2] = x4;
15588 : x5 = XEXP (x1, 0);
15589 : operands[0] = x5;
15590 : switch (pattern794 (x2))
15591 : {
15592 : case 0:
15593 : if (!(
15594 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15595 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
15596 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15597 : (TARGET_AVX512F)))
15598 : return -1;
15599 : return 9599; /* *avx512bw_storev64qi_mask_1 */
15600 :
15601 : case 1:
15602 : if (!(
15603 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15604 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
15605 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15606 : (TARGET_AVX)))
15607 : return -1;
15608 : return 9600; /* *avx512vl_storev32qi_mask_1 */
15609 :
15610 : case 2:
15611 : if (!
15612 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15613 : (TARGET_AVX512F && ix86_pre_reload_split ()))
15614 : return -1;
15615 : return 9601; /* *avx512vl_storev16qi_mask_1 */
15616 :
15617 : case 3:
15618 : if (!(
15619 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15620 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
15621 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15622 : (TARGET_AVX512F)))
15623 : return -1;
15624 : return 9602; /* *avx512bw_storev32hi_mask_1 */
15625 :
15626 : case 4:
15627 : if (!(
15628 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15629 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
15630 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15631 : (TARGET_AVX)))
15632 : return -1;
15633 : return 9603; /* *avx512vl_storev16hi_mask_1 */
15634 :
15635 : case 5:
15636 : if (!
15637 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15638 : (TARGET_AVX512F && ix86_pre_reload_split ()))
15639 : return -1;
15640 : return 9604; /* *avx512vl_storev8hi_mask_1 */
15641 :
15642 : case 6:
15643 : if (!(
15644 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15645 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
15646 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15647 : (TARGET_AVX512F)))
15648 : return -1;
15649 : return 9605; /* *avx512f_storev16si_mask_1 */
15650 :
15651 : case 7:
15652 : if (!(
15653 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15654 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
15655 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15656 : (TARGET_AVX)))
15657 : return -1;
15658 : return 9606; /* *avx512vl_storev8si_mask_1 */
15659 :
15660 : case 8:
15661 : if (!
15662 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15663 : (TARGET_AVX512F && ix86_pre_reload_split ()))
15664 : return -1;
15665 : return 9607; /* *avx512vl_storev4si_mask_1 */
15666 :
15667 : case 9:
15668 : if (!(
15669 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15670 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
15671 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15672 : (TARGET_AVX512F)))
15673 : return -1;
15674 : return 9608; /* *avx512f_storev8di_mask_1 */
15675 :
15676 : case 10:
15677 : if (!(
15678 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15679 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
15680 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15681 : (TARGET_AVX)))
15682 : return -1;
15683 : return 9609; /* *avx512vl_storev4di_mask_1 */
15684 :
15685 : case 11:
15686 : if (!
15687 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15688 : (TARGET_AVX512F && ix86_pre_reload_split ()))
15689 : return -1;
15690 : return 9610; /* *avx512vl_storev2di_mask_1 */
15691 :
15692 : case 12:
15693 : if (!(
15694 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15695 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
15696 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15697 : (TARGET_AVX512F)))
15698 : return -1;
15699 : return 9611; /* *avx512bw_storev32hf_mask_1 */
15700 :
15701 : case 13:
15702 : if (!(
15703 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15704 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
15705 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15706 : (TARGET_AVX)))
15707 : return -1;
15708 : return 9612; /* *avx512vl_storev16hf_mask_1 */
15709 :
15710 : case 14:
15711 : if (!
15712 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15713 : (TARGET_AVX512F && ix86_pre_reload_split ()))
15714 : return -1;
15715 : return 9613; /* *avx512fp16_storev8hf_mask_1 */
15716 :
15717 : case 15:
15718 : if (!(
15719 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15720 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
15721 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15722 : (TARGET_AVX512F)))
15723 : return -1;
15724 : return 9614; /* *avx512bw_storev32bf_mask_1 */
15725 :
15726 : case 16:
15727 : if (!(
15728 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15729 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
15730 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15731 : (TARGET_AVX)))
15732 : return -1;
15733 : return 9615; /* *avx512vl_storev16bf_mask_1 */
15734 :
15735 : case 17:
15736 : if (!
15737 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15738 : (TARGET_AVX512F && ix86_pre_reload_split ()))
15739 : return -1;
15740 : return 9616; /* *avx512vl_storev8bf_mask_1 */
15741 :
15742 : case 18:
15743 : if (!(
15744 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15745 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
15746 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15747 : (TARGET_AVX512F)))
15748 : return -1;
15749 : return 9617; /* *avx512f_storev16sf_mask_1 */
15750 :
15751 : case 19:
15752 : if (!(
15753 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15754 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
15755 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15756 : (TARGET_AVX)))
15757 : return -1;
15758 : return 9618; /* *avx512vl_storev8sf_mask_1 */
15759 :
15760 : case 20:
15761 : if (!
15762 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15763 : (TARGET_AVX512F && ix86_pre_reload_split ()))
15764 : return -1;
15765 : return 9619; /* *avx512vl_storev4sf_mask_1 */
15766 :
15767 : case 21:
15768 : if (!(
15769 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15770 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
15771 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15772 : (TARGET_AVX512F)))
15773 : return -1;
15774 : return 9620; /* *avx512f_storev8df_mask_1 */
15775 :
15776 : case 22:
15777 : if (!(
15778 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15779 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
15780 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15781 : (TARGET_AVX)))
15782 : return -1;
15783 : return 9621; /* *avx512vl_storev4df_mask_1 */
15784 :
15785 : case 23:
15786 : if (!(
15787 : #line 29479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15788 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
15789 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15790 : (TARGET_SSE2)))
15791 : return -1;
15792 : return 9622; /* *avx512vl_storev2df_mask_1 */
15793 :
15794 : default:
15795 : return -1;
15796 : }
15797 :
15798 : default:
15799 : return -1;
15800 : }
15801 : }
15802 :
15803 : int
15804 : recog_273 (rtx x1 ATTRIBUTE_UNUSED,
15805 : rtx_insn *insn ATTRIBUTE_UNUSED,
15806 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15807 : {
15808 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15809 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
15810 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
15811 : int res ATTRIBUTE_UNUSED;
15812 : x2 = XEXP (x1, 1);
15813 : x3 = XEXP (x2, 0);
15814 : x4 = XEXP (x3, 2);
15815 : if (!register_operand (x4, E_QImode))
15816 : return -1;
15817 : x5 = XEXP (x3, 0);
15818 : switch (GET_CODE (x5))
15819 : {
15820 : case FLOAT:
15821 : switch (pattern503 (x2))
15822 : {
15823 : case 0:
15824 : if (!
15825 : #line 8054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15826 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
15827 : return -1;
15828 : return 4569; /* *avx512fp16_vcvtdq2ph_v4si_mask */
15829 :
15830 : case 1:
15831 : if (!
15832 : #line 8054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15833 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
15834 : return -1;
15835 : return 4571; /* *avx512fp16_vcvtqq2ph_v4di_mask */
15836 :
15837 : case 2:
15838 : if (!
15839 : #line 8130 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15840 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
15841 : return -1;
15842 : return 4579; /* *avx512fp16_vcvtqq2ph_v2di_mask */
15843 :
15844 : case 3:
15845 : if (!
15846 : #line 9643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15847 : (TARGET_AVX512DQ && TARGET_AVX512VL))
15848 : return -1;
15849 : return 5023; /* *floatv2div2sf2_mask */
15850 :
15851 : case 4:
15852 : if (!
15853 : #line 8069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15854 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
15855 : return -1;
15856 : return 4573; /* *avx512fp16_vcvtdq2ph_v4si_mask_1 */
15857 :
15858 : case 5:
15859 : if (!
15860 : #line 8069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15861 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
15862 : return -1;
15863 : return 4575; /* *avx512fp16_vcvtqq2ph_v4di_mask_1 */
15864 :
15865 : case 6:
15866 : if (!
15867 : #line 8145 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15868 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
15869 : return -1;
15870 : return 4581; /* *avx512fp16_vcvtqq2ph_v2di_mask_1 */
15871 :
15872 : case 7:
15873 : if (!
15874 : #line 9658 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15875 : (TARGET_AVX512DQ && TARGET_AVX512VL))
15876 : return -1;
15877 : return 5025; /* *floatv2div2sf2_mask_1 */
15878 :
15879 : default:
15880 : return -1;
15881 : }
15882 :
15883 : case UNSIGNED_FLOAT:
15884 : switch (pattern503 (x2))
15885 : {
15886 : case 0:
15887 : if (!
15888 : #line 8054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15889 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
15890 : return -1;
15891 : return 4570; /* *avx512fp16_vcvtudq2ph_v4si_mask */
15892 :
15893 : case 1:
15894 : if (!
15895 : #line 8054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15896 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
15897 : return -1;
15898 : return 4572; /* *avx512fp16_vcvtuqq2ph_v4di_mask */
15899 :
15900 : case 2:
15901 : if (!
15902 : #line 8130 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15903 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
15904 : return -1;
15905 : return 4580; /* *avx512fp16_vcvtuqq2ph_v2di_mask */
15906 :
15907 : case 3:
15908 : if (!
15909 : #line 9643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15910 : (TARGET_AVX512DQ && TARGET_AVX512VL))
15911 : return -1;
15912 : return 5024; /* *floatunsv2div2sf2_mask */
15913 :
15914 : case 4:
15915 : if (!
15916 : #line 8069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15917 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
15918 : return -1;
15919 : return 4574; /* *avx512fp16_vcvtudq2ph_v4si_mask_1 */
15920 :
15921 : case 5:
15922 : if (!
15923 : #line 8069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15924 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
15925 : return -1;
15926 : return 4576; /* *avx512fp16_vcvtuqq2ph_v4di_mask_1 */
15927 :
15928 : case 6:
15929 : if (!
15930 : #line 8145 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15931 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
15932 : return -1;
15933 : return 4582; /* *avx512fp16_vcvtuqq2ph_v2di_mask_1 */
15934 :
15935 : case 7:
15936 : if (!
15937 : #line 9658 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15938 : (TARGET_AVX512DQ && TARGET_AVX512VL))
15939 : return -1;
15940 : return 5026; /* *floatunsv2div2sf2_mask_1 */
15941 :
15942 : default:
15943 : return -1;
15944 : }
15945 :
15946 : case FLOAT_TRUNCATE:
15947 : x6 = XEXP (x5, 0);
15948 : operands[1] = x6;
15949 : x7 = XEXP (x2, 1);
15950 : operands[4] = x7;
15951 : x8 = XEXP (x3, 1);
15952 : switch (GET_CODE (x8))
15953 : {
15954 : case VEC_SELECT:
15955 : x9 = XEXP (x8, 1);
15956 : if (GET_CODE (x9) != PARALLEL)
15957 : return -1;
15958 : x10 = XEXP (x8, 0);
15959 : operands[2] = x10;
15960 : operands[3] = x4;
15961 : switch (XVECLEN (x9, 0))
15962 : {
15963 : case 4:
15964 : if (pattern1227 (x9,
15965 : 3,
15966 : 2,
15967 : 1,
15968 : 0) != 0)
15969 : return -1;
15970 : switch (GET_MODE (operands[0]))
15971 : {
15972 : case E_V8HFmode:
15973 : if (!register_operand (operands[0], E_V8HFmode)
15974 : || GET_MODE (x2) != E_V8HFmode
15975 : || GET_MODE (x3) != E_V4HFmode
15976 : || GET_MODE (x5) != E_V4HFmode
15977 : || GET_MODE (x8) != E_V4HFmode
15978 : || !nonimm_or_0_operand (operands[2], E_V8HFmode))
15979 : return -1;
15980 : switch (pattern1566 ())
15981 : {
15982 : case 0:
15983 : if (!
15984 : #line 8525 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15985 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
15986 : return -1;
15987 : return 4793; /* *avx512fp16_vcvtpd2ph_v4df_mask */
15988 :
15989 : case 1:
15990 : if (!
15991 : #line 8525 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15992 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
15993 : return -1;
15994 : return 4794; /* *avx512fp16_vcvtps2ph_v4sf_mask */
15995 :
15996 : default:
15997 : return -1;
15998 : }
15999 :
16000 : case E_V8BFmode:
16001 : if (pattern499 (x2,
16002 : E_V4BFmode,
16003 : E_V8BFmode,
16004 : E_V4SFmode) != 0
16005 : || !
16006 : #line 31807 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16007 : (TARGET_AVX512BF16 && TARGET_AVX512VL))
16008 : return -1;
16009 : return 10418; /* avx512f_cvtneps2bf16_v4sf_mask_1 */
16010 :
16011 : default:
16012 : return -1;
16013 : }
16014 :
16015 : case 2:
16016 : switch (pattern500 (x2,
16017 : E_V2DFmode))
16018 : {
16019 : case 0:
16020 : if (!
16021 : #line 8601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16022 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
16023 : return -1;
16024 : return 4798; /* *avx512fp16_vcvtpd2ph_v2df_mask */
16025 :
16026 : case 1:
16027 : if (!
16028 : #line 10507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16029 : (TARGET_AVX512VL))
16030 : return -1;
16031 : return 5198; /* *sse2_cvtpd2ps_mask */
16032 :
16033 : default:
16034 : return -1;
16035 : }
16036 :
16037 : default:
16038 : return -1;
16039 : }
16040 :
16041 : case CONST_INT:
16042 : case CONST_DOUBLE:
16043 : case CONST_VECTOR:
16044 : operands[3] = x8;
16045 : operands[2] = x4;
16046 : switch (GET_MODE (operands[0]))
16047 : {
16048 : case E_V8HFmode:
16049 : if (!register_operand (operands[0], E_V8HFmode)
16050 : || GET_MODE (x2) != E_V8HFmode)
16051 : return -1;
16052 : switch (GET_MODE (x3))
16053 : {
16054 : case E_V4HFmode:
16055 : if (GET_MODE (x5) != E_V4HFmode
16056 : || !const0_operand (operands[3], E_V4HFmode))
16057 : return -1;
16058 : switch (pattern1566 ())
16059 : {
16060 : case 0:
16061 : if (!
16062 : #line 8540 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16063 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
16064 : return -1;
16065 : return 4795; /* *avx512fp16_vcvtpd2ph_v4df_mask_1 */
16066 :
16067 : case 1:
16068 : if (!
16069 : #line 8540 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16070 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
16071 : return -1;
16072 : return 4796; /* *avx512fp16_vcvtps2ph_v4sf_mask_1 */
16073 :
16074 : default:
16075 : return -1;
16076 : }
16077 :
16078 : case E_V2HFmode:
16079 : if (pattern501 (x5,
16080 : E_V2DFmode) != 0
16081 : || !
16082 : #line 8616 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16083 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
16084 : return -1;
16085 : return 4799; /* *avx512fp16_vcvtpd2ph_v2df_mask_1 */
16086 :
16087 : default:
16088 : return -1;
16089 : }
16090 :
16091 : case E_V4SFmode:
16092 : if (pattern502 (x2,
16093 : E_V2DFmode) != 0
16094 : || !
16095 : #line 10522 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16096 : (TARGET_AVX512VL))
16097 : return -1;
16098 : return 5199; /* *sse2_cvtpd2ps_mask_1 */
16099 :
16100 : default:
16101 : return -1;
16102 : }
16103 :
16104 : default:
16105 : return -1;
16106 : }
16107 :
16108 : case UNSPEC:
16109 : switch (XVECLEN (x5, 0))
16110 : {
16111 : case 1:
16112 : x11 = XVECEXP (x5, 0, 0);
16113 : operands[1] = x11;
16114 : switch (XINT (x5, 1))
16115 : {
16116 : case 47:
16117 : switch (pattern920 (x2))
16118 : {
16119 : case 0:
16120 : if (!
16121 : #line 9802 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16122 : (TARGET_AVX512VL))
16123 : return -1;
16124 : return 5045; /* sse2_cvtpd2dq_mask */
16125 :
16126 : case 1:
16127 : if (!
16128 : #line 9817 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16129 : (TARGET_AVX512VL))
16130 : return -1;
16131 : return 5046; /* *sse2_cvtpd2dq_mask_1 */
16132 :
16133 : default:
16134 : return -1;
16135 : }
16136 :
16137 : case 157:
16138 : switch (pattern920 (x2))
16139 : {
16140 : case 0:
16141 : if (!
16142 : #line 9863 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16143 : (TARGET_AVX512VL))
16144 : return -1;
16145 : return 5056; /* fixuns_notruncv2dfv2si2_mask */
16146 :
16147 : case 1:
16148 : if (!
16149 : #line 9879 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16150 : (TARGET_AVX512VL))
16151 : return -1;
16152 : return 5057; /* *fixuns_notruncv2dfv2si2_mask_1 */
16153 :
16154 : default:
16155 : return -1;
16156 : }
16157 :
16158 : case 174:
16159 : if (GET_MODE (x5) != E_V2SImode)
16160 : return -1;
16161 : x8 = XEXP (x3, 1);
16162 : if (pattern678 (x8,
16163 : 2,
16164 : E_V2SImode) != 0)
16165 : return -1;
16166 : x9 = XEXP (x8, 1);
16167 : x12 = XVECEXP (x9, 0, 0);
16168 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
16169 : return -1;
16170 : x13 = XVECEXP (x9, 0, 1);
16171 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
16172 : return -1;
16173 : x7 = XEXP (x2, 1);
16174 : if (GET_CODE (x7) != CONST_VECTOR
16175 : || XVECLEN (x7, 0) != 2
16176 : || GET_MODE (x7) != E_V2SImode)
16177 : return -1;
16178 : x14 = XVECEXP (x7, 0, 0);
16179 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
16180 : return -1;
16181 : x15 = XVECEXP (x7, 0, 1);
16182 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
16183 : || !register_operand (operands[0], E_V4SImode)
16184 : || GET_MODE (x2) != E_V4SImode
16185 : || GET_MODE (x3) != E_V2SImode
16186 : || !nonimmediate_operand (operands[1], E_V2DFmode))
16187 : return -1;
16188 : x10 = XEXP (x8, 0);
16189 : operands[2] = x10;
16190 : if (!nonimm_or_0_operand (operands[2], E_V4SImode))
16191 : return -1;
16192 : operands[3] = x4;
16193 : if (!
16194 : #line 9940 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16195 : (TARGET_AVX512VL))
16196 : return -1;
16197 : return 5076; /* unspec_fixuns_truncv2dfv2si2_mask */
16198 :
16199 : case 254:
16200 : if (pattern921 (x2) != 0
16201 : || !
16202 : #line 32613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16203 : (TARGET_AVX10_2))
16204 : return -1;
16205 : return 10570; /* *vcvtph2bf8v8hf_mask */
16206 :
16207 : case 255:
16208 : if (pattern921 (x2) != 0
16209 : || !
16210 : #line 32613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16211 : (TARGET_AVX10_2))
16212 : return -1;
16213 : return 10571; /* *vcvtph2bf8sv8hf_mask */
16214 :
16215 : case 256:
16216 : if (pattern921 (x2) != 0
16217 : || !
16218 : #line 32613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16219 : (TARGET_AVX10_2))
16220 : return -1;
16221 : return 10572; /* *vcvtph2hf8v8hf_mask */
16222 :
16223 : case 257:
16224 : if (pattern921 (x2) != 0
16225 : || !
16226 : #line 32613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16227 : (TARGET_AVX10_2))
16228 : return -1;
16229 : return 10573; /* *vcvtph2hf8sv8hf_mask */
16230 :
16231 : default:
16232 : return -1;
16233 : }
16234 :
16235 : case 2:
16236 : x8 = XEXP (x3, 1);
16237 : if (pattern678 (x8,
16238 : 8,
16239 : E_V8QImode) != 0)
16240 : return -1;
16241 : x9 = XEXP (x8, 1);
16242 : x12 = XVECEXP (x9, 0, 0);
16243 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
16244 : return -1;
16245 : x13 = XVECEXP (x9, 0, 1);
16246 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
16247 : return -1;
16248 : x16 = XVECEXP (x9, 0, 2);
16249 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 2]
16250 : || pattern1424 (x9,
16251 : 7,
16252 : 6,
16253 : 5,
16254 : 4,
16255 : 3) != 0
16256 : || !register_operand (operands[0], E_V16QImode)
16257 : || GET_MODE (x2) != E_V16QImode
16258 : || GET_MODE (x3) != E_V8QImode
16259 : || GET_MODE (x5) != E_V8QImode)
16260 : return -1;
16261 : x11 = XVECEXP (x5, 0, 0);
16262 : operands[1] = x11;
16263 : if (!register_operand (operands[1], E_V16QImode))
16264 : return -1;
16265 : x17 = XVECEXP (x5, 0, 1);
16266 : operands[2] = x17;
16267 : if (!nonimmediate_operand (operands[2], E_V8HFmode))
16268 : return -1;
16269 : x10 = XEXP (x8, 0);
16270 : operands[3] = x10;
16271 : if (!nonimm_or_0_operand (operands[3], E_V16QImode))
16272 : return -1;
16273 : operands[4] = x4;
16274 : x7 = XEXP (x2, 1);
16275 : operands[5] = x7;
16276 : if (!const0_operand (operands[5], E_V8QImode))
16277 : return -1;
16278 : switch (XINT (x5, 1))
16279 : {
16280 : case 246:
16281 : if (!
16282 : #line 32525 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16283 : (TARGET_AVX10_2))
16284 : return -1;
16285 : return 10546; /* *vcvtbiasph2bf8v8hf_mask */
16286 :
16287 : case 247:
16288 : if (!
16289 : #line 32525 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16290 : (TARGET_AVX10_2))
16291 : return -1;
16292 : return 10547; /* *vcvtbiasph2bf8sv8hf_mask */
16293 :
16294 : case 248:
16295 : if (!
16296 : #line 32525 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16297 : (TARGET_AVX10_2))
16298 : return -1;
16299 : return 10548; /* *vcvtbiasph2hf8v8hf_mask */
16300 :
16301 : case 249:
16302 : if (!
16303 : #line 32525 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16304 : (TARGET_AVX10_2))
16305 : return -1;
16306 : return 10549; /* *vcvtbiasph2hf8sv8hf_mask */
16307 :
16308 : default:
16309 : return -1;
16310 : }
16311 :
16312 : default:
16313 : return -1;
16314 : }
16315 :
16316 : case UNSIGNED_FIX:
16317 : switch (pattern505 (x2))
16318 : {
16319 : case 0:
16320 : if (!
16321 : #line 9956 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16322 : (TARGET_AVX512VL))
16323 : return -1;
16324 : return 5077; /* fixuns_truncv2dfv2si2_mask */
16325 :
16326 : case 1:
16327 : if (!
16328 : #line 9970 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16329 : (TARGET_AVX512VL))
16330 : return -1;
16331 : return 5078; /* *fixuns_truncv2dfv2si2_mask_1 */
16332 :
16333 : default:
16334 : return -1;
16335 : }
16336 :
16337 : case FIX:
16338 : switch (pattern505 (x2))
16339 : {
16340 : case 0:
16341 : if (!
16342 : #line 10305 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16343 : (TARGET_AVX512VL))
16344 : return -1;
16345 : return 5178; /* sse2_cvttpd2dq_mask */
16346 :
16347 : case 1:
16348 : if (!
16349 : #line 10319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16350 : (TARGET_AVX512VL))
16351 : return -1;
16352 : return 5179; /* *sse2_cvttpd2dq_mask_1 */
16353 :
16354 : default:
16355 : return -1;
16356 : }
16357 :
16358 : case SS_TRUNCATE:
16359 : switch (pattern511 (x2))
16360 : {
16361 : case 0:
16362 : if (!
16363 : #line 15761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16364 : (TARGET_AVX512VL))
16365 : return -1;
16366 : return 7337; /* avx512vl_ss_truncatev2div2qi2_mask */
16367 :
16368 : case 1:
16369 : if (!
16370 : #line 16203 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16371 : (TARGET_AVX512VL))
16372 : return -1;
16373 : return 7452; /* avx512vl_ss_truncatev2div2hi2_mask */
16374 :
16375 : case 2:
16376 : if (!
16377 : #line 16351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16378 : (TARGET_AVX512VL))
16379 : return -1;
16380 : return 7471; /* avx512vl_ss_truncatev2div2si2_mask */
16381 :
16382 : case 3:
16383 : if (!
16384 : #line 15856 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16385 : (TARGET_AVX512VL))
16386 : return -1;
16387 : return 7358; /* avx512vl_ss_truncatev4siv4qi2_mask */
16388 :
16389 : case 4:
16390 : if (!
16391 : #line 15856 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16392 : (TARGET_AVX512VL))
16393 : return -1;
16394 : return 7361; /* avx512vl_ss_truncatev4div4qi2_mask */
16395 :
16396 : case 5:
16397 : if (!
16398 : #line 16112 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16399 : (TARGET_AVX512VL))
16400 : return -1;
16401 : return 7428; /* avx512vl_ss_truncatev4siv4hi2_mask */
16402 :
16403 : case 6:
16404 : if (!
16405 : #line 16112 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16406 : (TARGET_AVX512VL))
16407 : return -1;
16408 : return 7431; /* avx512vl_ss_truncatev4div4hi2_mask */
16409 :
16410 : case 7:
16411 : if (!(
16412 : #line 15954 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16413 : (TARGET_AVX512VL) &&
16414 : #line 15912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16415 : (TARGET_AVX512BW)))
16416 : return -1;
16417 : return 7388; /* avx512vl_ss_truncatev8hiv8qi2_mask */
16418 :
16419 : case 8:
16420 : if (!
16421 : #line 15954 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16422 : (TARGET_AVX512VL))
16423 : return -1;
16424 : return 7391; /* avx512vl_ss_truncatev8siv8qi2_mask */
16425 :
16426 : case 9:
16427 : if (!
16428 : #line 16470 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16429 : (TARGET_AVX512F))
16430 : return -1;
16431 : return 7489; /* avx512f_ss_truncatev8div16qi2_mask */
16432 :
16433 : case 10:
16434 : if (!
16435 : #line 15782 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16436 : (TARGET_AVX512VL))
16437 : return -1;
16438 : return 7340; /* *avx512vl_ss_truncatev2div2qi2_mask_1 */
16439 :
16440 : case 11:
16441 : if (!
16442 : #line 16220 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16443 : (TARGET_AVX512VL))
16444 : return -1;
16445 : return 7455; /* *avx512vl_ss_truncatev2div2hi2_mask_1 */
16446 :
16447 : case 12:
16448 : if (!
16449 : #line 16366 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16450 : (TARGET_AVX512VL))
16451 : return -1;
16452 : return 7474; /* *avx512vl_ss_truncatev2div2si2_mask_1 */
16453 :
16454 : case 13:
16455 : if (!
16456 : #line 15877 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16457 : (TARGET_AVX512VL))
16458 : return -1;
16459 : return 7364; /* *avx512vl_ss_truncatev4siv4qi2_mask_1 */
16460 :
16461 : case 14:
16462 : if (!
16463 : #line 15877 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16464 : (TARGET_AVX512VL))
16465 : return -1;
16466 : return 7367; /* *avx512vl_ss_truncatev4div4qi2_mask_1 */
16467 :
16468 : case 15:
16469 : if (!
16470 : #line 16129 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16471 : (TARGET_AVX512VL))
16472 : return -1;
16473 : return 7434; /* *avx512vl_ss_truncatev4siv4hi2_mask_1 */
16474 :
16475 : case 16:
16476 : if (!
16477 : #line 16129 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16478 : (TARGET_AVX512VL))
16479 : return -1;
16480 : return 7437; /* *avx512vl_ss_truncatev4div4hi2_mask_1 */
16481 :
16482 : case 17:
16483 : if (!(
16484 : #line 15975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16485 : (TARGET_AVX512VL) &&
16486 : #line 15912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16487 : (TARGET_AVX512BW)))
16488 : return -1;
16489 : return 7394; /* *avx512vl_ss_truncatev8hiv8qi2_mask_1 */
16490 :
16491 : case 18:
16492 : if (!
16493 : #line 15975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16494 : (TARGET_AVX512VL))
16495 : return -1;
16496 : return 7397; /* *avx512vl_ss_truncatev8siv8qi2_mask_1 */
16497 :
16498 : case 19:
16499 : if (!
16500 : #line 16491 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16501 : (TARGET_AVX512F))
16502 : return -1;
16503 : return 7492; /* *avx512f_ss_truncatev8div16qi2_mask_1 */
16504 :
16505 : default:
16506 : return -1;
16507 : }
16508 :
16509 : case TRUNCATE:
16510 : switch (pattern511 (x2))
16511 : {
16512 : case 0:
16513 : if (!
16514 : #line 15761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16515 : (TARGET_AVX512VL))
16516 : return -1;
16517 : return 7338; /* avx512vl_truncatev2div2qi2_mask */
16518 :
16519 : case 1:
16520 : if (!
16521 : #line 16203 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16522 : (TARGET_AVX512VL))
16523 : return -1;
16524 : return 7453; /* avx512vl_truncatev2div2hi2_mask */
16525 :
16526 : case 2:
16527 : if (!
16528 : #line 16351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16529 : (TARGET_AVX512VL))
16530 : return -1;
16531 : return 7472; /* avx512vl_truncatev2div2si2_mask */
16532 :
16533 : case 3:
16534 : if (!
16535 : #line 15856 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16536 : (TARGET_AVX512VL))
16537 : return -1;
16538 : return 7359; /* avx512vl_truncatev4siv4qi2_mask */
16539 :
16540 : case 4:
16541 : if (!
16542 : #line 15856 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16543 : (TARGET_AVX512VL))
16544 : return -1;
16545 : return 7362; /* avx512vl_truncatev4div4qi2_mask */
16546 :
16547 : case 5:
16548 : if (!
16549 : #line 16112 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16550 : (TARGET_AVX512VL))
16551 : return -1;
16552 : return 7429; /* avx512vl_truncatev4siv4hi2_mask */
16553 :
16554 : case 6:
16555 : if (!
16556 : #line 16112 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16557 : (TARGET_AVX512VL))
16558 : return -1;
16559 : return 7432; /* avx512vl_truncatev4div4hi2_mask */
16560 :
16561 : case 7:
16562 : if (!(
16563 : #line 15954 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16564 : (TARGET_AVX512VL) &&
16565 : #line 15912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16566 : (TARGET_AVX512BW)))
16567 : return -1;
16568 : return 7389; /* avx512vl_truncatev8hiv8qi2_mask */
16569 :
16570 : case 8:
16571 : if (!
16572 : #line 15954 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16573 : (TARGET_AVX512VL))
16574 : return -1;
16575 : return 7392; /* avx512vl_truncatev8siv8qi2_mask */
16576 :
16577 : case 9:
16578 : if (!
16579 : #line 16470 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16580 : (TARGET_AVX512F))
16581 : return -1;
16582 : return 7490; /* avx512f_truncatev8div16qi2_mask */
16583 :
16584 : case 10:
16585 : if (!
16586 : #line 15782 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16587 : (TARGET_AVX512VL))
16588 : return -1;
16589 : return 7341; /* *avx512vl_truncatev2div2qi2_mask_1 */
16590 :
16591 : case 11:
16592 : if (!
16593 : #line 16220 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16594 : (TARGET_AVX512VL))
16595 : return -1;
16596 : return 7456; /* *avx512vl_truncatev2div2hi2_mask_1 */
16597 :
16598 : case 12:
16599 : if (!
16600 : #line 16366 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16601 : (TARGET_AVX512VL))
16602 : return -1;
16603 : return 7475; /* *avx512vl_truncatev2div2si2_mask_1 */
16604 :
16605 : case 13:
16606 : if (!
16607 : #line 15877 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16608 : (TARGET_AVX512VL))
16609 : return -1;
16610 : return 7365; /* *avx512vl_truncatev4siv4qi2_mask_1 */
16611 :
16612 : case 14:
16613 : if (!
16614 : #line 15877 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16615 : (TARGET_AVX512VL))
16616 : return -1;
16617 : return 7368; /* *avx512vl_truncatev4div4qi2_mask_1 */
16618 :
16619 : case 15:
16620 : if (!
16621 : #line 16129 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16622 : (TARGET_AVX512VL))
16623 : return -1;
16624 : return 7435; /* *avx512vl_truncatev4siv4hi2_mask_1 */
16625 :
16626 : case 16:
16627 : if (!
16628 : #line 16129 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16629 : (TARGET_AVX512VL))
16630 : return -1;
16631 : return 7438; /* *avx512vl_truncatev4div4hi2_mask_1 */
16632 :
16633 : case 17:
16634 : if (!(
16635 : #line 15975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16636 : (TARGET_AVX512VL) &&
16637 : #line 15912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16638 : (TARGET_AVX512BW)))
16639 : return -1;
16640 : return 7395; /* *avx512vl_truncatev8hiv8qi2_mask_1 */
16641 :
16642 : case 18:
16643 : if (!
16644 : #line 15975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16645 : (TARGET_AVX512VL))
16646 : return -1;
16647 : return 7398; /* *avx512vl_truncatev8siv8qi2_mask_1 */
16648 :
16649 : case 19:
16650 : if (!
16651 : #line 16491 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16652 : (TARGET_AVX512F))
16653 : return -1;
16654 : return 7493; /* *avx512f_truncatev8div16qi2_mask_1 */
16655 :
16656 : default:
16657 : return -1;
16658 : }
16659 :
16660 : case US_TRUNCATE:
16661 : switch (pattern511 (x2))
16662 : {
16663 : case 0:
16664 : if (!
16665 : #line 15761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16666 : (TARGET_AVX512VL))
16667 : return -1;
16668 : return 7339; /* avx512vl_us_truncatev2div2qi2_mask */
16669 :
16670 : case 1:
16671 : if (!
16672 : #line 16203 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16673 : (TARGET_AVX512VL))
16674 : return -1;
16675 : return 7454; /* avx512vl_us_truncatev2div2hi2_mask */
16676 :
16677 : case 2:
16678 : if (!
16679 : #line 16351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16680 : (TARGET_AVX512VL))
16681 : return -1;
16682 : return 7473; /* avx512vl_us_truncatev2div2si2_mask */
16683 :
16684 : case 3:
16685 : if (!
16686 : #line 15856 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16687 : (TARGET_AVX512VL))
16688 : return -1;
16689 : return 7360; /* avx512vl_us_truncatev4siv4qi2_mask */
16690 :
16691 : case 4:
16692 : if (!
16693 : #line 15856 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16694 : (TARGET_AVX512VL))
16695 : return -1;
16696 : return 7363; /* avx512vl_us_truncatev4div4qi2_mask */
16697 :
16698 : case 5:
16699 : if (!
16700 : #line 16112 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16701 : (TARGET_AVX512VL))
16702 : return -1;
16703 : return 7430; /* avx512vl_us_truncatev4siv4hi2_mask */
16704 :
16705 : case 6:
16706 : if (!
16707 : #line 16112 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16708 : (TARGET_AVX512VL))
16709 : return -1;
16710 : return 7433; /* avx512vl_us_truncatev4div4hi2_mask */
16711 :
16712 : case 7:
16713 : if (!(
16714 : #line 15954 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16715 : (TARGET_AVX512VL) &&
16716 : #line 15912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16717 : (TARGET_AVX512BW)))
16718 : return -1;
16719 : return 7390; /* avx512vl_us_truncatev8hiv8qi2_mask */
16720 :
16721 : case 8:
16722 : if (!
16723 : #line 15954 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16724 : (TARGET_AVX512VL))
16725 : return -1;
16726 : return 7393; /* avx512vl_us_truncatev8siv8qi2_mask */
16727 :
16728 : case 9:
16729 : if (!
16730 : #line 16470 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16731 : (TARGET_AVX512F))
16732 : return -1;
16733 : return 7491; /* avx512f_us_truncatev8div16qi2_mask */
16734 :
16735 : case 10:
16736 : if (!
16737 : #line 15782 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16738 : (TARGET_AVX512VL))
16739 : return -1;
16740 : return 7342; /* *avx512vl_us_truncatev2div2qi2_mask_1 */
16741 :
16742 : case 11:
16743 : if (!
16744 : #line 16220 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16745 : (TARGET_AVX512VL))
16746 : return -1;
16747 : return 7457; /* *avx512vl_us_truncatev2div2hi2_mask_1 */
16748 :
16749 : case 12:
16750 : if (!
16751 : #line 16366 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16752 : (TARGET_AVX512VL))
16753 : return -1;
16754 : return 7476; /* *avx512vl_us_truncatev2div2si2_mask_1 */
16755 :
16756 : case 13:
16757 : if (!
16758 : #line 15877 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16759 : (TARGET_AVX512VL))
16760 : return -1;
16761 : return 7366; /* *avx512vl_us_truncatev4siv4qi2_mask_1 */
16762 :
16763 : case 14:
16764 : if (!
16765 : #line 15877 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16766 : (TARGET_AVX512VL))
16767 : return -1;
16768 : return 7369; /* *avx512vl_us_truncatev4div4qi2_mask_1 */
16769 :
16770 : case 15:
16771 : if (!
16772 : #line 16129 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16773 : (TARGET_AVX512VL))
16774 : return -1;
16775 : return 7436; /* *avx512vl_us_truncatev4siv4hi2_mask_1 */
16776 :
16777 : case 16:
16778 : if (!
16779 : #line 16129 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16780 : (TARGET_AVX512VL))
16781 : return -1;
16782 : return 7439; /* *avx512vl_us_truncatev4div4hi2_mask_1 */
16783 :
16784 : case 17:
16785 : if (!(
16786 : #line 15975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16787 : (TARGET_AVX512VL) &&
16788 : #line 15912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16789 : (TARGET_AVX512BW)))
16790 : return -1;
16791 : return 7396; /* *avx512vl_us_truncatev8hiv8qi2_mask_1 */
16792 :
16793 : case 18:
16794 : if (!
16795 : #line 15975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16796 : (TARGET_AVX512VL))
16797 : return -1;
16798 : return 7399; /* *avx512vl_us_truncatev8siv8qi2_mask_1 */
16799 :
16800 : case 19:
16801 : if (!
16802 : #line 16491 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16803 : (TARGET_AVX512F))
16804 : return -1;
16805 : return 7494; /* *avx512f_us_truncatev8div16qi2_mask_1 */
16806 :
16807 : default:
16808 : return -1;
16809 : }
16810 :
16811 : default:
16812 : return -1;
16813 : }
16814 : }
16815 :
16816 : int
16817 : recog_292 (rtx x1 ATTRIBUTE_UNUSED,
16818 : rtx_insn *insn ATTRIBUTE_UNUSED,
16819 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16820 : {
16821 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16822 : rtx x2, x3, x4, x5, x6, x7;
16823 : int res ATTRIBUTE_UNUSED;
16824 : x2 = XEXP (x1, 1);
16825 : x3 = XEXP (x2, 1);
16826 : x4 = XVECEXP (x3, 0, 0);
16827 : if (GET_CODE (x4) != CONST_INT)
16828 : return -1;
16829 : operands[2] = x4;
16830 : res = recog_291 (x1, insn, pnum_clobbers);
16831 : if (res >= 0)
16832 : return res;
16833 : x5 = XVECEXP (x3, 0, 1);
16834 : if (GET_CODE (x5) != CONST_INT)
16835 : return -1;
16836 : x6 = XVECEXP (x3, 0, 2);
16837 : if (GET_CODE (x6) != CONST_INT)
16838 : return -1;
16839 : x7 = XVECEXP (x3, 0, 3);
16840 : if (GET_CODE (x7) != CONST_INT)
16841 : return -1;
16842 : switch (XWINT (x4, 0))
16843 : {
16844 : case 0L:
16845 : if (XWINT (x5, 0) != 1L
16846 : || XWINT (x6, 0) != 2L
16847 : || XWINT (x7, 0) != 3L)
16848 : return -1;
16849 : switch (GET_MODE (operands[0]))
16850 : {
16851 : case E_V4DFmode:
16852 : if (!nonimmediate_operand (operands[0], E_V4DFmode)
16853 : || GET_MODE (x2) != E_V4DFmode
16854 : || !nonimmediate_operand (operands[1], E_V8DFmode)
16855 : || !
16856 : #line 12962 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16857 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
16858 : return -1;
16859 : return 5359; /* vec_extract_lo_v8df */
16860 :
16861 : case E_V4DImode:
16862 : if (!nonimmediate_operand (operands[0], E_V4DImode)
16863 : || GET_MODE (x2) != E_V4DImode
16864 : || !nonimmediate_operand (operands[1], E_V8DImode)
16865 : || !
16866 : #line 12962 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16867 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
16868 : return -1;
16869 : return 5360; /* vec_extract_lo_v8di */
16870 :
16871 : case E_V4SImode:
16872 : if (!nonimmediate_operand (operands[0], E_V4SImode)
16873 : || GET_MODE (x2) != E_V4SImode
16874 : || !nonimmediate_operand (operands[1], E_V8SImode)
16875 : || !
16876 : #line 13295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16877 : (TARGET_AVX
16878 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
16879 : return -1;
16880 : return 5383; /* vec_extract_lo_v8si */
16881 :
16882 : case E_V4SFmode:
16883 : if (!nonimmediate_operand (operands[0], E_V4SFmode)
16884 : || GET_MODE (x2) != E_V4SFmode
16885 : || !nonimmediate_operand (operands[1], E_V8SFmode)
16886 : || !
16887 : #line 13295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16888 : (TARGET_AVX
16889 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
16890 : return -1;
16891 : return 5384; /* vec_extract_lo_v8sf */
16892 :
16893 : default:
16894 : return -1;
16895 : }
16896 :
16897 : case 4L:
16898 : if (XWINT (x5, 0) != 5L
16899 : || XWINT (x6, 0) != 6L
16900 : || XWINT (x7, 0) != 7L)
16901 : return -1;
16902 : switch (GET_MODE (operands[0]))
16903 : {
16904 : case E_V4DFmode:
16905 : if (!nonimmediate_operand (operands[0], E_V4DFmode)
16906 : || GET_MODE (x2) != E_V4DFmode
16907 : || !register_operand (operands[1], E_V8DFmode)
16908 : || !
16909 : #line 12998 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16910 : (TARGET_AVX512F))
16911 : return -1;
16912 : return 5363; /* vec_extract_hi_v8df */
16913 :
16914 : case E_V4DImode:
16915 : if (!nonimmediate_operand (operands[0], E_V4DImode)
16916 : || GET_MODE (x2) != E_V4DImode
16917 : || !register_operand (operands[1], E_V8DImode)
16918 : || !
16919 : #line 12998 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16920 : (TARGET_AVX512F))
16921 : return -1;
16922 : return 5364; /* vec_extract_hi_v8di */
16923 :
16924 : case E_V4SImode:
16925 : if (!nonimmediate_operand (operands[0], E_V4SImode)
16926 : || GET_MODE (x2) != E_V4SImode
16927 : || !register_operand (operands[1], E_V8SImode)
16928 : || !
16929 : #line 13327 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16930 : (TARGET_AVX))
16931 : return -1;
16932 : return 5387; /* vec_extract_hi_v8si */
16933 :
16934 : case E_V4SFmode:
16935 : if (!nonimmediate_operand (operands[0], E_V4SFmode)
16936 : || GET_MODE (x2) != E_V4SFmode
16937 : || !register_operand (operands[1], E_V8SFmode)
16938 : || !
16939 : #line 13327 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16940 : (TARGET_AVX))
16941 : return -1;
16942 : return 5388; /* vec_extract_hi_v8sf */
16943 :
16944 : default:
16945 : return -1;
16946 : }
16947 :
16948 : default:
16949 : return -1;
16950 : }
16951 : }
16952 :
16953 : int
16954 : recog_299 (rtx x1 ATTRIBUTE_UNUSED,
16955 : rtx_insn *insn ATTRIBUTE_UNUSED,
16956 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16957 : {
16958 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16959 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
16960 : rtx x10, x11;
16961 : int res ATTRIBUTE_UNUSED;
16962 : x2 = XEXP (x1, 1);
16963 : x3 = XEXP (x2, 1);
16964 : x4 = XVECEXP (x3, 0, 4);
16965 : if (GET_CODE (x4) != CONST_INT)
16966 : return -1;
16967 : operands[6] = x4;
16968 : res = recog_298 (x1, insn, pnum_clobbers);
16969 : if (res >= 0)
16970 : return res;
16971 : if (XWINT (x4, 0) != 4L)
16972 : return -1;
16973 : x5 = XVECEXP (x3, 0, 5);
16974 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
16975 : return -1;
16976 : x6 = XVECEXP (x3, 0, 6);
16977 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
16978 : return -1;
16979 : x7 = XVECEXP (x3, 0, 7);
16980 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
16981 : || pattern1426 (x3) != 0
16982 : || !register_operand (operands[0], E_V16HImode)
16983 : || GET_MODE (x2) != E_V16HImode
16984 : || !nonimmediate_operand (operands[1], E_V16HImode)
16985 : || pattern754 (x3) != 0)
16986 : return -1;
16987 : x8 = XVECEXP (x3, 0, 8);
16988 : operands[6] = x8;
16989 : if (!const_8_to_11_operand (operands[6], E_VOIDmode))
16990 : return -1;
16991 : x9 = XVECEXP (x3, 0, 9);
16992 : operands[7] = x9;
16993 : if (!const_8_to_11_operand (operands[7], E_VOIDmode))
16994 : return -1;
16995 : x10 = XVECEXP (x3, 0, 10);
16996 : operands[8] = x10;
16997 : if (!const_8_to_11_operand (operands[8], E_VOIDmode))
16998 : return -1;
16999 : x11 = XVECEXP (x3, 0, 11);
17000 : operands[9] = x11;
17001 : if (!const_8_to_11_operand (operands[9], E_VOIDmode)
17002 : || !
17003 : #line 21120 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17004 : (TARGET_AVX2
17005 : && 1 && 1
17006 : && INTVAL (operands[2]) + 8 == INTVAL (operands[6])
17007 : && INTVAL (operands[3]) + 8 == INTVAL (operands[7])
17008 : && INTVAL (operands[4]) + 8 == INTVAL (operands[8])
17009 : && INTVAL (operands[5]) + 8 == INTVAL (operands[9])))
17010 : return -1;
17011 : return 8489; /* avx2_pshuflw_1 */
17012 : }
17013 :
17014 : int
17015 : recog_304 (rtx x1 ATTRIBUTE_UNUSED,
17016 : rtx_insn *insn ATTRIBUTE_UNUSED,
17017 : int *pnum_clobbers ATTRIBUTE_UNUSED)
17018 : {
17019 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
17020 : rtx x2, x3, x4, x5, x6, x7;
17021 : int res ATTRIBUTE_UNUSED;
17022 : x2 = XEXP (x1, 1);
17023 : x3 = XEXP (x2, 0);
17024 : x4 = XEXP (x3, 1);
17025 : if (GET_CODE (x4) != PARALLEL)
17026 : return -1;
17027 : x5 = XEXP (x3, 0);
17028 : operands[1] = x5;
17029 : switch (XVECLEN (x4, 0))
17030 : {
17031 : case 1:
17032 : x6 = XVECEXP (x4, 0, 0);
17033 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
17034 : return -1;
17035 : switch (GET_MODE (operands[0]))
17036 : {
17037 : case E_V8SFmode:
17038 : if (!register_operand (operands[0], E_V8SFmode)
17039 : || GET_MODE (x2) != E_V8SFmode
17040 : || GET_MODE (x3) != E_SFmode)
17041 : return -1;
17042 : switch (GET_MODE (operands[1]))
17043 : {
17044 : case E_V4SFmode:
17045 : if (register_operand (operands[1], E_V4SFmode)
17046 : && (
17047 : #line 12042 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17048 : (TARGET_AVX2) &&
17049 : #line 444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17050 : (TARGET_AVX)))
17051 : return 5294; /* avx2_vec_dupv8sf */
17052 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
17053 : || !(
17054 : #line 28403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17055 : (TARGET_AVX512F) &&
17056 : #line 301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17057 : (TARGET_AVX512VL)))
17058 : return -1;
17059 : return 9265; /* avx512vl_vec_dupv8sf */
17060 :
17061 : case E_V8SFmode:
17062 : if (!register_operand (operands[1], E_V8SFmode)
17063 : || !
17064 : #line 12054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17065 : (TARGET_AVX2))
17066 : return -1;
17067 : return 5296; /* avx2_vec_dupv8sf_1 */
17068 :
17069 : default:
17070 : return -1;
17071 : }
17072 :
17073 : case E_V4SFmode:
17074 : if (!register_operand (operands[0], E_V4SFmode)
17075 : || GET_MODE (x2) != E_V4SFmode
17076 : || GET_MODE (x3) != E_SFmode)
17077 : return -1;
17078 : if (register_operand (operands[1], E_V4SFmode)
17079 : &&
17080 : #line 12042 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17081 : (TARGET_AVX2))
17082 : return 5295; /* avx2_vec_dupv4sf */
17083 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
17084 : || !(
17085 : #line 28403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17086 : (TARGET_AVX512F) &&
17087 : #line 301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17088 : (TARGET_AVX512VL)))
17089 : return -1;
17090 : return 9267; /* avx512vl_vec_dupv4sf */
17091 :
17092 : case E_V16SFmode:
17093 : if (!register_operand (operands[0], E_V16SFmode)
17094 : || GET_MODE (x2) != E_V16SFmode
17095 : || GET_MODE (x3) != E_SFmode)
17096 : return -1;
17097 : switch (GET_MODE (operands[1]))
17098 : {
17099 : case E_V16SFmode:
17100 : if (!register_operand (operands[1], E_V16SFmode)
17101 : || !
17102 : #line 12066 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17103 : (TARGET_AVX512F))
17104 : return -1;
17105 : return 5297; /* avx512f_vec_dupv16sf_1 */
17106 :
17107 : case E_V4SFmode:
17108 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
17109 : || !
17110 : #line 28403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17111 : (TARGET_AVX512F))
17112 : return -1;
17113 : return 9263; /* avx512f_vec_dupv16sf */
17114 :
17115 : default:
17116 : return -1;
17117 : }
17118 :
17119 : case E_V8DFmode:
17120 : if (!register_operand (operands[0], E_V8DFmode)
17121 : || GET_MODE (x2) != E_V8DFmode
17122 : || GET_MODE (x3) != E_DFmode)
17123 : return -1;
17124 : switch (GET_MODE (operands[1]))
17125 : {
17126 : case E_V8DFmode:
17127 : if (!register_operand (operands[1], E_V8DFmode)
17128 : || !
17129 : #line 12066 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17130 : (TARGET_AVX512F))
17131 : return -1;
17132 : return 5298; /* avx512f_vec_dupv8df_1 */
17133 :
17134 : case E_V2DFmode:
17135 : if (!nonimmediate_operand (operands[1], E_V2DFmode)
17136 : || !
17137 : #line 28403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17138 : (TARGET_AVX512F))
17139 : return -1;
17140 : return 9269; /* avx512f_vec_dupv8df */
17141 :
17142 : default:
17143 : return -1;
17144 : }
17145 :
17146 : case E_V16SImode:
17147 : if (!register_operand (operands[0], E_V16SImode)
17148 : || GET_MODE (x2) != E_V16SImode
17149 : || GET_MODE (x3) != E_SImode)
17150 : return -1;
17151 : switch (GET_MODE (operands[1]))
17152 : {
17153 : case E_V4SImode:
17154 : if (!nonimmediate_operand (operands[1], E_V4SImode))
17155 : return -1;
17156 : if ((
17157 : #line 27972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17158 : (TARGET_AVX2) &&
17159 : #line 564 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17160 : (TARGET_AVX512F)))
17161 : return 9144; /* avx2_pbroadcastv16si */
17162 : if (!
17163 : #line 28403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17164 : (TARGET_AVX512F))
17165 : return -1;
17166 : return 9251; /* avx512f_vec_dupv16si */
17167 :
17168 : case E_V16SImode:
17169 : if (!nonimmediate_operand (operands[1], E_V16SImode)
17170 : || !
17171 : #line 28389 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17172 : (TARGET_AVX512F))
17173 : return -1;
17174 : return 9245; /* avx512f_vec_dupv16si_1 */
17175 :
17176 : default:
17177 : return -1;
17178 : }
17179 :
17180 : case E_V8DImode:
17181 : if (!register_operand (operands[0], E_V8DImode)
17182 : || GET_MODE (x2) != E_V8DImode
17183 : || GET_MODE (x3) != E_DImode)
17184 : return -1;
17185 : switch (GET_MODE (operands[1]))
17186 : {
17187 : case E_V2DImode:
17188 : if (!nonimmediate_operand (operands[1], E_V2DImode))
17189 : return -1;
17190 : if ((
17191 : #line 27972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17192 : (TARGET_AVX2) &&
17193 : #line 564 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17194 : (TARGET_AVX512F)))
17195 : return 9145; /* avx2_pbroadcastv8di */
17196 : if (!
17197 : #line 28403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17198 : (TARGET_AVX512F))
17199 : return -1;
17200 : return 9257; /* avx512f_vec_dupv8di */
17201 :
17202 : case E_V8DImode:
17203 : if (!nonimmediate_operand (operands[1], E_V8DImode)
17204 : || !
17205 : #line 28389 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17206 : (TARGET_AVX512F))
17207 : return -1;
17208 : return 9246; /* avx512f_vec_dupv8di_1 */
17209 :
17210 : default:
17211 : return -1;
17212 : }
17213 :
17214 : case E_V64QImode:
17215 : if (!register_operand (operands[0], E_V64QImode)
17216 : || GET_MODE (x2) != E_V64QImode
17217 : || GET_MODE (x3) != E_QImode)
17218 : return -1;
17219 : switch (GET_MODE (operands[1]))
17220 : {
17221 : case E_V16QImode:
17222 : if (!nonimmediate_operand (operands[1], E_V16QImode))
17223 : return -1;
17224 : if ((
17225 : #line 27972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17226 : (TARGET_AVX2) &&
17227 : #line 565 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17228 : (TARGET_AVX512BW)))
17229 : return 9146; /* avx2_pbroadcastv64qi */
17230 : if (!
17231 : #line 28422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17232 : (TARGET_AVX512BW))
17233 : return -1;
17234 : return 9275; /* avx512bw_vec_dupv64qi */
17235 :
17236 : case E_V64QImode:
17237 : if (!nonimmediate_operand (operands[1], E_V64QImode)
17238 : || !(
17239 : #line 28389 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17240 : (TARGET_AVX512F) &&
17241 : #line 968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17242 : (TARGET_AVX512BW)))
17243 : return -1;
17244 : return 9248; /* avx512bw_vec_dupv64qi_1 */
17245 :
17246 : default:
17247 : return -1;
17248 : }
17249 :
17250 : case E_V32QImode:
17251 : if (!register_operand (operands[0], E_V32QImode)
17252 : || GET_MODE (x2) != E_V32QImode
17253 : || GET_MODE (x3) != E_QImode)
17254 : return -1;
17255 : switch (GET_MODE (operands[1]))
17256 : {
17257 : case E_V16QImode:
17258 : if (!nonimmediate_operand (operands[1], E_V16QImode))
17259 : return -1;
17260 : if ((
17261 : #line 27972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17262 : (TARGET_AVX2) &&
17263 : #line 565 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17264 : (TARGET_AVX)))
17265 : return 9147; /* avx2_pbroadcastv32qi */
17266 : if (!(
17267 : #line 28422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17268 : (TARGET_AVX512BW) &&
17269 : #line 332 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17270 : (TARGET_AVX512VL)))
17271 : return -1;
17272 : return 9279; /* avx512vl_vec_dupv32qi */
17273 :
17274 : case E_V32QImode:
17275 : if (!nonimmediate_operand (operands[1], E_V32QImode)
17276 : || !
17277 : #line 27986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17278 : (TARGET_AVX2))
17279 : return -1;
17280 : return 9162; /* avx2_pbroadcastv32qi_1 */
17281 :
17282 : default:
17283 : return -1;
17284 : }
17285 :
17286 : case E_V16QImode:
17287 : if (pattern932 (x2,
17288 : E_V16QImode,
17289 : E_QImode) != 0)
17290 : return -1;
17291 : if (
17292 : #line 27972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17293 : (TARGET_AVX2))
17294 : return 9148; /* avx2_pbroadcastv16qi */
17295 : if (!(
17296 : #line 28422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17297 : (TARGET_AVX512BW) &&
17298 : #line 332 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17299 : (TARGET_AVX512VL)))
17300 : return -1;
17301 : return 9277; /* avx512vl_vec_dupv16qi */
17302 :
17303 : case E_V32HImode:
17304 : if (!register_operand (operands[0], E_V32HImode)
17305 : || GET_MODE (x2) != E_V32HImode
17306 : || GET_MODE (x3) != E_HImode)
17307 : return -1;
17308 : switch (GET_MODE (operands[1]))
17309 : {
17310 : case E_V8HImode:
17311 : if (!nonimmediate_operand (operands[1], E_V8HImode))
17312 : return -1;
17313 : if ((
17314 : #line 27972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17315 : (TARGET_AVX2) &&
17316 : #line 566 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17317 : (TARGET_AVX512BW)))
17318 : return 9149; /* avx2_pbroadcastv32hi */
17319 : if (!
17320 : #line 28422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17321 : (TARGET_AVX512BW))
17322 : return -1;
17323 : return 9281; /* avx512bw_vec_dupv32hi */
17324 :
17325 : case E_V32HImode:
17326 : if (!nonimmediate_operand (operands[1], E_V32HImode)
17327 : || !(
17328 : #line 28389 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17329 : (TARGET_AVX512F) &&
17330 : #line 968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17331 : (TARGET_AVX512BW)))
17332 : return -1;
17333 : return 9247; /* avx512bw_vec_dupv32hi_1 */
17334 :
17335 : default:
17336 : return -1;
17337 : }
17338 :
17339 : case E_V16HImode:
17340 : if (!register_operand (operands[0], E_V16HImode)
17341 : || GET_MODE (x2) != E_V16HImode
17342 : || GET_MODE (x3) != E_HImode)
17343 : return -1;
17344 : switch (GET_MODE (operands[1]))
17345 : {
17346 : case E_V8HImode:
17347 : if (!nonimmediate_operand (operands[1], E_V8HImode))
17348 : return -1;
17349 : if ((
17350 : #line 27972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17351 : (TARGET_AVX2) &&
17352 : #line 566 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17353 : (TARGET_AVX)))
17354 : return 9150; /* avx2_pbroadcastv16hi */
17355 : if (!(
17356 : #line 28422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17357 : (TARGET_AVX512BW) &&
17358 : #line 333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17359 : (TARGET_AVX512VL)))
17360 : return -1;
17361 : return 9283; /* avx512vl_vec_dupv16hi */
17362 :
17363 : case E_V16HImode:
17364 : if (!nonimmediate_operand (operands[1], E_V16HImode)
17365 : || !
17366 : #line 27986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17367 : (TARGET_AVX2))
17368 : return -1;
17369 : return 9163; /* avx2_pbroadcastv16hi_1 */
17370 :
17371 : default:
17372 : return -1;
17373 : }
17374 :
17375 : case E_V8HImode:
17376 : if (pattern932 (x2,
17377 : E_V8HImode,
17378 : E_HImode) != 0)
17379 : return -1;
17380 : if (
17381 : #line 27972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17382 : (TARGET_AVX2))
17383 : return 9151; /* avx2_pbroadcastv8hi */
17384 : if (!(
17385 : #line 28422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17386 : (TARGET_AVX512BW) &&
17387 : #line 333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17388 : (TARGET_AVX512VL)))
17389 : return -1;
17390 : return 9285; /* avx512vl_vec_dupv8hi */
17391 :
17392 : case E_V8SImode:
17393 : if (!register_operand (operands[0], E_V8SImode)
17394 : || GET_MODE (x2) != E_V8SImode
17395 : || GET_MODE (x3) != E_SImode)
17396 : return -1;
17397 : switch (GET_MODE (operands[1]))
17398 : {
17399 : case E_V4SImode:
17400 : if (!nonimmediate_operand (operands[1], E_V4SImode))
17401 : return -1;
17402 : if ((
17403 : #line 27972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17404 : (TARGET_AVX2) &&
17405 : #line 567 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17406 : (TARGET_AVX)))
17407 : return 9152; /* avx2_pbroadcastv8si */
17408 : if (!(
17409 : #line 28403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17410 : (TARGET_AVX512F) &&
17411 : #line 299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17412 : (TARGET_AVX512VL)))
17413 : return -1;
17414 : return 9253; /* avx512vl_vec_dupv8si */
17415 :
17416 : case E_V8SImode:
17417 : if (!nonimmediate_operand (operands[1], E_V8SImode)
17418 : || !
17419 : #line 27986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17420 : (TARGET_AVX2))
17421 : return -1;
17422 : return 9164; /* avx2_pbroadcastv8si_1 */
17423 :
17424 : default:
17425 : return -1;
17426 : }
17427 :
17428 : case E_V4SImode:
17429 : if (pattern932 (x2,
17430 : E_V4SImode,
17431 : E_SImode) != 0)
17432 : return -1;
17433 : if (
17434 : #line 27972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17435 : (TARGET_AVX2))
17436 : return 9153; /* avx2_pbroadcastv4si */
17437 : if (!(
17438 : #line 28403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17439 : (TARGET_AVX512F) &&
17440 : #line 299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17441 : (TARGET_AVX512VL)))
17442 : return -1;
17443 : return 9255; /* avx512vl_vec_dupv4si */
17444 :
17445 : case E_V4DImode:
17446 : if (!register_operand (operands[0], E_V4DImode)
17447 : || GET_MODE (x2) != E_V4DImode
17448 : || GET_MODE (x3) != E_DImode)
17449 : return -1;
17450 : switch (GET_MODE (operands[1]))
17451 : {
17452 : case E_V2DImode:
17453 : if (!nonimmediate_operand (operands[1], E_V2DImode))
17454 : return -1;
17455 : if ((
17456 : #line 27972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17457 : (TARGET_AVX2) &&
17458 : #line 567 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17459 : (TARGET_AVX)))
17460 : return 9154; /* avx2_pbroadcastv4di */
17461 : if (!(
17462 : #line 28403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17463 : (TARGET_AVX512F) &&
17464 : #line 300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17465 : (TARGET_AVX512VL)))
17466 : return -1;
17467 : return 9259; /* avx512vl_vec_dupv4di */
17468 :
17469 : case E_V4DImode:
17470 : if (!nonimmediate_operand (operands[1], E_V4DImode)
17471 : || !
17472 : #line 27986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17473 : (TARGET_AVX2))
17474 : return -1;
17475 : return 9165; /* avx2_pbroadcastv4di_1 */
17476 :
17477 : default:
17478 : return -1;
17479 : }
17480 :
17481 : case E_V2DImode:
17482 : if (pattern932 (x2,
17483 : E_V2DImode,
17484 : E_DImode) != 0)
17485 : return -1;
17486 : if (
17487 : #line 27972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17488 : (TARGET_AVX2))
17489 : return 9155; /* avx2_pbroadcastv2di */
17490 : if (!(
17491 : #line 28403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17492 : (TARGET_AVX512F) &&
17493 : #line 300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17494 : (TARGET_AVX512VL)))
17495 : return -1;
17496 : return 9261; /* avx512vl_vec_dupv2di */
17497 :
17498 : case E_V32HFmode:
17499 : if (!register_operand (operands[0], E_V32HFmode)
17500 : || GET_MODE (x2) != E_V32HFmode
17501 : || GET_MODE (x3) != E_HFmode)
17502 : return -1;
17503 : switch (GET_MODE (operands[1]))
17504 : {
17505 : case E_V8HFmode:
17506 : if (!nonimmediate_operand (operands[1], E_V8HFmode))
17507 : return -1;
17508 : if ((
17509 : #line 27972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17510 : (TARGET_AVX2) &&
17511 : #line 568 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17512 : (TARGET_AVX512BW)))
17513 : return 9156; /* avx2_pbroadcastv32hf */
17514 : if (!
17515 : #line 28422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17516 : (TARGET_AVX512BW))
17517 : return -1;
17518 : return 9287; /* avx512bw_vec_dupv32hf */
17519 :
17520 : case E_V32HFmode:
17521 : if (!nonimmediate_operand (operands[1], E_V32HFmode)
17522 : || !(
17523 : #line 28389 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17524 : (TARGET_AVX512F) &&
17525 : #line 969 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17526 : (TARGET_AVX512BW)))
17527 : return -1;
17528 : return 9249; /* avx512bw_vec_dupv32hf_1 */
17529 :
17530 : default:
17531 : return -1;
17532 : }
17533 :
17534 : case E_V16HFmode:
17535 : if (!register_operand (operands[0], E_V16HFmode)
17536 : || GET_MODE (x2) != E_V16HFmode
17537 : || GET_MODE (x3) != E_HFmode)
17538 : return -1;
17539 : switch (GET_MODE (operands[1]))
17540 : {
17541 : case E_V8HFmode:
17542 : if (!nonimmediate_operand (operands[1], E_V8HFmode))
17543 : return -1;
17544 : if ((
17545 : #line 27972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17546 : (TARGET_AVX2) &&
17547 : #line 568 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17548 : (TARGET_AVX)))
17549 : return 9157; /* avx2_pbroadcastv16hf */
17550 : if (!(
17551 : #line 28422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17552 : (TARGET_AVX512BW) &&
17553 : #line 334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17554 : (TARGET_AVX512VL)))
17555 : return -1;
17556 : return 9289; /* avx512vl_vec_dupv16hf */
17557 :
17558 : case E_V16HFmode:
17559 : if (!nonimmediate_operand (operands[1], E_V16HFmode)
17560 : || !
17561 : #line 27986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17562 : (TARGET_AVX2))
17563 : return -1;
17564 : return 9166; /* avx2_pbroadcastv16hf_1 */
17565 :
17566 : default:
17567 : return -1;
17568 : }
17569 :
17570 : case E_V8HFmode:
17571 : if (pattern932 (x2,
17572 : E_V8HFmode,
17573 : E_HFmode) != 0)
17574 : return -1;
17575 : if (
17576 : #line 27972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17577 : (TARGET_AVX2))
17578 : return 9158; /* avx2_pbroadcastv8hf */
17579 : if (!(
17580 : #line 28422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17581 : (TARGET_AVX512BW) &&
17582 : #line 334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17583 : (TARGET_AVX512VL)))
17584 : return -1;
17585 : return 9291; /* avx512fp16_vec_dupv8hf */
17586 :
17587 : case E_V32BFmode:
17588 : if (!register_operand (operands[0], E_V32BFmode)
17589 : || GET_MODE (x2) != E_V32BFmode
17590 : || GET_MODE (x3) != E_BFmode)
17591 : return -1;
17592 : switch (GET_MODE (operands[1]))
17593 : {
17594 : case E_V8BFmode:
17595 : if (!nonimmediate_operand (operands[1], E_V8BFmode))
17596 : return -1;
17597 : if ((
17598 : #line 27972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17599 : (TARGET_AVX2) &&
17600 : #line 569 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17601 : (TARGET_AVX512BW)))
17602 : return 9159; /* avx2_pbroadcastv32bf */
17603 : if (!
17604 : #line 28422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17605 : (TARGET_AVX512BW))
17606 : return -1;
17607 : return 9293; /* avx512bw_vec_dupv32bf */
17608 :
17609 : case E_V32BFmode:
17610 : if (!nonimmediate_operand (operands[1], E_V32BFmode)
17611 : || !(
17612 : #line 28389 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17613 : (TARGET_AVX512F) &&
17614 : #line 969 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17615 : (TARGET_AVX512BW)))
17616 : return -1;
17617 : return 9250; /* avx512bw_vec_dupv32bf_1 */
17618 :
17619 : default:
17620 : return -1;
17621 : }
17622 :
17623 : case E_V16BFmode:
17624 : if (!register_operand (operands[0], E_V16BFmode)
17625 : || GET_MODE (x2) != E_V16BFmode
17626 : || GET_MODE (x3) != E_BFmode)
17627 : return -1;
17628 : switch (GET_MODE (operands[1]))
17629 : {
17630 : case E_V8BFmode:
17631 : if (!nonimmediate_operand (operands[1], E_V8BFmode))
17632 : return -1;
17633 : if ((
17634 : #line 27972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17635 : (TARGET_AVX2) &&
17636 : #line 569 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17637 : (TARGET_AVX)))
17638 : return 9160; /* avx2_pbroadcastv16bf */
17639 : if (!(
17640 : #line 28422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17641 : (TARGET_AVX512BW) &&
17642 : #line 335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17643 : (TARGET_AVX512VL)))
17644 : return -1;
17645 : return 9295; /* avx512vl_vec_dupv16bf */
17646 :
17647 : case E_V16BFmode:
17648 : if (!nonimmediate_operand (operands[1], E_V16BFmode)
17649 : || !
17650 : #line 27986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17651 : (TARGET_AVX2))
17652 : return -1;
17653 : return 9167; /* avx2_pbroadcastv16bf_1 */
17654 :
17655 : default:
17656 : return -1;
17657 : }
17658 :
17659 : case E_V8BFmode:
17660 : if (pattern932 (x2,
17661 : E_V8BFmode,
17662 : E_BFmode) != 0)
17663 : return -1;
17664 : if (
17665 : #line 27972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17666 : (TARGET_AVX2))
17667 : return 9161; /* avx2_pbroadcastv8bf */
17668 : if (!(
17669 : #line 28422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17670 : (TARGET_AVX512BW) &&
17671 : #line 335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17672 : (TARGET_AVX512VL)))
17673 : return -1;
17674 : return 9297; /* avx512vl_vec_dupv8bf */
17675 :
17676 : case E_V4DFmode:
17677 : if (!register_operand (operands[0], E_V4DFmode)
17678 : || GET_MODE (x2) != E_V4DFmode
17679 : || GET_MODE (x3) != E_DFmode)
17680 : return -1;
17681 : if (register_operand (operands[1], E_V2DFmode)
17682 : &&
17683 : #line 28377 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17684 : (TARGET_AVX2))
17685 : return 9244; /* avx2_vec_dupv4df */
17686 : if (!nonimmediate_operand (operands[1], E_V2DFmode)
17687 : || !(
17688 : #line 28403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17689 : (TARGET_AVX512F) &&
17690 : #line 302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17691 : (TARGET_AVX512VL)))
17692 : return -1;
17693 : return 9271; /* avx512vl_vec_dupv4df */
17694 :
17695 : case E_V2DFmode:
17696 : if (pattern932 (x2,
17697 : E_V2DFmode,
17698 : E_DFmode) != 0
17699 : || !(
17700 : #line 28403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17701 : (TARGET_AVX512F) &&
17702 : #line 302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17703 : (TARGET_AVX512VL)))
17704 : return -1;
17705 : return 9273; /* avx512vl_vec_dupv2df */
17706 :
17707 : default:
17708 : return -1;
17709 : }
17710 :
17711 : case 2:
17712 : x6 = XVECEXP (x4, 0, 0);
17713 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
17714 : return -1;
17715 : x7 = XVECEXP (x4, 0, 1);
17716 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
17717 : return -1;
17718 : switch (GET_MODE (operands[0]))
17719 : {
17720 : case E_V16SImode:
17721 : if (pattern928 (x2,
17722 : E_V4SImode,
17723 : E_V2SImode,
17724 : E_V16SImode) != 0
17725 : || !
17726 : #line 28743 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17727 : (TARGET_AVX512DQ))
17728 : return -1;
17729 : return 9393; /* *avx512dq_broadcastv16si */
17730 :
17731 : case E_V8SImode:
17732 : if (pattern928 (x2,
17733 : E_V4SImode,
17734 : E_V2SImode,
17735 : E_V8SImode) != 0
17736 : || !(
17737 : #line 28743 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17738 : (TARGET_AVX512DQ) &&
17739 : #line 28727 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17740 : (TARGET_AVX512VL)))
17741 : return -1;
17742 : return 9395; /* *avx512dq_broadcastv8si */
17743 :
17744 : case E_V4SImode:
17745 : if (pattern932 (x2,
17746 : E_V4SImode,
17747 : E_V2SImode) != 0
17748 : || !(
17749 : #line 28743 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17750 : (TARGET_AVX512DQ) &&
17751 : #line 28727 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17752 : (TARGET_AVX512VL)))
17753 : return -1;
17754 : return 9397; /* *avx512dq_broadcastv4si */
17755 :
17756 : case E_V16SFmode:
17757 : if (pattern928 (x2,
17758 : E_V4SFmode,
17759 : E_V2SFmode,
17760 : E_V16SFmode) != 0
17761 : || !
17762 : #line 28743 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17763 : (TARGET_AVX512DQ))
17764 : return -1;
17765 : return 9399; /* *avx512dq_broadcastv16sf */
17766 :
17767 : case E_V8SFmode:
17768 : if (pattern928 (x2,
17769 : E_V4SFmode,
17770 : E_V2SFmode,
17771 : E_V8SFmode) != 0
17772 : || !(
17773 : #line 28743 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17774 : (TARGET_AVX512DQ) &&
17775 : #line 28728 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17776 : (TARGET_AVX512VL)))
17777 : return -1;
17778 : return 9401; /* *avx512dq_broadcastv8sf */
17779 :
17780 : default:
17781 : return -1;
17782 : }
17783 :
17784 : default:
17785 : return -1;
17786 : }
17787 : }
17788 :
17789 : int
17790 : recog_315 (rtx x1 ATTRIBUTE_UNUSED,
17791 : rtx_insn *insn ATTRIBUTE_UNUSED,
17792 : int *pnum_clobbers ATTRIBUTE_UNUSED)
17793 : {
17794 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
17795 : rtx x2, x3, x4;
17796 : int res ATTRIBUTE_UNUSED;
17797 : x2 = XEXP (x1, 1);
17798 : x3 = XEXP (x2, 0);
17799 : x4 = XEXP (x3, 0);
17800 : switch (GET_CODE (x4))
17801 : {
17802 : case REG:
17803 : case SUBREG:
17804 : case MEM:
17805 : case NOT:
17806 : switch (pattern541 (x2))
17807 : {
17808 : case 0:
17809 : if (!(
17810 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17811 : ((64 == 64 || TARGET_AVX512VL
17812 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17813 : && ix86_pre_reload_split ()
17814 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17815 : STRIP_UNARY (operands[4]))
17816 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17817 : STRIP_UNARY (operands[4]))
17818 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17819 : STRIP_UNARY (operands[3]))
17820 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17821 : STRIP_UNARY (operands[3])))) &&
17822 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17823 : (TARGET_AVX512F)))
17824 : return -1;
17825 : return 5880; /* *avx512bw_vpternlogv32hf_1 */
17826 :
17827 : case 1:
17828 : if (!(
17829 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17830 : ((32 == 64 || TARGET_AVX512VL
17831 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17832 : && ix86_pre_reload_split ()
17833 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17834 : STRIP_UNARY (operands[4]))
17835 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17836 : STRIP_UNARY (operands[4]))
17837 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17838 : STRIP_UNARY (operands[3]))
17839 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17840 : STRIP_UNARY (operands[3])))) &&
17841 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17842 : (TARGET_AVX)))
17843 : return -1;
17844 : return 5907; /* *avx512vl_vpternlogv16hf_1 */
17845 :
17846 : case 2:
17847 : if (!
17848 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17849 : ((16 == 64 || TARGET_AVX512VL
17850 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17851 : && ix86_pre_reload_split ()
17852 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17853 : STRIP_UNARY (operands[4]))
17854 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17855 : STRIP_UNARY (operands[4]))
17856 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17857 : STRIP_UNARY (operands[3]))
17858 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17859 : STRIP_UNARY (operands[3])))))
17860 : return -1;
17861 : return 5934; /* *avx512fp16_vpternlogv8hf_1 */
17862 :
17863 : case 3:
17864 : if (!(
17865 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17866 : ((64 == 64 || TARGET_AVX512VL
17867 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17868 : && ix86_pre_reload_split ()
17869 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17870 : STRIP_UNARY (operands[4]))
17871 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17872 : STRIP_UNARY (operands[4]))
17873 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17874 : STRIP_UNARY (operands[3]))
17875 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17876 : STRIP_UNARY (operands[3])))) &&
17877 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17878 : (TARGET_AVX512F)))
17879 : return -1;
17880 : return 5961; /* *avx512bw_vpternlogv32bf_1 */
17881 :
17882 : case 4:
17883 : if (!(
17884 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17885 : ((32 == 64 || TARGET_AVX512VL
17886 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17887 : && ix86_pre_reload_split ()
17888 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17889 : STRIP_UNARY (operands[4]))
17890 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17891 : STRIP_UNARY (operands[4]))
17892 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17893 : STRIP_UNARY (operands[3]))
17894 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17895 : STRIP_UNARY (operands[3])))) &&
17896 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17897 : (TARGET_AVX)))
17898 : return -1;
17899 : return 5988; /* *avx512vl_vpternlogv16bf_1 */
17900 :
17901 : case 5:
17902 : if (!
17903 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17904 : ((16 == 64 || TARGET_AVX512VL
17905 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17906 : && ix86_pre_reload_split ()
17907 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17908 : STRIP_UNARY (operands[4]))
17909 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17910 : STRIP_UNARY (operands[4]))
17911 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17912 : STRIP_UNARY (operands[3]))
17913 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17914 : STRIP_UNARY (operands[3])))))
17915 : return -1;
17916 : return 6015; /* *avx512vl_vpternlogv8bf_1 */
17917 :
17918 : case 6:
17919 : if (!(
17920 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17921 : ((64 == 64 || TARGET_AVX512VL
17922 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17923 : && ix86_pre_reload_split ()
17924 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17925 : STRIP_UNARY (operands[4]))
17926 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17927 : STRIP_UNARY (operands[4]))
17928 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17929 : STRIP_UNARY (operands[3]))
17930 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17931 : STRIP_UNARY (operands[3])))) &&
17932 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17933 : (TARGET_AVX512F)))
17934 : return -1;
17935 : return 6042; /* *avx512f_vpternlogv16sf_1 */
17936 :
17937 : case 7:
17938 : if (!(
17939 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17940 : ((32 == 64 || TARGET_AVX512VL
17941 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17942 : && ix86_pre_reload_split ()
17943 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17944 : STRIP_UNARY (operands[4]))
17945 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17946 : STRIP_UNARY (operands[4]))
17947 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17948 : STRIP_UNARY (operands[3]))
17949 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17950 : STRIP_UNARY (operands[3])))) &&
17951 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17952 : (TARGET_AVX)))
17953 : return -1;
17954 : return 6069; /* *avx512vl_vpternlogv8sf_1 */
17955 :
17956 : case 8:
17957 : if (!
17958 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17959 : ((16 == 64 || TARGET_AVX512VL
17960 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17961 : && ix86_pre_reload_split ()
17962 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17963 : STRIP_UNARY (operands[4]))
17964 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17965 : STRIP_UNARY (operands[4]))
17966 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17967 : STRIP_UNARY (operands[3]))
17968 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17969 : STRIP_UNARY (operands[3])))))
17970 : return -1;
17971 : return 6096; /* *avx512vl_vpternlogv4sf_1 */
17972 :
17973 : case 9:
17974 : if (!(
17975 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17976 : ((64 == 64 || TARGET_AVX512VL
17977 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17978 : && ix86_pre_reload_split ()
17979 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17980 : STRIP_UNARY (operands[4]))
17981 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17982 : STRIP_UNARY (operands[4]))
17983 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17984 : STRIP_UNARY (operands[3]))
17985 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17986 : STRIP_UNARY (operands[3])))) &&
17987 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17988 : (TARGET_AVX512F)))
17989 : return -1;
17990 : return 6123; /* *avx512f_vpternlogv8df_1 */
17991 :
17992 : case 10:
17993 : if (!(
17994 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17995 : ((32 == 64 || TARGET_AVX512VL
17996 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17997 : && ix86_pre_reload_split ()
17998 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17999 : STRIP_UNARY (operands[4]))
18000 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18001 : STRIP_UNARY (operands[4]))
18002 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18003 : STRIP_UNARY (operands[3]))
18004 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18005 : STRIP_UNARY (operands[3])))) &&
18006 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18007 : (TARGET_AVX)))
18008 : return -1;
18009 : return 6150; /* *avx512vl_vpternlogv4df_1 */
18010 :
18011 : case 11:
18012 : if (!(
18013 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18014 : ((16 == 64 || TARGET_AVX512VL
18015 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18016 : && ix86_pre_reload_split ()
18017 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18018 : STRIP_UNARY (operands[4]))
18019 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18020 : STRIP_UNARY (operands[4]))
18021 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18022 : STRIP_UNARY (operands[3]))
18023 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18024 : STRIP_UNARY (operands[3])))) &&
18025 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18026 : (TARGET_SSE2)))
18027 : return -1;
18028 : return 6177; /* *avx512vl_vpternlogv2df_1 */
18029 :
18030 : case 12:
18031 : if (!(
18032 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18033 : ((64 == 64 || TARGET_AVX512VL
18034 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18035 : && ix86_pre_reload_split ()
18036 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18037 : STRIP_UNARY (operands[4]))
18038 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18039 : STRIP_UNARY (operands[4]))
18040 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18041 : STRIP_UNARY (operands[3]))
18042 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18043 : STRIP_UNARY (operands[3])))) &&
18044 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18045 : (TARGET_AVX512F)))
18046 : return -1;
18047 : return 5883; /* *avx512bw_vpternlogv32hf_1 */
18048 :
18049 : case 13:
18050 : if (!(
18051 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18052 : ((32 == 64 || TARGET_AVX512VL
18053 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18054 : && ix86_pre_reload_split ()
18055 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18056 : STRIP_UNARY (operands[4]))
18057 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18058 : STRIP_UNARY (operands[4]))
18059 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18060 : STRIP_UNARY (operands[3]))
18061 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18062 : STRIP_UNARY (operands[3])))) &&
18063 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18064 : (TARGET_AVX)))
18065 : return -1;
18066 : return 5910; /* *avx512vl_vpternlogv16hf_1 */
18067 :
18068 : case 14:
18069 : if (!
18070 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18071 : ((16 == 64 || TARGET_AVX512VL
18072 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18073 : && ix86_pre_reload_split ()
18074 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18075 : STRIP_UNARY (operands[4]))
18076 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18077 : STRIP_UNARY (operands[4]))
18078 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18079 : STRIP_UNARY (operands[3]))
18080 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18081 : STRIP_UNARY (operands[3])))))
18082 : return -1;
18083 : return 5937; /* *avx512fp16_vpternlogv8hf_1 */
18084 :
18085 : case 15:
18086 : if (!(
18087 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18088 : ((64 == 64 || TARGET_AVX512VL
18089 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18090 : && ix86_pre_reload_split ()
18091 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18092 : STRIP_UNARY (operands[4]))
18093 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18094 : STRIP_UNARY (operands[4]))
18095 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18096 : STRIP_UNARY (operands[3]))
18097 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18098 : STRIP_UNARY (operands[3])))) &&
18099 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18100 : (TARGET_AVX512F)))
18101 : return -1;
18102 : return 5964; /* *avx512bw_vpternlogv32bf_1 */
18103 :
18104 : case 16:
18105 : if (!(
18106 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18107 : ((32 == 64 || TARGET_AVX512VL
18108 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18109 : && ix86_pre_reload_split ()
18110 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18111 : STRIP_UNARY (operands[4]))
18112 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18113 : STRIP_UNARY (operands[4]))
18114 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18115 : STRIP_UNARY (operands[3]))
18116 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18117 : STRIP_UNARY (operands[3])))) &&
18118 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18119 : (TARGET_AVX)))
18120 : return -1;
18121 : return 5991; /* *avx512vl_vpternlogv16bf_1 */
18122 :
18123 : case 17:
18124 : if (!
18125 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18126 : ((16 == 64 || TARGET_AVX512VL
18127 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18128 : && ix86_pre_reload_split ()
18129 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18130 : STRIP_UNARY (operands[4]))
18131 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18132 : STRIP_UNARY (operands[4]))
18133 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18134 : STRIP_UNARY (operands[3]))
18135 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18136 : STRIP_UNARY (operands[3])))))
18137 : return -1;
18138 : return 6018; /* *avx512vl_vpternlogv8bf_1 */
18139 :
18140 : case 18:
18141 : if (!(
18142 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18143 : ((64 == 64 || TARGET_AVX512VL
18144 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18145 : && ix86_pre_reload_split ()
18146 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18147 : STRIP_UNARY (operands[4]))
18148 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18149 : STRIP_UNARY (operands[4]))
18150 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18151 : STRIP_UNARY (operands[3]))
18152 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18153 : STRIP_UNARY (operands[3])))) &&
18154 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18155 : (TARGET_AVX512F)))
18156 : return -1;
18157 : return 6045; /* *avx512f_vpternlogv16sf_1 */
18158 :
18159 : case 19:
18160 : if (!(
18161 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18162 : ((32 == 64 || TARGET_AVX512VL
18163 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18164 : && ix86_pre_reload_split ()
18165 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18166 : STRIP_UNARY (operands[4]))
18167 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18168 : STRIP_UNARY (operands[4]))
18169 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18170 : STRIP_UNARY (operands[3]))
18171 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18172 : STRIP_UNARY (operands[3])))) &&
18173 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18174 : (TARGET_AVX)))
18175 : return -1;
18176 : return 6072; /* *avx512vl_vpternlogv8sf_1 */
18177 :
18178 : case 20:
18179 : if (!
18180 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18181 : ((16 == 64 || TARGET_AVX512VL
18182 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18183 : && ix86_pre_reload_split ()
18184 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18185 : STRIP_UNARY (operands[4]))
18186 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18187 : STRIP_UNARY (operands[4]))
18188 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18189 : STRIP_UNARY (operands[3]))
18190 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18191 : STRIP_UNARY (operands[3])))))
18192 : return -1;
18193 : return 6099; /* *avx512vl_vpternlogv4sf_1 */
18194 :
18195 : case 21:
18196 : if (!(
18197 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18198 : ((64 == 64 || TARGET_AVX512VL
18199 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18200 : && ix86_pre_reload_split ()
18201 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18202 : STRIP_UNARY (operands[4]))
18203 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18204 : STRIP_UNARY (operands[4]))
18205 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18206 : STRIP_UNARY (operands[3]))
18207 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18208 : STRIP_UNARY (operands[3])))) &&
18209 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18210 : (TARGET_AVX512F)))
18211 : return -1;
18212 : return 6126; /* *avx512f_vpternlogv8df_1 */
18213 :
18214 : case 22:
18215 : if (!(
18216 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18217 : ((32 == 64 || TARGET_AVX512VL
18218 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18219 : && ix86_pre_reload_split ()
18220 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18221 : STRIP_UNARY (operands[4]))
18222 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18223 : STRIP_UNARY (operands[4]))
18224 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18225 : STRIP_UNARY (operands[3]))
18226 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18227 : STRIP_UNARY (operands[3])))) &&
18228 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18229 : (TARGET_AVX)))
18230 : return -1;
18231 : return 6153; /* *avx512vl_vpternlogv4df_1 */
18232 :
18233 : case 23:
18234 : if (!(
18235 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18236 : ((16 == 64 || TARGET_AVX512VL
18237 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18238 : && ix86_pre_reload_split ()
18239 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18240 : STRIP_UNARY (operands[4]))
18241 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18242 : STRIP_UNARY (operands[4]))
18243 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18244 : STRIP_UNARY (operands[3]))
18245 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18246 : STRIP_UNARY (operands[3])))) &&
18247 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18248 : (TARGET_SSE2)))
18249 : return -1;
18250 : return 6180; /* *avx512vl_vpternlogv2df_1 */
18251 :
18252 : case 24:
18253 : if (!(
18254 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18255 : ((64 == 64 || TARGET_AVX512VL
18256 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18257 : && ix86_pre_reload_split ()
18258 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18259 : STRIP_UNARY (operands[4]))
18260 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18261 : STRIP_UNARY (operands[4]))
18262 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18263 : STRIP_UNARY (operands[3]))
18264 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18265 : STRIP_UNARY (operands[3])))) &&
18266 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18267 : (TARGET_AVX512F)))
18268 : return -1;
18269 : return 5886; /* *avx512bw_vpternlogv32hf_1 */
18270 :
18271 : case 25:
18272 : if (!(
18273 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18274 : ((32 == 64 || TARGET_AVX512VL
18275 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18276 : && ix86_pre_reload_split ()
18277 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18278 : STRIP_UNARY (operands[4]))
18279 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18280 : STRIP_UNARY (operands[4]))
18281 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18282 : STRIP_UNARY (operands[3]))
18283 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18284 : STRIP_UNARY (operands[3])))) &&
18285 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18286 : (TARGET_AVX)))
18287 : return -1;
18288 : return 5913; /* *avx512vl_vpternlogv16hf_1 */
18289 :
18290 : case 26:
18291 : if (!
18292 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18293 : ((16 == 64 || TARGET_AVX512VL
18294 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18295 : && ix86_pre_reload_split ()
18296 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18297 : STRIP_UNARY (operands[4]))
18298 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18299 : STRIP_UNARY (operands[4]))
18300 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18301 : STRIP_UNARY (operands[3]))
18302 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18303 : STRIP_UNARY (operands[3])))))
18304 : return -1;
18305 : return 5940; /* *avx512fp16_vpternlogv8hf_1 */
18306 :
18307 : case 27:
18308 : if (!(
18309 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18310 : ((64 == 64 || TARGET_AVX512VL
18311 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18312 : && ix86_pre_reload_split ()
18313 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18314 : STRIP_UNARY (operands[4]))
18315 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18316 : STRIP_UNARY (operands[4]))
18317 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18318 : STRIP_UNARY (operands[3]))
18319 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18320 : STRIP_UNARY (operands[3])))) &&
18321 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18322 : (TARGET_AVX512F)))
18323 : return -1;
18324 : return 5967; /* *avx512bw_vpternlogv32bf_1 */
18325 :
18326 : case 28:
18327 : if (!(
18328 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18329 : ((32 == 64 || TARGET_AVX512VL
18330 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18331 : && ix86_pre_reload_split ()
18332 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18333 : STRIP_UNARY (operands[4]))
18334 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18335 : STRIP_UNARY (operands[4]))
18336 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18337 : STRIP_UNARY (operands[3]))
18338 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18339 : STRIP_UNARY (operands[3])))) &&
18340 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18341 : (TARGET_AVX)))
18342 : return -1;
18343 : return 5994; /* *avx512vl_vpternlogv16bf_1 */
18344 :
18345 : case 29:
18346 : if (!
18347 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18348 : ((16 == 64 || TARGET_AVX512VL
18349 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18350 : && ix86_pre_reload_split ()
18351 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18352 : STRIP_UNARY (operands[4]))
18353 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18354 : STRIP_UNARY (operands[4]))
18355 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18356 : STRIP_UNARY (operands[3]))
18357 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18358 : STRIP_UNARY (operands[3])))))
18359 : return -1;
18360 : return 6021; /* *avx512vl_vpternlogv8bf_1 */
18361 :
18362 : case 30:
18363 : if (!(
18364 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18365 : ((64 == 64 || TARGET_AVX512VL
18366 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18367 : && ix86_pre_reload_split ()
18368 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18369 : STRIP_UNARY (operands[4]))
18370 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18371 : STRIP_UNARY (operands[4]))
18372 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18373 : STRIP_UNARY (operands[3]))
18374 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18375 : STRIP_UNARY (operands[3])))) &&
18376 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18377 : (TARGET_AVX512F)))
18378 : return -1;
18379 : return 6048; /* *avx512f_vpternlogv16sf_1 */
18380 :
18381 : case 31:
18382 : if (!(
18383 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18384 : ((32 == 64 || TARGET_AVX512VL
18385 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18386 : && ix86_pre_reload_split ()
18387 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18388 : STRIP_UNARY (operands[4]))
18389 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18390 : STRIP_UNARY (operands[4]))
18391 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18392 : STRIP_UNARY (operands[3]))
18393 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18394 : STRIP_UNARY (operands[3])))) &&
18395 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18396 : (TARGET_AVX)))
18397 : return -1;
18398 : return 6075; /* *avx512vl_vpternlogv8sf_1 */
18399 :
18400 : case 32:
18401 : if (!
18402 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18403 : ((16 == 64 || TARGET_AVX512VL
18404 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18405 : && ix86_pre_reload_split ()
18406 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18407 : STRIP_UNARY (operands[4]))
18408 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18409 : STRIP_UNARY (operands[4]))
18410 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18411 : STRIP_UNARY (operands[3]))
18412 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18413 : STRIP_UNARY (operands[3])))))
18414 : return -1;
18415 : return 6102; /* *avx512vl_vpternlogv4sf_1 */
18416 :
18417 : case 33:
18418 : if (!(
18419 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18420 : ((64 == 64 || TARGET_AVX512VL
18421 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18422 : && ix86_pre_reload_split ()
18423 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18424 : STRIP_UNARY (operands[4]))
18425 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18426 : STRIP_UNARY (operands[4]))
18427 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18428 : STRIP_UNARY (operands[3]))
18429 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18430 : STRIP_UNARY (operands[3])))) &&
18431 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18432 : (TARGET_AVX512F)))
18433 : return -1;
18434 : return 6129; /* *avx512f_vpternlogv8df_1 */
18435 :
18436 : case 34:
18437 : if (!(
18438 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18439 : ((32 == 64 || TARGET_AVX512VL
18440 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18441 : && ix86_pre_reload_split ()
18442 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18443 : STRIP_UNARY (operands[4]))
18444 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18445 : STRIP_UNARY (operands[4]))
18446 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18447 : STRIP_UNARY (operands[3]))
18448 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18449 : STRIP_UNARY (operands[3])))) &&
18450 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18451 : (TARGET_AVX)))
18452 : return -1;
18453 : return 6156; /* *avx512vl_vpternlogv4df_1 */
18454 :
18455 : case 35:
18456 : if (!(
18457 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18458 : ((16 == 64 || TARGET_AVX512VL
18459 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18460 : && ix86_pre_reload_split ()
18461 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18462 : STRIP_UNARY (operands[4]))
18463 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18464 : STRIP_UNARY (operands[4]))
18465 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18466 : STRIP_UNARY (operands[3]))
18467 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18468 : STRIP_UNARY (operands[3])))) &&
18469 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18470 : (TARGET_SSE2)))
18471 : return -1;
18472 : return 6183; /* *avx512vl_vpternlogv2df_1 */
18473 :
18474 : case 36:
18475 : if (!(
18476 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18477 : ((64 == 64 || TARGET_AVX512VL
18478 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18479 : && ix86_pre_reload_split ()) &&
18480 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18481 : (TARGET_AVX512F)))
18482 : return -1;
18483 : return 6948; /* *avx512bw_vpternlogv32hf_3 */
18484 :
18485 : case 37:
18486 : if (!(
18487 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18488 : ((32 == 64 || TARGET_AVX512VL
18489 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18490 : && ix86_pre_reload_split ()) &&
18491 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18492 : (TARGET_AVX)))
18493 : return -1;
18494 : return 6957; /* *avx512vl_vpternlogv16hf_3 */
18495 :
18496 : case 38:
18497 : if (!
18498 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18499 : ((16 == 64 || TARGET_AVX512VL
18500 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18501 : && ix86_pre_reload_split ()))
18502 : return -1;
18503 : return 6966; /* *avx512fp16_vpternlogv8hf_3 */
18504 :
18505 : case 39:
18506 : if (!(
18507 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18508 : ((64 == 64 || TARGET_AVX512VL
18509 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18510 : && ix86_pre_reload_split ()) &&
18511 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18512 : (TARGET_AVX512F)))
18513 : return -1;
18514 : return 6975; /* *avx512bw_vpternlogv32bf_3 */
18515 :
18516 : case 40:
18517 : if (!(
18518 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18519 : ((32 == 64 || TARGET_AVX512VL
18520 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18521 : && ix86_pre_reload_split ()) &&
18522 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18523 : (TARGET_AVX)))
18524 : return -1;
18525 : return 6984; /* *avx512vl_vpternlogv16bf_3 */
18526 :
18527 : case 41:
18528 : if (!
18529 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18530 : ((16 == 64 || TARGET_AVX512VL
18531 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18532 : && ix86_pre_reload_split ()))
18533 : return -1;
18534 : return 6993; /* *avx512vl_vpternlogv8bf_3 */
18535 :
18536 : case 42:
18537 : if (!(
18538 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18539 : ((64 == 64 || TARGET_AVX512VL
18540 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18541 : && ix86_pre_reload_split ()) &&
18542 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18543 : (TARGET_AVX512F)))
18544 : return -1;
18545 : return 7002; /* *avx512f_vpternlogv16sf_3 */
18546 :
18547 : case 43:
18548 : if (!(
18549 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18550 : ((32 == 64 || TARGET_AVX512VL
18551 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18552 : && ix86_pre_reload_split ()) &&
18553 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18554 : (TARGET_AVX)))
18555 : return -1;
18556 : return 7011; /* *avx512vl_vpternlogv8sf_3 */
18557 :
18558 : case 44:
18559 : if (!
18560 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18561 : ((16 == 64 || TARGET_AVX512VL
18562 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18563 : && ix86_pre_reload_split ()))
18564 : return -1;
18565 : return 7020; /* *avx512vl_vpternlogv4sf_3 */
18566 :
18567 : case 45:
18568 : if (!(
18569 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18570 : ((64 == 64 || TARGET_AVX512VL
18571 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18572 : && ix86_pre_reload_split ()) &&
18573 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18574 : (TARGET_AVX512F)))
18575 : return -1;
18576 : return 7029; /* *avx512f_vpternlogv8df_3 */
18577 :
18578 : case 46:
18579 : if (!(
18580 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18581 : ((32 == 64 || TARGET_AVX512VL
18582 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18583 : && ix86_pre_reload_split ()) &&
18584 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18585 : (TARGET_AVX)))
18586 : return -1;
18587 : return 7038; /* *avx512vl_vpternlogv4df_3 */
18588 :
18589 : case 47:
18590 : if (!(
18591 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18592 : ((16 == 64 || TARGET_AVX512VL
18593 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18594 : && ix86_pre_reload_split ()) &&
18595 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18596 : (TARGET_SSE2)))
18597 : return -1;
18598 : return 7047; /* *avx512vl_vpternlogv2df_3 */
18599 :
18600 : default:
18601 : return -1;
18602 : }
18603 :
18604 : case AND:
18605 : switch (pattern542 (x2))
18606 : {
18607 : case 0:
18608 : if (!(
18609 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18610 : ((64 == 64 || TARGET_AVX512VL
18611 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18612 : && ix86_pre_reload_split ()
18613 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18614 : STRIP_UNARY (operands[4]))
18615 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18616 : STRIP_UNARY (operands[4]))
18617 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18618 : STRIP_UNARY (operands[3]))
18619 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18620 : STRIP_UNARY (operands[3])))) &&
18621 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18622 : (TARGET_AVX512F)))
18623 : return -1;
18624 : return 6528; /* *avx512bw_vpternlogv32hf_2 */
18625 :
18626 : case 1:
18627 : if (!(
18628 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18629 : ((32 == 64 || TARGET_AVX512VL
18630 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18631 : && ix86_pre_reload_split ()
18632 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18633 : STRIP_UNARY (operands[4]))
18634 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18635 : STRIP_UNARY (operands[4]))
18636 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18637 : STRIP_UNARY (operands[3]))
18638 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18639 : STRIP_UNARY (operands[3])))) &&
18640 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18641 : (TARGET_AVX)))
18642 : return -1;
18643 : return 6555; /* *avx512vl_vpternlogv16hf_2 */
18644 :
18645 : case 2:
18646 : if (!
18647 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18648 : ((16 == 64 || TARGET_AVX512VL
18649 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18650 : && ix86_pre_reload_split ()
18651 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18652 : STRIP_UNARY (operands[4]))
18653 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18654 : STRIP_UNARY (operands[4]))
18655 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18656 : STRIP_UNARY (operands[3]))
18657 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18658 : STRIP_UNARY (operands[3])))))
18659 : return -1;
18660 : return 6582; /* *avx512fp16_vpternlogv8hf_2 */
18661 :
18662 : case 3:
18663 : if (!(
18664 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18665 : ((64 == 64 || TARGET_AVX512VL
18666 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18667 : && ix86_pre_reload_split ()
18668 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18669 : STRIP_UNARY (operands[4]))
18670 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18671 : STRIP_UNARY (operands[4]))
18672 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18673 : STRIP_UNARY (operands[3]))
18674 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18675 : STRIP_UNARY (operands[3])))) &&
18676 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18677 : (TARGET_AVX512F)))
18678 : return -1;
18679 : return 6609; /* *avx512bw_vpternlogv32bf_2 */
18680 :
18681 : case 4:
18682 : if (!(
18683 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18684 : ((32 == 64 || TARGET_AVX512VL
18685 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18686 : && ix86_pre_reload_split ()
18687 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18688 : STRIP_UNARY (operands[4]))
18689 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18690 : STRIP_UNARY (operands[4]))
18691 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18692 : STRIP_UNARY (operands[3]))
18693 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18694 : STRIP_UNARY (operands[3])))) &&
18695 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18696 : (TARGET_AVX)))
18697 : return -1;
18698 : return 6636; /* *avx512vl_vpternlogv16bf_2 */
18699 :
18700 : case 5:
18701 : if (!
18702 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18703 : ((16 == 64 || TARGET_AVX512VL
18704 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18705 : && ix86_pre_reload_split ()
18706 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18707 : STRIP_UNARY (operands[4]))
18708 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18709 : STRIP_UNARY (operands[4]))
18710 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18711 : STRIP_UNARY (operands[3]))
18712 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18713 : STRIP_UNARY (operands[3])))))
18714 : return -1;
18715 : return 6663; /* *avx512vl_vpternlogv8bf_2 */
18716 :
18717 : case 6:
18718 : if (!(
18719 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18720 : ((64 == 64 || TARGET_AVX512VL
18721 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18722 : && ix86_pre_reload_split ()
18723 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18724 : STRIP_UNARY (operands[4]))
18725 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18726 : STRIP_UNARY (operands[4]))
18727 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18728 : STRIP_UNARY (operands[3]))
18729 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18730 : STRIP_UNARY (operands[3])))) &&
18731 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18732 : (TARGET_AVX512F)))
18733 : return -1;
18734 : return 6690; /* *avx512f_vpternlogv16sf_2 */
18735 :
18736 : case 7:
18737 : if (!(
18738 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18739 : ((32 == 64 || TARGET_AVX512VL
18740 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18741 : && ix86_pre_reload_split ()
18742 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18743 : STRIP_UNARY (operands[4]))
18744 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18745 : STRIP_UNARY (operands[4]))
18746 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18747 : STRIP_UNARY (operands[3]))
18748 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18749 : STRIP_UNARY (operands[3])))) &&
18750 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18751 : (TARGET_AVX)))
18752 : return -1;
18753 : return 6717; /* *avx512vl_vpternlogv8sf_2 */
18754 :
18755 : case 8:
18756 : if (!
18757 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18758 : ((16 == 64 || TARGET_AVX512VL
18759 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18760 : && ix86_pre_reload_split ()
18761 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18762 : STRIP_UNARY (operands[4]))
18763 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18764 : STRIP_UNARY (operands[4]))
18765 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18766 : STRIP_UNARY (operands[3]))
18767 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18768 : STRIP_UNARY (operands[3])))))
18769 : return -1;
18770 : return 6744; /* *avx512vl_vpternlogv4sf_2 */
18771 :
18772 : case 9:
18773 : if (!(
18774 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18775 : ((64 == 64 || TARGET_AVX512VL
18776 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18777 : && ix86_pre_reload_split ()
18778 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18779 : STRIP_UNARY (operands[4]))
18780 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18781 : STRIP_UNARY (operands[4]))
18782 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18783 : STRIP_UNARY (operands[3]))
18784 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18785 : STRIP_UNARY (operands[3])))) &&
18786 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18787 : (TARGET_AVX512F)))
18788 : return -1;
18789 : return 6771; /* *avx512f_vpternlogv8df_2 */
18790 :
18791 : case 10:
18792 : if (!(
18793 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18794 : ((32 == 64 || TARGET_AVX512VL
18795 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18796 : && ix86_pre_reload_split ()
18797 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18798 : STRIP_UNARY (operands[4]))
18799 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18800 : STRIP_UNARY (operands[4]))
18801 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18802 : STRIP_UNARY (operands[3]))
18803 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18804 : STRIP_UNARY (operands[3])))) &&
18805 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18806 : (TARGET_AVX)))
18807 : return -1;
18808 : return 6798; /* *avx512vl_vpternlogv4df_2 */
18809 :
18810 : case 11:
18811 : if (!(
18812 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18813 : ((16 == 64 || TARGET_AVX512VL
18814 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18815 : && ix86_pre_reload_split ()
18816 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18817 : STRIP_UNARY (operands[4]))
18818 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18819 : STRIP_UNARY (operands[4]))
18820 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18821 : STRIP_UNARY (operands[3]))
18822 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18823 : STRIP_UNARY (operands[3])))) &&
18824 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18825 : (TARGET_SSE2)))
18826 : return -1;
18827 : return 6825; /* *avx512vl_vpternlogv2df_2 */
18828 :
18829 : default:
18830 : return -1;
18831 : }
18832 :
18833 : case IOR:
18834 : switch (pattern542 (x2))
18835 : {
18836 : case 0:
18837 : if (!(
18838 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18839 : ((64 == 64 || TARGET_AVX512VL
18840 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18841 : && ix86_pre_reload_split ()
18842 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18843 : STRIP_UNARY (operands[4]))
18844 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18845 : STRIP_UNARY (operands[4]))
18846 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18847 : STRIP_UNARY (operands[3]))
18848 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18849 : STRIP_UNARY (operands[3])))) &&
18850 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18851 : (TARGET_AVX512F)))
18852 : return -1;
18853 : return 6531; /* *avx512bw_vpternlogv32hf_2 */
18854 :
18855 : case 1:
18856 : if (!(
18857 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18858 : ((32 == 64 || TARGET_AVX512VL
18859 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18860 : && ix86_pre_reload_split ()
18861 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18862 : STRIP_UNARY (operands[4]))
18863 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18864 : STRIP_UNARY (operands[4]))
18865 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18866 : STRIP_UNARY (operands[3]))
18867 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18868 : STRIP_UNARY (operands[3])))) &&
18869 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18870 : (TARGET_AVX)))
18871 : return -1;
18872 : return 6558; /* *avx512vl_vpternlogv16hf_2 */
18873 :
18874 : case 2:
18875 : if (!
18876 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18877 : ((16 == 64 || TARGET_AVX512VL
18878 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18879 : && ix86_pre_reload_split ()
18880 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18881 : STRIP_UNARY (operands[4]))
18882 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18883 : STRIP_UNARY (operands[4]))
18884 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18885 : STRIP_UNARY (operands[3]))
18886 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18887 : STRIP_UNARY (operands[3])))))
18888 : return -1;
18889 : return 6585; /* *avx512fp16_vpternlogv8hf_2 */
18890 :
18891 : case 3:
18892 : if (!(
18893 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18894 : ((64 == 64 || TARGET_AVX512VL
18895 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18896 : && ix86_pre_reload_split ()
18897 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18898 : STRIP_UNARY (operands[4]))
18899 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18900 : STRIP_UNARY (operands[4]))
18901 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18902 : STRIP_UNARY (operands[3]))
18903 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18904 : STRIP_UNARY (operands[3])))) &&
18905 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18906 : (TARGET_AVX512F)))
18907 : return -1;
18908 : return 6612; /* *avx512bw_vpternlogv32bf_2 */
18909 :
18910 : case 4:
18911 : if (!(
18912 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18913 : ((32 == 64 || TARGET_AVX512VL
18914 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18915 : && ix86_pre_reload_split ()
18916 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18917 : STRIP_UNARY (operands[4]))
18918 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18919 : STRIP_UNARY (operands[4]))
18920 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18921 : STRIP_UNARY (operands[3]))
18922 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18923 : STRIP_UNARY (operands[3])))) &&
18924 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18925 : (TARGET_AVX)))
18926 : return -1;
18927 : return 6639; /* *avx512vl_vpternlogv16bf_2 */
18928 :
18929 : case 5:
18930 : if (!
18931 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18932 : ((16 == 64 || TARGET_AVX512VL
18933 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18934 : && ix86_pre_reload_split ()
18935 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18936 : STRIP_UNARY (operands[4]))
18937 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18938 : STRIP_UNARY (operands[4]))
18939 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18940 : STRIP_UNARY (operands[3]))
18941 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18942 : STRIP_UNARY (operands[3])))))
18943 : return -1;
18944 : return 6666; /* *avx512vl_vpternlogv8bf_2 */
18945 :
18946 : case 6:
18947 : if (!(
18948 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18949 : ((64 == 64 || TARGET_AVX512VL
18950 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18951 : && ix86_pre_reload_split ()
18952 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18953 : STRIP_UNARY (operands[4]))
18954 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18955 : STRIP_UNARY (operands[4]))
18956 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18957 : STRIP_UNARY (operands[3]))
18958 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18959 : STRIP_UNARY (operands[3])))) &&
18960 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18961 : (TARGET_AVX512F)))
18962 : return -1;
18963 : return 6693; /* *avx512f_vpternlogv16sf_2 */
18964 :
18965 : case 7:
18966 : if (!(
18967 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18968 : ((32 == 64 || TARGET_AVX512VL
18969 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18970 : && ix86_pre_reload_split ()
18971 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18972 : STRIP_UNARY (operands[4]))
18973 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18974 : STRIP_UNARY (operands[4]))
18975 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18976 : STRIP_UNARY (operands[3]))
18977 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18978 : STRIP_UNARY (operands[3])))) &&
18979 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18980 : (TARGET_AVX)))
18981 : return -1;
18982 : return 6720; /* *avx512vl_vpternlogv8sf_2 */
18983 :
18984 : case 8:
18985 : if (!
18986 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18987 : ((16 == 64 || TARGET_AVX512VL
18988 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18989 : && ix86_pre_reload_split ()
18990 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18991 : STRIP_UNARY (operands[4]))
18992 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18993 : STRIP_UNARY (operands[4]))
18994 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18995 : STRIP_UNARY (operands[3]))
18996 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18997 : STRIP_UNARY (operands[3])))))
18998 : return -1;
18999 : return 6747; /* *avx512vl_vpternlogv4sf_2 */
19000 :
19001 : case 9:
19002 : if (!(
19003 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19004 : ((64 == 64 || TARGET_AVX512VL
19005 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19006 : && ix86_pre_reload_split ()
19007 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19008 : STRIP_UNARY (operands[4]))
19009 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19010 : STRIP_UNARY (operands[4]))
19011 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19012 : STRIP_UNARY (operands[3]))
19013 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19014 : STRIP_UNARY (operands[3])))) &&
19015 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19016 : (TARGET_AVX512F)))
19017 : return -1;
19018 : return 6774; /* *avx512f_vpternlogv8df_2 */
19019 :
19020 : case 10:
19021 : if (!(
19022 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19023 : ((32 == 64 || TARGET_AVX512VL
19024 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19025 : && ix86_pre_reload_split ()
19026 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19027 : STRIP_UNARY (operands[4]))
19028 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19029 : STRIP_UNARY (operands[4]))
19030 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19031 : STRIP_UNARY (operands[3]))
19032 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19033 : STRIP_UNARY (operands[3])))) &&
19034 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19035 : (TARGET_AVX)))
19036 : return -1;
19037 : return 6801; /* *avx512vl_vpternlogv4df_2 */
19038 :
19039 : case 11:
19040 : if (!(
19041 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19042 : ((16 == 64 || TARGET_AVX512VL
19043 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19044 : && ix86_pre_reload_split ()
19045 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19046 : STRIP_UNARY (operands[4]))
19047 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19048 : STRIP_UNARY (operands[4]))
19049 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19050 : STRIP_UNARY (operands[3]))
19051 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19052 : STRIP_UNARY (operands[3])))) &&
19053 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19054 : (TARGET_SSE2)))
19055 : return -1;
19056 : return 6828; /* *avx512vl_vpternlogv2df_2 */
19057 :
19058 : default:
19059 : return -1;
19060 : }
19061 :
19062 : case XOR:
19063 : switch (pattern542 (x2))
19064 : {
19065 : case 0:
19066 : if (!(
19067 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19068 : ((64 == 64 || TARGET_AVX512VL
19069 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19070 : && ix86_pre_reload_split ()
19071 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19072 : STRIP_UNARY (operands[4]))
19073 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19074 : STRIP_UNARY (operands[4]))
19075 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19076 : STRIP_UNARY (operands[3]))
19077 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19078 : STRIP_UNARY (operands[3])))) &&
19079 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19080 : (TARGET_AVX512F)))
19081 : return -1;
19082 : return 6534; /* *avx512bw_vpternlogv32hf_2 */
19083 :
19084 : case 1:
19085 : if (!(
19086 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19087 : ((32 == 64 || TARGET_AVX512VL
19088 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19089 : && ix86_pre_reload_split ()
19090 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19091 : STRIP_UNARY (operands[4]))
19092 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19093 : STRIP_UNARY (operands[4]))
19094 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19095 : STRIP_UNARY (operands[3]))
19096 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19097 : STRIP_UNARY (operands[3])))) &&
19098 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19099 : (TARGET_AVX)))
19100 : return -1;
19101 : return 6561; /* *avx512vl_vpternlogv16hf_2 */
19102 :
19103 : case 2:
19104 : if (!
19105 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19106 : ((16 == 64 || TARGET_AVX512VL
19107 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19108 : && ix86_pre_reload_split ()
19109 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19110 : STRIP_UNARY (operands[4]))
19111 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19112 : STRIP_UNARY (operands[4]))
19113 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19114 : STRIP_UNARY (operands[3]))
19115 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19116 : STRIP_UNARY (operands[3])))))
19117 : return -1;
19118 : return 6588; /* *avx512fp16_vpternlogv8hf_2 */
19119 :
19120 : case 3:
19121 : if (!(
19122 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19123 : ((64 == 64 || TARGET_AVX512VL
19124 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19125 : && ix86_pre_reload_split ()
19126 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19127 : STRIP_UNARY (operands[4]))
19128 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19129 : STRIP_UNARY (operands[4]))
19130 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19131 : STRIP_UNARY (operands[3]))
19132 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19133 : STRIP_UNARY (operands[3])))) &&
19134 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19135 : (TARGET_AVX512F)))
19136 : return -1;
19137 : return 6615; /* *avx512bw_vpternlogv32bf_2 */
19138 :
19139 : case 4:
19140 : if (!(
19141 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19142 : ((32 == 64 || TARGET_AVX512VL
19143 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19144 : && ix86_pre_reload_split ()
19145 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19146 : STRIP_UNARY (operands[4]))
19147 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19148 : STRIP_UNARY (operands[4]))
19149 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19150 : STRIP_UNARY (operands[3]))
19151 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19152 : STRIP_UNARY (operands[3])))) &&
19153 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19154 : (TARGET_AVX)))
19155 : return -1;
19156 : return 6642; /* *avx512vl_vpternlogv16bf_2 */
19157 :
19158 : case 5:
19159 : if (!
19160 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19161 : ((16 == 64 || TARGET_AVX512VL
19162 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19163 : && ix86_pre_reload_split ()
19164 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19165 : STRIP_UNARY (operands[4]))
19166 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19167 : STRIP_UNARY (operands[4]))
19168 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19169 : STRIP_UNARY (operands[3]))
19170 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19171 : STRIP_UNARY (operands[3])))))
19172 : return -1;
19173 : return 6669; /* *avx512vl_vpternlogv8bf_2 */
19174 :
19175 : case 6:
19176 : if (!(
19177 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19178 : ((64 == 64 || TARGET_AVX512VL
19179 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19180 : && ix86_pre_reload_split ()
19181 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19182 : STRIP_UNARY (operands[4]))
19183 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19184 : STRIP_UNARY (operands[4]))
19185 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19186 : STRIP_UNARY (operands[3]))
19187 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19188 : STRIP_UNARY (operands[3])))) &&
19189 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19190 : (TARGET_AVX512F)))
19191 : return -1;
19192 : return 6696; /* *avx512f_vpternlogv16sf_2 */
19193 :
19194 : case 7:
19195 : if (!(
19196 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19197 : ((32 == 64 || TARGET_AVX512VL
19198 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19199 : && ix86_pre_reload_split ()
19200 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19201 : STRIP_UNARY (operands[4]))
19202 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19203 : STRIP_UNARY (operands[4]))
19204 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19205 : STRIP_UNARY (operands[3]))
19206 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19207 : STRIP_UNARY (operands[3])))) &&
19208 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19209 : (TARGET_AVX)))
19210 : return -1;
19211 : return 6723; /* *avx512vl_vpternlogv8sf_2 */
19212 :
19213 : case 8:
19214 : if (!
19215 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19216 : ((16 == 64 || TARGET_AVX512VL
19217 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19218 : && ix86_pre_reload_split ()
19219 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19220 : STRIP_UNARY (operands[4]))
19221 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19222 : STRIP_UNARY (operands[4]))
19223 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19224 : STRIP_UNARY (operands[3]))
19225 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19226 : STRIP_UNARY (operands[3])))))
19227 : return -1;
19228 : return 6750; /* *avx512vl_vpternlogv4sf_2 */
19229 :
19230 : case 9:
19231 : if (!(
19232 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19233 : ((64 == 64 || TARGET_AVX512VL
19234 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19235 : && ix86_pre_reload_split ()
19236 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19237 : STRIP_UNARY (operands[4]))
19238 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19239 : STRIP_UNARY (operands[4]))
19240 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19241 : STRIP_UNARY (operands[3]))
19242 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19243 : STRIP_UNARY (operands[3])))) &&
19244 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19245 : (TARGET_AVX512F)))
19246 : return -1;
19247 : return 6777; /* *avx512f_vpternlogv8df_2 */
19248 :
19249 : case 10:
19250 : if (!(
19251 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19252 : ((32 == 64 || TARGET_AVX512VL
19253 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19254 : && ix86_pre_reload_split ()
19255 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19256 : STRIP_UNARY (operands[4]))
19257 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19258 : STRIP_UNARY (operands[4]))
19259 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19260 : STRIP_UNARY (operands[3]))
19261 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19262 : STRIP_UNARY (operands[3])))) &&
19263 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19264 : (TARGET_AVX)))
19265 : return -1;
19266 : return 6804; /* *avx512vl_vpternlogv4df_2 */
19267 :
19268 : case 11:
19269 : if (!(
19270 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19271 : ((16 == 64 || TARGET_AVX512VL
19272 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19273 : && ix86_pre_reload_split ()
19274 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19275 : STRIP_UNARY (operands[4]))
19276 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19277 : STRIP_UNARY (operands[4]))
19278 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19279 : STRIP_UNARY (operands[3]))
19280 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19281 : STRIP_UNARY (operands[3])))) &&
19282 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19283 : (TARGET_SSE2)))
19284 : return -1;
19285 : return 6831; /* *avx512vl_vpternlogv2df_2 */
19286 :
19287 : default:
19288 : return -1;
19289 : }
19290 :
19291 : default:
19292 : return -1;
19293 : }
19294 : }
19295 :
19296 : int
19297 : recog_325 (rtx x1 ATTRIBUTE_UNUSED,
19298 : rtx_insn *insn ATTRIBUTE_UNUSED,
19299 : int *pnum_clobbers ATTRIBUTE_UNUSED)
19300 : {
19301 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
19302 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
19303 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
19304 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
19305 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
19306 : rtx x34, x35, x36, x37, x38, x39, x40, x41;
19307 : rtx x42, x43, x44, x45, x46, x47, x48, x49;
19308 : rtx x50, x51, x52, x53, x54, x55, x56, x57;
19309 : rtx x58, x59, x60, x61, x62, x63, x64, x65;
19310 : rtx x66, x67, x68, x69;
19311 : int res ATTRIBUTE_UNUSED;
19312 : x2 = XEXP (x1, 1);
19313 : x3 = XEXP (x2, 1);
19314 : if (GET_CODE (x3) != PARALLEL)
19315 : return -1;
19316 : x4 = XEXP (x1, 0);
19317 : operands[0] = x4;
19318 : x5 = XEXP (x2, 0);
19319 : switch (GET_CODE (x5))
19320 : {
19321 : case VEC_CONCAT:
19322 : x6 = XEXP (x5, 0);
19323 : switch (GET_CODE (x6))
19324 : {
19325 : case REG:
19326 : case SUBREG:
19327 : case MEM:
19328 : operands[1] = x6;
19329 : res = recog_289 (x1, insn, pnum_clobbers);
19330 : if (res >= 0)
19331 : return res;
19332 : if (XVECLEN (x3, 0) < 1)
19333 : return -1;
19334 : operands[4] = x3;
19335 : switch (pattern813 (x2))
19336 : {
19337 : case 0:
19338 : if (
19339 : #line 24501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19340 : (TARGET_AVX2))
19341 : return 8802; /* *avx2_zero_extendv16qiv16hi2_2 */
19342 : break;
19343 :
19344 : case 1:
19345 : if (
19346 : #line 24501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19347 : (TARGET_AVX2))
19348 : return 8803; /* *avx2_zero_extendv16qiv16hi2_2 */
19349 : break;
19350 :
19351 : case 2:
19352 : if (
19353 : #line 24501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19354 : (TARGET_AVX2))
19355 : return 8804; /* *avx2_zero_extendv16qiv16hi2_2 */
19356 : break;
19357 :
19358 : case 3:
19359 : if (
19360 : #line 24554 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19361 : (TARGET_AVX512BW))
19362 : return 8810; /* *avx512bw_zero_extendv32qiv32hi2_2 */
19363 : break;
19364 :
19365 : case 4:
19366 : if (
19367 : #line 24554 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19368 : (TARGET_AVX512BW))
19369 : return 8811; /* *avx512bw_zero_extendv32qiv32hi2_2 */
19370 : break;
19371 :
19372 : case 5:
19373 : if (
19374 : #line 24554 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19375 : (TARGET_AVX512BW))
19376 : return 8812; /* *avx512bw_zero_extendv32qiv32hi2_2 */
19377 : break;
19378 :
19379 : case 6:
19380 : if (
19381 : #line 24691 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19382 : (TARGET_SSE4_1))
19383 : return 8826; /* *sse4_1_zero_extendv8qiv8hi2_4 */
19384 : break;
19385 :
19386 : case 7:
19387 : if (
19388 : #line 24691 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19389 : (TARGET_SSE4_1))
19390 : return 8827; /* *sse4_1_zero_extendv8qiv8hi2_4 */
19391 : break;
19392 :
19393 : case 8:
19394 : if (
19395 : #line 24691 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19396 : (TARGET_SSE4_1))
19397 : return 8828; /* *sse4_1_zero_extendv8qiv8hi2_4 */
19398 : break;
19399 :
19400 : case 9:
19401 : if (
19402 : #line 24980 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19403 : (TARGET_AVX512F))
19404 : return 8864; /* *avx512f_zero_extendv16hiv16si2_2 */
19405 : break;
19406 :
19407 : case 10:
19408 : if (
19409 : #line 24980 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19410 : (TARGET_AVX512F))
19411 : return 8865; /* *avx512f_zero_extendv16hiv16si2_2 */
19412 : break;
19413 :
19414 : case 11:
19415 : if (
19416 : #line 24980 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19417 : (TARGET_AVX512F))
19418 : return 8866; /* *avx512f_zero_extendv16hiv16si2_2 */
19419 : break;
19420 :
19421 : case 12:
19422 : if (
19423 : #line 25034 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19424 : (TARGET_AVX2))
19425 : return 8872; /* *avx2_zero_extendv8hiv8si2_2 */
19426 : break;
19427 :
19428 : case 13:
19429 : if (
19430 : #line 25034 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19431 : (TARGET_AVX2))
19432 : return 8873; /* *avx2_zero_extendv8hiv8si2_2 */
19433 : break;
19434 :
19435 : case 14:
19436 : if (
19437 : #line 25034 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19438 : (TARGET_AVX2))
19439 : return 8874; /* *avx2_zero_extendv8hiv8si2_2 */
19440 : break;
19441 :
19442 : case 15:
19443 : if (
19444 : #line 25177 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19445 : (TARGET_SSE4_1))
19446 : return 8888; /* *sse4_1_zero_extendv4hiv4si2_4 */
19447 : break;
19448 :
19449 : case 16:
19450 : if (
19451 : #line 25177 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19452 : (TARGET_SSE4_1))
19453 : return 8889; /* *sse4_1_zero_extendv4hiv4si2_4 */
19454 : break;
19455 :
19456 : case 17:
19457 : if (
19458 : #line 25177 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19459 : (TARGET_SSE4_1))
19460 : return 8890; /* *sse4_1_zero_extendv4hiv4si2_4 */
19461 : break;
19462 :
19463 : default:
19464 : break;
19465 : }
19466 : operands[3] = x3;
19467 : switch (pattern814 (x2))
19468 : {
19469 : case 0:
19470 : if (!(
19471 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19472 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
19473 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19474 : (TARGET_AVX512F)))
19475 : return -1;
19476 : return 9696; /* *vec_concatv64qi_0_1 */
19477 :
19478 : case 1:
19479 : if (!(
19480 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19481 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
19482 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19483 : (TARGET_AVX)))
19484 : return -1;
19485 : return 9697; /* *vec_concatv32qi_0_1 */
19486 :
19487 : case 2:
19488 : if (!
19489 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19490 : (TARGET_SSE2 && ix86_pre_reload_split ()))
19491 : return -1;
19492 : return 9698; /* *vec_concatv16qi_0_1 */
19493 :
19494 : case 3:
19495 : if (!(
19496 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19497 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
19498 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19499 : (TARGET_AVX512F)))
19500 : return -1;
19501 : return 9699; /* *vec_concatv32hi_0_1 */
19502 :
19503 : case 4:
19504 : if (!(
19505 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19506 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
19507 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19508 : (TARGET_AVX)))
19509 : return -1;
19510 : return 9700; /* *vec_concatv16hi_0_1 */
19511 :
19512 : case 5:
19513 : if (!
19514 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19515 : (TARGET_SSE2 && ix86_pre_reload_split ()))
19516 : return -1;
19517 : return 9701; /* *vec_concatv8hi_0_1 */
19518 :
19519 : default:
19520 : return -1;
19521 : }
19522 :
19523 : case SS_TRUNCATE:
19524 : x7 = XEXP (x5, 1);
19525 : if (GET_CODE (x7) != SS_TRUNCATE)
19526 : return -1;
19527 : x8 = XEXP (x6, 0);
19528 : operands[1] = x8;
19529 : x9 = XEXP (x7, 0);
19530 : operands[2] = x9;
19531 : switch (XVECLEN (x3, 0))
19532 : {
19533 : case 32:
19534 : if (pattern845 (x3) != 0)
19535 : return -1;
19536 : x10 = XVECEXP (x3, 0, 4);
19537 : if (GET_CODE (x10) != CONST_INT)
19538 : return -1;
19539 : x11 = XVECEXP (x3, 0, 5);
19540 : if (GET_CODE (x11) != CONST_INT)
19541 : return -1;
19542 : x12 = XVECEXP (x3, 0, 6);
19543 : if (GET_CODE (x12) != CONST_INT)
19544 : return -1;
19545 : x13 = XVECEXP (x3, 0, 7);
19546 : if (GET_CODE (x13) != CONST_INT)
19547 : return -1;
19548 : x14 = XVECEXP (x3, 0, 8);
19549 : if (GET_CODE (x14) != CONST_INT)
19550 : return -1;
19551 : x15 = XVECEXP (x3, 0, 9);
19552 : if (GET_CODE (x15) != CONST_INT)
19553 : return -1;
19554 : x16 = XVECEXP (x3, 0, 10);
19555 : if (GET_CODE (x16) != CONST_INT)
19556 : return -1;
19557 : x17 = XVECEXP (x3, 0, 11);
19558 : if (GET_CODE (x17) != CONST_INT
19559 : || pattern1711 (x3,
19560 : 23,
19561 : 22,
19562 : 21,
19563 : 20,
19564 : 8) != 0)
19565 : return -1;
19566 : x18 = XVECEXP (x3, 0, 17);
19567 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
19568 : return -1;
19569 : x19 = XVECEXP (x3, 0, 18);
19570 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
19571 : return -1;
19572 : x20 = XVECEXP (x3, 0, 19);
19573 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 11])
19574 : return -1;
19575 : x21 = XVECEXP (x3, 0, 20);
19576 : if (GET_CODE (x21) != CONST_INT)
19577 : return -1;
19578 : x22 = XVECEXP (x3, 0, 21);
19579 : if (GET_CODE (x22) != CONST_INT)
19580 : return -1;
19581 : x23 = XVECEXP (x3, 0, 22);
19582 : if (GET_CODE (x23) != CONST_INT)
19583 : return -1;
19584 : x24 = XVECEXP (x3, 0, 23);
19585 : if (GET_CODE (x24) != CONST_INT)
19586 : return -1;
19587 : x25 = XVECEXP (x3, 0, 24);
19588 : if (GET_CODE (x25) != CONST_INT)
19589 : return -1;
19590 : x26 = XVECEXP (x3, 0, 25);
19591 : if (GET_CODE (x26) != CONST_INT)
19592 : return -1;
19593 : x27 = XVECEXP (x3, 0, 26);
19594 : if (GET_CODE (x27) != CONST_INT)
19595 : return -1;
19596 : x28 = XVECEXP (x3, 0, 27);
19597 : if (GET_CODE (x28) != CONST_INT
19598 : || pattern1891 (x3,
19599 : 31,
19600 : 30,
19601 : 29,
19602 : 28) != 0)
19603 : return -1;
19604 : switch (XWINT (x10, 0))
19605 : {
19606 : case 4L:
19607 : if (XWINT (x11, 0) != 5L
19608 : || XWINT (x12, 0) != 6L
19609 : || XWINT (x13, 0) != 7L
19610 : || XWINT (x14, 0) != 16L
19611 : || XWINT (x15, 0) != 17L
19612 : || XWINT (x16, 0) != 18L
19613 : || XWINT (x17, 0) != 19L
19614 : || XWINT (x21, 0) != 12L
19615 : || XWINT (x22, 0) != 13L
19616 : || XWINT (x23, 0) != 14L
19617 : || XWINT (x24, 0) != 15L
19618 : || pattern1916 (x3) != 0
19619 : || pattern1846 (x2,
19620 : E_V16HImode,
19621 : E_V16QImode,
19622 : E_V32QImode) != 0
19623 : || !
19624 : #line 19584 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19625 : (TARGET_AVX2 && 1 && 1))
19626 : return -1;
19627 : return 8347; /* avx2_packsswb */
19628 :
19629 : case 16L:
19630 : if (XWINT (x11, 0) != 17L
19631 : || XWINT (x12, 0) != 18L
19632 : || XWINT (x13, 0) != 19L
19633 : || XWINT (x14, 0) != 4L
19634 : || XWINT (x15, 0) != 5L
19635 : || XWINT (x16, 0) != 6L
19636 : || XWINT (x17, 0) != 7L
19637 : || XWINT (x21, 0) != 24L
19638 : || XWINT (x22, 0) != 25L
19639 : || XWINT (x23, 0) != 26L
19640 : || XWINT (x24, 0) != 27L
19641 : || XWINT (x25, 0) != 12L
19642 : || XWINT (x26, 0) != 13L
19643 : || XWINT (x27, 0) != 14L
19644 : || XWINT (x28, 0) != 15L
19645 : || pattern1846 (x2,
19646 : E_V16SImode,
19647 : E_V16HImode,
19648 : E_V32HImode) != 0
19649 : || !
19650 : #line 19700 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19651 : (TARGET_AVX512BW))
19652 : return -1;
19653 : return 8355; /* avx512bw_packssdw */
19654 :
19655 : default:
19656 : return -1;
19657 : }
19658 :
19659 : case 64:
19660 : if (pattern848 (x3,
19661 : 35,
19662 : 34,
19663 : 33,
19664 : 32) != 0
19665 : || pattern1711 (x3,
19666 : 39,
19667 : 38,
19668 : 37,
19669 : 36,
19670 : 8) != 0
19671 : || pattern1831 (x3,
19672 : 13,
19673 : 12,
19674 : 11,
19675 : 10,
19676 : 9) != 0
19677 : || pattern1873 (x3,
19678 : 42,
19679 : 41,
19680 : 40,
19681 : 15,
19682 : 14) != 0)
19683 : return -1;
19684 : x28 = XVECEXP (x3, 0, 27);
19685 : if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 43]
19686 : || pattern1891 (x3,
19687 : 47,
19688 : 46,
19689 : 45,
19690 : 44) != 0)
19691 : return -1;
19692 : x29 = XVECEXP (x3, 0, 32);
19693 : if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
19694 : return -1;
19695 : x30 = XVECEXP (x3, 0, 33);
19696 : if (x30 != const_int_rtx[MAX_SAVED_CONST_INT + 17])
19697 : return -1;
19698 : x31 = XVECEXP (x3, 0, 34);
19699 : if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 18])
19700 : return -1;
19701 : x32 = XVECEXP (x3, 0, 35);
19702 : if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 19])
19703 : return -1;
19704 : x33 = XVECEXP (x3, 0, 36);
19705 : if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 20])
19706 : return -1;
19707 : x34 = XVECEXP (x3, 0, 37);
19708 : if (x34 != const_int_rtx[MAX_SAVED_CONST_INT + 21])
19709 : return -1;
19710 : x35 = XVECEXP (x3, 0, 38);
19711 : if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + 22])
19712 : return -1;
19713 : x36 = XVECEXP (x3, 0, 39);
19714 : if (x36 != const_int_rtx[MAX_SAVED_CONST_INT + 23])
19715 : return -1;
19716 : x37 = XVECEXP (x3, 0, 40);
19717 : if (x37 != const_int_rtx[MAX_SAVED_CONST_INT + 48])
19718 : return -1;
19719 : x38 = XVECEXP (x3, 0, 41);
19720 : if (x38 != const_int_rtx[MAX_SAVED_CONST_INT + 49])
19721 : return -1;
19722 : x39 = XVECEXP (x3, 0, 42);
19723 : if (x39 != const_int_rtx[MAX_SAVED_CONST_INT + 50])
19724 : return -1;
19725 : x40 = XVECEXP (x3, 0, 43);
19726 : if (x40 != const_int_rtx[MAX_SAVED_CONST_INT + 51])
19727 : return -1;
19728 : x41 = XVECEXP (x3, 0, 44);
19729 : if (x41 != const_int_rtx[MAX_SAVED_CONST_INT + 52])
19730 : return -1;
19731 : x42 = XVECEXP (x3, 0, 45);
19732 : if (x42 != const_int_rtx[MAX_SAVED_CONST_INT + 53])
19733 : return -1;
19734 : x43 = XVECEXP (x3, 0, 46);
19735 : if (x43 != const_int_rtx[MAX_SAVED_CONST_INT + 54])
19736 : return -1;
19737 : x44 = XVECEXP (x3, 0, 47);
19738 : if (x44 != const_int_rtx[MAX_SAVED_CONST_INT + 55])
19739 : return -1;
19740 : x45 = XVECEXP (x3, 0, 48);
19741 : if (x45 != const_int_rtx[MAX_SAVED_CONST_INT + 24])
19742 : return -1;
19743 : x46 = XVECEXP (x3, 0, 49);
19744 : if (x46 != const_int_rtx[MAX_SAVED_CONST_INT + 25])
19745 : return -1;
19746 : x47 = XVECEXP (x3, 0, 50);
19747 : if (x47 != const_int_rtx[MAX_SAVED_CONST_INT + 26])
19748 : return -1;
19749 : x48 = XVECEXP (x3, 0, 51);
19750 : if (x48 != const_int_rtx[MAX_SAVED_CONST_INT + 27])
19751 : return -1;
19752 : x49 = XVECEXP (x3, 0, 52);
19753 : if (x49 != const_int_rtx[MAX_SAVED_CONST_INT + 28])
19754 : return -1;
19755 : x50 = XVECEXP (x3, 0, 53);
19756 : if (x50 != const_int_rtx[MAX_SAVED_CONST_INT + 29])
19757 : return -1;
19758 : x51 = XVECEXP (x3, 0, 54);
19759 : if (x51 != const_int_rtx[MAX_SAVED_CONST_INT + 30])
19760 : return -1;
19761 : x52 = XVECEXP (x3, 0, 55);
19762 : if (x52 != const_int_rtx[MAX_SAVED_CONST_INT + 31])
19763 : return -1;
19764 : x53 = XVECEXP (x3, 0, 56);
19765 : if (x53 != const_int_rtx[MAX_SAVED_CONST_INT + 56])
19766 : return -1;
19767 : x54 = XVECEXP (x3, 0, 57);
19768 : if (x54 != const_int_rtx[MAX_SAVED_CONST_INT + 57])
19769 : return -1;
19770 : x55 = XVECEXP (x3, 0, 58);
19771 : if (x55 != const_int_rtx[MAX_SAVED_CONST_INT + 58])
19772 : return -1;
19773 : x56 = XVECEXP (x3, 0, 59);
19774 : if (x56 != const_int_rtx[MAX_SAVED_CONST_INT + 59])
19775 : return -1;
19776 : x57 = XVECEXP (x3, 0, 60);
19777 : if (x57 != const_int_rtx[MAX_SAVED_CONST_INT + 60])
19778 : return -1;
19779 : x58 = XVECEXP (x3, 0, 61);
19780 : if (x58 != const_int_rtx[MAX_SAVED_CONST_INT + 61])
19781 : return -1;
19782 : x59 = XVECEXP (x3, 0, 62);
19783 : if (x59 != const_int_rtx[MAX_SAVED_CONST_INT + 62])
19784 : return -1;
19785 : x60 = XVECEXP (x3, 0, 63);
19786 : if (x60 != const_int_rtx[MAX_SAVED_CONST_INT + 63]
19787 : || pattern1846 (x2,
19788 : E_V32HImode,
19789 : E_V32QImode,
19790 : E_V64QImode) != 0
19791 : || !
19792 : #line 19631 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19793 : (TARGET_AVX512BW))
19794 : return -1;
19795 : return 8349; /* avx512bw_packsswb */
19796 :
19797 : case 16:
19798 : if (pattern846 (x3,
19799 : 10,
19800 : 9,
19801 : 8) != 0
19802 : || pattern1514 (x3,
19803 : 7,
19804 : 6,
19805 : 5,
19806 : 4,
19807 : 11) != 0
19808 : || pattern1846 (x2,
19809 : E_V8SImode,
19810 : E_V8HImode,
19811 : E_V16HImode) != 0
19812 : || !
19813 : #line 19670 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19814 : (TARGET_AVX2 && 1 && 1))
19815 : return -1;
19816 : return 8353; /* avx2_packssdw */
19817 :
19818 : default:
19819 : return -1;
19820 : }
19821 :
19822 : case VEC_CONCAT:
19823 : switch (pattern523 (x2))
19824 : {
19825 : case 0:
19826 : if (!
19827 : #line 25668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19828 : (TARGET_AVX512F))
19829 : return -1;
19830 : return 8959; /* *avx512f_zero_extendv8siv8di2_2 */
19831 :
19832 : case 1:
19833 : if (!
19834 : #line 25720 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19835 : (TARGET_AVX2))
19836 : return -1;
19837 : return 8965; /* *avx2_zero_extendv4siv4di2_2 */
19838 :
19839 : case 2:
19840 : if (!
19841 : #line 25839 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19842 : (TARGET_SSE4_1))
19843 : return -1;
19844 : return 8979; /* *sse4_1_zero_extendv2siv2di2_4 */
19845 :
19846 : default:
19847 : return -1;
19848 : }
19849 :
19850 : default:
19851 : return -1;
19852 : }
19853 :
19854 : case REG:
19855 : case SUBREG:
19856 : case MEM:
19857 : operands[1] = x5;
19858 : res = recog_303 (x1, insn, pnum_clobbers);
19859 : if (res >= 0)
19860 : return res;
19861 : if (GET_CODE (x5) != SUBREG)
19862 : return -1;
19863 : switch (pattern525 (x2))
19864 : {
19865 : case 0:
19866 : if (!
19867 : #line 15360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19868 : (TARGET_AVX512BW && ix86_pre_reload_split ()))
19869 : return -1;
19870 : return 7272; /* *avx512bw_permvar_truncv16siv16hi_1_hf */
19871 :
19872 : case 1:
19873 : if (!
19874 : #line 15413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19875 : (TARGET_AVX512VL && TARGET_AVX512BW && ix86_pre_reload_split ()))
19876 : return -1;
19877 : return 7274; /* *avx512f_permvar_truncv8siv8hi_1_hf */
19878 :
19879 : default:
19880 : return -1;
19881 : }
19882 :
19883 : case UNSPEC:
19884 : switch (XVECLEN (x5, 0))
19885 : {
19886 : case 2:
19887 : switch (pattern527 (x2))
19888 : {
19889 : case 0:
19890 : if (!
19891 : #line 15335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19892 : (TARGET_AVX512BW && ix86_pre_reload_split ()))
19893 : return -1;
19894 : return 7271; /* *avx512bw_permvar_truncv16siv16hi_1 */
19895 :
19896 : case 1:
19897 : if (!
19898 : #line 15597 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19899 : (TARGET_AVX512VL && TARGET_AVX512VBMI
19900 : && ix86_pre_reload_split ()))
19901 : return -1;
19902 : return 7304; /* *avx512f_permvar_truncv16hiv16qi_1 */
19903 :
19904 : case 2:
19905 : if (!
19906 : #line 15392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19907 : (TARGET_AVX512VL && TARGET_AVX512BW && ix86_pre_reload_split ()))
19908 : return -1;
19909 : return 7273; /* *avx512f_permvar_truncv8siv8hi_1 */
19910 :
19911 : case 3:
19912 : if (!
19913 : #line 15444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19914 : (TARGET_AVX512F && ix86_pre_reload_split ()))
19915 : return -1;
19916 : return 7275; /* *avx512f_vpermvar_truncv8div8si_1 */
19917 :
19918 : case 4:
19919 : if (!
19920 : #line 15516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19921 : (TARGET_AVX512VBMI && ix86_pre_reload_split ()))
19922 : return -1;
19923 : return 7291; /* *avx512f_permvar_truncv32hiv32qi_1 */
19924 :
19925 : case 5:
19926 : if (!
19927 : #line 15616 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19928 : (TARGET_AVX512VL && ix86_pre_reload_split ()))
19929 : return -1;
19930 : return 7305; /* *avx512f_permvar_truncv4div4si_1 */
19931 :
19932 : default:
19933 : return -1;
19934 : }
19935 :
19936 : case 1:
19937 : if (XINT (x5, 1) != 150
19938 : || GET_MODE (x5) != E_V8SFmode
19939 : || XVECLEN (x3, 0) != 4
19940 : || pattern845 (x3) != 0
19941 : || !register_operand (operands[0], E_V4SFmode)
19942 : || GET_MODE (x2) != E_V4SFmode)
19943 : return -1;
19944 : x61 = XVECEXP (x5, 0, 0);
19945 : operands[1] = x61;
19946 : if (!register_operand (operands[1], E_V8HImode)
19947 : || !
19948 : #line 29778 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19949 : (TARGET_F16C || TARGET_AVX512VL))
19950 : return -1;
19951 : return 9720; /* vcvtph2ps */
19952 :
19953 : case 4:
19954 : if (pnum_clobbers == NULL
19955 : || XINT (x5, 1) != 154)
19956 : return -1;
19957 : x62 = XVECEXP (x5, 0, 1);
19958 : if (GET_CODE (x62) != MEM)
19959 : return -1;
19960 : x63 = XEXP (x62, 0);
19961 : if (GET_CODE (x63) != UNSPEC
19962 : || XVECLEN (x63, 0) != 3
19963 : || XINT (x63, 1) != 155)
19964 : return -1;
19965 : x64 = XVECEXP (x5, 0, 2);
19966 : if (GET_CODE (x64) != MEM
19967 : || GET_MODE (x64) != E_BLKmode)
19968 : return -1;
19969 : x65 = XEXP (x64, 0);
19970 : if (GET_CODE (x65) != SCRATCH
19971 : || XVECLEN (x3, 0) != 4
19972 : || pattern845 (x3) != 0)
19973 : return -1;
19974 : x66 = XVECEXP (x63, 0, 1);
19975 : if (!register_operand (x66, E_V4DImode))
19976 : return -1;
19977 : x67 = XVECEXP (x63, 0, 2);
19978 : if (!const1248_operand (x67, E_SImode))
19979 : return -1;
19980 : x61 = XVECEXP (x5, 0, 0);
19981 : switch (GET_CODE (x61))
19982 : {
19983 : case REG:
19984 : case SUBREG:
19985 : operands[2] = x61;
19986 : operands[7] = x62;
19987 : x68 = XVECEXP (x63, 0, 0);
19988 : operands[3] = x68;
19989 : operands[4] = x66;
19990 : operands[6] = x67;
19991 : x69 = XVECEXP (x5, 0, 3);
19992 : operands[5] = x69;
19993 : switch (GET_MODE (operands[0]))
19994 : {
19995 : case E_V4SImode:
19996 : switch (pattern1868 (x2,
19997 : E_V4SImode,
19998 : E_SImode,
19999 : E_V8SImode))
20000 : {
20001 : case 0:
20002 : if (!(
20003 : #line 30105 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20004 : (TARGET_AVX2) &&
20005 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
20006 : (Pmode == SImode)))
20007 : return -1;
20008 : *pnum_clobbers = 1;
20009 : return 9807; /* *avx2_gatherdiv8si_3 */
20010 :
20011 : case 1:
20012 : if (!(
20013 : #line 30105 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20014 : (TARGET_AVX2) &&
20015 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
20016 : (Pmode == DImode)))
20017 : return -1;
20018 : *pnum_clobbers = 1;
20019 : return 9809; /* *avx2_gatherdiv8si_3 */
20020 :
20021 : default:
20022 : return -1;
20023 : }
20024 :
20025 : case E_V4SFmode:
20026 : switch (pattern1868 (x2,
20027 : E_V4SFmode,
20028 : E_SFmode,
20029 : E_V8SFmode))
20030 : {
20031 : case 0:
20032 : if (!(
20033 : #line 30105 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20034 : (TARGET_AVX2) &&
20035 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
20036 : (Pmode == SImode)))
20037 : return -1;
20038 : *pnum_clobbers = 1;
20039 : return 9808; /* *avx2_gatherdiv8sf_3 */
20040 :
20041 : case 1:
20042 : if (!(
20043 : #line 30105 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20044 : (TARGET_AVX2) &&
20045 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
20046 : (Pmode == DImode)))
20047 : return -1;
20048 : *pnum_clobbers = 1;
20049 : return 9810; /* *avx2_gatherdiv8sf_3 */
20050 :
20051 : default:
20052 : return -1;
20053 : }
20054 :
20055 : default:
20056 : return -1;
20057 : }
20058 :
20059 : case PC:
20060 : operands[6] = x62;
20061 : x68 = XVECEXP (x63, 0, 0);
20062 : operands[2] = x68;
20063 : operands[3] = x66;
20064 : operands[5] = x67;
20065 : x69 = XVECEXP (x5, 0, 3);
20066 : operands[4] = x69;
20067 : switch (GET_MODE (operands[0]))
20068 : {
20069 : case E_V4SImode:
20070 : switch (pattern1862 (x2,
20071 : E_V4SImode,
20072 : E_SImode,
20073 : E_V8SImode))
20074 : {
20075 : case 0:
20076 : if (!(
20077 : #line 30129 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20078 : (TARGET_AVX2) &&
20079 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
20080 : (Pmode == SImode)))
20081 : return -1;
20082 : *pnum_clobbers = 1;
20083 : return 9811; /* *avx2_gatherdiv8si_4 */
20084 :
20085 : case 1:
20086 : if (!(
20087 : #line 30129 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20088 : (TARGET_AVX2) &&
20089 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
20090 : (Pmode == DImode)))
20091 : return -1;
20092 : *pnum_clobbers = 1;
20093 : return 9813; /* *avx2_gatherdiv8si_4 */
20094 :
20095 : default:
20096 : return -1;
20097 : }
20098 :
20099 : case E_V4SFmode:
20100 : switch (pattern1862 (x2,
20101 : E_V4SFmode,
20102 : E_SFmode,
20103 : E_V8SFmode))
20104 : {
20105 : case 0:
20106 : if (!(
20107 : #line 30129 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20108 : (TARGET_AVX2) &&
20109 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
20110 : (Pmode == SImode)))
20111 : return -1;
20112 : *pnum_clobbers = 1;
20113 : return 9812; /* *avx2_gatherdiv8sf_4 */
20114 :
20115 : case 1:
20116 : if (!(
20117 : #line 30129 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20118 : (TARGET_AVX2) &&
20119 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
20120 : (Pmode == DImode)))
20121 : return -1;
20122 : *pnum_clobbers = 1;
20123 : return 9814; /* *avx2_gatherdiv8sf_4 */
20124 :
20125 : default:
20126 : return -1;
20127 : }
20128 :
20129 : default:
20130 : return -1;
20131 : }
20132 :
20133 : default:
20134 : return -1;
20135 : }
20136 :
20137 : default:
20138 : return -1;
20139 : }
20140 :
20141 : default:
20142 : return -1;
20143 : }
20144 : }
20145 :
20146 : int
20147 : recog_330 (rtx x1 ATTRIBUTE_UNUSED,
20148 : rtx_insn *insn ATTRIBUTE_UNUSED,
20149 : int *pnum_clobbers ATTRIBUTE_UNUSED)
20150 : {
20151 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
20152 : rtx x2, x3, x4, x5, x6, x7, x8;
20153 : int res ATTRIBUTE_UNUSED;
20154 : x2 = XEXP (x1, 0);
20155 : operands[0] = x2;
20156 : x3 = XEXP (x1, 1);
20157 : x4 = XEXP (x3, 1);
20158 : operands[2] = x4;
20159 : x5 = XEXP (x3, 0);
20160 : switch (GET_CODE (x5))
20161 : {
20162 : case REG:
20163 : case SUBREG:
20164 : case MEM:
20165 : case VEC_DUPLICATE:
20166 : return recog_278 (x1, insn, pnum_clobbers);
20167 :
20168 : case NEG:
20169 : x6 = XEXP (x5, 0);
20170 : operands[1] = x6;
20171 : x7 = XEXP (x3, 2);
20172 : switch (GET_CODE (x7))
20173 : {
20174 : case REG:
20175 : case SUBREG:
20176 : case MEM:
20177 : case VEC_DUPLICATE:
20178 : operands[3] = x7;
20179 : switch (GET_MODE (operands[0]))
20180 : {
20181 : case E_V4SFmode:
20182 : if (!register_operand (operands[0], E_V4SFmode)
20183 : || GET_MODE (x3) != E_V4SFmode
20184 : || GET_MODE (x5) != E_V4SFmode)
20185 : return -1;
20186 : if (nonimmediate_operand (operands[1], E_V4SFmode)
20187 : && nonimmediate_operand (operands[2], E_V4SFmode)
20188 : && nonimmediate_operand (operands[3], E_V4SFmode)
20189 : &&
20190 : #line 6466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20191 : (TARGET_FMA || TARGET_FMA4))
20192 : return 3997; /* *fma_fnmadd_v4sf */
20193 : if (!bcst_vector_operand (operands[1], E_V4SFmode)
20194 : || !bcst_vector_operand (operands[2], E_V4SFmode)
20195 : || !bcst_vector_operand (operands[3], E_V4SFmode)
20196 : || !(
20197 : #line 6498 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20198 : (TARGET_AVX512F && 1 && 1) &&
20199 : #line 6280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20200 : (TARGET_AVX512VL)))
20201 : return -1;
20202 : return 4017; /* *fma_fnmadd_v4sf */
20203 :
20204 : case E_V2DFmode:
20205 : if (!register_operand (operands[0], E_V2DFmode)
20206 : || GET_MODE (x3) != E_V2DFmode
20207 : || GET_MODE (x5) != E_V2DFmode)
20208 : return -1;
20209 : if (nonimmediate_operand (operands[1], E_V2DFmode)
20210 : && nonimmediate_operand (operands[2], E_V2DFmode)
20211 : && nonimmediate_operand (operands[3], E_V2DFmode)
20212 : &&
20213 : #line 6466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20214 : (TARGET_FMA || TARGET_FMA4))
20215 : return 3998; /* *fma_fnmadd_v2df */
20216 : if (!bcst_vector_operand (operands[1], E_V2DFmode)
20217 : || !bcst_vector_operand (operands[2], E_V2DFmode)
20218 : || !bcst_vector_operand (operands[3], E_V2DFmode)
20219 : || !(
20220 : #line 6498 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20221 : (TARGET_AVX512F && 1 && 1) &&
20222 : #line 6281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20223 : (TARGET_AVX512VL)))
20224 : return -1;
20225 : return 4026; /* *fma_fnmadd_v2df */
20226 :
20227 : case E_V8SFmode:
20228 : if (!register_operand (operands[0], E_V8SFmode)
20229 : || GET_MODE (x3) != E_V8SFmode
20230 : || GET_MODE (x5) != E_V8SFmode)
20231 : return -1;
20232 : if (nonimmediate_operand (operands[1], E_V8SFmode)
20233 : && nonimmediate_operand (operands[2], E_V8SFmode)
20234 : && nonimmediate_operand (operands[3], E_V8SFmode)
20235 : &&
20236 : #line 6466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20237 : (TARGET_FMA || TARGET_FMA4))
20238 : return 3999; /* *fma_fnmadd_v8sf */
20239 : if (!bcst_vector_operand (operands[1], E_V8SFmode)
20240 : || !bcst_vector_operand (operands[2], E_V8SFmode)
20241 : || !bcst_vector_operand (operands[3], E_V8SFmode)
20242 : || !(
20243 : #line 6498 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20244 : (TARGET_AVX512F && 1 && 1) &&
20245 : #line 6280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20246 : (TARGET_AVX512VL)))
20247 : return -1;
20248 : return 4015; /* *fma_fnmadd_v8sf */
20249 :
20250 : case E_V4DFmode:
20251 : if (!register_operand (operands[0], E_V4DFmode)
20252 : || GET_MODE (x3) != E_V4DFmode
20253 : || GET_MODE (x5) != E_V4DFmode)
20254 : return -1;
20255 : if (nonimmediate_operand (operands[1], E_V4DFmode)
20256 : && nonimmediate_operand (operands[2], E_V4DFmode)
20257 : && nonimmediate_operand (operands[3], E_V4DFmode)
20258 : &&
20259 : #line 6466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20260 : (TARGET_FMA || TARGET_FMA4))
20261 : return 4000; /* *fma_fnmadd_v4df */
20262 : if (!bcst_vector_operand (operands[1], E_V4DFmode)
20263 : || !bcst_vector_operand (operands[2], E_V4DFmode)
20264 : || !bcst_vector_operand (operands[3], E_V4DFmode)
20265 : || !(
20266 : #line 6498 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20267 : (TARGET_AVX512F && 1 && 1) &&
20268 : #line 6281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20269 : (TARGET_AVX512VL)))
20270 : return -1;
20271 : return 4024; /* *fma_fnmadd_v4df */
20272 :
20273 : case E_V32HFmode:
20274 : if (pattern876 (x3,
20275 : E_V32HFmode) != 0
20276 : || !(
20277 : #line 6498 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20278 : (TARGET_AVX512F && 1 && 1) &&
20279 : #line 6276 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20280 : (TARGET_AVX512FP16)))
20281 : return -1;
20282 : return 4001; /* *fma_fnmadd_v32hf */
20283 :
20284 : case E_V16HFmode:
20285 : if (pattern876 (x3,
20286 : E_V16HFmode) != 0
20287 : || !(
20288 : #line 6498 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20289 : (TARGET_AVX512F && 1 && 1) &&
20290 : #line 6277 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20291 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
20292 : return -1;
20293 : return 4005; /* *fma_fnmadd_v16hf */
20294 :
20295 : case E_V8HFmode:
20296 : if (pattern876 (x3,
20297 : E_V8HFmode) != 0
20298 : || !(
20299 : #line 6498 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20300 : (TARGET_AVX512F && 1 && 1) &&
20301 : #line 6278 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20302 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
20303 : return -1;
20304 : return 4007; /* *fma_fnmadd_v8hf */
20305 :
20306 : case E_V16SFmode:
20307 : if (pattern876 (x3,
20308 : E_V16SFmode) != 0
20309 : || !
20310 : #line 6498 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20311 : (TARGET_AVX512F && 1 && 1))
20312 : return -1;
20313 : return 4011; /* *fma_fnmadd_v16sf */
20314 :
20315 : case E_V8DFmode:
20316 : if (pattern876 (x3,
20317 : E_V8DFmode) != 0
20318 : || !
20319 : #line 6498 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20320 : (TARGET_AVX512F && 1 && 1))
20321 : return -1;
20322 : return 4020; /* *fma_fnmadd_v8df */
20323 :
20324 : case E_V32BFmode:
20325 : if (pattern926 (x3,
20326 : E_V32BFmode) != 0
20327 : || !
20328 : #line 32919 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20329 : (TARGET_AVX10_2))
20330 : return -1;
20331 : return 10713; /* avx10_2_fnmaddbf16_v32bf */
20332 :
20333 : case E_V16BFmode:
20334 : if (pattern926 (x3,
20335 : E_V16BFmode) != 0
20336 : || !
20337 : #line 32919 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20338 : (TARGET_AVX10_2))
20339 : return -1;
20340 : return 10715; /* avx10_2_fnmaddbf16_v16bf */
20341 :
20342 : case E_V8BFmode:
20343 : if (pattern926 (x3,
20344 : E_V8BFmode) != 0
20345 : || !
20346 : #line 32919 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20347 : (TARGET_AVX10_2))
20348 : return -1;
20349 : return 10717; /* avx10_2_fnmaddbf16_v8bf */
20350 :
20351 : default:
20352 : return -1;
20353 : }
20354 :
20355 : case NEG:
20356 : x8 = XEXP (x7, 0);
20357 : operands[3] = x8;
20358 : switch (GET_MODE (operands[0]))
20359 : {
20360 : case E_V4SFmode:
20361 : if (pattern877 (x3,
20362 : E_V4SFmode) != 0)
20363 : return -1;
20364 : if (nonimmediate_operand (operands[1], E_V4SFmode)
20365 : && nonimmediate_operand (operands[2], E_V4SFmode)
20366 : && nonimmediate_operand (operands[3], E_V4SFmode)
20367 : &&
20368 : #line 6573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20369 : (TARGET_FMA || TARGET_FMA4))
20370 : return 4056; /* *fma_fnmsub_v4sf */
20371 : if (!bcst_vector_operand (operands[1], E_V4SFmode)
20372 : || !bcst_vector_operand (operands[2], E_V4SFmode)
20373 : || !bcst_vector_operand (operands[3], E_V4SFmode)
20374 : || !(
20375 : #line 6606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20376 : (TARGET_AVX512F && 1 && 1) &&
20377 : #line 6280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20378 : (TARGET_AVX512VL)))
20379 : return -1;
20380 : return 4088; /* *fma_fnmsub_v4sf */
20381 :
20382 : case E_V2DFmode:
20383 : if (pattern877 (x3,
20384 : E_V2DFmode) != 0)
20385 : return -1;
20386 : if (nonimmediate_operand (operands[1], E_V2DFmode)
20387 : && nonimmediate_operand (operands[2], E_V2DFmode)
20388 : && nonimmediate_operand (operands[3], E_V2DFmode)
20389 : &&
20390 : #line 6573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20391 : (TARGET_FMA || TARGET_FMA4))
20392 : return 4060; /* *fma_fnmsub_v2df */
20393 : if (!bcst_vector_operand (operands[1], E_V2DFmode)
20394 : || !bcst_vector_operand (operands[2], E_V2DFmode)
20395 : || !bcst_vector_operand (operands[3], E_V2DFmode)
20396 : || !(
20397 : #line 6606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20398 : (TARGET_AVX512F && 1 && 1) &&
20399 : #line 6281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20400 : (TARGET_AVX512VL)))
20401 : return -1;
20402 : return 4097; /* *fma_fnmsub_v2df */
20403 :
20404 : case E_V8SFmode:
20405 : if (pattern877 (x3,
20406 : E_V8SFmode) != 0)
20407 : return -1;
20408 : if (nonimmediate_operand (operands[1], E_V8SFmode)
20409 : && nonimmediate_operand (operands[2], E_V8SFmode)
20410 : && nonimmediate_operand (operands[3], E_V8SFmode)
20411 : &&
20412 : #line 6573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20413 : (TARGET_FMA || TARGET_FMA4))
20414 : return 4064; /* *fma_fnmsub_v8sf */
20415 : if (!bcst_vector_operand (operands[1], E_V8SFmode)
20416 : || !bcst_vector_operand (operands[2], E_V8SFmode)
20417 : || !bcst_vector_operand (operands[3], E_V8SFmode)
20418 : || !(
20419 : #line 6606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20420 : (TARGET_AVX512F && 1 && 1) &&
20421 : #line 6280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20422 : (TARGET_AVX512VL)))
20423 : return -1;
20424 : return 4086; /* *fma_fnmsub_v8sf */
20425 :
20426 : case E_V4DFmode:
20427 : if (pattern877 (x3,
20428 : E_V4DFmode) != 0)
20429 : return -1;
20430 : if (nonimmediate_operand (operands[1], E_V4DFmode)
20431 : && nonimmediate_operand (operands[2], E_V4DFmode)
20432 : && nonimmediate_operand (operands[3], E_V4DFmode)
20433 : &&
20434 : #line 6573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20435 : (TARGET_FMA || TARGET_FMA4))
20436 : return 4068; /* *fma_fnmsub_v4df */
20437 : if (!bcst_vector_operand (operands[1], E_V4DFmode)
20438 : || !bcst_vector_operand (operands[2], E_V4DFmode)
20439 : || !bcst_vector_operand (operands[3], E_V4DFmode)
20440 : || !(
20441 : #line 6606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20442 : (TARGET_AVX512F && 1 && 1) &&
20443 : #line 6281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20444 : (TARGET_AVX512VL)))
20445 : return -1;
20446 : return 4095; /* *fma_fnmsub_v4df */
20447 :
20448 : case E_V32HFmode:
20449 : if (pattern878 (x3,
20450 : E_V32HFmode) != 0
20451 : || !(
20452 : #line 6606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20453 : (TARGET_AVX512F && 1 && 1) &&
20454 : #line 6276 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20455 : (TARGET_AVX512FP16)))
20456 : return -1;
20457 : return 4072; /* *fma_fnmsub_v32hf */
20458 :
20459 : case E_V16HFmode:
20460 : if (pattern878 (x3,
20461 : E_V16HFmode) != 0
20462 : || !(
20463 : #line 6606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20464 : (TARGET_AVX512F && 1 && 1) &&
20465 : #line 6277 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20466 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
20467 : return -1;
20468 : return 4076; /* *fma_fnmsub_v16hf */
20469 :
20470 : case E_V8HFmode:
20471 : if (pattern878 (x3,
20472 : E_V8HFmode) != 0
20473 : || !(
20474 : #line 6606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20475 : (TARGET_AVX512F && 1 && 1) &&
20476 : #line 6278 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20477 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
20478 : return -1;
20479 : return 4078; /* *fma_fnmsub_v8hf */
20480 :
20481 : case E_V16SFmode:
20482 : if (pattern878 (x3,
20483 : E_V16SFmode) != 0
20484 : || !
20485 : #line 6606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20486 : (TARGET_AVX512F && 1 && 1))
20487 : return -1;
20488 : return 4082; /* *fma_fnmsub_v16sf */
20489 :
20490 : case E_V8DFmode:
20491 : if (pattern878 (x3,
20492 : E_V8DFmode) != 0
20493 : || !
20494 : #line 6606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20495 : (TARGET_AVX512F && 1 && 1))
20496 : return -1;
20497 : return 4091; /* *fma_fnmsub_v8df */
20498 :
20499 : case E_V32BFmode:
20500 : if (pattern927 (x3,
20501 : E_V32BFmode) != 0
20502 : || !
20503 : #line 33050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20504 : (TARGET_AVX10_2))
20505 : return -1;
20506 : return 10737; /* avx10_2_fnmsubbf16_v32bf */
20507 :
20508 : case E_V16BFmode:
20509 : if (pattern927 (x3,
20510 : E_V16BFmode) != 0
20511 : || !
20512 : #line 33050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20513 : (TARGET_AVX10_2))
20514 : return -1;
20515 : return 10739; /* avx10_2_fnmsubbf16_v16bf */
20516 :
20517 : case E_V8BFmode:
20518 : if (pattern927 (x3,
20519 : E_V8BFmode) != 0
20520 : || !
20521 : #line 33050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20522 : (TARGET_AVX10_2))
20523 : return -1;
20524 : return 10741; /* avx10_2_fnmsubbf16_v8bf */
20525 :
20526 : default:
20527 : return -1;
20528 : }
20529 :
20530 : default:
20531 : return -1;
20532 : }
20533 :
20534 : default:
20535 : return -1;
20536 : }
20537 : }
20538 :
20539 : int
20540 : recog_334 (rtx x1 ATTRIBUTE_UNUSED,
20541 : rtx_insn *insn ATTRIBUTE_UNUSED,
20542 : int *pnum_clobbers ATTRIBUTE_UNUSED)
20543 : {
20544 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
20545 : int res ATTRIBUTE_UNUSED;
20546 : switch (pattern30 (x1))
20547 : {
20548 : case 0:
20549 : if (nonimmediate_operand (operands[1], E_V16HImode)
20550 : && nonmemory_operand (operands[2], E_DImode)
20551 : && (
20552 : #line 17615 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20553 : (TARGET_AVX512VL) &&
20554 : #line 790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20555 : (TARGET_AVX512BW)))
20556 : return 7679; /* *ashlv16hi3 */
20557 : if (!register_operand (operands[1], E_V16HImode))
20558 : return -1;
20559 : if (nonmemory_operand (operands[2], E_DImode)
20560 : && (
20561 : #line 17629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20562 : (TARGET_SSE2) &&
20563 : #line 767 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20564 : (TARGET_AVX2)))
20565 : return 7703; /* ashlv16hi3 */
20566 : if (!nonimmediate_operand (operands[2], E_V16HImode)
20567 : || !(
20568 : #line 29636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20569 : (TARGET_AVX512BW) &&
20570 : #line 679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20571 : (TARGET_AVX512VL)))
20572 : return -1;
20573 : return 9672; /* avx512vl_ashlvv16hi */
20574 :
20575 : case 1:
20576 : if (nonimmediate_operand (operands[1], E_V8HImode)
20577 : && nonmemory_operand (operands[2], E_DImode)
20578 : && (
20579 : #line 17615 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20580 : (TARGET_AVX512VL) &&
20581 : #line 790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20582 : (TARGET_AVX512BW)))
20583 : return 7683; /* *ashlv8hi3 */
20584 : if (!register_operand (operands[1], E_V8HImode))
20585 : return -1;
20586 : if (nonmemory_operand (operands[2], E_DImode)
20587 : &&
20588 : #line 17629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20589 : (TARGET_SSE2))
20590 : return 7705; /* ashlv8hi3 */
20591 : if (!nonimmediate_operand (operands[2], E_V8HImode)
20592 : || !(
20593 : #line 29636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20594 : (TARGET_AVX512BW) &&
20595 : #line 679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20596 : (TARGET_AVX512VL)))
20597 : return -1;
20598 : return 9668; /* avx512vl_ashlvv8hi */
20599 :
20600 : case 2:
20601 : if (nonimmediate_operand (operands[1], E_V8SImode)
20602 : && nonmemory_operand (operands[2], E_DImode)
20603 : &&
20604 : #line 17615 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20605 : (TARGET_AVX512VL))
20606 : return 7687; /* *ashlv8si3 */
20607 : if (!register_operand (operands[1], E_V8SImode))
20608 : return -1;
20609 : if (nonmemory_operand (operands[2], E_DImode)
20610 : && (
20611 : #line 17629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20612 : (TARGET_SSE2) &&
20613 : #line 768 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20614 : (TARGET_AVX2)))
20615 : return 7707; /* ashlv8si3 */
20616 : if (!nonimmediate_operand (operands[2], E_V8SImode)
20617 : || !
20618 : #line 29625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20619 : (TARGET_AVX2 && 1))
20620 : return -1;
20621 : return 9648; /* avx2_ashlvv8si */
20622 :
20623 : case 3:
20624 : if (nonimmediate_operand (operands[1], E_V4SImode)
20625 : && nonmemory_operand (operands[2], E_DImode)
20626 : &&
20627 : #line 17615 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20628 : (TARGET_AVX512VL))
20629 : return 7691; /* *ashlv4si3 */
20630 : if (!register_operand (operands[1], E_V4SImode))
20631 : return -1;
20632 : if (nonmemory_operand (operands[2], E_DImode)
20633 : &&
20634 : #line 17629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20635 : (TARGET_SSE2))
20636 : return 7709; /* ashlv4si3 */
20637 : if (!nonimmediate_operand (operands[2], E_V4SImode)
20638 : || !
20639 : #line 29625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20640 : (TARGET_AVX2 && 1))
20641 : return -1;
20642 : return 9652; /* avx2_ashlvv4si */
20643 :
20644 : case 4:
20645 : if (nonimmediate_operand (operands[1], E_V4DImode)
20646 : && nonmemory_operand (operands[2], E_DImode)
20647 : &&
20648 : #line 17615 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20649 : (TARGET_AVX512VL))
20650 : return 7695; /* *ashlv4di3 */
20651 : if (!register_operand (operands[1], E_V4DImode))
20652 : return -1;
20653 : if (nonmemory_operand (operands[2], E_DImode)
20654 : && (
20655 : #line 17629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20656 : (TARGET_SSE2) &&
20657 : #line 769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20658 : (TARGET_AVX2)))
20659 : return 7711; /* ashlv4di3 */
20660 : if (!nonimmediate_operand (operands[2], E_V4DImode)
20661 : || !
20662 : #line 29625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20663 : (TARGET_AVX2 && 1))
20664 : return -1;
20665 : return 9660; /* avx2_ashlvv4di */
20666 :
20667 : case 5:
20668 : if (nonimmediate_operand (operands[1], E_V2DImode)
20669 : && nonmemory_operand (operands[2], E_DImode)
20670 : &&
20671 : #line 17615 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20672 : (TARGET_AVX512VL))
20673 : return 7699; /* *ashlv2di3 */
20674 : if (!register_operand (operands[1], E_V2DImode))
20675 : return -1;
20676 : if (nonmemory_operand (operands[2], E_DImode)
20677 : &&
20678 : #line 17629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20679 : (TARGET_SSE2))
20680 : return 7713; /* ashlv2di3 */
20681 : if (!nonimmediate_operand (operands[2], E_V2DImode)
20682 : || !
20683 : #line 29625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20684 : (TARGET_AVX2 && 1))
20685 : return -1;
20686 : return 9664; /* avx2_ashlvv2di */
20687 :
20688 : case 6:
20689 : if (nonimmediate_operand (operands[1], E_V32HImode)
20690 : && nonmemory_operand (operands[2], E_DImode)
20691 : && (
20692 : #line 17703 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20693 : (TARGET_AVX512F) &&
20694 : #line 777 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20695 : (TARGET_AVX512BW)))
20696 : return 7719; /* ashlv32hi3 */
20697 : if (!register_operand (operands[1], E_V32HImode)
20698 : || !nonimmediate_operand (operands[2], E_V32HImode)
20699 : || !
20700 : #line 29636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20701 : (TARGET_AVX512BW))
20702 : return -1;
20703 : return 9676; /* avx512bw_ashlvv32hi */
20704 :
20705 : case 7:
20706 : if (nonimmediate_operand (operands[1], E_V16SImode)
20707 : && nonmemory_operand (operands[2], E_DImode)
20708 : &&
20709 : #line 17703 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20710 : (TARGET_AVX512F))
20711 : return 7723; /* ashlv16si3 */
20712 : if (!register_operand (operands[1], E_V16SImode)
20713 : || !nonimmediate_operand (operands[2], E_V16SImode)
20714 : || !(
20715 : #line 29625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20716 : (TARGET_AVX2 && 1) &&
20717 : #line 795 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20718 : (TARGET_AVX512F)))
20719 : return -1;
20720 : return 9644; /* avx512f_ashlvv16si */
20721 :
20722 : case 8:
20723 : if (nonimmediate_operand (operands[1], E_V8DImode)
20724 : && nonmemory_operand (operands[2], E_DImode)
20725 : &&
20726 : #line 17703 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20727 : (TARGET_AVX512F))
20728 : return 7727; /* ashlv8di3 */
20729 : if (!register_operand (operands[1], E_V8DImode)
20730 : || !nonimmediate_operand (operands[2], E_V8DImode)
20731 : || !(
20732 : #line 29625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20733 : (TARGET_AVX2 && 1) &&
20734 : #line 796 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20735 : (TARGET_AVX512F)))
20736 : return -1;
20737 : return 9656; /* avx512f_ashlvv8di */
20738 :
20739 : case 9:
20740 : if (register_operand (operands[1], E_V1TImode)
20741 : && const_0_to_255_not_mul_8_operand (operands[2], E_SImode)
20742 : &&
20743 : #line 17778 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20744 : (TARGET_SSE2 && TARGET_64BIT
20745 : && ix86_pre_reload_split ()))
20746 : return 7731; /* *ashlv1ti3_internal */
20747 : if (!const_0_to_255_mul_8_operand (operands[2], E_SImode))
20748 : return -1;
20749 : if (nonimmediate_operand (operands[1], E_V1TImode)
20750 : && (
20751 : #line 17922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20752 : (TARGET_AVX512BW) &&
20753 : #line 722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20754 : (TARGET_AVX512VL)))
20755 : return 7740; /* avx512bw_ashlv1ti3 */
20756 : if (!register_operand (operands[1], E_V1TImode)
20757 : || !
20758 : #line 17937 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20759 : (TARGET_SSE2))
20760 : return -1;
20761 : return 7744; /* sse2_ashlv1ti3 */
20762 :
20763 : case 10:
20764 : if (!
20765 : #line 17922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20766 : (TARGET_AVX512BW))
20767 : return -1;
20768 : return 7736; /* avx512bw_ashlv4ti3 */
20769 :
20770 : case 11:
20771 : if (nonimmediate_operand (operands[1], E_V2TImode)
20772 : && (
20773 : #line 17922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20774 : (TARGET_AVX512BW) &&
20775 : #line 722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20776 : (TARGET_AVX512VL)))
20777 : return 7738; /* avx512bw_ashlv2ti3 */
20778 : if (!register_operand (operands[1], E_V2TImode)
20779 : || !(
20780 : #line 17937 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20781 : (TARGET_SSE2) &&
20782 : #line 725 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20783 : (TARGET_AVX2)))
20784 : return -1;
20785 : return 7742; /* avx2_ashlv2ti3 */
20786 :
20787 : default:
20788 : return -1;
20789 : }
20790 : }
20791 :
20792 : int
20793 : recog_339 (rtx x1 ATTRIBUTE_UNUSED,
20794 : rtx_insn *insn ATTRIBUTE_UNUSED,
20795 : int *pnum_clobbers ATTRIBUTE_UNUSED)
20796 : {
20797 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
20798 : rtx x2, x3, x4;
20799 : int res ATTRIBUTE_UNUSED;
20800 : x2 = XEXP (x1, 0);
20801 : operands[0] = x2;
20802 : x3 = XEXP (x1, 1);
20803 : x4 = XEXP (x3, 0);
20804 : operands[1] = x4;
20805 : switch (GET_MODE (operands[0]))
20806 : {
20807 : case E_V16SImode:
20808 : if (!register_operand (operands[0], E_V16SImode)
20809 : || GET_MODE (x3) != E_V16SImode
20810 : || !nonimmediate_operand (operands[1], E_V16SImode)
20811 : || !
20812 : #line 30987 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20813 : (TARGET_AVX512VPOPCNTDQ))
20814 : return -1;
20815 : return 10206; /* vpopcountv16si */
20816 :
20817 : case E_V8SImode:
20818 : if (!register_operand (operands[0], E_V8SImode)
20819 : || GET_MODE (x3) != E_V8SImode
20820 : || !nonimmediate_operand (operands[1], E_V8SImode)
20821 : || !(
20822 : #line 30987 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20823 : (TARGET_AVX512VPOPCNTDQ) &&
20824 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20825 : (TARGET_AVX512VL)))
20826 : return -1;
20827 : return 10208; /* vpopcountv8si */
20828 :
20829 : case E_V4SImode:
20830 : if (!register_operand (operands[0], E_V4SImode)
20831 : || GET_MODE (x3) != E_V4SImode
20832 : || !nonimmediate_operand (operands[1], E_V4SImode)
20833 : || !(
20834 : #line 30987 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20835 : (TARGET_AVX512VPOPCNTDQ) &&
20836 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20837 : (TARGET_AVX512VL)))
20838 : return -1;
20839 : return 10210; /* vpopcountv4si */
20840 :
20841 : case E_V8DImode:
20842 : if (!register_operand (operands[0], E_V8DImode)
20843 : || GET_MODE (x3) != E_V8DImode
20844 : || !nonimmediate_operand (operands[1], E_V8DImode)
20845 : || !
20846 : #line 30987 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20847 : (TARGET_AVX512VPOPCNTDQ))
20848 : return -1;
20849 : return 10212; /* vpopcountv8di */
20850 :
20851 : case E_V4DImode:
20852 : if (!register_operand (operands[0], E_V4DImode)
20853 : || GET_MODE (x3) != E_V4DImode
20854 : || !nonimmediate_operand (operands[1], E_V4DImode)
20855 : || !(
20856 : #line 30987 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20857 : (TARGET_AVX512VPOPCNTDQ) &&
20858 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20859 : (TARGET_AVX512VL)))
20860 : return -1;
20861 : return 10214; /* vpopcountv4di */
20862 :
20863 : case E_V2DImode:
20864 : if (!register_operand (operands[0], E_V2DImode)
20865 : || GET_MODE (x3) != E_V2DImode
20866 : || !nonimmediate_operand (operands[1], E_V2DImode)
20867 : || !(
20868 : #line 30987 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20869 : (TARGET_AVX512VPOPCNTDQ) &&
20870 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20871 : (TARGET_AVX512VL)))
20872 : return -1;
20873 : return 10216; /* vpopcountv2di */
20874 :
20875 : case E_V64QImode:
20876 : if (!register_operand (operands[0], E_V64QImode)
20877 : || GET_MODE (x3) != E_V64QImode
20878 : || !nonimmediate_operand (operands[1], E_V64QImode)
20879 : || !
20880 : #line 31037 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20881 : (TARGET_AVX512BITALG))
20882 : return -1;
20883 : return 10226; /* vpopcountv64qi */
20884 :
20885 : case E_V16QImode:
20886 : if (!register_operand (operands[0], E_V16QImode)
20887 : || GET_MODE (x3) != E_V16QImode
20888 : || !nonimmediate_operand (operands[1], E_V16QImode)
20889 : || !(
20890 : #line 31037 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20891 : (TARGET_AVX512BITALG) &&
20892 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20893 : (TARGET_AVX512VL)))
20894 : return -1;
20895 : return 10228; /* vpopcountv16qi */
20896 :
20897 : case E_V32QImode:
20898 : if (!register_operand (operands[0], E_V32QImode)
20899 : || GET_MODE (x3) != E_V32QImode
20900 : || !nonimmediate_operand (operands[1], E_V32QImode)
20901 : || !(
20902 : #line 31037 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20903 : (TARGET_AVX512BITALG) &&
20904 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20905 : (TARGET_AVX512VL)))
20906 : return -1;
20907 : return 10230; /* vpopcountv32qi */
20908 :
20909 : case E_V32HImode:
20910 : if (!register_operand (operands[0], E_V32HImode)
20911 : || GET_MODE (x3) != E_V32HImode
20912 : || !nonimmediate_operand (operands[1], E_V32HImode)
20913 : || !
20914 : #line 31037 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20915 : (TARGET_AVX512BITALG))
20916 : return -1;
20917 : return 10232; /* vpopcountv32hi */
20918 :
20919 : case E_V16HImode:
20920 : if (!register_operand (operands[0], E_V16HImode)
20921 : || GET_MODE (x3) != E_V16HImode
20922 : || !nonimmediate_operand (operands[1], E_V16HImode)
20923 : || !(
20924 : #line 31037 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20925 : (TARGET_AVX512BITALG) &&
20926 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20927 : (TARGET_AVX512VL)))
20928 : return -1;
20929 : return 10234; /* vpopcountv16hi */
20930 :
20931 : case E_V8HImode:
20932 : if (!register_operand (operands[0], E_V8HImode)
20933 : || GET_MODE (x3) != E_V8HImode
20934 : || !nonimmediate_operand (operands[1], E_V8HImode)
20935 : || !(
20936 : #line 31037 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20937 : (TARGET_AVX512BITALG) &&
20938 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20939 : (TARGET_AVX512VL)))
20940 : return -1;
20941 : return 10236; /* vpopcountv8hi */
20942 :
20943 : default:
20944 : return -1;
20945 : }
20946 : }
20947 :
20948 : int
20949 : recog_343 (rtx x1 ATTRIBUTE_UNUSED,
20950 : rtx_insn *insn ATTRIBUTE_UNUSED,
20951 : int *pnum_clobbers ATTRIBUTE_UNUSED)
20952 : {
20953 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
20954 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
20955 : rtx x10, x11, x12, x13, x14, x15;
20956 : int res ATTRIBUTE_UNUSED;
20957 : x2 = XEXP (x1, 0);
20958 : operands[0] = x2;
20959 : x3 = XEXP (x1, 1);
20960 : x4 = XEXP (x3, 0);
20961 : switch (GET_CODE (x4))
20962 : {
20963 : case REG:
20964 : case SUBREG:
20965 : switch (pattern53 (x3))
20966 : {
20967 : case 0:
20968 : if (!
20969 : #line 15313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20970 : (TARGET_AVX512F))
20971 : return -1;
20972 : return 7260; /* *avx512f_truncatev16siv16qi2 */
20973 :
20974 : case 1:
20975 : if (!(
20976 : #line 15575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20977 : (TARGET_AVX512VL) &&
20978 : #line 15549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20979 : (TARGET_AVX512BW)))
20980 : return -1;
20981 : return 7302; /* *avx512vl_truncatev16hiv16qi2 */
20982 :
20983 : case 2:
20984 : if (!
20985 : #line 15313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20986 : (TARGET_AVX512F))
20987 : return -1;
20988 : return 7263; /* *avx512f_truncatev16siv16hi2 */
20989 :
20990 : case 3:
20991 : if (!
20992 : #line 15313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20993 : (TARGET_AVX512F))
20994 : return -1;
20995 : return 7266; /* *avx512f_truncatev8div8si2 */
20996 :
20997 : case 4:
20998 : if (!
20999 : #line 15313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21000 : (TARGET_AVX512F))
21001 : return -1;
21002 : return 7269; /* *avx512f_truncatev8div8hi2 */
21003 :
21004 : case 5:
21005 : if (!
21006 : #line 15575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21007 : (TARGET_AVX512VL))
21008 : return -1;
21009 : return 7299; /* *avx512vl_truncatev8siv8hi2 */
21010 :
21011 : case 6:
21012 : if (!
21013 : #line 15486 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21014 : (TARGET_AVX512BW))
21015 : return -1;
21016 : return 7289; /* avx512bw_truncatev32hiv32qi2 */
21017 :
21018 : case 7:
21019 : if (!
21020 : #line 15575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21021 : (TARGET_AVX512VL))
21022 : return -1;
21023 : return 7296; /* *avx512vl_truncatev4div4si2 */
21024 :
21025 : default:
21026 : return -1;
21027 : }
21028 :
21029 : case LSHIFTRT:
21030 : x5 = XEXP (x4, 1);
21031 : if (GET_CODE (x5) != CONST_INT)
21032 : return -1;
21033 : x6 = XEXP (x4, 0);
21034 : switch (GET_CODE (x6))
21035 : {
21036 : case MULT:
21037 : if (XWINT (x5, 0) != 16L)
21038 : return -1;
21039 : x7 = XEXP (x6, 0);
21040 : switch (GET_CODE (x7))
21041 : {
21042 : case SIGN_EXTEND:
21043 : switch (pattern817 (x3,
21044 : SIGN_EXTEND))
21045 : {
21046 : case 0:
21047 : if (!(
21048 : #line 16745 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21049 : (TARGET_SSE2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))
21050 : && 1 && 1) &&
21051 : #line 646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21052 : (TARGET_AVX512BW)))
21053 : return -1;
21054 : return 7600; /* *smulv32hi3_highpart */
21055 :
21056 : case 1:
21057 : if (!(
21058 : #line 16745 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21059 : (TARGET_SSE2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))
21060 : && 1 && 1) &&
21061 : #line 646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21062 : (TARGET_AVX2)))
21063 : return -1;
21064 : return 7604; /* *smulv16hi3_highpart */
21065 :
21066 : case 2:
21067 : if (!
21068 : #line 16745 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21069 : (TARGET_SSE2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))
21070 : && 1 && 1))
21071 : return -1;
21072 : return 7608; /* *smulv8hi3_highpart */
21073 :
21074 : default:
21075 : return -1;
21076 : }
21077 :
21078 : case ZERO_EXTEND:
21079 : switch (pattern817 (x3,
21080 : ZERO_EXTEND))
21081 : {
21082 : case 0:
21083 : if (!(
21084 : #line 16745 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21085 : (TARGET_SSE2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))
21086 : && 1 && 1) &&
21087 : #line 646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21088 : (TARGET_AVX512BW)))
21089 : return -1;
21090 : return 7602; /* *umulv32hi3_highpart */
21091 :
21092 : case 1:
21093 : if (!(
21094 : #line 16745 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21095 : (TARGET_SSE2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))
21096 : && 1 && 1) &&
21097 : #line 646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21098 : (TARGET_AVX2)))
21099 : return -1;
21100 : return 7606; /* *umulv16hi3_highpart */
21101 :
21102 : case 2:
21103 : if (!
21104 : #line 16745 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21105 : (TARGET_SSE2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))
21106 : && 1 && 1))
21107 : return -1;
21108 : return 7610; /* *umulv8hi3_highpart */
21109 :
21110 : default:
21111 : return -1;
21112 : }
21113 :
21114 : default:
21115 : return -1;
21116 : }
21117 :
21118 : case PLUS:
21119 : if (XWINT (x5, 0) != 1L)
21120 : return -1;
21121 : x7 = XEXP (x6, 0);
21122 : switch (GET_CODE (x7))
21123 : {
21124 : case PLUS:
21125 : x8 = XEXP (x7, 0);
21126 : if (GET_CODE (x8) != ZERO_EXTEND)
21127 : return -1;
21128 : x9 = XEXP (x7, 1);
21129 : if (GET_CODE (x9) != ZERO_EXTEND)
21130 : return -1;
21131 : x10 = XEXP (x8, 0);
21132 : operands[1] = x10;
21133 : x11 = XEXP (x9, 0);
21134 : operands[2] = x11;
21135 : x12 = XEXP (x6, 1);
21136 : operands[3] = x12;
21137 : switch (GET_MODE (operands[0]))
21138 : {
21139 : case E_V64QImode:
21140 : if (pattern1427 (x3,
21141 : E_V64HImode,
21142 : E_V64QImode) != 0
21143 : || !(
21144 : #line 22241 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21145 : (TARGET_SSE2 && 1 && 1
21146 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
21147 : #line 732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21148 : (TARGET_AVX512BW)))
21149 : return -1;
21150 : return 8537; /* *avx512bw_uavgv64qi3 */
21151 :
21152 : case E_V32QImode:
21153 : if (pattern1427 (x3,
21154 : E_V32HImode,
21155 : E_V32QImode) != 0
21156 : || !(
21157 : #line 22241 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21158 : (TARGET_SSE2 && 1 && 1
21159 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
21160 : #line 732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21161 : (TARGET_AVX2)))
21162 : return -1;
21163 : return 8539; /* *avx2_uavgv32qi3 */
21164 :
21165 : case E_V16QImode:
21166 : if (pattern1427 (x3,
21167 : E_V16HImode,
21168 : E_V16QImode) != 0
21169 : || !
21170 : #line 22241 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21171 : (TARGET_SSE2 && 1 && 1
21172 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21173 : return -1;
21174 : return 8541; /* *sse2_uavgv16qi3 */
21175 :
21176 : case E_V32HImode:
21177 : if (pattern1427 (x3,
21178 : E_V32SImode,
21179 : E_V32HImode) != 0
21180 : || !(
21181 : #line 22241 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21182 : (TARGET_SSE2 && 1 && 1
21183 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
21184 : #line 733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21185 : (TARGET_AVX512BW)))
21186 : return -1;
21187 : return 8543; /* *avx512bw_uavgv32hi3 */
21188 :
21189 : case E_V16HImode:
21190 : if (pattern1427 (x3,
21191 : E_V16SImode,
21192 : E_V16HImode) != 0
21193 : || !(
21194 : #line 22241 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21195 : (TARGET_SSE2 && 1 && 1
21196 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
21197 : #line 733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21198 : (TARGET_AVX2)))
21199 : return -1;
21200 : return 8545; /* *avx2_uavgv16hi3 */
21201 :
21202 : case E_V8HImode:
21203 : if (pattern1427 (x3,
21204 : E_V8SImode,
21205 : E_V8HImode) != 0
21206 : || !
21207 : #line 22241 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21208 : (TARGET_SSE2 && 1 && 1
21209 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21210 : return -1;
21211 : return 8547; /* *sse2_uavgv8hi3 */
21212 :
21213 : default:
21214 : return -1;
21215 : }
21216 :
21217 : case LSHIFTRT:
21218 : if (pattern627 (x7) != 0)
21219 : return -1;
21220 : x8 = XEXP (x7, 0);
21221 : x10 = XEXP (x8, 0);
21222 : x13 = XEXP (x10, 0);
21223 : operands[1] = x13;
21224 : if (nonimmediate_operand (operands[1], E_V32HImode))
21225 : {
21226 : res = recog_321 (x1, insn, pnum_clobbers);
21227 : if (res >= 0)
21228 : return res;
21229 : }
21230 : x14 = XEXP (x8, 1);
21231 : x15 = XEXP (x14, 0);
21232 : operands[2] = x15;
21233 : x12 = XEXP (x6, 1);
21234 : operands[3] = x12;
21235 : switch (GET_MODE (operands[0]))
21236 : {
21237 : case E_V32HImode:
21238 : if (pattern1532 (x3,
21239 : E_V32HImode,
21240 : E_V32SImode) != 0
21241 : || !(
21242 : #line 23347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21243 : (TARGET_SSSE3 && 1 && 1
21244 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
21245 : #line 646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21246 : (TARGET_AVX512BW)))
21247 : return -1;
21248 : return 8660; /* *avx512bw_pmulhrswv32hi3 */
21249 :
21250 : case E_V16HImode:
21251 : if (pattern1532 (x3,
21252 : E_V16HImode,
21253 : E_V16SImode) != 0
21254 : || !(
21255 : #line 23347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21256 : (TARGET_SSSE3 && 1 && 1
21257 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
21258 : #line 646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21259 : (TARGET_AVX2)))
21260 : return -1;
21261 : return 8662; /* *avx2_pmulhrswv16hi3 */
21262 :
21263 : case E_V8HImode:
21264 : if (pattern1532 (x3,
21265 : E_V8HImode,
21266 : E_V8SImode) != 0
21267 : || !
21268 : #line 23347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21269 : (TARGET_SSSE3 && 1 && 1
21270 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21271 : return -1;
21272 : return 8664; /* *ssse3_pmulhrswv8hi3 */
21273 :
21274 : default:
21275 : return -1;
21276 : }
21277 :
21278 : default:
21279 : return -1;
21280 : }
21281 :
21282 : default:
21283 : return -1;
21284 : }
21285 :
21286 : default:
21287 : return -1;
21288 : }
21289 : }
21290 :
21291 : int
21292 : recog_353 (rtx x1 ATTRIBUTE_UNUSED,
21293 : rtx_insn *insn ATTRIBUTE_UNUSED,
21294 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21295 : {
21296 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21297 : int res ATTRIBUTE_UNUSED;
21298 : switch (pattern34 (x1))
21299 : {
21300 : case 0:
21301 : if (
21302 : #line 17992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21303 : (TARGET_AVX2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21304 : return 7796; /* *avx2_umaxv32qi3 */
21305 : if (!(
21306 : #line 18044 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21307 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
21308 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21309 : (TARGET_AVX512VL)))
21310 : return -1;
21311 : return 7874; /* *avx512bw_umaxv32qi3 */
21312 :
21313 : case 1:
21314 : if (
21315 : #line 17992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21316 : (TARGET_AVX2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21317 : return 7800; /* *avx2_umaxv16hi3 */
21318 : if (!(
21319 : #line 18044 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21320 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
21321 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21322 : (TARGET_AVX512VL)))
21323 : return -1;
21324 : return 7890; /* *avx512bw_umaxv16hi3 */
21325 :
21326 : case 2:
21327 : if (
21328 : #line 17992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21329 : (TARGET_AVX2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21330 : return 7804; /* *avx2_umaxv8si3 */
21331 : if (!(
21332 : #line 18033 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21333 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
21334 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21335 : (TARGET_AVX512VL)))
21336 : return -1;
21337 : return 7818; /* *avx512f_umaxv8si3 */
21338 :
21339 : case 3:
21340 : if (!
21341 : #line 18033 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21342 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21343 : return -1;
21344 : return 7810; /* *avx512f_umaxv16si3 */
21345 :
21346 : case 4:
21347 : if (nonimmediate_operand (operands[1], E_V4SImode)
21348 : && nonimmediate_operand (operands[2], E_V4SImode)
21349 : && (
21350 : #line 18033 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21351 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
21352 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21353 : (TARGET_AVX512VL)))
21354 : return 7826; /* *avx512f_umaxv4si3 */
21355 : if (!vector_operand (operands[1], E_V4SImode)
21356 : || !vector_operand (operands[2], E_V4SImode)
21357 : || !
21358 : #line 18220 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21359 : (TARGET_SSE4_1
21360 : && 1
21361 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21362 : return -1;
21363 : return 7916; /* *sse4_1_umaxv4si3 */
21364 :
21365 : case 5:
21366 : if (!
21367 : #line 18033 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21368 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21369 : return -1;
21370 : return 7834; /* *avx512f_umaxv8di3 */
21371 :
21372 : case 6:
21373 : if (!(
21374 : #line 18033 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21375 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
21376 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21377 : (TARGET_AVX512VL)))
21378 : return -1;
21379 : return 7842; /* *avx512f_umaxv4di3 */
21380 :
21381 : case 7:
21382 : if (!(
21383 : #line 18033 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21384 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
21385 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21386 : (TARGET_AVX512VL)))
21387 : return -1;
21388 : return 7850; /* *avx512f_umaxv2di3 */
21389 :
21390 : case 8:
21391 : if (!
21392 : #line 18044 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21393 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21394 : return -1;
21395 : return 7858; /* *avx512bw_umaxv64qi3 */
21396 :
21397 : case 9:
21398 : if (nonimmediate_operand (operands[1], E_V16QImode)
21399 : && nonimmediate_operand (operands[2], E_V16QImode)
21400 : && (
21401 : #line 18044 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21402 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
21403 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21404 : (TARGET_AVX512VL)))
21405 : return 7866; /* *avx512bw_umaxv16qi3 */
21406 : if (!vector_operand (operands[1], E_V16QImode)
21407 : || !vector_operand (operands[2], E_V16QImode)
21408 : || !
21409 : #line 18239 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21410 : (TARGET_SSE2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21411 : return -1;
21412 : return 7920; /* *umaxv16qi3 */
21413 :
21414 : case 10:
21415 : if (!
21416 : #line 18044 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21417 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21418 : return -1;
21419 : return 7882; /* *avx512bw_umaxv32hi3 */
21420 :
21421 : case 11:
21422 : if (nonimmediate_operand (operands[1], E_V8HImode)
21423 : && nonimmediate_operand (operands[2], E_V8HImode)
21424 : && (
21425 : #line 18044 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21426 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
21427 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21428 : (TARGET_AVX512VL)))
21429 : return 7898; /* *avx512bw_umaxv8hi3 */
21430 : if (!vector_operand (operands[1], E_V8HImode)
21431 : || !vector_operand (operands[2], E_V8HImode)
21432 : || !
21433 : #line 18220 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21434 : (TARGET_SSE4_1
21435 : && 1
21436 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21437 : return -1;
21438 : return 7912; /* *sse4_1_umaxv8hi3 */
21439 :
21440 : default:
21441 : return -1;
21442 : }
21443 : }
21444 :
21445 : int
21446 : recog_362 (rtx x1 ATTRIBUTE_UNUSED,
21447 : rtx_insn *insn ATTRIBUTE_UNUSED,
21448 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21449 : {
21450 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21451 : rtx x2, x3;
21452 : int res ATTRIBUTE_UNUSED;
21453 : switch (pattern8 (x1, pnum_clobbers))
21454 : {
21455 : case 0:
21456 : if (!(
21457 : #line 27362 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21458 : (TARGET_CMOVE
21459 : && ix86_pre_reload_split ()) &&
21460 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21461 : (TARGET_64BIT)))
21462 : return -1;
21463 : *pnum_clobbers = 1;
21464 : return 1871; /* *umaxti3_doubleword */
21465 :
21466 : case 1:
21467 : if (!
21468 : #line 27420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21469 : (TARGET_CMOVE
21470 : && (QImode != QImode || !TARGET_PARTIAL_REG_STALL)
21471 : && ix86_pre_reload_split ()))
21472 : return -1;
21473 : *pnum_clobbers = 1;
21474 : return 1875; /* *umaxqi3_1 */
21475 :
21476 : case 2:
21477 : if (!
21478 : #line 27420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21479 : (TARGET_CMOVE
21480 : && (HImode != QImode || !TARGET_PARTIAL_REG_STALL)
21481 : && ix86_pre_reload_split ()))
21482 : return -1;
21483 : *pnum_clobbers = 1;
21484 : return 1879; /* *umaxhi3_1 */
21485 :
21486 : case 3:
21487 : if (!
21488 : #line 3765 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
21489 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
21490 : return -1;
21491 : return 2236; /* umaxv4hi3 */
21492 :
21493 : case 4:
21494 : if (!
21495 : #line 3765 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
21496 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
21497 : return -1;
21498 : return 2238; /* umaxv2si3 */
21499 :
21500 : case 5:
21501 : if (!
21502 : #line 3790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
21503 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
21504 : && (TARGET_SSE || TARGET_3DNOW_A)
21505 : && ix86_binary_operator_ok (UMAX, V8QImode, operands)))
21506 : return -1;
21507 : return 2240; /* *mmx_umaxv8qi3 */
21508 :
21509 : case 6:
21510 : if (!
21511 : #line 3814 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
21512 : (TARGET_SSE2))
21513 : return -1;
21514 : return 2242; /* umaxv4qi3 */
21515 :
21516 : case 7:
21517 : if (!
21518 : #line 3814 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
21519 : (TARGET_SSE2))
21520 : return -1;
21521 : return 2244; /* umaxv2qi3 */
21522 :
21523 : case 8:
21524 : if (!
21525 : #line 3827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
21526 : (TARGET_SSE4_1))
21527 : return -1;
21528 : return 2246; /* umaxv2hi3 */
21529 :
21530 : case 9:
21531 : x2 = XEXP (x1, 1);
21532 : x3 = XEXP (x2, 1);
21533 : if (rtx_equal_p (x3, operands[1])
21534 : &&
21535 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21536 : (TARGET_CMOVE
21537 : && ix86_pre_reload_split ()))
21538 : {
21539 : *pnum_clobbers = 1;
21540 : return 1889; /* *plus_within_umaxhi3_1 */
21541 : }
21542 : if (!rtx_equal_p (x3, operands[2])
21543 : || !
21544 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21545 : (TARGET_CMOVE
21546 : && ix86_pre_reload_split ()))
21547 : return -1;
21548 : *pnum_clobbers = 1;
21549 : return 1890; /* *plus_within_umaxhi3_2 */
21550 :
21551 : case 10:
21552 : if (!
21553 : #line 27634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21554 : (TARGET_CMOVE
21555 : && ix86_pre_reload_split ()))
21556 : return -1;
21557 : *pnum_clobbers = 1;
21558 : return 1901; /* *minus_within_umaxhi3 */
21559 :
21560 : default:
21561 : return -1;
21562 : }
21563 : }
21564 :
21565 : int
21566 : recog_369 (rtx x1 ATTRIBUTE_UNUSED,
21567 : rtx_insn *insn ATTRIBUTE_UNUSED,
21568 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21569 : {
21570 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21571 : rtx x2, x3, x4, x5, x6;
21572 : int res ATTRIBUTE_UNUSED;
21573 : x2 = XVECEXP (x1, 0, 1);
21574 : if (pattern236 (x2,
21575 : E_CCmode,
21576 : 17) != 0)
21577 : return -1;
21578 : x3 = XVECEXP (x1, 0, 0);
21579 : switch (pattern937 (x3))
21580 : {
21581 : case 0:
21582 : x4 = XEXP (x3, 0);
21583 : operands[0] = x4;
21584 : x5 = XEXP (x3, 1);
21585 : x6 = XEXP (x5, 1);
21586 : switch (GET_CODE (x6))
21587 : {
21588 : case SUBREG:
21589 : switch (pattern1429 (x5))
21590 : {
21591 : case 0:
21592 : if ((
21593 : #line 16918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21594 : (((INTVAL (operands[3]) & (4 * BITS_PER_UNIT)) == 0
21595 : || ((INTVAL (operands[3]) & (2 * 4 * BITS_PER_UNIT - 1))
21596 : == (2 * 4 * BITS_PER_UNIT - 1)))
21597 : && ix86_pre_reload_split ()) &&
21598 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21599 : (!TARGET_64BIT)))
21600 : return 1155; /* *ashrdi3_doubleword_mask */
21601 : break;
21602 :
21603 : case 1:
21604 : if ((
21605 : #line 16918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21606 : (((INTVAL (operands[3]) & (8 * BITS_PER_UNIT)) == 0
21607 : || ((INTVAL (operands[3]) & (2 * 8 * BITS_PER_UNIT - 1))
21608 : == (2 * 8 * BITS_PER_UNIT - 1)))
21609 : && ix86_pre_reload_split ()) &&
21610 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21611 : (TARGET_64BIT)))
21612 : return 1157; /* *ashrti3_doubleword_mask */
21613 : break;
21614 :
21615 : default:
21616 : break;
21617 : }
21618 : break;
21619 :
21620 : case CONST_INT:
21621 : operands[2] = x6;
21622 : if (const_int_operand (operands[2], E_QImode)
21623 : && nonimmediate_operand (operands[0], E_SImode)
21624 : && GET_MODE (x5) == E_SImode
21625 : && nonimmediate_operand (operands[1], E_SImode)
21626 : &&
21627 : #line 17580 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21628 : (INTVAL (operands[2]) == GET_MODE_BITSIZE (SImode)-1
21629 : && (TARGET_USE_CLTD || optimize_function_for_size_p (cfun))
21630 : && ix86_binary_operator_ok (ASHIFTRT, SImode, operands, TARGET_APX_NDD)
21631 : && true))
21632 : return 1199; /* ashrsi3_cvt */
21633 : break;
21634 :
21635 : default:
21636 : break;
21637 : }
21638 : operands[2] = x6;
21639 : res = recog_368 (x1, insn, pnum_clobbers);
21640 : if (res >= 0)
21641 : return res;
21642 : if (GET_CODE (x6) != SUBREG
21643 : || maybe_ne (SUBREG_BYTE (x6), 0)
21644 : || GET_MODE (x6) != E_QImode)
21645 : return -1;
21646 : switch (pattern1447 (x3))
21647 : {
21648 : case 0:
21649 : if (!
21650 : #line 18174 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21651 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
21652 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
21653 : == 4 * BITS_PER_UNIT - 1
21654 : && ix86_pre_reload_split ()))
21655 : return -1;
21656 : return 1278; /* *ashrsi3_mask */
21657 :
21658 : case 1:
21659 : if (!(
21660 : #line 18174 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21661 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
21662 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
21663 : == 8 * BITS_PER_UNIT - 1
21664 : && ix86_pre_reload_split ()) &&
21665 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21666 : (TARGET_64BIT)))
21667 : return -1;
21668 : return 1281; /* *ashrdi3_mask */
21669 :
21670 : case 2:
21671 : if (!
21672 : #line 18222 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21673 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
21674 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
21675 : && ix86_pre_reload_split ()))
21676 : return -1;
21677 : return 1290; /* *ashrsi3_add */
21678 :
21679 : case 3:
21680 : if (!(
21681 : #line 18222 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21682 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
21683 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
21684 : && ix86_pre_reload_split ()) &&
21685 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21686 : (TARGET_64BIT)))
21687 : return -1;
21688 : return 1293; /* *ashrdi3_add */
21689 :
21690 : case 4:
21691 : if (!
21692 : #line 18268 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21693 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
21694 : && ((INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
21695 : || (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
21696 : == 4 * BITS_PER_UNIT - 1)
21697 : && ix86_pre_reload_split ()))
21698 : return -1;
21699 : return 1302; /* *ashrsi3_sub */
21700 :
21701 : case 5:
21702 : if (!(
21703 : #line 18268 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21704 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
21705 : && ((INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
21706 : || (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
21707 : == 8 * BITS_PER_UNIT - 1)
21708 : && ix86_pre_reload_split ()) &&
21709 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21710 : (TARGET_64BIT)))
21711 : return -1;
21712 : return 1305; /* *ashrdi3_sub */
21713 :
21714 : default:
21715 : return -1;
21716 : }
21717 :
21718 : case 1:
21719 : if (register_operand (operands[0], E_DImode)
21720 : && register_operand (operands[1], E_DImode)
21721 : && (
21722 : #line 16979 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21723 : (((INTVAL (operands[3]) & (4 * BITS_PER_UNIT)) == 0
21724 : || ((INTVAL (operands[3]) & (2 * 4 * BITS_PER_UNIT - 1))
21725 : == (2 * 4 * BITS_PER_UNIT - 1)))
21726 : && ix86_pre_reload_split ()) &&
21727 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21728 : (!TARGET_64BIT)))
21729 : return 1159; /* *ashrdi3_doubleword_mask_1 */
21730 : if (!nonimmediate_operand (operands[0], E_DImode)
21731 : || !nonimmediate_operand (operands[1], E_DImode)
21732 : || !(
21733 : #line 18199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21734 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
21735 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
21736 : == 8 * BITS_PER_UNIT - 1
21737 : && ix86_pre_reload_split ()) &&
21738 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21739 : (TARGET_64BIT)))
21740 : return -1;
21741 : return 1287; /* *ashrdi3_mask_1 */
21742 :
21743 : case 2:
21744 : if (!(
21745 : #line 16979 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21746 : (((INTVAL (operands[3]) & (8 * BITS_PER_UNIT)) == 0
21747 : || ((INTVAL (operands[3]) & (2 * 8 * BITS_PER_UNIT - 1))
21748 : == (2 * 8 * BITS_PER_UNIT - 1)))
21749 : && ix86_pre_reload_split ()) &&
21750 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21751 : (TARGET_64BIT)))
21752 : return -1;
21753 : return 1161; /* *ashrti3_doubleword_mask_1 */
21754 :
21755 : case 3:
21756 : if (!
21757 : #line 18199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21758 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
21759 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
21760 : == 4 * BITS_PER_UNIT - 1
21761 : && ix86_pre_reload_split ()))
21762 : return -1;
21763 : return 1284; /* *ashrsi3_mask_1 */
21764 :
21765 : case 4:
21766 : if (!
21767 : #line 18246 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21768 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
21769 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
21770 : && ix86_pre_reload_split ()))
21771 : return -1;
21772 : return 1296; /* *ashrsi3_add_1 */
21773 :
21774 : case 5:
21775 : if (!(
21776 : #line 18246 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21777 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
21778 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
21779 : && ix86_pre_reload_split ()) &&
21780 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21781 : (TARGET_64BIT)))
21782 : return -1;
21783 : return 1299; /* *ashrdi3_add_1 */
21784 :
21785 : case 6:
21786 : if (!
21787 : #line 18301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21788 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
21789 : && ((INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
21790 : || (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
21791 : == 4 * BITS_PER_UNIT - 1)
21792 : && ix86_pre_reload_split ()))
21793 : return -1;
21794 : return 1308; /* *ashrsi3_sub_1 */
21795 :
21796 : case 7:
21797 : if (!(
21798 : #line 18301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21799 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
21800 : && ((INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
21801 : || (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
21802 : == 8 * BITS_PER_UNIT - 1)
21803 : && ix86_pre_reload_split ()) &&
21804 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21805 : (TARGET_64BIT)))
21806 : return -1;
21807 : return 1311; /* *ashrdi3_sub_1 */
21808 :
21809 : case 8:
21810 : if (!(
21811 : #line 18330 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21812 : (INTVAL (operands[2]) == INTVAL (operands[3])
21813 : && UINTVAL (operands[2]) < 4 * BITS_PER_UNIT) &&
21814 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21815 : (!TARGET_64BIT)))
21816 : return -1;
21817 : return 1312; /* *extenddi2_doubleword_highpart */
21818 :
21819 : case 9:
21820 : if (!(
21821 : #line 18330 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21822 : (INTVAL (operands[2]) == INTVAL (operands[3])
21823 : && UINTVAL (operands[2]) < 8 * BITS_PER_UNIT) &&
21824 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21825 : (TARGET_64BIT)))
21826 : return -1;
21827 : return 1313; /* *extendti2_doubleword_highpart */
21828 :
21829 : default:
21830 : return -1;
21831 : }
21832 : }
21833 :
21834 : int
21835 : recog_378 (rtx x1 ATTRIBUTE_UNUSED,
21836 : rtx_insn *insn ATTRIBUTE_UNUSED,
21837 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21838 : {
21839 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21840 : rtx x2, x3;
21841 : int res ATTRIBUTE_UNUSED;
21842 : if (pattern354 (x1) != 0)
21843 : return -1;
21844 : x2 = XVECEXP (x1, 0, 0);
21845 : x3 = XEXP (x2, 0);
21846 : operands[0] = x3;
21847 : switch (pattern1052 (x1))
21848 : {
21849 : case 0:
21850 : if (!
21851 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21852 : (TARGET_AVX512F
21853 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
21854 : && (GET_MODE_NUNITS (V16SImode)
21855 : < GET_MODE_PRECISION (HImode))
21856 : && ix86_pre_reload_split ()))
21857 : return -1;
21858 : return 3406; /* *avx512f_cmpv16si3_zero_extendhi_2 */
21859 :
21860 : case 1:
21861 : if (!(
21862 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21863 : (TARGET_AVX512F
21864 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
21865 : && (GET_MODE_NUNITS (V16HFmode)
21866 : < GET_MODE_PRECISION (HImode))
21867 : && ix86_pre_reload_split ()) &&
21868 : #line 321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21869 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
21870 : return -1;
21871 : return 3427; /* *avx512vl_cmpv16hf3_zero_extendhi_2 */
21872 :
21873 : case 2:
21874 : if (!
21875 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21876 : (TARGET_AVX512F
21877 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
21878 : && (GET_MODE_NUNITS (V16SFmode)
21879 : < GET_MODE_PRECISION (HImode))
21880 : && ix86_pre_reload_split ()))
21881 : return -1;
21882 : return 3433; /* *avx512f_cmpv16sf3_zero_extendhi_2 */
21883 :
21884 : case 3:
21885 : if (!(
21886 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21887 : (TARGET_AVX512BW
21888 : && (GET_MODE_NUNITS (V16QImode)
21889 : < GET_MODE_PRECISION (HImode))
21890 : && ix86_pre_reload_split ()) &&
21891 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21892 : (TARGET_AVX512VL)))
21893 : return -1;
21894 : return 3514; /* *avx512vl_cmpv16qi3_zero_extendhi_2 */
21895 :
21896 : case 4:
21897 : if (!(
21898 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21899 : (TARGET_AVX512BW
21900 : && (GET_MODE_NUNITS (V16HImode)
21901 : < GET_MODE_PRECISION (HImode))
21902 : && ix86_pre_reload_split ()) &&
21903 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21904 : (TARGET_AVX512VL)))
21905 : return -1;
21906 : return 3523; /* *avx512vl_cmpv16hi3_zero_extendhi_2 */
21907 :
21908 : case 5:
21909 : if (!(
21910 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21911 : (TARGET_AVX512F
21912 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
21913 : && (GET_MODE_NUNITS (V8SImode)
21914 : < GET_MODE_PRECISION (HImode))
21915 : && ix86_pre_reload_split ()) &&
21916 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21917 : (TARGET_AVX512VL)))
21918 : return -1;
21919 : return 3409; /* *avx512vl_cmpv8si3_zero_extendhi_2 */
21920 :
21921 : case 6:
21922 : if (!(
21923 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21924 : (TARGET_AVX512F
21925 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
21926 : && (GET_MODE_NUNITS (V4SImode)
21927 : < GET_MODE_PRECISION (HImode))
21928 : && ix86_pre_reload_split ()) &&
21929 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21930 : (TARGET_AVX512VL)))
21931 : return -1;
21932 : return 3412; /* *avx512vl_cmpv4si3_zero_extendhi_2 */
21933 :
21934 : case 7:
21935 : if (!
21936 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21937 : (TARGET_AVX512F
21938 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
21939 : && (GET_MODE_NUNITS (V8DImode)
21940 : < GET_MODE_PRECISION (HImode))
21941 : && ix86_pre_reload_split ()))
21942 : return -1;
21943 : return 3415; /* *avx512f_cmpv8di3_zero_extendhi_2 */
21944 :
21945 : case 8:
21946 : if (!(
21947 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21948 : (TARGET_AVX512F
21949 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
21950 : && (GET_MODE_NUNITS (V4DImode)
21951 : < GET_MODE_PRECISION (HImode))
21952 : && ix86_pre_reload_split ()) &&
21953 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21954 : (TARGET_AVX512VL)))
21955 : return -1;
21956 : return 3418; /* *avx512vl_cmpv4di3_zero_extendhi_2 */
21957 :
21958 : case 9:
21959 : if (!(
21960 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21961 : (TARGET_AVX512F
21962 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
21963 : && (GET_MODE_NUNITS (V2DImode)
21964 : < GET_MODE_PRECISION (HImode))
21965 : && ix86_pre_reload_split ()) &&
21966 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21967 : (TARGET_AVX512VL)))
21968 : return -1;
21969 : return 3421; /* *avx512vl_cmpv2di3_zero_extendhi_2 */
21970 :
21971 : case 10:
21972 : if (!(
21973 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21974 : (TARGET_AVX512F
21975 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
21976 : && (GET_MODE_NUNITS (V8HFmode)
21977 : < GET_MODE_PRECISION (HImode))
21978 : && ix86_pre_reload_split ()) &&
21979 : #line 322 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21980 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
21981 : return -1;
21982 : return 3430; /* *avx512fp16_cmpv8hf3_zero_extendhi_2 */
21983 :
21984 : case 11:
21985 : if (!(
21986 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21987 : (TARGET_AVX512F
21988 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
21989 : && (GET_MODE_NUNITS (V8SFmode)
21990 : < GET_MODE_PRECISION (HImode))
21991 : && ix86_pre_reload_split ()) &&
21992 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21993 : (TARGET_AVX512VL)))
21994 : return -1;
21995 : return 3436; /* *avx512vl_cmpv8sf3_zero_extendhi_2 */
21996 :
21997 : case 12:
21998 : if (!(
21999 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22000 : (TARGET_AVX512F
22001 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
22002 : && (GET_MODE_NUNITS (V4SFmode)
22003 : < GET_MODE_PRECISION (HImode))
22004 : && ix86_pre_reload_split ()) &&
22005 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22006 : (TARGET_AVX512VL)))
22007 : return -1;
22008 : return 3439; /* *avx512vl_cmpv4sf3_zero_extendhi_2 */
22009 :
22010 : case 13:
22011 : if (!
22012 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22013 : (TARGET_AVX512F
22014 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
22015 : && (GET_MODE_NUNITS (V8DFmode)
22016 : < GET_MODE_PRECISION (HImode))
22017 : && ix86_pre_reload_split ()))
22018 : return -1;
22019 : return 3442; /* *avx512f_cmpv8df3_zero_extendhi_2 */
22020 :
22021 : case 14:
22022 : if (!(
22023 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22024 : (TARGET_AVX512F
22025 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
22026 : && (GET_MODE_NUNITS (V4DFmode)
22027 : < GET_MODE_PRECISION (HImode))
22028 : && ix86_pre_reload_split ()) &&
22029 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22030 : (TARGET_AVX512VL)))
22031 : return -1;
22032 : return 3445; /* *avx512vl_cmpv4df3_zero_extendhi_2 */
22033 :
22034 : case 15:
22035 : if (!(
22036 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22037 : (TARGET_AVX512F
22038 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
22039 : && (GET_MODE_NUNITS (V2DFmode)
22040 : < GET_MODE_PRECISION (HImode))
22041 : && ix86_pre_reload_split ()) &&
22042 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22043 : (TARGET_AVX512VL)))
22044 : return -1;
22045 : return 3448; /* *avx512vl_cmpv2df3_zero_extendhi_2 */
22046 :
22047 : case 16:
22048 : if (!(
22049 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22050 : (TARGET_AVX512BW
22051 : && (GET_MODE_NUNITS (V8HImode)
22052 : < GET_MODE_PRECISION (HImode))
22053 : && ix86_pre_reload_split ()) &&
22054 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22055 : (TARGET_AVX512VL)))
22056 : return -1;
22057 : return 3526; /* *avx512vl_cmpv8hi3_zero_extendhi_2 */
22058 :
22059 : case 17:
22060 : if (!(
22061 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22062 : (TARGET_AVX512F
22063 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
22064 : && (GET_MODE_NUNITS (V32HFmode)
22065 : < GET_MODE_PRECISION (HImode))
22066 : && ix86_pre_reload_split ()) &&
22067 : #line 320 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22068 : (TARGET_AVX512FP16)))
22069 : return -1;
22070 : return 3424; /* *avx512bw_cmpv32hf3_zero_extendhi_2 */
22071 :
22072 : case 18:
22073 : if (!(
22074 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22075 : (TARGET_AVX512BW
22076 : && (GET_MODE_NUNITS (V32QImode)
22077 : < GET_MODE_PRECISION (HImode))
22078 : && ix86_pre_reload_split ()) &&
22079 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22080 : (TARGET_AVX512VL)))
22081 : return -1;
22082 : return 3517; /* *avx512vl_cmpv32qi3_zero_extendhi_2 */
22083 :
22084 : case 19:
22085 : if (!
22086 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22087 : (TARGET_AVX512BW
22088 : && (GET_MODE_NUNITS (V32HImode)
22089 : < GET_MODE_PRECISION (HImode))
22090 : && ix86_pre_reload_split ()))
22091 : return -1;
22092 : return 3520; /* *avx512bw_cmpv32hi3_zero_extendhi_2 */
22093 :
22094 : case 20:
22095 : if (!
22096 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22097 : (TARGET_AVX512BW
22098 : && (GET_MODE_NUNITS (V64QImode)
22099 : < GET_MODE_PRECISION (HImode))
22100 : && ix86_pre_reload_split ()))
22101 : return -1;
22102 : return 3511; /* *avx512bw_cmpv64qi3_zero_extendhi_2 */
22103 :
22104 : case 21:
22105 : if (!
22106 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22107 : (TARGET_AVX512F
22108 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
22109 : && (GET_MODE_NUNITS (V16SImode)
22110 : < GET_MODE_PRECISION (SImode))
22111 : && ix86_pre_reload_split ()))
22112 : return -1;
22113 : return 3407; /* *avx512f_cmpv16si3_zero_extendsi_2 */
22114 :
22115 : case 22:
22116 : if (!(
22117 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22118 : (TARGET_AVX512F
22119 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
22120 : && (GET_MODE_NUNITS (V16HFmode)
22121 : < GET_MODE_PRECISION (SImode))
22122 : && ix86_pre_reload_split ()) &&
22123 : #line 321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22124 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
22125 : return -1;
22126 : return 3428; /* *avx512vl_cmpv16hf3_zero_extendsi_2 */
22127 :
22128 : case 23:
22129 : if (!
22130 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22131 : (TARGET_AVX512F
22132 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
22133 : && (GET_MODE_NUNITS (V16SFmode)
22134 : < GET_MODE_PRECISION (SImode))
22135 : && ix86_pre_reload_split ()))
22136 : return -1;
22137 : return 3434; /* *avx512f_cmpv16sf3_zero_extendsi_2 */
22138 :
22139 : case 24:
22140 : if (!(
22141 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22142 : (TARGET_AVX512BW
22143 : && (GET_MODE_NUNITS (V16QImode)
22144 : < GET_MODE_PRECISION (SImode))
22145 : && ix86_pre_reload_split ()) &&
22146 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22147 : (TARGET_AVX512VL)))
22148 : return -1;
22149 : return 3515; /* *avx512vl_cmpv16qi3_zero_extendsi_2 */
22150 :
22151 : case 25:
22152 : if (!(
22153 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22154 : (TARGET_AVX512BW
22155 : && (GET_MODE_NUNITS (V16HImode)
22156 : < GET_MODE_PRECISION (SImode))
22157 : && ix86_pre_reload_split ()) &&
22158 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22159 : (TARGET_AVX512VL)))
22160 : return -1;
22161 : return 3524; /* *avx512vl_cmpv16hi3_zero_extendsi_2 */
22162 :
22163 : case 26:
22164 : if (!(
22165 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22166 : (TARGET_AVX512F
22167 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
22168 : && (GET_MODE_NUNITS (V8SImode)
22169 : < GET_MODE_PRECISION (SImode))
22170 : && ix86_pre_reload_split ()) &&
22171 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22172 : (TARGET_AVX512VL)))
22173 : return -1;
22174 : return 3410; /* *avx512vl_cmpv8si3_zero_extendsi_2 */
22175 :
22176 : case 27:
22177 : if (!(
22178 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22179 : (TARGET_AVX512F
22180 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
22181 : && (GET_MODE_NUNITS (V4SImode)
22182 : < GET_MODE_PRECISION (SImode))
22183 : && ix86_pre_reload_split ()) &&
22184 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22185 : (TARGET_AVX512VL)))
22186 : return -1;
22187 : return 3413; /* *avx512vl_cmpv4si3_zero_extendsi_2 */
22188 :
22189 : case 28:
22190 : if (!
22191 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22192 : (TARGET_AVX512F
22193 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
22194 : && (GET_MODE_NUNITS (V8DImode)
22195 : < GET_MODE_PRECISION (SImode))
22196 : && ix86_pre_reload_split ()))
22197 : return -1;
22198 : return 3416; /* *avx512f_cmpv8di3_zero_extendsi_2 */
22199 :
22200 : case 29:
22201 : if (!(
22202 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22203 : (TARGET_AVX512F
22204 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
22205 : && (GET_MODE_NUNITS (V4DImode)
22206 : < GET_MODE_PRECISION (SImode))
22207 : && ix86_pre_reload_split ()) &&
22208 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22209 : (TARGET_AVX512VL)))
22210 : return -1;
22211 : return 3419; /* *avx512vl_cmpv4di3_zero_extendsi_2 */
22212 :
22213 : case 30:
22214 : if (!(
22215 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22216 : (TARGET_AVX512F
22217 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
22218 : && (GET_MODE_NUNITS (V2DImode)
22219 : < GET_MODE_PRECISION (SImode))
22220 : && ix86_pre_reload_split ()) &&
22221 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22222 : (TARGET_AVX512VL)))
22223 : return -1;
22224 : return 3422; /* *avx512vl_cmpv2di3_zero_extendsi_2 */
22225 :
22226 : case 31:
22227 : if (!(
22228 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22229 : (TARGET_AVX512F
22230 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
22231 : && (GET_MODE_NUNITS (V8HFmode)
22232 : < GET_MODE_PRECISION (SImode))
22233 : && ix86_pre_reload_split ()) &&
22234 : #line 322 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22235 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
22236 : return -1;
22237 : return 3431; /* *avx512fp16_cmpv8hf3_zero_extendsi_2 */
22238 :
22239 : case 32:
22240 : if (!(
22241 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22242 : (TARGET_AVX512F
22243 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
22244 : && (GET_MODE_NUNITS (V8SFmode)
22245 : < GET_MODE_PRECISION (SImode))
22246 : && ix86_pre_reload_split ()) &&
22247 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22248 : (TARGET_AVX512VL)))
22249 : return -1;
22250 : return 3437; /* *avx512vl_cmpv8sf3_zero_extendsi_2 */
22251 :
22252 : case 33:
22253 : if (!(
22254 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22255 : (TARGET_AVX512F
22256 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
22257 : && (GET_MODE_NUNITS (V4SFmode)
22258 : < GET_MODE_PRECISION (SImode))
22259 : && ix86_pre_reload_split ()) &&
22260 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22261 : (TARGET_AVX512VL)))
22262 : return -1;
22263 : return 3440; /* *avx512vl_cmpv4sf3_zero_extendsi_2 */
22264 :
22265 : case 34:
22266 : if (!
22267 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22268 : (TARGET_AVX512F
22269 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
22270 : && (GET_MODE_NUNITS (V8DFmode)
22271 : < GET_MODE_PRECISION (SImode))
22272 : && ix86_pre_reload_split ()))
22273 : return -1;
22274 : return 3443; /* *avx512f_cmpv8df3_zero_extendsi_2 */
22275 :
22276 : case 35:
22277 : if (!(
22278 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22279 : (TARGET_AVX512F
22280 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
22281 : && (GET_MODE_NUNITS (V4DFmode)
22282 : < GET_MODE_PRECISION (SImode))
22283 : && ix86_pre_reload_split ()) &&
22284 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22285 : (TARGET_AVX512VL)))
22286 : return -1;
22287 : return 3446; /* *avx512vl_cmpv4df3_zero_extendsi_2 */
22288 :
22289 : case 36:
22290 : if (!(
22291 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22292 : (TARGET_AVX512F
22293 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
22294 : && (GET_MODE_NUNITS (V2DFmode)
22295 : < GET_MODE_PRECISION (SImode))
22296 : && ix86_pre_reload_split ()) &&
22297 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22298 : (TARGET_AVX512VL)))
22299 : return -1;
22300 : return 3449; /* *avx512vl_cmpv2df3_zero_extendsi_2 */
22301 :
22302 : case 37:
22303 : if (!(
22304 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22305 : (TARGET_AVX512BW
22306 : && (GET_MODE_NUNITS (V8HImode)
22307 : < GET_MODE_PRECISION (SImode))
22308 : && ix86_pre_reload_split ()) &&
22309 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22310 : (TARGET_AVX512VL)))
22311 : return -1;
22312 : return 3527; /* *avx512vl_cmpv8hi3_zero_extendsi_2 */
22313 :
22314 : case 38:
22315 : if (!(
22316 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22317 : (TARGET_AVX512F
22318 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
22319 : && (GET_MODE_NUNITS (V32HFmode)
22320 : < GET_MODE_PRECISION (SImode))
22321 : && ix86_pre_reload_split ()) &&
22322 : #line 320 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22323 : (TARGET_AVX512FP16)))
22324 : return -1;
22325 : return 3425; /* *avx512bw_cmpv32hf3_zero_extendsi_2 */
22326 :
22327 : case 39:
22328 : if (!(
22329 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22330 : (TARGET_AVX512BW
22331 : && (GET_MODE_NUNITS (V32QImode)
22332 : < GET_MODE_PRECISION (SImode))
22333 : && ix86_pre_reload_split ()) &&
22334 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22335 : (TARGET_AVX512VL)))
22336 : return -1;
22337 : return 3518; /* *avx512vl_cmpv32qi3_zero_extendsi_2 */
22338 :
22339 : case 40:
22340 : if (!
22341 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22342 : (TARGET_AVX512BW
22343 : && (GET_MODE_NUNITS (V32HImode)
22344 : < GET_MODE_PRECISION (SImode))
22345 : && ix86_pre_reload_split ()))
22346 : return -1;
22347 : return 3521; /* *avx512bw_cmpv32hi3_zero_extendsi_2 */
22348 :
22349 : case 41:
22350 : if (!
22351 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22352 : (TARGET_AVX512BW
22353 : && (GET_MODE_NUNITS (V64QImode)
22354 : < GET_MODE_PRECISION (SImode))
22355 : && ix86_pre_reload_split ()))
22356 : return -1;
22357 : return 3512; /* *avx512bw_cmpv64qi3_zero_extendsi_2 */
22358 :
22359 : case 42:
22360 : if (!
22361 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22362 : (TARGET_AVX512F
22363 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22364 : && (GET_MODE_NUNITS (V16SImode)
22365 : < GET_MODE_PRECISION (DImode))
22366 : && ix86_pre_reload_split ()))
22367 : return -1;
22368 : return 3408; /* *avx512f_cmpv16si3_zero_extenddi_2 */
22369 :
22370 : case 43:
22371 : if (!(
22372 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22373 : (TARGET_AVX512F
22374 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22375 : && (GET_MODE_NUNITS (V16HFmode)
22376 : < GET_MODE_PRECISION (DImode))
22377 : && ix86_pre_reload_split ()) &&
22378 : #line 321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22379 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
22380 : return -1;
22381 : return 3429; /* *avx512vl_cmpv16hf3_zero_extenddi_2 */
22382 :
22383 : case 44:
22384 : if (!
22385 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22386 : (TARGET_AVX512F
22387 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22388 : && (GET_MODE_NUNITS (V16SFmode)
22389 : < GET_MODE_PRECISION (DImode))
22390 : && ix86_pre_reload_split ()))
22391 : return -1;
22392 : return 3435; /* *avx512f_cmpv16sf3_zero_extenddi_2 */
22393 :
22394 : case 45:
22395 : if (!(
22396 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22397 : (TARGET_AVX512BW
22398 : && (GET_MODE_NUNITS (V16QImode)
22399 : < GET_MODE_PRECISION (DImode))
22400 : && ix86_pre_reload_split ()) &&
22401 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22402 : (TARGET_AVX512VL)))
22403 : return -1;
22404 : return 3516; /* *avx512vl_cmpv16qi3_zero_extenddi_2 */
22405 :
22406 : case 46:
22407 : if (!(
22408 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22409 : (TARGET_AVX512BW
22410 : && (GET_MODE_NUNITS (V16HImode)
22411 : < GET_MODE_PRECISION (DImode))
22412 : && ix86_pre_reload_split ()) &&
22413 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22414 : (TARGET_AVX512VL)))
22415 : return -1;
22416 : return 3525; /* *avx512vl_cmpv16hi3_zero_extenddi_2 */
22417 :
22418 : case 47:
22419 : if (!(
22420 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22421 : (TARGET_AVX512F
22422 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22423 : && (GET_MODE_NUNITS (V8SImode)
22424 : < GET_MODE_PRECISION (DImode))
22425 : && ix86_pre_reload_split ()) &&
22426 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22427 : (TARGET_AVX512VL)))
22428 : return -1;
22429 : return 3411; /* *avx512vl_cmpv8si3_zero_extenddi_2 */
22430 :
22431 : case 48:
22432 : if (!(
22433 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22434 : (TARGET_AVX512F
22435 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22436 : && (GET_MODE_NUNITS (V4SImode)
22437 : < GET_MODE_PRECISION (DImode))
22438 : && ix86_pre_reload_split ()) &&
22439 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22440 : (TARGET_AVX512VL)))
22441 : return -1;
22442 : return 3414; /* *avx512vl_cmpv4si3_zero_extenddi_2 */
22443 :
22444 : case 49:
22445 : if (!
22446 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22447 : (TARGET_AVX512F
22448 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22449 : && (GET_MODE_NUNITS (V8DImode)
22450 : < GET_MODE_PRECISION (DImode))
22451 : && ix86_pre_reload_split ()))
22452 : return -1;
22453 : return 3417; /* *avx512f_cmpv8di3_zero_extenddi_2 */
22454 :
22455 : case 50:
22456 : if (!(
22457 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22458 : (TARGET_AVX512F
22459 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22460 : && (GET_MODE_NUNITS (V4DImode)
22461 : < GET_MODE_PRECISION (DImode))
22462 : && ix86_pre_reload_split ()) &&
22463 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22464 : (TARGET_AVX512VL)))
22465 : return -1;
22466 : return 3420; /* *avx512vl_cmpv4di3_zero_extenddi_2 */
22467 :
22468 : case 51:
22469 : if (!(
22470 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22471 : (TARGET_AVX512F
22472 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22473 : && (GET_MODE_NUNITS (V2DImode)
22474 : < GET_MODE_PRECISION (DImode))
22475 : && ix86_pre_reload_split ()) &&
22476 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22477 : (TARGET_AVX512VL)))
22478 : return -1;
22479 : return 3423; /* *avx512vl_cmpv2di3_zero_extenddi_2 */
22480 :
22481 : case 52:
22482 : if (!(
22483 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22484 : (TARGET_AVX512F
22485 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22486 : && (GET_MODE_NUNITS (V8HFmode)
22487 : < GET_MODE_PRECISION (DImode))
22488 : && ix86_pre_reload_split ()) &&
22489 : #line 322 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22490 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
22491 : return -1;
22492 : return 3432; /* *avx512fp16_cmpv8hf3_zero_extenddi_2 */
22493 :
22494 : case 53:
22495 : if (!(
22496 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22497 : (TARGET_AVX512F
22498 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22499 : && (GET_MODE_NUNITS (V8SFmode)
22500 : < GET_MODE_PRECISION (DImode))
22501 : && ix86_pre_reload_split ()) &&
22502 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22503 : (TARGET_AVX512VL)))
22504 : return -1;
22505 : return 3438; /* *avx512vl_cmpv8sf3_zero_extenddi_2 */
22506 :
22507 : case 54:
22508 : if (!(
22509 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22510 : (TARGET_AVX512F
22511 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22512 : && (GET_MODE_NUNITS (V4SFmode)
22513 : < GET_MODE_PRECISION (DImode))
22514 : && ix86_pre_reload_split ()) &&
22515 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22516 : (TARGET_AVX512VL)))
22517 : return -1;
22518 : return 3441; /* *avx512vl_cmpv4sf3_zero_extenddi_2 */
22519 :
22520 : case 55:
22521 : if (!
22522 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22523 : (TARGET_AVX512F
22524 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22525 : && (GET_MODE_NUNITS (V8DFmode)
22526 : < GET_MODE_PRECISION (DImode))
22527 : && ix86_pre_reload_split ()))
22528 : return -1;
22529 : return 3444; /* *avx512f_cmpv8df3_zero_extenddi_2 */
22530 :
22531 : case 56:
22532 : if (!(
22533 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22534 : (TARGET_AVX512F
22535 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22536 : && (GET_MODE_NUNITS (V4DFmode)
22537 : < GET_MODE_PRECISION (DImode))
22538 : && ix86_pre_reload_split ()) &&
22539 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22540 : (TARGET_AVX512VL)))
22541 : return -1;
22542 : return 3447; /* *avx512vl_cmpv4df3_zero_extenddi_2 */
22543 :
22544 : case 57:
22545 : if (!(
22546 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22547 : (TARGET_AVX512F
22548 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22549 : && (GET_MODE_NUNITS (V2DFmode)
22550 : < GET_MODE_PRECISION (DImode))
22551 : && ix86_pre_reload_split ()) &&
22552 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22553 : (TARGET_AVX512VL)))
22554 : return -1;
22555 : return 3450; /* *avx512vl_cmpv2df3_zero_extenddi_2 */
22556 :
22557 : case 58:
22558 : if (!(
22559 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22560 : (TARGET_AVX512BW
22561 : && (GET_MODE_NUNITS (V8HImode)
22562 : < GET_MODE_PRECISION (DImode))
22563 : && ix86_pre_reload_split ()) &&
22564 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22565 : (TARGET_AVX512VL)))
22566 : return -1;
22567 : return 3528; /* *avx512vl_cmpv8hi3_zero_extenddi_2 */
22568 :
22569 : case 59:
22570 : if (!(
22571 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22572 : (TARGET_AVX512F
22573 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22574 : && (GET_MODE_NUNITS (V32HFmode)
22575 : < GET_MODE_PRECISION (DImode))
22576 : && ix86_pre_reload_split ()) &&
22577 : #line 320 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22578 : (TARGET_AVX512FP16)))
22579 : return -1;
22580 : return 3426; /* *avx512bw_cmpv32hf3_zero_extenddi_2 */
22581 :
22582 : case 60:
22583 : if (!(
22584 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22585 : (TARGET_AVX512BW
22586 : && (GET_MODE_NUNITS (V32QImode)
22587 : < GET_MODE_PRECISION (DImode))
22588 : && ix86_pre_reload_split ()) &&
22589 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22590 : (TARGET_AVX512VL)))
22591 : return -1;
22592 : return 3519; /* *avx512vl_cmpv32qi3_zero_extenddi_2 */
22593 :
22594 : case 61:
22595 : if (!
22596 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22597 : (TARGET_AVX512BW
22598 : && (GET_MODE_NUNITS (V32HImode)
22599 : < GET_MODE_PRECISION (DImode))
22600 : && ix86_pre_reload_split ()))
22601 : return -1;
22602 : return 3522; /* *avx512bw_cmpv32hi3_zero_extenddi_2 */
22603 :
22604 : case 62:
22605 : if (!
22606 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22607 : (TARGET_AVX512BW
22608 : && (GET_MODE_NUNITS (V64QImode)
22609 : < GET_MODE_PRECISION (DImode))
22610 : && ix86_pre_reload_split ()))
22611 : return -1;
22612 : return 3513; /* *avx512bw_cmpv64qi3_zero_extenddi_2 */
22613 :
22614 : case 63:
22615 : if (!
22616 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22617 : (TARGET_AVX512BW
22618 : && ix86_pre_reload_split ()
22619 : && (GET_MODE_NUNITS (V64QImode)
22620 : < GET_MODE_PRECISION (HImode))
22621 : && ix86_pre_reload_split ()))
22622 : return -1;
22623 : return 3619; /* *avx512bw_ucmpv64qi3_zero_extendhi_2 */
22624 :
22625 : case 64:
22626 : if (!(
22627 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22628 : (TARGET_AVX512BW
22629 : && ix86_pre_reload_split ()
22630 : && (GET_MODE_NUNITS (V16QImode)
22631 : < GET_MODE_PRECISION (HImode))
22632 : && ix86_pre_reload_split ()) &&
22633 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22634 : (TARGET_AVX512VL)))
22635 : return -1;
22636 : return 3622; /* *avx512vl_ucmpv16qi3_zero_extendhi_2 */
22637 :
22638 : case 65:
22639 : if (!(
22640 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22641 : (TARGET_AVX512BW
22642 : && ix86_pre_reload_split ()
22643 : && (GET_MODE_NUNITS (V16HImode)
22644 : < GET_MODE_PRECISION (HImode))
22645 : && ix86_pre_reload_split ()) &&
22646 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22647 : (TARGET_AVX512VL)))
22648 : return -1;
22649 : return 3631; /* *avx512vl_ucmpv16hi3_zero_extendhi_2 */
22650 :
22651 : case 66:
22652 : if (!
22653 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22654 : (TARGET_AVX512F
22655 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
22656 : && (GET_MODE_NUNITS (V16SImode)
22657 : < GET_MODE_PRECISION (HImode))
22658 : && ix86_pre_reload_split ()))
22659 : return -1;
22660 : return 3691; /* *avx512f_ucmpv16si3_zero_extendhi_2 */
22661 :
22662 : case 67:
22663 : if (!(
22664 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22665 : (TARGET_AVX512BW
22666 : && ix86_pre_reload_split ()
22667 : && (GET_MODE_NUNITS (V32QImode)
22668 : < GET_MODE_PRECISION (HImode))
22669 : && ix86_pre_reload_split ()) &&
22670 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22671 : (TARGET_AVX512VL)))
22672 : return -1;
22673 : return 3625; /* *avx512vl_ucmpv32qi3_zero_extendhi_2 */
22674 :
22675 : case 68:
22676 : if (!
22677 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22678 : (TARGET_AVX512BW
22679 : && ix86_pre_reload_split ()
22680 : && (GET_MODE_NUNITS (V32HImode)
22681 : < GET_MODE_PRECISION (HImode))
22682 : && ix86_pre_reload_split ()))
22683 : return -1;
22684 : return 3628; /* *avx512bw_ucmpv32hi3_zero_extendhi_2 */
22685 :
22686 : case 69:
22687 : if (!(
22688 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22689 : (TARGET_AVX512BW
22690 : && ix86_pre_reload_split ()
22691 : && (GET_MODE_NUNITS (V8HImode)
22692 : < GET_MODE_PRECISION (HImode))
22693 : && ix86_pre_reload_split ()) &&
22694 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22695 : (TARGET_AVX512VL)))
22696 : return -1;
22697 : return 3634; /* *avx512vl_ucmpv8hi3_zero_extendhi_2 */
22698 :
22699 : case 70:
22700 : if (!(
22701 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22702 : (TARGET_AVX512F
22703 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
22704 : && (GET_MODE_NUNITS (V8SImode)
22705 : < GET_MODE_PRECISION (HImode))
22706 : && ix86_pre_reload_split ()) &&
22707 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22708 : (TARGET_AVX512VL)))
22709 : return -1;
22710 : return 3692; /* *avx512vl_ucmpv8si3_zero_extendhi_2 */
22711 :
22712 : case 71:
22713 : if (!(
22714 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22715 : (TARGET_AVX512F
22716 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
22717 : && (GET_MODE_NUNITS (V4SImode)
22718 : < GET_MODE_PRECISION (HImode))
22719 : && ix86_pre_reload_split ()) &&
22720 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22721 : (TARGET_AVX512VL)))
22722 : return -1;
22723 : return 3693; /* *avx512vl_ucmpv4si3_zero_extendhi_2 */
22724 :
22725 : case 72:
22726 : if (!
22727 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22728 : (TARGET_AVX512F
22729 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
22730 : && (GET_MODE_NUNITS (V8DImode)
22731 : < GET_MODE_PRECISION (HImode))
22732 : && ix86_pre_reload_split ()))
22733 : return -1;
22734 : return 3694; /* *avx512f_ucmpv8di3_zero_extendhi_2 */
22735 :
22736 : case 73:
22737 : if (!(
22738 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22739 : (TARGET_AVX512F
22740 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
22741 : && (GET_MODE_NUNITS (V4DImode)
22742 : < GET_MODE_PRECISION (HImode))
22743 : && ix86_pre_reload_split ()) &&
22744 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22745 : (TARGET_AVX512VL)))
22746 : return -1;
22747 : return 3695; /* *avx512vl_ucmpv4di3_zero_extendhi_2 */
22748 :
22749 : case 74:
22750 : if (!(
22751 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22752 : (TARGET_AVX512F
22753 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
22754 : && (GET_MODE_NUNITS (V2DImode)
22755 : < GET_MODE_PRECISION (HImode))
22756 : && ix86_pre_reload_split ()) &&
22757 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22758 : (TARGET_AVX512VL)))
22759 : return -1;
22760 : return 3696; /* *avx512vl_ucmpv2di3_zero_extendhi_2 */
22761 :
22762 : case 75:
22763 : if (!
22764 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22765 : (TARGET_AVX512BW
22766 : && ix86_pre_reload_split ()
22767 : && (GET_MODE_NUNITS (V64QImode)
22768 : < GET_MODE_PRECISION (SImode))
22769 : && ix86_pre_reload_split ()))
22770 : return -1;
22771 : return 3620; /* *avx512bw_ucmpv64qi3_zero_extendsi_2 */
22772 :
22773 : case 76:
22774 : if (!(
22775 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22776 : (TARGET_AVX512BW
22777 : && ix86_pre_reload_split ()
22778 : && (GET_MODE_NUNITS (V16QImode)
22779 : < GET_MODE_PRECISION (SImode))
22780 : && ix86_pre_reload_split ()) &&
22781 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22782 : (TARGET_AVX512VL)))
22783 : return -1;
22784 : return 3623; /* *avx512vl_ucmpv16qi3_zero_extendsi_2 */
22785 :
22786 : case 77:
22787 : if (!(
22788 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22789 : (TARGET_AVX512BW
22790 : && ix86_pre_reload_split ()
22791 : && (GET_MODE_NUNITS (V16HImode)
22792 : < GET_MODE_PRECISION (SImode))
22793 : && ix86_pre_reload_split ()) &&
22794 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22795 : (TARGET_AVX512VL)))
22796 : return -1;
22797 : return 3632; /* *avx512vl_ucmpv16hi3_zero_extendsi_2 */
22798 :
22799 : case 78:
22800 : if (!
22801 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22802 : (TARGET_AVX512F
22803 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
22804 : && (GET_MODE_NUNITS (V16SImode)
22805 : < GET_MODE_PRECISION (SImode))
22806 : && ix86_pre_reload_split ()))
22807 : return -1;
22808 : return 3697; /* *avx512f_ucmpv16si3_zero_extendsi_2 */
22809 :
22810 : case 79:
22811 : if (!(
22812 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22813 : (TARGET_AVX512BW
22814 : && ix86_pre_reload_split ()
22815 : && (GET_MODE_NUNITS (V32QImode)
22816 : < GET_MODE_PRECISION (SImode))
22817 : && ix86_pre_reload_split ()) &&
22818 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22819 : (TARGET_AVX512VL)))
22820 : return -1;
22821 : return 3626; /* *avx512vl_ucmpv32qi3_zero_extendsi_2 */
22822 :
22823 : case 80:
22824 : if (!
22825 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22826 : (TARGET_AVX512BW
22827 : && ix86_pre_reload_split ()
22828 : && (GET_MODE_NUNITS (V32HImode)
22829 : < GET_MODE_PRECISION (SImode))
22830 : && ix86_pre_reload_split ()))
22831 : return -1;
22832 : return 3629; /* *avx512bw_ucmpv32hi3_zero_extendsi_2 */
22833 :
22834 : case 81:
22835 : if (!(
22836 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22837 : (TARGET_AVX512BW
22838 : && ix86_pre_reload_split ()
22839 : && (GET_MODE_NUNITS (V8HImode)
22840 : < GET_MODE_PRECISION (SImode))
22841 : && ix86_pre_reload_split ()) &&
22842 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22843 : (TARGET_AVX512VL)))
22844 : return -1;
22845 : return 3635; /* *avx512vl_ucmpv8hi3_zero_extendsi_2 */
22846 :
22847 : case 82:
22848 : if (!(
22849 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22850 : (TARGET_AVX512F
22851 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
22852 : && (GET_MODE_NUNITS (V8SImode)
22853 : < GET_MODE_PRECISION (SImode))
22854 : && ix86_pre_reload_split ()) &&
22855 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22856 : (TARGET_AVX512VL)))
22857 : return -1;
22858 : return 3698; /* *avx512vl_ucmpv8si3_zero_extendsi_2 */
22859 :
22860 : case 83:
22861 : if (!(
22862 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22863 : (TARGET_AVX512F
22864 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
22865 : && (GET_MODE_NUNITS (V4SImode)
22866 : < GET_MODE_PRECISION (SImode))
22867 : && ix86_pre_reload_split ()) &&
22868 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22869 : (TARGET_AVX512VL)))
22870 : return -1;
22871 : return 3699; /* *avx512vl_ucmpv4si3_zero_extendsi_2 */
22872 :
22873 : case 84:
22874 : if (!
22875 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22876 : (TARGET_AVX512F
22877 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
22878 : && (GET_MODE_NUNITS (V8DImode)
22879 : < GET_MODE_PRECISION (SImode))
22880 : && ix86_pre_reload_split ()))
22881 : return -1;
22882 : return 3700; /* *avx512f_ucmpv8di3_zero_extendsi_2 */
22883 :
22884 : case 85:
22885 : if (!(
22886 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22887 : (TARGET_AVX512F
22888 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
22889 : && (GET_MODE_NUNITS (V4DImode)
22890 : < GET_MODE_PRECISION (SImode))
22891 : && ix86_pre_reload_split ()) &&
22892 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22893 : (TARGET_AVX512VL)))
22894 : return -1;
22895 : return 3701; /* *avx512vl_ucmpv4di3_zero_extendsi_2 */
22896 :
22897 : case 86:
22898 : if (!(
22899 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22900 : (TARGET_AVX512F
22901 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
22902 : && (GET_MODE_NUNITS (V2DImode)
22903 : < GET_MODE_PRECISION (SImode))
22904 : && ix86_pre_reload_split ()) &&
22905 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22906 : (TARGET_AVX512VL)))
22907 : return -1;
22908 : return 3702; /* *avx512vl_ucmpv2di3_zero_extendsi_2 */
22909 :
22910 : case 87:
22911 : if (!
22912 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22913 : (TARGET_AVX512BW
22914 : && ix86_pre_reload_split ()
22915 : && (GET_MODE_NUNITS (V64QImode)
22916 : < GET_MODE_PRECISION (DImode))
22917 : && ix86_pre_reload_split ()))
22918 : return -1;
22919 : return 3621; /* *avx512bw_ucmpv64qi3_zero_extenddi_2 */
22920 :
22921 : case 88:
22922 : if (!(
22923 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22924 : (TARGET_AVX512BW
22925 : && ix86_pre_reload_split ()
22926 : && (GET_MODE_NUNITS (V16QImode)
22927 : < GET_MODE_PRECISION (DImode))
22928 : && ix86_pre_reload_split ()) &&
22929 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22930 : (TARGET_AVX512VL)))
22931 : return -1;
22932 : return 3624; /* *avx512vl_ucmpv16qi3_zero_extenddi_2 */
22933 :
22934 : case 89:
22935 : if (!(
22936 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22937 : (TARGET_AVX512BW
22938 : && ix86_pre_reload_split ()
22939 : && (GET_MODE_NUNITS (V16HImode)
22940 : < GET_MODE_PRECISION (DImode))
22941 : && ix86_pre_reload_split ()) &&
22942 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22943 : (TARGET_AVX512VL)))
22944 : return -1;
22945 : return 3633; /* *avx512vl_ucmpv16hi3_zero_extenddi_2 */
22946 :
22947 : case 90:
22948 : if (!
22949 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22950 : (TARGET_AVX512F
22951 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
22952 : && (GET_MODE_NUNITS (V16SImode)
22953 : < GET_MODE_PRECISION (DImode))
22954 : && ix86_pre_reload_split ()))
22955 : return -1;
22956 : return 3703; /* *avx512f_ucmpv16si3_zero_extenddi_2 */
22957 :
22958 : case 91:
22959 : if (!(
22960 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22961 : (TARGET_AVX512BW
22962 : && ix86_pre_reload_split ()
22963 : && (GET_MODE_NUNITS (V32QImode)
22964 : < GET_MODE_PRECISION (DImode))
22965 : && ix86_pre_reload_split ()) &&
22966 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22967 : (TARGET_AVX512VL)))
22968 : return -1;
22969 : return 3627; /* *avx512vl_ucmpv32qi3_zero_extenddi_2 */
22970 :
22971 : case 92:
22972 : if (!
22973 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22974 : (TARGET_AVX512BW
22975 : && ix86_pre_reload_split ()
22976 : && (GET_MODE_NUNITS (V32HImode)
22977 : < GET_MODE_PRECISION (DImode))
22978 : && ix86_pre_reload_split ()))
22979 : return -1;
22980 : return 3630; /* *avx512bw_ucmpv32hi3_zero_extenddi_2 */
22981 :
22982 : case 93:
22983 : if (!(
22984 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22985 : (TARGET_AVX512BW
22986 : && ix86_pre_reload_split ()
22987 : && (GET_MODE_NUNITS (V8HImode)
22988 : < GET_MODE_PRECISION (DImode))
22989 : && ix86_pre_reload_split ()) &&
22990 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22991 : (TARGET_AVX512VL)))
22992 : return -1;
22993 : return 3636; /* *avx512vl_ucmpv8hi3_zero_extenddi_2 */
22994 :
22995 : case 94:
22996 : if (!(
22997 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22998 : (TARGET_AVX512F
22999 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
23000 : && (GET_MODE_NUNITS (V8SImode)
23001 : < GET_MODE_PRECISION (DImode))
23002 : && ix86_pre_reload_split ()) &&
23003 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23004 : (TARGET_AVX512VL)))
23005 : return -1;
23006 : return 3704; /* *avx512vl_ucmpv8si3_zero_extenddi_2 */
23007 :
23008 : case 95:
23009 : if (!(
23010 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23011 : (TARGET_AVX512F
23012 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
23013 : && (GET_MODE_NUNITS (V4SImode)
23014 : < GET_MODE_PRECISION (DImode))
23015 : && ix86_pre_reload_split ()) &&
23016 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23017 : (TARGET_AVX512VL)))
23018 : return -1;
23019 : return 3705; /* *avx512vl_ucmpv4si3_zero_extenddi_2 */
23020 :
23021 : case 96:
23022 : if (!
23023 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23024 : (TARGET_AVX512F
23025 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
23026 : && (GET_MODE_NUNITS (V8DImode)
23027 : < GET_MODE_PRECISION (DImode))
23028 : && ix86_pre_reload_split ()))
23029 : return -1;
23030 : return 3706; /* *avx512f_ucmpv8di3_zero_extenddi_2 */
23031 :
23032 : case 97:
23033 : if (!(
23034 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23035 : (TARGET_AVX512F
23036 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
23037 : && (GET_MODE_NUNITS (V4DImode)
23038 : < GET_MODE_PRECISION (DImode))
23039 : && ix86_pre_reload_split ()) &&
23040 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23041 : (TARGET_AVX512VL)))
23042 : return -1;
23043 : return 3707; /* *avx512vl_ucmpv4di3_zero_extenddi_2 */
23044 :
23045 : case 98:
23046 : if (!(
23047 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23048 : (TARGET_AVX512F
23049 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
23050 : && (GET_MODE_NUNITS (V2DImode)
23051 : < GET_MODE_PRECISION (DImode))
23052 : && ix86_pre_reload_split ()) &&
23053 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23054 : (TARGET_AVX512VL)))
23055 : return -1;
23056 : return 3708; /* *avx512vl_ucmpv2di3_zero_extenddi_2 */
23057 :
23058 : default:
23059 : return -1;
23060 : }
23061 : }
23062 :
23063 : int
23064 : recog_410 (rtx x1 ATTRIBUTE_UNUSED,
23065 : rtx_insn *insn ATTRIBUTE_UNUSED,
23066 : int *pnum_clobbers ATTRIBUTE_UNUSED)
23067 : {
23068 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
23069 : rtx x2, x3, x4, x5;
23070 : int res ATTRIBUTE_UNUSED;
23071 : switch (pattern561 (x1))
23072 : {
23073 : case 0:
23074 : x2 = XVECEXP (x1, 0, 1);
23075 : x3 = XEXP (x2, 0);
23076 : if (GET_CODE (x3) != REG
23077 : || REGNO (x3) != 17
23078 : || GET_MODE (x3) != E_CCmode)
23079 : return -1;
23080 : switch (GET_MODE (operands[0]))
23081 : {
23082 : case E_DImode:
23083 : if (!nonimmediate_operand (operands[0], E_DImode))
23084 : return -1;
23085 : x4 = XVECEXP (x1, 0, 0);
23086 : x5 = XEXP (x4, 1);
23087 : if (GET_MODE (x5) != E_DImode
23088 : || !nonimmediate_operand (operands[1], E_DImode))
23089 : return -1;
23090 : if (x86_64_hilo_general_operand (operands[2], E_DImode)
23091 : && (
23092 : #line 12843 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23093 : (ix86_binary_operator_ok (AND, DImode, operands, TARGET_APX_NDD)) &&
23094 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23095 : (!TARGET_64BIT)))
23096 : return 731; /* *anddi3_doubleword */
23097 : if (x86_64_szext_general_operand (operands[2], E_DImode)
23098 : &&
23099 : #line 12885 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23100 : (TARGET_64BIT
23101 : && ix86_binary_operator_ok (AND, DImode, operands, TARGET_APX_NDD)
23102 : && true))
23103 : return 734; /* *anddi_1 */
23104 : if (!const_int_operand (operands[2], E_DImode)
23105 : || !
23106 : #line 12918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23107 : (TARGET_64BIT && TARGET_USE_BT
23108 : && ix86_binary_operator_ok (AND, DImode, operands)
23109 : && IN_RANGE (exact_log2 (~INTVAL (operands[2])), 31, 63)))
23110 : return -1;
23111 : return 735; /* *anddi_1_btr */
23112 :
23113 : case E_TImode:
23114 : x4 = XVECEXP (x1, 0, 0);
23115 : x5 = XEXP (x4, 1);
23116 : if (pattern566 (x5,
23117 : E_TImode) != 0
23118 : || !(
23119 : #line 12843 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23120 : (ix86_binary_operator_ok (AND, TImode, operands, TARGET_APX_NDD)) &&
23121 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23122 : (TARGET_64BIT)))
23123 : return -1;
23124 : return 732; /* *andti3_doubleword */
23125 :
23126 : case E_HImode:
23127 : x4 = XVECEXP (x1, 0, 0);
23128 : x5 = XEXP (x4, 1);
23129 : if (pattern567 (x5,
23130 : E_HImode) != 0
23131 : || !
23132 : #line 13013 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23133 : (ix86_binary_operator_ok (AND, HImode, operands, TARGET_APX_NDD)
23134 : && true))
23135 : return -1;
23136 : return 748; /* *andhi_1 */
23137 :
23138 : case E_SImode:
23139 : x4 = XVECEXP (x1, 0, 0);
23140 : x5 = XEXP (x4, 1);
23141 : if (pattern568 (x5) != 0
23142 : || !
23143 : #line 13013 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23144 : (ix86_binary_operator_ok (AND, SImode, operands, TARGET_APX_NDD)
23145 : && true))
23146 : return -1;
23147 : return 750; /* *andsi_1 */
23148 :
23149 : case E_QImode:
23150 : x4 = XVECEXP (x1, 0, 0);
23151 : x5 = XEXP (x4, 1);
23152 : if (pattern567 (x5,
23153 : E_QImode) != 0
23154 : || !
23155 : #line 13051 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23156 : (ix86_binary_operator_ok (AND, QImode, operands, TARGET_APX_NDD)
23157 : && true))
23158 : return -1;
23159 : return 752; /* *andqi_1 */
23160 :
23161 : case E_V4QImode:
23162 : x4 = XVECEXP (x1, 0, 0);
23163 : x5 = XEXP (x4, 1);
23164 : if (pattern569 (x5,
23165 : E_V4QImode) != 0
23166 : || !
23167 : #line 4741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23168 : (ix86_binary_operator_ok (AND, V4QImode, operands)))
23169 : return -1;
23170 : return 2339; /* *andv4qi3 */
23171 :
23172 : case E_V2QImode:
23173 : x4 = XVECEXP (x1, 0, 0);
23174 : x5 = XEXP (x4, 1);
23175 : if (pattern569 (x5,
23176 : E_V2QImode) != 0
23177 : || !
23178 : #line 4741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23179 : (ix86_binary_operator_ok (AND, V2QImode, operands)))
23180 : return -1;
23181 : return 2342; /* *andv2qi3 */
23182 :
23183 : case E_V2HImode:
23184 : x4 = XVECEXP (x1, 0, 0);
23185 : x5 = XEXP (x4, 1);
23186 : if (pattern569 (x5,
23187 : E_V2HImode) != 0
23188 : || !
23189 : #line 4741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23190 : (ix86_binary_operator_ok (AND, V2HImode, operands)))
23191 : return -1;
23192 : return 2345; /* *andv2hi3 */
23193 :
23194 : default:
23195 : return -1;
23196 : }
23197 :
23198 : case 1:
23199 : switch (pattern571 (x1))
23200 : {
23201 : case 0:
23202 : if (!
23203 : #line 2117 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23204 : (TARGET_AVX512F))
23205 : return -1;
23206 : return 2634; /* kandqi */
23207 :
23208 : case 1:
23209 : if (!
23210 : #line 2117 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23211 : (TARGET_AVX512F))
23212 : return -1;
23213 : return 2637; /* kandhi */
23214 :
23215 : case 2:
23216 : if (!(
23217 : #line 2117 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23218 : (TARGET_AVX512F) &&
23219 : #line 2098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23220 : (TARGET_AVX512BW)))
23221 : return -1;
23222 : return 2640; /* kandsi */
23223 :
23224 : case 3:
23225 : if (!(
23226 : #line 2117 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23227 : (TARGET_AVX512F) &&
23228 : #line 2098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23229 : (TARGET_AVX512BW)))
23230 : return -1;
23231 : return 2643; /* kanddi */
23232 :
23233 : default:
23234 : return -1;
23235 : }
23236 :
23237 : case 2:
23238 : if (!
23239 : #line 13083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23240 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
23241 : return -1;
23242 : return 753; /* *andqi_1_slp */
23243 :
23244 : case 3:
23245 : if (!
23246 : #line 13083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23247 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
23248 : return -1;
23249 : return 756; /* *andhi_1_slp */
23250 :
23251 : default:
23252 : return -1;
23253 : }
23254 : }
23255 :
23256 : int
23257 : recog_416 (rtx x1 ATTRIBUTE_UNUSED,
23258 : rtx_insn *insn ATTRIBUTE_UNUSED,
23259 : int *pnum_clobbers ATTRIBUTE_UNUSED)
23260 : {
23261 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
23262 : rtx x2, x3, x4, x5, x6;
23263 : int res ATTRIBUTE_UNUSED;
23264 : x2 = XVECEXP (x1, 0, 0);
23265 : x3 = XEXP (x2, 1);
23266 : x4 = XEXP (x3, 0);
23267 : switch (GET_CODE (x4))
23268 : {
23269 : case REG:
23270 : case SUBREG:
23271 : case MEM:
23272 : switch (pattern378 (x1))
23273 : {
23274 : case 0:
23275 : x5 = XVECEXP (x1, 0, 1);
23276 : x6 = XEXP (x5, 0);
23277 : if (GET_CODE (x6) != REG
23278 : || REGNO (x6) != 17
23279 : || GET_MODE (x6) != E_CCmode)
23280 : return -1;
23281 : switch (GET_MODE (operands[0]))
23282 : {
23283 : case E_DImode:
23284 : if (!nonimmediate_operand (operands[0], E_DImode)
23285 : || GET_MODE (x3) != E_DImode
23286 : || !nonimmediate_operand (operands[1], E_DImode))
23287 : return -1;
23288 : if ((
23289 : #line 14573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23290 : (ix86_unary_operator_ok (NEG, DImode, operands, TARGET_APX_NDD)) &&
23291 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23292 : (!TARGET_64BIT)))
23293 : return 984; /* *negdi2_doubleword */
23294 : if (!(
23295 : #line 14682 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23296 : (ix86_unary_operator_ok (NEG, DImode, operands, TARGET_APX_NDD)
23297 : && true) &&
23298 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23299 : (TARGET_64BIT)))
23300 : return -1;
23301 : return 993; /* *negdi_1 */
23302 :
23303 : case E_TImode:
23304 : if (!nonimmediate_operand (operands[0], E_TImode)
23305 : || GET_MODE (x3) != E_TImode
23306 : || !nonimmediate_operand (operands[1], E_TImode)
23307 : || !(
23308 : #line 14573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23309 : (ix86_unary_operator_ok (NEG, TImode, operands, TARGET_APX_NDD)) &&
23310 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23311 : (TARGET_64BIT)))
23312 : return -1;
23313 : return 985; /* *negti2_doubleword */
23314 :
23315 : case E_QImode:
23316 : if (!nonimmediate_operand (operands[0], E_QImode)
23317 : || GET_MODE (x3) != E_QImode
23318 : || !nonimmediate_operand (operands[1], E_QImode)
23319 : || !
23320 : #line 14682 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23321 : (ix86_unary_operator_ok (NEG, QImode, operands, TARGET_APX_NDD)
23322 : && true))
23323 : return -1;
23324 : return 987; /* *negqi_1 */
23325 :
23326 : case E_HImode:
23327 : if (!nonimmediate_operand (operands[0], E_HImode)
23328 : || GET_MODE (x3) != E_HImode
23329 : || !nonimmediate_operand (operands[1], E_HImode)
23330 : || !
23331 : #line 14682 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23332 : (ix86_unary_operator_ok (NEG, HImode, operands, TARGET_APX_NDD)
23333 : && true))
23334 : return -1;
23335 : return 989; /* *neghi_1 */
23336 :
23337 : case E_SImode:
23338 : if (!nonimmediate_operand (operands[0], E_SImode)
23339 : || GET_MODE (x3) != E_SImode
23340 : || !nonimmediate_operand (operands[1], E_SImode)
23341 : || !
23342 : #line 14682 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23343 : (ix86_unary_operator_ok (NEG, SImode, operands, TARGET_APX_NDD)
23344 : && true))
23345 : return -1;
23346 : return 991; /* *negsi_1 */
23347 :
23348 : case E_SFmode:
23349 : if (!register_operand (operands[0], E_SFmode)
23350 : || GET_MODE (x3) != E_SFmode
23351 : || !register_operand (operands[1], E_SFmode)
23352 : || !
23353 : #line 15155 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23354 : (TARGET_80387 && !(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)))
23355 : return -1;
23356 : return 1043; /* *negsf2_i387_1 */
23357 :
23358 : case E_DFmode:
23359 : if (!register_operand (operands[0], E_DFmode)
23360 : || GET_MODE (x3) != E_DFmode
23361 : || !register_operand (operands[1], E_DFmode)
23362 : || !
23363 : #line 15155 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23364 : (TARGET_80387 && !(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)))
23365 : return -1;
23366 : return 1045; /* *negdf2_i387_1 */
23367 :
23368 : case E_XFmode:
23369 : if (!register_operand (operands[0], E_XFmode)
23370 : || GET_MODE (x3) != E_XFmode
23371 : || !register_operand (operands[1], E_XFmode)
23372 : || !
23373 : #line 15155 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23374 : (TARGET_80387 && !(SSE_FLOAT_MODE_P (XFmode) && TARGET_SSE_MATH)))
23375 : return -1;
23376 : return 1047; /* *negxf2_i387_1 */
23377 :
23378 : case E_V2QImode:
23379 : if (!register_operand (operands[0], E_V2QImode)
23380 : || GET_MODE (x3) != E_V2QImode
23381 : || !register_operand (operands[1], E_V2QImode)
23382 : || !
23383 : #line 3162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23384 : (!TARGET_PARTIAL_REG_STALL || optimize_size || TARGET_SSE2))
23385 : return -1;
23386 : return 2179; /* negv2qi2 */
23387 :
23388 : default:
23389 : return -1;
23390 : }
23391 :
23392 : case 1:
23393 : switch (pattern709 (x1, pnum_clobbers))
23394 : {
23395 : case 0:
23396 : if (!
23397 : #line 15093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23398 : (TARGET_SSE))
23399 : return -1;
23400 : return 1040; /* *negtf2_1 */
23401 :
23402 : case 1:
23403 : if (!
23404 : #line 15179 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23405 : (TARGET_AVX512FP16))
23406 : return -1;
23407 : *pnum_clobbers = 1;
23408 : return 1049; /* *neghf2_1 */
23409 :
23410 : case 2:
23411 : if (!
23412 : #line 15195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23413 : (TARGET_80387 || (SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)))
23414 : return -1;
23415 : *pnum_clobbers = 1;
23416 : return 1051; /* *negsf2_1 */
23417 :
23418 : case 3:
23419 : if (!
23420 : #line 15195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23421 : (TARGET_80387 || (SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)))
23422 : return -1;
23423 : *pnum_clobbers = 1;
23424 : return 1053; /* *negdf2_1 */
23425 :
23426 : case 4:
23427 : if (!
23428 : #line 706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23429 : (TARGET_MMX_WITH_SSE))
23430 : return -1;
23431 : return 2106; /* *mmx_negv2sf2 */
23432 :
23433 : case 5:
23434 : if (!
23435 : #line 2263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23436 : (TARGET_SSE))
23437 : return -1;
23438 : return 2152; /* *mmx_negv2bf */
23439 :
23440 : case 6:
23441 : if (!(
23442 : #line 2263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23443 : (TARGET_SSE) &&
23444 : #line 2248 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23445 : (TARGET_MMX_WITH_SSE)))
23446 : return -1;
23447 : return 2154; /* *mmx_negv4bf */
23448 :
23449 : case 7:
23450 : if (!
23451 : #line 2263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23452 : (TARGET_SSE))
23453 : return -1;
23454 : return 2156; /* *mmx_negv2hf */
23455 :
23456 : case 8:
23457 : if (!(
23458 : #line 2263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23459 : (TARGET_SSE) &&
23460 : #line 2249 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23461 : (TARGET_MMX_WITH_SSE)))
23462 : return -1;
23463 : return 2158; /* *mmx_negv4hf */
23464 :
23465 : case 9:
23466 : if (!(
23467 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23468 : (TARGET_SSE) &&
23469 : #line 415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23470 : (TARGET_AVX512F)))
23471 : return -1;
23472 : return 2716; /* *negv32bf2 */
23473 :
23474 : case 10:
23475 : if (!(
23476 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23477 : (TARGET_SSE) &&
23478 : #line 416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23479 : (TARGET_AVX)))
23480 : return -1;
23481 : return 2718; /* *negv16bf2 */
23482 :
23483 : case 11:
23484 : if (!(
23485 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23486 : (TARGET_SSE) &&
23487 : #line 416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23488 : (TARGET_SSE2)))
23489 : return -1;
23490 : return 2720; /* *negv8bf2 */
23491 :
23492 : case 12:
23493 : if (!(
23494 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23495 : (TARGET_SSE) &&
23496 : #line 417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23497 : (TARGET_AVX512F)))
23498 : return -1;
23499 : return 2722; /* *negv32hf2 */
23500 :
23501 : case 13:
23502 : if (!(
23503 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23504 : (TARGET_SSE) &&
23505 : #line 418 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23506 : (TARGET_AVX)))
23507 : return -1;
23508 : return 2724; /* *negv16hf2 */
23509 :
23510 : case 14:
23511 : if (!(
23512 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23513 : (TARGET_SSE) &&
23514 : #line 418 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23515 : (TARGET_SSE2)))
23516 : return -1;
23517 : return 2726; /* *negv8hf2 */
23518 :
23519 : case 15:
23520 : if (!(
23521 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23522 : (TARGET_SSE) &&
23523 : #line 419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23524 : (TARGET_AVX512F)))
23525 : return -1;
23526 : return 2728; /* *negv16sf2 */
23527 :
23528 : case 16:
23529 : if (!(
23530 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23531 : (TARGET_SSE) &&
23532 : #line 419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23533 : (TARGET_AVX)))
23534 : return -1;
23535 : return 2730; /* *negv8sf2 */
23536 :
23537 : case 17:
23538 : if (!
23539 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23540 : (TARGET_SSE))
23541 : return -1;
23542 : return 2732; /* *negv4sf2 */
23543 :
23544 : case 18:
23545 : if (!(
23546 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23547 : (TARGET_SSE) &&
23548 : #line 420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23549 : (TARGET_AVX512F)))
23550 : return -1;
23551 : return 2734; /* *negv8df2 */
23552 :
23553 : case 19:
23554 : if (!(
23555 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23556 : (TARGET_SSE) &&
23557 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23558 : (TARGET_AVX)))
23559 : return -1;
23560 : return 2736; /* *negv4df2 */
23561 :
23562 : case 20:
23563 : if (!(
23564 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23565 : (TARGET_SSE) &&
23566 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23567 : (TARGET_SSE2)))
23568 : return -1;
23569 : return 2738; /* *negv2df2 */
23570 :
23571 : default:
23572 : return -1;
23573 : }
23574 :
23575 : case 2:
23576 : if (!
23577 : #line 14731 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23578 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
23579 : return -1;
23580 : return 1005; /* *negqi_1_slp */
23581 :
23582 : case 3:
23583 : if (!
23584 : #line 14731 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23585 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
23586 : return -1;
23587 : return 1006; /* *neghi_1_slp */
23588 :
23589 : default:
23590 : return -1;
23591 : }
23592 :
23593 : case ABS:
23594 : switch (pattern380 (x1))
23595 : {
23596 : case 0:
23597 : if ((
23598 : #line 14989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23599 : (TARGET_CMOVE
23600 : && ix86_pre_reload_split ()) &&
23601 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23602 : (!TARGET_64BIT)))
23603 : return 1029; /* *nabsdi2_doubleword */
23604 : if (!(
23605 : #line 15060 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23606 : (TARGET_CMOVE
23607 : && (DImode != QImode || !TARGET_PARTIAL_REG_STALL)
23608 : && ix86_pre_reload_split ()) &&
23609 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23610 : (TARGET_64BIT)))
23611 : return -1;
23612 : return 1038; /* *nabsdi2_1 */
23613 :
23614 : case 1:
23615 : if (!(
23616 : #line 14989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23617 : (TARGET_CMOVE
23618 : && ix86_pre_reload_split ()) &&
23619 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23620 : (TARGET_64BIT)))
23621 : return -1;
23622 : return 1030; /* *nabsti2_doubleword */
23623 :
23624 : case 2:
23625 : if (!
23626 : #line 15060 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23627 : (TARGET_CMOVE
23628 : && (QImode != QImode || !TARGET_PARTIAL_REG_STALL)
23629 : && ix86_pre_reload_split ()))
23630 : return -1;
23631 : return 1035; /* *nabsqi2_1 */
23632 :
23633 : case 3:
23634 : if (!
23635 : #line 15060 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23636 : (TARGET_CMOVE
23637 : && (HImode != QImode || !TARGET_PARTIAL_REG_STALL)
23638 : && ix86_pre_reload_split ()))
23639 : return -1;
23640 : return 1036; /* *nabshi2_1 */
23641 :
23642 : case 4:
23643 : if (!
23644 : #line 15060 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23645 : (TARGET_CMOVE
23646 : && (SImode != QImode || !TARGET_PARTIAL_REG_STALL)
23647 : && ix86_pre_reload_split ()))
23648 : return -1;
23649 : return 1037; /* *nabssi2_1 */
23650 :
23651 : case 5:
23652 : switch (GET_MODE (operands[0]))
23653 : {
23654 : case E_TFmode:
23655 : if (pattern1061 (x3,
23656 : E_TFmode) != 0
23657 : || !
23658 : #line 15118 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23659 : (TARGET_SSE))
23660 : return -1;
23661 : return 1041; /* *nabstf2_1 */
23662 :
23663 : case E_SFmode:
23664 : if (pattern1062 (x3,
23665 : E_V4SFmode,
23666 : E_SFmode) != 0
23667 : || !
23668 : #line 15254 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23669 : (SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH))
23670 : return -1;
23671 : return 1054; /* *nabssf2_1 */
23672 :
23673 : case E_DFmode:
23674 : if (pattern1062 (x3,
23675 : E_V2DFmode,
23676 : E_DFmode) != 0
23677 : || !
23678 : #line 15254 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23679 : (SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH))
23680 : return -1;
23681 : return 1055; /* *nabsdf2_1 */
23682 :
23683 : case E_V2SFmode:
23684 : if (pattern1063 (x3) != 0
23685 : || !
23686 : #line 723 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23687 : (TARGET_MMX_WITH_SSE))
23688 : return -1;
23689 : return 2107; /* *mmx_nabsv2sf2 */
23690 :
23691 : case E_V2BFmode:
23692 : if (pattern1064 (x3,
23693 : E_V2BFmode) != 0
23694 : || !
23695 : #line 2280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23696 : (TARGET_SSE))
23697 : return -1;
23698 : return 2159; /* *mmx_nabsv2bf2 */
23699 :
23700 : case E_V4BFmode:
23701 : if (pattern1064 (x3,
23702 : E_V4BFmode) != 0
23703 : || !(
23704 : #line 2280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23705 : (TARGET_SSE) &&
23706 : #line 2248 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23707 : (TARGET_MMX_WITH_SSE)))
23708 : return -1;
23709 : return 2160; /* *mmx_nabsv4bf2 */
23710 :
23711 : case E_V2HFmode:
23712 : if (pattern1064 (x3,
23713 : E_V2HFmode) != 0
23714 : || !
23715 : #line 2280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23716 : (TARGET_SSE))
23717 : return -1;
23718 : return 2161; /* *mmx_nabsv2hf2 */
23719 :
23720 : case E_V4HFmode:
23721 : if (pattern1064 (x3,
23722 : E_V4HFmode) != 0
23723 : || !(
23724 : #line 2280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23725 : (TARGET_SSE) &&
23726 : #line 2249 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23727 : (TARGET_MMX_WITH_SSE)))
23728 : return -1;
23729 : return 2162; /* *mmx_nabsv4hf2 */
23730 :
23731 : case E_V16SFmode:
23732 : if (pattern1061 (x3,
23733 : E_V16SFmode) != 0
23734 : || !(
23735 : #line 2634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23736 : (TARGET_SSE) &&
23737 : #line 382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23738 : (TARGET_AVX512F)))
23739 : return -1;
23740 : return 2739; /* *nabsv16sf2 */
23741 :
23742 : case E_V8SFmode:
23743 : if (pattern1061 (x3,
23744 : E_V8SFmode) != 0
23745 : || !(
23746 : #line 2634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23747 : (TARGET_SSE) &&
23748 : #line 382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23749 : (TARGET_AVX)))
23750 : return -1;
23751 : return 2740; /* *nabsv8sf2 */
23752 :
23753 : case E_V4SFmode:
23754 : if (pattern1061 (x3,
23755 : E_V4SFmode) != 0
23756 : || !
23757 : #line 2634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23758 : (TARGET_SSE))
23759 : return -1;
23760 : return 2741; /* *nabsv4sf2 */
23761 :
23762 : case E_V8DFmode:
23763 : if (pattern1061 (x3,
23764 : E_V8DFmode) != 0
23765 : || !(
23766 : #line 2634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23767 : (TARGET_SSE) &&
23768 : #line 383 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23769 : (TARGET_AVX512F)))
23770 : return -1;
23771 : return 2742; /* *nabsv8df2 */
23772 :
23773 : case E_V4DFmode:
23774 : if (pattern1061 (x3,
23775 : E_V4DFmode) != 0
23776 : || !(
23777 : #line 2634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23778 : (TARGET_SSE) &&
23779 : #line 383 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23780 : (TARGET_AVX)))
23781 : return -1;
23782 : return 2743; /* *nabsv4df2 */
23783 :
23784 : case E_V2DFmode:
23785 : if (pattern1061 (x3,
23786 : E_V2DFmode) != 0
23787 : || !(
23788 : #line 2634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23789 : (TARGET_SSE) &&
23790 : #line 384 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23791 : (TARGET_SSE2)))
23792 : return -1;
23793 : return 2744; /* *nabsv2df2 */
23794 :
23795 : default:
23796 : return -1;
23797 : }
23798 :
23799 : default:
23800 : return -1;
23801 : }
23802 :
23803 : case LTU:
23804 : case UNLT:
23805 : operands[1] = x4;
23806 : if (pattern575 (operands[1]) != 0
23807 : || pattern344 (x1) != 0)
23808 : return -1;
23809 : switch (GET_MODE (operands[0]))
23810 : {
23811 : case E_QImode:
23812 : if (!register_operand (operands[0], E_QImode)
23813 : || GET_MODE (x3) != E_QImode)
23814 : return -1;
23815 : return 1833; /* *x86_movqicc_0_m1_neg */
23816 :
23817 : case E_HImode:
23818 : if (!register_operand (operands[0], E_HImode)
23819 : || GET_MODE (x3) != E_HImode)
23820 : return -1;
23821 : return 1834; /* *x86_movhicc_0_m1_neg */
23822 :
23823 : case E_SImode:
23824 : if (!register_operand (operands[0], E_SImode)
23825 : || GET_MODE (x3) != E_SImode)
23826 : return -1;
23827 : return 1835; /* *x86_movsicc_0_m1_neg */
23828 :
23829 : case E_DImode:
23830 : if (!register_operand (operands[0], E_DImode)
23831 : || GET_MODE (x3) != E_DImode
23832 : || !
23833 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23834 : (TARGET_64BIT))
23835 : return -1;
23836 : return 1836; /* *x86_movdicc_0_m1_neg */
23837 :
23838 : default:
23839 : return -1;
23840 : }
23841 :
23842 : default:
23843 : return -1;
23844 : }
23845 : }
23846 :
23847 : int
23848 : recog_433 (rtx x1 ATTRIBUTE_UNUSED,
23849 : rtx_insn *insn ATTRIBUTE_UNUSED,
23850 : int *pnum_clobbers ATTRIBUTE_UNUSED)
23851 : {
23852 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
23853 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
23854 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
23855 : rtx x18, x19, x20;
23856 : int res ATTRIBUTE_UNUSED;
23857 : x2 = XVECEXP (x1, 0, 1);
23858 : if (GET_CODE (x2) != SET)
23859 : return -1;
23860 : x3 = XVECEXP (x1, 0, 0);
23861 : x4 = XEXP (x3, 0);
23862 : operands[0] = x4;
23863 : x5 = XEXP (x3, 1);
23864 : switch (XVECLEN (x5, 0))
23865 : {
23866 : case 1:
23867 : if (XINT (x5, 1) != 10
23868 : || GET_MODE (x5) != E_DImode)
23869 : return -1;
23870 : x6 = XVECEXP (x5, 0, 0);
23871 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
23872 : return -1;
23873 : x7 = XEXP (x2, 1);
23874 : if (pattern824 (x7,
23875 : E_DImode,
23876 : 10,
23877 : 1,
23878 : UNSPEC_VOLATILE) != 0
23879 : || pattern1182 (x1,
23880 : E_SImode,
23881 : 10) != 0
23882 : || !register_operand (operands[0], E_DImode))
23883 : return -1;
23884 : x8 = XEXP (x2, 0);
23885 : operands[1] = x8;
23886 : if (!register_operand (operands[1], E_DImode))
23887 : return -1;
23888 : x9 = XVECEXP (x1, 0, 2);
23889 : x10 = XEXP (x9, 0);
23890 : operands[2] = x10;
23891 : if (!register_operand (operands[2], E_SImode)
23892 : || !
23893 : #line 29838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23894 : (TARGET_64BIT))
23895 : return -1;
23896 : return 1953; /* rdtscp_rex64 */
23897 :
23898 : case 5:
23899 : if (XINT (x5, 1) != 109)
23900 : return -1;
23901 : x7 = XEXP (x2, 1);
23902 : if (GET_CODE (x7) != UNSPEC_VOLATILE
23903 : || XVECLEN (x7, 0) != 1
23904 : || XINT (x7, 1) != 109
23905 : || pattern1182 (x1,
23906 : E_CCZmode,
23907 : 109) != 0)
23908 : return -1;
23909 : x9 = XVECEXP (x1, 0, 2);
23910 : x10 = XEXP (x9, 0);
23911 : if (GET_CODE (x10) != REG
23912 : || REGNO (x10) != 17
23913 : || GET_MODE (x10) != E_CCZmode)
23914 : return -1;
23915 : x6 = XVECEXP (x5, 0, 0);
23916 : operands[1] = x6;
23917 : x11 = XVECEXP (x5, 0, 1);
23918 : operands[2] = x11;
23919 : x12 = XVECEXP (x5, 0, 2);
23920 : operands[3] = x12;
23921 : x13 = XVECEXP (x5, 0, 3);
23922 : operands[4] = x13;
23923 : x14 = XVECEXP (x5, 0, 4);
23924 : operands[5] = x14;
23925 : if (!const_int_operand (operands[5], E_SImode))
23926 : return -1;
23927 : x8 = XEXP (x2, 0);
23928 : if (!rtx_equal_p (x8, operands[1]))
23929 : return -1;
23930 : switch (GET_MODE (operands[0]))
23931 : {
23932 : case E_DImode:
23933 : if (pattern1866 (x1,
23934 : E_DImode,
23935 : E_SImode) != 0
23936 : || !(
23937 : #line 486 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
23938 : (TARGET_CMPXCHG8B) &&
23939 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23940 : (!TARGET_64BIT)))
23941 : return -1;
23942 : return 11073; /* atomic_compare_and_swapdi_doubleword */
23943 :
23944 : case E_TImode:
23945 : if (pattern1866 (x1,
23946 : E_TImode,
23947 : E_DImode) != 0
23948 : || !(
23949 : #line 486 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
23950 : (TARGET_CMPXCHG16B) &&
23951 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23952 : (TARGET_64BIT)))
23953 : return -1;
23954 : return 11074; /* atomic_compare_and_swapti_doubleword */
23955 :
23956 : default:
23957 : return -1;
23958 : }
23959 :
23960 : case 4:
23961 : x7 = XEXP (x2, 1);
23962 : if (GET_CODE (x7) != UNSPEC_VOLATILE
23963 : || XVECLEN (x7, 0) != 1)
23964 : return -1;
23965 : x15 = XVECEXP (x7, 0, 0);
23966 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
23967 : return -1;
23968 : x9 = XVECEXP (x1, 0, 2);
23969 : if (GET_CODE (x9) != SET)
23970 : return -1;
23971 : x10 = XEXP (x9, 0);
23972 : if (GET_CODE (x10) != REG
23973 : || REGNO (x10) != 17)
23974 : return -1;
23975 : x6 = XVECEXP (x5, 0, 0);
23976 : operands[1] = x6;
23977 : x11 = XVECEXP (x5, 0, 1);
23978 : operands[2] = x11;
23979 : x12 = XVECEXP (x5, 0, 2);
23980 : operands[3] = x12;
23981 : x13 = XVECEXP (x5, 0, 3);
23982 : operands[4] = x13;
23983 : x8 = XEXP (x2, 0);
23984 : if (!rtx_equal_p (x8, operands[1]))
23985 : return -1;
23986 : switch (XINT (x5, 1))
23987 : {
23988 : case 109:
23989 : if (XINT (x7, 1) != 109)
23990 : return -1;
23991 : x16 = XEXP (x9, 1);
23992 : if (pattern1181 (x16,
23993 : E_CCZmode,
23994 : 109) != 0
23995 : || !const_int_operand (operands[4], E_SImode)
23996 : || GET_MODE (x10) != E_CCZmode)
23997 : return -1;
23998 : switch (GET_MODE (operands[0]))
23999 : {
24000 : case E_QImode:
24001 : if (pattern1855 (x1,
24002 : E_QImode) != 0
24003 : || !
24004 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
24005 : (TARGET_CMPXCHG))
24006 : return -1;
24007 : return 11075; /* atomic_compare_and_swapqi_1 */
24008 :
24009 : case E_HImode:
24010 : if (pattern1855 (x1,
24011 : E_HImode) != 0
24012 : || !
24013 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
24014 : (TARGET_CMPXCHG))
24015 : return -1;
24016 : return 11076; /* atomic_compare_and_swaphi_1 */
24017 :
24018 : case E_SImode:
24019 : if (pattern1855 (x1,
24020 : E_SImode) != 0
24021 : || !
24022 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
24023 : (TARGET_CMPXCHG))
24024 : return -1;
24025 : return 11077; /* atomic_compare_and_swapsi_1 */
24026 :
24027 : case E_DImode:
24028 : if (pattern1855 (x1,
24029 : E_DImode) != 0
24030 : || !(
24031 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
24032 : (TARGET_CMPXCHG) &&
24033 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24034 : (TARGET_64BIT)))
24035 : return -1;
24036 : return 11078; /* atomic_compare_and_swapdi_1 */
24037 :
24038 : default:
24039 : return -1;
24040 : }
24041 :
24042 : case 112:
24043 : if (XINT (x7, 1) != 112)
24044 : return -1;
24045 : x16 = XEXP (x9, 1);
24046 : if (GET_CODE (x16) != COMPARE
24047 : || GET_MODE (x16) != E_CCmode
24048 : || !const_0_to_15_operand (operands[4], E_SImode)
24049 : || GET_MODE (x10) != E_CCmode)
24050 : return -1;
24051 : x17 = XEXP (x16, 0);
24052 : if (!rtx_equal_p (x17, operands[1]))
24053 : return -1;
24054 : x18 = XEXP (x16, 1);
24055 : if (!rtx_equal_p (x18, operands[2]))
24056 : return -1;
24057 : switch (GET_MODE (operands[0]))
24058 : {
24059 : case E_SImode:
24060 : if (pattern1855 (x1,
24061 : E_SImode) != 0
24062 : || !
24063 : #line 1119 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
24064 : (TARGET_CMPCCXADD && TARGET_64BIT))
24065 : return -1;
24066 : return 11148; /* cmpccxadd_si */
24067 :
24068 : case E_DImode:
24069 : if (pattern1855 (x1,
24070 : E_DImode) != 0
24071 : || !
24072 : #line 1119 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
24073 : (TARGET_CMPCCXADD && TARGET_64BIT))
24074 : return -1;
24075 : return 11149; /* cmpccxadd_di */
24076 :
24077 : default:
24078 : return -1;
24079 : }
24080 :
24081 : default:
24082 : return -1;
24083 : }
24084 :
24085 : case 2:
24086 : if (XINT (x5, 1) != 110)
24087 : return -1;
24088 : x7 = XEXP (x2, 1);
24089 : if (GET_CODE (x7) != PLUS)
24090 : return -1;
24091 : x9 = XVECEXP (x1, 0, 2);
24092 : if (pattern953 (x9,
24093 : E_CCmode,
24094 : 17) != 0)
24095 : return -1;
24096 : x6 = XVECEXP (x5, 0, 0);
24097 : operands[1] = x6;
24098 : x11 = XVECEXP (x5, 0, 1);
24099 : operands[3] = x11;
24100 : if (!const_int_operand (operands[3], E_SImode))
24101 : return -1;
24102 : x19 = XEXP (x7, 1);
24103 : operands[2] = x19;
24104 : x20 = XEXP (x7, 0);
24105 : if (!rtx_equal_p (x20, operands[1]))
24106 : return -1;
24107 : x8 = XEXP (x2, 0);
24108 : if (!rtx_equal_p (x8, operands[1]))
24109 : return -1;
24110 : switch (GET_MODE (operands[0]))
24111 : {
24112 : case E_QImode:
24113 : if (pattern1581 (x1,
24114 : E_QImode) != 0
24115 : || !
24116 : #line 703 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
24117 : (TARGET_XADD))
24118 : return -1;
24119 : return 11079; /* atomic_fetch_addqi */
24120 :
24121 : case E_HImode:
24122 : if (pattern1581 (x1,
24123 : E_HImode) != 0
24124 : || !
24125 : #line 703 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
24126 : (TARGET_XADD))
24127 : return -1;
24128 : return 11080; /* atomic_fetch_addhi */
24129 :
24130 : case E_SImode:
24131 : if (pattern1581 (x1,
24132 : E_SImode) != 0
24133 : || !
24134 : #line 703 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
24135 : (TARGET_XADD))
24136 : return -1;
24137 : return 11081; /* atomic_fetch_addsi */
24138 :
24139 : case E_DImode:
24140 : if (pattern1581 (x1,
24141 : E_DImode) != 0
24142 : || !(
24143 : #line 703 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
24144 : (TARGET_XADD) &&
24145 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24146 : (TARGET_64BIT)))
24147 : return -1;
24148 : return 11082; /* atomic_fetch_adddi */
24149 :
24150 : default:
24151 : return -1;
24152 : }
24153 :
24154 : default:
24155 : return -1;
24156 : }
24157 : }
24158 :
24159 : int
24160 : recog_445 (rtx x1 ATTRIBUTE_UNUSED,
24161 : rtx_insn *insn ATTRIBUTE_UNUSED,
24162 : int *pnum_clobbers ATTRIBUTE_UNUSED)
24163 : {
24164 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
24165 : rtx x2, x3, x4, x5;
24166 : int res ATTRIBUTE_UNUSED;
24167 : x2 = XEXP (x1, 1);
24168 : switch (GET_CODE (x2))
24169 : {
24170 : case IF_THEN_ELSE:
24171 : res = recog_2 (x1, insn, pnum_clobbers);
24172 : if (res >= 0)
24173 : return res;
24174 : break;
24175 :
24176 : case COMPARE:
24177 : res = recog_6 (x1, insn, pnum_clobbers);
24178 : if (res >= 0)
24179 : return res;
24180 : break;
24181 :
24182 : case UNSPEC:
24183 : res = recog_15 (x1, insn, pnum_clobbers);
24184 : if (res >= 0)
24185 : return res;
24186 : break;
24187 :
24188 : case CONST_INT:
24189 : case CONST_WIDE_INT:
24190 : case CONST_POLY_INT:
24191 : case CONST_FIXED:
24192 : case CONST_DOUBLE:
24193 : case CONST_VECTOR:
24194 : case CONST:
24195 : case REG:
24196 : case SUBREG:
24197 : case MEM:
24198 : case LABEL_REF:
24199 : case SYMBOL_REF:
24200 : case HIGH:
24201 : res = recog_21 (x1, insn, pnum_clobbers);
24202 : if (res >= 0)
24203 : return res;
24204 : break;
24205 :
24206 : case ASHIFTRT:
24207 : case LSHIFTRT:
24208 : case SIGN_EXTRACT:
24209 : case ZERO_EXTRACT:
24210 : res = recog_26 (x1, insn, pnum_clobbers);
24211 : if (res >= 0)
24212 : return res;
24213 : break;
24214 :
24215 : case IOR:
24216 : res = recog_27 (x1, insn, pnum_clobbers);
24217 : if (res >= 0)
24218 : return res;
24219 : break;
24220 :
24221 : case XOR:
24222 : res = recog_28 (x1, insn, pnum_clobbers);
24223 : if (res >= 0)
24224 : return res;
24225 : break;
24226 :
24227 : case ZERO_EXTEND:
24228 : res = recog_30 (x1, insn, pnum_clobbers);
24229 : if (res >= 0)
24230 : return res;
24231 : break;
24232 :
24233 : case SIGN_EXTEND:
24234 : res = recog_31 (x1, insn, pnum_clobbers);
24235 : if (res >= 0)
24236 : return res;
24237 : break;
24238 :
24239 : case FLOAT_EXTEND:
24240 : res = recog_32 (x1, insn, pnum_clobbers);
24241 : if (res >= 0)
24242 : return res;
24243 : break;
24244 :
24245 : case FLOAT_TRUNCATE:
24246 : res = recog_33 (x1, insn, pnum_clobbers);
24247 : if (res >= 0)
24248 : return res;
24249 : break;
24250 :
24251 : case FIX:
24252 : res = recog_34 (x1, insn, pnum_clobbers);
24253 : if (res >= 0)
24254 : return res;
24255 : break;
24256 :
24257 : case UNSIGNED_FIX:
24258 : res = recog_35 (x1, insn, pnum_clobbers);
24259 : if (res >= 0)
24260 : return res;
24261 : break;
24262 :
24263 : case FLOAT:
24264 : res = recog_36 (x1, insn, pnum_clobbers);
24265 : if (res >= 0)
24266 : return res;
24267 : break;
24268 :
24269 : case UNSIGNED_FLOAT:
24270 : res = recog_37 (x1, insn, pnum_clobbers);
24271 : if (res >= 0)
24272 : return res;
24273 : break;
24274 :
24275 : case AND:
24276 : res = recog_42 (x1, insn, pnum_clobbers);
24277 : if (res >= 0)
24278 : return res;
24279 : break;
24280 :
24281 : case NOT:
24282 : res = recog_43 (x1, insn, pnum_clobbers);
24283 : if (res >= 0)
24284 : return res;
24285 : break;
24286 :
24287 : case NEG:
24288 : res = recog_44 (x1, insn, pnum_clobbers);
24289 : if (res >= 0)
24290 : return res;
24291 : break;
24292 :
24293 : case ABS:
24294 : res = recog_45 (x1, insn, pnum_clobbers);
24295 : if (res >= 0)
24296 : return res;
24297 : break;
24298 :
24299 : case ASHIFT:
24300 : res = recog_46 (x1, insn, pnum_clobbers);
24301 : if (res >= 0)
24302 : return res;
24303 : break;
24304 :
24305 : case ROTATE:
24306 : res = recog_47 (x1, insn, pnum_clobbers);
24307 : if (res >= 0)
24308 : return res;
24309 : break;
24310 :
24311 : case ROTATERT:
24312 : res = recog_48 (x1, insn, pnum_clobbers);
24313 : if (res >= 0)
24314 : return res;
24315 : break;
24316 :
24317 : case NE:
24318 : case EQ:
24319 : case GE:
24320 : case GT:
24321 : case LE:
24322 : case LT:
24323 : case LTGT:
24324 : case GEU:
24325 : case GTU:
24326 : case LEU:
24327 : case LTU:
24328 : case UNORDERED:
24329 : case ORDERED:
24330 : case UNEQ:
24331 : case UNGE:
24332 : case UNGT:
24333 : case UNLE:
24334 : case UNLT:
24335 : res = recog_54 (x1, insn, pnum_clobbers);
24336 : if (res >= 0)
24337 : return res;
24338 : break;
24339 :
24340 : case POPCOUNT:
24341 : res = recog_55 (x1, insn, pnum_clobbers);
24342 : if (res >= 0)
24343 : return res;
24344 : break;
24345 :
24346 : case BSWAP:
24347 : if (GET_MODE (x2) == E_HImode)
24348 : {
24349 : x3 = XEXP (x1, 0);
24350 : operands[0] = x3;
24351 : x4 = XEXP (x2, 0);
24352 : operands[1] = x4;
24353 : if (nonimmediate_operand (operands[1], E_HImode)
24354 : && nonimmediate_operand (operands[0], E_HImode)
24355 : &&
24356 : #line 22970 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24357 : (TARGET_MOVBE
24358 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
24359 : return 1678; /* *bswaphi2_movbe */
24360 : if (register_operand (operands[1], E_HImode)
24361 : && register_operand (operands[0], E_HImode)
24362 : &&
24363 : #line 22989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24364 : (!TARGET_MOVBE))
24365 : return 1679; /* *bswaphi2 */
24366 : }
24367 : break;
24368 :
24369 : case PLUS:
24370 : case MINUS:
24371 : case MULT:
24372 : case DIV:
24373 : res = recog_62 (x1, insn, pnum_clobbers);
24374 : if (res >= 0)
24375 : return res;
24376 : break;
24377 :
24378 : case SQRT:
24379 : res = recog_359 (x1, insn, pnum_clobbers);
24380 : if (res >= 0)
24381 : return res;
24382 : break;
24383 :
24384 : case SMAX:
24385 : switch (pattern7 (x1, pnum_clobbers))
24386 : {
24387 : case 0:
24388 : if (
24389 : #line 27185 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24390 : (SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH))
24391 : return 1849; /* smaxsf3 */
24392 : break;
24393 :
24394 : case 1:
24395 : if (
24396 : #line 27185 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24397 : (SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH))
24398 : return 1851; /* smaxdf3 */
24399 : break;
24400 :
24401 : case 2:
24402 : if (
24403 : #line 27199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24404 : (TARGET_AVX512FP16))
24405 : return 1853; /* smaxhf3 */
24406 : break;
24407 :
24408 : case 3:
24409 : if ((
24410 : #line 27362 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24411 : (TARGET_CMOVE
24412 : && ix86_pre_reload_split ()) &&
24413 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24414 : (TARGET_64BIT)))
24415 : {
24416 : *pnum_clobbers = 1;
24417 : return 1869; /* *smaxti3_doubleword */
24418 : }
24419 : break;
24420 :
24421 : case 4:
24422 : if (
24423 : #line 27420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24424 : (TARGET_CMOVE
24425 : && (QImode != QImode || !TARGET_PARTIAL_REG_STALL)
24426 : && ix86_pre_reload_split ()))
24427 : {
24428 : *pnum_clobbers = 1;
24429 : return 1873; /* *smaxqi3_1 */
24430 : }
24431 : break;
24432 :
24433 : case 5:
24434 : if (
24435 : #line 27420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24436 : (TARGET_CMOVE
24437 : && (HImode != QImode || !TARGET_PARTIAL_REG_STALL)
24438 : && ix86_pre_reload_split ()))
24439 : {
24440 : *pnum_clobbers = 1;
24441 : return 1877; /* *smaxhi3_1 */
24442 : }
24443 : break;
24444 :
24445 : case 6:
24446 : if (
24447 : #line 3687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24448 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
24449 : return 2224; /* smaxv8qi3 */
24450 : break;
24451 :
24452 : case 7:
24453 : if (
24454 : #line 3687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24455 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
24456 : return 2226; /* smaxv2si3 */
24457 : break;
24458 :
24459 : case 8:
24460 : if (
24461 : #line 3712 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24462 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
24463 : && (TARGET_SSE || TARGET_3DNOW_A)
24464 : && ix86_binary_operator_ok (SMAX, V4HImode, operands)))
24465 : return 2228; /* *mmx_smaxv4hi3 */
24466 : break;
24467 :
24468 : case 9:
24469 : if (
24470 : #line 3736 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24471 : (TARGET_SSE4_1))
24472 : return 2230; /* smaxv4qi3 */
24473 : break;
24474 :
24475 : case 10:
24476 : if (
24477 : #line 3736 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24478 : (TARGET_SSE4_1))
24479 : return 2232; /* smaxv2qi3 */
24480 : break;
24481 :
24482 : case 11:
24483 : if (
24484 : #line 3752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24485 : (TARGET_SSE2))
24486 : return 2234; /* smaxv2hi3 */
24487 : break;
24488 :
24489 : default:
24490 : break;
24491 : }
24492 : break;
24493 :
24494 : case SMIN:
24495 : switch (pattern7 (x1, pnum_clobbers))
24496 : {
24497 : case 0:
24498 : if (
24499 : #line 27185 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24500 : (SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH))
24501 : return 1850; /* sminsf3 */
24502 : break;
24503 :
24504 : case 1:
24505 : if (
24506 : #line 27185 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24507 : (SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH))
24508 : return 1852; /* smindf3 */
24509 : break;
24510 :
24511 : case 2:
24512 : if (
24513 : #line 27199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24514 : (TARGET_AVX512FP16))
24515 : return 1854; /* sminhf3 */
24516 : break;
24517 :
24518 : case 3:
24519 : if ((
24520 : #line 27362 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24521 : (TARGET_CMOVE
24522 : && ix86_pre_reload_split ()) &&
24523 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24524 : (TARGET_64BIT)))
24525 : {
24526 : *pnum_clobbers = 1;
24527 : return 1870; /* *sminti3_doubleword */
24528 : }
24529 : break;
24530 :
24531 : case 4:
24532 : if (
24533 : #line 27420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24534 : (TARGET_CMOVE
24535 : && (QImode != QImode || !TARGET_PARTIAL_REG_STALL)
24536 : && ix86_pre_reload_split ()))
24537 : {
24538 : *pnum_clobbers = 1;
24539 : return 1874; /* *sminqi3_1 */
24540 : }
24541 : break;
24542 :
24543 : case 5:
24544 : if (
24545 : #line 27420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24546 : (TARGET_CMOVE
24547 : && (HImode != QImode || !TARGET_PARTIAL_REG_STALL)
24548 : && ix86_pre_reload_split ()))
24549 : {
24550 : *pnum_clobbers = 1;
24551 : return 1878; /* *sminhi3_1 */
24552 : }
24553 : break;
24554 :
24555 : case 6:
24556 : if (
24557 : #line 3687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24558 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
24559 : return 2225; /* sminv8qi3 */
24560 : break;
24561 :
24562 : case 7:
24563 : if (
24564 : #line 3687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24565 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
24566 : return 2227; /* sminv2si3 */
24567 : break;
24568 :
24569 : case 8:
24570 : if (
24571 : #line 3712 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24572 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
24573 : && (TARGET_SSE || TARGET_3DNOW_A)
24574 : && ix86_binary_operator_ok (SMIN, V4HImode, operands)))
24575 : return 2229; /* *mmx_sminv4hi3 */
24576 : break;
24577 :
24578 : case 9:
24579 : if (
24580 : #line 3736 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24581 : (TARGET_SSE4_1))
24582 : return 2231; /* sminv4qi3 */
24583 : break;
24584 :
24585 : case 10:
24586 : if (
24587 : #line 3736 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24588 : (TARGET_SSE4_1))
24589 : return 2233; /* sminv2qi3 */
24590 : break;
24591 :
24592 : case 11:
24593 : if (
24594 : #line 3752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24595 : (TARGET_SSE2))
24596 : return 2235; /* sminv2hi3 */
24597 : break;
24598 :
24599 : default:
24600 : break;
24601 : }
24602 : break;
24603 :
24604 : case UMAX:
24605 : res = recog_362 (x1, insn, pnum_clobbers);
24606 : if (res >= 0)
24607 : return res;
24608 : break;
24609 :
24610 : case UMIN:
24611 : res = recog_361 (x1, insn, pnum_clobbers);
24612 : if (res >= 0)
24613 : return res;
24614 : break;
24615 :
24616 : case UNSPEC_VOLATILE:
24617 : res = recog_63 (x1, insn, pnum_clobbers);
24618 : if (res >= 0)
24619 : return res;
24620 : break;
24621 :
24622 : case VEC_CONCAT:
24623 : res = recog_64 (x1, insn, pnum_clobbers);
24624 : if (res >= 0)
24625 : return res;
24626 : break;
24627 :
24628 : case VEC_MERGE:
24629 : res = recog_65 (x1, insn, pnum_clobbers);
24630 : if (res >= 0)
24631 : return res;
24632 : break;
24633 :
24634 : case VEC_SELECT:
24635 : res = recog_67 (x1, insn, pnum_clobbers);
24636 : if (res >= 0)
24637 : return res;
24638 : break;
24639 :
24640 : case VEC_DUPLICATE:
24641 : res = recog_68 (x1, insn, pnum_clobbers);
24642 : if (res >= 0)
24643 : return res;
24644 : break;
24645 :
24646 : case SS_PLUS:
24647 : res = recog_69 (x1, insn, pnum_clobbers);
24648 : if (res >= 0)
24649 : return res;
24650 : break;
24651 :
24652 : case US_PLUS:
24653 : x3 = XEXP (x1, 0);
24654 : operands[0] = x3;
24655 : switch (pattern47 (x2))
24656 : {
24657 : case 0:
24658 : if (
24659 : #line 3351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24660 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
24661 : && ix86_binary_operator_ok (US_PLUS, V8QImode, operands)))
24662 : return 2195; /* *mmx_usaddv8qi3 */
24663 : break;
24664 :
24665 : case 1:
24666 : if (
24667 : #line 3351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24668 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
24669 : && ix86_binary_operator_ok (US_PLUS, V4HImode, operands)))
24670 : return 2199; /* *mmx_usaddv4hi3 */
24671 : break;
24672 :
24673 : case 2:
24674 : if (
24675 : #line 3367 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24676 : (TARGET_SSE2))
24677 : return 2203; /* usaddv4qi3 */
24678 : break;
24679 :
24680 : case 3:
24681 : if (
24682 : #line 3367 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24683 : (TARGET_SSE2))
24684 : return 2207; /* usaddv2qi3 */
24685 : break;
24686 :
24687 : case 4:
24688 : if (
24689 : #line 3367 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24690 : (TARGET_SSE2))
24691 : return 2211; /* usaddv2hi3 */
24692 : break;
24693 :
24694 : default:
24695 : break;
24696 : }
24697 : break;
24698 :
24699 : case SS_MINUS:
24700 : x3 = XEXP (x1, 0);
24701 : operands[0] = x3;
24702 : x4 = XEXP (x2, 0);
24703 : switch (GET_CODE (x4))
24704 : {
24705 : case REG:
24706 : case SUBREG:
24707 : case MEM:
24708 : switch (pattern47 (x2))
24709 : {
24710 : case 0:
24711 : if (
24712 : #line 3351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24713 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
24714 : && ix86_binary_operator_ok (SS_MINUS, V8QImode, operands)))
24715 : return 2196; /* *mmx_sssubv8qi3 */
24716 : break;
24717 :
24718 : case 1:
24719 : if (
24720 : #line 3351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24721 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
24722 : && ix86_binary_operator_ok (SS_MINUS, V4HImode, operands)))
24723 : return 2200; /* *mmx_sssubv4hi3 */
24724 : break;
24725 :
24726 : case 2:
24727 : if (
24728 : #line 3367 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24729 : (TARGET_SSE2))
24730 : return 2204; /* sssubv4qi3 */
24731 : break;
24732 :
24733 : case 3:
24734 : if (
24735 : #line 3367 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24736 : (TARGET_SSE2))
24737 : return 2208; /* sssubv2qi3 */
24738 : break;
24739 :
24740 : case 4:
24741 : if (
24742 : #line 3367 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24743 : (TARGET_SSE2))
24744 : return 2212; /* sssubv2hi3 */
24745 : break;
24746 :
24747 : default:
24748 : break;
24749 : }
24750 : break;
24751 :
24752 : case VEC_SELECT:
24753 : if (pattern108 (x2) == 0
24754 : &&
24755 : #line 22970 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24756 : ((TARGET_MMX || TARGET_MMX_WITH_SSE) && TARGET_SSSE3))
24757 : return 8642; /* ssse3_phsubswv4hi3 */
24758 : break;
24759 :
24760 : default:
24761 : break;
24762 : }
24763 : break;
24764 :
24765 : case US_MINUS:
24766 : x3 = XEXP (x1, 0);
24767 : operands[0] = x3;
24768 : switch (pattern47 (x2))
24769 : {
24770 : case 0:
24771 : if (
24772 : #line 3351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24773 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
24774 : && ix86_binary_operator_ok (US_MINUS, V8QImode, operands)))
24775 : return 2197; /* *mmx_ussubv8qi3 */
24776 : break;
24777 :
24778 : case 1:
24779 : if (
24780 : #line 3351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24781 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
24782 : && ix86_binary_operator_ok (US_MINUS, V4HImode, operands)))
24783 : return 2201; /* *mmx_ussubv4hi3 */
24784 : break;
24785 :
24786 : case 2:
24787 : if (
24788 : #line 3367 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24789 : (TARGET_SSE2))
24790 : return 2205; /* ussubv4qi3 */
24791 : break;
24792 :
24793 : case 3:
24794 : if (
24795 : #line 3367 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24796 : (TARGET_SSE2))
24797 : return 2209; /* ussubv2qi3 */
24798 : break;
24799 :
24800 : case 4:
24801 : if (
24802 : #line 3367 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24803 : (TARGET_SSE2))
24804 : return 2213; /* ussubv2hi3 */
24805 : break;
24806 :
24807 : default:
24808 : break;
24809 : }
24810 : break;
24811 :
24812 : case TRUNCATE:
24813 : res = recog_70 (x1, insn, pnum_clobbers);
24814 : if (res >= 0)
24815 : return res;
24816 : break;
24817 :
24818 : case FMA:
24819 : res = recog_71 (x1, insn, pnum_clobbers);
24820 : if (res >= 0)
24821 : return res;
24822 : break;
24823 :
24824 : case SS_TRUNCATE:
24825 : switch (pattern11 (x1))
24826 : {
24827 : case 0:
24828 : if (
24829 : #line 15725 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24830 : (TARGET_AVX512VL))
24831 : return 7331; /* *avx512vl_ss_truncatev2div2qi2_store_1 */
24832 : break;
24833 :
24834 : case 1:
24835 : if (
24836 : #line 15820 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24837 : (TARGET_AVX512VL))
24838 : return 7346; /* *avx512vl_ss_truncatev4siv4qi2_store_1 */
24839 : break;
24840 :
24841 : case 2:
24842 : if (
24843 : #line 15820 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24844 : (TARGET_AVX512VL))
24845 : return 7349; /* *avx512vl_ss_truncatev4div4qi2_store_1 */
24846 : break;
24847 :
24848 : case 3:
24849 : if ((
24850 : #line 15918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24851 : (TARGET_AVX512VL) &&
24852 : #line 15912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24853 : (TARGET_AVX512BW)))
24854 : return 7376; /* *avx512vl_ss_truncatev8hiv8qi2_store_1 */
24855 : break;
24856 :
24857 : case 4:
24858 : if (
24859 : #line 15918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24860 : (TARGET_AVX512VL))
24861 : return 7379; /* *avx512vl_ss_truncatev8siv8qi2_store_1 */
24862 : break;
24863 :
24864 : case 5:
24865 : if (
24866 : #line 16434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24867 : (TARGET_AVX512F))
24868 : return 7483; /* *avx512f_ss_truncatev8div16qi2_store_1 */
24869 : break;
24870 :
24871 : case 6:
24872 : if (
24873 : #line 16080 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24874 : (TARGET_AVX512VL))
24875 : return 7416; /* *avx512vl_ss_truncatev4siv4hi2_store_1 */
24876 : break;
24877 :
24878 : case 7:
24879 : if (
24880 : #line 16080 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24881 : (TARGET_AVX512VL))
24882 : return 7419; /* *avx512vl_ss_truncatev4div4hi2_store_1 */
24883 : break;
24884 :
24885 : case 8:
24886 : if (
24887 : #line 16171 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24888 : (TARGET_AVX512VL))
24889 : return 7446; /* *avx512vl_ss_truncatev2div2hi2_store_1 */
24890 : break;
24891 :
24892 : case 9:
24893 : if (
24894 : #line 16321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24895 : (TARGET_AVX512VL))
24896 : return 7465; /* *avx512vl_ss_truncatev2div2si2_store_1 */
24897 : break;
24898 :
24899 : default:
24900 : break;
24901 : }
24902 : break;
24903 :
24904 : case US_TRUNCATE:
24905 : switch (pattern11 (x1))
24906 : {
24907 : case 0:
24908 : if (
24909 : #line 15725 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24910 : (TARGET_AVX512VL))
24911 : return 7333; /* *avx512vl_us_truncatev2div2qi2_store_1 */
24912 : break;
24913 :
24914 : case 1:
24915 : if (
24916 : #line 15820 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24917 : (TARGET_AVX512VL))
24918 : return 7348; /* *avx512vl_us_truncatev4siv4qi2_store_1 */
24919 : break;
24920 :
24921 : case 2:
24922 : if (
24923 : #line 15820 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24924 : (TARGET_AVX512VL))
24925 : return 7351; /* *avx512vl_us_truncatev4div4qi2_store_1 */
24926 : break;
24927 :
24928 : case 3:
24929 : if ((
24930 : #line 15918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24931 : (TARGET_AVX512VL) &&
24932 : #line 15912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24933 : (TARGET_AVX512BW)))
24934 : return 7378; /* *avx512vl_us_truncatev8hiv8qi2_store_1 */
24935 : break;
24936 :
24937 : case 4:
24938 : if (
24939 : #line 15918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24940 : (TARGET_AVX512VL))
24941 : return 7381; /* *avx512vl_us_truncatev8siv8qi2_store_1 */
24942 : break;
24943 :
24944 : case 5:
24945 : if (
24946 : #line 16434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24947 : (TARGET_AVX512F))
24948 : return 7485; /* *avx512f_us_truncatev8div16qi2_store_1 */
24949 : break;
24950 :
24951 : case 6:
24952 : if (
24953 : #line 16080 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24954 : (TARGET_AVX512VL))
24955 : return 7418; /* *avx512vl_us_truncatev4siv4hi2_store_1 */
24956 : break;
24957 :
24958 : case 7:
24959 : if (
24960 : #line 16080 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24961 : (TARGET_AVX512VL))
24962 : return 7421; /* *avx512vl_us_truncatev4div4hi2_store_1 */
24963 : break;
24964 :
24965 : case 8:
24966 : if (
24967 : #line 16171 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24968 : (TARGET_AVX512VL))
24969 : return 7448; /* *avx512vl_us_truncatev2div2hi2_store_1 */
24970 : break;
24971 :
24972 : case 9:
24973 : if (
24974 : #line 16321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24975 : (TARGET_AVX512VL))
24976 : return 7467; /* *avx512vl_us_truncatev2div2si2_store_1 */
24977 : break;
24978 :
24979 : default:
24980 : break;
24981 : }
24982 : break;
24983 :
24984 : default:
24985 : break;
24986 : }
24987 : x3 = XEXP (x1, 0);
24988 : operands[0] = x3;
24989 : operands[1] = x2;
24990 : switch (GET_MODE (operands[0]))
24991 : {
24992 : case E_XImode:
24993 : if (nonimmediate_operand (operands[0], E_XImode)
24994 : && nonimmediate_or_sse_const_operand (operands[1], E_XImode)
24995 : &&
24996 : #line 2468 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24997 : (TARGET_AVX512F
24998 : && (register_operand (operands[0], XImode)
24999 : || register_operand (operands[1], XImode))))
25000 : return 96; /* *movxi_internal_avx512f */
25001 : break;
25002 :
25003 : case E_OImode:
25004 : if (nonimmediate_operand (operands[0], E_OImode)
25005 : && nonimmediate_or_sse_const_operand (operands[1], E_OImode)
25006 : &&
25007 : #line 2491 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25008 : (TARGET_AVX
25009 : && (register_operand (operands[0], OImode)
25010 : || register_operand (operands[1], OImode))))
25011 : return 97; /* *movoi_internal_avx */
25012 : break;
25013 :
25014 : case E_SImode:
25015 : if (register_operand (operands[0], E_SImode)
25016 : && address_no_seg_operand (operands[1], E_SImode)
25017 : &&
25018 : #line 6381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25019 : (ix86_hardreg_mov_ok (operands[0], operands[1])))
25020 : return 268; /* *leasi */
25021 : break;
25022 :
25023 : case E_DImode:
25024 : if (register_operand (operands[0], E_DImode)
25025 : && address_no_seg_operand (operands[1], E_DImode)
25026 : && (
25027 : #line 6381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25028 : (ix86_hardreg_mov_ok (operands[0], operands[1])) &&
25029 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25030 : (TARGET_64BIT)))
25031 : return 269; /* *leadi */
25032 : break;
25033 :
25034 : default:
25035 : break;
25036 : }
25037 : switch (GET_CODE (x2))
25038 : {
25039 : case PLUS:
25040 : res = recog_72 (x1, insn, pnum_clobbers);
25041 : if (res >= 0)
25042 : return res;
25043 : break;
25044 :
25045 : case ZERO_EXTEND:
25046 : res = recog_80 (x1, insn, pnum_clobbers);
25047 : if (res >= 0)
25048 : return res;
25049 : break;
25050 :
25051 : case COMPARE:
25052 : res = recog_81 (x1, insn, pnum_clobbers);
25053 : if (res >= 0)
25054 : return res;
25055 : break;
25056 :
25057 : case IOR:
25058 : res = recog_85 (x1, insn, pnum_clobbers);
25059 : if (res >= 0)
25060 : return res;
25061 : break;
25062 :
25063 : case XOR:
25064 : res = recog_86 (x1, insn, pnum_clobbers);
25065 : if (res >= 0)
25066 : return res;
25067 : break;
25068 :
25069 : case MINUS:
25070 : res = recog_88 (x1, insn, pnum_clobbers);
25071 : if (res >= 0)
25072 : return res;
25073 : break;
25074 :
25075 : case IF_THEN_ELSE:
25076 : res = recog_91 (x1, insn, pnum_clobbers);
25077 : if (res >= 0)
25078 : return res;
25079 : break;
25080 :
25081 : case MULT:
25082 : res = recog_92 (x1, insn, pnum_clobbers);
25083 : if (res >= 0)
25084 : return res;
25085 : break;
25086 :
25087 : case SMUL_HIGHPART:
25088 : switch (pattern13 (x1, pnum_clobbers))
25089 : {
25090 : case 0:
25091 : if (
25092 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25093 : (!TARGET_64BIT))
25094 : {
25095 : *pnum_clobbers = 2;
25096 : return 655; /* smulsi3_highpart */
25097 : }
25098 : break;
25099 :
25100 : case 1:
25101 : if (
25102 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25103 : (TARGET_64BIT))
25104 : {
25105 : *pnum_clobbers = 2;
25106 : return 657; /* smuldi3_highpart */
25107 : }
25108 : break;
25109 :
25110 : default:
25111 : break;
25112 : }
25113 : break;
25114 :
25115 : case UMUL_HIGHPART:
25116 : switch (pattern13 (x1, pnum_clobbers))
25117 : {
25118 : case 0:
25119 : if (
25120 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25121 : (!TARGET_64BIT))
25122 : {
25123 : *pnum_clobbers = 2;
25124 : return 656; /* umulsi3_highpart */
25125 : }
25126 : break;
25127 :
25128 : case 1:
25129 : if (
25130 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25131 : (TARGET_64BIT))
25132 : {
25133 : *pnum_clobbers = 2;
25134 : return 658; /* umuldi3_highpart */
25135 : }
25136 : break;
25137 :
25138 : default:
25139 : break;
25140 : }
25141 : break;
25142 :
25143 : case TRUNCATE:
25144 : res = recog_93 (x1, insn, pnum_clobbers);
25145 : if (res >= 0)
25146 : return res;
25147 : break;
25148 :
25149 : case AND:
25150 : res = recog_95 (x1, insn, pnum_clobbers);
25151 : if (res >= 0)
25152 : return res;
25153 : break;
25154 :
25155 : case NOT:
25156 : res = recog_96 (x1, insn, pnum_clobbers);
25157 : if (res >= 0)
25158 : return res;
25159 : break;
25160 :
25161 : case NEG:
25162 : res = recog_97 (x1, insn, pnum_clobbers);
25163 : if (res >= 0)
25164 : return res;
25165 : break;
25166 :
25167 : case ABS:
25168 : res = recog_98 (x1, insn, pnum_clobbers);
25169 : if (res >= 0)
25170 : return res;
25171 : break;
25172 :
25173 : case ASHIFT:
25174 : res = recog_100 (x1, insn, pnum_clobbers);
25175 : if (res >= 0)
25176 : return res;
25177 : break;
25178 :
25179 : case LSHIFTRT:
25180 : res = recog_102 (x1, insn, pnum_clobbers);
25181 : if (res >= 0)
25182 : return res;
25183 : break;
25184 :
25185 : case ASHIFTRT:
25186 : res = recog_104 (x1, insn, pnum_clobbers);
25187 : if (res >= 0)
25188 : return res;
25189 : break;
25190 :
25191 : case SUBREG:
25192 : res = recog_105 (x1, insn, pnum_clobbers);
25193 : if (res >= 0)
25194 : return res;
25195 : break;
25196 :
25197 : case ROTATE:
25198 : res = recog_106 (x1, insn, pnum_clobbers);
25199 : if (res >= 0)
25200 : return res;
25201 : break;
25202 :
25203 : case ROTATERT:
25204 : res = recog_107 (x1, insn, pnum_clobbers);
25205 : if (res >= 0)
25206 : return res;
25207 : break;
25208 :
25209 : case ZERO_EXTRACT:
25210 : res = recog_109 (x1, insn, pnum_clobbers);
25211 : if (res >= 0)
25212 : return res;
25213 : break;
25214 :
25215 : case NE:
25216 : case EQ:
25217 : case GE:
25218 : case GT:
25219 : case LE:
25220 : case LT:
25221 : case LTGT:
25222 : case GEU:
25223 : case GTU:
25224 : case LEU:
25225 : case LTU:
25226 : case UNORDERED:
25227 : case ORDERED:
25228 : case UNEQ:
25229 : case UNGE:
25230 : case UNGT:
25231 : case UNLE:
25232 : case UNLT:
25233 : res = recog_110 (x1, insn, pnum_clobbers);
25234 : if (res >= 0)
25235 : return res;
25236 : break;
25237 :
25238 : case UNSPEC:
25239 : res = recog_114 (x1, insn, pnum_clobbers);
25240 : if (res >= 0)
25241 : return res;
25242 : break;
25243 :
25244 : case CALL:
25245 : res = recog_115 (x1, insn, pnum_clobbers);
25246 : if (res >= 0)
25247 : return res;
25248 : break;
25249 :
25250 : case FFS:
25251 : if (pnum_clobbers != NULL
25252 : && GET_MODE (x2) == E_SImode)
25253 : {
25254 : operands[0] = x3;
25255 : if (register_operand (operands[0], E_SImode))
25256 : {
25257 : x4 = XEXP (x2, 0);
25258 : operands[1] = x4;
25259 : if (nonimmediate_operand (operands[1], E_SImode)
25260 : &&
25261 : #line 21336 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25262 : (!TARGET_CMOVE))
25263 : {
25264 : *pnum_clobbers = 2;
25265 : return 1539; /* ffssi2_no_cmove */
25266 : }
25267 : }
25268 : }
25269 : break;
25270 :
25271 : case CTZ:
25272 : res = recog_116 (x1, insn, pnum_clobbers);
25273 : if (res >= 0)
25274 : return res;
25275 : break;
25276 :
25277 : case SIGN_EXTEND:
25278 : res = recog_117 (x1, insn, pnum_clobbers);
25279 : if (res >= 0)
25280 : return res;
25281 : break;
25282 :
25283 : case CLZ:
25284 : res = recog_118 (x1, insn, pnum_clobbers);
25285 : if (res >= 0)
25286 : return res;
25287 : break;
25288 :
25289 : case POPCOUNT:
25290 : res = recog_119 (x1, insn, pnum_clobbers);
25291 : if (res >= 0)
25292 : return res;
25293 : break;
25294 :
25295 : case BSWAP:
25296 : res = recog_360 (x1, insn, pnum_clobbers);
25297 : if (res >= 0)
25298 : return res;
25299 : break;
25300 :
25301 : case SIGN_EXTRACT:
25302 : res = recog_120 (x1, insn, pnum_clobbers);
25303 : if (res >= 0)
25304 : return res;
25305 : break;
25306 :
25307 : case SMAX:
25308 : switch (pattern20 (x1, pnum_clobbers))
25309 : {
25310 : case 0:
25311 : if ((
25312 : #line 27362 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25313 : (TARGET_CMOVE
25314 : && ix86_pre_reload_split ()) &&
25315 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25316 : (!TARGET_64BIT)))
25317 : {
25318 : *pnum_clobbers = 1;
25319 : return 1865; /* *smaxdi3_doubleword */
25320 : }
25321 : if ((
25322 : #line 27420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25323 : (TARGET_CMOVE
25324 : && (DImode != QImode || !TARGET_PARTIAL_REG_STALL)
25325 : && ix86_pre_reload_split ()) &&
25326 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25327 : (TARGET_64BIT)))
25328 : {
25329 : *pnum_clobbers = 1;
25330 : return 1885; /* *smaxdi3_1 */
25331 : }
25332 : break;
25333 :
25334 : case 1:
25335 : if (
25336 : #line 27420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25337 : (TARGET_CMOVE
25338 : && (SImode != QImode || !TARGET_PARTIAL_REG_STALL)
25339 : && ix86_pre_reload_split ()))
25340 : {
25341 : *pnum_clobbers = 1;
25342 : return 1881; /* *smaxsi3_1 */
25343 : }
25344 : break;
25345 :
25346 : default:
25347 : break;
25348 : }
25349 : break;
25350 :
25351 : case SMIN:
25352 : switch (pattern20 (x1, pnum_clobbers))
25353 : {
25354 : case 0:
25355 : if ((
25356 : #line 27362 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25357 : (TARGET_CMOVE
25358 : && ix86_pre_reload_split ()) &&
25359 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25360 : (!TARGET_64BIT)))
25361 : {
25362 : *pnum_clobbers = 1;
25363 : return 1866; /* *smindi3_doubleword */
25364 : }
25365 : if ((
25366 : #line 27420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25367 : (TARGET_CMOVE
25368 : && (DImode != QImode || !TARGET_PARTIAL_REG_STALL)
25369 : && ix86_pre_reload_split ()) &&
25370 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25371 : (TARGET_64BIT)))
25372 : {
25373 : *pnum_clobbers = 1;
25374 : return 1886; /* *smindi3_1 */
25375 : }
25376 : break;
25377 :
25378 : case 1:
25379 : if (
25380 : #line 27420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25381 : (TARGET_CMOVE
25382 : && (SImode != QImode || !TARGET_PARTIAL_REG_STALL)
25383 : && ix86_pre_reload_split ()))
25384 : {
25385 : *pnum_clobbers = 1;
25386 : return 1882; /* *sminsi3_1 */
25387 : }
25388 : break;
25389 :
25390 : default:
25391 : break;
25392 : }
25393 : break;
25394 :
25395 : case UMAX:
25396 : switch (pattern22 (x1, pnum_clobbers))
25397 : {
25398 : case 0:
25399 : if ((
25400 : #line 27362 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25401 : (TARGET_CMOVE
25402 : && ix86_pre_reload_split ()) &&
25403 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25404 : (!TARGET_64BIT)))
25405 : {
25406 : *pnum_clobbers = 1;
25407 : return 1867; /* *umaxdi3_doubleword */
25408 : }
25409 : if ((
25410 : #line 27420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25411 : (TARGET_CMOVE
25412 : && (DImode != QImode || !TARGET_PARTIAL_REG_STALL)
25413 : && ix86_pre_reload_split ()) &&
25414 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25415 : (TARGET_64BIT)))
25416 : {
25417 : *pnum_clobbers = 1;
25418 : return 1887; /* *umaxdi3_1 */
25419 : }
25420 : break;
25421 :
25422 : case 1:
25423 : if (
25424 : #line 27420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25425 : (TARGET_CMOVE
25426 : && (SImode != QImode || !TARGET_PARTIAL_REG_STALL)
25427 : && ix86_pre_reload_split ()))
25428 : {
25429 : *pnum_clobbers = 1;
25430 : return 1883; /* *umaxsi3_1 */
25431 : }
25432 : break;
25433 :
25434 : case 2:
25435 : x5 = XEXP (x2, 1);
25436 : if (rtx_equal_p (x5, operands[1])
25437 : &&
25438 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25439 : (TARGET_CMOVE
25440 : && ix86_pre_reload_split ()))
25441 : {
25442 : *pnum_clobbers = 1;
25443 : return 1893; /* *plus_within_umaxsi3_1 */
25444 : }
25445 : if (rtx_equal_p (x5, operands[2])
25446 : &&
25447 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25448 : (TARGET_CMOVE
25449 : && ix86_pre_reload_split ()))
25450 : {
25451 : *pnum_clobbers = 1;
25452 : return 1894; /* *plus_within_umaxsi3_2 */
25453 : }
25454 : break;
25455 :
25456 : case 3:
25457 : x5 = XEXP (x2, 1);
25458 : if (rtx_equal_p (x5, operands[1])
25459 : && (
25460 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25461 : (TARGET_CMOVE
25462 : && ix86_pre_reload_split ()) &&
25463 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25464 : (TARGET_64BIT)))
25465 : {
25466 : *pnum_clobbers = 1;
25467 : return 1897; /* *plus_within_umaxdi3_1 */
25468 : }
25469 : if (rtx_equal_p (x5, operands[2])
25470 : && (
25471 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25472 : (TARGET_CMOVE
25473 : && ix86_pre_reload_split ()) &&
25474 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25475 : (TARGET_64BIT)))
25476 : {
25477 : *pnum_clobbers = 1;
25478 : return 1898; /* *plus_within_umaxdi3_2 */
25479 : }
25480 : break;
25481 :
25482 : case 4:
25483 : if (
25484 : #line 27634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25485 : (TARGET_CMOVE
25486 : && ix86_pre_reload_split ()))
25487 : {
25488 : *pnum_clobbers = 1;
25489 : return 1903; /* *minus_within_umaxsi3 */
25490 : }
25491 : break;
25492 :
25493 : case 5:
25494 : if ((
25495 : #line 27634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25496 : (TARGET_CMOVE
25497 : && ix86_pre_reload_split ()) &&
25498 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25499 : (TARGET_64BIT)))
25500 : {
25501 : *pnum_clobbers = 1;
25502 : return 1905; /* *minus_within_umaxdi3 */
25503 : }
25504 : break;
25505 :
25506 : default:
25507 : break;
25508 : }
25509 : break;
25510 :
25511 : case UMIN:
25512 : switch (pattern22 (x1, pnum_clobbers))
25513 : {
25514 : case 0:
25515 : if ((
25516 : #line 27362 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25517 : (TARGET_CMOVE
25518 : && ix86_pre_reload_split ()) &&
25519 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25520 : (!TARGET_64BIT)))
25521 : {
25522 : *pnum_clobbers = 1;
25523 : return 1868; /* *umindi3_doubleword */
25524 : }
25525 : if ((
25526 : #line 27420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25527 : (TARGET_CMOVE
25528 : && (DImode != QImode || !TARGET_PARTIAL_REG_STALL)
25529 : && ix86_pre_reload_split ()) &&
25530 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25531 : (TARGET_64BIT)))
25532 : {
25533 : *pnum_clobbers = 1;
25534 : return 1888; /* *umindi3_1 */
25535 : }
25536 : break;
25537 :
25538 : case 1:
25539 : if (
25540 : #line 27420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25541 : (TARGET_CMOVE
25542 : && (SImode != QImode || !TARGET_PARTIAL_REG_STALL)
25543 : && ix86_pre_reload_split ()))
25544 : {
25545 : *pnum_clobbers = 1;
25546 : return 1884; /* *uminsi3_1 */
25547 : }
25548 : break;
25549 :
25550 : case 2:
25551 : x5 = XEXP (x2, 1);
25552 : if (rtx_equal_p (x5, operands[1])
25553 : &&
25554 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25555 : (TARGET_CMOVE
25556 : && ix86_pre_reload_split ()))
25557 : {
25558 : *pnum_clobbers = 1;
25559 : return 1895; /* *plus_within_uminsi3_1 */
25560 : }
25561 : if (rtx_equal_p (x5, operands[2])
25562 : &&
25563 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25564 : (TARGET_CMOVE
25565 : && ix86_pre_reload_split ()))
25566 : {
25567 : *pnum_clobbers = 1;
25568 : return 1896; /* *plus_within_uminsi3_2 */
25569 : }
25570 : break;
25571 :
25572 : case 3:
25573 : x5 = XEXP (x2, 1);
25574 : if (rtx_equal_p (x5, operands[1])
25575 : && (
25576 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25577 : (TARGET_CMOVE
25578 : && ix86_pre_reload_split ()) &&
25579 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25580 : (TARGET_64BIT)))
25581 : {
25582 : *pnum_clobbers = 1;
25583 : return 1899; /* *plus_within_umindi3_1 */
25584 : }
25585 : if (rtx_equal_p (x5, operands[2])
25586 : && (
25587 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25588 : (TARGET_CMOVE
25589 : && ix86_pre_reload_split ()) &&
25590 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25591 : (TARGET_64BIT)))
25592 : {
25593 : *pnum_clobbers = 1;
25594 : return 1900; /* *plus_within_umindi3_2 */
25595 : }
25596 : break;
25597 :
25598 : case 4:
25599 : if (
25600 : #line 27634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25601 : (TARGET_CMOVE
25602 : && ix86_pre_reload_split ()))
25603 : {
25604 : *pnum_clobbers = 1;
25605 : return 1904; /* *minus_within_uminsi3 */
25606 : }
25607 : break;
25608 :
25609 : case 5:
25610 : if ((
25611 : #line 27634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25612 : (TARGET_CMOVE
25613 : && ix86_pre_reload_split ()) &&
25614 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25615 : (TARGET_64BIT)))
25616 : {
25617 : *pnum_clobbers = 1;
25618 : return 1906; /* *minus_within_umindi3 */
25619 : }
25620 : break;
25621 :
25622 : default:
25623 : break;
25624 : }
25625 : break;
25626 :
25627 : case UNSPEC_VOLATILE:
25628 : res = recog_121 (x1, insn, pnum_clobbers);
25629 : if (res >= 0)
25630 : return res;
25631 : break;
25632 :
25633 : case VEC_SELECT:
25634 : res = recog_124 (x1, insn, pnum_clobbers);
25635 : if (res >= 0)
25636 : return res;
25637 : break;
25638 :
25639 : case FIX:
25640 : switch (pattern25 (x1))
25641 : {
25642 : case 0:
25643 : if (
25644 : #line 8335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25645 : (TARGET_AVX512FP16))
25646 : return 4743; /* avx512fp16_fix_truncsi2 */
25647 : break;
25648 :
25649 : case 1:
25650 : if (
25651 : #line 8929 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25652 : (TARGET_SSE))
25653 : return 4842; /* sse_cvttss2si */
25654 : break;
25655 :
25656 : case 2:
25657 : if (
25658 : #line 9474 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25659 : (TARGET_SSE2))
25660 : return 4977; /* sse2_cvttsd2si */
25661 : break;
25662 :
25663 : case 3:
25664 : if ((
25665 : #line 8335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25666 : (TARGET_AVX512FP16) &&
25667 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25668 : (TARGET_64BIT)))
25669 : return 4747; /* avx512fp16_fix_truncdi2 */
25670 : break;
25671 :
25672 : case 4:
25673 : if ((
25674 : #line 8929 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25675 : (TARGET_SSE) &&
25676 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25677 : (TARGET_64BIT)))
25678 : return 4844; /* sse_cvttss2siq */
25679 : break;
25680 :
25681 : case 5:
25682 : if ((
25683 : #line 9474 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25684 : (TARGET_SSE2) &&
25685 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25686 : (TARGET_64BIT)))
25687 : return 4979; /* sse2_cvttsd2siq */
25688 : break;
25689 :
25690 : case 6:
25691 : if (
25692 : #line 8345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25693 : (TARGET_AVX512FP16))
25694 : return 4751; /* avx512fp16_fix_truncsi2_mem */
25695 : break;
25696 :
25697 : case 7:
25698 : if ((
25699 : #line 8345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25700 : (TARGET_AVX512FP16) &&
25701 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25702 : (TARGET_64BIT)))
25703 : return 4753; /* avx512fp16_fix_truncdi2_mem */
25704 : break;
25705 :
25706 : default:
25707 : break;
25708 : }
25709 : break;
25710 :
25711 : case UNSIGNED_FIX:
25712 : switch (pattern25 (x1))
25713 : {
25714 : case 0:
25715 : if (
25716 : #line 8335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25717 : (TARGET_AVX512FP16))
25718 : return 4745; /* avx512fp16_fixuns_truncsi2 */
25719 : break;
25720 :
25721 : case 1:
25722 : if (
25723 : #line 9379 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25724 : (TARGET_AVX512F))
25725 : return 4951; /* avx512f_vcvttss2usi */
25726 : break;
25727 :
25728 : case 2:
25729 : if (
25730 : #line 9415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25731 : (TARGET_AVX512F))
25732 : return 4963; /* avx512f_vcvttsd2usi */
25733 : break;
25734 :
25735 : case 3:
25736 : if ((
25737 : #line 8335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25738 : (TARGET_AVX512FP16) &&
25739 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25740 : (TARGET_64BIT)))
25741 : return 4749; /* avx512fp16_fixuns_truncdi2 */
25742 : break;
25743 :
25744 : case 4:
25745 : if ((
25746 : #line 9379 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25747 : (TARGET_AVX512F) &&
25748 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25749 : (TARGET_64BIT)))
25750 : return 4953; /* avx512f_vcvttss2usiq */
25751 : break;
25752 :
25753 : case 5:
25754 : if ((
25755 : #line 9415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25756 : (TARGET_AVX512F) &&
25757 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25758 : (TARGET_64BIT)))
25759 : return 4965; /* avx512f_vcvttsd2usiq */
25760 : break;
25761 :
25762 : case 6:
25763 : if (
25764 : #line 8345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25765 : (TARGET_AVX512FP16))
25766 : return 4752; /* avx512fp16_fixuns_truncsi2_mem */
25767 : break;
25768 :
25769 : case 7:
25770 : if ((
25771 : #line 8345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25772 : (TARGET_AVX512FP16) &&
25773 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25774 : (TARGET_64BIT)))
25775 : return 4754; /* avx512fp16_fixuns_truncdi2_mem */
25776 : break;
25777 :
25778 : default:
25779 : break;
25780 : }
25781 : break;
25782 :
25783 : default:
25784 : break;
25785 : }
25786 : operands[0] = x3;
25787 : res = recog_329 (x1, insn, pnum_clobbers);
25788 : if (res >= 0)
25789 : return res;
25790 : switch (GET_CODE (x2))
25791 : {
25792 : case VEC_MERGE:
25793 : return recog_326 (x1, insn, pnum_clobbers);
25794 :
25795 : case UNSPEC:
25796 : return recog_323 (x1, insn, pnum_clobbers);
25797 :
25798 : case VEC_CONCAT:
25799 : return recog_322 (x1, insn, pnum_clobbers);
25800 :
25801 : case PLUS:
25802 : return recog_324 (x1, insn, pnum_clobbers);
25803 :
25804 : case MINUS:
25805 : return recog_349 (x1, insn, pnum_clobbers);
25806 :
25807 : case MULT:
25808 : return recog_337 (x1, insn, pnum_clobbers);
25809 :
25810 : case DIV:
25811 : return recog_356 (x1, insn, pnum_clobbers);
25812 :
25813 : case SQRT:
25814 : return recog_342 (x1, insn, pnum_clobbers);
25815 :
25816 : case SMAX:
25817 : return recog_346 (x1, insn, pnum_clobbers);
25818 :
25819 : case SMIN:
25820 : return recog_345 (x1, insn, pnum_clobbers);
25821 :
25822 : case NE:
25823 : case EQ:
25824 : case GE:
25825 : case GT:
25826 : case LE:
25827 : case LT:
25828 : case LTGT:
25829 : case GEU:
25830 : case GTU:
25831 : case LEU:
25832 : case LTU:
25833 : case UNORDERED:
25834 : case ORDERED:
25835 : case UNEQ:
25836 : case UNGE:
25837 : case UNGT:
25838 : case UNLE:
25839 : case UNLT:
25840 : return recog_344 (x1, insn, pnum_clobbers);
25841 :
25842 : case FMA:
25843 : return recog_330 (x1, insn, pnum_clobbers);
25844 :
25845 : case FLOAT:
25846 : return recog_336 (x1, insn, pnum_clobbers);
25847 :
25848 : case UNSIGNED_FLOAT:
25849 : return recog_341 (x1, insn, pnum_clobbers);
25850 :
25851 : case FIX:
25852 : return recog_350 (x1, insn, pnum_clobbers);
25853 :
25854 : case UNSIGNED_FIX:
25855 : return recog_351 (x1, insn, pnum_clobbers);
25856 :
25857 : case FLOAT_EXTEND:
25858 : return recog_331 (x1, insn, pnum_clobbers);
25859 :
25860 : case FLOAT_TRUNCATE:
25861 : return recog_354 (x1, insn, pnum_clobbers);
25862 :
25863 : case VEC_SELECT:
25864 : return recog_325 (x1, insn, pnum_clobbers);
25865 :
25866 : case VEC_DUPLICATE:
25867 : return recog_327 (x1, insn, pnum_clobbers);
25868 :
25869 : case AND:
25870 : case IOR:
25871 : case XOR:
25872 : case NOT:
25873 : return recog_348 (x1, insn, pnum_clobbers);
25874 :
25875 : case SS_TRUNCATE:
25876 : operands[0] = x3;
25877 : switch (pattern53 (x2))
25878 : {
25879 : case 0:
25880 : if (!
25881 : #line 15313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25882 : (TARGET_AVX512F))
25883 : return -1;
25884 : return 7259; /* *avx512f_ss_truncatev16siv16qi2 */
25885 :
25886 : case 1:
25887 : if (!(
25888 : #line 15575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25889 : (TARGET_AVX512VL) &&
25890 : #line 15549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25891 : (TARGET_AVX512BW)))
25892 : return -1;
25893 : return 7301; /* *avx512vl_ss_truncatev16hiv16qi2 */
25894 :
25895 : case 2:
25896 : if (!
25897 : #line 15313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25898 : (TARGET_AVX512F))
25899 : return -1;
25900 : return 7262; /* *avx512f_ss_truncatev16siv16hi2 */
25901 :
25902 : case 3:
25903 : if (!
25904 : #line 15313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25905 : (TARGET_AVX512F))
25906 : return -1;
25907 : return 7265; /* *avx512f_ss_truncatev8div8si2 */
25908 :
25909 : case 4:
25910 : if (!
25911 : #line 15313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25912 : (TARGET_AVX512F))
25913 : return -1;
25914 : return 7268; /* *avx512f_ss_truncatev8div8hi2 */
25915 :
25916 : case 5:
25917 : if (!
25918 : #line 15575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25919 : (TARGET_AVX512VL))
25920 : return -1;
25921 : return 7298; /* *avx512vl_ss_truncatev8siv8hi2 */
25922 :
25923 : case 6:
25924 : if (!
25925 : #line 15486 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25926 : (TARGET_AVX512BW))
25927 : return -1;
25928 : return 7288; /* avx512bw_ss_truncatev32hiv32qi2 */
25929 :
25930 : case 7:
25931 : if (!
25932 : #line 15575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25933 : (TARGET_AVX512VL))
25934 : return -1;
25935 : return 7295; /* *avx512vl_ss_truncatev4div4si2 */
25936 :
25937 : default:
25938 : return -1;
25939 : }
25940 :
25941 : case TRUNCATE:
25942 : return recog_343 (x1, insn, pnum_clobbers);
25943 :
25944 : case US_TRUNCATE:
25945 : operands[0] = x3;
25946 : switch (pattern53 (x2))
25947 : {
25948 : case 0:
25949 : if (!
25950 : #line 15313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25951 : (TARGET_AVX512F))
25952 : return -1;
25953 : return 7261; /* *avx512f_us_truncatev16siv16qi2 */
25954 :
25955 : case 1:
25956 : if (!(
25957 : #line 15575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25958 : (TARGET_AVX512VL) &&
25959 : #line 15549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25960 : (TARGET_AVX512BW)))
25961 : return -1;
25962 : return 7303; /* *avx512vl_us_truncatev16hiv16qi2 */
25963 :
25964 : case 2:
25965 : if (!
25966 : #line 15313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25967 : (TARGET_AVX512F))
25968 : return -1;
25969 : return 7264; /* *avx512f_us_truncatev16siv16hi2 */
25970 :
25971 : case 3:
25972 : if (!
25973 : #line 15313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25974 : (TARGET_AVX512F))
25975 : return -1;
25976 : return 7267; /* *avx512f_us_truncatev8div8si2 */
25977 :
25978 : case 4:
25979 : if (!
25980 : #line 15313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25981 : (TARGET_AVX512F))
25982 : return -1;
25983 : return 7270; /* *avx512f_us_truncatev8div8hi2 */
25984 :
25985 : case 5:
25986 : if (!
25987 : #line 15575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25988 : (TARGET_AVX512VL))
25989 : return -1;
25990 : return 7300; /* *avx512vl_us_truncatev8siv8hi2 */
25991 :
25992 : case 6:
25993 : if (!
25994 : #line 15486 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25995 : (TARGET_AVX512BW))
25996 : return -1;
25997 : return 7290; /* avx512bw_us_truncatev32hiv32qi2 */
25998 :
25999 : case 7:
26000 : if (!
26001 : #line 15575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26002 : (TARGET_AVX512VL))
26003 : return -1;
26004 : return 7297; /* *avx512vl_us_truncatev4div4si2 */
26005 :
26006 : default:
26007 : return -1;
26008 : }
26009 :
26010 : case SS_PLUS:
26011 : return recog_328 (x1, insn, pnum_clobbers);
26012 :
26013 : case US_PLUS:
26014 : operands[0] = x3;
26015 : switch (pattern54 (x2))
26016 : {
26017 : case 0:
26018 : if (!(
26019 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26020 : (TARGET_SSE2 && 1 && 1
26021 : && ix86_binary_operator_ok (US_PLUS, V64QImode, operands)) &&
26022 : #line 732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26023 : (TARGET_AVX512BW)))
26024 : return -1;
26025 : return 7548; /* *avx512bw_usaddv64qi3 */
26026 :
26027 : case 1:
26028 : if (!(
26029 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26030 : (TARGET_SSE2 && 1 && 1
26031 : && ix86_binary_operator_ok (US_PLUS, V32QImode, operands)) &&
26032 : #line 732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26033 : (TARGET_AVX2)))
26034 : return -1;
26035 : return 7556; /* *avx2_usaddv32qi3 */
26036 :
26037 : case 2:
26038 : if (!
26039 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26040 : (TARGET_SSE2 && 1 && 1
26041 : && ix86_binary_operator_ok (US_PLUS, V16QImode, operands)))
26042 : return -1;
26043 : return 7564; /* *sse2_usaddv16qi3 */
26044 :
26045 : case 3:
26046 : if (!(
26047 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26048 : (TARGET_SSE2 && 1 && 1
26049 : && ix86_binary_operator_ok (US_PLUS, V32HImode, operands)) &&
26050 : #line 733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26051 : (TARGET_AVX512BW)))
26052 : return -1;
26053 : return 7572; /* *avx512bw_usaddv32hi3 */
26054 :
26055 : case 4:
26056 : if (!(
26057 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26058 : (TARGET_SSE2 && 1 && 1
26059 : && ix86_binary_operator_ok (US_PLUS, V16HImode, operands)) &&
26060 : #line 733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26061 : (TARGET_AVX2)))
26062 : return -1;
26063 : return 7580; /* *avx2_usaddv16hi3 */
26064 :
26065 : case 5:
26066 : if (!
26067 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26068 : (TARGET_SSE2 && 1 && 1
26069 : && ix86_binary_operator_ok (US_PLUS, V8HImode, operands)))
26070 : return -1;
26071 : return 7588; /* *sse2_usaddv8hi3 */
26072 :
26073 : default:
26074 : return -1;
26075 : }
26076 :
26077 : case SS_MINUS:
26078 : operands[0] = x3;
26079 : x4 = XEXP (x2, 0);
26080 : switch (GET_CODE (x4))
26081 : {
26082 : case REG:
26083 : case SUBREG:
26084 : case MEM:
26085 : switch (pattern54 (x2))
26086 : {
26087 : case 0:
26088 : if (!(
26089 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26090 : (TARGET_SSE2 && 1 && 1
26091 : && ix86_binary_operator_ok (SS_MINUS, V64QImode, operands)) &&
26092 : #line 732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26093 : (TARGET_AVX512BW)))
26094 : return -1;
26095 : return 7550; /* *avx512bw_sssubv64qi3 */
26096 :
26097 : case 1:
26098 : if (!(
26099 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26100 : (TARGET_SSE2 && 1 && 1
26101 : && ix86_binary_operator_ok (SS_MINUS, V32QImode, operands)) &&
26102 : #line 732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26103 : (TARGET_AVX2)))
26104 : return -1;
26105 : return 7558; /* *avx2_sssubv32qi3 */
26106 :
26107 : case 2:
26108 : if (!
26109 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26110 : (TARGET_SSE2 && 1 && 1
26111 : && ix86_binary_operator_ok (SS_MINUS, V16QImode, operands)))
26112 : return -1;
26113 : return 7566; /* *sse2_sssubv16qi3 */
26114 :
26115 : case 3:
26116 : if (!(
26117 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26118 : (TARGET_SSE2 && 1 && 1
26119 : && ix86_binary_operator_ok (SS_MINUS, V32HImode, operands)) &&
26120 : #line 733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26121 : (TARGET_AVX512BW)))
26122 : return -1;
26123 : return 7574; /* *avx512bw_sssubv32hi3 */
26124 :
26125 : case 4:
26126 : if (!(
26127 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26128 : (TARGET_SSE2 && 1 && 1
26129 : && ix86_binary_operator_ok (SS_MINUS, V16HImode, operands)) &&
26130 : #line 733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26131 : (TARGET_AVX2)))
26132 : return -1;
26133 : return 7582; /* *avx2_sssubv16hi3 */
26134 :
26135 : case 5:
26136 : if (!
26137 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26138 : (TARGET_SSE2 && 1 && 1
26139 : && ix86_binary_operator_ok (SS_MINUS, V8HImode, operands)))
26140 : return -1;
26141 : return 7590; /* *sse2_sssubv8hi3 */
26142 :
26143 : default:
26144 : return -1;
26145 : }
26146 :
26147 : case VEC_SELECT:
26148 : switch (pattern205 (x2))
26149 : {
26150 : case 0:
26151 : if (!
26152 : #line 22922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26153 : (TARGET_AVX2))
26154 : return -1;
26155 : return 8634; /* avx2_phsubswv16hi3 */
26156 :
26157 : case 1:
26158 : if (!
26159 : #line 22945 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26160 : (TARGET_SSSE3))
26161 : return -1;
26162 : return 8638; /* ssse3_phsubswv8hi3 */
26163 :
26164 : default:
26165 : return -1;
26166 : }
26167 :
26168 : default:
26169 : return -1;
26170 : }
26171 :
26172 : case US_MINUS:
26173 : operands[0] = x3;
26174 : switch (pattern54 (x2))
26175 : {
26176 : case 0:
26177 : if (!(
26178 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26179 : (TARGET_SSE2 && 1 && 1
26180 : && ix86_binary_operator_ok (US_MINUS, V64QImode, operands)) &&
26181 : #line 732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26182 : (TARGET_AVX512BW)))
26183 : return -1;
26184 : return 7552; /* *avx512bw_ussubv64qi3 */
26185 :
26186 : case 1:
26187 : if (!(
26188 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26189 : (TARGET_SSE2 && 1 && 1
26190 : && ix86_binary_operator_ok (US_MINUS, V32QImode, operands)) &&
26191 : #line 732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26192 : (TARGET_AVX2)))
26193 : return -1;
26194 : return 7560; /* *avx2_ussubv32qi3 */
26195 :
26196 : case 2:
26197 : if (!
26198 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26199 : (TARGET_SSE2 && 1 && 1
26200 : && ix86_binary_operator_ok (US_MINUS, V16QImode, operands)))
26201 : return -1;
26202 : return 7568; /* *sse2_ussubv16qi3 */
26203 :
26204 : case 3:
26205 : if (!(
26206 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26207 : (TARGET_SSE2 && 1 && 1
26208 : && ix86_binary_operator_ok (US_MINUS, V32HImode, operands)) &&
26209 : #line 733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26210 : (TARGET_AVX512BW)))
26211 : return -1;
26212 : return 7576; /* *avx512bw_ussubv32hi3 */
26213 :
26214 : case 4:
26215 : if (!(
26216 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26217 : (TARGET_SSE2 && 1 && 1
26218 : && ix86_binary_operator_ok (US_MINUS, V16HImode, operands)) &&
26219 : #line 733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26220 : (TARGET_AVX2)))
26221 : return -1;
26222 : return 7584; /* *avx2_ussubv16hi3 */
26223 :
26224 : case 5:
26225 : if (!
26226 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26227 : (TARGET_SSE2 && 1 && 1
26228 : && ix86_binary_operator_ok (US_MINUS, V8HImode, operands)))
26229 : return -1;
26230 : return 7592; /* *sse2_ussubv8hi3 */
26231 :
26232 : default:
26233 : return -1;
26234 : }
26235 :
26236 : case ASHIFTRT:
26237 : return recog_332 (x1, insn, pnum_clobbers);
26238 :
26239 : case ASHIFT:
26240 : return recog_334 (x1, insn, pnum_clobbers);
26241 :
26242 : case LSHIFTRT:
26243 : return recog_333 (x1, insn, pnum_clobbers);
26244 :
26245 : case ROTATE:
26246 : return recog_358 (x1, insn, pnum_clobbers);
26247 :
26248 : case ROTATERT:
26249 : return recog_357 (x1, insn, pnum_clobbers);
26250 :
26251 : case UMAX:
26252 : return recog_353 (x1, insn, pnum_clobbers);
26253 :
26254 : case UMIN:
26255 : return recog_352 (x1, insn, pnum_clobbers);
26256 :
26257 : case ABS:
26258 : return recog_340 (x1, insn, pnum_clobbers);
26259 :
26260 : case SIGN_EXTEND:
26261 : return recog_347 (x1, insn, pnum_clobbers);
26262 :
26263 : case ZERO_EXTEND:
26264 : return recog_338 (x1, insn, pnum_clobbers);
26265 :
26266 : case IF_THEN_ELSE:
26267 : return recog_335 (x1, insn, pnum_clobbers);
26268 :
26269 : case CLZ:
26270 : return recog_355 (x1, insn, pnum_clobbers);
26271 :
26272 : case POPCOUNT:
26273 : return recog_339 (x1, insn, pnum_clobbers);
26274 :
26275 : default:
26276 : return -1;
26277 : }
26278 : }
26279 :
26280 : rtx_insn *
26281 : split_39 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
26282 : {
26283 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
26284 : rtx x2, x3, x4, x5, x6, x7, x8;
26285 : rtx_insn *res ATTRIBUTE_UNUSED;
26286 : x2 = XVECEXP (x1, 0, 0);
26287 : x3 = XEXP (x2, 0);
26288 : operands[0] = x3;
26289 : x4 = XEXP (x2, 1);
26290 : x5 = XEXP (x4, 0);
26291 : switch (GET_CODE (x5))
26292 : {
26293 : case LSHIFTRT:
26294 : if (GET_MODE (x5) != E_SImode)
26295 : return NULL;
26296 : x6 = XVECEXP (x1, 0, 1);
26297 : if (pattern236 (x6,
26298 : E_CCmode,
26299 : 17) != 0
26300 : || !mask_reg_operand (operands[0], E_DImode)
26301 : || GET_MODE (x4) != E_DImode)
26302 : return NULL;
26303 : x7 = XEXP (x5, 0);
26304 : operands[1] = x7;
26305 : if (!mask_reg_operand (operands[1], E_SImode))
26306 : return NULL;
26307 : x8 = XEXP (x5, 1);
26308 : operands[2] = x8;
26309 : if (!const_0_to_31_operand (operands[2], E_VOIDmode)
26310 : || !
26311 : #line 2343 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26312 : (TARGET_AVX512BW && reload_completed))
26313 : return NULL;
26314 : return gen_split_1282 (insn, operands);
26315 :
26316 : case UNSPEC:
26317 : if (pattern354 (x1) != 0)
26318 : return NULL;
26319 : switch (pattern1052 (x1))
26320 : {
26321 : case 0:
26322 : if (!(
26323 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26324 : (TARGET_AVX512F
26325 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
26326 : && (GET_MODE_NUNITS (V16SImode)
26327 : < GET_MODE_PRECISION (HImode))
26328 : && ix86_pre_reload_split ()) &&
26329 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26330 : ( 1)))
26331 : return NULL;
26332 : return gen_split_1402 (insn, operands);
26333 :
26334 : case 1:
26335 : if (!((
26336 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26337 : (TARGET_AVX512F
26338 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
26339 : && (GET_MODE_NUNITS (V16HFmode)
26340 : < GET_MODE_PRECISION (HImode))
26341 : && ix86_pre_reload_split ()) &&
26342 : #line 321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26343 : (TARGET_AVX512FP16 && TARGET_AVX512VL)) &&
26344 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26345 : ( 1)))
26346 : return NULL;
26347 : return gen_split_1423 (insn, operands);
26348 :
26349 : case 2:
26350 : if (!(
26351 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26352 : (TARGET_AVX512F
26353 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
26354 : && (GET_MODE_NUNITS (V16SFmode)
26355 : < GET_MODE_PRECISION (HImode))
26356 : && ix86_pre_reload_split ()) &&
26357 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26358 : ( 1)))
26359 : return NULL;
26360 : return gen_split_1429 (insn, operands);
26361 :
26362 : case 3:
26363 : if (!((
26364 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26365 : (TARGET_AVX512BW
26366 : && (GET_MODE_NUNITS (V16QImode)
26367 : < GET_MODE_PRECISION (HImode))
26368 : && ix86_pre_reload_split ()) &&
26369 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26370 : (TARGET_AVX512VL)) &&
26371 : #line 4858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26372 : ( 1)))
26373 : return NULL;
26374 : return gen_split_1465 (insn, operands);
26375 :
26376 : case 4:
26377 : if (!((
26378 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26379 : (TARGET_AVX512BW
26380 : && (GET_MODE_NUNITS (V16HImode)
26381 : < GET_MODE_PRECISION (HImode))
26382 : && ix86_pre_reload_split ()) &&
26383 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26384 : (TARGET_AVX512VL)) &&
26385 : #line 4858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26386 : ( 1)))
26387 : return NULL;
26388 : return gen_split_1474 (insn, operands);
26389 :
26390 : case 5:
26391 : if (!((
26392 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26393 : (TARGET_AVX512F
26394 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
26395 : && (GET_MODE_NUNITS (V8SImode)
26396 : < GET_MODE_PRECISION (HImode))
26397 : && ix86_pre_reload_split ()) &&
26398 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26399 : (TARGET_AVX512VL)) &&
26400 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26401 : ( 1)))
26402 : return NULL;
26403 : return gen_split_1405 (insn, operands);
26404 :
26405 : case 6:
26406 : if (!((
26407 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26408 : (TARGET_AVX512F
26409 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
26410 : && (GET_MODE_NUNITS (V4SImode)
26411 : < GET_MODE_PRECISION (HImode))
26412 : && ix86_pre_reload_split ()) &&
26413 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26414 : (TARGET_AVX512VL)) &&
26415 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26416 : ( 1)))
26417 : return NULL;
26418 : return gen_split_1408 (insn, operands);
26419 :
26420 : case 7:
26421 : if (!(
26422 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26423 : (TARGET_AVX512F
26424 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
26425 : && (GET_MODE_NUNITS (V8DImode)
26426 : < GET_MODE_PRECISION (HImode))
26427 : && ix86_pre_reload_split ()) &&
26428 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26429 : ( 1)))
26430 : return NULL;
26431 : return gen_split_1411 (insn, operands);
26432 :
26433 : case 8:
26434 : if (!((
26435 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26436 : (TARGET_AVX512F
26437 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
26438 : && (GET_MODE_NUNITS (V4DImode)
26439 : < GET_MODE_PRECISION (HImode))
26440 : && ix86_pre_reload_split ()) &&
26441 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26442 : (TARGET_AVX512VL)) &&
26443 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26444 : ( 1)))
26445 : return NULL;
26446 : return gen_split_1414 (insn, operands);
26447 :
26448 : case 9:
26449 : if (!((
26450 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26451 : (TARGET_AVX512F
26452 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
26453 : && (GET_MODE_NUNITS (V2DImode)
26454 : < GET_MODE_PRECISION (HImode))
26455 : && ix86_pre_reload_split ()) &&
26456 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26457 : (TARGET_AVX512VL)) &&
26458 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26459 : ( 1)))
26460 : return NULL;
26461 : return gen_split_1417 (insn, operands);
26462 :
26463 : case 10:
26464 : if (!((
26465 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26466 : (TARGET_AVX512F
26467 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
26468 : && (GET_MODE_NUNITS (V8HFmode)
26469 : < GET_MODE_PRECISION (HImode))
26470 : && ix86_pre_reload_split ()) &&
26471 : #line 322 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26472 : (TARGET_AVX512FP16 && TARGET_AVX512VL)) &&
26473 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26474 : ( 1)))
26475 : return NULL;
26476 : return gen_split_1426 (insn, operands);
26477 :
26478 : case 11:
26479 : if (!((
26480 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26481 : (TARGET_AVX512F
26482 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
26483 : && (GET_MODE_NUNITS (V8SFmode)
26484 : < GET_MODE_PRECISION (HImode))
26485 : && ix86_pre_reload_split ()) &&
26486 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26487 : (TARGET_AVX512VL)) &&
26488 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26489 : ( 1)))
26490 : return NULL;
26491 : return gen_split_1432 (insn, operands);
26492 :
26493 : case 12:
26494 : if (!((
26495 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26496 : (TARGET_AVX512F
26497 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
26498 : && (GET_MODE_NUNITS (V4SFmode)
26499 : < GET_MODE_PRECISION (HImode))
26500 : && ix86_pre_reload_split ()) &&
26501 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26502 : (TARGET_AVX512VL)) &&
26503 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26504 : ( 1)))
26505 : return NULL;
26506 : return gen_split_1435 (insn, operands);
26507 :
26508 : case 13:
26509 : if (!(
26510 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26511 : (TARGET_AVX512F
26512 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
26513 : && (GET_MODE_NUNITS (V8DFmode)
26514 : < GET_MODE_PRECISION (HImode))
26515 : && ix86_pre_reload_split ()) &&
26516 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26517 : ( 1)))
26518 : return NULL;
26519 : return gen_split_1438 (insn, operands);
26520 :
26521 : case 14:
26522 : if (!((
26523 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26524 : (TARGET_AVX512F
26525 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
26526 : && (GET_MODE_NUNITS (V4DFmode)
26527 : < GET_MODE_PRECISION (HImode))
26528 : && ix86_pre_reload_split ()) &&
26529 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26530 : (TARGET_AVX512VL)) &&
26531 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26532 : ( 1)))
26533 : return NULL;
26534 : return gen_split_1441 (insn, operands);
26535 :
26536 : case 15:
26537 : if (!((
26538 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26539 : (TARGET_AVX512F
26540 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
26541 : && (GET_MODE_NUNITS (V2DFmode)
26542 : < GET_MODE_PRECISION (HImode))
26543 : && ix86_pre_reload_split ()) &&
26544 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26545 : (TARGET_AVX512VL)) &&
26546 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26547 : ( 1)))
26548 : return NULL;
26549 : return gen_split_1444 (insn, operands);
26550 :
26551 : case 16:
26552 : if (!((
26553 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26554 : (TARGET_AVX512BW
26555 : && (GET_MODE_NUNITS (V8HImode)
26556 : < GET_MODE_PRECISION (HImode))
26557 : && ix86_pre_reload_split ()) &&
26558 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26559 : (TARGET_AVX512VL)) &&
26560 : #line 4858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26561 : ( 1)))
26562 : return NULL;
26563 : return gen_split_1477 (insn, operands);
26564 :
26565 : case 17:
26566 : if (!((
26567 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26568 : (TARGET_AVX512F
26569 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
26570 : && (GET_MODE_NUNITS (V32HFmode)
26571 : < GET_MODE_PRECISION (HImode))
26572 : && ix86_pre_reload_split ()) &&
26573 : #line 320 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26574 : (TARGET_AVX512FP16)) &&
26575 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26576 : ( 1)))
26577 : return NULL;
26578 : return gen_split_1420 (insn, operands);
26579 :
26580 : case 18:
26581 : if (!((
26582 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26583 : (TARGET_AVX512BW
26584 : && (GET_MODE_NUNITS (V32QImode)
26585 : < GET_MODE_PRECISION (HImode))
26586 : && ix86_pre_reload_split ()) &&
26587 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26588 : (TARGET_AVX512VL)) &&
26589 : #line 4858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26590 : ( 1)))
26591 : return NULL;
26592 : return gen_split_1468 (insn, operands);
26593 :
26594 : case 19:
26595 : if (!(
26596 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26597 : (TARGET_AVX512BW
26598 : && (GET_MODE_NUNITS (V32HImode)
26599 : < GET_MODE_PRECISION (HImode))
26600 : && ix86_pre_reload_split ()) &&
26601 : #line 4858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26602 : ( 1)))
26603 : return NULL;
26604 : return gen_split_1471 (insn, operands);
26605 :
26606 : case 20:
26607 : if (!(
26608 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26609 : (TARGET_AVX512BW
26610 : && (GET_MODE_NUNITS (V64QImode)
26611 : < GET_MODE_PRECISION (HImode))
26612 : && ix86_pre_reload_split ()) &&
26613 : #line 4858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26614 : ( 1)))
26615 : return NULL;
26616 : return gen_split_1462 (insn, operands);
26617 :
26618 : case 21:
26619 : if (!(
26620 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26621 : (TARGET_AVX512F
26622 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
26623 : && (GET_MODE_NUNITS (V16SImode)
26624 : < GET_MODE_PRECISION (SImode))
26625 : && ix86_pre_reload_split ()) &&
26626 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26627 : ( 1)))
26628 : return NULL;
26629 : return gen_split_1403 (insn, operands);
26630 :
26631 : case 22:
26632 : if (!((
26633 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26634 : (TARGET_AVX512F
26635 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
26636 : && (GET_MODE_NUNITS (V16HFmode)
26637 : < GET_MODE_PRECISION (SImode))
26638 : && ix86_pre_reload_split ()) &&
26639 : #line 321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26640 : (TARGET_AVX512FP16 && TARGET_AVX512VL)) &&
26641 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26642 : ( 1)))
26643 : return NULL;
26644 : return gen_split_1424 (insn, operands);
26645 :
26646 : case 23:
26647 : if (!(
26648 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26649 : (TARGET_AVX512F
26650 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
26651 : && (GET_MODE_NUNITS (V16SFmode)
26652 : < GET_MODE_PRECISION (SImode))
26653 : && ix86_pre_reload_split ()) &&
26654 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26655 : ( 1)))
26656 : return NULL;
26657 : return gen_split_1430 (insn, operands);
26658 :
26659 : case 24:
26660 : if (!((
26661 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26662 : (TARGET_AVX512BW
26663 : && (GET_MODE_NUNITS (V16QImode)
26664 : < GET_MODE_PRECISION (SImode))
26665 : && ix86_pre_reload_split ()) &&
26666 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26667 : (TARGET_AVX512VL)) &&
26668 : #line 4858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26669 : ( 1)))
26670 : return NULL;
26671 : return gen_split_1466 (insn, operands);
26672 :
26673 : case 25:
26674 : if (!((
26675 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26676 : (TARGET_AVX512BW
26677 : && (GET_MODE_NUNITS (V16HImode)
26678 : < GET_MODE_PRECISION (SImode))
26679 : && ix86_pre_reload_split ()) &&
26680 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26681 : (TARGET_AVX512VL)) &&
26682 : #line 4858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26683 : ( 1)))
26684 : return NULL;
26685 : return gen_split_1475 (insn, operands);
26686 :
26687 : case 26:
26688 : if (!((
26689 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26690 : (TARGET_AVX512F
26691 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
26692 : && (GET_MODE_NUNITS (V8SImode)
26693 : < GET_MODE_PRECISION (SImode))
26694 : && ix86_pre_reload_split ()) &&
26695 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26696 : (TARGET_AVX512VL)) &&
26697 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26698 : ( 1)))
26699 : return NULL;
26700 : return gen_split_1406 (insn, operands);
26701 :
26702 : case 27:
26703 : if (!((
26704 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26705 : (TARGET_AVX512F
26706 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
26707 : && (GET_MODE_NUNITS (V4SImode)
26708 : < GET_MODE_PRECISION (SImode))
26709 : && ix86_pre_reload_split ()) &&
26710 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26711 : (TARGET_AVX512VL)) &&
26712 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26713 : ( 1)))
26714 : return NULL;
26715 : return gen_split_1409 (insn, operands);
26716 :
26717 : case 28:
26718 : if (!(
26719 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26720 : (TARGET_AVX512F
26721 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
26722 : && (GET_MODE_NUNITS (V8DImode)
26723 : < GET_MODE_PRECISION (SImode))
26724 : && ix86_pre_reload_split ()) &&
26725 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26726 : ( 1)))
26727 : return NULL;
26728 : return gen_split_1412 (insn, operands);
26729 :
26730 : case 29:
26731 : if (!((
26732 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26733 : (TARGET_AVX512F
26734 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
26735 : && (GET_MODE_NUNITS (V4DImode)
26736 : < GET_MODE_PRECISION (SImode))
26737 : && ix86_pre_reload_split ()) &&
26738 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26739 : (TARGET_AVX512VL)) &&
26740 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26741 : ( 1)))
26742 : return NULL;
26743 : return gen_split_1415 (insn, operands);
26744 :
26745 : case 30:
26746 : if (!((
26747 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26748 : (TARGET_AVX512F
26749 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
26750 : && (GET_MODE_NUNITS (V2DImode)
26751 : < GET_MODE_PRECISION (SImode))
26752 : && ix86_pre_reload_split ()) &&
26753 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26754 : (TARGET_AVX512VL)) &&
26755 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26756 : ( 1)))
26757 : return NULL;
26758 : return gen_split_1418 (insn, operands);
26759 :
26760 : case 31:
26761 : if (!((
26762 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26763 : (TARGET_AVX512F
26764 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
26765 : && (GET_MODE_NUNITS (V8HFmode)
26766 : < GET_MODE_PRECISION (SImode))
26767 : && ix86_pre_reload_split ()) &&
26768 : #line 322 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26769 : (TARGET_AVX512FP16 && TARGET_AVX512VL)) &&
26770 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26771 : ( 1)))
26772 : return NULL;
26773 : return gen_split_1427 (insn, operands);
26774 :
26775 : case 32:
26776 : if (!((
26777 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26778 : (TARGET_AVX512F
26779 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
26780 : && (GET_MODE_NUNITS (V8SFmode)
26781 : < GET_MODE_PRECISION (SImode))
26782 : && ix86_pre_reload_split ()) &&
26783 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26784 : (TARGET_AVX512VL)) &&
26785 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26786 : ( 1)))
26787 : return NULL;
26788 : return gen_split_1433 (insn, operands);
26789 :
26790 : case 33:
26791 : if (!((
26792 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26793 : (TARGET_AVX512F
26794 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
26795 : && (GET_MODE_NUNITS (V4SFmode)
26796 : < GET_MODE_PRECISION (SImode))
26797 : && ix86_pre_reload_split ()) &&
26798 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26799 : (TARGET_AVX512VL)) &&
26800 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26801 : ( 1)))
26802 : return NULL;
26803 : return gen_split_1436 (insn, operands);
26804 :
26805 : case 34:
26806 : if (!(
26807 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26808 : (TARGET_AVX512F
26809 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
26810 : && (GET_MODE_NUNITS (V8DFmode)
26811 : < GET_MODE_PRECISION (SImode))
26812 : && ix86_pre_reload_split ()) &&
26813 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26814 : ( 1)))
26815 : return NULL;
26816 : return gen_split_1439 (insn, operands);
26817 :
26818 : case 35:
26819 : if (!((
26820 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26821 : (TARGET_AVX512F
26822 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
26823 : && (GET_MODE_NUNITS (V4DFmode)
26824 : < GET_MODE_PRECISION (SImode))
26825 : && ix86_pre_reload_split ()) &&
26826 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26827 : (TARGET_AVX512VL)) &&
26828 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26829 : ( 1)))
26830 : return NULL;
26831 : return gen_split_1442 (insn, operands);
26832 :
26833 : case 36:
26834 : if (!((
26835 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26836 : (TARGET_AVX512F
26837 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
26838 : && (GET_MODE_NUNITS (V2DFmode)
26839 : < GET_MODE_PRECISION (SImode))
26840 : && ix86_pre_reload_split ()) &&
26841 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26842 : (TARGET_AVX512VL)) &&
26843 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26844 : ( 1)))
26845 : return NULL;
26846 : return gen_split_1445 (insn, operands);
26847 :
26848 : case 37:
26849 : if (!((
26850 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26851 : (TARGET_AVX512BW
26852 : && (GET_MODE_NUNITS (V8HImode)
26853 : < GET_MODE_PRECISION (SImode))
26854 : && ix86_pre_reload_split ()) &&
26855 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26856 : (TARGET_AVX512VL)) &&
26857 : #line 4858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26858 : ( 1)))
26859 : return NULL;
26860 : return gen_split_1478 (insn, operands);
26861 :
26862 : case 38:
26863 : if (!((
26864 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26865 : (TARGET_AVX512F
26866 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
26867 : && (GET_MODE_NUNITS (V32HFmode)
26868 : < GET_MODE_PRECISION (SImode))
26869 : && ix86_pre_reload_split ()) &&
26870 : #line 320 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26871 : (TARGET_AVX512FP16)) &&
26872 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26873 : ( 1)))
26874 : return NULL;
26875 : return gen_split_1421 (insn, operands);
26876 :
26877 : case 39:
26878 : if (!((
26879 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26880 : (TARGET_AVX512BW
26881 : && (GET_MODE_NUNITS (V32QImode)
26882 : < GET_MODE_PRECISION (SImode))
26883 : && ix86_pre_reload_split ()) &&
26884 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26885 : (TARGET_AVX512VL)) &&
26886 : #line 4858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26887 : ( 1)))
26888 : return NULL;
26889 : return gen_split_1469 (insn, operands);
26890 :
26891 : case 40:
26892 : if (!(
26893 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26894 : (TARGET_AVX512BW
26895 : && (GET_MODE_NUNITS (V32HImode)
26896 : < GET_MODE_PRECISION (SImode))
26897 : && ix86_pre_reload_split ()) &&
26898 : #line 4858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26899 : ( 1)))
26900 : return NULL;
26901 : return gen_split_1472 (insn, operands);
26902 :
26903 : case 41:
26904 : if (!(
26905 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26906 : (TARGET_AVX512BW
26907 : && (GET_MODE_NUNITS (V64QImode)
26908 : < GET_MODE_PRECISION (SImode))
26909 : && ix86_pre_reload_split ()) &&
26910 : #line 4858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26911 : ( 1)))
26912 : return NULL;
26913 : return gen_split_1463 (insn, operands);
26914 :
26915 : case 42:
26916 : if (!(
26917 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26918 : (TARGET_AVX512F
26919 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
26920 : && (GET_MODE_NUNITS (V16SImode)
26921 : < GET_MODE_PRECISION (DImode))
26922 : && ix86_pre_reload_split ()) &&
26923 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26924 : ( 1)))
26925 : return NULL;
26926 : return gen_split_1404 (insn, operands);
26927 :
26928 : case 43:
26929 : if (!((
26930 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26931 : (TARGET_AVX512F
26932 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
26933 : && (GET_MODE_NUNITS (V16HFmode)
26934 : < GET_MODE_PRECISION (DImode))
26935 : && ix86_pre_reload_split ()) &&
26936 : #line 321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26937 : (TARGET_AVX512FP16 && TARGET_AVX512VL)) &&
26938 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26939 : ( 1)))
26940 : return NULL;
26941 : return gen_split_1425 (insn, operands);
26942 :
26943 : case 44:
26944 : if (!(
26945 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26946 : (TARGET_AVX512F
26947 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
26948 : && (GET_MODE_NUNITS (V16SFmode)
26949 : < GET_MODE_PRECISION (DImode))
26950 : && ix86_pre_reload_split ()) &&
26951 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26952 : ( 1)))
26953 : return NULL;
26954 : return gen_split_1431 (insn, operands);
26955 :
26956 : case 45:
26957 : if (!((
26958 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26959 : (TARGET_AVX512BW
26960 : && (GET_MODE_NUNITS (V16QImode)
26961 : < GET_MODE_PRECISION (DImode))
26962 : && ix86_pre_reload_split ()) &&
26963 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26964 : (TARGET_AVX512VL)) &&
26965 : #line 4858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26966 : ( 1)))
26967 : return NULL;
26968 : return gen_split_1467 (insn, operands);
26969 :
26970 : case 46:
26971 : if (!((
26972 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26973 : (TARGET_AVX512BW
26974 : && (GET_MODE_NUNITS (V16HImode)
26975 : < GET_MODE_PRECISION (DImode))
26976 : && ix86_pre_reload_split ()) &&
26977 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26978 : (TARGET_AVX512VL)) &&
26979 : #line 4858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26980 : ( 1)))
26981 : return NULL;
26982 : return gen_split_1476 (insn, operands);
26983 :
26984 : case 47:
26985 : if (!((
26986 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26987 : (TARGET_AVX512F
26988 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
26989 : && (GET_MODE_NUNITS (V8SImode)
26990 : < GET_MODE_PRECISION (DImode))
26991 : && ix86_pre_reload_split ()) &&
26992 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26993 : (TARGET_AVX512VL)) &&
26994 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26995 : ( 1)))
26996 : return NULL;
26997 : return gen_split_1407 (insn, operands);
26998 :
26999 : case 48:
27000 : if (!((
27001 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27002 : (TARGET_AVX512F
27003 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
27004 : && (GET_MODE_NUNITS (V4SImode)
27005 : < GET_MODE_PRECISION (DImode))
27006 : && ix86_pre_reload_split ()) &&
27007 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27008 : (TARGET_AVX512VL)) &&
27009 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27010 : ( 1)))
27011 : return NULL;
27012 : return gen_split_1410 (insn, operands);
27013 :
27014 : case 49:
27015 : if (!(
27016 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27017 : (TARGET_AVX512F
27018 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
27019 : && (GET_MODE_NUNITS (V8DImode)
27020 : < GET_MODE_PRECISION (DImode))
27021 : && ix86_pre_reload_split ()) &&
27022 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27023 : ( 1)))
27024 : return NULL;
27025 : return gen_split_1413 (insn, operands);
27026 :
27027 : case 50:
27028 : if (!((
27029 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27030 : (TARGET_AVX512F
27031 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
27032 : && (GET_MODE_NUNITS (V4DImode)
27033 : < GET_MODE_PRECISION (DImode))
27034 : && ix86_pre_reload_split ()) &&
27035 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27036 : (TARGET_AVX512VL)) &&
27037 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27038 : ( 1)))
27039 : return NULL;
27040 : return gen_split_1416 (insn, operands);
27041 :
27042 : case 51:
27043 : if (!((
27044 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27045 : (TARGET_AVX512F
27046 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
27047 : && (GET_MODE_NUNITS (V2DImode)
27048 : < GET_MODE_PRECISION (DImode))
27049 : && ix86_pre_reload_split ()) &&
27050 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27051 : (TARGET_AVX512VL)) &&
27052 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27053 : ( 1)))
27054 : return NULL;
27055 : return gen_split_1419 (insn, operands);
27056 :
27057 : case 52:
27058 : if (!((
27059 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27060 : (TARGET_AVX512F
27061 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
27062 : && (GET_MODE_NUNITS (V8HFmode)
27063 : < GET_MODE_PRECISION (DImode))
27064 : && ix86_pre_reload_split ()) &&
27065 : #line 322 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27066 : (TARGET_AVX512FP16 && TARGET_AVX512VL)) &&
27067 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27068 : ( 1)))
27069 : return NULL;
27070 : return gen_split_1428 (insn, operands);
27071 :
27072 : case 53:
27073 : if (!((
27074 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27075 : (TARGET_AVX512F
27076 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
27077 : && (GET_MODE_NUNITS (V8SFmode)
27078 : < GET_MODE_PRECISION (DImode))
27079 : && ix86_pre_reload_split ()) &&
27080 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27081 : (TARGET_AVX512VL)) &&
27082 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27083 : ( 1)))
27084 : return NULL;
27085 : return gen_split_1434 (insn, operands);
27086 :
27087 : case 54:
27088 : if (!((
27089 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27090 : (TARGET_AVX512F
27091 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
27092 : && (GET_MODE_NUNITS (V4SFmode)
27093 : < GET_MODE_PRECISION (DImode))
27094 : && ix86_pre_reload_split ()) &&
27095 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27096 : (TARGET_AVX512VL)) &&
27097 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27098 : ( 1)))
27099 : return NULL;
27100 : return gen_split_1437 (insn, operands);
27101 :
27102 : case 55:
27103 : if (!(
27104 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27105 : (TARGET_AVX512F
27106 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
27107 : && (GET_MODE_NUNITS (V8DFmode)
27108 : < GET_MODE_PRECISION (DImode))
27109 : && ix86_pre_reload_split ()) &&
27110 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27111 : ( 1)))
27112 : return NULL;
27113 : return gen_split_1440 (insn, operands);
27114 :
27115 : case 56:
27116 : if (!((
27117 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27118 : (TARGET_AVX512F
27119 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
27120 : && (GET_MODE_NUNITS (V4DFmode)
27121 : < GET_MODE_PRECISION (DImode))
27122 : && ix86_pre_reload_split ()) &&
27123 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27124 : (TARGET_AVX512VL)) &&
27125 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27126 : ( 1)))
27127 : return NULL;
27128 : return gen_split_1443 (insn, operands);
27129 :
27130 : case 57:
27131 : if (!((
27132 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27133 : (TARGET_AVX512F
27134 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
27135 : && (GET_MODE_NUNITS (V2DFmode)
27136 : < GET_MODE_PRECISION (DImode))
27137 : && ix86_pre_reload_split ()) &&
27138 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27139 : (TARGET_AVX512VL)) &&
27140 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27141 : ( 1)))
27142 : return NULL;
27143 : return gen_split_1446 (insn, operands);
27144 :
27145 : case 58:
27146 : if (!((
27147 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27148 : (TARGET_AVX512BW
27149 : && (GET_MODE_NUNITS (V8HImode)
27150 : < GET_MODE_PRECISION (DImode))
27151 : && ix86_pre_reload_split ()) &&
27152 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27153 : (TARGET_AVX512VL)) &&
27154 : #line 4858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27155 : ( 1)))
27156 : return NULL;
27157 : return gen_split_1479 (insn, operands);
27158 :
27159 : case 59:
27160 : if (!((
27161 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27162 : (TARGET_AVX512F
27163 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
27164 : && (GET_MODE_NUNITS (V32HFmode)
27165 : < GET_MODE_PRECISION (DImode))
27166 : && ix86_pre_reload_split ()) &&
27167 : #line 320 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27168 : (TARGET_AVX512FP16)) &&
27169 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27170 : ( 1)))
27171 : return NULL;
27172 : return gen_split_1422 (insn, operands);
27173 :
27174 : case 60:
27175 : if (!((
27176 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27177 : (TARGET_AVX512BW
27178 : && (GET_MODE_NUNITS (V32QImode)
27179 : < GET_MODE_PRECISION (DImode))
27180 : && ix86_pre_reload_split ()) &&
27181 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27182 : (TARGET_AVX512VL)) &&
27183 : #line 4858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27184 : ( 1)))
27185 : return NULL;
27186 : return gen_split_1470 (insn, operands);
27187 :
27188 : case 61:
27189 : if (!(
27190 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27191 : (TARGET_AVX512BW
27192 : && (GET_MODE_NUNITS (V32HImode)
27193 : < GET_MODE_PRECISION (DImode))
27194 : && ix86_pre_reload_split ()) &&
27195 : #line 4858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27196 : ( 1)))
27197 : return NULL;
27198 : return gen_split_1473 (insn, operands);
27199 :
27200 : case 62:
27201 : if (!(
27202 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27203 : (TARGET_AVX512BW
27204 : && (GET_MODE_NUNITS (V64QImode)
27205 : < GET_MODE_PRECISION (DImode))
27206 : && ix86_pre_reload_split ()) &&
27207 : #line 4858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27208 : ( 1)))
27209 : return NULL;
27210 : return gen_split_1464 (insn, operands);
27211 :
27212 : case 63:
27213 : if (!(
27214 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27215 : (TARGET_AVX512BW
27216 : && ix86_pre_reload_split ()
27217 : && (GET_MODE_NUNITS (V64QImode)
27218 : < GET_MODE_PRECISION (HImode))
27219 : && ix86_pre_reload_split ()) &&
27220 : #line 4994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27221 : ( 1)))
27222 : return NULL;
27223 : return gen_split_1516 (insn, operands);
27224 :
27225 : case 64:
27226 : if (!((
27227 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27228 : (TARGET_AVX512BW
27229 : && ix86_pre_reload_split ()
27230 : && (GET_MODE_NUNITS (V16QImode)
27231 : < GET_MODE_PRECISION (HImode))
27232 : && ix86_pre_reload_split ()) &&
27233 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27234 : (TARGET_AVX512VL)) &&
27235 : #line 4994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27236 : ( 1)))
27237 : return NULL;
27238 : return gen_split_1519 (insn, operands);
27239 :
27240 : case 65:
27241 : if (!((
27242 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27243 : (TARGET_AVX512BW
27244 : && ix86_pre_reload_split ()
27245 : && (GET_MODE_NUNITS (V16HImode)
27246 : < GET_MODE_PRECISION (HImode))
27247 : && ix86_pre_reload_split ()) &&
27248 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27249 : (TARGET_AVX512VL)) &&
27250 : #line 4994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27251 : ( 1)))
27252 : return NULL;
27253 : return gen_split_1528 (insn, operands);
27254 :
27255 : case 66:
27256 : if (!(
27257 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27258 : (TARGET_AVX512F
27259 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
27260 : && (GET_MODE_NUNITS (V16SImode)
27261 : < GET_MODE_PRECISION (HImode))
27262 : && ix86_pre_reload_split ()) &&
27263 : #line 5084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27264 : ( 1)))
27265 : return NULL;
27266 : return gen_split_1534 (insn, operands);
27267 :
27268 : case 67:
27269 : if (!((
27270 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27271 : (TARGET_AVX512BW
27272 : && ix86_pre_reload_split ()
27273 : && (GET_MODE_NUNITS (V32QImode)
27274 : < GET_MODE_PRECISION (HImode))
27275 : && ix86_pre_reload_split ()) &&
27276 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27277 : (TARGET_AVX512VL)) &&
27278 : #line 4994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27279 : ( 1)))
27280 : return NULL;
27281 : return gen_split_1522 (insn, operands);
27282 :
27283 : case 68:
27284 : if (!(
27285 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27286 : (TARGET_AVX512BW
27287 : && ix86_pre_reload_split ()
27288 : && (GET_MODE_NUNITS (V32HImode)
27289 : < GET_MODE_PRECISION (HImode))
27290 : && ix86_pre_reload_split ()) &&
27291 : #line 4994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27292 : ( 1)))
27293 : return NULL;
27294 : return gen_split_1525 (insn, operands);
27295 :
27296 : case 69:
27297 : if (!((
27298 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27299 : (TARGET_AVX512BW
27300 : && ix86_pre_reload_split ()
27301 : && (GET_MODE_NUNITS (V8HImode)
27302 : < GET_MODE_PRECISION (HImode))
27303 : && ix86_pre_reload_split ()) &&
27304 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27305 : (TARGET_AVX512VL)) &&
27306 : #line 4994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27307 : ( 1)))
27308 : return NULL;
27309 : return gen_split_1531 (insn, operands);
27310 :
27311 : case 70:
27312 : if (!((
27313 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27314 : (TARGET_AVX512F
27315 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
27316 : && (GET_MODE_NUNITS (V8SImode)
27317 : < GET_MODE_PRECISION (HImode))
27318 : && ix86_pre_reload_split ()) &&
27319 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27320 : (TARGET_AVX512VL)) &&
27321 : #line 5084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27322 : ( 1)))
27323 : return NULL;
27324 : return gen_split_1535 (insn, operands);
27325 :
27326 : case 71:
27327 : if (!((
27328 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27329 : (TARGET_AVX512F
27330 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
27331 : && (GET_MODE_NUNITS (V4SImode)
27332 : < GET_MODE_PRECISION (HImode))
27333 : && ix86_pre_reload_split ()) &&
27334 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27335 : (TARGET_AVX512VL)) &&
27336 : #line 5084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27337 : ( 1)))
27338 : return NULL;
27339 : return gen_split_1536 (insn, operands);
27340 :
27341 : case 72:
27342 : if (!(
27343 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27344 : (TARGET_AVX512F
27345 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
27346 : && (GET_MODE_NUNITS (V8DImode)
27347 : < GET_MODE_PRECISION (HImode))
27348 : && ix86_pre_reload_split ()) &&
27349 : #line 5084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27350 : ( 1)))
27351 : return NULL;
27352 : return gen_split_1537 (insn, operands);
27353 :
27354 : case 73:
27355 : if (!((
27356 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27357 : (TARGET_AVX512F
27358 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
27359 : && (GET_MODE_NUNITS (V4DImode)
27360 : < GET_MODE_PRECISION (HImode))
27361 : && ix86_pre_reload_split ()) &&
27362 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27363 : (TARGET_AVX512VL)) &&
27364 : #line 5084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27365 : ( 1)))
27366 : return NULL;
27367 : return gen_split_1538 (insn, operands);
27368 :
27369 : case 74:
27370 : if (!((
27371 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27372 : (TARGET_AVX512F
27373 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
27374 : && (GET_MODE_NUNITS (V2DImode)
27375 : < GET_MODE_PRECISION (HImode))
27376 : && ix86_pre_reload_split ()) &&
27377 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27378 : (TARGET_AVX512VL)) &&
27379 : #line 5084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27380 : ( 1)))
27381 : return NULL;
27382 : return gen_split_1539 (insn, operands);
27383 :
27384 : case 75:
27385 : if (!(
27386 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27387 : (TARGET_AVX512BW
27388 : && ix86_pre_reload_split ()
27389 : && (GET_MODE_NUNITS (V64QImode)
27390 : < GET_MODE_PRECISION (SImode))
27391 : && ix86_pre_reload_split ()) &&
27392 : #line 4994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27393 : ( 1)))
27394 : return NULL;
27395 : return gen_split_1517 (insn, operands);
27396 :
27397 : case 76:
27398 : if (!((
27399 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27400 : (TARGET_AVX512BW
27401 : && ix86_pre_reload_split ()
27402 : && (GET_MODE_NUNITS (V16QImode)
27403 : < GET_MODE_PRECISION (SImode))
27404 : && ix86_pre_reload_split ()) &&
27405 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27406 : (TARGET_AVX512VL)) &&
27407 : #line 4994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27408 : ( 1)))
27409 : return NULL;
27410 : return gen_split_1520 (insn, operands);
27411 :
27412 : case 77:
27413 : if (!((
27414 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27415 : (TARGET_AVX512BW
27416 : && ix86_pre_reload_split ()
27417 : && (GET_MODE_NUNITS (V16HImode)
27418 : < GET_MODE_PRECISION (SImode))
27419 : && ix86_pre_reload_split ()) &&
27420 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27421 : (TARGET_AVX512VL)) &&
27422 : #line 4994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27423 : ( 1)))
27424 : return NULL;
27425 : return gen_split_1529 (insn, operands);
27426 :
27427 : case 78:
27428 : if (!(
27429 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27430 : (TARGET_AVX512F
27431 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
27432 : && (GET_MODE_NUNITS (V16SImode)
27433 : < GET_MODE_PRECISION (SImode))
27434 : && ix86_pre_reload_split ()) &&
27435 : #line 5084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27436 : ( 1)))
27437 : return NULL;
27438 : return gen_split_1540 (insn, operands);
27439 :
27440 : case 79:
27441 : if (!((
27442 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27443 : (TARGET_AVX512BW
27444 : && ix86_pre_reload_split ()
27445 : && (GET_MODE_NUNITS (V32QImode)
27446 : < GET_MODE_PRECISION (SImode))
27447 : && ix86_pre_reload_split ()) &&
27448 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27449 : (TARGET_AVX512VL)) &&
27450 : #line 4994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27451 : ( 1)))
27452 : return NULL;
27453 : return gen_split_1523 (insn, operands);
27454 :
27455 : case 80:
27456 : if (!(
27457 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27458 : (TARGET_AVX512BW
27459 : && ix86_pre_reload_split ()
27460 : && (GET_MODE_NUNITS (V32HImode)
27461 : < GET_MODE_PRECISION (SImode))
27462 : && ix86_pre_reload_split ()) &&
27463 : #line 4994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27464 : ( 1)))
27465 : return NULL;
27466 : return gen_split_1526 (insn, operands);
27467 :
27468 : case 81:
27469 : if (!((
27470 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27471 : (TARGET_AVX512BW
27472 : && ix86_pre_reload_split ()
27473 : && (GET_MODE_NUNITS (V8HImode)
27474 : < GET_MODE_PRECISION (SImode))
27475 : && ix86_pre_reload_split ()) &&
27476 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27477 : (TARGET_AVX512VL)) &&
27478 : #line 4994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27479 : ( 1)))
27480 : return NULL;
27481 : return gen_split_1532 (insn, operands);
27482 :
27483 : case 82:
27484 : if (!((
27485 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27486 : (TARGET_AVX512F
27487 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
27488 : && (GET_MODE_NUNITS (V8SImode)
27489 : < GET_MODE_PRECISION (SImode))
27490 : && ix86_pre_reload_split ()) &&
27491 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27492 : (TARGET_AVX512VL)) &&
27493 : #line 5084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27494 : ( 1)))
27495 : return NULL;
27496 : return gen_split_1541 (insn, operands);
27497 :
27498 : case 83:
27499 : if (!((
27500 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27501 : (TARGET_AVX512F
27502 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
27503 : && (GET_MODE_NUNITS (V4SImode)
27504 : < GET_MODE_PRECISION (SImode))
27505 : && ix86_pre_reload_split ()) &&
27506 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27507 : (TARGET_AVX512VL)) &&
27508 : #line 5084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27509 : ( 1)))
27510 : return NULL;
27511 : return gen_split_1542 (insn, operands);
27512 :
27513 : case 84:
27514 : if (!(
27515 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27516 : (TARGET_AVX512F
27517 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
27518 : && (GET_MODE_NUNITS (V8DImode)
27519 : < GET_MODE_PRECISION (SImode))
27520 : && ix86_pre_reload_split ()) &&
27521 : #line 5084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27522 : ( 1)))
27523 : return NULL;
27524 : return gen_split_1543 (insn, operands);
27525 :
27526 : case 85:
27527 : if (!((
27528 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27529 : (TARGET_AVX512F
27530 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
27531 : && (GET_MODE_NUNITS (V4DImode)
27532 : < GET_MODE_PRECISION (SImode))
27533 : && ix86_pre_reload_split ()) &&
27534 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27535 : (TARGET_AVX512VL)) &&
27536 : #line 5084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27537 : ( 1)))
27538 : return NULL;
27539 : return gen_split_1544 (insn, operands);
27540 :
27541 : case 86:
27542 : if (!((
27543 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27544 : (TARGET_AVX512F
27545 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
27546 : && (GET_MODE_NUNITS (V2DImode)
27547 : < GET_MODE_PRECISION (SImode))
27548 : && ix86_pre_reload_split ()) &&
27549 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27550 : (TARGET_AVX512VL)) &&
27551 : #line 5084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27552 : ( 1)))
27553 : return NULL;
27554 : return gen_split_1545 (insn, operands);
27555 :
27556 : case 87:
27557 : if (!(
27558 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27559 : (TARGET_AVX512BW
27560 : && ix86_pre_reload_split ()
27561 : && (GET_MODE_NUNITS (V64QImode)
27562 : < GET_MODE_PRECISION (DImode))
27563 : && ix86_pre_reload_split ()) &&
27564 : #line 4994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27565 : ( 1)))
27566 : return NULL;
27567 : return gen_split_1518 (insn, operands);
27568 :
27569 : case 88:
27570 : if (!((
27571 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27572 : (TARGET_AVX512BW
27573 : && ix86_pre_reload_split ()
27574 : && (GET_MODE_NUNITS (V16QImode)
27575 : < GET_MODE_PRECISION (DImode))
27576 : && ix86_pre_reload_split ()) &&
27577 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27578 : (TARGET_AVX512VL)) &&
27579 : #line 4994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27580 : ( 1)))
27581 : return NULL;
27582 : return gen_split_1521 (insn, operands);
27583 :
27584 : case 89:
27585 : if (!((
27586 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27587 : (TARGET_AVX512BW
27588 : && ix86_pre_reload_split ()
27589 : && (GET_MODE_NUNITS (V16HImode)
27590 : < GET_MODE_PRECISION (DImode))
27591 : && ix86_pre_reload_split ()) &&
27592 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27593 : (TARGET_AVX512VL)) &&
27594 : #line 4994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27595 : ( 1)))
27596 : return NULL;
27597 : return gen_split_1530 (insn, operands);
27598 :
27599 : case 90:
27600 : if (!(
27601 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27602 : (TARGET_AVX512F
27603 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
27604 : && (GET_MODE_NUNITS (V16SImode)
27605 : < GET_MODE_PRECISION (DImode))
27606 : && ix86_pre_reload_split ()) &&
27607 : #line 5084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27608 : ( 1)))
27609 : return NULL;
27610 : return gen_split_1546 (insn, operands);
27611 :
27612 : case 91:
27613 : if (!((
27614 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27615 : (TARGET_AVX512BW
27616 : && ix86_pre_reload_split ()
27617 : && (GET_MODE_NUNITS (V32QImode)
27618 : < GET_MODE_PRECISION (DImode))
27619 : && ix86_pre_reload_split ()) &&
27620 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27621 : (TARGET_AVX512VL)) &&
27622 : #line 4994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27623 : ( 1)))
27624 : return NULL;
27625 : return gen_split_1524 (insn, operands);
27626 :
27627 : case 92:
27628 : if (!(
27629 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27630 : (TARGET_AVX512BW
27631 : && ix86_pre_reload_split ()
27632 : && (GET_MODE_NUNITS (V32HImode)
27633 : < GET_MODE_PRECISION (DImode))
27634 : && ix86_pre_reload_split ()) &&
27635 : #line 4994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27636 : ( 1)))
27637 : return NULL;
27638 : return gen_split_1527 (insn, operands);
27639 :
27640 : case 93:
27641 : if (!((
27642 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27643 : (TARGET_AVX512BW
27644 : && ix86_pre_reload_split ()
27645 : && (GET_MODE_NUNITS (V8HImode)
27646 : < GET_MODE_PRECISION (DImode))
27647 : && ix86_pre_reload_split ()) &&
27648 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27649 : (TARGET_AVX512VL)) &&
27650 : #line 4994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27651 : ( 1)))
27652 : return NULL;
27653 : return gen_split_1533 (insn, operands);
27654 :
27655 : case 94:
27656 : if (!((
27657 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27658 : (TARGET_AVX512F
27659 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
27660 : && (GET_MODE_NUNITS (V8SImode)
27661 : < GET_MODE_PRECISION (DImode))
27662 : && ix86_pre_reload_split ()) &&
27663 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27664 : (TARGET_AVX512VL)) &&
27665 : #line 5084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27666 : ( 1)))
27667 : return NULL;
27668 : return gen_split_1547 (insn, operands);
27669 :
27670 : case 95:
27671 : if (!((
27672 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27673 : (TARGET_AVX512F
27674 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
27675 : && (GET_MODE_NUNITS (V4SImode)
27676 : < GET_MODE_PRECISION (DImode))
27677 : && ix86_pre_reload_split ()) &&
27678 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27679 : (TARGET_AVX512VL)) &&
27680 : #line 5084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27681 : ( 1)))
27682 : return NULL;
27683 : return gen_split_1548 (insn, operands);
27684 :
27685 : case 96:
27686 : if (!(
27687 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27688 : (TARGET_AVX512F
27689 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
27690 : && (GET_MODE_NUNITS (V8DImode)
27691 : < GET_MODE_PRECISION (DImode))
27692 : && ix86_pre_reload_split ()) &&
27693 : #line 5084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27694 : ( 1)))
27695 : return NULL;
27696 : return gen_split_1549 (insn, operands);
27697 :
27698 : case 97:
27699 : if (!((
27700 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27701 : (TARGET_AVX512F
27702 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
27703 : && (GET_MODE_NUNITS (V4DImode)
27704 : < GET_MODE_PRECISION (DImode))
27705 : && ix86_pre_reload_split ()) &&
27706 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27707 : (TARGET_AVX512VL)) &&
27708 : #line 5084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27709 : ( 1)))
27710 : return NULL;
27711 : return gen_split_1550 (insn, operands);
27712 :
27713 : case 98:
27714 : if (!((
27715 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27716 : (TARGET_AVX512F
27717 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
27718 : && (GET_MODE_NUNITS (V2DImode)
27719 : < GET_MODE_PRECISION (DImode))
27720 : && ix86_pre_reload_split ()) &&
27721 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27722 : (TARGET_AVX512VL)) &&
27723 : #line 5084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27724 : ( 1)))
27725 : return NULL;
27726 : return gen_split_1551 (insn, operands);
27727 :
27728 : default:
27729 : return NULL;
27730 : }
27731 :
27732 : default:
27733 : return NULL;
27734 : }
27735 : }
27736 :
27737 : rtx_insn *
27738 : split_68 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
27739 : {
27740 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
27741 : rtx x2, x3, x4;
27742 : rtx_insn *res ATTRIBUTE_UNUSED;
27743 : x2 = XEXP (x1, 1);
27744 : x3 = XEXP (x2, 0);
27745 : x4 = XEXP (x3, 0);
27746 : switch (GET_CODE (x4))
27747 : {
27748 : case REG:
27749 : case SUBREG:
27750 : case MEM:
27751 : case NOT:
27752 : switch (pattern541 (x2))
27753 : {
27754 : case 0:
27755 : if (!((
27756 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27757 : ((64 == 64 || TARGET_AVX512VL
27758 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27759 : && ix86_pre_reload_split ()
27760 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27761 : STRIP_UNARY (operands[4]))
27762 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27763 : STRIP_UNARY (operands[4]))
27764 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27765 : STRIP_UNARY (operands[3]))
27766 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27767 : STRIP_UNARY (operands[3])))) &&
27768 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27769 : (TARGET_AVX512F)) &&
27770 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27771 : ( 1)))
27772 : return NULL;
27773 : return gen_split_2083 (insn, operands);
27774 :
27775 : case 1:
27776 : if (!((
27777 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27778 : ((32 == 64 || TARGET_AVX512VL
27779 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27780 : && ix86_pre_reload_split ()
27781 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27782 : STRIP_UNARY (operands[4]))
27783 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27784 : STRIP_UNARY (operands[4]))
27785 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27786 : STRIP_UNARY (operands[3]))
27787 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27788 : STRIP_UNARY (operands[3])))) &&
27789 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27790 : (TARGET_AVX)) &&
27791 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27792 : ( 1)))
27793 : return NULL;
27794 : return gen_split_2110 (insn, operands);
27795 :
27796 : case 2:
27797 : if (!(
27798 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27799 : ((16 == 64 || TARGET_AVX512VL
27800 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27801 : && ix86_pre_reload_split ()
27802 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27803 : STRIP_UNARY (operands[4]))
27804 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27805 : STRIP_UNARY (operands[4]))
27806 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27807 : STRIP_UNARY (operands[3]))
27808 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27809 : STRIP_UNARY (operands[3])))) &&
27810 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27811 : ( 1)))
27812 : return NULL;
27813 : return gen_split_2137 (insn, operands);
27814 :
27815 : case 3:
27816 : if (!((
27817 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27818 : ((64 == 64 || TARGET_AVX512VL
27819 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27820 : && ix86_pre_reload_split ()
27821 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27822 : STRIP_UNARY (operands[4]))
27823 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27824 : STRIP_UNARY (operands[4]))
27825 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27826 : STRIP_UNARY (operands[3]))
27827 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27828 : STRIP_UNARY (operands[3])))) &&
27829 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27830 : (TARGET_AVX512F)) &&
27831 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27832 : ( 1)))
27833 : return NULL;
27834 : return gen_split_2164 (insn, operands);
27835 :
27836 : case 4:
27837 : if (!((
27838 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27839 : ((32 == 64 || TARGET_AVX512VL
27840 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27841 : && ix86_pre_reload_split ()
27842 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27843 : STRIP_UNARY (operands[4]))
27844 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27845 : STRIP_UNARY (operands[4]))
27846 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27847 : STRIP_UNARY (operands[3]))
27848 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27849 : STRIP_UNARY (operands[3])))) &&
27850 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27851 : (TARGET_AVX)) &&
27852 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27853 : ( 1)))
27854 : return NULL;
27855 : return gen_split_2191 (insn, operands);
27856 :
27857 : case 5:
27858 : if (!(
27859 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27860 : ((16 == 64 || TARGET_AVX512VL
27861 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27862 : && ix86_pre_reload_split ()
27863 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27864 : STRIP_UNARY (operands[4]))
27865 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27866 : STRIP_UNARY (operands[4]))
27867 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27868 : STRIP_UNARY (operands[3]))
27869 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27870 : STRIP_UNARY (operands[3])))) &&
27871 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27872 : ( 1)))
27873 : return NULL;
27874 : return gen_split_2218 (insn, operands);
27875 :
27876 : case 6:
27877 : if (!((
27878 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27879 : ((64 == 64 || TARGET_AVX512VL
27880 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27881 : && ix86_pre_reload_split ()
27882 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27883 : STRIP_UNARY (operands[4]))
27884 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27885 : STRIP_UNARY (operands[4]))
27886 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27887 : STRIP_UNARY (operands[3]))
27888 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27889 : STRIP_UNARY (operands[3])))) &&
27890 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27891 : (TARGET_AVX512F)) &&
27892 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27893 : ( 1)))
27894 : return NULL;
27895 : return gen_split_2245 (insn, operands);
27896 :
27897 : case 7:
27898 : if (!((
27899 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27900 : ((32 == 64 || TARGET_AVX512VL
27901 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27902 : && ix86_pre_reload_split ()
27903 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27904 : STRIP_UNARY (operands[4]))
27905 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27906 : STRIP_UNARY (operands[4]))
27907 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27908 : STRIP_UNARY (operands[3]))
27909 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27910 : STRIP_UNARY (operands[3])))) &&
27911 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27912 : (TARGET_AVX)) &&
27913 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27914 : ( 1)))
27915 : return NULL;
27916 : return gen_split_2272 (insn, operands);
27917 :
27918 : case 8:
27919 : if (!(
27920 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27921 : ((16 == 64 || TARGET_AVX512VL
27922 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27923 : && ix86_pre_reload_split ()
27924 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27925 : STRIP_UNARY (operands[4]))
27926 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27927 : STRIP_UNARY (operands[4]))
27928 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27929 : STRIP_UNARY (operands[3]))
27930 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27931 : STRIP_UNARY (operands[3])))) &&
27932 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27933 : ( 1)))
27934 : return NULL;
27935 : return gen_split_2299 (insn, operands);
27936 :
27937 : case 9:
27938 : if (!((
27939 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27940 : ((64 == 64 || TARGET_AVX512VL
27941 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27942 : && ix86_pre_reload_split ()
27943 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27944 : STRIP_UNARY (operands[4]))
27945 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27946 : STRIP_UNARY (operands[4]))
27947 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27948 : STRIP_UNARY (operands[3]))
27949 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27950 : STRIP_UNARY (operands[3])))) &&
27951 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27952 : (TARGET_AVX512F)) &&
27953 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27954 : ( 1)))
27955 : return NULL;
27956 : return gen_split_2326 (insn, operands);
27957 :
27958 : case 10:
27959 : if (!((
27960 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27961 : ((32 == 64 || TARGET_AVX512VL
27962 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27963 : && ix86_pre_reload_split ()
27964 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27965 : STRIP_UNARY (operands[4]))
27966 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27967 : STRIP_UNARY (operands[4]))
27968 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27969 : STRIP_UNARY (operands[3]))
27970 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27971 : STRIP_UNARY (operands[3])))) &&
27972 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27973 : (TARGET_AVX)) &&
27974 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27975 : ( 1)))
27976 : return NULL;
27977 : return gen_split_2353 (insn, operands);
27978 :
27979 : case 11:
27980 : if (!((
27981 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27982 : ((16 == 64 || TARGET_AVX512VL
27983 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27984 : && ix86_pre_reload_split ()
27985 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27986 : STRIP_UNARY (operands[4]))
27987 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27988 : STRIP_UNARY (operands[4]))
27989 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27990 : STRIP_UNARY (operands[3]))
27991 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27992 : STRIP_UNARY (operands[3])))) &&
27993 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27994 : (TARGET_SSE2)) &&
27995 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27996 : ( 1)))
27997 : return NULL;
27998 : return gen_split_2380 (insn, operands);
27999 :
28000 : case 12:
28001 : if (!((
28002 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28003 : ((64 == 64 || TARGET_AVX512VL
28004 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28005 : && ix86_pre_reload_split ()
28006 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28007 : STRIP_UNARY (operands[4]))
28008 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28009 : STRIP_UNARY (operands[4]))
28010 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28011 : STRIP_UNARY (operands[3]))
28012 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28013 : STRIP_UNARY (operands[3])))) &&
28014 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28015 : (TARGET_AVX512F)) &&
28016 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28017 : ( 1)))
28018 : return NULL;
28019 : return gen_split_2086 (insn, operands);
28020 :
28021 : case 13:
28022 : if (!((
28023 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28024 : ((32 == 64 || TARGET_AVX512VL
28025 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28026 : && ix86_pre_reload_split ()
28027 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28028 : STRIP_UNARY (operands[4]))
28029 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28030 : STRIP_UNARY (operands[4]))
28031 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28032 : STRIP_UNARY (operands[3]))
28033 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28034 : STRIP_UNARY (operands[3])))) &&
28035 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28036 : (TARGET_AVX)) &&
28037 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28038 : ( 1)))
28039 : return NULL;
28040 : return gen_split_2113 (insn, operands);
28041 :
28042 : case 14:
28043 : if (!(
28044 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28045 : ((16 == 64 || TARGET_AVX512VL
28046 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28047 : && ix86_pre_reload_split ()
28048 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28049 : STRIP_UNARY (operands[4]))
28050 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28051 : STRIP_UNARY (operands[4]))
28052 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28053 : STRIP_UNARY (operands[3]))
28054 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28055 : STRIP_UNARY (operands[3])))) &&
28056 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28057 : ( 1)))
28058 : return NULL;
28059 : return gen_split_2140 (insn, operands);
28060 :
28061 : case 15:
28062 : if (!((
28063 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28064 : ((64 == 64 || TARGET_AVX512VL
28065 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28066 : && ix86_pre_reload_split ()
28067 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28068 : STRIP_UNARY (operands[4]))
28069 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28070 : STRIP_UNARY (operands[4]))
28071 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28072 : STRIP_UNARY (operands[3]))
28073 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28074 : STRIP_UNARY (operands[3])))) &&
28075 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28076 : (TARGET_AVX512F)) &&
28077 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28078 : ( 1)))
28079 : return NULL;
28080 : return gen_split_2167 (insn, operands);
28081 :
28082 : case 16:
28083 : if (!((
28084 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28085 : ((32 == 64 || TARGET_AVX512VL
28086 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28087 : && ix86_pre_reload_split ()
28088 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28089 : STRIP_UNARY (operands[4]))
28090 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28091 : STRIP_UNARY (operands[4]))
28092 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28093 : STRIP_UNARY (operands[3]))
28094 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28095 : STRIP_UNARY (operands[3])))) &&
28096 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28097 : (TARGET_AVX)) &&
28098 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28099 : ( 1)))
28100 : return NULL;
28101 : return gen_split_2194 (insn, operands);
28102 :
28103 : case 17:
28104 : if (!(
28105 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28106 : ((16 == 64 || TARGET_AVX512VL
28107 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28108 : && ix86_pre_reload_split ()
28109 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28110 : STRIP_UNARY (operands[4]))
28111 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28112 : STRIP_UNARY (operands[4]))
28113 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28114 : STRIP_UNARY (operands[3]))
28115 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28116 : STRIP_UNARY (operands[3])))) &&
28117 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28118 : ( 1)))
28119 : return NULL;
28120 : return gen_split_2221 (insn, operands);
28121 :
28122 : case 18:
28123 : if (!((
28124 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28125 : ((64 == 64 || TARGET_AVX512VL
28126 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28127 : && ix86_pre_reload_split ()
28128 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28129 : STRIP_UNARY (operands[4]))
28130 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28131 : STRIP_UNARY (operands[4]))
28132 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28133 : STRIP_UNARY (operands[3]))
28134 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28135 : STRIP_UNARY (operands[3])))) &&
28136 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28137 : (TARGET_AVX512F)) &&
28138 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28139 : ( 1)))
28140 : return NULL;
28141 : return gen_split_2248 (insn, operands);
28142 :
28143 : case 19:
28144 : if (!((
28145 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28146 : ((32 == 64 || TARGET_AVX512VL
28147 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28148 : && ix86_pre_reload_split ()
28149 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28150 : STRIP_UNARY (operands[4]))
28151 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28152 : STRIP_UNARY (operands[4]))
28153 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28154 : STRIP_UNARY (operands[3]))
28155 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28156 : STRIP_UNARY (operands[3])))) &&
28157 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28158 : (TARGET_AVX)) &&
28159 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28160 : ( 1)))
28161 : return NULL;
28162 : return gen_split_2275 (insn, operands);
28163 :
28164 : case 20:
28165 : if (!(
28166 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28167 : ((16 == 64 || TARGET_AVX512VL
28168 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28169 : && ix86_pre_reload_split ()
28170 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28171 : STRIP_UNARY (operands[4]))
28172 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28173 : STRIP_UNARY (operands[4]))
28174 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28175 : STRIP_UNARY (operands[3]))
28176 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28177 : STRIP_UNARY (operands[3])))) &&
28178 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28179 : ( 1)))
28180 : return NULL;
28181 : return gen_split_2302 (insn, operands);
28182 :
28183 : case 21:
28184 : if (!((
28185 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28186 : ((64 == 64 || TARGET_AVX512VL
28187 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28188 : && ix86_pre_reload_split ()
28189 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28190 : STRIP_UNARY (operands[4]))
28191 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28192 : STRIP_UNARY (operands[4]))
28193 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28194 : STRIP_UNARY (operands[3]))
28195 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28196 : STRIP_UNARY (operands[3])))) &&
28197 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28198 : (TARGET_AVX512F)) &&
28199 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28200 : ( 1)))
28201 : return NULL;
28202 : return gen_split_2329 (insn, operands);
28203 :
28204 : case 22:
28205 : if (!((
28206 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28207 : ((32 == 64 || TARGET_AVX512VL
28208 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28209 : && ix86_pre_reload_split ()
28210 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28211 : STRIP_UNARY (operands[4]))
28212 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28213 : STRIP_UNARY (operands[4]))
28214 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28215 : STRIP_UNARY (operands[3]))
28216 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28217 : STRIP_UNARY (operands[3])))) &&
28218 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28219 : (TARGET_AVX)) &&
28220 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28221 : ( 1)))
28222 : return NULL;
28223 : return gen_split_2356 (insn, operands);
28224 :
28225 : case 23:
28226 : if (!((
28227 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28228 : ((16 == 64 || TARGET_AVX512VL
28229 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28230 : && ix86_pre_reload_split ()
28231 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28232 : STRIP_UNARY (operands[4]))
28233 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28234 : STRIP_UNARY (operands[4]))
28235 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28236 : STRIP_UNARY (operands[3]))
28237 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28238 : STRIP_UNARY (operands[3])))) &&
28239 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28240 : (TARGET_SSE2)) &&
28241 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28242 : ( 1)))
28243 : return NULL;
28244 : return gen_split_2383 (insn, operands);
28245 :
28246 : case 24:
28247 : if (!((
28248 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28249 : ((64 == 64 || TARGET_AVX512VL
28250 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28251 : && ix86_pre_reload_split ()
28252 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28253 : STRIP_UNARY (operands[4]))
28254 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28255 : STRIP_UNARY (operands[4]))
28256 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28257 : STRIP_UNARY (operands[3]))
28258 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28259 : STRIP_UNARY (operands[3])))) &&
28260 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28261 : (TARGET_AVX512F)) &&
28262 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28263 : ( 1)))
28264 : return NULL;
28265 : return gen_split_2089 (insn, operands);
28266 :
28267 : case 25:
28268 : if (!((
28269 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28270 : ((32 == 64 || TARGET_AVX512VL
28271 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28272 : && ix86_pre_reload_split ()
28273 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28274 : STRIP_UNARY (operands[4]))
28275 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28276 : STRIP_UNARY (operands[4]))
28277 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28278 : STRIP_UNARY (operands[3]))
28279 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28280 : STRIP_UNARY (operands[3])))) &&
28281 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28282 : (TARGET_AVX)) &&
28283 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28284 : ( 1)))
28285 : return NULL;
28286 : return gen_split_2116 (insn, operands);
28287 :
28288 : case 26:
28289 : if (!(
28290 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28291 : ((16 == 64 || TARGET_AVX512VL
28292 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28293 : && ix86_pre_reload_split ()
28294 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28295 : STRIP_UNARY (operands[4]))
28296 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28297 : STRIP_UNARY (operands[4]))
28298 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28299 : STRIP_UNARY (operands[3]))
28300 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28301 : STRIP_UNARY (operands[3])))) &&
28302 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28303 : ( 1)))
28304 : return NULL;
28305 : return gen_split_2143 (insn, operands);
28306 :
28307 : case 27:
28308 : if (!((
28309 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28310 : ((64 == 64 || TARGET_AVX512VL
28311 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28312 : && ix86_pre_reload_split ()
28313 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28314 : STRIP_UNARY (operands[4]))
28315 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28316 : STRIP_UNARY (operands[4]))
28317 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28318 : STRIP_UNARY (operands[3]))
28319 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28320 : STRIP_UNARY (operands[3])))) &&
28321 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28322 : (TARGET_AVX512F)) &&
28323 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28324 : ( 1)))
28325 : return NULL;
28326 : return gen_split_2170 (insn, operands);
28327 :
28328 : case 28:
28329 : if (!((
28330 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28331 : ((32 == 64 || TARGET_AVX512VL
28332 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28333 : && ix86_pre_reload_split ()
28334 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28335 : STRIP_UNARY (operands[4]))
28336 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28337 : STRIP_UNARY (operands[4]))
28338 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28339 : STRIP_UNARY (operands[3]))
28340 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28341 : STRIP_UNARY (operands[3])))) &&
28342 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28343 : (TARGET_AVX)) &&
28344 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28345 : ( 1)))
28346 : return NULL;
28347 : return gen_split_2197 (insn, operands);
28348 :
28349 : case 29:
28350 : if (!(
28351 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28352 : ((16 == 64 || TARGET_AVX512VL
28353 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28354 : && ix86_pre_reload_split ()
28355 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28356 : STRIP_UNARY (operands[4]))
28357 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28358 : STRIP_UNARY (operands[4]))
28359 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28360 : STRIP_UNARY (operands[3]))
28361 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28362 : STRIP_UNARY (operands[3])))) &&
28363 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28364 : ( 1)))
28365 : return NULL;
28366 : return gen_split_2224 (insn, operands);
28367 :
28368 : case 30:
28369 : if (!((
28370 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28371 : ((64 == 64 || TARGET_AVX512VL
28372 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28373 : && ix86_pre_reload_split ()
28374 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28375 : STRIP_UNARY (operands[4]))
28376 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28377 : STRIP_UNARY (operands[4]))
28378 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28379 : STRIP_UNARY (operands[3]))
28380 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28381 : STRIP_UNARY (operands[3])))) &&
28382 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28383 : (TARGET_AVX512F)) &&
28384 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28385 : ( 1)))
28386 : return NULL;
28387 : return gen_split_2251 (insn, operands);
28388 :
28389 : case 31:
28390 : if (!((
28391 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28392 : ((32 == 64 || TARGET_AVX512VL
28393 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28394 : && ix86_pre_reload_split ()
28395 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28396 : STRIP_UNARY (operands[4]))
28397 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28398 : STRIP_UNARY (operands[4]))
28399 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28400 : STRIP_UNARY (operands[3]))
28401 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28402 : STRIP_UNARY (operands[3])))) &&
28403 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28404 : (TARGET_AVX)) &&
28405 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28406 : ( 1)))
28407 : return NULL;
28408 : return gen_split_2278 (insn, operands);
28409 :
28410 : case 32:
28411 : if (!(
28412 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28413 : ((16 == 64 || TARGET_AVX512VL
28414 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28415 : && ix86_pre_reload_split ()
28416 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28417 : STRIP_UNARY (operands[4]))
28418 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28419 : STRIP_UNARY (operands[4]))
28420 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28421 : STRIP_UNARY (operands[3]))
28422 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28423 : STRIP_UNARY (operands[3])))) &&
28424 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28425 : ( 1)))
28426 : return NULL;
28427 : return gen_split_2305 (insn, operands);
28428 :
28429 : case 33:
28430 : if (!((
28431 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28432 : ((64 == 64 || TARGET_AVX512VL
28433 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28434 : && ix86_pre_reload_split ()
28435 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28436 : STRIP_UNARY (operands[4]))
28437 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28438 : STRIP_UNARY (operands[4]))
28439 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28440 : STRIP_UNARY (operands[3]))
28441 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28442 : STRIP_UNARY (operands[3])))) &&
28443 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28444 : (TARGET_AVX512F)) &&
28445 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28446 : ( 1)))
28447 : return NULL;
28448 : return gen_split_2332 (insn, operands);
28449 :
28450 : case 34:
28451 : if (!((
28452 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28453 : ((32 == 64 || TARGET_AVX512VL
28454 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28455 : && ix86_pre_reload_split ()
28456 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28457 : STRIP_UNARY (operands[4]))
28458 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28459 : STRIP_UNARY (operands[4]))
28460 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28461 : STRIP_UNARY (operands[3]))
28462 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28463 : STRIP_UNARY (operands[3])))) &&
28464 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28465 : (TARGET_AVX)) &&
28466 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28467 : ( 1)))
28468 : return NULL;
28469 : return gen_split_2359 (insn, operands);
28470 :
28471 : case 35:
28472 : if (!((
28473 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28474 : ((16 == 64 || TARGET_AVX512VL
28475 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28476 : && ix86_pre_reload_split ()
28477 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28478 : STRIP_UNARY (operands[4]))
28479 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28480 : STRIP_UNARY (operands[4]))
28481 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28482 : STRIP_UNARY (operands[3]))
28483 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28484 : STRIP_UNARY (operands[3])))) &&
28485 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28486 : (TARGET_SSE2)) &&
28487 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28488 : ( 1)))
28489 : return NULL;
28490 : return gen_split_2386 (insn, operands);
28491 :
28492 : case 36:
28493 : if (!((
28494 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28495 : ((64 == 64 || TARGET_AVX512VL
28496 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28497 : && ix86_pre_reload_split ()) &&
28498 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28499 : (TARGET_AVX512F)) &&
28500 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28501 : ( 1)))
28502 : return NULL;
28503 : return gen_split_3151 (insn, operands);
28504 :
28505 : case 37:
28506 : if (!((
28507 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28508 : ((32 == 64 || TARGET_AVX512VL
28509 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28510 : && ix86_pre_reload_split ()) &&
28511 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28512 : (TARGET_AVX)) &&
28513 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28514 : ( 1)))
28515 : return NULL;
28516 : return gen_split_3160 (insn, operands);
28517 :
28518 : case 38:
28519 : if (!(
28520 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28521 : ((16 == 64 || TARGET_AVX512VL
28522 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28523 : && ix86_pre_reload_split ()) &&
28524 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28525 : ( 1)))
28526 : return NULL;
28527 : return gen_split_3169 (insn, operands);
28528 :
28529 : case 39:
28530 : if (!((
28531 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28532 : ((64 == 64 || TARGET_AVX512VL
28533 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28534 : && ix86_pre_reload_split ()) &&
28535 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28536 : (TARGET_AVX512F)) &&
28537 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28538 : ( 1)))
28539 : return NULL;
28540 : return gen_split_3178 (insn, operands);
28541 :
28542 : case 40:
28543 : if (!((
28544 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28545 : ((32 == 64 || TARGET_AVX512VL
28546 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28547 : && ix86_pre_reload_split ()) &&
28548 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28549 : (TARGET_AVX)) &&
28550 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28551 : ( 1)))
28552 : return NULL;
28553 : return gen_split_3187 (insn, operands);
28554 :
28555 : case 41:
28556 : if (!(
28557 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28558 : ((16 == 64 || TARGET_AVX512VL
28559 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28560 : && ix86_pre_reload_split ()) &&
28561 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28562 : ( 1)))
28563 : return NULL;
28564 : return gen_split_3196 (insn, operands);
28565 :
28566 : case 42:
28567 : if (!((
28568 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28569 : ((64 == 64 || TARGET_AVX512VL
28570 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28571 : && ix86_pre_reload_split ()) &&
28572 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28573 : (TARGET_AVX512F)) &&
28574 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28575 : ( 1)))
28576 : return NULL;
28577 : return gen_split_3205 (insn, operands);
28578 :
28579 : case 43:
28580 : if (!((
28581 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28582 : ((32 == 64 || TARGET_AVX512VL
28583 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28584 : && ix86_pre_reload_split ()) &&
28585 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28586 : (TARGET_AVX)) &&
28587 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28588 : ( 1)))
28589 : return NULL;
28590 : return gen_split_3214 (insn, operands);
28591 :
28592 : case 44:
28593 : if (!(
28594 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28595 : ((16 == 64 || TARGET_AVX512VL
28596 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28597 : && ix86_pre_reload_split ()) &&
28598 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28599 : ( 1)))
28600 : return NULL;
28601 : return gen_split_3223 (insn, operands);
28602 :
28603 : case 45:
28604 : if (!((
28605 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28606 : ((64 == 64 || TARGET_AVX512VL
28607 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28608 : && ix86_pre_reload_split ()) &&
28609 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28610 : (TARGET_AVX512F)) &&
28611 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28612 : ( 1)))
28613 : return NULL;
28614 : return gen_split_3232 (insn, operands);
28615 :
28616 : case 46:
28617 : if (!((
28618 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28619 : ((32 == 64 || TARGET_AVX512VL
28620 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28621 : && ix86_pre_reload_split ()) &&
28622 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28623 : (TARGET_AVX)) &&
28624 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28625 : ( 1)))
28626 : return NULL;
28627 : return gen_split_3241 (insn, operands);
28628 :
28629 : case 47:
28630 : if (!((
28631 : #line 14271 "/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 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28636 : (TARGET_SSE2)) &&
28637 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28638 : ( 1)))
28639 : return NULL;
28640 : return gen_split_3250 (insn, operands);
28641 :
28642 : default:
28643 : return NULL;
28644 : }
28645 :
28646 : case AND:
28647 : switch (pattern542 (x2))
28648 : {
28649 : case 0:
28650 : if (!((
28651 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28652 : ((64 == 64 || TARGET_AVX512VL
28653 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28654 : && ix86_pre_reload_split ()
28655 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28656 : STRIP_UNARY (operands[4]))
28657 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28658 : STRIP_UNARY (operands[4]))
28659 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28660 : STRIP_UNARY (operands[3]))
28661 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28662 : STRIP_UNARY (operands[3])))) &&
28663 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28664 : (TARGET_AVX512F)) &&
28665 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28666 : ( 1)))
28667 : return NULL;
28668 : return gen_split_2731 (insn, operands);
28669 :
28670 : case 1:
28671 : if (!((
28672 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28673 : ((32 == 64 || TARGET_AVX512VL
28674 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28675 : && ix86_pre_reload_split ()
28676 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28677 : STRIP_UNARY (operands[4]))
28678 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28679 : STRIP_UNARY (operands[4]))
28680 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28681 : STRIP_UNARY (operands[3]))
28682 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28683 : STRIP_UNARY (operands[3])))) &&
28684 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28685 : (TARGET_AVX)) &&
28686 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28687 : ( 1)))
28688 : return NULL;
28689 : return gen_split_2758 (insn, operands);
28690 :
28691 : case 2:
28692 : if (!(
28693 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28694 : ((16 == 64 || TARGET_AVX512VL
28695 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28696 : && ix86_pre_reload_split ()
28697 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28698 : STRIP_UNARY (operands[4]))
28699 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28700 : STRIP_UNARY (operands[4]))
28701 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28702 : STRIP_UNARY (operands[3]))
28703 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28704 : STRIP_UNARY (operands[3])))) &&
28705 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28706 : ( 1)))
28707 : return NULL;
28708 : return gen_split_2785 (insn, operands);
28709 :
28710 : case 3:
28711 : if (!((
28712 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28713 : ((64 == 64 || TARGET_AVX512VL
28714 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28715 : && ix86_pre_reload_split ()
28716 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28717 : STRIP_UNARY (operands[4]))
28718 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28719 : STRIP_UNARY (operands[4]))
28720 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28721 : STRIP_UNARY (operands[3]))
28722 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28723 : STRIP_UNARY (operands[3])))) &&
28724 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28725 : (TARGET_AVX512F)) &&
28726 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28727 : ( 1)))
28728 : return NULL;
28729 : return gen_split_2812 (insn, operands);
28730 :
28731 : case 4:
28732 : if (!((
28733 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28734 : ((32 == 64 || TARGET_AVX512VL
28735 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28736 : && ix86_pre_reload_split ()
28737 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28738 : STRIP_UNARY (operands[4]))
28739 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28740 : STRIP_UNARY (operands[4]))
28741 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28742 : STRIP_UNARY (operands[3]))
28743 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28744 : STRIP_UNARY (operands[3])))) &&
28745 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28746 : (TARGET_AVX)) &&
28747 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28748 : ( 1)))
28749 : return NULL;
28750 : return gen_split_2839 (insn, operands);
28751 :
28752 : case 5:
28753 : if (!(
28754 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28755 : ((16 == 64 || TARGET_AVX512VL
28756 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28757 : && ix86_pre_reload_split ()
28758 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28759 : STRIP_UNARY (operands[4]))
28760 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28761 : STRIP_UNARY (operands[4]))
28762 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28763 : STRIP_UNARY (operands[3]))
28764 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28765 : STRIP_UNARY (operands[3])))) &&
28766 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28767 : ( 1)))
28768 : return NULL;
28769 : return gen_split_2866 (insn, operands);
28770 :
28771 : case 6:
28772 : if (!((
28773 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28774 : ((64 == 64 || TARGET_AVX512VL
28775 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28776 : && ix86_pre_reload_split ()
28777 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28778 : STRIP_UNARY (operands[4]))
28779 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28780 : STRIP_UNARY (operands[4]))
28781 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28782 : STRIP_UNARY (operands[3]))
28783 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28784 : STRIP_UNARY (operands[3])))) &&
28785 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28786 : (TARGET_AVX512F)) &&
28787 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28788 : ( 1)))
28789 : return NULL;
28790 : return gen_split_2893 (insn, operands);
28791 :
28792 : case 7:
28793 : if (!((
28794 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28795 : ((32 == 64 || TARGET_AVX512VL
28796 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28797 : && ix86_pre_reload_split ()
28798 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28799 : STRIP_UNARY (operands[4]))
28800 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28801 : STRIP_UNARY (operands[4]))
28802 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28803 : STRIP_UNARY (operands[3]))
28804 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28805 : STRIP_UNARY (operands[3])))) &&
28806 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28807 : (TARGET_AVX)) &&
28808 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28809 : ( 1)))
28810 : return NULL;
28811 : return gen_split_2920 (insn, operands);
28812 :
28813 : case 8:
28814 : if (!(
28815 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28816 : ((16 == 64 || TARGET_AVX512VL
28817 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28818 : && ix86_pre_reload_split ()
28819 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28820 : STRIP_UNARY (operands[4]))
28821 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28822 : STRIP_UNARY (operands[4]))
28823 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28824 : STRIP_UNARY (operands[3]))
28825 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28826 : STRIP_UNARY (operands[3])))) &&
28827 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28828 : ( 1)))
28829 : return NULL;
28830 : return gen_split_2947 (insn, operands);
28831 :
28832 : case 9:
28833 : if (!((
28834 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28835 : ((64 == 64 || TARGET_AVX512VL
28836 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28837 : && ix86_pre_reload_split ()
28838 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28839 : STRIP_UNARY (operands[4]))
28840 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28841 : STRIP_UNARY (operands[4]))
28842 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28843 : STRIP_UNARY (operands[3]))
28844 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28845 : STRIP_UNARY (operands[3])))) &&
28846 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28847 : (TARGET_AVX512F)) &&
28848 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28849 : ( 1)))
28850 : return NULL;
28851 : return gen_split_2974 (insn, operands);
28852 :
28853 : case 10:
28854 : if (!((
28855 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28856 : ((32 == 64 || TARGET_AVX512VL
28857 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28858 : && ix86_pre_reload_split ()
28859 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28860 : STRIP_UNARY (operands[4]))
28861 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28862 : STRIP_UNARY (operands[4]))
28863 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28864 : STRIP_UNARY (operands[3]))
28865 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28866 : STRIP_UNARY (operands[3])))) &&
28867 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28868 : (TARGET_AVX)) &&
28869 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28870 : ( 1)))
28871 : return NULL;
28872 : return gen_split_3001 (insn, operands);
28873 :
28874 : case 11:
28875 : if (!((
28876 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28877 : ((16 == 64 || TARGET_AVX512VL
28878 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28879 : && ix86_pre_reload_split ()
28880 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28881 : STRIP_UNARY (operands[4]))
28882 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28883 : STRIP_UNARY (operands[4]))
28884 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28885 : STRIP_UNARY (operands[3]))
28886 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28887 : STRIP_UNARY (operands[3])))) &&
28888 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28889 : (TARGET_SSE2)) &&
28890 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28891 : ( 1)))
28892 : return NULL;
28893 : return gen_split_3028 (insn, operands);
28894 :
28895 : default:
28896 : return NULL;
28897 : }
28898 :
28899 : case IOR:
28900 : switch (pattern542 (x2))
28901 : {
28902 : case 0:
28903 : if (!((
28904 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28905 : ((64 == 64 || TARGET_AVX512VL
28906 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28907 : && ix86_pre_reload_split ()
28908 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28909 : STRIP_UNARY (operands[4]))
28910 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28911 : STRIP_UNARY (operands[4]))
28912 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28913 : STRIP_UNARY (operands[3]))
28914 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28915 : STRIP_UNARY (operands[3])))) &&
28916 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28917 : (TARGET_AVX512F)) &&
28918 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28919 : ( 1)))
28920 : return NULL;
28921 : return gen_split_2734 (insn, operands);
28922 :
28923 : case 1:
28924 : if (!((
28925 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28926 : ((32 == 64 || TARGET_AVX512VL
28927 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28928 : && ix86_pre_reload_split ()
28929 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28930 : STRIP_UNARY (operands[4]))
28931 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28932 : STRIP_UNARY (operands[4]))
28933 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28934 : STRIP_UNARY (operands[3]))
28935 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28936 : STRIP_UNARY (operands[3])))) &&
28937 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28938 : (TARGET_AVX)) &&
28939 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28940 : ( 1)))
28941 : return NULL;
28942 : return gen_split_2761 (insn, operands);
28943 :
28944 : case 2:
28945 : if (!(
28946 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28947 : ((16 == 64 || TARGET_AVX512VL
28948 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28949 : && ix86_pre_reload_split ()
28950 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28951 : STRIP_UNARY (operands[4]))
28952 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28953 : STRIP_UNARY (operands[4]))
28954 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28955 : STRIP_UNARY (operands[3]))
28956 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28957 : STRIP_UNARY (operands[3])))) &&
28958 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28959 : ( 1)))
28960 : return NULL;
28961 : return gen_split_2788 (insn, operands);
28962 :
28963 : case 3:
28964 : if (!((
28965 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28966 : ((64 == 64 || TARGET_AVX512VL
28967 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28968 : && ix86_pre_reload_split ()
28969 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28970 : STRIP_UNARY (operands[4]))
28971 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28972 : STRIP_UNARY (operands[4]))
28973 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28974 : STRIP_UNARY (operands[3]))
28975 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28976 : STRIP_UNARY (operands[3])))) &&
28977 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28978 : (TARGET_AVX512F)) &&
28979 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28980 : ( 1)))
28981 : return NULL;
28982 : return gen_split_2815 (insn, operands);
28983 :
28984 : case 4:
28985 : if (!((
28986 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28987 : ((32 == 64 || TARGET_AVX512VL
28988 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28989 : && ix86_pre_reload_split ()
28990 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28991 : STRIP_UNARY (operands[4]))
28992 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28993 : STRIP_UNARY (operands[4]))
28994 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28995 : STRIP_UNARY (operands[3]))
28996 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28997 : STRIP_UNARY (operands[3])))) &&
28998 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28999 : (TARGET_AVX)) &&
29000 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29001 : ( 1)))
29002 : return NULL;
29003 : return gen_split_2842 (insn, operands);
29004 :
29005 : case 5:
29006 : if (!(
29007 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29008 : ((16 == 64 || TARGET_AVX512VL
29009 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29010 : && ix86_pre_reload_split ()
29011 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29012 : STRIP_UNARY (operands[4]))
29013 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29014 : STRIP_UNARY (operands[4]))
29015 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29016 : STRIP_UNARY (operands[3]))
29017 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29018 : STRIP_UNARY (operands[3])))) &&
29019 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29020 : ( 1)))
29021 : return NULL;
29022 : return gen_split_2869 (insn, operands);
29023 :
29024 : case 6:
29025 : if (!((
29026 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29027 : ((64 == 64 || TARGET_AVX512VL
29028 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29029 : && ix86_pre_reload_split ()
29030 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29031 : STRIP_UNARY (operands[4]))
29032 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29033 : STRIP_UNARY (operands[4]))
29034 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29035 : STRIP_UNARY (operands[3]))
29036 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29037 : STRIP_UNARY (operands[3])))) &&
29038 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29039 : (TARGET_AVX512F)) &&
29040 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29041 : ( 1)))
29042 : return NULL;
29043 : return gen_split_2896 (insn, operands);
29044 :
29045 : case 7:
29046 : if (!((
29047 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29048 : ((32 == 64 || TARGET_AVX512VL
29049 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29050 : && ix86_pre_reload_split ()
29051 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29052 : STRIP_UNARY (operands[4]))
29053 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29054 : STRIP_UNARY (operands[4]))
29055 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29056 : STRIP_UNARY (operands[3]))
29057 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29058 : STRIP_UNARY (operands[3])))) &&
29059 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29060 : (TARGET_AVX)) &&
29061 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29062 : ( 1)))
29063 : return NULL;
29064 : return gen_split_2923 (insn, operands);
29065 :
29066 : case 8:
29067 : if (!(
29068 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29069 : ((16 == 64 || TARGET_AVX512VL
29070 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29071 : && ix86_pre_reload_split ()
29072 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29073 : STRIP_UNARY (operands[4]))
29074 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29075 : STRIP_UNARY (operands[4]))
29076 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29077 : STRIP_UNARY (operands[3]))
29078 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29079 : STRIP_UNARY (operands[3])))) &&
29080 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29081 : ( 1)))
29082 : return NULL;
29083 : return gen_split_2950 (insn, operands);
29084 :
29085 : case 9:
29086 : if (!((
29087 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29088 : ((64 == 64 || TARGET_AVX512VL
29089 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29090 : && ix86_pre_reload_split ()
29091 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29092 : STRIP_UNARY (operands[4]))
29093 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29094 : STRIP_UNARY (operands[4]))
29095 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29096 : STRIP_UNARY (operands[3]))
29097 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29098 : STRIP_UNARY (operands[3])))) &&
29099 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29100 : (TARGET_AVX512F)) &&
29101 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29102 : ( 1)))
29103 : return NULL;
29104 : return gen_split_2977 (insn, operands);
29105 :
29106 : case 10:
29107 : if (!((
29108 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29109 : ((32 == 64 || TARGET_AVX512VL
29110 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29111 : && ix86_pre_reload_split ()
29112 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29113 : STRIP_UNARY (operands[4]))
29114 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29115 : STRIP_UNARY (operands[4]))
29116 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29117 : STRIP_UNARY (operands[3]))
29118 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29119 : STRIP_UNARY (operands[3])))) &&
29120 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29121 : (TARGET_AVX)) &&
29122 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29123 : ( 1)))
29124 : return NULL;
29125 : return gen_split_3004 (insn, operands);
29126 :
29127 : case 11:
29128 : if (!((
29129 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29130 : ((16 == 64 || TARGET_AVX512VL
29131 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29132 : && ix86_pre_reload_split ()
29133 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29134 : STRIP_UNARY (operands[4]))
29135 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29136 : STRIP_UNARY (operands[4]))
29137 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29138 : STRIP_UNARY (operands[3]))
29139 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29140 : STRIP_UNARY (operands[3])))) &&
29141 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29142 : (TARGET_SSE2)) &&
29143 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29144 : ( 1)))
29145 : return NULL;
29146 : return gen_split_3031 (insn, operands);
29147 :
29148 : default:
29149 : return NULL;
29150 : }
29151 :
29152 : case XOR:
29153 : switch (pattern542 (x2))
29154 : {
29155 : case 0:
29156 : if (!((
29157 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29158 : ((64 == 64 || TARGET_AVX512VL
29159 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29160 : && ix86_pre_reload_split ()
29161 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29162 : STRIP_UNARY (operands[4]))
29163 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29164 : STRIP_UNARY (operands[4]))
29165 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29166 : STRIP_UNARY (operands[3]))
29167 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29168 : STRIP_UNARY (operands[3])))) &&
29169 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29170 : (TARGET_AVX512F)) &&
29171 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29172 : ( 1)))
29173 : return NULL;
29174 : return gen_split_2737 (insn, operands);
29175 :
29176 : case 1:
29177 : if (!((
29178 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29179 : ((32 == 64 || TARGET_AVX512VL
29180 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29181 : && ix86_pre_reload_split ()
29182 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29183 : STRIP_UNARY (operands[4]))
29184 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29185 : STRIP_UNARY (operands[4]))
29186 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29187 : STRIP_UNARY (operands[3]))
29188 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29189 : STRIP_UNARY (operands[3])))) &&
29190 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29191 : (TARGET_AVX)) &&
29192 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29193 : ( 1)))
29194 : return NULL;
29195 : return gen_split_2764 (insn, operands);
29196 :
29197 : case 2:
29198 : if (!(
29199 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29200 : ((16 == 64 || TARGET_AVX512VL
29201 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29202 : && ix86_pre_reload_split ()
29203 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29204 : STRIP_UNARY (operands[4]))
29205 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29206 : STRIP_UNARY (operands[4]))
29207 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29208 : STRIP_UNARY (operands[3]))
29209 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29210 : STRIP_UNARY (operands[3])))) &&
29211 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29212 : ( 1)))
29213 : return NULL;
29214 : return gen_split_2791 (insn, operands);
29215 :
29216 : case 3:
29217 : if (!((
29218 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29219 : ((64 == 64 || TARGET_AVX512VL
29220 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29221 : && ix86_pre_reload_split ()
29222 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29223 : STRIP_UNARY (operands[4]))
29224 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29225 : STRIP_UNARY (operands[4]))
29226 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29227 : STRIP_UNARY (operands[3]))
29228 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29229 : STRIP_UNARY (operands[3])))) &&
29230 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29231 : (TARGET_AVX512F)) &&
29232 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29233 : ( 1)))
29234 : return NULL;
29235 : return gen_split_2818 (insn, operands);
29236 :
29237 : case 4:
29238 : if (!((
29239 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29240 : ((32 == 64 || TARGET_AVX512VL
29241 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29242 : && ix86_pre_reload_split ()
29243 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29244 : STRIP_UNARY (operands[4]))
29245 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29246 : STRIP_UNARY (operands[4]))
29247 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29248 : STRIP_UNARY (operands[3]))
29249 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29250 : STRIP_UNARY (operands[3])))) &&
29251 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29252 : (TARGET_AVX)) &&
29253 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29254 : ( 1)))
29255 : return NULL;
29256 : return gen_split_2845 (insn, operands);
29257 :
29258 : case 5:
29259 : if (!(
29260 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29261 : ((16 == 64 || TARGET_AVX512VL
29262 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29263 : && ix86_pre_reload_split ()
29264 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29265 : STRIP_UNARY (operands[4]))
29266 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29267 : STRIP_UNARY (operands[4]))
29268 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29269 : STRIP_UNARY (operands[3]))
29270 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29271 : STRIP_UNARY (operands[3])))) &&
29272 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29273 : ( 1)))
29274 : return NULL;
29275 : return gen_split_2872 (insn, operands);
29276 :
29277 : case 6:
29278 : if (!((
29279 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29280 : ((64 == 64 || TARGET_AVX512VL
29281 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29282 : && ix86_pre_reload_split ()
29283 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29284 : STRIP_UNARY (operands[4]))
29285 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29286 : STRIP_UNARY (operands[4]))
29287 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29288 : STRIP_UNARY (operands[3]))
29289 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29290 : STRIP_UNARY (operands[3])))) &&
29291 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29292 : (TARGET_AVX512F)) &&
29293 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29294 : ( 1)))
29295 : return NULL;
29296 : return gen_split_2899 (insn, operands);
29297 :
29298 : case 7:
29299 : if (!((
29300 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29301 : ((32 == 64 || TARGET_AVX512VL
29302 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29303 : && ix86_pre_reload_split ()
29304 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29305 : STRIP_UNARY (operands[4]))
29306 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29307 : STRIP_UNARY (operands[4]))
29308 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29309 : STRIP_UNARY (operands[3]))
29310 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29311 : STRIP_UNARY (operands[3])))) &&
29312 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29313 : (TARGET_AVX)) &&
29314 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29315 : ( 1)))
29316 : return NULL;
29317 : return gen_split_2926 (insn, operands);
29318 :
29319 : case 8:
29320 : if (!(
29321 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29322 : ((16 == 64 || TARGET_AVX512VL
29323 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29324 : && ix86_pre_reload_split ()
29325 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29326 : STRIP_UNARY (operands[4]))
29327 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29328 : STRIP_UNARY (operands[4]))
29329 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29330 : STRIP_UNARY (operands[3]))
29331 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29332 : STRIP_UNARY (operands[3])))) &&
29333 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29334 : ( 1)))
29335 : return NULL;
29336 : return gen_split_2953 (insn, operands);
29337 :
29338 : case 9:
29339 : if (!((
29340 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29341 : ((64 == 64 || TARGET_AVX512VL
29342 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29343 : && ix86_pre_reload_split ()
29344 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29345 : STRIP_UNARY (operands[4]))
29346 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29347 : STRIP_UNARY (operands[4]))
29348 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29349 : STRIP_UNARY (operands[3]))
29350 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29351 : STRIP_UNARY (operands[3])))) &&
29352 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29353 : (TARGET_AVX512F)) &&
29354 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29355 : ( 1)))
29356 : return NULL;
29357 : return gen_split_2980 (insn, operands);
29358 :
29359 : case 10:
29360 : if (!((
29361 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29362 : ((32 == 64 || TARGET_AVX512VL
29363 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29364 : && ix86_pre_reload_split ()
29365 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29366 : STRIP_UNARY (operands[4]))
29367 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29368 : STRIP_UNARY (operands[4]))
29369 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29370 : STRIP_UNARY (operands[3]))
29371 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29372 : STRIP_UNARY (operands[3])))) &&
29373 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29374 : (TARGET_AVX)) &&
29375 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29376 : ( 1)))
29377 : return NULL;
29378 : return gen_split_3007 (insn, operands);
29379 :
29380 : case 11:
29381 : if (!((
29382 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29383 : ((16 == 64 || TARGET_AVX512VL
29384 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29385 : && ix86_pre_reload_split ()
29386 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29387 : STRIP_UNARY (operands[4]))
29388 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29389 : STRIP_UNARY (operands[4]))
29390 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29391 : STRIP_UNARY (operands[3]))
29392 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29393 : STRIP_UNARY (operands[3])))) &&
29394 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29395 : (TARGET_SSE2)) &&
29396 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29397 : ( 1)))
29398 : return NULL;
29399 : return gen_split_3034 (insn, operands);
29400 :
29401 : default:
29402 : return NULL;
29403 : }
29404 :
29405 : default:
29406 : return NULL;
29407 : }
29408 : }
29409 :
29410 : rtx_insn *
29411 : split_76 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
29412 : {
29413 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
29414 : rtx x2, x3, x4, x5;
29415 : rtx_insn *res ATTRIBUTE_UNUSED;
29416 : x2 = XEXP (x1, 1);
29417 : x3 = XEXP (x2, 1);
29418 : x4 = XVECEXP (x3, 0, 0);
29419 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
29420 : return NULL;
29421 : x5 = XVECEXP (x3, 0, 1);
29422 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
29423 : return NULL;
29424 : switch (GET_MODE (operands[0]))
29425 : {
29426 : case E_V2DFmode:
29427 : if (!nonimmediate_operand (operands[0], E_V2DFmode)
29428 : || GET_MODE (x2) != E_V2DFmode)
29429 : return NULL;
29430 : switch (GET_MODE (operands[1]))
29431 : {
29432 : case E_V8DFmode:
29433 : if (!register_operand (operands[1], E_V8DFmode)
29434 : || !
29435 : #line 12798 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29436 : (TARGET_AVX512DQ
29437 : && reload_completed
29438 : && (TARGET_AVX512VL
29439 : || REG_P (operands[0])
29440 : || !EXT_REX_SSE_REG_P (operands[1]))))
29441 : return NULL;
29442 : return gen_split_1641 (insn, operands);
29443 :
29444 : case E_V4DFmode:
29445 : if (!nonimmediate_operand (operands[1], E_V4DFmode)
29446 : || !
29447 : #line 13214 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29448 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))
29449 : && reload_completed))
29450 : return NULL;
29451 : return gen_split_1650 (insn, operands);
29452 :
29453 : default:
29454 : return NULL;
29455 : }
29456 :
29457 : case E_V2DImode:
29458 : if (!nonimmediate_operand (operands[0], E_V2DImode)
29459 : || GET_MODE (x2) != E_V2DImode)
29460 : return NULL;
29461 : switch (GET_MODE (operands[1]))
29462 : {
29463 : case E_V8DImode:
29464 : if (!register_operand (operands[1], E_V8DImode)
29465 : || !
29466 : #line 12798 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29467 : (TARGET_AVX512DQ
29468 : && reload_completed
29469 : && (TARGET_AVX512VL
29470 : || REG_P (operands[0])
29471 : || !EXT_REX_SSE_REG_P (operands[1]))))
29472 : return NULL;
29473 : return gen_split_1642 (insn, operands);
29474 :
29475 : case E_V4DImode:
29476 : if (!nonimmediate_operand (operands[1], E_V4DImode)
29477 : || !
29478 : #line 13214 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29479 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))
29480 : && reload_completed))
29481 : return NULL;
29482 : return gen_split_1649 (insn, operands);
29483 :
29484 : default:
29485 : return NULL;
29486 : }
29487 :
29488 : default:
29489 : return NULL;
29490 : }
29491 : }
29492 :
29493 : rtx_insn *
29494 : split_78 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
29495 : {
29496 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
29497 : rtx x2, x3, x4, x5, x6, x7;
29498 : rtx_insn *res ATTRIBUTE_UNUSED;
29499 : x2 = XEXP (x1, 1);
29500 : x3 = XEXP (x2, 1);
29501 : if (pattern845 (x3) != 0)
29502 : return NULL;
29503 : x4 = XVECEXP (x3, 0, 4);
29504 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
29505 : return NULL;
29506 : x5 = XVECEXP (x3, 0, 5);
29507 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
29508 : return NULL;
29509 : x6 = XVECEXP (x3, 0, 6);
29510 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
29511 : return NULL;
29512 : x7 = XVECEXP (x3, 0, 7);
29513 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
29514 : return NULL;
29515 : switch (pattern1545 (x2))
29516 : {
29517 : case 0:
29518 : if (!
29519 : #line 13166 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29520 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))
29521 : && reload_completed
29522 : && (TARGET_AVX512VL
29523 : || REG_P (operands[0])
29524 : || !EXT_REX_SSE_REG_P (operands[1]))))
29525 : return NULL;
29526 : return gen_split_1647 (insn, operands);
29527 :
29528 : case 1:
29529 : if (!
29530 : #line 13166 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29531 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))
29532 : && reload_completed
29533 : && (TARGET_AVX512VL
29534 : || REG_P (operands[0])
29535 : || !EXT_REX_SSE_REG_P (operands[1]))))
29536 : return NULL;
29537 : return gen_split_1648 (insn, operands);
29538 :
29539 : case 2:
29540 : if (!(
29541 : #line 13406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29542 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
29543 : #line 13408 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29544 : ( reload_completed)))
29545 : return NULL;
29546 : return gen_split_1656 (insn, operands);
29547 :
29548 : case 3:
29549 : if (!(
29550 : #line 13406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29551 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
29552 : #line 13408 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29553 : ( reload_completed)))
29554 : return NULL;
29555 : return gen_split_1657 (insn, operands);
29556 :
29557 : case 4:
29558 : if (!(
29559 : #line 13406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29560 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
29561 : #line 13408 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29562 : ( reload_completed)))
29563 : return NULL;
29564 : return gen_split_1658 (insn, operands);
29565 :
29566 : default:
29567 : return NULL;
29568 : }
29569 : }
29570 :
29571 : rtx_insn *
29572 : split_80 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
29573 : {
29574 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
29575 : rtx x2, x3, x4, x5, x6, x7;
29576 : rtx_insn *res ATTRIBUTE_UNUSED;
29577 : x2 = XEXP (x1, 1);
29578 : x3 = XEXP (x2, 1);
29579 : switch (GET_CODE (x3))
29580 : {
29581 : case VEC_SELECT:
29582 : if (GET_MODE (x3) != E_DFmode)
29583 : return NULL;
29584 : x4 = XEXP (x3, 1);
29585 : if (GET_CODE (x4) != PARALLEL
29586 : || XVECLEN (x4, 0) != 1)
29587 : return NULL;
29588 : x5 = XVECEXP (x4, 0, 0);
29589 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
29590 : || !memory_operand (operands[0], E_V2DFmode)
29591 : || GET_MODE (x2) != E_V2DFmode
29592 : || !register_operand (operands[1], E_DFmode))
29593 : return NULL;
29594 : x6 = XEXP (x3, 0);
29595 : if (!rtx_equal_p (x6, operands[0])
29596 : || !
29597 : #line 15161 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29598 : (TARGET_SSE2 && reload_completed))
29599 : return NULL;
29600 : return gen_split_3258 (insn, operands);
29601 :
29602 : case UNSPEC:
29603 : if (XVECLEN (x3, 0) != 1
29604 : || XINT (x3, 1) != 148)
29605 : return NULL;
29606 : x7 = XVECEXP (x3, 0, 0);
29607 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
29608 : return NULL;
29609 : switch (GET_MODE (operands[0]))
29610 : {
29611 : case E_V8SImode:
29612 : if (pattern1041 (x2,
29613 : E_V4SImode,
29614 : E_V8SImode) != 0
29615 : || !(
29616 : #line 29514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29617 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
29618 : #line 29516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29619 : ( reload_completed)))
29620 : return NULL;
29621 : return gen_split_3875 (insn, operands);
29622 :
29623 : case E_V8SFmode:
29624 : if (pattern1041 (x2,
29625 : E_V4SFmode,
29626 : E_V8SFmode) != 0
29627 : || !(
29628 : #line 29514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29629 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
29630 : #line 29516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29631 : ( reload_completed)))
29632 : return NULL;
29633 : return gen_split_3876 (insn, operands);
29634 :
29635 : case E_V4DFmode:
29636 : if (pattern1041 (x2,
29637 : E_V2DFmode,
29638 : E_V4DFmode) != 0
29639 : || !(
29640 : #line 29514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29641 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
29642 : #line 29516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29643 : ( reload_completed)))
29644 : return NULL;
29645 : return gen_split_3877 (insn, operands);
29646 :
29647 : case E_V16SImode:
29648 : if (pattern1041 (x2,
29649 : E_V8SImode,
29650 : E_V16SImode) != 0
29651 : || !(
29652 : #line 30856 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29653 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
29654 : #line 30858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29655 : ( reload_completed)))
29656 : return NULL;
29657 : return gen_split_3923 (insn, operands);
29658 :
29659 : case E_V16SFmode:
29660 : if (pattern1041 (x2,
29661 : E_V8SFmode,
29662 : E_V16SFmode) != 0
29663 : || !(
29664 : #line 30856 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29665 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
29666 : #line 30858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29667 : ( reload_completed)))
29668 : return NULL;
29669 : return gen_split_3924 (insn, operands);
29670 :
29671 : case E_V8DFmode:
29672 : if (pattern1041 (x2,
29673 : E_V4DFmode,
29674 : E_V8DFmode) != 0
29675 : || !(
29676 : #line 30856 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29677 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
29678 : #line 30858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29679 : ( reload_completed)))
29680 : return NULL;
29681 : return gen_split_3925 (insn, operands);
29682 :
29683 : default:
29684 : return NULL;
29685 : }
29686 :
29687 : default:
29688 : return NULL;
29689 : }
29690 : }
29691 :
29692 : rtx_insn *
29693 : split_84 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
29694 : {
29695 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
29696 : rtx_insn *res ATTRIBUTE_UNUSED;
29697 : switch (GET_MODE (operands[0]))
29698 : {
29699 : case E_V64QImode:
29700 : if (!register_operand (operands[0], E_V64QImode))
29701 : return NULL;
29702 : if (int_float_vector_all_ones_operand (operands[1], E_V64QImode)
29703 : && (
29704 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29705 : (TARGET_AVX512F && reload_completed
29706 : && (64 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29707 : && optimize_insn_for_speed_p ()) &&
29708 : #line 287 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29709 : (TARGET_AVX512F)))
29710 : return gen_split_1173 (insn, operands);
29711 : if (!ternlog_operand (operands[1], E_V64QImode)
29712 : || !((
29713 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29714 : ((64 == 64 || TARGET_AVX512VL
29715 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29716 : && ix86_pre_reload_split ()) &&
29717 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29718 : (TARGET_AVX512F)) &&
29719 : #line 14076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29720 : ( 1)))
29721 : return NULL;
29722 : return gen_split_1717 (insn, operands);
29723 :
29724 : case E_V32QImode:
29725 : if (!register_operand (operands[0], E_V32QImode))
29726 : return NULL;
29727 : if (int_float_vector_all_ones_operand (operands[1], E_V32QImode)
29728 : && (
29729 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29730 : (TARGET_AVX512F && reload_completed
29731 : && (32 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29732 : && optimize_insn_for_speed_p ()) &&
29733 : #line 287 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29734 : (TARGET_AVX)))
29735 : return gen_split_1174 (insn, operands);
29736 : if (!ternlog_operand (operands[1], E_V32QImode)
29737 : || !((
29738 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29739 : ((32 == 64 || TARGET_AVX512VL
29740 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29741 : && ix86_pre_reload_split ()) &&
29742 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29743 : (TARGET_AVX)) &&
29744 : #line 14076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29745 : ( 1)))
29746 : return NULL;
29747 : return gen_split_1718 (insn, operands);
29748 :
29749 : case E_V16QImode:
29750 : if (!register_operand (operands[0], E_V16QImode))
29751 : return NULL;
29752 : if (int_float_vector_all_ones_operand (operands[1], E_V16QImode)
29753 : &&
29754 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29755 : (TARGET_AVX512F && reload_completed
29756 : && (16 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29757 : && optimize_insn_for_speed_p ()))
29758 : return gen_split_1175 (insn, operands);
29759 : if (!ternlog_operand (operands[1], E_V16QImode)
29760 : || !(
29761 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29762 : ((16 == 64 || TARGET_AVX512VL
29763 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29764 : && ix86_pre_reload_split ()) &&
29765 : #line 14076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29766 : ( 1)))
29767 : return NULL;
29768 : return gen_split_1719 (insn, operands);
29769 :
29770 : case E_V32HImode:
29771 : if (!register_operand (operands[0], E_V32HImode))
29772 : return NULL;
29773 : if (int_float_vector_all_ones_operand (operands[1], E_V32HImode)
29774 : && (
29775 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29776 : (TARGET_AVX512F && reload_completed
29777 : && (64 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29778 : && optimize_insn_for_speed_p ()) &&
29779 : #line 288 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29780 : (TARGET_AVX512F)))
29781 : return gen_split_1176 (insn, operands);
29782 : if (!ternlog_operand (operands[1], E_V32HImode)
29783 : || !((
29784 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29785 : ((64 == 64 || TARGET_AVX512VL
29786 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29787 : && ix86_pre_reload_split ()) &&
29788 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29789 : (TARGET_AVX512F)) &&
29790 : #line 14076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29791 : ( 1)))
29792 : return NULL;
29793 : return gen_split_1720 (insn, operands);
29794 :
29795 : case E_V16HImode:
29796 : if (!register_operand (operands[0], E_V16HImode))
29797 : return NULL;
29798 : if (int_float_vector_all_ones_operand (operands[1], E_V16HImode)
29799 : && (
29800 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29801 : (TARGET_AVX512F && reload_completed
29802 : && (32 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29803 : && optimize_insn_for_speed_p ()) &&
29804 : #line 288 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29805 : (TARGET_AVX)))
29806 : return gen_split_1177 (insn, operands);
29807 : if (!ternlog_operand (operands[1], E_V16HImode)
29808 : || !((
29809 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29810 : ((32 == 64 || TARGET_AVX512VL
29811 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29812 : && ix86_pre_reload_split ()) &&
29813 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29814 : (TARGET_AVX)) &&
29815 : #line 14076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29816 : ( 1)))
29817 : return NULL;
29818 : return gen_split_1721 (insn, operands);
29819 :
29820 : case E_V8HImode:
29821 : if (!register_operand (operands[0], E_V8HImode))
29822 : return NULL;
29823 : if (int_float_vector_all_ones_operand (operands[1], E_V8HImode)
29824 : &&
29825 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29826 : (TARGET_AVX512F && reload_completed
29827 : && (16 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29828 : && optimize_insn_for_speed_p ()))
29829 : return gen_split_1178 (insn, operands);
29830 : if (!ternlog_operand (operands[1], E_V8HImode)
29831 : || !(
29832 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29833 : ((16 == 64 || TARGET_AVX512VL
29834 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29835 : && ix86_pre_reload_split ()) &&
29836 : #line 14076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29837 : ( 1)))
29838 : return NULL;
29839 : return gen_split_1722 (insn, operands);
29840 :
29841 : case E_V16SImode:
29842 : if (!register_operand (operands[0], E_V16SImode))
29843 : return NULL;
29844 : if (int_float_vector_all_ones_operand (operands[1], E_V16SImode)
29845 : && (
29846 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29847 : (TARGET_AVX512F && reload_completed
29848 : && (64 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29849 : && optimize_insn_for_speed_p ()) &&
29850 : #line 289 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29851 : (TARGET_AVX512F)))
29852 : return gen_split_1179 (insn, operands);
29853 : if (!ternlog_operand (operands[1], E_V16SImode)
29854 : || !((
29855 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29856 : ((64 == 64 || TARGET_AVX512VL
29857 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29858 : && ix86_pre_reload_split ()) &&
29859 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29860 : (TARGET_AVX512F)) &&
29861 : #line 14076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29862 : ( 1)))
29863 : return NULL;
29864 : return gen_split_1723 (insn, operands);
29865 :
29866 : case E_V8SImode:
29867 : if (!register_operand (operands[0], E_V8SImode))
29868 : return NULL;
29869 : if (int_float_vector_all_ones_operand (operands[1], E_V8SImode)
29870 : && (
29871 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29872 : (TARGET_AVX512F && reload_completed
29873 : && (32 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29874 : && optimize_insn_for_speed_p ()) &&
29875 : #line 289 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29876 : (TARGET_AVX)))
29877 : return gen_split_1180 (insn, operands);
29878 : if (!ternlog_operand (operands[1], E_V8SImode)
29879 : || !((
29880 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29881 : ((32 == 64 || TARGET_AVX512VL
29882 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29883 : && ix86_pre_reload_split ()) &&
29884 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29885 : (TARGET_AVX)) &&
29886 : #line 14076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29887 : ( 1)))
29888 : return NULL;
29889 : return gen_split_1724 (insn, operands);
29890 :
29891 : case E_V4SImode:
29892 : if (!register_operand (operands[0], E_V4SImode))
29893 : return NULL;
29894 : if (int_float_vector_all_ones_operand (operands[1], E_V4SImode)
29895 : &&
29896 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29897 : (TARGET_AVX512F && reload_completed
29898 : && (16 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29899 : && optimize_insn_for_speed_p ()))
29900 : return gen_split_1181 (insn, operands);
29901 : if (!ternlog_operand (operands[1], E_V4SImode)
29902 : || !(
29903 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29904 : ((16 == 64 || TARGET_AVX512VL
29905 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29906 : && ix86_pre_reload_split ()) &&
29907 : #line 14076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29908 : ( 1)))
29909 : return NULL;
29910 : return gen_split_1725 (insn, operands);
29911 :
29912 : case E_V8DImode:
29913 : if (!register_operand (operands[0], E_V8DImode))
29914 : return NULL;
29915 : if (int_float_vector_all_ones_operand (operands[1], E_V8DImode)
29916 : && (
29917 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29918 : (TARGET_AVX512F && reload_completed
29919 : && (64 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29920 : && optimize_insn_for_speed_p ()) &&
29921 : #line 290 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29922 : (TARGET_AVX512F)))
29923 : return gen_split_1182 (insn, operands);
29924 : if (!ternlog_operand (operands[1], E_V8DImode)
29925 : || !((
29926 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29927 : ((64 == 64 || TARGET_AVX512VL
29928 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29929 : && ix86_pre_reload_split ()) &&
29930 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29931 : (TARGET_AVX512F)) &&
29932 : #line 14076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29933 : ( 1)))
29934 : return NULL;
29935 : return gen_split_1726 (insn, operands);
29936 :
29937 : case E_V4DImode:
29938 : if (!register_operand (operands[0], E_V4DImode))
29939 : return NULL;
29940 : if (int_float_vector_all_ones_operand (operands[1], E_V4DImode)
29941 : && (
29942 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29943 : (TARGET_AVX512F && reload_completed
29944 : && (32 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29945 : && optimize_insn_for_speed_p ()) &&
29946 : #line 290 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29947 : (TARGET_AVX)))
29948 : return gen_split_1183 (insn, operands);
29949 : if (!ternlog_operand (operands[1], E_V4DImode)
29950 : || !((
29951 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29952 : ((32 == 64 || TARGET_AVX512VL
29953 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29954 : && ix86_pre_reload_split ()) &&
29955 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29956 : (TARGET_AVX)) &&
29957 : #line 14076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29958 : ( 1)))
29959 : return NULL;
29960 : return gen_split_1727 (insn, operands);
29961 :
29962 : case E_V2DImode:
29963 : if (!register_operand (operands[0], E_V2DImode))
29964 : return NULL;
29965 : if (int_float_vector_all_ones_operand (operands[1], E_V2DImode)
29966 : &&
29967 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29968 : (TARGET_AVX512F && reload_completed
29969 : && (16 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29970 : && optimize_insn_for_speed_p ()))
29971 : return gen_split_1184 (insn, operands);
29972 : if (!ternlog_operand (operands[1], E_V2DImode)
29973 : || !(
29974 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29975 : ((16 == 64 || TARGET_AVX512VL
29976 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29977 : && ix86_pre_reload_split ()) &&
29978 : #line 14076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29979 : ( 1)))
29980 : return NULL;
29981 : return gen_split_1728 (insn, operands);
29982 :
29983 : case E_V4TImode:
29984 : if (!register_operand (operands[0], E_V4TImode)
29985 : || !int_float_vector_all_ones_operand (operands[1], E_V4TImode)
29986 : || !(
29987 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29988 : (TARGET_AVX512F && reload_completed
29989 : && (64 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29990 : && optimize_insn_for_speed_p ()) &&
29991 : #line 291 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29992 : (TARGET_AVX512F)))
29993 : return NULL;
29994 : return gen_split_1185 (insn, operands);
29995 :
29996 : case E_V2TImode:
29997 : if (!register_operand (operands[0], E_V2TImode)
29998 : || !int_float_vector_all_ones_operand (operands[1], E_V2TImode)
29999 : || !(
30000 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30001 : (TARGET_AVX512F && reload_completed
30002 : && (32 == 64 || EXT_REX_SSE_REG_P (operands[0]))
30003 : && optimize_insn_for_speed_p ()) &&
30004 : #line 291 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30005 : (TARGET_AVX)))
30006 : return NULL;
30007 : return gen_split_1186 (insn, operands);
30008 :
30009 : case E_V1TImode:
30010 : if (!register_operand (operands[0], E_V1TImode)
30011 : || !int_float_vector_all_ones_operand (operands[1], E_V1TImode)
30012 : || !
30013 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30014 : (TARGET_AVX512F && reload_completed
30015 : && (16 == 64 || EXT_REX_SSE_REG_P (operands[0]))
30016 : && optimize_insn_for_speed_p ()))
30017 : return NULL;
30018 : return gen_split_1187 (insn, operands);
30019 :
30020 : case E_V32HFmode:
30021 : if (!register_operand (operands[0], E_V32HFmode)
30022 : || !int_float_vector_all_ones_operand (operands[1], E_V32HFmode)
30023 : || !(
30024 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30025 : (TARGET_AVX512F && reload_completed
30026 : && (64 == 64 || EXT_REX_SSE_REG_P (operands[0]))
30027 : && optimize_insn_for_speed_p ()) &&
30028 : #line 292 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30029 : (TARGET_AVX512F)))
30030 : return NULL;
30031 : return gen_split_1188 (insn, operands);
30032 :
30033 : case E_V16HFmode:
30034 : if (!register_operand (operands[0], E_V16HFmode)
30035 : || !int_float_vector_all_ones_operand (operands[1], E_V16HFmode)
30036 : || !(
30037 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30038 : (TARGET_AVX512F && reload_completed
30039 : && (32 == 64 || EXT_REX_SSE_REG_P (operands[0]))
30040 : && optimize_insn_for_speed_p ()) &&
30041 : #line 292 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30042 : (TARGET_AVX)))
30043 : return NULL;
30044 : return gen_split_1189 (insn, operands);
30045 :
30046 : case E_V8HFmode:
30047 : if (!register_operand (operands[0], E_V8HFmode)
30048 : || !int_float_vector_all_ones_operand (operands[1], E_V8HFmode)
30049 : || !
30050 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30051 : (TARGET_AVX512F && reload_completed
30052 : && (16 == 64 || EXT_REX_SSE_REG_P (operands[0]))
30053 : && optimize_insn_for_speed_p ()))
30054 : return NULL;
30055 : return gen_split_1190 (insn, operands);
30056 :
30057 : case E_V32BFmode:
30058 : if (!register_operand (operands[0], E_V32BFmode)
30059 : || !int_float_vector_all_ones_operand (operands[1], E_V32BFmode)
30060 : || !(
30061 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30062 : (TARGET_AVX512F && reload_completed
30063 : && (64 == 64 || EXT_REX_SSE_REG_P (operands[0]))
30064 : && optimize_insn_for_speed_p ()) &&
30065 : #line 293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30066 : (TARGET_AVX512F)))
30067 : return NULL;
30068 : return gen_split_1191 (insn, operands);
30069 :
30070 : case E_V16BFmode:
30071 : if (!register_operand (operands[0], E_V16BFmode)
30072 : || !int_float_vector_all_ones_operand (operands[1], E_V16BFmode)
30073 : || !(
30074 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30075 : (TARGET_AVX512F && reload_completed
30076 : && (32 == 64 || EXT_REX_SSE_REG_P (operands[0]))
30077 : && optimize_insn_for_speed_p ()) &&
30078 : #line 293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30079 : (TARGET_AVX)))
30080 : return NULL;
30081 : return gen_split_1192 (insn, operands);
30082 :
30083 : case E_V8BFmode:
30084 : if (!register_operand (operands[0], E_V8BFmode)
30085 : || !int_float_vector_all_ones_operand (operands[1], E_V8BFmode)
30086 : || !
30087 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30088 : (TARGET_AVX512F && reload_completed
30089 : && (16 == 64 || EXT_REX_SSE_REG_P (operands[0]))
30090 : && optimize_insn_for_speed_p ()))
30091 : return NULL;
30092 : return gen_split_1193 (insn, operands);
30093 :
30094 : case E_V16SFmode:
30095 : if (!register_operand (operands[0], E_V16SFmode)
30096 : || !int_float_vector_all_ones_operand (operands[1], E_V16SFmode)
30097 : || !(
30098 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30099 : (TARGET_AVX512F && reload_completed
30100 : && (64 == 64 || EXT_REX_SSE_REG_P (operands[0]))
30101 : && optimize_insn_for_speed_p ()) &&
30102 : #line 294 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30103 : (TARGET_AVX512F)))
30104 : return NULL;
30105 : return gen_split_1194 (insn, operands);
30106 :
30107 : case E_V8SFmode:
30108 : if (!register_operand (operands[0], E_V8SFmode)
30109 : || !int_float_vector_all_ones_operand (operands[1], E_V8SFmode)
30110 : || !(
30111 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30112 : (TARGET_AVX512F && reload_completed
30113 : && (32 == 64 || EXT_REX_SSE_REG_P (operands[0]))
30114 : && optimize_insn_for_speed_p ()) &&
30115 : #line 294 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30116 : (TARGET_AVX)))
30117 : return NULL;
30118 : return gen_split_1195 (insn, operands);
30119 :
30120 : case E_V4SFmode:
30121 : if (!register_operand (operands[0], E_V4SFmode))
30122 : return NULL;
30123 : if (int_float_vector_all_ones_operand (operands[1], E_V4SFmode)
30124 : &&
30125 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30126 : (TARGET_AVX512F && reload_completed
30127 : && (16 == 64 || EXT_REX_SSE_REG_P (operands[0]))
30128 : && optimize_insn_for_speed_p ()))
30129 : return gen_split_1196 (insn, operands);
30130 : if (!zero_extended_scalar_load_operand (operands[1], E_V4SFmode)
30131 : || !
30132 : #line 1938 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30133 : (TARGET_SSE && reload_completed))
30134 : return NULL;
30135 : return gen_split_1231 (insn, operands);
30136 :
30137 : case E_V8DFmode:
30138 : if (!register_operand (operands[0], E_V8DFmode)
30139 : || !int_float_vector_all_ones_operand (operands[1], E_V8DFmode)
30140 : || !(
30141 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30142 : (TARGET_AVX512F && reload_completed
30143 : && (64 == 64 || EXT_REX_SSE_REG_P (operands[0]))
30144 : && optimize_insn_for_speed_p ()) &&
30145 : #line 295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30146 : (TARGET_AVX512F)))
30147 : return NULL;
30148 : return gen_split_1197 (insn, operands);
30149 :
30150 : case E_V4DFmode:
30151 : if (!register_operand (operands[0], E_V4DFmode)
30152 : || !int_float_vector_all_ones_operand (operands[1], E_V4DFmode)
30153 : || !(
30154 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30155 : (TARGET_AVX512F && reload_completed
30156 : && (32 == 64 || EXT_REX_SSE_REG_P (operands[0]))
30157 : && optimize_insn_for_speed_p ()) &&
30158 : #line 295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30159 : (TARGET_AVX)))
30160 : return NULL;
30161 : return gen_split_1198 (insn, operands);
30162 :
30163 : case E_V2DFmode:
30164 : if (!register_operand (operands[0], E_V2DFmode))
30165 : return NULL;
30166 : if (int_float_vector_all_ones_operand (operands[1], E_V2DFmode)
30167 : &&
30168 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30169 : (TARGET_AVX512F && reload_completed
30170 : && (16 == 64 || EXT_REX_SSE_REG_P (operands[0]))
30171 : && optimize_insn_for_speed_p ()))
30172 : return gen_split_1199 (insn, operands);
30173 : if (!zero_extended_scalar_load_operand (operands[1], E_V2DFmode)
30174 : || !
30175 : #line 1952 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30176 : (TARGET_SSE2 && reload_completed))
30177 : return NULL;
30178 : return gen_split_1232 (insn, operands);
30179 :
30180 : default:
30181 : return NULL;
30182 : }
30183 : }
30184 :
30185 : rtx_insn *
30186 : split_88 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
30187 : {
30188 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
30189 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
30190 : rtx x10, x11, x12, x13, x14, x15, x16;
30191 : rtx_insn *res ATTRIBUTE_UNUSED;
30192 : switch (XVECLEN (x1, 0))
30193 : {
30194 : case 2:
30195 : x2 = XVECEXP (x1, 0, 0);
30196 : if (GET_CODE (x2) != SET)
30197 : return NULL;
30198 : x3 = XEXP (x2, 1);
30199 : switch (GET_CODE (x3))
30200 : {
30201 : case UNSPEC:
30202 : x4 = XVECEXP (x1, 0, 1);
30203 : if (GET_CODE (x4) != CLOBBER)
30204 : return NULL;
30205 : x5 = XEXP (x2, 0);
30206 : operands[0] = x5;
30207 : switch (XVECLEN (x3, 0))
30208 : {
30209 : case 1:
30210 : x6 = XVECEXP (x3, 0, 0);
30211 : operands[1] = x6;
30212 : switch (XINT (x3, 1))
30213 : {
30214 : case 75:
30215 : if (pattern1070 (x1) != 0
30216 : || !(
30217 : #line 25600 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30218 : (TARGET_USE_FANCY_MATH_387
30219 : && (flag_fp_int_builtin_inexact || !flag_trapping_math)
30220 : && ix86_pre_reload_split ()) &&
30221 : #line 25604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30222 : ( 1)))
30223 : return NULL;
30224 : return gen_split_937 (insn, operands);
30225 :
30226 : case 76:
30227 : if (pattern1070 (x1) != 0
30228 : || !(
30229 : #line 25600 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30230 : (TARGET_USE_FANCY_MATH_387
30231 : && (flag_fp_int_builtin_inexact || !flag_trapping_math)
30232 : && ix86_pre_reload_split ()) &&
30233 : #line 25604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30234 : ( 1)))
30235 : return NULL;
30236 : return gen_split_938 (insn, operands);
30237 :
30238 : case 77:
30239 : if (pattern1070 (x1) != 0
30240 : || !(
30241 : #line 25600 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30242 : (TARGET_USE_FANCY_MATH_387
30243 : && (flag_fp_int_builtin_inexact || !flag_trapping_math)
30244 : && ix86_pre_reload_split ()) &&
30245 : #line 25604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30246 : ( 1)))
30247 : return NULL;
30248 : return gen_split_939 (insn, operands);
30249 :
30250 : case 78:
30251 : if (pattern1070 (x1) != 0
30252 : || !(
30253 : #line 25600 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30254 : (TARGET_USE_FANCY_MATH_387
30255 : && (flag_fp_int_builtin_inexact || !flag_trapping_math)
30256 : && ix86_pre_reload_split ()) &&
30257 : #line 25604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30258 : ( 1)))
30259 : return NULL;
30260 : return gen_split_940 (insn, operands);
30261 :
30262 : case 79:
30263 : switch (pattern1071 (x1))
30264 : {
30265 : case 0:
30266 : if (!(
30267 : #line 25717 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30268 : (TARGET_USE_FANCY_MATH_387
30269 : && flag_unsafe_math_optimizations
30270 : && ix86_pre_reload_split ()) &&
30271 : #line 25721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30272 : ( 1)))
30273 : return NULL;
30274 : return gen_split_941 (insn, operands);
30275 :
30276 : case 1:
30277 : if (!(
30278 : #line 25717 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30279 : (TARGET_USE_FANCY_MATH_387
30280 : && flag_unsafe_math_optimizations
30281 : && ix86_pre_reload_split ()) &&
30282 : #line 25721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30283 : ( 1)))
30284 : return NULL;
30285 : return gen_split_943 (insn, operands);
30286 :
30287 : case 2:
30288 : if (!(
30289 : #line 25717 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30290 : (TARGET_USE_FANCY_MATH_387
30291 : && flag_unsafe_math_optimizations
30292 : && ix86_pre_reload_split ()) &&
30293 : #line 25721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30294 : ( 1)))
30295 : return NULL;
30296 : return gen_split_945 (insn, operands);
30297 :
30298 : default:
30299 : return NULL;
30300 : }
30301 :
30302 : case 80:
30303 : switch (pattern1071 (x1))
30304 : {
30305 : case 0:
30306 : if (!(
30307 : #line 25717 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30308 : (TARGET_USE_FANCY_MATH_387
30309 : && flag_unsafe_math_optimizations
30310 : && ix86_pre_reload_split ()) &&
30311 : #line 25721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30312 : ( 1)))
30313 : return NULL;
30314 : return gen_split_942 (insn, operands);
30315 :
30316 : case 1:
30317 : if (!(
30318 : #line 25717 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30319 : (TARGET_USE_FANCY_MATH_387
30320 : && flag_unsafe_math_optimizations
30321 : && ix86_pre_reload_split ()) &&
30322 : #line 25721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30323 : ( 1)))
30324 : return NULL;
30325 : return gen_split_944 (insn, operands);
30326 :
30327 : case 2:
30328 : if (!(
30329 : #line 25717 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30330 : (TARGET_USE_FANCY_MATH_387
30331 : && flag_unsafe_math_optimizations
30332 : && ix86_pre_reload_split ()) &&
30333 : #line 25721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30334 : ( 1)))
30335 : return NULL;
30336 : return gen_split_946 (insn, operands);
30337 :
30338 : default:
30339 : return NULL;
30340 : }
30341 :
30342 : case 119:
30343 : if (GET_MODE (x3) != E_V4SImode
30344 : || !register_operand (operands[0], E_V4SImode)
30345 : || !nonimmediate_operand (operands[1], E_DImode))
30346 : return NULL;
30347 : x7 = XEXP (x4, 0);
30348 : operands[2] = x7;
30349 : if (!scratch_operand (operands[2], E_V4SImode)
30350 : || !(
30351 : #line 1903 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30352 : (!TARGET_64BIT && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_TO_VEC) &&
30353 : #line 1905 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30354 : ( reload_completed)))
30355 : return NULL;
30356 : return gen_split_1230 (insn, operands);
30357 :
30358 : default:
30359 : return NULL;
30360 : }
30361 :
30362 : case 3:
30363 : if (XINT (x3, 1) != 53
30364 : || GET_MODE (x3) != E_V8QImode
30365 : || pattern938 (x1) != 0
30366 : || !
30367 : #line 23510 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30368 : (TARGET_SSSE3 && reload_completed
30369 : && SSE_REGNO_P (REGNO (operands[0]))))
30370 : return NULL;
30371 : return gen_split_3562 (insn, operands);
30372 :
30373 : default:
30374 : return NULL;
30375 : }
30376 :
30377 : case SMAX:
30378 : switch (pattern410 (x1))
30379 : {
30380 : case 0:
30381 : if (((
30382 : #line 27362 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30383 : (TARGET_CMOVE
30384 : && ix86_pre_reload_split ()) &&
30385 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30386 : (!TARGET_64BIT)) &&
30387 : #line 27365 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30388 : ( 1)))
30389 : return gen_split_969 (insn, operands);
30390 : if (!((
30391 : #line 27420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30392 : (TARGET_CMOVE
30393 : && (DImode != QImode || !TARGET_PARTIAL_REG_STALL)
30394 : && ix86_pre_reload_split ()) &&
30395 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30396 : (TARGET_64BIT)) &&
30397 : #line 27424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30398 : ( 1)))
30399 : return NULL;
30400 : return gen_split_989 (insn, operands);
30401 :
30402 : case 1:
30403 : if (!((
30404 : #line 27362 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30405 : (TARGET_CMOVE
30406 : && ix86_pre_reload_split ()) &&
30407 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30408 : (TARGET_64BIT)) &&
30409 : #line 27365 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30410 : ( 1)))
30411 : return NULL;
30412 : return gen_split_973 (insn, operands);
30413 :
30414 : case 2:
30415 : if (!(
30416 : #line 27420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30417 : (TARGET_CMOVE
30418 : && (QImode != QImode || !TARGET_PARTIAL_REG_STALL)
30419 : && ix86_pre_reload_split ()) &&
30420 : #line 27424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30421 : ( 1)))
30422 : return NULL;
30423 : return gen_split_977 (insn, operands);
30424 :
30425 : case 3:
30426 : if (!(
30427 : #line 27420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30428 : (TARGET_CMOVE
30429 : && (HImode != QImode || !TARGET_PARTIAL_REG_STALL)
30430 : && ix86_pre_reload_split ()) &&
30431 : #line 27424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30432 : ( 1)))
30433 : return NULL;
30434 : return gen_split_981 (insn, operands);
30435 :
30436 : case 4:
30437 : if (!(
30438 : #line 27420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30439 : (TARGET_CMOVE
30440 : && (SImode != QImode || !TARGET_PARTIAL_REG_STALL)
30441 : && ix86_pre_reload_split ()) &&
30442 : #line 27424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30443 : ( 1)))
30444 : return NULL;
30445 : return gen_split_985 (insn, operands);
30446 :
30447 : default:
30448 : return NULL;
30449 : }
30450 :
30451 : case SMIN:
30452 : switch (pattern410 (x1))
30453 : {
30454 : case 0:
30455 : if (((
30456 : #line 27362 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30457 : (TARGET_CMOVE
30458 : && ix86_pre_reload_split ()) &&
30459 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30460 : (!TARGET_64BIT)) &&
30461 : #line 27365 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30462 : ( 1)))
30463 : return gen_split_970 (insn, operands);
30464 : if (!((
30465 : #line 27420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30466 : (TARGET_CMOVE
30467 : && (DImode != QImode || !TARGET_PARTIAL_REG_STALL)
30468 : && ix86_pre_reload_split ()) &&
30469 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30470 : (TARGET_64BIT)) &&
30471 : #line 27424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30472 : ( 1)))
30473 : return NULL;
30474 : return gen_split_990 (insn, operands);
30475 :
30476 : case 1:
30477 : if (!((
30478 : #line 27362 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30479 : (TARGET_CMOVE
30480 : && ix86_pre_reload_split ()) &&
30481 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30482 : (TARGET_64BIT)) &&
30483 : #line 27365 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30484 : ( 1)))
30485 : return NULL;
30486 : return gen_split_974 (insn, operands);
30487 :
30488 : case 2:
30489 : if (!(
30490 : #line 27420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30491 : (TARGET_CMOVE
30492 : && (QImode != QImode || !TARGET_PARTIAL_REG_STALL)
30493 : && ix86_pre_reload_split ()) &&
30494 : #line 27424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30495 : ( 1)))
30496 : return NULL;
30497 : return gen_split_978 (insn, operands);
30498 :
30499 : case 3:
30500 : if (!(
30501 : #line 27420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30502 : (TARGET_CMOVE
30503 : && (HImode != QImode || !TARGET_PARTIAL_REG_STALL)
30504 : && ix86_pre_reload_split ()) &&
30505 : #line 27424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30506 : ( 1)))
30507 : return NULL;
30508 : return gen_split_982 (insn, operands);
30509 :
30510 : case 4:
30511 : if (!(
30512 : #line 27420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30513 : (TARGET_CMOVE
30514 : && (SImode != QImode || !TARGET_PARTIAL_REG_STALL)
30515 : && ix86_pre_reload_split ()) &&
30516 : #line 27424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30517 : ( 1)))
30518 : return NULL;
30519 : return gen_split_986 (insn, operands);
30520 :
30521 : default:
30522 : return NULL;
30523 : }
30524 :
30525 : case UMAX:
30526 : switch (pattern220 (x1))
30527 : {
30528 : case 0:
30529 : if (((
30530 : #line 27362 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30531 : (TARGET_CMOVE
30532 : && ix86_pre_reload_split ()) &&
30533 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30534 : (!TARGET_64BIT)) &&
30535 : #line 27365 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30536 : ( 1)))
30537 : return gen_split_971 (insn, operands);
30538 : if (!((
30539 : #line 27420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30540 : (TARGET_CMOVE
30541 : && (DImode != QImode || !TARGET_PARTIAL_REG_STALL)
30542 : && ix86_pre_reload_split ()) &&
30543 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30544 : (TARGET_64BIT)) &&
30545 : #line 27424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30546 : ( 1)))
30547 : return NULL;
30548 : return gen_split_991 (insn, operands);
30549 :
30550 : case 1:
30551 : if (!((
30552 : #line 27362 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30553 : (TARGET_CMOVE
30554 : && ix86_pre_reload_split ()) &&
30555 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30556 : (TARGET_64BIT)) &&
30557 : #line 27365 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30558 : ( 1)))
30559 : return NULL;
30560 : return gen_split_975 (insn, operands);
30561 :
30562 : case 2:
30563 : if (!(
30564 : #line 27420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30565 : (TARGET_CMOVE
30566 : && (QImode != QImode || !TARGET_PARTIAL_REG_STALL)
30567 : && ix86_pre_reload_split ()) &&
30568 : #line 27424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30569 : ( 1)))
30570 : return NULL;
30571 : return gen_split_979 (insn, operands);
30572 :
30573 : case 3:
30574 : if (!(
30575 : #line 27420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30576 : (TARGET_CMOVE
30577 : && (HImode != QImode || !TARGET_PARTIAL_REG_STALL)
30578 : && ix86_pre_reload_split ()) &&
30579 : #line 27424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30580 : ( 1)))
30581 : return NULL;
30582 : return gen_split_983 (insn, operands);
30583 :
30584 : case 4:
30585 : if (!(
30586 : #line 27420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30587 : (TARGET_CMOVE
30588 : && (SImode != QImode || !TARGET_PARTIAL_REG_STALL)
30589 : && ix86_pre_reload_split ()) &&
30590 : #line 27424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30591 : ( 1)))
30592 : return NULL;
30593 : return gen_split_987 (insn, operands);
30594 :
30595 : case 5:
30596 : x8 = XEXP (x3, 1);
30597 : if (rtx_equal_p (x8, operands[1])
30598 : && (
30599 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30600 : (TARGET_CMOVE
30601 : && ix86_pre_reload_split ()) &&
30602 : #line 27604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30603 : ( 1)))
30604 : return gen_split_993 (insn, operands);
30605 : if (!rtx_equal_p (x8, operands[2])
30606 : || !(
30607 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30608 : (TARGET_CMOVE
30609 : && ix86_pre_reload_split ()) &&
30610 : #line 27604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30611 : ( 1)))
30612 : return NULL;
30613 : return gen_split_994 (insn, operands);
30614 :
30615 : case 6:
30616 : x8 = XEXP (x3, 1);
30617 : if (rtx_equal_p (x8, operands[1])
30618 : && (
30619 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30620 : (TARGET_CMOVE
30621 : && ix86_pre_reload_split ()) &&
30622 : #line 27604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30623 : ( 1)))
30624 : return gen_split_997 (insn, operands);
30625 : if (!rtx_equal_p (x8, operands[2])
30626 : || !(
30627 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30628 : (TARGET_CMOVE
30629 : && ix86_pre_reload_split ()) &&
30630 : #line 27604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30631 : ( 1)))
30632 : return NULL;
30633 : return gen_split_998 (insn, operands);
30634 :
30635 : case 7:
30636 : x8 = XEXP (x3, 1);
30637 : if (rtx_equal_p (x8, operands[1])
30638 : && ((
30639 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30640 : (TARGET_CMOVE
30641 : && ix86_pre_reload_split ()) &&
30642 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30643 : (TARGET_64BIT)) &&
30644 : #line 27604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30645 : ( 1)))
30646 : return gen_split_1001 (insn, operands);
30647 : if (!rtx_equal_p (x8, operands[2])
30648 : || !((
30649 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30650 : (TARGET_CMOVE
30651 : && ix86_pre_reload_split ()) &&
30652 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30653 : (TARGET_64BIT)) &&
30654 : #line 27604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30655 : ( 1)))
30656 : return NULL;
30657 : return gen_split_1002 (insn, operands);
30658 :
30659 : case 8:
30660 : if (!(
30661 : #line 27634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30662 : (TARGET_CMOVE
30663 : && ix86_pre_reload_split ()) &&
30664 : #line 27637 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30665 : ( 1)))
30666 : return NULL;
30667 : return gen_split_1005 (insn, operands);
30668 :
30669 : case 9:
30670 : if (!(
30671 : #line 27634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30672 : (TARGET_CMOVE
30673 : && ix86_pre_reload_split ()) &&
30674 : #line 27637 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30675 : ( 1)))
30676 : return NULL;
30677 : return gen_split_1007 (insn, operands);
30678 :
30679 : case 10:
30680 : if (!((
30681 : #line 27634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30682 : (TARGET_CMOVE
30683 : && ix86_pre_reload_split ()) &&
30684 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30685 : (TARGET_64BIT)) &&
30686 : #line 27637 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30687 : ( 1)))
30688 : return NULL;
30689 : return gen_split_1009 (insn, operands);
30690 :
30691 : default:
30692 : return NULL;
30693 : }
30694 :
30695 : case UMIN:
30696 : switch (pattern220 (x1))
30697 : {
30698 : case 0:
30699 : if (((
30700 : #line 27362 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30701 : (TARGET_CMOVE
30702 : && ix86_pre_reload_split ()) &&
30703 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30704 : (!TARGET_64BIT)) &&
30705 : #line 27365 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30706 : ( 1)))
30707 : return gen_split_972 (insn, operands);
30708 : if (!((
30709 : #line 27420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30710 : (TARGET_CMOVE
30711 : && (DImode != QImode || !TARGET_PARTIAL_REG_STALL)
30712 : && ix86_pre_reload_split ()) &&
30713 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30714 : (TARGET_64BIT)) &&
30715 : #line 27424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30716 : ( 1)))
30717 : return NULL;
30718 : return gen_split_992 (insn, operands);
30719 :
30720 : case 1:
30721 : if (!((
30722 : #line 27362 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30723 : (TARGET_CMOVE
30724 : && ix86_pre_reload_split ()) &&
30725 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30726 : (TARGET_64BIT)) &&
30727 : #line 27365 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30728 : ( 1)))
30729 : return NULL;
30730 : return gen_split_976 (insn, operands);
30731 :
30732 : case 2:
30733 : if (!(
30734 : #line 27420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30735 : (TARGET_CMOVE
30736 : && (QImode != QImode || !TARGET_PARTIAL_REG_STALL)
30737 : && ix86_pre_reload_split ()) &&
30738 : #line 27424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30739 : ( 1)))
30740 : return NULL;
30741 : return gen_split_980 (insn, operands);
30742 :
30743 : case 3:
30744 : if (!(
30745 : #line 27420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30746 : (TARGET_CMOVE
30747 : && (HImode != QImode || !TARGET_PARTIAL_REG_STALL)
30748 : && ix86_pre_reload_split ()) &&
30749 : #line 27424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30750 : ( 1)))
30751 : return NULL;
30752 : return gen_split_984 (insn, operands);
30753 :
30754 : case 4:
30755 : if (!(
30756 : #line 27420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30757 : (TARGET_CMOVE
30758 : && (SImode != QImode || !TARGET_PARTIAL_REG_STALL)
30759 : && ix86_pre_reload_split ()) &&
30760 : #line 27424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30761 : ( 1)))
30762 : return NULL;
30763 : return gen_split_988 (insn, operands);
30764 :
30765 : case 5:
30766 : x8 = XEXP (x3, 1);
30767 : if (rtx_equal_p (x8, operands[1])
30768 : && (
30769 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30770 : (TARGET_CMOVE
30771 : && ix86_pre_reload_split ()) &&
30772 : #line 27604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30773 : ( 1)))
30774 : return gen_split_995 (insn, operands);
30775 : if (!rtx_equal_p (x8, operands[2])
30776 : || !(
30777 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30778 : (TARGET_CMOVE
30779 : && ix86_pre_reload_split ()) &&
30780 : #line 27604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30781 : ( 1)))
30782 : return NULL;
30783 : return gen_split_996 (insn, operands);
30784 :
30785 : case 6:
30786 : x8 = XEXP (x3, 1);
30787 : if (rtx_equal_p (x8, operands[1])
30788 : && (
30789 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30790 : (TARGET_CMOVE
30791 : && ix86_pre_reload_split ()) &&
30792 : #line 27604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30793 : ( 1)))
30794 : return gen_split_999 (insn, operands);
30795 : if (!rtx_equal_p (x8, operands[2])
30796 : || !(
30797 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30798 : (TARGET_CMOVE
30799 : && ix86_pre_reload_split ()) &&
30800 : #line 27604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30801 : ( 1)))
30802 : return NULL;
30803 : return gen_split_1000 (insn, operands);
30804 :
30805 : case 7:
30806 : x8 = XEXP (x3, 1);
30807 : if (rtx_equal_p (x8, operands[1])
30808 : && ((
30809 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30810 : (TARGET_CMOVE
30811 : && ix86_pre_reload_split ()) &&
30812 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30813 : (TARGET_64BIT)) &&
30814 : #line 27604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30815 : ( 1)))
30816 : return gen_split_1003 (insn, operands);
30817 : if (!rtx_equal_p (x8, operands[2])
30818 : || !((
30819 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30820 : (TARGET_CMOVE
30821 : && ix86_pre_reload_split ()) &&
30822 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30823 : (TARGET_64BIT)) &&
30824 : #line 27604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30825 : ( 1)))
30826 : return NULL;
30827 : return gen_split_1004 (insn, operands);
30828 :
30829 : case 8:
30830 : if (!(
30831 : #line 27634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30832 : (TARGET_CMOVE
30833 : && ix86_pre_reload_split ()) &&
30834 : #line 27637 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30835 : ( 1)))
30836 : return NULL;
30837 : return gen_split_1006 (insn, operands);
30838 :
30839 : case 9:
30840 : if (!(
30841 : #line 27634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30842 : (TARGET_CMOVE
30843 : && ix86_pre_reload_split ()) &&
30844 : #line 27637 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30845 : ( 1)))
30846 : return NULL;
30847 : return gen_split_1008 (insn, operands);
30848 :
30849 : case 10:
30850 : if (!((
30851 : #line 27634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30852 : (TARGET_CMOVE
30853 : && ix86_pre_reload_split ()) &&
30854 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30855 : (TARGET_64BIT)) &&
30856 : #line 27637 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30857 : ( 1)))
30858 : return NULL;
30859 : return gen_split_1010 (insn, operands);
30860 :
30861 : default:
30862 : return NULL;
30863 : }
30864 :
30865 : case PLUS:
30866 : case MINUS:
30867 : case MULT:
30868 : case AND:
30869 : case IOR:
30870 : case XOR:
30871 : case ASHIFT:
30872 : return split_38 (x1, insn);
30873 :
30874 : case COMPARE:
30875 : operands[2] = x3;
30876 : if (!compare_operator (operands[2], E_VOIDmode))
30877 : return NULL;
30878 : x9 = XEXP (x3, 0);
30879 : if (GET_CODE (x9) != AND)
30880 : return NULL;
30881 : x8 = XEXP (x3, 1);
30882 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
30883 : return NULL;
30884 : x4 = XVECEXP (x1, 0, 1);
30885 : if (GET_CODE (x4) != SET)
30886 : return NULL;
30887 : x10 = XEXP (x4, 1);
30888 : if (GET_CODE (x10) != AND)
30889 : return NULL;
30890 : x5 = XEXP (x2, 0);
30891 : operands[0] = x5;
30892 : if (!flags_reg_operand (operands[0], E_VOIDmode))
30893 : return NULL;
30894 : x11 = XEXP (x9, 0);
30895 : operands[3] = x11;
30896 : if (!aligned_operand (operands[3], E_VOIDmode))
30897 : return NULL;
30898 : x12 = XEXP (x9, 1);
30899 : operands[4] = x12;
30900 : if (!const_int_operand (operands[4], E_VOIDmode))
30901 : return NULL;
30902 : x7 = XEXP (x4, 0);
30903 : operands[1] = x7;
30904 : if (!register_operand (operands[1], E_VOIDmode))
30905 : return NULL;
30906 : x13 = XEXP (x10, 0);
30907 : if (!rtx_equal_p (x13, operands[3]))
30908 : return NULL;
30909 : x14 = XEXP (x10, 1);
30910 : if (!rtx_equal_p (x14, operands[4])
30911 : || !
30912 : #line 28250 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30913 : (! TARGET_PARTIAL_REG_STALL && reload_completed
30914 : && optimize_insn_for_speed_p ()
30915 : && ((GET_MODE (operands[1]) == HImode && ! TARGET_FAST_PREFIX)
30916 : || (GET_MODE (operands[1]) == QImode && TARGET_PROMOTE_QImode))
30917 : /* Ensure that the operand will remain sign-extended immediate. */
30918 : && ix86_match_ccmode (insn, INTVAL (operands[4]) >= 0 ? CCNOmode : CCZmode)))
30919 : return NULL;
30920 : return gen_split_1012 (insn, operands);
30921 :
30922 : case NEG:
30923 : return split_40 (x1, insn);
30924 :
30925 : case ABS:
30926 : x4 = XVECEXP (x1, 0, 1);
30927 : if (GET_CODE (x4) != USE)
30928 : return NULL;
30929 : x5 = XEXP (x2, 0);
30930 : operands[0] = x5;
30931 : x9 = XEXP (x3, 0);
30932 : operands[1] = x9;
30933 : switch (pattern844 (x1))
30934 : {
30935 : case 0:
30936 : if (!(
30937 : #line 706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30938 : (TARGET_MMX_WITH_SSE) &&
30939 : #line 708 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30940 : ( reload_completed)))
30941 : return NULL;
30942 : return gen_split_1069 (insn, operands);
30943 :
30944 : case 1:
30945 : if (!(
30946 : #line 2263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30947 : (TARGET_SSE) &&
30948 : #line 2265 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30949 : ( reload_completed)))
30950 : return NULL;
30951 : return gen_split_1078 (insn, operands);
30952 :
30953 : case 2:
30954 : if (!((
30955 : #line 2263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30956 : (TARGET_SSE) &&
30957 : #line 2248 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30958 : (TARGET_MMX_WITH_SSE)) &&
30959 : #line 2265 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30960 : ( reload_completed)))
30961 : return NULL;
30962 : return gen_split_1080 (insn, operands);
30963 :
30964 : case 3:
30965 : if (!(
30966 : #line 2263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30967 : (TARGET_SSE) &&
30968 : #line 2265 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30969 : ( reload_completed)))
30970 : return NULL;
30971 : return gen_split_1082 (insn, operands);
30972 :
30973 : case 4:
30974 : if (!((
30975 : #line 2263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30976 : (TARGET_SSE) &&
30977 : #line 2249 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30978 : (TARGET_MMX_WITH_SSE)) &&
30979 : #line 2265 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30980 : ( reload_completed)))
30981 : return NULL;
30982 : return gen_split_1084 (insn, operands);
30983 :
30984 : case 5:
30985 : if (!((
30986 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30987 : (TARGET_SSE) &&
30988 : #line 415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30989 : (TARGET_AVX512F)) &&
30990 : #line 2611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30991 : ( reload_completed)))
30992 : return NULL;
30993 : return gen_split_1307 (insn, operands);
30994 :
30995 : case 6:
30996 : if (!((
30997 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30998 : (TARGET_SSE) &&
30999 : #line 416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31000 : (TARGET_AVX)) &&
31001 : #line 2611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31002 : ( reload_completed)))
31003 : return NULL;
31004 : return gen_split_1309 (insn, operands);
31005 :
31006 : case 7:
31007 : if (!((
31008 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31009 : (TARGET_SSE) &&
31010 : #line 416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31011 : (TARGET_SSE2)) &&
31012 : #line 2611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31013 : ( reload_completed)))
31014 : return NULL;
31015 : return gen_split_1311 (insn, operands);
31016 :
31017 : case 8:
31018 : if (!((
31019 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31020 : (TARGET_SSE) &&
31021 : #line 417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31022 : (TARGET_AVX512F)) &&
31023 : #line 2611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31024 : ( reload_completed)))
31025 : return NULL;
31026 : return gen_split_1313 (insn, operands);
31027 :
31028 : case 9:
31029 : if (!((
31030 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31031 : (TARGET_SSE) &&
31032 : #line 418 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31033 : (TARGET_AVX)) &&
31034 : #line 2611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31035 : ( reload_completed)))
31036 : return NULL;
31037 : return gen_split_1315 (insn, operands);
31038 :
31039 : case 10:
31040 : if (!((
31041 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31042 : (TARGET_SSE) &&
31043 : #line 418 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31044 : (TARGET_SSE2)) &&
31045 : #line 2611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31046 : ( reload_completed)))
31047 : return NULL;
31048 : return gen_split_1317 (insn, operands);
31049 :
31050 : case 11:
31051 : if (!((
31052 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31053 : (TARGET_SSE) &&
31054 : #line 419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31055 : (TARGET_AVX512F)) &&
31056 : #line 2611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31057 : ( reload_completed)))
31058 : return NULL;
31059 : return gen_split_1319 (insn, operands);
31060 :
31061 : case 12:
31062 : if (!((
31063 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31064 : (TARGET_SSE) &&
31065 : #line 419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31066 : (TARGET_AVX)) &&
31067 : #line 2611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31068 : ( reload_completed)))
31069 : return NULL;
31070 : return gen_split_1321 (insn, operands);
31071 :
31072 : case 13:
31073 : if (!(
31074 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31075 : (TARGET_SSE) &&
31076 : #line 2611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31077 : ( reload_completed)))
31078 : return NULL;
31079 : return gen_split_1323 (insn, operands);
31080 :
31081 : case 14:
31082 : if (!((
31083 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31084 : (TARGET_SSE) &&
31085 : #line 420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31086 : (TARGET_AVX512F)) &&
31087 : #line 2611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31088 : ( reload_completed)))
31089 : return NULL;
31090 : return gen_split_1325 (insn, operands);
31091 :
31092 : case 15:
31093 : if (!((
31094 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31095 : (TARGET_SSE) &&
31096 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31097 : (TARGET_AVX)) &&
31098 : #line 2611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31099 : ( reload_completed)))
31100 : return NULL;
31101 : return gen_split_1327 (insn, operands);
31102 :
31103 : case 16:
31104 : if (!((
31105 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31106 : (TARGET_SSE) &&
31107 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31108 : (TARGET_SSE2)) &&
31109 : #line 2611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31110 : ( reload_completed)))
31111 : return NULL;
31112 : return gen_split_1329 (insn, operands);
31113 :
31114 : default:
31115 : return NULL;
31116 : }
31117 :
31118 : case LSHIFTRT:
31119 : x4 = XVECEXP (x1, 0, 1);
31120 : if (GET_CODE (x4) != CLOBBER)
31121 : return NULL;
31122 : x7 = XEXP (x4, 0);
31123 : if (GET_CODE (x7) != REG
31124 : || REGNO (x7) != 17
31125 : || GET_MODE (x7) != E_CCmode)
31126 : return NULL;
31127 : x5 = XEXP (x2, 0);
31128 : operands[0] = x5;
31129 : x9 = XEXP (x3, 0);
31130 : operands[1] = x9;
31131 : x8 = XEXP (x3, 1);
31132 : operands[2] = x8;
31133 : switch (GET_MODE (operands[0]))
31134 : {
31135 : case E_V2QImode:
31136 : if (pattern1343 (x3,
31137 : E_V2QImode) != 0
31138 : || !
31139 : #line 4037 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
31140 : ((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
31141 : && reload_completed))
31142 : return NULL;
31143 : return gen_split_1104 (insn, operands);
31144 :
31145 : case E_QImode:
31146 : if (pattern1349 (x3,
31147 : E_QImode) != 0
31148 : || !
31149 : #line 2316 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31150 : (TARGET_AVX512F && reload_completed))
31151 : return NULL;
31152 : return gen_split_1275 (insn, operands);
31153 :
31154 : case E_HImode:
31155 : if (pattern1349 (x3,
31156 : E_HImode) != 0
31157 : || !
31158 : #line 2316 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31159 : (TARGET_AVX512F && reload_completed))
31160 : return NULL;
31161 : return gen_split_1277 (insn, operands);
31162 :
31163 : case E_SImode:
31164 : if (pattern1349 (x3,
31165 : E_SImode) != 0
31166 : || !(
31167 : #line 2316 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31168 : (TARGET_AVX512F && reload_completed) &&
31169 : #line 2098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31170 : (TARGET_AVX512BW)))
31171 : return NULL;
31172 : return gen_split_1279 (insn, operands);
31173 :
31174 : case E_DImode:
31175 : if (pattern1349 (x3,
31176 : E_DImode) != 0
31177 : || !(
31178 : #line 2316 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31179 : (TARGET_AVX512F && reload_completed) &&
31180 : #line 2098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31181 : (TARGET_AVX512BW)))
31182 : return NULL;
31183 : return gen_split_1281 (insn, operands);
31184 :
31185 : default:
31186 : return NULL;
31187 : }
31188 :
31189 : case ASHIFTRT:
31190 : if (GET_MODE (x3) != E_V2QImode)
31191 : return NULL;
31192 : x4 = XVECEXP (x1, 0, 1);
31193 : if (pattern355 (x4) != 0)
31194 : return NULL;
31195 : x5 = XEXP (x2, 0);
31196 : operands[0] = x5;
31197 : if (!register_operand (operands[0], E_V2QImode))
31198 : return NULL;
31199 : x9 = XEXP (x3, 0);
31200 : operands[1] = x9;
31201 : if (!register_operand (operands[1], E_V2QImode))
31202 : return NULL;
31203 : x8 = XEXP (x3, 1);
31204 : operands[2] = x8;
31205 : if (!nonmemory_operand (operands[2], E_QImode)
31206 : || !
31207 : #line 4037 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
31208 : ((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
31209 : && reload_completed))
31210 : return NULL;
31211 : return gen_split_1105 (insn, operands);
31212 :
31213 : case ZERO_EXTEND:
31214 : return split_39 (x1, insn);
31215 :
31216 : case NE:
31217 : case EQ:
31218 : operands[1] = x3;
31219 : switch (pattern562 (x1))
31220 : {
31221 : case 0:
31222 : if (!((
31223 : #line 2407 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31224 : (TARGET_AVX512BW) &&
31225 : #line 1556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31226 : (TARGET_AVX512DQ)) &&
31227 : #line 2409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31228 : ( reload_completed)))
31229 : return NULL;
31230 : return gen_split_1283 (insn, operands);
31231 :
31232 : case 1:
31233 : if (!(
31234 : #line 2407 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31235 : (TARGET_AVX512BW) &&
31236 : #line 2409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31237 : ( reload_completed)))
31238 : return NULL;
31239 : return gen_split_1284 (insn, operands);
31240 :
31241 : case 2:
31242 : if (!(
31243 : #line 2407 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31244 : (TARGET_AVX512BW) &&
31245 : #line 2409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31246 : ( reload_completed)))
31247 : return NULL;
31248 : return gen_split_1285 (insn, operands);
31249 :
31250 : case 3:
31251 : if (!((
31252 : #line 2407 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31253 : (TARGET_AVX512BW) &&
31254 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31255 : (TARGET_AVX512BW && TARGET_64BIT)) &&
31256 : #line 2409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31257 : ( reload_completed)))
31258 : return NULL;
31259 : return gen_split_1286 (insn, operands);
31260 :
31261 : default:
31262 : return NULL;
31263 : }
31264 :
31265 : case IF_THEN_ELSE:
31266 : x9 = XEXP (x3, 0);
31267 : if (!bt_comparison_operator (x9, E_VOIDmode))
31268 : return NULL;
31269 : x12 = XEXP (x9, 1);
31270 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + -1])
31271 : return NULL;
31272 : x4 = XVECEXP (x1, 0, 1);
31273 : if (pattern236 (x4,
31274 : E_CCmode,
31275 : 17) != 0)
31276 : return NULL;
31277 : switch (pattern1193 (x2))
31278 : {
31279 : case 0:
31280 : if (!((
31281 : #line 2442 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31282 : (TARGET_AVX512BW) &&
31283 : #line 1556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31284 : (TARGET_AVX512DQ)) &&
31285 : #line 2444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31286 : ( reload_completed)))
31287 : return NULL;
31288 : return gen_split_1287 (insn, operands);
31289 :
31290 : case 1:
31291 : if (!(
31292 : #line 2442 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31293 : (TARGET_AVX512BW) &&
31294 : #line 2444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31295 : ( reload_completed)))
31296 : return NULL;
31297 : return gen_split_1288 (insn, operands);
31298 :
31299 : case 2:
31300 : if (!(
31301 : #line 2442 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31302 : (TARGET_AVX512BW) &&
31303 : #line 2444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31304 : ( reload_completed)))
31305 : return NULL;
31306 : return gen_split_1289 (insn, operands);
31307 :
31308 : case 3:
31309 : if (!((
31310 : #line 2442 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31311 : (TARGET_AVX512BW) &&
31312 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31313 : (TARGET_AVX512BW && TARGET_64BIT)) &&
31314 : #line 2444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31315 : ( reload_completed)))
31316 : return NULL;
31317 : return gen_split_1290 (insn, operands);
31318 :
31319 : case 4:
31320 : if (!((
31321 : #line 2478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31322 : (TARGET_AVX512BW && TARGET_CMOVE && !TARGET_PARTIAL_REG_STALL) &&
31323 : #line 1556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31324 : (TARGET_AVX512DQ)) &&
31325 : #line 2480 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31326 : ( reload_completed)))
31327 : return NULL;
31328 : return gen_split_1291 (insn, operands);
31329 :
31330 : case 5:
31331 : if (!(
31332 : #line 2478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31333 : (TARGET_AVX512BW && TARGET_CMOVE && !TARGET_PARTIAL_REG_STALL) &&
31334 : #line 2480 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31335 : ( reload_completed)))
31336 : return NULL;
31337 : return gen_split_1292 (insn, operands);
31338 :
31339 : case 6:
31340 : if (!((
31341 : #line 2478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31342 : (TARGET_AVX512BW && TARGET_CMOVE && !TARGET_PARTIAL_REG_STALL) &&
31343 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31344 : (TARGET_AVX512BW)) &&
31345 : #line 2480 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31346 : ( reload_completed)))
31347 : return NULL;
31348 : return gen_split_1293 (insn, operands);
31349 :
31350 : case 7:
31351 : if (!((
31352 : #line 2478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31353 : (TARGET_AVX512BW && TARGET_CMOVE && !TARGET_PARTIAL_REG_STALL) &&
31354 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31355 : (TARGET_AVX512BW && TARGET_64BIT)) &&
31356 : #line 2480 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31357 : ( reload_completed)))
31358 : return NULL;
31359 : return gen_split_1294 (insn, operands);
31360 :
31361 : case 8:
31362 : if (!((
31363 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31364 : (TARGET_AVX512BW && TARGET_CMOVE
31365 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) &&
31366 : #line 1556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31367 : (TARGET_AVX512DQ)) &&
31368 : #line 2524 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31369 : ( reload_completed)))
31370 : return NULL;
31371 : return gen_split_1295 (insn, operands);
31372 :
31373 : case 9:
31374 : if (!(
31375 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31376 : (TARGET_AVX512BW && TARGET_CMOVE
31377 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) &&
31378 : #line 2524 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31379 : ( reload_completed)))
31380 : return NULL;
31381 : return gen_split_1298 (insn, operands);
31382 :
31383 : case 10:
31384 : if (!((
31385 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31386 : (TARGET_AVX512BW && TARGET_CMOVE
31387 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) &&
31388 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31389 : (TARGET_AVX512BW)) &&
31390 : #line 2524 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31391 : ( reload_completed)))
31392 : return NULL;
31393 : return gen_split_1301 (insn, operands);
31394 :
31395 : case 11:
31396 : if (!((
31397 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31398 : (TARGET_AVX512BW && TARGET_CMOVE
31399 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) &&
31400 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31401 : (TARGET_AVX512BW && TARGET_64BIT)) &&
31402 : #line 2524 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31403 : ( reload_completed)))
31404 : return NULL;
31405 : return gen_split_1304 (insn, operands);
31406 :
31407 : case 12:
31408 : if (!((
31409 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31410 : (TARGET_AVX512BW && TARGET_CMOVE
31411 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) &&
31412 : #line 1556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31413 : (TARGET_AVX512DQ)) &&
31414 : #line 2524 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31415 : ( reload_completed)))
31416 : return NULL;
31417 : return gen_split_1296 (insn, operands);
31418 :
31419 : case 13:
31420 : if (!(
31421 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31422 : (TARGET_AVX512BW && TARGET_CMOVE
31423 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) &&
31424 : #line 2524 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31425 : ( reload_completed)))
31426 : return NULL;
31427 : return gen_split_1299 (insn, operands);
31428 :
31429 : case 14:
31430 : if (!((
31431 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31432 : (TARGET_AVX512BW && TARGET_CMOVE
31433 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) &&
31434 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31435 : (TARGET_AVX512BW)) &&
31436 : #line 2524 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31437 : ( reload_completed)))
31438 : return NULL;
31439 : return gen_split_1302 (insn, operands);
31440 :
31441 : case 15:
31442 : if (!((
31443 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31444 : (TARGET_AVX512BW && TARGET_CMOVE
31445 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) &&
31446 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31447 : (TARGET_AVX512BW && TARGET_64BIT)) &&
31448 : #line 2524 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31449 : ( reload_completed)))
31450 : return NULL;
31451 : return gen_split_1305 (insn, operands);
31452 :
31453 : case 16:
31454 : if (!((
31455 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31456 : (TARGET_AVX512BW && TARGET_CMOVE
31457 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) && ((((
31458 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31459 : (TARGET_64BIT) &&
31460 : #line 1556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31461 : (TARGET_AVX512DQ)) &&
31462 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31463 : (TARGET_64BIT)) &&
31464 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31465 : (TARGET_64BIT)) &&
31466 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31467 : (TARGET_64BIT))) &&
31468 : #line 2524 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31469 : ( reload_completed)))
31470 : return NULL;
31471 : return gen_split_1297 (insn, operands);
31472 :
31473 : case 17:
31474 : if (!((
31475 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31476 : (TARGET_AVX512BW && TARGET_CMOVE
31477 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) &&
31478 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31479 : (TARGET_64BIT)) &&
31480 : #line 2524 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31481 : ( reload_completed)))
31482 : return NULL;
31483 : return gen_split_1300 (insn, operands);
31484 :
31485 : case 18:
31486 : if (!((
31487 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31488 : (TARGET_AVX512BW && TARGET_CMOVE
31489 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) && ((((
31490 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31491 : (TARGET_64BIT) &&
31492 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31493 : (TARGET_AVX512BW)) &&
31494 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31495 : (TARGET_64BIT)) &&
31496 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31497 : (TARGET_64BIT)) &&
31498 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31499 : (TARGET_64BIT))) &&
31500 : #line 2524 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31501 : ( reload_completed)))
31502 : return NULL;
31503 : return gen_split_1303 (insn, operands);
31504 :
31505 : case 19:
31506 : if (!((
31507 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31508 : (TARGET_AVX512BW && TARGET_CMOVE
31509 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) && ((((
31510 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31511 : (TARGET_64BIT) &&
31512 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31513 : (TARGET_AVX512BW && TARGET_64BIT)) &&
31514 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31515 : (TARGET_64BIT)) &&
31516 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31517 : (TARGET_64BIT)) &&
31518 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31519 : (TARGET_64BIT))) &&
31520 : #line 2524 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31521 : ( reload_completed)))
31522 : return NULL;
31523 : return gen_split_1306 (insn, operands);
31524 :
31525 : default:
31526 : return NULL;
31527 : }
31528 :
31529 : case VEC_MERGE:
31530 : if (pattern221 (x1) != 0
31531 : || !
31532 : #line 8701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31533 : (TARGET_SSE2 && reload_completed
31534 : && SSE_REG_P (operands[2])))
31535 : return NULL;
31536 : return gen_split_1600 (insn, operands);
31537 :
31538 : default:
31539 : return NULL;
31540 : }
31541 :
31542 : case 3:
31543 : x2 = XVECEXP (x1, 0, 0);
31544 : if (GET_CODE (x2) != SET)
31545 : return NULL;
31546 : x3 = XEXP (x2, 1);
31547 : if (GET_CODE (x3) != UNSPEC)
31548 : return NULL;
31549 : x5 = XEXP (x2, 0);
31550 : operands[0] = x5;
31551 : switch (XVECLEN (x3, 0))
31552 : {
31553 : case 5:
31554 : if (pattern730 (x1,
31555 : 132,
31556 : 5) != 0
31557 : || pattern1748 (x1) != 0
31558 : || !(
31559 : #line 26459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31560 : (TARGET_SSE4_2
31561 : && ix86_pre_reload_split ()) &&
31562 : #line 26462 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31563 : ( 1)))
31564 : return NULL;
31565 : return gen_split_3791 (insn, operands);
31566 :
31567 : case 3:
31568 : if (pattern730 (x1,
31569 : 133,
31570 : 3) != 0
31571 : || pattern1749 (x1) != 0
31572 : || !(
31573 : #line 26596 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31574 : (TARGET_SSE4_2
31575 : && ix86_pre_reload_split ()) &&
31576 : #line 26599 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31577 : ( 1)))
31578 : return NULL;
31579 : return gen_split_3792 (insn, operands);
31580 :
31581 : case 1:
31582 : x4 = XVECEXP (x1, 0, 1);
31583 : if (GET_CODE (x4) != CLOBBER)
31584 : return NULL;
31585 : x15 = XVECEXP (x1, 0, 2);
31586 : if (GET_CODE (x15) != CLOBBER
31587 : || GET_MODE (x3) != E_DImode)
31588 : return NULL;
31589 : x6 = XVECEXP (x3, 0, 0);
31590 : operands[1] = x6;
31591 : x7 = XEXP (x4, 0);
31592 : operands[2] = x7;
31593 : if (!memory_operand (operands[2], E_DImode))
31594 : return NULL;
31595 : x16 = XEXP (x15, 0);
31596 : operands[3] = x16;
31597 : if (!scratch_operand (operands[3], E_DFmode))
31598 : return NULL;
31599 : switch (XINT (x3, 1))
31600 : {
31601 : case 291:
31602 : if (!nonimmediate_operand (operands[0], E_DImode)
31603 : || !memory_operand (operands[1], E_DImode)
31604 : || !(
31605 : #line 196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
31606 : (!TARGET_64BIT && (TARGET_80387 || TARGET_SSE)) &&
31607 : #line 198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
31608 : ( reload_completed)))
31609 : return NULL;
31610 : return gen_split_3928 (insn, operands);
31611 :
31612 : case 292:
31613 : if (!memory_operand (operands[0], E_DImode)
31614 : || !nonimmediate_operand (operands[1], E_DImode)
31615 : || !(
31616 : #line 295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
31617 : (!TARGET_64BIT && (TARGET_80387 || TARGET_SSE)) &&
31618 : #line 297 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
31619 : ( reload_completed)))
31620 : return NULL;
31621 : return gen_split_3929 (insn, operands);
31622 :
31623 : default:
31624 : return NULL;
31625 : }
31626 :
31627 : default:
31628 : return NULL;
31629 : }
31630 :
31631 : default:
31632 : return NULL;
31633 : }
31634 : }
31635 :
31636 : rtx_insn *
31637 : peephole2_19 (rtx x1 ATTRIBUTE_UNUSED,
31638 : rtx_insn *insn ATTRIBUTE_UNUSED,
31639 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31640 : {
31641 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31642 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
31643 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
31644 : rtx x18, x19, x20;
31645 : rtx_insn *res ATTRIBUTE_UNUSED;
31646 : x2 = PATTERN (peep2_next_insn (1));
31647 : if (GET_CODE (x2) != SET)
31648 : return NULL;
31649 : x3 = XEXP (x2, 1);
31650 : if (!ix86_comparison_operator (x3, E_QImode))
31651 : return NULL;
31652 : x4 = XEXP (x3, 0);
31653 : if (GET_CODE (x4) != REG
31654 : || REGNO (x4) != 17)
31655 : return NULL;
31656 : x5 = XEXP (x3, 1);
31657 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
31658 : return NULL;
31659 : x6 = XEXP (x2, 0);
31660 : switch (GET_CODE (x6))
31661 : {
31662 : case REG:
31663 : case SUBREG:
31664 : operands[1] = x6;
31665 : if (!register_operand (operands[1], E_QImode))
31666 : return NULL;
31667 : operands[2] = x3;
31668 : x7 = PATTERN (peep2_next_insn (2));
31669 : switch (GET_CODE (x7))
31670 : {
31671 : case SET:
31672 : x8 = XEXP (x7, 1);
31673 : if (GET_CODE (x8) != ZERO_EXTEND)
31674 : return NULL;
31675 : x9 = XEXP (x7, 0);
31676 : operands[3] = x9;
31677 : if (!any_QIreg_operand (operands[3], E_VOIDmode))
31678 : return NULL;
31679 : x10 = XEXP (x8, 0);
31680 : if (!rtx_equal_p (x10, operands[1])
31681 : || !
31682 : #line 20297 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31683 : ((peep2_reg_dead_p (3, operands[1])
31684 : || operands_match_p (operands[1], operands[3]))
31685 : && ! reg_overlap_mentioned_p (operands[3], operands[0])
31686 : && peep2_regno_dead_p (0, FLAGS_REG)))
31687 : return NULL;
31688 : *pmatch_len_ = 2;
31689 : return gen_peephole2_189 (insn, operands);
31690 :
31691 : case PARALLEL:
31692 : if (XVECLEN (x7, 0) != 2)
31693 : return NULL;
31694 : x11 = XVECEXP (x7, 0, 0);
31695 : if (GET_CODE (x11) != SET)
31696 : return NULL;
31697 : x12 = XEXP (x11, 1);
31698 : if (GET_CODE (x12) != AND
31699 : || GET_MODE (x12) != E_SImode)
31700 : return NULL;
31701 : x13 = XEXP (x12, 1);
31702 : if (GET_CODE (x13) != CONST_INT
31703 : || XWINT (x13, 0) != 255L
31704 : || pattern1751 (x7,
31705 : E_SImode) != 0)
31706 : return NULL;
31707 : x14 = XEXP (x12, 0);
31708 : if (!rtx_equal_p (x14, operands[3])
31709 : || !
31710 : #line 20369 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31711 : (REGNO (operands[1]) == REGNO (operands[3])
31712 : && ! reg_overlap_mentioned_p (operands[3], operands[0])
31713 : && peep2_regno_dead_p (0, FLAGS_REG)))
31714 : return NULL;
31715 : *pmatch_len_ = 2;
31716 : return gen_peephole2_192 (insn, operands);
31717 :
31718 : default:
31719 : return NULL;
31720 : }
31721 :
31722 : case STRICT_LOW_PART:
31723 : if (peep2_current_count < 4)
31724 : return NULL;
31725 : x15 = XEXP (x6, 0);
31726 : operands[5] = x15;
31727 : if (!register_operand (operands[5], E_QImode))
31728 : return NULL;
31729 : operands[6] = x3;
31730 : x7 = PATTERN (peep2_next_insn (2));
31731 : if (GET_CODE (x7) != SET)
31732 : return NULL;
31733 : x8 = XEXP (x7, 1);
31734 : if (!ix86_comparison_operator (x8, E_QImode))
31735 : return NULL;
31736 : operands[2] = x8;
31737 : x10 = XEXP (x8, 0);
31738 : if (GET_CODE (x10) != REG
31739 : || REGNO (x10) != 17)
31740 : return NULL;
31741 : x16 = XEXP (x8, 1);
31742 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
31743 : return NULL;
31744 : x9 = XEXP (x7, 0);
31745 : operands[1] = x9;
31746 : if (!register_operand (operands[1], E_QImode))
31747 : return NULL;
31748 : x17 = PATTERN (peep2_next_insn (3));
31749 : if (GET_CODE (x17) != SET)
31750 : return NULL;
31751 : x18 = XEXP (x17, 1);
31752 : if (GET_CODE (x18) != ZERO_EXTEND)
31753 : return NULL;
31754 : x19 = XEXP (x17, 0);
31755 : operands[3] = x19;
31756 : if (!any_QIreg_operand (operands[3], E_VOIDmode))
31757 : return NULL;
31758 : x20 = XEXP (x18, 0);
31759 : if (!rtx_equal_p (x20, operands[1])
31760 : || !
31761 : #line 20442 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31762 : ((peep2_reg_dead_p (4, operands[1])
31763 : || operands_match_p (operands[1], operands[3]))
31764 : && ! reg_overlap_mentioned_p (operands[3], operands[0])
31765 : && ! reg_overlap_mentioned_p (operands[3], operands[5])
31766 : && ! reg_overlap_mentioned_p (operands[1], operands[5])
31767 : && peep2_regno_dead_p (0, FLAGS_REG)))
31768 : return NULL;
31769 : *pmatch_len_ = 3;
31770 : return gen_peephole2_195 (insn, operands);
31771 :
31772 : default:
31773 : return NULL;
31774 : }
31775 : }
31776 :
31777 : rtx_insn *
31778 : peephole2_25 (rtx x1 ATTRIBUTE_UNUSED,
31779 : rtx_insn *insn ATTRIBUTE_UNUSED,
31780 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31781 : {
31782 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31783 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
31784 : rtx x10;
31785 : rtx_insn *res ATTRIBUTE_UNUSED;
31786 : x2 = PATTERN (peep2_next_insn (1));
31787 : if (pattern1361 (x2,
31788 : E_SImode) != 0)
31789 : return NULL;
31790 : x3 = XVECEXP (x2, 0, 0);
31791 : x4 = XEXP (x3, 1);
31792 : x5 = XEXP (x4, 0);
31793 : if (!rtx_equal_p (x5, operands[0]))
31794 : return NULL;
31795 : x6 = XEXP (x3, 0);
31796 : if (!rtx_equal_p (x6, operands[0]))
31797 : return NULL;
31798 : x7 = PATTERN (peep2_next_insn (2));
31799 : x8 = XEXP (x7, 1);
31800 : if (!rtx_equal_p (x8, operands[0]))
31801 : return NULL;
31802 : x9 = PATTERN (peep2_next_insn (3));
31803 : if (GET_CODE (x9) != SET)
31804 : return NULL;
31805 : x10 = XEXP (x7, 0);
31806 : if (rtx_equal_p (x10, operands[1])
31807 : && pattern1850 (x9) == 0
31808 : &&
31809 : #line 28637 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31810 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31811 : && peep2_reg_dead_p (4, operands[0])
31812 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31813 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31814 : && (SImode != QImode
31815 : || immediate_operand (operands[2], QImode)
31816 : || any_QIreg_operand (operands[2], QImode))
31817 : && ix86_match_ccmode (peep2_next_insn (3),
31818 : (GET_CODE (operands[3]) == PLUS
31819 : || GET_CODE (operands[3]) == MINUS)
31820 : ? CCGOCmode : CCNOmode)))
31821 : {
31822 : *pmatch_len_ = 3;
31823 : res = gen_peephole2_317 (insn, operands);
31824 : if (res != NULL_RTX)
31825 : return res;
31826 : }
31827 : if (peep2_current_count < 5
31828 : || pattern1851 (x10,
31829 : E_SImode) != 0
31830 : || !
31831 : #line 28918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31832 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31833 : && peep2_reg_dead_p (3, operands[0])
31834 : && peep2_reg_dead_p (5, operands[4])
31835 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31836 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31837 : && !reg_overlap_mentioned_p (operands[4], operands[1])
31838 : && (SImode != QImode
31839 : || immediate_operand (operands[2], QImode)
31840 : || any_QIreg_operand (operands[2], QImode))
31841 : && ix86_match_ccmode (peep2_next_insn (4),
31842 : (GET_CODE (operands[3]) == PLUS
31843 : || GET_CODE (operands[3]) == MINUS)
31844 : ? CCGOCmode : CCNOmode)))
31845 : return NULL;
31846 : *pmatch_len_ = 4;
31847 : return gen_peephole2_347 (insn, operands);
31848 : }
31849 :
31850 : rtx_insn *
31851 : peephole2_28 (rtx x1 ATTRIBUTE_UNUSED,
31852 : rtx_insn *insn ATTRIBUTE_UNUSED,
31853 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31854 : {
31855 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31856 : rtx x2, x3, x4, x5, x6, x7, x8;
31857 : rtx_insn *res ATTRIBUTE_UNUSED;
31858 : x2 = XEXP (x1, 1);
31859 : if (GET_MODE (x2) != E_SImode)
31860 : return NULL;
31861 : x3 = XEXP (x2, 0);
31862 : if (GET_CODE (x3) != AND
31863 : || pattern119 (x2) != 0)
31864 : return NULL;
31865 : x4 = XEXP (x1, 0);
31866 : operands[0] = x4;
31867 : if (!general_reg_operand (operands[0], E_SImode))
31868 : return NULL;
31869 : x5 = XEXP (x3, 0);
31870 : if (!rtx_equal_p (x5, operands[0]))
31871 : return NULL;
31872 : x6 = XEXP (x2, 1);
31873 : x7 = XEXP (x6, 0);
31874 : x8 = XEXP (x7, 0);
31875 : if (!rtx_equal_p (x8, operands[0])
31876 : || !
31877 : #line 23028 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31878 : (!(TARGET_USE_XCHGB ||
31879 : TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
31880 : && peep2_regno_dead_p (0, FLAGS_REG)))
31881 : return NULL;
31882 : *pmatch_len_ = 0;
31883 : return gen_peephole2_211 (insn, operands);
31884 : }
31885 :
31886 : rtx_insn *
31887 : peephole2_29 (rtx x1 ATTRIBUTE_UNUSED,
31888 : rtx_insn *insn ATTRIBUTE_UNUSED,
31889 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31890 : {
31891 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31892 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
31893 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
31894 : rtx x18, x19, x20, x21;
31895 : rtx_insn *res ATTRIBUTE_UNUSED;
31896 : if (peep2_current_count < 2)
31897 : return NULL;
31898 : x2 = XEXP (x1, 0);
31899 : operands[0] = x2;
31900 : x3 = XEXP (x1, 1);
31901 : x4 = XEXP (x3, 0);
31902 : operands[1] = x4;
31903 : if (!general_reg_operand (operands[1], E_QImode))
31904 : return NULL;
31905 : x5 = PATTERN (peep2_next_insn (1));
31906 : if (GET_CODE (x5) != PARALLEL
31907 : || XVECLEN (x5, 0) != 2)
31908 : return NULL;
31909 : x6 = XVECEXP (x5, 0, 0);
31910 : if (GET_CODE (x6) != SET)
31911 : return NULL;
31912 : x7 = XVECEXP (x5, 0, 1);
31913 : if (GET_CODE (x7) != CLOBBER)
31914 : return NULL;
31915 : switch (GET_MODE (operands[0]))
31916 : {
31917 : case E_HImode:
31918 : if (!register_operand (operands[0], E_HImode)
31919 : || GET_MODE (x3) != E_HImode)
31920 : return NULL;
31921 : x8 = XEXP (x6, 1);
31922 : if (GET_CODE (x8) != UNSPEC
31923 : || XVECLEN (x8, 0) != 1
31924 : || XINT (x8, 1) != 28
31925 : || GET_MODE (x8) != E_CCmode)
31926 : return NULL;
31927 : x9 = XEXP (x6, 0);
31928 : if (GET_CODE (x9) != REG
31929 : || REGNO (x9) != 17
31930 : || GET_MODE (x9) != E_CCmode)
31931 : return NULL;
31932 : x10 = XVECEXP (x8, 0, 0);
31933 : if (!rtx_equal_p (x10, operands[0]))
31934 : return NULL;
31935 : x11 = XEXP (x7, 0);
31936 : if (!rtx_equal_p (x11, operands[0]))
31937 : return NULL;
31938 : *pmatch_len_ = 1;
31939 : return gen_peephole2_213 (insn, operands);
31940 :
31941 : case E_SImode:
31942 : if (peep2_current_count < 3
31943 : || peep2_current_count < 4
31944 : || !register_operand (operands[0], E_SImode)
31945 : || GET_MODE (x3) != E_SImode)
31946 : return NULL;
31947 : x8 = XEXP (x6, 1);
31948 : if (GET_CODE (x8) != POPCOUNT
31949 : || GET_MODE (x8) != E_SImode)
31950 : return NULL;
31951 : x11 = XEXP (x7, 0);
31952 : if (GET_CODE (x11) != REG
31953 : || REGNO (x11) != 17
31954 : || GET_MODE (x11) != E_CCmode)
31955 : return NULL;
31956 : x9 = XEXP (x6, 0);
31957 : operands[2] = x9;
31958 : if (!register_operand (operands[2], E_SImode))
31959 : return NULL;
31960 : x12 = XEXP (x8, 0);
31961 : if (!rtx_equal_p (x12, operands[0]))
31962 : return NULL;
31963 : x13 = PATTERN (peep2_next_insn (2));
31964 : if (GET_CODE (x13) != SET
31965 : || pattern1777 (x13) != 0)
31966 : return NULL;
31967 : x14 = XEXP (x13, 1);
31968 : x15 = XEXP (x14, 0);
31969 : x16 = XEXP (x15, 0);
31970 : operands[3] = x16;
31971 : if (!register_operand (operands[3], E_QImode))
31972 : return NULL;
31973 : x17 = PATTERN (peep2_next_insn (3));
31974 : if (GET_CODE (x17) != SET)
31975 : return NULL;
31976 : x18 = XEXP (x17, 1);
31977 : if (GET_CODE (x18) != IF_THEN_ELSE)
31978 : return NULL;
31979 : x19 = XEXP (x18, 0);
31980 : if (!bt_comparison_operator (x19, E_VOIDmode))
31981 : return NULL;
31982 : operands[4] = x19;
31983 : if (pattern1898 (x17) != 0)
31984 : return NULL;
31985 : x20 = XEXP (x18, 1);
31986 : x21 = XEXP (x20, 0);
31987 : operands[5] = x21;
31988 : if (!
31989 : #line 23208 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31990 : (REGNO (operands[2]) == REGNO (operands[3])
31991 : && peep2_reg_dead_p (3, operands[0])
31992 : && peep2_reg_dead_p (3, operands[2])
31993 : && peep2_regno_dead_p (4, FLAGS_REG)))
31994 : return NULL;
31995 : *pmatch_len_ = 3;
31996 : return gen_peephole2_214 (insn, operands);
31997 :
31998 : default:
31999 : return NULL;
32000 : }
32001 : }
32002 :
32003 : rtx_insn *
32004 : peephole2_33 (rtx x1 ATTRIBUTE_UNUSED,
32005 : rtx_insn *insn ATTRIBUTE_UNUSED,
32006 : int *pmatch_len_ ATTRIBUTE_UNUSED)
32007 : {
32008 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
32009 : rtx x2, x3, x4, x5, x6;
32010 : rtx_insn *res ATTRIBUTE_UNUSED;
32011 : x2 = XEXP (x1, 0);
32012 : if (REGNO (x2) != 17)
32013 : return NULL;
32014 : x3 = XEXP (x1, 1);
32015 : operands[0] = x3;
32016 : x4 = PATTERN (peep2_next_insn (1));
32017 : if (GET_CODE (x4) != SET)
32018 : return NULL;
32019 : x5 = XEXP (x4, 1);
32020 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
32021 : return NULL;
32022 : x6 = XEXP (x4, 0);
32023 : operands[1] = x6;
32024 : switch (GET_MODE (operands[1]))
32025 : {
32026 : case E_QImode:
32027 : if (!general_reg_operand (operands[1], E_QImode)
32028 : || !
32029 : #line 27474 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32030 : (peep2_regno_dead_p (0, FLAGS_REG)
32031 : && !reg_overlap_mentioned_p (operands[1], operands[0])))
32032 : return NULL;
32033 : *pmatch_len_ = 1;
32034 : return gen_peephole2_233 (insn, operands);
32035 :
32036 : case E_HImode:
32037 : if (!general_reg_operand (operands[1], E_HImode)
32038 : || !
32039 : #line 27474 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32040 : (peep2_regno_dead_p (0, FLAGS_REG)
32041 : && !reg_overlap_mentioned_p (operands[1], operands[0])))
32042 : return NULL;
32043 : *pmatch_len_ = 1;
32044 : return gen_peephole2_234 (insn, operands);
32045 :
32046 : case E_SImode:
32047 : if (!general_reg_operand (operands[1], E_SImode)
32048 : || !
32049 : #line 27474 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32050 : (peep2_regno_dead_p (0, FLAGS_REG)
32051 : && !reg_overlap_mentioned_p (operands[1], operands[0])))
32052 : return NULL;
32053 : *pmatch_len_ = 1;
32054 : return gen_peephole2_235 (insn, operands);
32055 :
32056 : case E_DImode:
32057 : if (!general_reg_operand (operands[1], E_DImode)
32058 : || !(
32059 : #line 27474 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32060 : (peep2_regno_dead_p (0, FLAGS_REG)
32061 : && !reg_overlap_mentioned_p (operands[1], operands[0])) &&
32062 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32063 : (TARGET_64BIT)))
32064 : return NULL;
32065 : *pmatch_len_ = 1;
32066 : return gen_peephole2_236 (insn, operands);
32067 :
32068 : default:
32069 : return NULL;
32070 : }
32071 : }
32072 :
32073 : rtx_insn *
32074 : peephole2_35 (rtx x1 ATTRIBUTE_UNUSED,
32075 : rtx_insn *insn ATTRIBUTE_UNUSED,
32076 : int *pmatch_len_ ATTRIBUTE_UNUSED)
32077 : {
32078 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
32079 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
32080 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
32081 : rtx x18;
32082 : rtx_insn *res ATTRIBUTE_UNUSED;
32083 : x2 = XEXP (x1, 1);
32084 : operands[1] = x2;
32085 : if (!general_operand (operands[1], E_QImode))
32086 : return NULL;
32087 : x3 = PATTERN (peep2_next_insn (1));
32088 : x4 = XVECEXP (x3, 0, 1);
32089 : if (GET_CODE (x4) != SET)
32090 : return NULL;
32091 : x5 = XEXP (x4, 1);
32092 : if (GET_CODE (x5) != UNSPEC_VOLATILE
32093 : || XVECLEN (x5, 0) != 1
32094 : || XINT (x5, 1) != 109
32095 : || GET_MODE (x5) != E_QImode)
32096 : return NULL;
32097 : x6 = XVECEXP (x5, 0, 0);
32098 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
32099 : return NULL;
32100 : x7 = XVECEXP (x3, 0, 2);
32101 : if (GET_CODE (x7) != SET)
32102 : return NULL;
32103 : x8 = XEXP (x7, 1);
32104 : if (GET_CODE (x8) != UNSPEC_VOLATILE
32105 : || XVECLEN (x8, 0) != 1
32106 : || XINT (x8, 1) != 109
32107 : || GET_MODE (x8) != E_CCZmode)
32108 : return NULL;
32109 : x9 = XVECEXP (x8, 0, 0);
32110 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
32111 : return NULL;
32112 : x10 = XEXP (x7, 0);
32113 : if (GET_CODE (x10) != REG
32114 : || REGNO (x10) != 17
32115 : || GET_MODE (x10) != E_CCZmode)
32116 : return NULL;
32117 : x11 = XVECEXP (x3, 0, 0);
32118 : x12 = XEXP (x11, 1);
32119 : x13 = XVECEXP (x12, 0, 0);
32120 : operands[2] = x13;
32121 : if (!memory_operand (operands[2], E_QImode))
32122 : return NULL;
32123 : x14 = XVECEXP (x12, 0, 2);
32124 : operands[3] = x14;
32125 : if (!register_operand (operands[3], E_QImode)
32126 : || pattern1713 (x3) != 0)
32127 : return NULL;
32128 : x15 = PATTERN (peep2_next_insn (2));
32129 : if (pattern1546 (x15) != 0)
32130 : return NULL;
32131 : x16 = XEXP (x15, 1);
32132 : x17 = XEXP (x16, 0);
32133 : operands[5] = x17;
32134 : if (!register_operand (operands[5], E_QImode))
32135 : return NULL;
32136 : x18 = XEXP (x16, 1);
32137 : operands[6] = x18;
32138 : if (!general_operand (operands[6], E_QImode)
32139 : || !
32140 : #line 521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32141 : ((rtx_equal_p (operands[0], operands[5])
32142 : && rtx_equal_p (operands[1], operands[6]))
32143 : || (rtx_equal_p (operands[0], operands[6])
32144 : && rtx_equal_p (operands[1], operands[5]))))
32145 : return NULL;
32146 : *pmatch_len_ = 2;
32147 : return gen_peephole2_435 (insn, operands);
32148 : }
32149 :
32150 : rtx_insn *
32151 : peephole2_43 (rtx x1 ATTRIBUTE_UNUSED,
32152 : rtx_insn *insn ATTRIBUTE_UNUSED,
32153 : int *pmatch_len_ ATTRIBUTE_UNUSED)
32154 : {
32155 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
32156 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
32157 : rtx x10, x11, x12, x13, x14;
32158 : rtx_insn *res ATTRIBUTE_UNUSED;
32159 : x2 = XVECEXP (x1, 0, 1);
32160 : x3 = XEXP (x2, 1);
32161 : if (GET_CODE (x3) != PLUS)
32162 : return NULL;
32163 : x4 = XVECEXP (x1, 0, 0);
32164 : x5 = XEXP (x4, 0);
32165 : if (GET_MODE (x5) != E_CCCmode)
32166 : return NULL;
32167 : x6 = XEXP (x4, 1);
32168 : if (GET_MODE (x6) != E_CCCmode)
32169 : return NULL;
32170 : x7 = XEXP (x6, 1);
32171 : if (!rtx_equal_p (x7, operands[0]))
32172 : return NULL;
32173 : x8 = XEXP (x3, 0);
32174 : if (!rtx_equal_p (x8, operands[0]))
32175 : return NULL;
32176 : x9 = XEXP (x3, 1);
32177 : if (!rtx_equal_p (x9, operands[1]))
32178 : return NULL;
32179 : x10 = XEXP (x2, 0);
32180 : if (!rtx_equal_p (x10, operands[0]))
32181 : return NULL;
32182 : x11 = PATTERN (peep2_next_insn (1));
32183 : x12 = XEXP (x11, 1);
32184 : if (!rtx_equal_p (x12, operands[0]))
32185 : return NULL;
32186 : x13 = XEXP (x11, 0);
32187 : if (!rtx_equal_p (x13, operands[1]))
32188 : return NULL;
32189 : x14 = XEXP (x6, 0);
32190 : switch (GET_MODE (x14))
32191 : {
32192 : case E_QImode:
32193 : if (!general_reg_operand (operands[0], E_QImode)
32194 : || !memory_operand (operands[1], E_QImode)
32195 : || GET_MODE (x3) != E_QImode
32196 : || !
32197 : #line 10311 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32198 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32199 : && peep2_reg_dead_p (2, operands[0])
32200 : && !reg_overlap_mentioned_p (operands[0], operands[1])))
32201 : return NULL;
32202 : *pmatch_len_ = 1;
32203 : return gen_peephole2_120 (insn, operands);
32204 :
32205 : case E_HImode:
32206 : if (!general_reg_operand (operands[0], E_HImode)
32207 : || !memory_operand (operands[1], E_HImode)
32208 : || GET_MODE (x3) != E_HImode
32209 : || !
32210 : #line 10311 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32211 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32212 : && peep2_reg_dead_p (2, operands[0])
32213 : && !reg_overlap_mentioned_p (operands[0], operands[1])))
32214 : return NULL;
32215 : *pmatch_len_ = 1;
32216 : return gen_peephole2_121 (insn, operands);
32217 :
32218 : case E_SImode:
32219 : if (!general_reg_operand (operands[0], E_SImode)
32220 : || !memory_operand (operands[1], E_SImode)
32221 : || GET_MODE (x3) != E_SImode
32222 : || !
32223 : #line 10311 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32224 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32225 : && peep2_reg_dead_p (2, operands[0])
32226 : && !reg_overlap_mentioned_p (operands[0], operands[1])))
32227 : return NULL;
32228 : *pmatch_len_ = 1;
32229 : return gen_peephole2_122 (insn, operands);
32230 :
32231 : case E_DImode:
32232 : if (!general_reg_operand (operands[0], E_DImode)
32233 : || !memory_operand (operands[1], E_DImode)
32234 : || GET_MODE (x3) != E_DImode
32235 : || !(
32236 : #line 10311 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32237 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32238 : && peep2_reg_dead_p (2, operands[0])
32239 : && !reg_overlap_mentioned_p (operands[0], operands[1])) &&
32240 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32241 : (TARGET_64BIT)))
32242 : return NULL;
32243 : *pmatch_len_ = 1;
32244 : return gen_peephole2_123 (insn, operands);
32245 :
32246 : default:
32247 : return NULL;
32248 : }
32249 : }
32250 :
32251 : rtx_insn *
32252 : peephole2_46 (rtx x1 ATTRIBUTE_UNUSED,
32253 : rtx_insn *insn ATTRIBUTE_UNUSED,
32254 : int *pmatch_len_ ATTRIBUTE_UNUSED)
32255 : {
32256 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
32257 : rtx x2, x3, x4, x5, x6;
32258 : rtx_insn *res ATTRIBUTE_UNUSED;
32259 : if (peep2_current_count < 2
32260 : || pattern248 (x1) != 0)
32261 : return NULL;
32262 : x2 = PATTERN (peep2_next_insn (1));
32263 : if (GET_CODE (x2) != SET)
32264 : return NULL;
32265 : x3 = XEXP (x2, 1);
32266 : if (GET_CODE (x3) != COMPARE
32267 : || GET_MODE (x3) != E_CCZmode
32268 : || pattern1458 (x2,
32269 : 0) != 0)
32270 : return NULL;
32271 : x4 = XEXP (x3, 0);
32272 : if (!rtx_equal_p (x4, operands[1]))
32273 : return NULL;
32274 : switch (GET_MODE (operands[0]))
32275 : {
32276 : case E_QImode:
32277 : if (!general_reg_operand (operands[0], E_QImode))
32278 : return NULL;
32279 : x5 = XVECEXP (x1, 0, 0);
32280 : x6 = XEXP (x5, 1);
32281 : if (GET_MODE (x6) != E_QImode
32282 : || !general_reg_operand (operands[1], E_QImode)
32283 : || !
32284 : #line 14902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32285 : (TARGET_APX_NDD))
32286 : return NULL;
32287 : *pmatch_len_ = 1;
32288 : return gen_peephole2_175 (insn, operands);
32289 :
32290 : case E_HImode:
32291 : if (!general_reg_operand (operands[0], E_HImode))
32292 : return NULL;
32293 : x5 = XVECEXP (x1, 0, 0);
32294 : x6 = XEXP (x5, 1);
32295 : if (GET_MODE (x6) != E_HImode
32296 : || !general_reg_operand (operands[1], E_HImode)
32297 : || !
32298 : #line 14902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32299 : (TARGET_APX_NDD))
32300 : return NULL;
32301 : *pmatch_len_ = 1;
32302 : return gen_peephole2_176 (insn, operands);
32303 :
32304 : case E_SImode:
32305 : if (!general_reg_operand (operands[0], E_SImode))
32306 : return NULL;
32307 : x5 = XVECEXP (x1, 0, 0);
32308 : x6 = XEXP (x5, 1);
32309 : if (GET_MODE (x6) != E_SImode
32310 : || !general_reg_operand (operands[1], E_SImode)
32311 : || !
32312 : #line 14902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32313 : (TARGET_APX_NDD))
32314 : return NULL;
32315 : *pmatch_len_ = 1;
32316 : return gen_peephole2_177 (insn, operands);
32317 :
32318 : case E_DImode:
32319 : if (!general_reg_operand (operands[0], E_DImode))
32320 : return NULL;
32321 : x5 = XVECEXP (x1, 0, 0);
32322 : x6 = XEXP (x5, 1);
32323 : if (GET_MODE (x6) != E_DImode
32324 : || !general_reg_operand (operands[1], E_DImode)
32325 : || !(
32326 : #line 14902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32327 : (TARGET_APX_NDD) &&
32328 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32329 : (TARGET_64BIT)))
32330 : return NULL;
32331 : *pmatch_len_ = 1;
32332 : return gen_peephole2_178 (insn, operands);
32333 :
32334 : default:
32335 : return NULL;
32336 : }
32337 : }
32338 :
32339 : rtx_insn *
32340 : peephole2_48 (rtx x1 ATTRIBUTE_UNUSED,
32341 : rtx_insn *insn ATTRIBUTE_UNUSED,
32342 : int *pmatch_len_ ATTRIBUTE_UNUSED)
32343 : {
32344 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
32345 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
32346 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
32347 : rtx_insn *res ATTRIBUTE_UNUSED;
32348 : if (peep2_current_count < 3)
32349 : return NULL;
32350 : x2 = XVECEXP (x1, 0, 0);
32351 : x3 = XEXP (x2, 0);
32352 : operands[5] = x3;
32353 : if (!flags_reg_operand (operands[5], E_VOIDmode))
32354 : return NULL;
32355 : x4 = XEXP (x2, 1);
32356 : operands[0] = x4;
32357 : x5 = XVECEXP (x1, 0, 1);
32358 : operands[4] = x5;
32359 : x6 = PATTERN (peep2_next_insn (1));
32360 : if (GET_CODE (x6) != SET)
32361 : return NULL;
32362 : x7 = XEXP (x6, 1);
32363 : if (!ix86_comparison_operator (x7, E_QImode))
32364 : return NULL;
32365 : operands[2] = x7;
32366 : x8 = XEXP (x7, 0);
32367 : if (GET_CODE (x8) != REG
32368 : || REGNO (x8) != 17)
32369 : return NULL;
32370 : x9 = XEXP (x7, 1);
32371 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
32372 : return NULL;
32373 : x10 = XEXP (x6, 0);
32374 : operands[1] = x10;
32375 : if (!register_operand (operands[1], E_QImode))
32376 : return NULL;
32377 : x11 = PATTERN (peep2_next_insn (2));
32378 : switch (GET_CODE (x11))
32379 : {
32380 : case SET:
32381 : x12 = XEXP (x11, 1);
32382 : if (GET_CODE (x12) != ZERO_EXTEND)
32383 : return NULL;
32384 : x13 = XEXP (x11, 0);
32385 : operands[3] = x13;
32386 : if (!any_QIreg_operand (operands[3], E_VOIDmode))
32387 : return NULL;
32388 : x14 = XEXP (x12, 0);
32389 : if (!rtx_equal_p (x14, operands[1])
32390 : || !
32391 : #line 20317 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32392 : ((peep2_reg_dead_p (3, operands[1])
32393 : || operands_match_p (operands[1], operands[3]))
32394 : && ! reg_overlap_mentioned_p (operands[3], operands[0])
32395 : && ! reg_overlap_mentioned_p (operands[3], operands[4])
32396 : && ! reg_set_p (operands[3], operands[4])
32397 : && peep2_regno_dead_p (0, FLAGS_REG)))
32398 : return NULL;
32399 : *pmatch_len_ = 2;
32400 : return gen_peephole2_190 (insn, operands);
32401 :
32402 : case PARALLEL:
32403 : if (XVECLEN (x11, 0) != 2)
32404 : return NULL;
32405 : x15 = XVECEXP (x11, 0, 0);
32406 : if (GET_CODE (x15) != SET)
32407 : return NULL;
32408 : x16 = XEXP (x15, 1);
32409 : if (GET_CODE (x16) != ZERO_EXTEND
32410 : || pattern1751 (x11,
32411 : E_VOIDmode) != 0)
32412 : return NULL;
32413 : x17 = XEXP (x16, 0);
32414 : if (!rtx_equal_p (x17, operands[1])
32415 : || !
32416 : #line 20389 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32417 : ((peep2_reg_dead_p (3, operands[1])
32418 : || operands_match_p (operands[1], operands[3]))
32419 : && ! reg_overlap_mentioned_p (operands[3], operands[0])
32420 : && ! reg_overlap_mentioned_p (operands[3], operands[4])
32421 : && ! reg_set_p (operands[3], operands[4])
32422 : && peep2_regno_dead_p (0, FLAGS_REG)))
32423 : return NULL;
32424 : *pmatch_len_ = 2;
32425 : return gen_peephole2_193 (insn, operands);
32426 :
32427 : default:
32428 : return NULL;
32429 : }
32430 : }
32431 :
32432 : rtx_insn *
32433 : peephole2_52 (rtx x1 ATTRIBUTE_UNUSED,
32434 : rtx_insn *insn ATTRIBUTE_UNUSED,
32435 : int *pmatch_len_ ATTRIBUTE_UNUSED)
32436 : {
32437 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
32438 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
32439 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
32440 : rtx x18, x19;
32441 : rtx_insn *res ATTRIBUTE_UNUSED;
32442 : x2 = XVECEXP (x1, 0, 0);
32443 : if (GET_CODE (x2) != SET)
32444 : return NULL;
32445 : x3 = XEXP (x2, 1);
32446 : switch (GET_CODE (x3))
32447 : {
32448 : case REG:
32449 : res = peephole2_39 (x1, insn, pmatch_len_);
32450 : if (res != NULL_RTX)
32451 : return res;
32452 : break;
32453 :
32454 : case CONST_INT:
32455 : res = peephole2_41 (x1, insn, pmatch_len_);
32456 : if (res != NULL_RTX)
32457 : return res;
32458 : break;
32459 :
32460 : case PLUS:
32461 : res = peephole2_42 (x1, insn, pmatch_len_);
32462 : if (res != NULL_RTX)
32463 : return res;
32464 : break;
32465 :
32466 : case COMPARE:
32467 : res = peephole2_44 (x1, insn, pmatch_len_);
32468 : if (res != NULL_RTX)
32469 : return res;
32470 : break;
32471 :
32472 : case MULT:
32473 : res = peephole2_45 (x1, insn, pmatch_len_);
32474 : if (res != NULL_RTX)
32475 : return res;
32476 : break;
32477 :
32478 : case NEG:
32479 : res = peephole2_46 (x1, insn, pmatch_len_);
32480 : if (res != NULL_RTX)
32481 : return res;
32482 : break;
32483 :
32484 : case ASHIFT:
32485 : if (pattern248 (x1) == 0)
32486 : {
32487 : x4 = XEXP (x3, 1);
32488 : operands[2] = x4;
32489 : if (nonmemory_operand (operands[2], E_QImode))
32490 : {
32491 : switch (GET_MODE (operands[0]))
32492 : {
32493 : case E_DImode:
32494 : if (register_operand (operands[0], E_DImode)
32495 : && GET_MODE (x3) == E_DImode
32496 : && nonmemory_operand (operands[1], E_DImode)
32497 : && (
32498 : #line 15685 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32499 : (TARGET_CMOVE) &&
32500 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32501 : (!TARGET_64BIT)))
32502 : {
32503 : *pmatch_len_ = 0;
32504 : res = gen_peephole2_179 (insn, operands);
32505 : if (res != NULL_RTX)
32506 : return res;
32507 : }
32508 : break;
32509 :
32510 : case E_TImode:
32511 : if (register_operand (operands[0], E_TImode)
32512 : && GET_MODE (x3) == E_TImode
32513 : && nonmemory_operand (operands[1], E_TImode)
32514 : && (
32515 : #line 15685 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32516 : (TARGET_CMOVE) &&
32517 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32518 : (TARGET_64BIT)))
32519 : {
32520 : *pmatch_len_ = 0;
32521 : res = gen_peephole2_180 (insn, operands);
32522 : if (res != NULL_RTX)
32523 : return res;
32524 : }
32525 : break;
32526 :
32527 : default:
32528 : break;
32529 : }
32530 : }
32531 : }
32532 : break;
32533 :
32534 : case LSHIFTRT:
32535 : switch (pattern250 (x1))
32536 : {
32537 : case 0:
32538 : if ((
32539 : #line 17055 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32540 : (TARGET_CMOVE) &&
32541 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32542 : (!TARGET_64BIT)))
32543 : {
32544 : *pmatch_len_ = 0;
32545 : res = gen_peephole2_181 (insn, operands);
32546 : if (res != NULL_RTX)
32547 : return res;
32548 : }
32549 : break;
32550 :
32551 : case 1:
32552 : if ((
32553 : #line 17055 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32554 : (TARGET_CMOVE) &&
32555 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32556 : (TARGET_64BIT)))
32557 : {
32558 : *pmatch_len_ = 0;
32559 : res = gen_peephole2_183 (insn, operands);
32560 : if (res != NULL_RTX)
32561 : return res;
32562 : }
32563 : break;
32564 :
32565 : default:
32566 : break;
32567 : }
32568 : break;
32569 :
32570 : case ASHIFTRT:
32571 : switch (pattern250 (x1))
32572 : {
32573 : case 0:
32574 : if ((
32575 : #line 17055 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32576 : (TARGET_CMOVE) &&
32577 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32578 : (!TARGET_64BIT)))
32579 : {
32580 : *pmatch_len_ = 0;
32581 : res = gen_peephole2_182 (insn, operands);
32582 : if (res != NULL_RTX)
32583 : return res;
32584 : }
32585 : break;
32586 :
32587 : case 1:
32588 : if ((
32589 : #line 17055 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32590 : (TARGET_CMOVE) &&
32591 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32592 : (TARGET_64BIT)))
32593 : {
32594 : *pmatch_len_ = 0;
32595 : res = gen_peephole2_184 (insn, operands);
32596 : if (res != NULL_RTX)
32597 : return res;
32598 : }
32599 : break;
32600 :
32601 : default:
32602 : break;
32603 : }
32604 : break;
32605 :
32606 : case NOT:
32607 : if (GET_MODE (x3) == E_DImode)
32608 : {
32609 : x5 = XEXP (x3, 0);
32610 : if (GET_CODE (x5) == ZERO_EXTRACT
32611 : && pattern376 (x1) == 0)
32612 : {
32613 : x6 = XEXP (x5, 0);
32614 : if (rtx_equal_p (x6, operands[0]))
32615 : {
32616 : x7 = XEXP (x5, 2);
32617 : if (rtx_equal_p (x7, operands[1])
32618 : &&
32619 : #line 19466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32620 : (TARGET_64BIT && !TARGET_USE_BT))
32621 : {
32622 : *pmatch_len_ = 0;
32623 : res = gen_peephole2_187 (insn, operands);
32624 : if (res != NULL_RTX)
32625 : return res;
32626 : }
32627 : }
32628 : }
32629 : }
32630 : break;
32631 :
32632 : case POPCOUNT:
32633 : res = peephole2_47 (x1, insn, pmatch_len_);
32634 : if (res != NULL_RTX)
32635 : return res;
32636 : break;
32637 :
32638 : default:
32639 : break;
32640 : }
32641 : if (peep2_current_count >= 2)
32642 : {
32643 : res = peephole2_48 (x1, insn, pmatch_len_);
32644 : if (res != NULL_RTX)
32645 : return res;
32646 : }
32647 : x8 = XVECEXP (x1, 0, 1);
32648 : if (GET_CODE (x8) != CLOBBER)
32649 : return NULL;
32650 : switch (GET_CODE (x3))
32651 : {
32652 : case COMPARE:
32653 : case PLUS:
32654 : case MINUS:
32655 : case MULT:
32656 : case DIV:
32657 : case MOD:
32658 : case UDIV:
32659 : case UMOD:
32660 : case AND:
32661 : case IOR:
32662 : case XOR:
32663 : case ASHIFT:
32664 : case ROTATE:
32665 : case ASHIFTRT:
32666 : case LSHIFTRT:
32667 : case ROTATERT:
32668 : case SMIN:
32669 : case SMAX:
32670 : case UMIN:
32671 : case UMAX:
32672 : x9 = XEXP (x2, 0);
32673 : operands[0] = x9;
32674 : res = peephole2_50 (x1, insn, pmatch_len_);
32675 : if (res != NULL_RTX)
32676 : return res;
32677 : x10 = XEXP (x8, 0);
32678 : if (GET_CODE (x10) != REG
32679 : || REGNO (x10) != 17
32680 : || GET_MODE (x10) != E_CCmode)
32681 : return NULL;
32682 : switch (GET_CODE (x3))
32683 : {
32684 : case PLUS:
32685 : case MINUS:
32686 : case AND:
32687 : case IOR:
32688 : case XOR:
32689 : if (peep2_current_count >= 2)
32690 : {
32691 : res = peephole2_51 (x1, insn, pmatch_len_);
32692 : if (res != NULL_RTX)
32693 : return res;
32694 : }
32695 : if (GET_CODE (x3) != PLUS
32696 : || pattern422 (x2) != 0)
32697 : return NULL;
32698 : switch (pattern1459 (x2))
32699 : {
32700 : case 0:
32701 : if ((
32702 : #line 29335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32703 : ((TARGET_SINGLE_PUSH || optimize_insn_for_size_p ())
32704 : && INTVAL (operands[0]) == -GET_MODE_SIZE (word_mode)
32705 : && !ix86_red_zone_used) && (((((((
32706 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32707 : (word_mode == SImode) &&
32708 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32709 : (Pmode == SImode)) &&
32710 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32711 : (Pmode == SImode)) &&
32712 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32713 : (Pmode == SImode)) &&
32714 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32715 : (Pmode == SImode)) &&
32716 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32717 : (word_mode == SImode)) &&
32718 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32719 : (Pmode == SImode)) &&
32720 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32721 : (Pmode == SImode))))
32722 : {
32723 : *pmatch_len_ = 0;
32724 : res = gen_peephole2_387 (insn, operands);
32725 : if (res != NULL_RTX)
32726 : return res;
32727 : }
32728 : if ((
32729 : #line 29335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32730 : ((TARGET_SINGLE_PUSH || optimize_insn_for_size_p ())
32731 : && INTVAL (operands[0]) == -GET_MODE_SIZE (word_mode)
32732 : && !ix86_red_zone_used) && (((((((
32733 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32734 : (word_mode == DImode) &&
32735 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32736 : (Pmode == SImode)) &&
32737 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32738 : (Pmode == SImode)) &&
32739 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32740 : (Pmode == SImode)) &&
32741 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32742 : (Pmode == SImode)) &&
32743 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32744 : (word_mode == DImode)) &&
32745 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32746 : (Pmode == SImode)) &&
32747 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32748 : (Pmode == SImode))))
32749 : {
32750 : *pmatch_len_ = 0;
32751 : res = gen_peephole2_388 (insn, operands);
32752 : if (res != NULL_RTX)
32753 : return res;
32754 : }
32755 : if ((
32756 : #line 29347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32757 : ((TARGET_DOUBLE_PUSH || optimize_insn_for_size_p ())
32758 : && INTVAL (operands[0]) == -2*GET_MODE_SIZE (word_mode)
32759 : && !ix86_red_zone_used) && ((((((((((
32760 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32761 : (word_mode == SImode) &&
32762 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32763 : (Pmode == SImode)) &&
32764 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32765 : (Pmode == SImode)) &&
32766 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32767 : (Pmode == SImode)) &&
32768 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32769 : (Pmode == SImode)) &&
32770 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32771 : (word_mode == SImode)) &&
32772 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32773 : (Pmode == SImode)) &&
32774 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32775 : (Pmode == SImode)) &&
32776 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32777 : (word_mode == SImode)) &&
32778 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32779 : (Pmode == SImode)) &&
32780 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32781 : (Pmode == SImode))))
32782 : {
32783 : *pmatch_len_ = 0;
32784 : res = gen_peephole2_391 (insn, operands);
32785 : if (res != NULL_RTX)
32786 : return res;
32787 : }
32788 : if ((
32789 : #line 29347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32790 : ((TARGET_DOUBLE_PUSH || optimize_insn_for_size_p ())
32791 : && INTVAL (operands[0]) == -2*GET_MODE_SIZE (word_mode)
32792 : && !ix86_red_zone_used) && ((((((((((
32793 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32794 : (word_mode == DImode) &&
32795 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32796 : (Pmode == SImode)) &&
32797 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32798 : (Pmode == SImode)) &&
32799 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32800 : (Pmode == SImode)) &&
32801 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32802 : (Pmode == SImode)) &&
32803 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32804 : (word_mode == DImode)) &&
32805 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32806 : (Pmode == SImode)) &&
32807 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32808 : (Pmode == SImode)) &&
32809 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32810 : (word_mode == DImode)) &&
32811 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32812 : (Pmode == SImode)) &&
32813 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32814 : (Pmode == SImode))))
32815 : {
32816 : *pmatch_len_ = 0;
32817 : res = gen_peephole2_392 (insn, operands);
32818 : if (res != NULL_RTX)
32819 : return res;
32820 : }
32821 : if ((
32822 : #line 29403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32823 : (INTVAL (operands[0]) == GET_MODE_SIZE (word_mode)) && (((((((
32824 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32825 : (word_mode == SImode) &&
32826 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32827 : (Pmode == SImode)) &&
32828 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32829 : (Pmode == SImode)) &&
32830 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32831 : (Pmode == SImode)) &&
32832 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32833 : (Pmode == SImode)) &&
32834 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32835 : (word_mode == SImode)) &&
32836 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32837 : (Pmode == SImode)) &&
32838 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32839 : (Pmode == SImode))))
32840 : {
32841 : *pmatch_len_ = 0;
32842 : res = gen_peephole2_407 (insn, operands);
32843 : if (res != NULL_RTX)
32844 : return res;
32845 : }
32846 : if ((
32847 : #line 29403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32848 : (INTVAL (operands[0]) == GET_MODE_SIZE (word_mode)) && (((((((
32849 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32850 : (word_mode == DImode) &&
32851 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32852 : (Pmode == SImode)) &&
32853 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32854 : (Pmode == SImode)) &&
32855 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32856 : (Pmode == SImode)) &&
32857 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32858 : (Pmode == SImode)) &&
32859 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32860 : (word_mode == DImode)) &&
32861 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32862 : (Pmode == SImode)) &&
32863 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32864 : (Pmode == SImode))))
32865 : {
32866 : *pmatch_len_ = 0;
32867 : res = gen_peephole2_408 (insn, operands);
32868 : if (res != NULL_RTX)
32869 : return res;
32870 : }
32871 : if ((
32872 : #line 29415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32873 : (INTVAL (operands[0]) == 2*GET_MODE_SIZE (word_mode)) && ((((((((((
32874 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32875 : (word_mode == SImode) &&
32876 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32877 : (Pmode == SImode)) &&
32878 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32879 : (Pmode == SImode)) &&
32880 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32881 : (Pmode == SImode)) &&
32882 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32883 : (Pmode == SImode)) &&
32884 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32885 : (word_mode == SImode)) &&
32886 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32887 : (Pmode == SImode)) &&
32888 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32889 : (Pmode == SImode)) &&
32890 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32891 : (word_mode == SImode)) &&
32892 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32893 : (Pmode == SImode)) &&
32894 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32895 : (Pmode == SImode))))
32896 : {
32897 : *pmatch_len_ = 0;
32898 : res = gen_peephole2_411 (insn, operands);
32899 : if (res != NULL_RTX)
32900 : return res;
32901 : }
32902 : if ((
32903 : #line 29415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32904 : (INTVAL (operands[0]) == 2*GET_MODE_SIZE (word_mode)) && ((((((((((
32905 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32906 : (word_mode == DImode) &&
32907 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32908 : (Pmode == SImode)) &&
32909 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32910 : (Pmode == SImode)) &&
32911 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32912 : (Pmode == SImode)) &&
32913 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32914 : (Pmode == SImode)) &&
32915 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32916 : (word_mode == DImode)) &&
32917 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32918 : (Pmode == SImode)) &&
32919 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32920 : (Pmode == SImode)) &&
32921 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32922 : (word_mode == DImode)) &&
32923 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32924 : (Pmode == SImode)) &&
32925 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32926 : (Pmode == SImode))))
32927 : {
32928 : *pmatch_len_ = 0;
32929 : res = gen_peephole2_412 (insn, operands);
32930 : if (res != NULL_RTX)
32931 : return res;
32932 : }
32933 : if ((
32934 : #line 29425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32935 : (optimize_insn_for_size_p ()
32936 : && INTVAL (operands[0]) == 2*GET_MODE_SIZE (word_mode)) && ((((((((((
32937 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32938 : (word_mode == SImode) &&
32939 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32940 : (Pmode == SImode)) &&
32941 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32942 : (Pmode == SImode)) &&
32943 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32944 : (Pmode == SImode)) &&
32945 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32946 : (Pmode == SImode)) &&
32947 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32948 : (word_mode == SImode)) &&
32949 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32950 : (Pmode == SImode)) &&
32951 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32952 : (Pmode == SImode)) &&
32953 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32954 : (word_mode == SImode)) &&
32955 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32956 : (Pmode == SImode)) &&
32957 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32958 : (Pmode == SImode))))
32959 : {
32960 : *pmatch_len_ = 0;
32961 : res = gen_peephole2_415 (insn, operands);
32962 : if (res != NULL_RTX)
32963 : return res;
32964 : }
32965 : if (!(
32966 : #line 29425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32967 : (optimize_insn_for_size_p ()
32968 : && INTVAL (operands[0]) == 2*GET_MODE_SIZE (word_mode)) && ((((((((((
32969 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32970 : (word_mode == DImode) &&
32971 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32972 : (Pmode == SImode)) &&
32973 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32974 : (Pmode == SImode)) &&
32975 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32976 : (Pmode == SImode)) &&
32977 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32978 : (Pmode == SImode)) &&
32979 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32980 : (word_mode == DImode)) &&
32981 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32982 : (Pmode == SImode)) &&
32983 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32984 : (Pmode == SImode)) &&
32985 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32986 : (word_mode == DImode)) &&
32987 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32988 : (Pmode == SImode)) &&
32989 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32990 : (Pmode == SImode))))
32991 : return NULL;
32992 : *pmatch_len_ = 0;
32993 : return gen_peephole2_416 (insn, operands);
32994 :
32995 : case 1:
32996 : if ((
32997 : #line 29335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32998 : ((TARGET_SINGLE_PUSH || optimize_insn_for_size_p ())
32999 : && INTVAL (operands[0]) == -GET_MODE_SIZE (word_mode)
33000 : && !ix86_red_zone_used) && (((((((
33001 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33002 : (word_mode == SImode) &&
33003 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33004 : (Pmode == DImode)) &&
33005 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33006 : (Pmode == DImode)) &&
33007 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33008 : (Pmode == DImode)) &&
33009 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33010 : (Pmode == DImode)) &&
33011 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33012 : (word_mode == SImode)) &&
33013 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33014 : (Pmode == DImode)) &&
33015 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33016 : (Pmode == DImode))))
33017 : {
33018 : *pmatch_len_ = 0;
33019 : res = gen_peephole2_389 (insn, operands);
33020 : if (res != NULL_RTX)
33021 : return res;
33022 : }
33023 : if ((
33024 : #line 29335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33025 : ((TARGET_SINGLE_PUSH || optimize_insn_for_size_p ())
33026 : && INTVAL (operands[0]) == -GET_MODE_SIZE (word_mode)
33027 : && !ix86_red_zone_used) && (((((((
33028 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33029 : (word_mode == DImode) &&
33030 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33031 : (Pmode == DImode)) &&
33032 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33033 : (Pmode == DImode)) &&
33034 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33035 : (Pmode == DImode)) &&
33036 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33037 : (Pmode == DImode)) &&
33038 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33039 : (word_mode == DImode)) &&
33040 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33041 : (Pmode == DImode)) &&
33042 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33043 : (Pmode == DImode))))
33044 : {
33045 : *pmatch_len_ = 0;
33046 : res = gen_peephole2_390 (insn, operands);
33047 : if (res != NULL_RTX)
33048 : return res;
33049 : }
33050 : if ((
33051 : #line 29347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33052 : ((TARGET_DOUBLE_PUSH || optimize_insn_for_size_p ())
33053 : && INTVAL (operands[0]) == -2*GET_MODE_SIZE (word_mode)
33054 : && !ix86_red_zone_used) && ((((((((((
33055 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33056 : (word_mode == SImode) &&
33057 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33058 : (Pmode == DImode)) &&
33059 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33060 : (Pmode == DImode)) &&
33061 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33062 : (Pmode == DImode)) &&
33063 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33064 : (Pmode == DImode)) &&
33065 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33066 : (word_mode == SImode)) &&
33067 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33068 : (Pmode == DImode)) &&
33069 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33070 : (Pmode == DImode)) &&
33071 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33072 : (word_mode == SImode)) &&
33073 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33074 : (Pmode == DImode)) &&
33075 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33076 : (Pmode == DImode))))
33077 : {
33078 : *pmatch_len_ = 0;
33079 : res = gen_peephole2_393 (insn, operands);
33080 : if (res != NULL_RTX)
33081 : return res;
33082 : }
33083 : if ((
33084 : #line 29347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33085 : ((TARGET_DOUBLE_PUSH || optimize_insn_for_size_p ())
33086 : && INTVAL (operands[0]) == -2*GET_MODE_SIZE (word_mode)
33087 : && !ix86_red_zone_used) && ((((((((((
33088 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33089 : (word_mode == DImode) &&
33090 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33091 : (Pmode == DImode)) &&
33092 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33093 : (Pmode == DImode)) &&
33094 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33095 : (Pmode == DImode)) &&
33096 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33097 : (Pmode == DImode)) &&
33098 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33099 : (word_mode == DImode)) &&
33100 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33101 : (Pmode == DImode)) &&
33102 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33103 : (Pmode == DImode)) &&
33104 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33105 : (word_mode == DImode)) &&
33106 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33107 : (Pmode == DImode)) &&
33108 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33109 : (Pmode == DImode))))
33110 : {
33111 : *pmatch_len_ = 0;
33112 : res = gen_peephole2_394 (insn, operands);
33113 : if (res != NULL_RTX)
33114 : return res;
33115 : }
33116 : if ((
33117 : #line 29403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33118 : (INTVAL (operands[0]) == GET_MODE_SIZE (word_mode)) && (((((((
33119 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33120 : (word_mode == SImode) &&
33121 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33122 : (Pmode == DImode)) &&
33123 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33124 : (Pmode == DImode)) &&
33125 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33126 : (Pmode == DImode)) &&
33127 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33128 : (Pmode == DImode)) &&
33129 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33130 : (word_mode == SImode)) &&
33131 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33132 : (Pmode == DImode)) &&
33133 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33134 : (Pmode == DImode))))
33135 : {
33136 : *pmatch_len_ = 0;
33137 : res = gen_peephole2_409 (insn, operands);
33138 : if (res != NULL_RTX)
33139 : return res;
33140 : }
33141 : if ((
33142 : #line 29403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33143 : (INTVAL (operands[0]) == GET_MODE_SIZE (word_mode)) && (((((((
33144 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33145 : (word_mode == DImode) &&
33146 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33147 : (Pmode == DImode)) &&
33148 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33149 : (Pmode == DImode)) &&
33150 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33151 : (Pmode == DImode)) &&
33152 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33153 : (Pmode == DImode)) &&
33154 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33155 : (word_mode == DImode)) &&
33156 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33157 : (Pmode == DImode)) &&
33158 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33159 : (Pmode == DImode))))
33160 : {
33161 : *pmatch_len_ = 0;
33162 : res = gen_peephole2_410 (insn, operands);
33163 : if (res != NULL_RTX)
33164 : return res;
33165 : }
33166 : if ((
33167 : #line 29415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33168 : (INTVAL (operands[0]) == 2*GET_MODE_SIZE (word_mode)) && ((((((((((
33169 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33170 : (word_mode == SImode) &&
33171 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33172 : (Pmode == DImode)) &&
33173 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33174 : (Pmode == DImode)) &&
33175 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33176 : (Pmode == DImode)) &&
33177 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33178 : (Pmode == DImode)) &&
33179 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33180 : (word_mode == SImode)) &&
33181 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33182 : (Pmode == DImode)) &&
33183 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33184 : (Pmode == DImode)) &&
33185 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33186 : (word_mode == SImode)) &&
33187 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33188 : (Pmode == DImode)) &&
33189 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33190 : (Pmode == DImode))))
33191 : {
33192 : *pmatch_len_ = 0;
33193 : res = gen_peephole2_413 (insn, operands);
33194 : if (res != NULL_RTX)
33195 : return res;
33196 : }
33197 : if ((
33198 : #line 29415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33199 : (INTVAL (operands[0]) == 2*GET_MODE_SIZE (word_mode)) && ((((((((((
33200 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33201 : (word_mode == DImode) &&
33202 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33203 : (Pmode == DImode)) &&
33204 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33205 : (Pmode == DImode)) &&
33206 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33207 : (Pmode == DImode)) &&
33208 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33209 : (Pmode == DImode)) &&
33210 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33211 : (word_mode == DImode)) &&
33212 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33213 : (Pmode == DImode)) &&
33214 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33215 : (Pmode == DImode)) &&
33216 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33217 : (word_mode == DImode)) &&
33218 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33219 : (Pmode == DImode)) &&
33220 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33221 : (Pmode == DImode))))
33222 : {
33223 : *pmatch_len_ = 0;
33224 : res = gen_peephole2_414 (insn, operands);
33225 : if (res != NULL_RTX)
33226 : return res;
33227 : }
33228 : if ((
33229 : #line 29425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33230 : (optimize_insn_for_size_p ()
33231 : && INTVAL (operands[0]) == 2*GET_MODE_SIZE (word_mode)) && ((((((((((
33232 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33233 : (word_mode == SImode) &&
33234 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33235 : (Pmode == DImode)) &&
33236 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33237 : (Pmode == DImode)) &&
33238 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33239 : (Pmode == DImode)) &&
33240 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33241 : (Pmode == DImode)) &&
33242 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33243 : (word_mode == SImode)) &&
33244 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33245 : (Pmode == DImode)) &&
33246 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33247 : (Pmode == DImode)) &&
33248 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33249 : (word_mode == SImode)) &&
33250 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33251 : (Pmode == DImode)) &&
33252 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33253 : (Pmode == DImode))))
33254 : {
33255 : *pmatch_len_ = 0;
33256 : res = gen_peephole2_417 (insn, operands);
33257 : if (res != NULL_RTX)
33258 : return res;
33259 : }
33260 : if (!(
33261 : #line 29425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33262 : (optimize_insn_for_size_p ()
33263 : && INTVAL (operands[0]) == 2*GET_MODE_SIZE (word_mode)) && ((((((((((
33264 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33265 : (word_mode == DImode) &&
33266 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33267 : (Pmode == DImode)) &&
33268 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33269 : (Pmode == DImode)) &&
33270 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33271 : (Pmode == DImode)) &&
33272 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33273 : (Pmode == DImode)) &&
33274 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33275 : (word_mode == DImode)) &&
33276 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33277 : (Pmode == DImode)) &&
33278 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33279 : (Pmode == DImode)) &&
33280 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33281 : (word_mode == DImode)) &&
33282 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33283 : (Pmode == DImode)) &&
33284 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33285 : (Pmode == DImode))))
33286 : return NULL;
33287 : *pmatch_len_ = 0;
33288 : return gen_peephole2_418 (insn, operands);
33289 :
33290 : default:
33291 : return NULL;
33292 : }
33293 :
33294 : case MULT:
33295 : operands[0] = x9;
33296 : x5 = XEXP (x3, 0);
33297 : operands[1] = x5;
33298 : x4 = XEXP (x3, 1);
33299 : operands[2] = x4;
33300 : switch (GET_MODE (operands[0]))
33301 : {
33302 : case E_SImode:
33303 : if (!register_operand (operands[0], E_SImode)
33304 : || GET_MODE (x3) != E_SImode)
33305 : return NULL;
33306 : if (const359_operand (operands[2], E_SImode))
33307 : {
33308 : if (register_operand (operands[1], E_SImode))
33309 : {
33310 : *pmatch_len_ = 0;
33311 : res = gen_peephole2_420 (insn, operands);
33312 : if (res != NULL_RTX)
33313 : return res;
33314 : }
33315 : if (nonimmediate_operand (operands[1], E_SImode)
33316 : &&
33317 : #line 29468 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33318 : (optimize_insn_for_speed_p ()
33319 : && (!TARGET_PARTIAL_REG_STALL || SImode == SImode)))
33320 : {
33321 : *pmatch_len_ = 0;
33322 : res = gen_peephole2_422 (insn, operands);
33323 : if (res != NULL_RTX)
33324 : return res;
33325 : }
33326 : }
33327 : if (memory_operand (operands[1], E_SImode)
33328 : && immediate_operand (operands[2], E_SImode)
33329 : &&
33330 : #line 29484 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33331 : (TARGET_SLOW_IMUL_IMM32_MEM && optimize_insn_for_speed_p ()
33332 : && !satisfies_constraint_K (operands[2])))
33333 : {
33334 : *pmatch_len_ = 0;
33335 : res = gen_peephole2_424 (insn, operands);
33336 : if (res != NULL_RTX)
33337 : return res;
33338 : }
33339 : if (!nonimmediate_operand (operands[1], E_SImode)
33340 : || !const_int_operand (operands[2], E_SImode)
33341 : || !
33342 : #line 29516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33343 : (TARGET_SLOW_IMUL_IMM8 && optimize_insn_for_speed_p ()
33344 : && satisfies_constraint_K (operands[2])))
33345 : return NULL;
33346 : *pmatch_len_ = 0;
33347 : return gen_peephole2_428 (insn, operands);
33348 :
33349 : case E_DImode:
33350 : if (!register_operand (operands[0], E_DImode)
33351 : || GET_MODE (x3) != E_DImode)
33352 : return NULL;
33353 : if (const359_operand (operands[2], E_DImode))
33354 : {
33355 : if (register_operand (operands[1], E_DImode)
33356 : && (
33357 : #line 29454 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33358 : (!TARGET_PARTIAL_REG_STALL
33359 : || DImode == SImode
33360 : || optimize_function_for_size_p (cfun)) &&
33361 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33362 : (TARGET_64BIT)))
33363 : {
33364 : *pmatch_len_ = 0;
33365 : res = gen_peephole2_421 (insn, operands);
33366 : if (res != NULL_RTX)
33367 : return res;
33368 : }
33369 : if (nonimmediate_operand (operands[1], E_DImode)
33370 : && (
33371 : #line 29468 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33372 : (optimize_insn_for_speed_p ()
33373 : && (!TARGET_PARTIAL_REG_STALL || DImode == SImode)) &&
33374 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33375 : (TARGET_64BIT)))
33376 : {
33377 : *pmatch_len_ = 0;
33378 : res = gen_peephole2_423 (insn, operands);
33379 : if (res != NULL_RTX)
33380 : return res;
33381 : }
33382 : }
33383 : if (memory_operand (operands[1], E_DImode)
33384 : && immediate_operand (operands[2], E_DImode)
33385 : && (
33386 : #line 29484 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33387 : (TARGET_SLOW_IMUL_IMM32_MEM && optimize_insn_for_speed_p ()
33388 : && !satisfies_constraint_K (operands[2])) &&
33389 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33390 : (TARGET_64BIT)))
33391 : {
33392 : *pmatch_len_ = 0;
33393 : res = gen_peephole2_425 (insn, operands);
33394 : if (res != NULL_RTX)
33395 : return res;
33396 : }
33397 : if (!nonimmediate_operand (operands[1], E_DImode)
33398 : || !const_int_operand (operands[2], E_DImode)
33399 : || !(
33400 : #line 29516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33401 : (TARGET_SLOW_IMUL_IMM8 && optimize_insn_for_speed_p ()
33402 : && satisfies_constraint_K (operands[2])) &&
33403 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33404 : (TARGET_64BIT)))
33405 : return NULL;
33406 : *pmatch_len_ = 0;
33407 : return gen_peephole2_429 (insn, operands);
33408 :
33409 : case E_HImode:
33410 : if (pattern1365 (x3,
33411 : E_HImode) != 0
33412 : || !
33413 : #line 29516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33414 : (TARGET_SLOW_IMUL_IMM8 && optimize_insn_for_speed_p ()
33415 : && satisfies_constraint_K (operands[2])))
33416 : return NULL;
33417 : *pmatch_len_ = 0;
33418 : return gen_peephole2_427 (insn, operands);
33419 :
33420 : default:
33421 : return NULL;
33422 : }
33423 :
33424 : case ASHIFT:
33425 : if (peep2_current_count < 2)
33426 : return NULL;
33427 : operands[0] = x9;
33428 : if (!register_operand (operands[0], E_VOIDmode))
33429 : return NULL;
33430 : x5 = XEXP (x3, 0);
33431 : operands[1] = x5;
33432 : if (!register_operand (operands[1], E_VOIDmode))
33433 : return NULL;
33434 : x4 = XEXP (x3, 1);
33435 : operands[2] = x4;
33436 : if (!const_int_operand (operands[2], E_VOIDmode))
33437 : return NULL;
33438 : x11 = PATTERN (peep2_next_insn (1));
33439 : if (pattern421 (x11,
33440 : PLUS,
33441 : 2) != 0)
33442 : return NULL;
33443 : x12 = XVECEXP (x11, 0, 1);
33444 : if (GET_CODE (x12) != CLOBBER)
33445 : return NULL;
33446 : x13 = XEXP (x12, 0);
33447 : if (GET_CODE (x13) != REG
33448 : || REGNO (x13) != 17
33449 : || GET_MODE (x13) != E_CCmode)
33450 : return NULL;
33451 : x14 = XVECEXP (x11, 0, 0);
33452 : x15 = XEXP (x14, 0);
33453 : operands[3] = x15;
33454 : if (!register_operand (operands[3], E_VOIDmode))
33455 : return NULL;
33456 : x16 = XEXP (x14, 1);
33457 : x17 = XEXP (x16, 1);
33458 : operands[4] = x17;
33459 : if (!x86_64_general_operand (operands[4], E_VOIDmode))
33460 : return NULL;
33461 : x18 = XEXP (x16, 0);
33462 : if (!rtx_equal_p (x18, operands[0]))
33463 : return NULL;
33464 : if ((
33465 : #line 29548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33466 : (IN_RANGE (INTVAL (operands[2]), 1, 3)
33467 : /* Validate MODE for lea. */
33468 : && ((!TARGET_PARTIAL_REG_STALL
33469 : && (GET_MODE (operands[0]) == QImode
33470 : || GET_MODE (operands[0]) == HImode))
33471 : || GET_MODE (operands[0]) == SImode
33472 : || (TARGET_64BIT && GET_MODE (operands[0]) == DImode))
33473 : && (rtx_equal_p (operands[0], operands[3])
33474 : || peep2_reg_dead_p (2, operands[0]))
33475 : /* We reorder load and the shift. */
33476 : && !reg_overlap_mentioned_p (operands[0], operands[4])) &&
33477 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33478 : (word_mode == SImode)))
33479 : {
33480 : *pmatch_len_ = 1;
33481 : res = gen_peephole2_430 (insn, operands);
33482 : if (res != NULL_RTX)
33483 : return res;
33484 : }
33485 : if (!(
33486 : #line 29548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33487 : (IN_RANGE (INTVAL (operands[2]), 1, 3)
33488 : /* Validate MODE for lea. */
33489 : && ((!TARGET_PARTIAL_REG_STALL
33490 : && (GET_MODE (operands[0]) == QImode
33491 : || GET_MODE (operands[0]) == HImode))
33492 : || GET_MODE (operands[0]) == SImode
33493 : || (TARGET_64BIT && GET_MODE (operands[0]) == DImode))
33494 : && (rtx_equal_p (operands[0], operands[3])
33495 : || peep2_reg_dead_p (2, operands[0]))
33496 : /* We reorder load and the shift. */
33497 : && !reg_overlap_mentioned_p (operands[0], operands[4])) &&
33498 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33499 : (word_mode == DImode)))
33500 : return NULL;
33501 : *pmatch_len_ = 1;
33502 : return gen_peephole2_431 (insn, operands);
33503 :
33504 : default:
33505 : return NULL;
33506 : }
33507 :
33508 : case ZERO_EXTEND:
33509 : if (GET_MODE (x3) != E_DImode)
33510 : return NULL;
33511 : x5 = XEXP (x3, 0);
33512 : if (GET_CODE (x5) != MULT
33513 : || GET_MODE (x5) != E_SImode
33514 : || pattern823 (x1,
33515 : E_DImode) != 0)
33516 : return NULL;
33517 : x6 = XEXP (x5, 0);
33518 : operands[1] = x6;
33519 : if (!memory_operand (operands[1], E_SImode))
33520 : return NULL;
33521 : x19 = XEXP (x5, 1);
33522 : operands[2] = x19;
33523 : if (!immediate_operand (operands[2], E_SImode)
33524 : || !
33525 : #line 29497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
33526 : (TARGET_64BIT
33527 : && TARGET_SLOW_IMUL_IMM32_MEM && optimize_insn_for_speed_p ()
33528 : && !satisfies_constraint_K (operands[2])))
33529 : return NULL;
33530 : *pmatch_len_ = 0;
33531 : return gen_peephole2_426 (insn, operands);
33532 :
33533 : default:
33534 : return NULL;
33535 : }
33536 : }
|