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 40015 : pattern2 (rtx x1, int *pnum_clobbers)
57 : {
58 40015 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
59 40015 : rtx x2, x3, x4, x5, x6, x7;
60 40015 : int res ATTRIBUTE_UNUSED;
61 40015 : x2 = XEXP (x1, 1);
62 40015 : x3 = XEXP (x2, 0);
63 40015 : operands[1] = x3;
64 40015 : x4 = XEXP (x2, 1);
65 40015 : switch (GET_CODE (x4))
66 : {
67 21 : case AND:
68 21 : if (pnum_clobbers == NULL
69 21 : || GET_MODE (x4) != E_QImode)
70 : return -1;
71 21 : x5 = XEXP (x1, 0);
72 21 : operands[0] = x5;
73 21 : x6 = XEXP (x4, 0);
74 21 : operands[2] = x6;
75 21 : if (!register_operand (operands[2], E_QImode))
76 : return -1;
77 15 : return pattern1 (x2); /* [-1, 1] */
78 :
79 42 : case PLUS:
80 42 : if (pnum_clobbers == NULL
81 42 : || GET_MODE (x4) != E_QImode)
82 : return -1;
83 42 : x5 = XEXP (x1, 0);
84 42 : operands[0] = x5;
85 42 : x6 = XEXP (x4, 0);
86 42 : operands[2] = x6;
87 42 : if (!nonimmediate_operand (operands[2], E_QImode))
88 : return -1;
89 42 : res = pattern1 (x2);
90 42 : if (res >= 0)
91 0 : return res + 2; /* [2, 3] */
92 : return -1;
93 :
94 40 : case MINUS:
95 40 : if (pnum_clobbers == NULL
96 40 : || GET_MODE (x4) != E_QImode)
97 : return -1;
98 40 : x5 = XEXP (x1, 0);
99 40 : operands[0] = x5;
100 40 : x6 = XEXP (x4, 0);
101 40 : operands[3] = x6;
102 40 : if (!const_int_operand (operands[3], E_QImode))
103 : return -1;
104 13 : x7 = XEXP (x4, 1);
105 13 : operands[2] = x7;
106 13 : if (!nonimmediate_operand (operands[2], E_QImode))
107 : return -1;
108 10 : res = pattern0 (x2);
109 10 : if (res >= 0)
110 0 : return res + 4; /* [4, 5] */
111 : return -1;
112 :
113 : case CONST_INT:
114 : case CONST_WIDE_INT:
115 : case CONST_POLY_INT:
116 : case CONST_FIXED:
117 : case CONST_DOUBLE:
118 : case CONST_VECTOR:
119 : case CONST:
120 : case REG:
121 : case SUBREG:
122 : case LABEL_REF:
123 : case SYMBOL_REF:
124 : case HIGH:
125 : return 6;
126 :
127 : default:
128 : return -1;
129 : }
130 : }
131 :
132 : int
133 592 : pattern32 (rtx x1, machine_mode i1)
134 : {
135 592 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
136 592 : int res ATTRIBUTE_UNUSED;
137 592 : if (!register_operand (operands[0], i1)
138 530 : || GET_MODE (x1) != i1
139 530 : || !nonimmediate_operand (operands[1], i1)
140 1122 : || !const_0_to_255_operand (operands[2], E_SImode))
141 62 : return -1;
142 : return 0;
143 : }
144 :
145 : int
146 152526 : pattern34 (rtx x1)
147 : {
148 152526 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
149 152526 : rtx x2, x3, x4, x5;
150 152526 : int res ATTRIBUTE_UNUSED;
151 152526 : x2 = XEXP (x1, 0);
152 152526 : operands[0] = x2;
153 152526 : x3 = XEXP (x1, 1);
154 152526 : x4 = XEXP (x3, 0);
155 152526 : operands[1] = x4;
156 152526 : x5 = XEXP (x3, 1);
157 152526 : operands[2] = x5;
158 152526 : switch (GET_MODE (operands[0]))
159 : {
160 421 : case E_V32QImode:
161 421 : return pattern3 (x3,
162 421 : E_V32QImode); /* [-1, 0] */
163 :
164 808 : case E_V16HImode:
165 808 : if (pattern3 (x3,
166 : E_V16HImode) != 0)
167 : return -1;
168 : return 1;
169 :
170 1079 : case E_V8SImode:
171 1079 : if (pattern3 (x3,
172 : E_V8SImode) != 0)
173 : return -1;
174 : return 2;
175 :
176 142 : case E_V16SImode:
177 142 : if (pattern3 (x3,
178 : E_V16SImode) != 0)
179 : return -1;
180 : return 3;
181 :
182 3613 : case E_V4SImode:
183 3613 : if (!register_operand (operands[0], E_V4SImode)
184 3613 : || GET_MODE (x3) != E_V4SImode)
185 : return -1;
186 : return 4;
187 :
188 1691 : case E_V8DImode:
189 1691 : if (pattern3 (x3,
190 : E_V8DImode) != 0)
191 : return -1;
192 : return 5;
193 :
194 304 : case E_V4DImode:
195 304 : if (pattern3 (x3,
196 : E_V4DImode) != 0)
197 : return -1;
198 : return 6;
199 :
200 154 : case E_V2DImode:
201 154 : if (pattern3 (x3,
202 : E_V2DImode) != 0)
203 : return -1;
204 : return 7;
205 :
206 170 : case E_V64QImode:
207 170 : if (pattern3 (x3,
208 : E_V64QImode) != 0)
209 : return -1;
210 : return 8;
211 :
212 10278 : case E_V16QImode:
213 10278 : if (!register_operand (operands[0], E_V16QImode)
214 10278 : || GET_MODE (x3) != E_V16QImode)
215 : return -1;
216 : return 9;
217 :
218 172 : case E_V32HImode:
219 172 : if (pattern3 (x3,
220 : E_V32HImode) != 0)
221 : return -1;
222 : return 10;
223 :
224 5433 : case E_V8HImode:
225 5433 : if (!register_operand (operands[0], E_V8HImode)
226 5433 : || GET_MODE (x3) != E_V8HImode)
227 : return -1;
228 : return 11;
229 :
230 : default:
231 : return -1;
232 : }
233 : }
234 :
235 : int
236 183202 : pattern43 (rtx x1, machine_mode i1, machine_mode i2)
237 : {
238 183202 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
239 183202 : rtx x2, x3, x4;
240 183202 : int res ATTRIBUTE_UNUSED;
241 183202 : if (!register_operand (operands[0], i2)
242 183202 : || GET_MODE (x1) != i2)
243 : return -1;
244 182957 : x2 = XEXP (x1, 0);
245 182957 : x3 = XEXP (x2, 0);
246 182957 : operands[1] = x3;
247 182957 : if (!nonimmediate_operand (operands[1], i1))
248 : return -1;
249 144273 : x4 = XEXP (x1, 1);
250 144273 : operands[2] = x4;
251 144273 : if (!const_int_operand (operands[2], E_QImode))
252 : return -1;
253 : return 0;
254 : }
255 :
256 : int
257 279487 : pattern49 (rtx x1)
258 : {
259 279487 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
260 279487 : int res ATTRIBUTE_UNUSED;
261 279487 : switch (GET_MODE (x1))
262 : {
263 103232 : case E_QImode:
264 103232 : if (!nonimmediate_operand (operands[1], E_QImode)
265 103232 : || !general_operand (operands[2], E_QImode))
266 64710 : return -1;
267 : return 0;
268 :
269 1385 : case E_HImode:
270 1385 : if (!nonimmediate_operand (operands[1], E_HImode)
271 1385 : || !general_operand (operands[2], E_HImode))
272 495 : return -1;
273 : return 1;
274 :
275 80012 : case E_SImode:
276 80012 : if (!nonimmediate_operand (operands[1], E_SImode)
277 80012 : || !x86_64_general_operand (operands[2], E_SImode))
278 41656 : return -1;
279 : return 2;
280 :
281 91792 : case E_DImode:
282 91792 : if (!nonimmediate_operand (operands[1], E_DImode)
283 91792 : || !x86_64_general_operand (operands[2], E_DImode))
284 49022 : return -1;
285 : return 3;
286 :
287 : default:
288 : return -1;
289 : }
290 : }
291 :
292 : int
293 2583 : pattern58 (rtx x1, machine_mode i1)
294 : {
295 2583 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
296 2583 : rtx x2, x3, x4;
297 2583 : int res ATTRIBUTE_UNUSED;
298 2583 : x2 = XEXP (x1, 1);
299 2583 : if (GET_MODE (x2) != E_CCmode)
300 : return -1;
301 2583 : x3 = XEXP (x1, 0);
302 2583 : if (GET_CODE (x3) != REG
303 2583 : || REGNO (x3) != 17
304 5162 : || GET_MODE (x3) != E_CCmode)
305 : return -1;
306 2579 : x4 = XVECEXP (x2, 0, 0);
307 2579 : operands[0] = x4;
308 2579 : if (!register_operand (operands[0], i1))
309 : return -1;
310 : return 0;
311 : }
312 :
313 : int
314 521 : pattern62 (rtx x1, int *pnum_clobbers, machine_mode i1)
315 : {
316 521 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
317 521 : rtx x2, x3, x4;
318 521 : int res ATTRIBUTE_UNUSED;
319 521 : if (pnum_clobbers == NULL)
320 : return -1;
321 521 : x2 = XEXP (x1, 1);
322 521 : if (GET_MODE (x2) != i1)
323 : return -1;
324 521 : x3 = XEXP (x1, 0);
325 521 : operands[0] = x3;
326 521 : if (!register_operand (operands[0], i1))
327 : return -1;
328 504 : x4 = XVECEXP (x2, 0, 0);
329 504 : operands[1] = x4;
330 504 : if (!register_operand (operands[1], i1))
331 : return -1;
332 : return 0;
333 : }
334 :
335 : int
336 47389 : pattern66 (rtx x1, machine_mode i1)
337 : {
338 47389 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
339 47389 : rtx x2, x3, x4, x5;
340 47389 : int res ATTRIBUTE_UNUSED;
341 47389 : x2 = XEXP (x1, 1);
342 47389 : if (GET_MODE (x2) != i1)
343 : return -1;
344 47336 : x3 = XEXP (x1, 0);
345 47336 : operands[0] = x3;
346 47336 : if (!register_operand (operands[0], i1))
347 : return -1;
348 47184 : x4 = XVECEXP (x2, 0, 0);
349 47184 : operands[1] = x4;
350 47184 : if (!register_operand (operands[1], i1))
351 : return -1;
352 30264 : x5 = XVECEXP (x2, 0, 1);
353 30264 : operands[2] = x5;
354 30264 : if (!nonimmediate_operand (operands[2], i1))
355 : return -1;
356 : return 0;
357 : }
358 :
359 : int
360 56 : pattern73 (rtx x1, machine_mode i1, machine_mode i2)
361 : {
362 56 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
363 56 : rtx x2;
364 56 : int res ATTRIBUTE_UNUSED;
365 56 : if (!register_operand (operands[0], i2)
366 56 : || GET_MODE (x1) != i2)
367 : return -1;
368 56 : x2 = XVECEXP (x1, 0, 0);
369 56 : if (GET_MODE (x2) != i1
370 56 : || !vector_operand (operands[1], i1)
371 56 : || !vector_operand (operands[2], i1)
372 112 : || !const0_operand (operands[3], i1))
373 28 : return -1;
374 : return 0;
375 : }
376 :
377 : int
378 627635 : pattern80 (rtx x1, machine_mode i1)
379 : {
380 627635 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
381 627635 : int res ATTRIBUTE_UNUSED;
382 627635 : if (!nonimmediate_operand (operands[0], i1)
383 624228 : || GET_MODE (x1) != i1
384 624228 : || !nonimmediate_operand (operands[1], i1)
385 1159476 : || !general_operand (operands[2], i1))
386 99593 : return -1;
387 : return 0;
388 : }
389 :
390 : int
391 13595 : pattern85 (rtx x1)
392 : {
393 13595 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
394 13595 : rtx x2, x3, x4;
395 13595 : int res ATTRIBUTE_UNUSED;
396 13595 : x2 = XEXP (x1, 0);
397 13595 : if (GET_MODE (x2) != E_QImode
398 8095 : || !register_operand (operands[0], E_HImode)
399 13798 : || GET_MODE (x1) != E_HImode)
400 13392 : return -1;
401 203 : x3 = XEXP (x2, 0);
402 203 : operands[1] = x3;
403 203 : if (!nonimmediate_operand (operands[1], E_QImode))
404 : return -1;
405 184 : x4 = XEXP (x2, 1);
406 184 : operands[2] = x4;
407 184 : if (!x86_64_general_operand (operands[2], E_QImode))
408 : return -1;
409 : return 0;
410 : }
411 :
412 : int
413 11050 : pattern92 (rtx x1, machine_mode i1, machine_mode i2)
414 : {
415 11050 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
416 11050 : int res ATTRIBUTE_UNUSED;
417 11050 : if (!register_operand (operands[0], i1)
418 11050 : || GET_MODE (x1) != i1)
419 : return -1;
420 11044 : return pattern91 (x1,
421 : i1,
422 11044 : i2); /* [-1, 1] */
423 : }
424 :
425 : int
426 251108 : pattern97 (rtx x1)
427 : {
428 251108 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
429 251108 : rtx x2, x3, x4, x5, x6, x7, x8;
430 251108 : int res ATTRIBUTE_UNUSED;
431 251108 : x2 = XEXP (x1, 1);
432 251108 : x3 = XEXP (x2, 0);
433 251108 : x4 = XEXP (x3, 1);
434 251108 : if (GET_CODE (x4) != PARALLEL)
435 : return -1;
436 251108 : x5 = XEXP (x2, 1);
437 251108 : if (GET_CODE (x5) != VEC_SELECT)
438 : return -1;
439 15807 : x6 = XEXP (x5, 1);
440 15807 : if (GET_CODE (x6) != PARALLEL)
441 : return -1;
442 15807 : x7 = XEXP (x1, 0);
443 15807 : operands[0] = x7;
444 15807 : x8 = XEXP (x3, 0);
445 15807 : switch (GET_CODE (x8))
446 : {
447 : case REG:
448 : case SUBREG:
449 : case MEM:
450 : return 0;
451 :
452 2374 : case VEC_CONCAT:
453 2374 : return 1;
454 :
455 : default:
456 : return -1;
457 : }
458 : }
459 :
460 : int
461 3207 : pattern103 (rtx x1, machine_mode i1)
462 : {
463 3207 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
464 3207 : rtx x2, x3, x4, x5, x6, x7;
465 3207 : int res ATTRIBUTE_UNUSED;
466 3207 : if (GET_MODE (x1) != i1)
467 : return -1;
468 447 : x2 = XEXP (x1, 0);
469 447 : if (GET_CODE (x2) != VEC_SELECT
470 284 : || GET_MODE (x2) != i1)
471 : return -1;
472 284 : x3 = XEXP (x2, 1);
473 284 : if (GET_CODE (x3) != PARALLEL
474 284 : || XVECLEN (x3, 0) != 1)
475 : return -1;
476 284 : x4 = XVECEXP (x3, 0, 0);
477 284 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
478 : return -1;
479 284 : x5 = XEXP (x1, 1);
480 284 : if (GET_CODE (x5) != VEC_SELECT
481 284 : || GET_MODE (x5) != i1)
482 : return -1;
483 284 : x6 = XEXP (x5, 1);
484 284 : if (GET_CODE (x6) != PARALLEL
485 284 : || XVECLEN (x6, 0) != 1)
486 : return -1;
487 284 : x7 = XVECEXP (x6, 0, 0);
488 284 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
489 0 : return -1;
490 : return 0;
491 : }
492 :
493 : int
494 48608 : pattern114 (rtx x1, int *pnum_clobbers)
495 : {
496 48608 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
497 48608 : rtx x2;
498 48608 : int res ATTRIBUTE_UNUSED;
499 48608 : switch (GET_MODE (operands[0]))
500 : {
501 10326 : case E_SImode:
502 10326 : if (!register_operand (operands[0], E_SImode)
503 10326 : || GET_MODE (x1) != E_SImode)
504 : return -1;
505 10173 : x2 = XEXP (x1, 0);
506 10173 : switch (GET_MODE (x2))
507 : {
508 7754 : case E_QImode:
509 7754 : if (!nonimmediate_operand (operands[1], E_QImode)
510 7754 : || !x86_64_general_operand (operands[2], E_QImode))
511 322 : return -1;
512 : return 0;
513 :
514 2419 : case E_HImode:
515 2419 : if (!nonimmediate_operand (operands[1], E_HImode)
516 2419 : || !x86_64_general_operand (operands[2], E_HImode))
517 127 : return -1;
518 : return 1;
519 :
520 : default:
521 : return -1;
522 : }
523 :
524 34369 : case E_DImode:
525 34369 : if (!register_operand (operands[0], E_DImode)
526 34369 : || GET_MODE (x1) != E_DImode)
527 : return -1;
528 34124 : x2 = XEXP (x1, 0);
529 34124 : switch (GET_MODE (x2))
530 : {
531 2431 : case E_QImode:
532 2431 : if (!nonimmediate_operand (operands[1], E_QImode)
533 2431 : || !x86_64_general_operand (operands[2], E_QImode))
534 146 : return -1;
535 : return 2;
536 :
537 634 : case E_HImode:
538 634 : if (!nonimmediate_operand (operands[1], E_HImode)
539 634 : || !x86_64_general_operand (operands[2], E_HImode))
540 133 : return -1;
541 : return 3;
542 :
543 31059 : case E_SImode:
544 31059 : if (pnum_clobbers == NULL
545 30408 : || !nonimmediate_operand (operands[1], E_SImode)
546 58889 : || !x86_64_general_operand (operands[2], E_SImode))
547 4056 : return -1;
548 : return 4;
549 :
550 : default:
551 : return -1;
552 : }
553 :
554 : default:
555 : return -1;
556 : }
557 : }
558 :
559 : int
560 9327 : pattern133 (rtx x1, machine_mode i1, machine_mode i2)
561 : {
562 9327 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
563 9327 : rtx x2;
564 9327 : int res ATTRIBUTE_UNUSED;
565 9327 : if (!register_operand (operands[0], i1)
566 9327 : || GET_MODE (x1) != i1)
567 : return -1;
568 8924 : x2 = XEXP (x1, 0);
569 8924 : if (GET_MODE (x2) != i1
570 8924 : || !vector_operand (operands[1], i1)
571 8826 : || !vector_operand (operands[2], i1)
572 8348 : || !nonimm_or_0_operand (operands[3], i1)
573 16986 : || !register_operand (operands[4], i2))
574 1300 : return -1;
575 : return 0;
576 : }
577 :
578 : int
579 0 : pattern144 (rtx x1)
580 : {
581 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
582 0 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
583 0 : rtx x10, x11;
584 0 : int res ATTRIBUTE_UNUSED;
585 0 : x2 = XEXP (x1, 1);
586 0 : operands[2] = x2;
587 0 : x3 = XEXP (x1, 2);
588 0 : operands[3] = x3;
589 0 : x4 = XEXP (x1, 0);
590 0 : x5 = XEXP (x4, 0);
591 0 : switch (GET_CODE (x5))
592 : {
593 0 : case REG:
594 0 : case SUBREG:
595 0 : case MEM:
596 0 : operands[1] = x5;
597 0 : switch (GET_MODE (operands[0]))
598 : {
599 0 : case E_V8HImode:
600 0 : return pattern141 (x1,
601 : E_V8HImode,
602 : E_QImode,
603 0 : E_V8HFmode); /* [-1, 0] */
604 :
605 0 : case E_V16HImode:
606 0 : if (pattern141 (x1,
607 : E_V16HImode,
608 : E_HImode,
609 : E_V16HFmode) != 0)
610 : return -1;
611 : return 1;
612 :
613 0 : case E_V32HImode:
614 0 : if (pattern141 (x1,
615 : E_V32HImode,
616 : E_SImode,
617 : E_V32HFmode) != 0)
618 : return -1;
619 : return 2;
620 :
621 0 : case E_V8SImode:
622 0 : if (pattern142 (x1,
623 : E_V8SImode,
624 : E_QImode) != 0)
625 : return -1;
626 : return 3;
627 :
628 0 : case E_V16SImode:
629 0 : if (!register_operand (operands[0], E_V16SImode)
630 0 : || GET_MODE (x1) != E_V16SImode
631 0 : || GET_MODE (x4) != E_V16SImode
632 0 : || !nonimm_or_0_operand (operands[2], E_V16SImode)
633 0 : || !register_operand (operands[3], E_HImode))
634 0 : return -1;
635 0 : switch (GET_MODE (operands[1]))
636 : {
637 0 : case E_V16HFmode:
638 0 : if (!vector_operand (operands[1], E_V16HFmode))
639 : return -1;
640 : return 4;
641 :
642 0 : case E_V16SFmode:
643 0 : if (!vector_operand (operands[1], E_V16SFmode))
644 : return -1;
645 : return 5;
646 :
647 : default:
648 : return -1;
649 : }
650 :
651 0 : case E_V8DImode:
652 0 : if (!register_operand (operands[0], E_V8DImode)
653 0 : || GET_MODE (x1) != E_V8DImode
654 0 : || GET_MODE (x4) != E_V8DImode
655 0 : || !nonimm_or_0_operand (operands[2], E_V8DImode)
656 0 : || !register_operand (operands[3], E_QImode))
657 0 : return -1;
658 0 : switch (GET_MODE (operands[1]))
659 : {
660 0 : case E_V8HFmode:
661 0 : if (!vector_operand (operands[1], E_V8HFmode))
662 : return -1;
663 : return 6;
664 :
665 0 : case E_V8DFmode:
666 0 : if (!vector_operand (operands[1], E_V8DFmode))
667 : return -1;
668 : return 7;
669 :
670 0 : case E_V8SFmode:
671 0 : if (!vector_operand (operands[1], E_V8SFmode))
672 : return -1;
673 : return 8;
674 :
675 : default:
676 : return -1;
677 : }
678 :
679 0 : case E_V4SImode:
680 0 : if (pattern142 (x1,
681 : E_V4SImode,
682 : E_QImode) != 0)
683 : return -1;
684 : return 9;
685 :
686 0 : case E_V4DImode:
687 0 : if (!register_operand (operands[0], E_V4DImode)
688 0 : || GET_MODE (x1) != E_V4DImode
689 0 : || GET_MODE (x4) != E_V4DImode
690 0 : || !nonimm_or_0_operand (operands[2], E_V4DImode)
691 0 : || !register_operand (operands[3], E_QImode))
692 0 : return -1;
693 0 : switch (GET_MODE (operands[1]))
694 : {
695 0 : case E_V4HFmode:
696 0 : if (!memory_operand (operands[1], E_V4HFmode))
697 : return -1;
698 : return 10;
699 :
700 0 : case E_V4DFmode:
701 0 : if (!vector_operand (operands[1], E_V4DFmode))
702 : return -1;
703 : return 11;
704 :
705 0 : case E_V4SFmode:
706 0 : if (!vector_operand (operands[1], E_V4SFmode))
707 : return -1;
708 : return 12;
709 :
710 : default:
711 : return -1;
712 : }
713 :
714 0 : case E_V2DImode:
715 0 : if (!register_operand (operands[0], E_V2DImode)
716 0 : || GET_MODE (x1) != E_V2DImode
717 0 : || GET_MODE (x4) != E_V2DImode
718 0 : || !nonimm_or_0_operand (operands[2], E_V2DImode)
719 0 : || !register_operand (operands[3], E_QImode))
720 0 : return -1;
721 0 : switch (GET_MODE (operands[1]))
722 : {
723 0 : case E_V2HFmode:
724 0 : if (!memory_operand (operands[1], E_V2HFmode))
725 : return -1;
726 : return 13;
727 :
728 0 : case E_V2DFmode:
729 0 : if (!vector_operand (operands[1], E_V2DFmode))
730 : return -1;
731 : return 14;
732 :
733 : default:
734 : return -1;
735 : }
736 :
737 : default:
738 : return -1;
739 : }
740 :
741 0 : case VEC_SELECT:
742 0 : x6 = XEXP (x5, 1);
743 0 : if (GET_CODE (x6) != PARALLEL)
744 : return -1;
745 0 : x7 = XEXP (x5, 0);
746 0 : operands[1] = x7;
747 0 : if (!register_operand (operands[3], E_QImode))
748 : return -1;
749 0 : switch (XVECLEN (x6, 0))
750 : {
751 0 : case 4:
752 0 : x8 = XVECEXP (x6, 0, 0);
753 0 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
754 : return -1;
755 0 : x9 = XVECEXP (x6, 0, 1);
756 0 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
757 : return -1;
758 0 : x10 = XVECEXP (x6, 0, 2);
759 0 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
760 : return -1;
761 0 : x11 = XVECEXP (x6, 0, 3);
762 0 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 3]
763 0 : || GET_MODE (x5) != E_V4HFmode
764 0 : || !register_operand (operands[1], E_V8HFmode))
765 0 : return -1;
766 0 : switch (GET_MODE (operands[0]))
767 : {
768 0 : case E_V4SImode:
769 0 : if (pattern143 (x1,
770 : E_V4SImode) != 0)
771 : return -1;
772 : return 15;
773 :
774 0 : case E_V4DImode:
775 0 : if (pattern143 (x1,
776 : E_V4DImode) != 0)
777 : return -1;
778 : return 16;
779 :
780 : default:
781 : return -1;
782 : }
783 :
784 0 : case 2:
785 0 : x8 = XVECEXP (x6, 0, 0);
786 0 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
787 : return -1;
788 0 : x9 = XVECEXP (x6, 0, 1);
789 0 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
790 0 : || !register_operand (operands[0], E_V2DImode)
791 0 : || GET_MODE (x1) != E_V2DImode
792 0 : || GET_MODE (x4) != E_V2DImode
793 0 : || !nonimm_or_0_operand (operands[2], E_V2DImode))
794 0 : return -1;
795 0 : switch (GET_MODE (x5))
796 : {
797 0 : case E_V2HFmode:
798 0 : if (!nonimmediate_operand (operands[1], E_V8HFmode))
799 : return -1;
800 : return 17;
801 :
802 0 : case E_V2SFmode:
803 0 : if (!nonimmediate_operand (operands[1], E_V4SFmode))
804 : return -1;
805 : return 18;
806 :
807 : default:
808 : return -1;
809 : }
810 :
811 : default:
812 : return -1;
813 : }
814 :
815 : default:
816 : return -1;
817 : }
818 : }
819 :
820 : int
821 444 : pattern206 (rtx x1)
822 : {
823 444 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
824 444 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
825 444 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
826 444 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
827 444 : rtx x26, x27;
828 444 : int res ATTRIBUTE_UNUSED;
829 444 : x2 = XEXP (x1, 0);
830 444 : x3 = XEXP (x2, 0);
831 444 : if (GET_CODE (x3) != VEC_CONCAT)
832 : return -1;
833 444 : x4 = XEXP (x2, 1);
834 444 : if (GET_CODE (x4) != PARALLEL)
835 : return -1;
836 444 : x5 = XEXP (x1, 1);
837 444 : if (GET_CODE (x5) != VEC_SELECT)
838 : return -1;
839 444 : x6 = XEXP (x5, 0);
840 444 : if (GET_CODE (x6) != VEC_CONCAT)
841 : return -1;
842 444 : x7 = XEXP (x5, 1);
843 444 : if (GET_CODE (x7) != PARALLEL)
844 : return -1;
845 444 : x8 = XEXP (x3, 0);
846 444 : operands[1] = x8;
847 444 : x9 = XEXP (x3, 1);
848 444 : operands[2] = x9;
849 444 : x10 = XEXP (x6, 0);
850 444 : if (!rtx_equal_p (x10, operands[1]))
851 : return -1;
852 444 : x11 = XEXP (x6, 1);
853 444 : if (!rtx_equal_p (x11, operands[2]))
854 : return -1;
855 444 : switch (XVECLEN (x4, 0))
856 : {
857 197 : case 16:
858 197 : return pattern196 (x1); /* [-1, 0] */
859 :
860 239 : case 8:
861 239 : x12 = XVECEXP (x4, 0, 0);
862 239 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
863 : return -1;
864 239 : x13 = XVECEXP (x4, 0, 1);
865 239 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
866 : return -1;
867 239 : x14 = XVECEXP (x4, 0, 2);
868 239 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
869 : return -1;
870 239 : x15 = XVECEXP (x4, 0, 3);
871 239 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
872 : return -1;
873 239 : x16 = XVECEXP (x4, 0, 4);
874 239 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
875 : return -1;
876 239 : x17 = XVECEXP (x4, 0, 5);
877 239 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
878 : return -1;
879 239 : x18 = XVECEXP (x4, 0, 6);
880 239 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
881 : return -1;
882 239 : x19 = XVECEXP (x4, 0, 7);
883 239 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 14]
884 239 : || XVECLEN (x7, 0) != 8)
885 : return -1;
886 239 : x20 = XVECEXP (x7, 0, 0);
887 239 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
888 : return -1;
889 239 : x21 = XVECEXP (x7, 0, 1);
890 239 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
891 : return -1;
892 239 : x22 = XVECEXP (x7, 0, 2);
893 239 : if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
894 : return -1;
895 239 : x23 = XVECEXP (x7, 0, 3);
896 239 : if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
897 : return -1;
898 239 : x24 = XVECEXP (x7, 0, 4);
899 239 : if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
900 : return -1;
901 239 : x25 = XVECEXP (x7, 0, 5);
902 239 : if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 11])
903 : return -1;
904 239 : x26 = XVECEXP (x7, 0, 6);
905 239 : if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 13])
906 : return -1;
907 239 : x27 = XVECEXP (x7, 0, 7);
908 239 : if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 15]
909 239 : || pattern197 (x1,
910 : E_V16HImode,
911 : E_V8HImode) != 0)
912 16 : return -1;
913 : return 1;
914 :
915 : default:
916 : return -1;
917 : }
918 : }
919 :
920 : int
921 321451 : pattern223 (rtx x1, machine_mode i1)
922 : {
923 321451 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
924 321451 : int res ATTRIBUTE_UNUSED;
925 321451 : if (!register_operand (operands[0], i1)
926 321450 : || GET_MODE (x1) != i1
927 321450 : || !register_operand (operands[1], i1)
928 281251 : || !nonimmediate_operand (operands[2], i1)
929 500446 : || !scratch_operand (operands[3], i1))
930 142485 : return -1;
931 : return 0;
932 : }
933 :
934 : int
935 365717 : pattern228 (rtx x1)
936 : {
937 365717 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
938 365717 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
939 365717 : int res ATTRIBUTE_UNUSED;
940 365717 : x2 = XVECEXP (x1, 0, 1);
941 365717 : if (GET_CODE (x2) != USE)
942 : return -1;
943 348898 : x3 = XVECEXP (x1, 0, 2);
944 348898 : if (GET_CODE (x3) != CLOBBER)
945 : return -1;
946 337862 : x4 = XEXP (x3, 0);
947 337862 : if (GET_CODE (x4) != REG
948 337862 : || REGNO (x4) != 17
949 675724 : || GET_MODE (x4) != E_CCmode)
950 : return -1;
951 337862 : x5 = XVECEXP (x1, 0, 0);
952 337862 : x6 = XEXP (x5, 0);
953 337862 : operands[0] = x6;
954 337862 : x7 = XEXP (x5, 1);
955 337862 : x8 = XEXP (x7, 0);
956 337862 : operands[1] = x8;
957 337862 : x9 = XEXP (x2, 0);
958 337862 : operands[2] = x9;
959 337862 : switch (GET_MODE (operands[0]))
960 : {
961 2299 : case E_HFmode:
962 2299 : return pattern227 (x7,
963 : E_V8HFmode,
964 2299 : E_HFmode); /* [-1, 0] */
965 :
966 154313 : case E_SFmode:
967 154313 : if (pattern227 (x7,
968 : E_V4SFmode,
969 : E_SFmode) != 0)
970 : return -1;
971 : return 1;
972 :
973 181250 : case E_DFmode:
974 181250 : if (pattern227 (x7,
975 : E_V2DFmode,
976 : E_DFmode) != 0)
977 : return -1;
978 : return 2;
979 :
980 : default:
981 : return -1;
982 : }
983 : }
984 :
985 : int
986 400956 : pattern242 (rtx x1, machine_mode i1)
987 : {
988 400956 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
989 400956 : int res ATTRIBUTE_UNUSED;
990 400956 : if (!mask_reg_operand (operands[0], i1)
991 0 : || GET_MODE (x1) != i1
992 0 : || !mask_reg_operand (operands[1], i1)
993 400956 : || !mask_reg_operand (operands[2], i1))
994 400956 : return -1;
995 : return 0;
996 : }
997 :
998 : int
999 17444690 : pattern249 (rtx x1)
1000 : {
1001 17444690 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1002 17444690 : rtx x2, x3, x4, x5, x6, x7, x8;
1003 17444690 : int res ATTRIBUTE_UNUSED;
1004 17444690 : x2 = XEXP (x1, 1);
1005 17444690 : x3 = XEXP (x2, 0);
1006 17444690 : x4 = XEXP (x3, 0);
1007 17444690 : if (GET_CODE (x4) != REG
1008 17444690 : || REGNO (x4) != 17)
1009 : return -1;
1010 8633036 : x5 = XEXP (x3, 1);
1011 8633036 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1012 : return -1;
1013 8633036 : x6 = XEXP (x1, 0);
1014 8633036 : operands[0] = x6;
1015 8633036 : x7 = XEXP (x2, 1);
1016 8633036 : switch (GET_CODE (x7))
1017 : {
1018 2610093 : case REG:
1019 2610093 : case SUBREG:
1020 2610093 : case MEM:
1021 2610093 : operands[2] = x7;
1022 2610093 : x8 = XEXP (x2, 2);
1023 2610093 : operands[3] = x8;
1024 2610093 : return 0;
1025 :
1026 4320 : case ZERO_EXTEND:
1027 4320 : if (GET_MODE (x7) != E_DImode)
1028 : return -1;
1029 1304 : x8 = XEXP (x2, 2);
1030 1304 : if (GET_CODE (x8) != ZERO_EXTEND
1031 11 : || GET_MODE (x8) != E_DImode)
1032 : return -1;
1033 : return 1;
1034 :
1035 : default:
1036 : return -1;
1037 : }
1038 : }
1039 :
1040 : int
1041 620236 : pattern261 (rtx x1, machine_mode i1, machine_mode i2)
1042 : {
1043 620236 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1044 620236 : rtx x2;
1045 620236 : int res ATTRIBUTE_UNUSED;
1046 620236 : switch (GET_CODE (x1))
1047 : {
1048 248493 : case ZERO_EXTEND:
1049 248493 : if (GET_MODE (x1) != i2)
1050 : return -1;
1051 248493 : x2 = XEXP (x1, 0);
1052 248493 : operands[3] = x2;
1053 248493 : if (!nonimmediate_operand (operands[3], i1))
1054 : return -1;
1055 : return 0;
1056 :
1057 48166 : case CONST_INT:
1058 48166 : case CONST_WIDE_INT:
1059 48166 : operands[3] = x1;
1060 48166 : if (!const_scalar_int_operand (operands[3], i2))
1061 : return -1;
1062 : return 1;
1063 :
1064 : default:
1065 : return -1;
1066 : }
1067 : }
1068 :
1069 : int
1070 39711 : pattern271 (rtx x1, int *pnum_clobbers)
1071 : {
1072 39711 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1073 39711 : rtx x2, x3;
1074 39711 : int res ATTRIBUTE_UNUSED;
1075 39711 : if (!nonmemory_operand (operands[2], E_QImode))
1076 : return -1;
1077 37190 : x2 = XEXP (x1, 0);
1078 37190 : switch (GET_CODE (x2))
1079 : {
1080 37186 : case REG:
1081 37186 : case SUBREG:
1082 37186 : case MEM:
1083 37186 : operands[0] = x2;
1084 37186 : x3 = XEXP (x1, 1);
1085 37186 : return pattern0 (x3); /* [-1, 1] */
1086 :
1087 4 : case STRICT_LOW_PART:
1088 4 : res = pattern267 (x1, pnum_clobbers);
1089 4 : if (res >= 0)
1090 4 : return res + 2; /* [2, 3] */
1091 : return -1;
1092 :
1093 : default:
1094 : return -1;
1095 : }
1096 : }
1097 :
1098 : int
1099 943 : pattern283 (rtx x1)
1100 : {
1101 943 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1102 943 : rtx x2;
1103 943 : int res ATTRIBUTE_UNUSED;
1104 943 : if (!register_operand (operands[0], E_SImode)
1105 943 : || GET_MODE (x1) != E_SImode)
1106 : return -1;
1107 938 : x2 = XEXP (x1, 0);
1108 938 : switch (GET_MODE (x2))
1109 : {
1110 432 : case E_QImode:
1111 432 : if (!nonimmediate_operand (operands[1], E_QImode))
1112 : return -1;
1113 : return 0;
1114 :
1115 506 : case E_HImode:
1116 506 : if (!nonimmediate_operand (operands[1], E_HImode))
1117 : return -1;
1118 : return 1;
1119 :
1120 : default:
1121 : return -1;
1122 : }
1123 : }
1124 :
1125 : int
1126 724 : pattern291 (rtx x1, rtx_code i1)
1127 : {
1128 724 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1129 724 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1130 724 : rtx x10, x11, x12;
1131 724 : int res ATTRIBUTE_UNUSED;
1132 724 : x2 = XEXP (x1, 0);
1133 724 : x3 = XEXP (x2, 1);
1134 724 : if (GET_MODE (x3) != E_QImode)
1135 : return -1;
1136 660 : x4 = XEXP (x3, 1);
1137 660 : if (GET_CODE (x4) != CONST_INT)
1138 : return -1;
1139 660 : x5 = XEXP (x1, 1);
1140 660 : if (GET_CODE (x5) != SUBREG
1141 660 : || maybe_ne (SUBREG_BYTE (x5), 0))
1142 : return -1;
1143 589 : x6 = XEXP (x5, 0);
1144 589 : if (GET_CODE (x6) != i1)
1145 : return -1;
1146 589 : x7 = XEXP (x6, 0);
1147 589 : if (GET_CODE (x7) != ZERO_EXTEND)
1148 : return -1;
1149 589 : x8 = XEXP (x6, 1);
1150 589 : if (GET_CODE (x8) != MINUS
1151 589 : || GET_MODE (x8) != E_QImode)
1152 : return -1;
1153 589 : x9 = XEXP (x8, 0);
1154 589 : if (GET_CODE (x9) != CONST_INT)
1155 : return -1;
1156 589 : x10 = XEXP (x8, 1);
1157 589 : if (GET_CODE (x10) != AND
1158 589 : || GET_MODE (x10) != E_QImode)
1159 : return -1;
1160 589 : x11 = XEXP (x10, 1);
1161 589 : if (GET_CODE (x11) != CONST_INT)
1162 : return -1;
1163 589 : x12 = XEXP (x3, 0);
1164 589 : if (!nonmemory_operand (x12, E_QImode))
1165 : return -1;
1166 585 : switch (XWINT (x4, 0))
1167 : {
1168 576 : case 63L:
1169 576 : if (XWINT (x9, 0) != 64L
1170 576 : || XWINT (x11, 0) != 63L
1171 1152 : || pattern290 (x1,
1172 : E_DImode,
1173 : E_TImode) != 0)
1174 32 : return -1;
1175 : return 0;
1176 :
1177 6 : case 31L:
1178 6 : if (XWINT (x9, 0) != 32L
1179 6 : || XWINT (x11, 0) != 31L)
1180 : return -1;
1181 : return 1;
1182 :
1183 : default:
1184 : return -1;
1185 : }
1186 : }
1187 :
1188 : int
1189 1194 : pattern311 (rtx x1)
1190 : {
1191 1194 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1192 1194 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1193 1194 : int res ATTRIBUTE_UNUSED;
1194 1194 : x2 = XEXP (x1, 2);
1195 1194 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
1196 : return -1;
1197 1170 : x3 = XEXP (x1, 0);
1198 1170 : x4 = XEXP (x3, 0);
1199 1170 : x5 = XEXP (x4, 0);
1200 1170 : operands[1] = x5;
1201 1170 : x6 = XEXP (x4, 1);
1202 1170 : operands[2] = x6;
1203 1170 : x7 = XEXP (x3, 1);
1204 1170 : operands[3] = x7;
1205 1170 : x8 = XEXP (x3, 2);
1206 1170 : operands[4] = x8;
1207 1170 : if (!register_operand (operands[4], E_QImode))
1208 : return -1;
1209 1134 : x9 = XEXP (x1, 1);
1210 1134 : if (!rtx_equal_p (x9, operands[1]))
1211 : return -1;
1212 1134 : switch (GET_MODE (operands[0]))
1213 : {
1214 698 : case E_V8HFmode:
1215 698 : return pattern310 (x1,
1216 698 : E_V8HFmode); /* [-1, 0] */
1217 :
1218 218 : case E_V4SFmode:
1219 218 : if (pattern310 (x1,
1220 : E_V4SFmode) != 0)
1221 : return -1;
1222 : return 1;
1223 :
1224 218 : case E_V2DFmode:
1225 218 : if (pattern310 (x1,
1226 : E_V2DFmode) != 0)
1227 : return -1;
1228 : return 2;
1229 :
1230 : default:
1231 : return -1;
1232 : }
1233 : }
1234 :
1235 : int
1236 0 : pattern321 (rtx x1, machine_mode i1, machine_mode i2)
1237 : {
1238 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1239 0 : rtx x2, x3;
1240 0 : int res ATTRIBUTE_UNUSED;
1241 0 : if (!register_operand (operands[0], i1)
1242 0 : || GET_MODE (x1) != i1
1243 0 : || !vector_all_ones_operand (operands[1], i1)
1244 0 : || !const0_operand (operands[2], i1))
1245 0 : return -1;
1246 0 : x2 = XEXP (x1, 2);
1247 0 : if (GET_MODE (x2) != i2)
1248 : return -1;
1249 0 : x3 = XEXP (x2, 0);
1250 0 : if (GET_MODE (x3) != i2
1251 0 : || !nonimmediate_operand (operands[3], i1)
1252 0 : || !nonimmediate_operand (operands[4], i1)
1253 0 : || !const_0_to_7_operand (operands[5], E_SImode))
1254 0 : return -1;
1255 : return 0;
1256 : }
1257 :
1258 : int
1259 470 : pattern329 (rtx x1)
1260 : {
1261 470 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1262 470 : rtx x2;
1263 470 : int res ATTRIBUTE_UNUSED;
1264 470 : x2 = XVECEXP (x1, 0, 0);
1265 470 : operands[1] = x2;
1266 470 : switch (GET_MODE (operands[0]))
1267 : {
1268 228 : case E_V16QImode:
1269 228 : if (!register_operand (operands[0], E_V16QImode)
1270 224 : || GET_MODE (x1) != E_V16QImode
1271 452 : || !nonimmediate_operand (operands[1], E_V16HFmode))
1272 8 : return -1;
1273 : return 0;
1274 :
1275 234 : case E_V32QImode:
1276 234 : if (!register_operand (operands[0], E_V32QImode)
1277 226 : || GET_MODE (x1) != E_V32QImode
1278 460 : || !nonimmediate_operand (operands[1], E_V32HFmode))
1279 12 : return -1;
1280 : return 1;
1281 :
1282 : default:
1283 : return -1;
1284 : }
1285 : }
1286 :
1287 : int
1288 1629 : pattern333 (rtx x1, rtx_code i1)
1289 : {
1290 1629 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1291 1629 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1292 1629 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
1293 1629 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
1294 1629 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
1295 1629 : rtx x34, x35, x36, x37, x38, x39;
1296 1629 : int res ATTRIBUTE_UNUSED;
1297 1629 : x2 = XEXP (x1, 0);
1298 1629 : x3 = XEXP (x2, 0);
1299 1629 : x4 = XEXP (x3, 0);
1300 1629 : if (GET_CODE (x4) != VEC_SELECT)
1301 : return -1;
1302 1094 : x5 = XEXP (x4, 1);
1303 1094 : if (GET_CODE (x5) != PARALLEL
1304 1094 : || XVECLEN (x5, 0) != 1)
1305 : return -1;
1306 1094 : x6 = XVECEXP (x5, 0, 0);
1307 1094 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1308 : return -1;
1309 1094 : x7 = XEXP (x3, 1);
1310 1094 : if (GET_CODE (x7) != VEC_SELECT)
1311 : return -1;
1312 1094 : x8 = XEXP (x7, 1);
1313 1094 : if (GET_CODE (x8) != PARALLEL
1314 1094 : || XVECLEN (x8, 0) != 1)
1315 : return -1;
1316 1094 : x9 = XVECEXP (x8, 0, 0);
1317 1094 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
1318 : return -1;
1319 1094 : x10 = XEXP (x2, 1);
1320 1094 : if (GET_CODE (x10) != i1)
1321 : return -1;
1322 1068 : x11 = XEXP (x10, 0);
1323 1068 : if (GET_CODE (x11) != VEC_SELECT)
1324 : return -1;
1325 1068 : x12 = XEXP (x11, 1);
1326 1068 : if (GET_CODE (x12) != PARALLEL
1327 1068 : || XVECLEN (x12, 0) != 1)
1328 : return -1;
1329 1068 : x13 = XVECEXP (x12, 0, 0);
1330 1068 : if (GET_CODE (x13) != CONST_INT)
1331 : return -1;
1332 1068 : x14 = XEXP (x10, 1);
1333 1068 : if (GET_CODE (x14) != VEC_SELECT)
1334 : return -1;
1335 1068 : x15 = XEXP (x14, 1);
1336 1068 : if (GET_CODE (x15) != PARALLEL
1337 1068 : || XVECLEN (x15, 0) != 1)
1338 : return -1;
1339 1068 : x16 = XVECEXP (x15, 0, 0);
1340 1068 : if (GET_CODE (x16) != CONST_INT)
1341 : return -1;
1342 1068 : x17 = XEXP (x1, 1);
1343 1068 : if (GET_CODE (x17) != VEC_CONCAT)
1344 : return -1;
1345 1068 : x18 = XEXP (x17, 0);
1346 1068 : if (GET_CODE (x18) != i1)
1347 : return -1;
1348 1068 : x19 = XEXP (x18, 0);
1349 1068 : if (GET_CODE (x19) != VEC_SELECT)
1350 : return -1;
1351 1068 : x20 = XEXP (x19, 1);
1352 1068 : if (GET_CODE (x20) != PARALLEL
1353 1068 : || XVECLEN (x20, 0) != 1)
1354 : return -1;
1355 1068 : x21 = XVECEXP (x20, 0, 0);
1356 1068 : if (GET_CODE (x21) != CONST_INT)
1357 : return -1;
1358 1068 : x22 = XEXP (x18, 1);
1359 1068 : if (GET_CODE (x22) != VEC_SELECT)
1360 : return -1;
1361 1068 : x23 = XEXP (x22, 1);
1362 1068 : if (GET_CODE (x23) != PARALLEL
1363 1068 : || XVECLEN (x23, 0) != 1)
1364 : return -1;
1365 1068 : x24 = XVECEXP (x23, 0, 0);
1366 1068 : if (GET_CODE (x24) != CONST_INT)
1367 : return -1;
1368 1068 : x25 = XEXP (x17, 1);
1369 1068 : if (GET_CODE (x25) != i1)
1370 : return -1;
1371 1068 : x26 = XEXP (x25, 0);
1372 1068 : if (GET_CODE (x26) != VEC_SELECT)
1373 : return -1;
1374 1068 : x27 = XEXP (x26, 1);
1375 1068 : if (GET_CODE (x27) != PARALLEL
1376 1068 : || XVECLEN (x27, 0) != 1)
1377 : return -1;
1378 1068 : x28 = XVECEXP (x27, 0, 0);
1379 1068 : if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
1380 : return -1;
1381 1068 : x29 = XEXP (x25, 1);
1382 1068 : if (GET_CODE (x29) != VEC_SELECT)
1383 : return -1;
1384 1068 : x30 = XEXP (x29, 1);
1385 1068 : if (GET_CODE (x30) != PARALLEL
1386 1068 : || XVECLEN (x30, 0) != 1)
1387 : return -1;
1388 1068 : x31 = XVECEXP (x30, 0, 0);
1389 1068 : if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
1390 : return -1;
1391 1068 : x32 = XEXP (x4, 0);
1392 1068 : operands[1] = x32;
1393 1068 : x33 = XEXP (x7, 0);
1394 1068 : if (!rtx_equal_p (x33, operands[1]))
1395 : return -1;
1396 1068 : switch (XWINT (x13, 0))
1397 : {
1398 208 : case 0L:
1399 208 : if (XWINT (x16, 0) != 1L
1400 208 : || XWINT (x21, 0) != 2L
1401 208 : || XWINT (x24, 0) != 3L
1402 208 : || !register_operand (operands[0], E_V4DFmode)
1403 204 : || GET_MODE (x1) != E_V4DFmode
1404 204 : || GET_MODE (x2) != E_V2DFmode
1405 204 : || GET_MODE (x3) != E_DFmode
1406 204 : || GET_MODE (x4) != E_DFmode
1407 204 : || !register_operand (operands[1], E_V4DFmode)
1408 180 : || GET_MODE (x7) != E_DFmode
1409 180 : || GET_MODE (x10) != E_DFmode
1410 388 : || GET_MODE (x11) != E_DFmode)
1411 28 : return -1;
1412 180 : x34 = XEXP (x11, 0);
1413 180 : operands[2] = x34;
1414 180 : if (!nonimmediate_operand (operands[2], E_V4DFmode)
1415 156 : || GET_MODE (x14) != E_DFmode
1416 156 : || GET_MODE (x17) != E_V2DFmode
1417 156 : || GET_MODE (x18) != E_DFmode
1418 156 : || GET_MODE (x19) != E_DFmode
1419 156 : || GET_MODE (x22) != E_DFmode
1420 156 : || GET_MODE (x25) != E_DFmode
1421 156 : || GET_MODE (x26) != E_DFmode
1422 336 : || GET_MODE (x29) != E_DFmode)
1423 : return -1;
1424 156 : x35 = XEXP (x14, 0);
1425 156 : if (!rtx_equal_p (x35, operands[2]))
1426 : return -1;
1427 156 : x36 = XEXP (x19, 0);
1428 156 : if (!rtx_equal_p (x36, operands[1]))
1429 : return -1;
1430 156 : x37 = XEXP (x22, 0);
1431 156 : if (!rtx_equal_p (x37, operands[1]))
1432 : return -1;
1433 156 : x38 = XEXP (x26, 0);
1434 156 : if (!rtx_equal_p (x38, operands[2]))
1435 : return -1;
1436 156 : x39 = XEXP (x29, 0);
1437 156 : if (!rtx_equal_p (x39, operands[2]))
1438 : return -1;
1439 : return 0;
1440 :
1441 860 : case 2L:
1442 860 : if (XWINT (x16, 0) != 3L
1443 860 : || XWINT (x21, 0) != 0L
1444 860 : || XWINT (x24, 0) != 1L
1445 860 : || !register_operand (operands[0], E_V4SFmode)
1446 860 : || GET_MODE (x1) != E_V4SFmode
1447 860 : || GET_MODE (x2) != E_V2SFmode
1448 860 : || GET_MODE (x3) != E_SFmode
1449 860 : || GET_MODE (x4) != E_SFmode
1450 860 : || !register_operand (operands[1], E_V4SFmode)
1451 678 : || GET_MODE (x7) != E_SFmode
1452 678 : || GET_MODE (x10) != E_SFmode
1453 678 : || GET_MODE (x11) != E_SFmode
1454 678 : || GET_MODE (x14) != E_SFmode
1455 678 : || GET_MODE (x17) != E_V2SFmode
1456 678 : || GET_MODE (x18) != E_SFmode
1457 1538 : || GET_MODE (x19) != E_SFmode)
1458 182 : return -1;
1459 678 : x36 = XEXP (x19, 0);
1460 678 : operands[2] = x36;
1461 678 : if (!vector_operand (operands[2], E_V4SFmode)
1462 678 : || GET_MODE (x22) != E_SFmode
1463 678 : || GET_MODE (x25) != E_SFmode
1464 678 : || GET_MODE (x26) != E_SFmode
1465 1356 : || GET_MODE (x29) != E_SFmode)
1466 : return -1;
1467 678 : x34 = XEXP (x11, 0);
1468 678 : if (!rtx_equal_p (x34, operands[1]))
1469 : return -1;
1470 678 : x35 = XEXP (x14, 0);
1471 678 : if (!rtx_equal_p (x35, operands[1]))
1472 : return -1;
1473 678 : x37 = XEXP (x22, 0);
1474 678 : if (!rtx_equal_p (x37, operands[2]))
1475 : return -1;
1476 678 : x38 = XEXP (x26, 0);
1477 678 : if (!rtx_equal_p (x38, operands[2]))
1478 : return -1;
1479 678 : x39 = XEXP (x29, 0);
1480 678 : if (!rtx_equal_p (x39, operands[2]))
1481 : return -1;
1482 : return 1;
1483 :
1484 : default:
1485 : return -1;
1486 : }
1487 : }
1488 :
1489 : int
1490 193 : pattern381 (rtx x1, machine_mode i1)
1491 : {
1492 193 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1493 193 : rtx x2;
1494 193 : int res ATTRIBUTE_UNUSED;
1495 193 : if (!register_operand (operands[0], i1)
1496 193 : || GET_MODE (x1) != i1)
1497 : return -1;
1498 193 : x2 = XEXP (x1, 0);
1499 193 : if (GET_MODE (x2) != i1
1500 193 : || !general_operand (operands[1], i1))
1501 10 : return -1;
1502 : return 0;
1503 : }
1504 :
1505 : int
1506 191686 : pattern385 (rtx x1)
1507 : {
1508 191686 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1509 191686 : rtx x2, x3, x4;
1510 191686 : int res ATTRIBUTE_UNUSED;
1511 191686 : x2 = XVECEXP (x1, 0, 1);
1512 191686 : if (GET_CODE (x2) != CLOBBER)
1513 : return -1;
1514 172298 : x3 = XEXP (x2, 0);
1515 172298 : if (GET_CODE (x3) != REG
1516 172298 : || REGNO (x3) != 17
1517 344596 : || GET_MODE (x3) != E_CCmode)
1518 : return -1;
1519 172298 : x4 = XVECEXP (x1, 0, 0);
1520 172298 : return pattern384 (x4); /* [-1, 1] */
1521 : }
1522 :
1523 : int
1524 3975 : pattern391 (rtx x1)
1525 : {
1526 3975 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1527 3975 : int res ATTRIBUTE_UNUSED;
1528 3975 : switch (GET_MODE (operands[0]))
1529 : {
1530 105 : case E_SFmode:
1531 105 : if (!register_operand (operands[0], E_SFmode)
1532 105 : || GET_MODE (x1) != E_SFmode)
1533 : return -1;
1534 : return 0;
1535 :
1536 1509 : case E_DFmode:
1537 1509 : if (!register_operand (operands[0], E_DFmode)
1538 1509 : || GET_MODE (x1) != E_DFmode)
1539 : return -1;
1540 : return 1;
1541 :
1542 2361 : case E_XFmode:
1543 2361 : if (!register_operand (operands[0], E_XFmode)
1544 2361 : || GET_MODE (x1) != E_XFmode)
1545 : return -1;
1546 : return 2;
1547 :
1548 : default:
1549 : return -1;
1550 : }
1551 : }
1552 :
1553 : int
1554 168 : pattern400 ()
1555 : {
1556 168 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1557 168 : int res ATTRIBUTE_UNUSED;
1558 168 : switch (GET_MODE (operands[0]))
1559 : {
1560 84 : case E_SImode:
1561 84 : if (!register_operand (operands[0], E_SImode)
1562 84 : || !memory_operand (operands[1], E_SImode))
1563 0 : return -1;
1564 : return 0;
1565 :
1566 84 : case E_DImode:
1567 84 : if (!register_operand (operands[0], E_DImode)
1568 84 : || !memory_operand (operands[1], E_DImode))
1569 0 : return -1;
1570 : return 1;
1571 :
1572 : default:
1573 : return -1;
1574 : }
1575 : }
1576 :
1577 : int
1578 29114 : pattern409 (rtx x1)
1579 : {
1580 29114 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1581 29114 : rtx x2, x3, x4, x5, x6, x7, x8;
1582 29114 : int res ATTRIBUTE_UNUSED;
1583 29114 : x2 = XVECEXP (x1, 0, 1);
1584 29114 : if (GET_CODE (x2) != CLOBBER)
1585 : return -1;
1586 29114 : x3 = XEXP (x2, 0);
1587 29114 : if (GET_CODE (x3) != REG
1588 29114 : || REGNO (x3) != 17
1589 55258 : || GET_MODE (x3) != E_CCmode)
1590 : return -1;
1591 26144 : x4 = XVECEXP (x1, 0, 0);
1592 26144 : x5 = XEXP (x4, 1);
1593 26144 : x6 = XEXP (x5, 1);
1594 26144 : switch (GET_CODE (x6))
1595 : {
1596 63 : case AND:
1597 63 : if (GET_MODE (x6) != E_QImode)
1598 : return -1;
1599 63 : x7 = XEXP (x4, 0);
1600 63 : operands[0] = x7;
1601 63 : x8 = XEXP (x5, 0);
1602 63 : operands[1] = x8;
1603 63 : return pattern209 (x5); /* [-1, 3] */
1604 :
1605 19 : case PLUS:
1606 19 : if (GET_MODE (x6) != E_QImode)
1607 : return -1;
1608 19 : x7 = XEXP (x4, 0);
1609 19 : operands[0] = x7;
1610 19 : x8 = XEXP (x5, 0);
1611 19 : operands[1] = x8;
1612 19 : res = pattern210 (x5);
1613 19 : if (res >= 0)
1614 8 : return res + 4; /* [4, 7] */
1615 : return -1;
1616 :
1617 7 : case MINUS:
1618 7 : if (GET_MODE (x6) != E_QImode)
1619 : return -1;
1620 7 : x7 = XEXP (x4, 0);
1621 7 : operands[0] = x7;
1622 7 : x8 = XEXP (x5, 0);
1623 7 : operands[1] = x8;
1624 7 : res = pattern211 (x5);
1625 7 : if (res >= 0)
1626 5 : return res + 8; /* [8, 11] */
1627 : return -1;
1628 :
1629 : case CONST_INT:
1630 : case CONST_WIDE_INT:
1631 : case CONST_POLY_INT:
1632 : case CONST_FIXED:
1633 : case CONST_DOUBLE:
1634 : case CONST_VECTOR:
1635 : case CONST:
1636 : case REG:
1637 : case SUBREG:
1638 : case LABEL_REF:
1639 : case SYMBOL_REF:
1640 : case HIGH:
1641 : return 12;
1642 :
1643 : default:
1644 : return -1;
1645 : }
1646 : }
1647 :
1648 : int
1649 3696 : pattern426 (rtx x1)
1650 : {
1651 3696 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1652 3696 : rtx x2, x3, x4;
1653 3696 : int res ATTRIBUTE_UNUSED;
1654 3696 : if (GET_CODE (x1) != ZERO_EXTRACT)
1655 : return -1;
1656 2220 : x2 = XEXP (x1, 1);
1657 2220 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
1658 : return -1;
1659 370 : x3 = XEXP (x1, 2);
1660 370 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
1661 : return -1;
1662 370 : x4 = XEXP (x1, 0);
1663 370 : operands[0] = x4;
1664 370 : if (!int248_register_operand (operands[0], E_VOIDmode))
1665 : return -1;
1666 : return 0;
1667 : }
1668 :
1669 : int
1670 5828 : pattern432 (rtx x1, machine_mode i1)
1671 : {
1672 5828 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1673 5828 : rtx x2;
1674 5828 : int res ATTRIBUTE_UNUSED;
1675 5828 : if (!register_operand (operands[0], i1)
1676 5828 : || GET_MODE (x1) != i1)
1677 : return -1;
1678 5143 : x2 = XEXP (x1, 0);
1679 5143 : if (GET_MODE (x2) != i1
1680 5143 : || !register_no_SP_operand (operands[1], i1)
1681 4775 : || !register_operand (operands[2], i1)
1682 9579 : || !immediate_operand (operands[3], i1))
1683 3962 : return -1;
1684 : return 0;
1685 : }
1686 :
1687 : int
1688 117 : pattern439 (rtx x1, machine_mode i1)
1689 : {
1690 117 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1691 117 : rtx x2;
1692 117 : int res ATTRIBUTE_UNUSED;
1693 117 : if (!nonimmediate_operand (operands[0], i1)
1694 117 : || GET_MODE (x1) != i1
1695 234 : || !general_operand (operands[1], i1))
1696 0 : return -1;
1697 117 : x2 = XEXP (x1, 1);
1698 117 : if (GET_MODE (x2) != i1)
1699 : return -1;
1700 : return 0;
1701 : }
1702 :
1703 : int
1704 54542 : pattern445 (rtx x1)
1705 : {
1706 54542 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1707 54542 : rtx x2, x3, x4;
1708 54542 : int res ATTRIBUTE_UNUSED;
1709 54542 : x2 = XEXP (x1, 0);
1710 54542 : x3 = XEXP (x2, 0);
1711 54542 : operands[1] = x3;
1712 54542 : if (!nonimmediate_operand (operands[1], E_SImode))
1713 : return -1;
1714 17970 : x4 = XEXP (x1, 1);
1715 17970 : switch (GET_CODE (x4))
1716 : {
1717 : case CONST_INT:
1718 : case CONST_WIDE_INT:
1719 : case CONST:
1720 : case LABEL_REF:
1721 : case SYMBOL_REF:
1722 : return 0;
1723 :
1724 0 : case ASHIFT:
1725 0 : if (GET_MODE (x4) != E_DImode
1726 0 : || !nonimmediate_operand (operands[0], E_DImode))
1727 0 : return -1;
1728 0 : res = pattern39 (x4,
1729 : E_DImode,
1730 : E_SImode);
1731 0 : if (res >= 0)
1732 0 : return res + 1; /* [1, 3] */
1733 : return -1;
1734 :
1735 : default:
1736 : return -1;
1737 : }
1738 : }
1739 :
1740 : int
1741 7122 : pattern456 (rtx x1, int *pnum_clobbers)
1742 : {
1743 7122 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1744 7122 : rtx x2, x3, x4, x5;
1745 7122 : int res ATTRIBUTE_UNUSED;
1746 7122 : if (pnum_clobbers == NULL)
1747 : return -1;
1748 7120 : x2 = XEXP (x1, 1);
1749 7120 : if (maybe_ne (SUBREG_BYTE (x2), 0)
1750 7120 : || GET_MODE (x2) != E_QImode)
1751 : return -1;
1752 6796 : x3 = XEXP (x2, 0);
1753 6796 : switch (GET_CODE (x3))
1754 : {
1755 1474 : case AND:
1756 1474 : return pattern455 (x1); /* [-1, 1] */
1757 :
1758 0 : case PLUS:
1759 0 : x4 = XEXP (x3, 0);
1760 0 : operands[2] = x4;
1761 0 : if (!int_nonimmediate_operand (operands[2], E_VOIDmode))
1762 : return -1;
1763 0 : res = pattern454 (x1);
1764 0 : if (res >= 0)
1765 0 : return res + 2; /* [2, 3] */
1766 : return -1;
1767 :
1768 0 : case MINUS:
1769 0 : x4 = XEXP (x3, 0);
1770 0 : operands[3] = x4;
1771 0 : if (!const_int_operand (operands[3], E_VOIDmode))
1772 : return -1;
1773 0 : x5 = XEXP (x3, 1);
1774 0 : operands[2] = x5;
1775 0 : if (!int_nonimmediate_operand (operands[2], E_VOIDmode))
1776 : return -1;
1777 0 : res = pattern14 (x1);
1778 0 : if (res >= 0)
1779 0 : return res + 4; /* [4, 5] */
1780 : return -1;
1781 :
1782 : default:
1783 : return -1;
1784 : }
1785 : }
1786 :
1787 : int
1788 2956 : pattern469 (rtx x1)
1789 : {
1790 2956 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1791 2956 : rtx x2, x3, x4, x5, x6;
1792 2956 : int res ATTRIBUTE_UNUSED;
1793 2956 : x2 = XEXP (x1, 0);
1794 2956 : x3 = XVECEXP (x2, 0, 0);
1795 2956 : operands[1] = x3;
1796 2956 : x4 = XVECEXP (x2, 0, 1);
1797 2956 : operands[2] = x4;
1798 2956 : x5 = XEXP (x1, 1);
1799 2956 : operands[3] = x5;
1800 2956 : x6 = XEXP (x1, 2);
1801 2956 : operands[4] = x6;
1802 2956 : switch (GET_MODE (operands[0]))
1803 : {
1804 1008 : case E_V64QImode:
1805 1008 : return pattern468 (x1,
1806 : E_DImode,
1807 : E_V64QImode,
1808 1008 : E_V32HFmode); /* [-1, 0] */
1809 :
1810 992 : case E_V32QImode:
1811 992 : if (pattern468 (x1,
1812 : E_SImode,
1813 : E_V32QImode,
1814 : E_V16HFmode) != 0)
1815 : return -1;
1816 : return 1;
1817 :
1818 956 : case E_V16QImode:
1819 956 : if (pattern468 (x1,
1820 : E_HImode,
1821 : E_V16QImode,
1822 : E_V8HFmode) != 0)
1823 : return -1;
1824 : return 2;
1825 :
1826 : default:
1827 : return -1;
1828 : }
1829 : }
1830 :
1831 : int
1832 761 : pattern480 (rtx x1, machine_mode i1)
1833 : {
1834 761 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1835 761 : rtx x2;
1836 761 : int res ATTRIBUTE_UNUSED;
1837 761 : if (!register_operand (operands[0], i1)
1838 761 : || GET_MODE (x1) != i1)
1839 : return -1;
1840 711 : x2 = XEXP (x1, 0);
1841 711 : if (GET_MODE (x2) != i1
1842 711 : || !register_operand (operands[1], i1)
1843 711 : || !register_operand (operands[2], i1)
1844 1396 : || !nonimmediate_operand (operands[3], i1))
1845 26 : return -1;
1846 : return 0;
1847 : }
1848 :
1849 : int
1850 5220 : pattern485 (machine_mode i1, machine_mode i2)
1851 : {
1852 5220 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1853 5220 : int res ATTRIBUTE_UNUSED;
1854 5220 : if (!register_operand (operands[2], i1)
1855 5197 : || !nonimmediate_operand (operands[3], i1)
1856 5179 : || !const0_operand (operands[4], i1)
1857 10399 : || !register_operand (operands[5], i2))
1858 293 : return -1;
1859 : return 0;
1860 : }
1861 :
1862 : int
1863 7736 : pattern490 (rtx x1)
1864 : {
1865 7736 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1866 7736 : rtx x2, x3, x4, x5, x6, x7;
1867 7736 : int res ATTRIBUTE_UNUSED;
1868 7736 : x2 = XEXP (x1, 0);
1869 7736 : x3 = XVECEXP (x2, 0, 0);
1870 7736 : operands[1] = x3;
1871 7736 : x4 = XVECEXP (x2, 0, 1);
1872 7736 : operands[2] = x4;
1873 7736 : x5 = XVECEXP (x2, 0, 2);
1874 7736 : operands[3] = x5;
1875 7736 : x6 = XEXP (x1, 2);
1876 7736 : operands[4] = x6;
1877 7736 : x7 = XEXP (x1, 1);
1878 7736 : switch (GET_CODE (x7))
1879 : {
1880 3796 : case REG:
1881 3796 : case SUBREG:
1882 3796 : if (!rtx_equal_p (x7, operands[1]))
1883 : return -1;
1884 3796 : switch (GET_MODE (operands[0]))
1885 : {
1886 1288 : case E_V16SImode:
1887 1288 : return pattern484 (x1,
1888 : E_V16SImode,
1889 1288 : E_HImode); /* [-1, 0] */
1890 :
1891 1284 : case E_V8SImode:
1892 1284 : if (pattern484 (x1,
1893 : E_V8SImode,
1894 : E_QImode) != 0)
1895 : return -1;
1896 : return 1;
1897 :
1898 1224 : case E_V4SImode:
1899 1224 : if (pattern484 (x1,
1900 : E_V4SImode,
1901 : E_QImode) != 0)
1902 : return -1;
1903 : return 2;
1904 :
1905 : default:
1906 : return -1;
1907 : }
1908 :
1909 3880 : case CONST_INT:
1910 3880 : case CONST_DOUBLE:
1911 3880 : case CONST_VECTOR:
1912 3880 : operands[5] = x7;
1913 3880 : switch (GET_MODE (operands[0]))
1914 : {
1915 1324 : case E_V16SImode:
1916 1324 : if (pattern489 (x1,
1917 : E_V16SImode,
1918 : E_HImode) != 0)
1919 : return -1;
1920 : return 3;
1921 :
1922 1320 : case E_V8SImode:
1923 1320 : if (pattern489 (x1,
1924 : E_V8SImode,
1925 : E_QImode) != 0)
1926 : return -1;
1927 : return 4;
1928 :
1929 1236 : case E_V4SImode:
1930 1236 : if (pattern489 (x1,
1931 : E_V4SImode,
1932 : E_QImode) != 0)
1933 : return -1;
1934 : return 5;
1935 :
1936 : default:
1937 : return -1;
1938 : }
1939 :
1940 : default:
1941 : return -1;
1942 : }
1943 : }
1944 :
1945 : int
1946 971 : pattern502 (rtx x1, machine_mode i1)
1947 : {
1948 971 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1949 971 : rtx x2, x3, x4, x5, x6, x7;
1950 971 : int res ATTRIBUTE_UNUSED;
1951 971 : x2 = XEXP (x1, 0);
1952 971 : x3 = XEXP (x2, 1);
1953 971 : x4 = XEXP (x3, 1);
1954 971 : x5 = XVECEXP (x4, 0, 0);
1955 971 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1956 : return -1;
1957 971 : x6 = XVECEXP (x4, 0, 1);
1958 971 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
1959 : return -1;
1960 971 : switch (GET_MODE (operands[0]))
1961 : {
1962 495 : case E_V8HFmode:
1963 495 : if (!register_operand (operands[0], E_V8HFmode)
1964 483 : || GET_MODE (x1) != E_V8HFmode
1965 978 : || GET_MODE (x2) != E_V2HFmode)
1966 : return -1;
1967 483 : x7 = XEXP (x2, 0);
1968 483 : if (GET_MODE (x7) != E_V2HFmode
1969 483 : || !vector_operand (operands[1], i1)
1970 483 : || GET_MODE (x3) != E_V2HFmode
1971 483 : || !nonimm_or_0_operand (operands[2], E_V8HFmode)
1972 963 : || !const0_operand (operands[4], E_V6HFmode))
1973 3 : return -1;
1974 : return 0;
1975 :
1976 476 : case E_V4SFmode:
1977 476 : if (pattern501 (x1,
1978 : E_V2SFmode,
1979 : E_V4SFmode,
1980 : i1) != 0)
1981 : return -1;
1982 : return 1;
1983 :
1984 : default:
1985 : return -1;
1986 : }
1987 : }
1988 :
1989 : int
1990 1746 : pattern510 ()
1991 : {
1992 1746 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1993 1746 : int res ATTRIBUTE_UNUSED;
1994 1746 : switch (GET_MODE (operands[1]))
1995 : {
1996 576 : case E_V8HImode:
1997 576 : if (!register_operand (operands[1], E_V8HImode))
1998 : return -1;
1999 : return 0;
2000 :
2001 588 : case E_V8SImode:
2002 588 : if (!register_operand (operands[1], E_V8SImode))
2003 : return -1;
2004 : return 1;
2005 :
2006 582 : case E_V8DImode:
2007 582 : if (!register_operand (operands[1], E_V8DImode))
2008 : return -1;
2009 : return 2;
2010 :
2011 : default:
2012 : return -1;
2013 : }
2014 : }
2015 :
2016 : int
2017 755 : pattern515 (machine_mode i1)
2018 : {
2019 755 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2020 755 : int res ATTRIBUTE_UNUSED;
2021 755 : if (!const0_operand (operands[2], i1))
2022 : return -1;
2023 753 : switch (GET_MODE (operands[1]))
2024 : {
2025 357 : case E_V4DImode:
2026 357 : if (!register_operand (operands[1], E_V4DImode))
2027 : return -1;
2028 : return 0;
2029 :
2030 396 : case E_V4SImode:
2031 396 : if (!register_operand (operands[1], E_V4SImode))
2032 : return -1;
2033 : return 1;
2034 :
2035 : default:
2036 : return -1;
2037 : }
2038 : }
2039 :
2040 : int
2041 1458 : pattern521 (rtx x1)
2042 : {
2043 1458 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2044 1458 : int res ATTRIBUTE_UNUSED;
2045 1458 : if (!register_operand (operands[0], E_V2DFmode)
2046 1458 : || GET_MODE (x1) != E_V2DFmode)
2047 : return -1;
2048 1283 : switch (GET_MODE (operands[1]))
2049 : {
2050 1075 : case E_V2SImode:
2051 1075 : if (!nonimmediate_operand (operands[1], E_V2SImode))
2052 : return -1;
2053 : return 0;
2054 :
2055 200 : case E_V2DImode:
2056 200 : if (!nonimmediate_operand (operands[1], E_V2DImode))
2057 : return -1;
2058 : return 1;
2059 :
2060 : default:
2061 : return -1;
2062 : }
2063 : }
2064 :
2065 : int
2066 6 : pattern526 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
2067 : {
2068 6 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2069 6 : rtx x2, x3;
2070 6 : int res ATTRIBUTE_UNUSED;
2071 6 : if (!nonimmediate_operand (operands[0], i3)
2072 6 : || GET_MODE (x1) != i3)
2073 : return -1;
2074 6 : x2 = XEXP (x1, 0);
2075 6 : if (GET_MODE (x2) != i2)
2076 : return -1;
2077 6 : x3 = XEXP (x2, 0);
2078 6 : if (GET_MODE (x3) != i1
2079 6 : || !register_operand (operands[1], i1)
2080 12 : || !permvar_truncate_operand (operands[2], i1))
2081 2 : return -1;
2082 : return 0;
2083 : }
2084 :
2085 : int
2086 17280 : pattern534 (rtx x1, machine_mode i1)
2087 : {
2088 17280 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2089 17280 : rtx x2, x3;
2090 17280 : int res ATTRIBUTE_UNUSED;
2091 17280 : if (!register_operand (operands[0], i1)
2092 17280 : || GET_MODE (x1) != i1)
2093 : return -1;
2094 17271 : x2 = XEXP (x1, 0);
2095 17271 : if (GET_MODE (x2) != i1
2096 17271 : || !regmem_or_bitnot_regmem_operand (operands[1], i1)
2097 34495 : || !regmem_or_bitnot_regmem_operand (operands[2], i1))
2098 65 : return -1;
2099 17206 : x3 = XEXP (x1, 1);
2100 17206 : if (GET_MODE (x3) != i1
2101 17206 : || !regmem_or_bitnot_regmem_operand (operands[3], i1)
2102 34412 : || !regmem_or_bitnot_regmem_operand (operands[4], i1))
2103 12 : return -1;
2104 : return 0;
2105 : }
2106 :
2107 : int
2108 128203 : pattern539 (rtx x1)
2109 : {
2110 128203 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2111 128203 : rtx x2, x3, x4, x5, x6, x7;
2112 128203 : int res ATTRIBUTE_UNUSED;
2113 128203 : x2 = XEXP (x1, 0);
2114 128203 : x3 = XEXP (x2, 0);
2115 128203 : x4 = XEXP (x3, 0);
2116 128203 : operands[1] = x4;
2117 128203 : x5 = XEXP (x3, 1);
2118 128203 : operands[2] = x5;
2119 128203 : x6 = XEXP (x2, 1);
2120 128203 : operands[3] = x6;
2121 128203 : x7 = XEXP (x1, 1);
2122 128203 : operands[4] = x7;
2123 128203 : switch (GET_MODE (operands[0]))
2124 : {
2125 0 : case E_V64QImode:
2126 0 : return pattern538 (x1,
2127 0 : E_V64QImode); /* [-1, 0] */
2128 :
2129 224 : case E_V32QImode:
2130 224 : if (pattern538 (x1,
2131 : E_V32QImode) != 0)
2132 : return -1;
2133 : return 1;
2134 :
2135 886 : case E_V16QImode:
2136 886 : if (pattern538 (x1,
2137 : E_V16QImode) != 0)
2138 : return -1;
2139 : return 2;
2140 :
2141 0 : case E_V32HImode:
2142 0 : if (pattern538 (x1,
2143 : E_V32HImode) != 0)
2144 : return -1;
2145 : return 3;
2146 :
2147 12 : case E_V16HImode:
2148 12 : if (pattern538 (x1,
2149 : E_V16HImode) != 0)
2150 : return -1;
2151 : return 4;
2152 :
2153 809 : case E_V8HImode:
2154 809 : if (pattern538 (x1,
2155 : E_V8HImode) != 0)
2156 : return -1;
2157 : return 5;
2158 :
2159 125 : case E_V16SImode:
2160 125 : if (pattern538 (x1,
2161 : E_V16SImode) != 0)
2162 : return -1;
2163 : return 6;
2164 :
2165 1402 : case E_V8SImode:
2166 1402 : if (pattern538 (x1,
2167 : E_V8SImode) != 0)
2168 : return -1;
2169 : return 7;
2170 :
2171 5999 : case E_V4SImode:
2172 5999 : if (pattern538 (x1,
2173 : E_V4SImode) != 0)
2174 : return -1;
2175 : return 8;
2176 :
2177 0 : case E_V8DImode:
2178 0 : if (pattern538 (x1,
2179 : E_V8DImode) != 0)
2180 : return -1;
2181 : return 9;
2182 :
2183 14 : case E_V4DImode:
2184 14 : if (pattern538 (x1,
2185 : E_V4DImode) != 0)
2186 : return -1;
2187 : return 10;
2188 :
2189 1434 : case E_V2DImode:
2190 1434 : if (pattern538 (x1,
2191 : E_V2DImode) != 0)
2192 : return -1;
2193 : return 11;
2194 :
2195 : default:
2196 : return -1;
2197 : }
2198 : }
2199 :
2200 : int
2201 12281 : pattern546 (rtx x1, machine_mode i1)
2202 : {
2203 12281 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2204 12281 : rtx x2;
2205 12281 : int res ATTRIBUTE_UNUSED;
2206 12281 : if (!register_operand (operands[0], i1)
2207 12281 : || GET_MODE (x1) != i1)
2208 : return -1;
2209 11956 : x2 = XEXP (x1, 0);
2210 11956 : switch (GET_MODE (x2))
2211 : {
2212 551 : case E_V4QImode:
2213 551 : if (!register_operand (operands[1], E_V16QImode))
2214 : return -1;
2215 : return 0;
2216 :
2217 10476 : case E_V4HImode:
2218 10476 : if (!register_operand (operands[1], E_V8HImode))
2219 : return -1;
2220 : return 1;
2221 :
2222 : default:
2223 : return -1;
2224 : }
2225 : }
2226 :
2227 : int
2228 55 : pattern550 (rtx x1)
2229 : {
2230 55 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2231 55 : rtx x2, x3, x4, x5;
2232 55 : int res ATTRIBUTE_UNUSED;
2233 55 : x2 = XVECEXP (x1, 0, 1);
2234 55 : x3 = XVECEXP (x2, 0, 0);
2235 55 : operands[2] = x3;
2236 55 : switch (GET_MODE (operands[0]))
2237 : {
2238 28 : case E_SImode:
2239 28 : x4 = XVECEXP (x1, 0, 0);
2240 28 : x5 = XEXP (x4, 1);
2241 28 : return pattern549 (x5,
2242 28 : E_SImode); /* [-1, 0] */
2243 :
2244 27 : case E_DImode:
2245 27 : x4 = XVECEXP (x1, 0, 0);
2246 27 : x5 = XEXP (x4, 1);
2247 27 : if (pattern549 (x5,
2248 : E_DImode) != 0)
2249 : return -1;
2250 : return 1;
2251 :
2252 : default:
2253 : return -1;
2254 : }
2255 : }
2256 :
2257 : int
2258 1174 : pattern557 (rtx x1)
2259 : {
2260 1174 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2261 1174 : rtx x2, x3, x4, x5, x6, x7, x8;
2262 1174 : int res ATTRIBUTE_UNUSED;
2263 1174 : x2 = XVECEXP (x1, 0, 0);
2264 1174 : x3 = XEXP (x2, 1);
2265 1174 : if (GET_MODE (x3) != E_V2SFmode)
2266 : return -1;
2267 140 : x4 = XVECEXP (x1, 0, 1);
2268 140 : if (GET_CODE (x4) != UNSPEC
2269 140 : || XVECLEN (x4, 0) != 1
2270 140 : || XINT (x4, 1) != 111)
2271 : return -1;
2272 140 : x5 = XVECEXP (x4, 0, 0);
2273 140 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2274 : return -1;
2275 140 : x6 = XEXP (x2, 0);
2276 140 : operands[0] = x6;
2277 140 : if (!register_operand (operands[0], E_V2SFmode))
2278 : return -1;
2279 140 : x7 = XVECEXP (x3, 0, 0);
2280 140 : operands[1] = x7;
2281 140 : if (!register_operand (operands[1], E_V2SFmode))
2282 : return -1;
2283 126 : x8 = XVECEXP (x3, 0, 1);
2284 126 : operands[2] = x8;
2285 126 : if (!nonimmediate_operand (operands[2], E_V2SFmode))
2286 : return -1;
2287 : return 0;
2288 : }
2289 :
2290 : int
2291 304829 : pattern565 (rtx x1, machine_mode i1, machine_mode i2)
2292 : {
2293 304829 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2294 304829 : rtx x2, x3;
2295 304829 : int res ATTRIBUTE_UNUSED;
2296 304829 : x2 = XEXP (x1, 0);
2297 304829 : if (GET_MODE (x2) != i2
2298 304829 : || !register_operand (operands[1], i1))
2299 12730 : return -1;
2300 292099 : x3 = XEXP (x1, 1);
2301 292099 : if (GET_MODE (x3) != i2
2302 292099 : || !nonimmediate_operand (operands[2], i1))
2303 971 : return -1;
2304 : return 0;
2305 : }
2306 :
2307 : int
2308 3757 : pattern571 (rtx x1, machine_mode i1)
2309 : {
2310 3757 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2311 3757 : int res ATTRIBUTE_UNUSED;
2312 3757 : if (!nonimmediate_operand (operands[0], i1)
2313 3757 : || GET_MODE (x1) != i1
2314 3757 : || !nonimmediate_operand (operands[1], i1)
2315 7511 : || !nonimmediate_or_x86_64_const_vector_operand (operands[2], i1))
2316 3 : return -1;
2317 : return 0;
2318 : }
2319 :
2320 : int
2321 51793 : pattern576 (rtx x1)
2322 : {
2323 51793 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2324 51793 : rtx x2, x3, x4, x5, x6;
2325 51793 : int res ATTRIBUTE_UNUSED;
2326 51793 : x2 = XVECEXP (x1, 0, 1);
2327 51793 : if (GET_CODE (x2) != CLOBBER)
2328 : return -1;
2329 49032 : x3 = XEXP (x2, 0);
2330 49032 : if (GET_CODE (x3) != REG
2331 49032 : || REGNO (x3) != 17
2332 98064 : || GET_MODE (x3) != E_CCmode)
2333 : return -1;
2334 49032 : x4 = XVECEXP (x1, 0, 0);
2335 49032 : x5 = XEXP (x4, 0);
2336 49032 : operands[0] = x5;
2337 49032 : if (!register_operand (operands[0], E_DImode))
2338 : return -1;
2339 49030 : x6 = XEXP (x4, 1);
2340 49030 : if (GET_MODE (x6) != E_DImode)
2341 : return -1;
2342 : return 0;
2343 : }
2344 :
2345 : int
2346 119 : pattern583 (rtx x1)
2347 : {
2348 119 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2349 119 : int res ATTRIBUTE_UNUSED;
2350 119 : switch (GET_MODE (operands[0]))
2351 : {
2352 24 : case E_QImode:
2353 24 : if (!register_operand (operands[0], E_QImode)
2354 24 : || GET_MODE (x1) != E_QImode
2355 48 : || !const_int_operand (operands[1], E_QImode))
2356 0 : return -1;
2357 : return 0;
2358 :
2359 0 : case E_HImode:
2360 0 : if (!register_operand (operands[0], E_HImode)
2361 0 : || GET_MODE (x1) != E_HImode
2362 0 : || !const_int_operand (operands[1], E_HImode))
2363 0 : return -1;
2364 : return 1;
2365 :
2366 42 : case E_SImode:
2367 42 : if (!register_operand (operands[0], E_SImode)
2368 39 : || GET_MODE (x1) != E_SImode
2369 81 : || !const_int_operand (operands[1], E_SImode))
2370 3 : return -1;
2371 : return 2;
2372 :
2373 53 : case E_DImode:
2374 53 : if (!register_operand (operands[0], E_DImode)
2375 53 : || GET_MODE (x1) != E_DImode
2376 106 : || !const_int_operand (operands[1], E_DImode))
2377 0 : return -1;
2378 : return 3;
2379 :
2380 : default:
2381 : return -1;
2382 : }
2383 : }
2384 :
2385 : int
2386 60636 : pattern594 (rtx x1)
2387 : {
2388 60636 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2389 60636 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2390 60636 : int res ATTRIBUTE_UNUSED;
2391 60636 : x2 = XVECEXP (x1, 0, 1);
2392 60636 : if (GET_CODE (x2) != USE)
2393 : return -1;
2394 60634 : x3 = XVECEXP (x1, 0, 2);
2395 60634 : x4 = XEXP (x3, 0);
2396 60634 : if (GET_CODE (x4) != REG
2397 60634 : || REGNO (x4) != 17
2398 121268 : || GET_MODE (x4) != E_CCmode)
2399 : return -1;
2400 60634 : x5 = XVECEXP (x1, 0, 0);
2401 60634 : x6 = XEXP (x5, 0);
2402 60634 : operands[0] = x6;
2403 60634 : x7 = XEXP (x5, 1);
2404 60634 : x8 = XEXP (x7, 0);
2405 60634 : operands[1] = x8;
2406 60634 : x9 = XEXP (x2, 0);
2407 60634 : operands[2] = x9;
2408 60634 : switch (GET_MODE (operands[0]))
2409 : {
2410 258 : case E_HFmode:
2411 258 : return pattern227 (x7,
2412 : E_V8HFmode,
2413 258 : E_HFmode); /* [-1, 0] */
2414 :
2415 23684 : case E_SFmode:
2416 23684 : if (GET_MODE (x7) != E_SFmode)
2417 : return -1;
2418 : return 1;
2419 :
2420 36692 : case E_DFmode:
2421 36692 : if (GET_MODE (x7) != E_DFmode)
2422 : return -1;
2423 : return 2;
2424 :
2425 : default:
2426 : return -1;
2427 : }
2428 : }
2429 :
2430 : int
2431 32573 : pattern602 (rtx x1)
2432 : {
2433 32573 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2434 32573 : rtx x2, x3, x4, x5, x6;
2435 32573 : int res ATTRIBUTE_UNUSED;
2436 32573 : x2 = XVECEXP (x1, 0, 2);
2437 32573 : if (!const_0_to_7_operand (x2, E_SImode))
2438 : return -1;
2439 30797 : x3 = XVECEXP (x1, 0, 0);
2440 30797 : switch (GET_CODE (x3))
2441 : {
2442 28838 : case CONST_INT:
2443 28838 : case CONST_WIDE_INT:
2444 28838 : case CONST_POLY_INT:
2445 28838 : case CONST_FIXED:
2446 28838 : case CONST_DOUBLE:
2447 28838 : case CONST_VECTOR:
2448 28838 : case CONST:
2449 28838 : case REG:
2450 28838 : case SUBREG:
2451 28838 : case MEM:
2452 28838 : case LABEL_REF:
2453 28838 : case SYMBOL_REF:
2454 28838 : case HIGH:
2455 28838 : operands[1] = x3;
2456 28838 : x4 = XVECEXP (x1, 0, 1);
2457 28838 : operands[2] = x4;
2458 28838 : operands[3] = x2;
2459 28838 : switch (GET_MODE (operands[0]))
2460 : {
2461 1081 : case E_DImode:
2462 1081 : return pattern598 (x1); /* [-1, 0] */
2463 :
2464 2332 : case E_SImode:
2465 2332 : res = pattern599 (x1);
2466 2332 : if (res >= 0)
2467 2123 : return res + 1; /* [1, 2] */
2468 : return -1;
2469 :
2470 12729 : case E_HImode:
2471 12729 : res = pattern600 (x1);
2472 12729 : if (res >= 0)
2473 11790 : return res + 3; /* [3, 5] */
2474 : return -1;
2475 :
2476 12301 : case E_QImode:
2477 12301 : res = pattern601 (x1);
2478 12301 : if (res >= 0)
2479 10372 : return res + 6; /* [6, 11] */
2480 : return -1;
2481 :
2482 : default:
2483 : return -1;
2484 : }
2485 :
2486 36 : case US_MINUS:
2487 36 : x5 = XEXP (x3, 0);
2488 36 : operands[1] = x5;
2489 36 : x6 = XEXP (x3, 1);
2490 36 : operands[2] = x6;
2491 36 : x4 = XVECEXP (x1, 0, 1);
2492 36 : operands[3] = x4;
2493 36 : operands[4] = x2;
2494 36 : switch (GET_MODE (operands[0]))
2495 : {
2496 6 : case E_DImode:
2497 6 : if (pattern73 (x1,
2498 : E_V64QImode,
2499 : E_DImode) != 0)
2500 : return -1;
2501 : return 12;
2502 :
2503 12 : case E_HImode:
2504 12 : res = pattern72 (x1);
2505 12 : if (res >= 0)
2506 12 : return res + 13; /* [13, 14] */
2507 : return -1;
2508 :
2509 12 : case E_SImode:
2510 12 : res = pattern306 (x1);
2511 12 : if (res >= 0)
2512 12 : return res + 15; /* [15, 16] */
2513 : return -1;
2514 :
2515 6 : case E_QImode:
2516 6 : if (pattern73 (x1,
2517 : E_V8HImode,
2518 : E_QImode) != 0)
2519 : return -1;
2520 : return 17;
2521 :
2522 : default:
2523 : return -1;
2524 : }
2525 :
2526 : default:
2527 : return -1;
2528 : }
2529 : }
2530 :
2531 : int
2532 1769 : pattern626 (rtx x1, int *pnum_clobbers, machine_mode i1)
2533 : {
2534 1769 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2535 1769 : int res ATTRIBUTE_UNUSED;
2536 1769 : if (pnum_clobbers == NULL
2537 1747 : || !register_operand (operands[0], i1)
2538 1478 : || GET_MODE (x1) != i1
2539 3247 : || !register_operand (operands[1], i1))
2540 1189 : return -1;
2541 : return 0;
2542 : }
2543 :
2544 : int
2545 2267 : pattern632 ()
2546 : {
2547 2267 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2548 2267 : int res ATTRIBUTE_UNUSED;
2549 2267 : switch (GET_MODE (operands[1]))
2550 : {
2551 1131 : case E_V32QImode:
2552 1131 : if (!register_operand (operands[1], E_V32QImode)
2553 1131 : || !nonimmediate_operand (operands[2], E_V32QImode))
2554 0 : return -1;
2555 : return 0;
2556 :
2557 1136 : case E_V32HImode:
2558 1136 : if (!register_operand (operands[1], E_V32HImode)
2559 1136 : || !nonimmediate_operand (operands[2], E_V32HImode))
2560 0 : return -1;
2561 : return 1;
2562 :
2563 : default:
2564 : return -1;
2565 : }
2566 : }
2567 :
2568 : int
2569 786 : pattern640 (rtx x1)
2570 : {
2571 786 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2572 786 : rtx x2, x3, x4, x5;
2573 786 : int res ATTRIBUTE_UNUSED;
2574 786 : x2 = XEXP (x1, 0);
2575 786 : x3 = XEXP (x2, 0);
2576 786 : x4 = XEXP (x3, 1);
2577 786 : operands[2] = x4;
2578 786 : if (!register_operand (operands[2], E_QImode))
2579 : return -1;
2580 700 : x5 = XEXP (x1, 1);
2581 700 : operands[1] = x5;
2582 700 : switch (GET_MODE (operands[0]))
2583 : {
2584 363 : case E_SImode:
2585 363 : return pattern639 (x1,
2586 363 : E_SImode); /* [-1, 0] */
2587 :
2588 313 : case E_DImode:
2589 313 : if (pattern639 (x1,
2590 : E_DImode) != 0)
2591 : return -1;
2592 : return 1;
2593 :
2594 : default:
2595 : return -1;
2596 : }
2597 : }
2598 :
2599 : int
2600 812 : pattern647 (rtx x1, machine_mode i1)
2601 : {
2602 812 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2603 812 : rtx x2;
2604 812 : int res ATTRIBUTE_UNUSED;
2605 812 : if (!register_operand (operands[0], i1)
2606 812 : || GET_MODE (x1) != i1)
2607 : return -1;
2608 761 : x2 = XEXP (x1, 0);
2609 761 : if (GET_MODE (x2) != i1
2610 761 : || !nonimmediate_operand (operands[1], i1)
2611 1509 : || !register_operand (operands[2], i1))
2612 67 : return -1;
2613 : return 0;
2614 : }
2615 :
2616 : int
2617 6092 : pattern653 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
2618 : {
2619 6092 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2620 6092 : rtx x2, x3, x4;
2621 6092 : int res ATTRIBUTE_UNUSED;
2622 6092 : x2 = XEXP (x1, 0);
2623 6092 : x3 = XVECEXP (x2, 0, 0);
2624 6092 : operands[1] = x3;
2625 6092 : x4 = XEXP (x1, 2);
2626 6092 : operands[3] = x4;
2627 6092 : switch (GET_MODE (operands[0]))
2628 : {
2629 2052 : case E_V32HImode:
2630 2052 : return pattern652 (x1,
2631 : E_V32HImode,
2632 : E_SImode,
2633 2052 : i1); /* [-1, 0] */
2634 :
2635 2040 : case E_V16HImode:
2636 2040 : if (pattern652 (x1,
2637 : E_V16HImode,
2638 : E_HImode,
2639 : i2) != 0)
2640 : return -1;
2641 : return 1;
2642 :
2643 2000 : case E_V8HImode:
2644 2000 : if (pattern652 (x1,
2645 : E_V8HImode,
2646 : E_QImode,
2647 : i3) != 0)
2648 : return -1;
2649 : return 2;
2650 :
2651 : default:
2652 : return -1;
2653 : }
2654 : }
2655 :
2656 : int
2657 244 : pattern660 (rtx x1, machine_mode i1)
2658 : {
2659 244 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2660 244 : int res ATTRIBUTE_UNUSED;
2661 244 : if (!register_operand (operands[0], i1)
2662 244 : || GET_MODE (x1) != i1)
2663 : return -1;
2664 212 : switch (GET_MODE (operands[1]))
2665 : {
2666 77 : case E_V8HFmode:
2667 77 : if (!vector_operand (operands[1], E_V8HFmode))
2668 : return -1;
2669 : return 0;
2670 :
2671 101 : case E_V8SFmode:
2672 101 : if (!nonimmediate_operand (operands[1], E_V8SFmode))
2673 : return -1;
2674 : return 1;
2675 :
2676 34 : case E_V8DFmode:
2677 34 : if (!vector_operand (operands[1], E_V8DFmode))
2678 : return -1;
2679 : return 2;
2680 :
2681 : default:
2682 : return -1;
2683 : }
2684 : }
2685 :
2686 : int
2687 1908 : pattern666 (rtx x1, machine_mode i1)
2688 : {
2689 1908 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2690 1908 : rtx x2, x3;
2691 1908 : int res ATTRIBUTE_UNUSED;
2692 1908 : if (!register_operand (operands[0], i1)
2693 1908 : || GET_MODE (x1) != i1)
2694 : return -1;
2695 1844 : x2 = XVECEXP (x1, 0, 0);
2696 1844 : if (GET_MODE (x2) != i1)
2697 : return -1;
2698 1844 : x3 = XEXP (x2, 0);
2699 1844 : if (GET_MODE (x3) != i1
2700 1844 : || !register_operand (operands[1], i1)
2701 3608 : || !nonimmediate_operand (operands[2], i1))
2702 100 : return -1;
2703 : return 0;
2704 : }
2705 :
2706 : int
2707 2643 : pattern671 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
2708 : {
2709 2643 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2710 2643 : rtx x2, x3;
2711 2643 : int res ATTRIBUTE_UNUSED;
2712 2643 : if (!register_operand (operands[0], i2)
2713 2643 : || GET_MODE (x1) != i2)
2714 : return -1;
2715 2575 : x2 = XVECEXP (x1, 0, 0);
2716 2575 : if (GET_MODE (x2) != i2)
2717 : return -1;
2718 2575 : x3 = XEXP (x2, 0);
2719 2575 : if (GET_MODE (x3) != i2
2720 2575 : || !register_operand (operands[1], i3)
2721 2549 : || !nonimm_or_0_operand (operands[2], i2)
2722 5122 : || !register_operand (operands[3], i1))
2723 82 : return -1;
2724 : return 0;
2725 : }
2726 :
2727 : int
2728 133 : pattern678 (rtx x1)
2729 : {
2730 133 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2731 133 : rtx x2, x3, x4, x5, x6, x7, x8;
2732 133 : int res ATTRIBUTE_UNUSED;
2733 133 : x2 = XVECEXP (x1, 0, 2);
2734 133 : x3 = XEXP (x2, 0);
2735 133 : if (maybe_ne (SUBREG_BYTE (x3), 0))
2736 : return -1;
2737 133 : x4 = XEXP (x3, 0);
2738 133 : if (GET_CODE (x4) != NOT)
2739 : return -1;
2740 6 : x5 = XVECEXP (x1, 0, 0);
2741 6 : operands[2] = x5;
2742 6 : x6 = XVECEXP (x1, 0, 1);
2743 6 : operands[1] = x6;
2744 6 : x7 = XEXP (x4, 0);
2745 6 : operands[3] = x7;
2746 6 : if (!register_operand (operands[3], E_VOIDmode))
2747 : return -1;
2748 6 : x8 = XEXP (x2, 1);
2749 6 : operands[4] = x8;
2750 6 : switch (GET_MODE (operands[0]))
2751 : {
2752 3 : case E_V32QImode:
2753 3 : return pattern677 (x1,
2754 3 : E_V32QImode); /* [-1, 0] */
2755 :
2756 3 : case E_V16QImode:
2757 3 : if (pattern677 (x1,
2758 : E_V16QImode) != 0)
2759 : return -1;
2760 : return 1;
2761 :
2762 : default:
2763 : return -1;
2764 : }
2765 : }
2766 :
2767 : int
2768 667 : pattern685 (rtx x1)
2769 : {
2770 667 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2771 667 : rtx x2;
2772 667 : int res ATTRIBUTE_UNUSED;
2773 667 : x2 = XVECEXP (x1, 0, 2);
2774 667 : operands[3] = x2;
2775 667 : switch (GET_MODE (operands[0]))
2776 : {
2777 163 : case E_V32HFmode:
2778 163 : return pattern684 (x1,
2779 163 : E_V32HFmode); /* [-1, 0] */
2780 :
2781 234 : case E_V16HFmode:
2782 234 : if (pattern684 (x1,
2783 : E_V16HFmode) != 0)
2784 : return -1;
2785 : return 1;
2786 :
2787 270 : case E_V8HFmode:
2788 270 : if (pattern684 (x1,
2789 : E_V8HFmode) != 0)
2790 : return -1;
2791 : return 2;
2792 :
2793 : default:
2794 : return -1;
2795 : }
2796 : }
2797 :
2798 : int
2799 8234 : pattern691 (rtx x1)
2800 : {
2801 8234 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2802 8234 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2803 8234 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
2804 8234 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
2805 8234 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
2806 8234 : int res ATTRIBUTE_UNUSED;
2807 8234 : x2 = XVECEXP (x1, 0, 0);
2808 8234 : if (GET_CODE (x2) != CONST_INT)
2809 : return -1;
2810 8234 : x3 = XVECEXP (x1, 0, 1);
2811 8234 : if (GET_CODE (x3) != CONST_INT)
2812 : return -1;
2813 8234 : x4 = XVECEXP (x1, 0, 2);
2814 8234 : if (GET_CODE (x4) != CONST_INT)
2815 : return -1;
2816 8234 : x5 = XVECEXP (x1, 0, 3);
2817 8234 : if (GET_CODE (x5) != CONST_INT)
2818 : return -1;
2819 8234 : x6 = XVECEXP (x1, 0, 4);
2820 8234 : if (GET_CODE (x6) != CONST_INT)
2821 : return -1;
2822 8234 : x7 = XVECEXP (x1, 0, 5);
2823 8234 : if (GET_CODE (x7) != CONST_INT)
2824 : return -1;
2825 8234 : x8 = XVECEXP (x1, 0, 6);
2826 8234 : if (GET_CODE (x8) != CONST_INT)
2827 : return -1;
2828 8234 : x9 = XVECEXP (x1, 0, 7);
2829 8234 : if (GET_CODE (x9) != CONST_INT)
2830 : return -1;
2831 8234 : x10 = XVECEXP (x1, 0, 8);
2832 8234 : if (GET_CODE (x10) != CONST_INT)
2833 : return -1;
2834 8234 : x11 = XVECEXP (x1, 0, 9);
2835 8234 : if (GET_CODE (x11) != CONST_INT)
2836 : return -1;
2837 8234 : x12 = XVECEXP (x1, 0, 10);
2838 8234 : if (GET_CODE (x12) != CONST_INT)
2839 : return -1;
2840 8234 : x13 = XVECEXP (x1, 0, 11);
2841 8234 : if (GET_CODE (x13) != CONST_INT)
2842 : return -1;
2843 8234 : x14 = XVECEXP (x1, 0, 12);
2844 8234 : if (GET_CODE (x14) != CONST_INT)
2845 : return -1;
2846 8234 : x15 = XVECEXP (x1, 0, 13);
2847 8234 : if (GET_CODE (x15) != CONST_INT)
2848 : return -1;
2849 8234 : x16 = XVECEXP (x1, 0, 14);
2850 8234 : if (GET_CODE (x16) != CONST_INT)
2851 : return -1;
2852 8234 : x17 = XVECEXP (x1, 0, 15);
2853 8234 : if (GET_CODE (x17) != CONST_INT)
2854 : return -1;
2855 8234 : x18 = XVECEXP (x1, 0, 16);
2856 8234 : if (GET_CODE (x18) != CONST_INT)
2857 : return -1;
2858 8234 : x19 = XVECEXP (x1, 0, 17);
2859 8234 : if (GET_CODE (x19) != CONST_INT)
2860 : return -1;
2861 8234 : x20 = XVECEXP (x1, 0, 18);
2862 8234 : if (GET_CODE (x20) != CONST_INT)
2863 : return -1;
2864 8234 : x21 = XVECEXP (x1, 0, 19);
2865 8234 : if (GET_CODE (x21) != CONST_INT)
2866 : return -1;
2867 8234 : x22 = XVECEXP (x1, 0, 20);
2868 8234 : if (GET_CODE (x22) != CONST_INT)
2869 : return -1;
2870 8234 : x23 = XVECEXP (x1, 0, 21);
2871 8234 : if (GET_CODE (x23) != CONST_INT)
2872 : return -1;
2873 8234 : x24 = XVECEXP (x1, 0, 22);
2874 8234 : if (GET_CODE (x24) != CONST_INT)
2875 : return -1;
2876 8234 : x25 = XVECEXP (x1, 0, 23);
2877 8234 : if (GET_CODE (x25) != CONST_INT)
2878 : return -1;
2879 8234 : x26 = XVECEXP (x1, 0, 24);
2880 8234 : if (GET_CODE (x26) != CONST_INT)
2881 : return -1;
2882 8234 : x27 = XVECEXP (x1, 0, 25);
2883 8234 : if (GET_CODE (x27) != CONST_INT)
2884 : return -1;
2885 8234 : x28 = XVECEXP (x1, 0, 26);
2886 8234 : if (GET_CODE (x28) != CONST_INT)
2887 : return -1;
2888 8234 : x29 = XVECEXP (x1, 0, 27);
2889 8234 : if (GET_CODE (x29) != CONST_INT)
2890 : return -1;
2891 8234 : x30 = XVECEXP (x1, 0, 28);
2892 8234 : if (GET_CODE (x30) != CONST_INT)
2893 : return -1;
2894 8234 : x31 = XVECEXP (x1, 0, 29);
2895 8234 : if (GET_CODE (x31) != CONST_INT)
2896 : return -1;
2897 8234 : x32 = XVECEXP (x1, 0, 30);
2898 8234 : if (GET_CODE (x32) != CONST_INT)
2899 : return -1;
2900 8234 : x33 = XVECEXP (x1, 0, 31);
2901 8234 : if (GET_CODE (x33) != CONST_INT)
2902 0 : return -1;
2903 : return 0;
2904 : }
2905 :
2906 : int
2907 0 : pattern727 (rtx x1)
2908 : {
2909 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2910 0 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2911 0 : int res ATTRIBUTE_UNUSED;
2912 0 : x2 = XVECEXP (x1, 0, 2);
2913 0 : x3 = XEXP (x2, 0);
2914 0 : if (GET_CODE (x3) != REG
2915 0 : || REGNO (x3) != 17
2916 0 : || GET_MODE (x3) != E_CCmode)
2917 : return -1;
2918 0 : x4 = XVECEXP (x1, 0, 0);
2919 0 : x5 = XEXP (x4, 0);
2920 0 : operands[0] = x5;
2921 0 : if (!register_operand (operands[0], E_SImode))
2922 : return -1;
2923 0 : x6 = XEXP (x4, 1);
2924 0 : x7 = XEXP (x6, 0);
2925 0 : operands[1] = x7;
2926 0 : if (!nonimmediate_operand (operands[1], E_SImode))
2927 : return -1;
2928 0 : x8 = XVECEXP (x1, 0, 1);
2929 0 : x9 = XEXP (x8, 0);
2930 0 : operands[2] = x9;
2931 0 : if (!scratch_operand (operands[2], E_SImode))
2932 : return -1;
2933 : return 0;
2934 : }
2935 :
2936 : int
2937 124644 : pattern733 (rtx x1, machine_mode i1, machine_mode i2)
2938 : {
2939 124644 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2940 124644 : rtx x2, x3, x4, x5, x6, x7;
2941 124644 : int res ATTRIBUTE_UNUSED;
2942 124644 : x2 = XVECEXP (x1, 0, 0);
2943 124644 : x3 = XEXP (x2, 1);
2944 124644 : x4 = XEXP (x3, 1);
2945 124644 : if (GET_MODE (x4) != i2)
2946 : return -1;
2947 124644 : x5 = XEXP (x4, 0);
2948 124644 : if (GET_MODE (x5) != i1
2949 124644 : || !nonimmediate_operand (operands[0], i1))
2950 0 : return -1;
2951 124644 : x6 = XVECEXP (x1, 0, 1);
2952 124644 : x7 = XEXP (x6, 1);
2953 124644 : if (GET_MODE (x7) != i1)
2954 : return -1;
2955 : return 0;
2956 : }
2957 :
2958 : int
2959 133611 : pattern741 (rtx x1, machine_mode i1)
2960 : {
2961 133611 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2962 133611 : rtx x2;
2963 133611 : int res ATTRIBUTE_UNUSED;
2964 133611 : if (peep2_current_count < 2
2965 133611 : || peep2_current_count < 3
2966 123284 : || !general_reg_operand (operands[0], i1)
2967 227776 : || !general_reg_operand (operands[1], i1))
2968 44893 : return -1;
2969 88718 : x2 = PATTERN (peep2_next_insn (2));
2970 88718 : if (GET_CODE (x2) != SET)
2971 : return -1;
2972 60014 : switch (GET_CODE (x1))
2973 : {
2974 : case SET:
2975 : return 0;
2976 :
2977 26382 : case PARALLEL:
2978 26382 : return 1;
2979 :
2980 : default:
2981 : return -1;
2982 : }
2983 : }
2984 :
2985 : int
2986 3848064 : pattern745 (rtx x1, machine_mode i1)
2987 : {
2988 3848064 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2989 3848064 : rtx x2, x3, x4, x5, x6;
2990 3848064 : int res ATTRIBUTE_UNUSED;
2991 3848064 : if (!register_operand (operands[0], i1)
2992 3848064 : || GET_CODE (x1) != SET)
2993 : return -1;
2994 3044918 : x2 = XEXP (x1, 1);
2995 3044918 : if (GET_CODE (x2) != PLUS
2996 265896 : || GET_MODE (x2) != i1)
2997 : return -1;
2998 258706 : x3 = XEXP (x1, 0);
2999 258706 : operands[3] = x3;
3000 258706 : if (!register_operand (operands[3], i1))
3001 : return -1;
3002 258706 : x4 = XEXP (x2, 0);
3003 258706 : operands[4] = x4;
3004 258706 : if (!register_operand (operands[4], i1))
3005 : return -1;
3006 211305 : x5 = XEXP (x2, 1);
3007 211305 : operands[2] = x5;
3008 211305 : if (!x86_64_nonmemory_operand (operands[2], i1))
3009 : return -1;
3010 202552 : x6 = PATTERN (peep2_next_insn (2));
3011 202552 : return pattern743 (x6,
3012 202552 : i1); /* [-1, 0] */
3013 : }
3014 :
3015 : int
3016 16631 : pattern757 (machine_mode i1)
3017 : {
3018 16631 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3019 16631 : int res ATTRIBUTE_UNUSED;
3020 16631 : if (!register_operand (operands[0], i1)
3021 16508 : || !ix86_comparison_uns_operator (operands[1], i1)
3022 16375 : || !register_operand (operands[2], i1)
3023 27575 : || !register_operand (operands[3], i1))
3024 16559 : return -1;
3025 : return 0;
3026 : }
3027 :
3028 : int
3029 469 : pattern762 (rtx x1, machine_mode i1)
3030 : {
3031 469 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3032 469 : rtx x2, x3;
3033 469 : int res ATTRIBUTE_UNUSED;
3034 469 : if (!nonimmediate_operand (operands[0], i1)
3035 469 : || GET_MODE (x1) != i1)
3036 : return -1;
3037 469 : x2 = XEXP (x1, 0);
3038 469 : if (GET_MODE (x2) != i1
3039 469 : || !nonimmediate_operand (operands[1], i1))
3040 279 : return -1;
3041 190 : x3 = XEXP (x2, 1);
3042 190 : if (GET_MODE (x3) != i1
3043 190 : || !x86_64_immediate_operand (operands[2], i1))
3044 58 : return -1;
3045 : return 0;
3046 : }
3047 :
3048 : int
3049 54095 : pattern770 (rtx x1)
3050 : {
3051 54095 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3052 54095 : rtx x2, x3;
3053 54095 : int res ATTRIBUTE_UNUSED;
3054 54095 : x2 = XEXP (x1, 1);
3055 54095 : switch (GET_CODE (x2))
3056 : {
3057 12354 : case REG:
3058 12354 : case SUBREG:
3059 12354 : case MEM:
3060 12354 : if (!rtx_equal_p (x2, operands[1]))
3061 : return -1;
3062 4051 : switch (GET_MODE (operands[0]))
3063 : {
3064 1529 : case E_SImode:
3065 1529 : return pattern768 (x1,
3066 1529 : E_SImode); /* [-1, 0] */
3067 :
3068 2001 : case E_DImode:
3069 2001 : if (pattern768 (x1,
3070 : E_DImode) != 0)
3071 : return -1;
3072 : return 1;
3073 :
3074 : default:
3075 : return -1;
3076 : }
3077 :
3078 99 : case NOT:
3079 99 : x3 = XEXP (x2, 0);
3080 99 : if (!rtx_equal_p (x3, operands[1]))
3081 : return -1;
3082 84 : switch (GET_MODE (operands[0]))
3083 : {
3084 0 : case E_SImode:
3085 0 : if (pattern769 (x1,
3086 : E_SImode) != 0)
3087 : return -1;
3088 : return 2;
3089 :
3090 84 : case E_DImode:
3091 84 : if (pattern769 (x1,
3092 : E_DImode) != 0)
3093 : return -1;
3094 : return 3;
3095 :
3096 : default:
3097 : return -1;
3098 : }
3099 :
3100 : default:
3101 : return -1;
3102 : }
3103 : }
3104 :
3105 : int
3106 213 : pattern785 (rtx x1, machine_mode i1)
3107 : {
3108 213 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3109 213 : int res ATTRIBUTE_UNUSED;
3110 213 : if (!register_operand (operands[0], i1)
3111 213 : || GET_MODE (x1) != i1)
3112 : return -1;
3113 182 : switch (GET_MODE (operands[1]))
3114 : {
3115 77 : case E_V8HFmode:
3116 77 : if (!vector_operand (operands[1], E_V8HFmode))
3117 : return -1;
3118 : return 0;
3119 :
3120 73 : case E_V8SFmode:
3121 73 : if (!nonimmediate_operand (operands[1], E_V8SFmode))
3122 : return -1;
3123 : return 1;
3124 :
3125 32 : case E_V8DFmode:
3126 32 : if (!nonimmediate_operand (operands[1], E_V8DFmode))
3127 : return -1;
3128 : return 2;
3129 :
3130 : default:
3131 : return -1;
3132 : }
3133 : }
3134 :
3135 : int
3136 21011 : pattern793 (rtx x1, machine_mode i1)
3137 : {
3138 21011 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3139 21011 : int res ATTRIBUTE_UNUSED;
3140 21011 : if (!register_operand (operands[0], i1)
3141 20961 : || GET_MODE (x1) != i1
3142 20961 : || !nonimmediate_operand (operands[1], i1)
3143 41096 : || !register_operand (operands[2], i1))
3144 3056 : return -1;
3145 : return 0;
3146 : }
3147 :
3148 : int
3149 4181 : pattern800 (rtx x1)
3150 : {
3151 4181 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3152 4181 : rtx x2;
3153 4181 : int res ATTRIBUTE_UNUSED;
3154 4181 : x2 = XVECEXP (x1, 0, 1);
3155 4181 : if (!rtx_equal_p (x2, operands[0]))
3156 : return -1;
3157 3128 : switch (GET_MODE (operands[0]))
3158 : {
3159 146 : case E_V64QImode:
3160 146 : return pattern799 (x1,
3161 : E_V64QImode,
3162 146 : E_DImode); /* [-1, 0] */
3163 :
3164 62 : case E_V32QImode:
3165 62 : if (pattern799 (x1,
3166 : E_V32QImode,
3167 : E_SImode) != 0)
3168 : return -1;
3169 : return 1;
3170 :
3171 102 : case E_V16QImode:
3172 102 : if (pattern799 (x1,
3173 : E_V16QImode,
3174 : E_HImode) != 0)
3175 : return -1;
3176 : return 2;
3177 :
3178 225 : case E_V32HImode:
3179 225 : if (pattern799 (x1,
3180 : E_V32HImode,
3181 : E_SImode) != 0)
3182 : return -1;
3183 : return 3;
3184 :
3185 98 : case E_V16HImode:
3186 98 : if (pattern799 (x1,
3187 : E_V16HImode,
3188 : E_HImode) != 0)
3189 : return -1;
3190 : return 4;
3191 :
3192 98 : case E_V8HImode:
3193 98 : if (pattern799 (x1,
3194 : E_V8HImode,
3195 : E_QImode) != 0)
3196 : return -1;
3197 : return 5;
3198 :
3199 191 : case E_V16SImode:
3200 191 : if (pattern799 (x1,
3201 : E_V16SImode,
3202 : E_HImode) != 0)
3203 : return -1;
3204 : return 6;
3205 :
3206 144 : case E_V8SImode:
3207 144 : if (pattern799 (x1,
3208 : E_V8SImode,
3209 : E_QImode) != 0)
3210 : return -1;
3211 : return 7;
3212 :
3213 139 : case E_V4SImode:
3214 139 : if (pattern799 (x1,
3215 : E_V4SImode,
3216 : E_QImode) != 0)
3217 : return -1;
3218 : return 8;
3219 :
3220 547 : case E_V8DImode:
3221 547 : if (pattern799 (x1,
3222 : E_V8DImode,
3223 : E_QImode) != 0)
3224 : return -1;
3225 : return 9;
3226 :
3227 125 : case E_V4DImode:
3228 125 : if (pattern799 (x1,
3229 : E_V4DImode,
3230 : E_QImode) != 0)
3231 : return -1;
3232 : return 10;
3233 :
3234 140 : case E_V2DImode:
3235 140 : if (pattern799 (x1,
3236 : E_V2DImode,
3237 : E_QImode) != 0)
3238 : return -1;
3239 : return 11;
3240 :
3241 81 : case E_V32HFmode:
3242 81 : if (pattern799 (x1,
3243 : E_V32HFmode,
3244 : E_SImode) != 0)
3245 : return -1;
3246 : return 12;
3247 :
3248 129 : case E_V16HFmode:
3249 129 : if (pattern799 (x1,
3250 : E_V16HFmode,
3251 : E_HImode) != 0)
3252 : return -1;
3253 : return 13;
3254 :
3255 81 : case E_V8HFmode:
3256 81 : if (pattern799 (x1,
3257 : E_V8HFmode,
3258 : E_QImode) != 0)
3259 : return -1;
3260 : return 14;
3261 :
3262 0 : case E_V32BFmode:
3263 0 : if (pattern799 (x1,
3264 : E_V32BFmode,
3265 : E_SImode) != 0)
3266 : return -1;
3267 : return 15;
3268 :
3269 0 : case E_V16BFmode:
3270 0 : if (pattern799 (x1,
3271 : E_V16BFmode,
3272 : E_HImode) != 0)
3273 : return -1;
3274 : return 16;
3275 :
3276 0 : case E_V8BFmode:
3277 0 : if (pattern799 (x1,
3278 : E_V8BFmode,
3279 : E_QImode) != 0)
3280 : return -1;
3281 : return 17;
3282 :
3283 110 : case E_V16SFmode:
3284 110 : if (pattern799 (x1,
3285 : E_V16SFmode,
3286 : E_HImode) != 0)
3287 : return -1;
3288 : return 18;
3289 :
3290 146 : case E_V8SFmode:
3291 146 : if (pattern799 (x1,
3292 : E_V8SFmode,
3293 : E_QImode) != 0)
3294 : return -1;
3295 : return 19;
3296 :
3297 122 : case E_V4SFmode:
3298 122 : if (pattern799 (x1,
3299 : E_V4SFmode,
3300 : E_QImode) != 0)
3301 : return -1;
3302 : return 20;
3303 :
3304 161 : case E_V8DFmode:
3305 161 : if (pattern799 (x1,
3306 : E_V8DFmode,
3307 : E_QImode) != 0)
3308 : return -1;
3309 : return 21;
3310 :
3311 158 : case E_V4DFmode:
3312 158 : if (pattern799 (x1,
3313 : E_V4DFmode,
3314 : E_QImode) != 0)
3315 : return -1;
3316 : return 22;
3317 :
3318 123 : case E_V2DFmode:
3319 123 : if (pattern799 (x1,
3320 : E_V2DFmode,
3321 : E_QImode) != 0)
3322 : return -1;
3323 : return 23;
3324 :
3325 : default:
3326 : return -1;
3327 : }
3328 : }
3329 :
3330 : int
3331 86 : pattern842 (rtx x1, int *pnum_clobbers)
3332 : {
3333 86 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3334 86 : rtx x2, x3;
3335 86 : int res ATTRIBUTE_UNUSED;
3336 86 : x2 = XVECEXP (x1, 0, 1);
3337 86 : if (GET_CODE (x2) != USE)
3338 : return -1;
3339 86 : x3 = XVECEXP (x1, 0, 2);
3340 86 : if (GET_CODE (x3) != USE
3341 86 : || !register_operand (operands[1], E_XFmode))
3342 58 : return -1;
3343 28 : return pattern841 (x1, pnum_clobbers); /* [-1, 2] */
3344 : }
3345 :
3346 : int
3347 5892068 : pattern847 (rtx x1, machine_mode i1)
3348 : {
3349 5892068 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3350 5892068 : int res ATTRIBUTE_UNUSED;
3351 5892068 : if (!register_operand (operands[0], i1)
3352 5889352 : || GET_MODE (x1) != i1
3353 5889352 : || !register_operand (operands[1], i1)
3354 11777544 : || !x86_64_nonmemory_operand (operands[2], i1))
3355 161770 : return -1;
3356 : return 0;
3357 : }
3358 :
3359 : int
3360 5738 : pattern851 (rtx x1)
3361 : {
3362 5738 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3363 5738 : rtx x2, x3, x4, x5;
3364 5738 : int res ATTRIBUTE_UNUSED;
3365 5738 : x2 = XVECEXP (x1, 0, 1);
3366 5738 : x3 = XEXP (x2, 0);
3367 5738 : operands[2] = x3;
3368 5738 : switch (GET_MODE (operands[0]))
3369 : {
3370 164 : case E_V2SFmode:
3371 164 : x4 = XVECEXP (x1, 0, 0);
3372 164 : x5 = XEXP (x4, 1);
3373 164 : return pattern715 (x5); /* [-1, 0] */
3374 :
3375 4 : case E_V2BFmode:
3376 4 : x4 = XVECEXP (x1, 0, 0);
3377 4 : x5 = XEXP (x4, 1);
3378 4 : if (pattern716 (x5,
3379 : E_V2BFmode) != 0)
3380 : return -1;
3381 : return 1;
3382 :
3383 4 : case E_V4BFmode:
3384 4 : x4 = XVECEXP (x1, 0, 0);
3385 4 : x5 = XEXP (x4, 1);
3386 4 : if (pattern716 (x5,
3387 : E_V4BFmode) != 0)
3388 : return -1;
3389 : return 2;
3390 :
3391 8 : case E_V2HFmode:
3392 8 : x4 = XVECEXP (x1, 0, 0);
3393 8 : x5 = XEXP (x4, 1);
3394 8 : if (pattern716 (x5,
3395 : E_V2HFmode) != 0)
3396 : return -1;
3397 : return 3;
3398 :
3399 6 : case E_V4HFmode:
3400 6 : x4 = XVECEXP (x1, 0, 0);
3401 6 : x5 = XEXP (x4, 1);
3402 6 : if (pattern716 (x5,
3403 : E_V4HFmode) != 0)
3404 : return -1;
3405 : return 4;
3406 :
3407 4 : case E_V32BFmode:
3408 4 : x4 = XVECEXP (x1, 0, 0);
3409 4 : x5 = XEXP (x4, 1);
3410 4 : if (pattern714 (x5,
3411 : E_V32BFmode) != 0)
3412 : return -1;
3413 : return 5;
3414 :
3415 4 : case E_V16BFmode:
3416 4 : x4 = XVECEXP (x1, 0, 0);
3417 4 : x5 = XEXP (x4, 1);
3418 4 : if (pattern714 (x5,
3419 : E_V16BFmode) != 0)
3420 : return -1;
3421 : return 6;
3422 :
3423 4 : case E_V8BFmode:
3424 4 : x4 = XVECEXP (x1, 0, 0);
3425 4 : x5 = XEXP (x4, 1);
3426 4 : if (pattern714 (x5,
3427 : E_V8BFmode) != 0)
3428 : return -1;
3429 : return 7;
3430 :
3431 14 : case E_V32HFmode:
3432 14 : x4 = XVECEXP (x1, 0, 0);
3433 14 : x5 = XEXP (x4, 1);
3434 14 : if (pattern714 (x5,
3435 : E_V32HFmode) != 0)
3436 : return -1;
3437 : return 8;
3438 :
3439 10 : case E_V16HFmode:
3440 10 : x4 = XVECEXP (x1, 0, 0);
3441 10 : x5 = XEXP (x4, 1);
3442 10 : if (pattern714 (x5,
3443 : E_V16HFmode) != 0)
3444 : return -1;
3445 : return 9;
3446 :
3447 157 : case E_V8HFmode:
3448 157 : x4 = XVECEXP (x1, 0, 0);
3449 157 : x5 = XEXP (x4, 1);
3450 157 : if (pattern714 (x5,
3451 : E_V8HFmode) != 0)
3452 : return -1;
3453 : return 10;
3454 :
3455 66 : case E_V16SFmode:
3456 66 : x4 = XVECEXP (x1, 0, 0);
3457 66 : x5 = XEXP (x4, 1);
3458 66 : if (pattern714 (x5,
3459 : E_V16SFmode) != 0)
3460 : return -1;
3461 : return 11;
3462 :
3463 536 : case E_V8SFmode:
3464 536 : x4 = XVECEXP (x1, 0, 0);
3465 536 : x5 = XEXP (x4, 1);
3466 536 : if (pattern714 (x5,
3467 : E_V8SFmode) != 0)
3468 : return -1;
3469 : return 12;
3470 :
3471 714 : case E_V4SFmode:
3472 714 : x4 = XVECEXP (x1, 0, 0);
3473 714 : x5 = XEXP (x4, 1);
3474 714 : if (pattern714 (x5,
3475 : E_V4SFmode) != 0)
3476 : return -1;
3477 : return 13;
3478 :
3479 42 : case E_V8DFmode:
3480 42 : x4 = XVECEXP (x1, 0, 0);
3481 42 : x5 = XEXP (x4, 1);
3482 42 : if (pattern714 (x5,
3483 : E_V8DFmode) != 0)
3484 : return -1;
3485 : return 14;
3486 :
3487 1050 : case E_V4DFmode:
3488 1050 : x4 = XVECEXP (x1, 0, 0);
3489 1050 : x5 = XEXP (x4, 1);
3490 1050 : if (pattern714 (x5,
3491 : E_V4DFmode) != 0)
3492 : return -1;
3493 : return 15;
3494 :
3495 616 : case E_V2DFmode:
3496 616 : x4 = XVECEXP (x1, 0, 0);
3497 616 : x5 = XEXP (x4, 1);
3498 616 : if (pattern714 (x5,
3499 : E_V2DFmode) != 0)
3500 : return -1;
3501 : return 16;
3502 :
3503 : default:
3504 : return -1;
3505 : }
3506 : }
3507 :
3508 : int
3509 21494 : pattern882 (rtx x1, machine_mode i1)
3510 : {
3511 21494 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3512 21494 : int res ATTRIBUTE_UNUSED;
3513 21494 : if (!register_operand (operands[0], i1)
3514 21102 : || GET_MODE (x1) != i1
3515 21102 : || !bcst_vector_operand (operands[1], i1)
3516 21006 : || !bcst_vector_operand (operands[2], i1)
3517 42409 : || !bcst_vector_operand (operands[3], i1))
3518 601 : return -1;
3519 : return 0;
3520 : }
3521 :
3522 : int
3523 8 : pattern888 (rtx x1)
3524 : {
3525 8 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3526 8 : rtx x2, x3, x4;
3527 8 : int res ATTRIBUTE_UNUSED;
3528 8 : if (GET_CODE (x1) != VEC_SELECT)
3529 : return -1;
3530 8 : x2 = XEXP (x1, 1);
3531 8 : if (GET_CODE (x2) != PARALLEL
3532 8 : || XVECLEN (x2, 0) != 1)
3533 : return -1;
3534 8 : x3 = XVECEXP (x2, 0, 0);
3535 8 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3536 : return -1;
3537 8 : x4 = XEXP (x1, 0);
3538 8 : operands[1] = x4;
3539 8 : switch (GET_MODE (x1))
3540 : {
3541 4 : case E_DFmode:
3542 4 : if (!nonimmediate_operand (operands[1], E_V2DFmode))
3543 : return -1;
3544 : return 0;
3545 :
3546 4 : case E_SFmode:
3547 4 : if (!nonimmediate_operand (operands[1], E_V4SFmode))
3548 : return -1;
3549 : return 1;
3550 :
3551 : default:
3552 : return -1;
3553 : }
3554 : }
3555 :
3556 : int
3557 5670 : pattern899 (rtx x1)
3558 : {
3559 5670 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3560 5670 : rtx x2, x3, x4;
3561 5670 : int res ATTRIBUTE_UNUSED;
3562 5670 : x2 = XVECEXP (x1, 0, 0);
3563 5670 : x3 = XEXP (x2, 1);
3564 5670 : operands[1] = x3;
3565 5670 : x4 = XEXP (x2, 0);
3566 5670 : if (!rtx_equal_p (x4, operands[0]))
3567 : return -1;
3568 3555 : switch (GET_MODE (operands[0]))
3569 : {
3570 2397 : case E_SImode:
3571 2397 : return pattern876 (x1,
3572 2397 : E_SImode); /* [-1, 0] */
3573 :
3574 614 : case E_DImode:
3575 614 : if (pattern876 (x1,
3576 : E_DImode) != 0)
3577 : return -1;
3578 : return 1;
3579 :
3580 : default:
3581 : return -1;
3582 : }
3583 : }
3584 :
3585 : int
3586 1934 : pattern908 (rtx x1, machine_mode i1)
3587 : {
3588 1934 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3589 1934 : rtx x2, x3;
3590 1934 : int res ATTRIBUTE_UNUSED;
3591 1934 : if (!register_operand (operands[0], i1)
3592 1934 : || GET_MODE (x1) != i1)
3593 : return -1;
3594 1699 : x2 = XEXP (x1, 0);
3595 1699 : operands[2] = x2;
3596 1699 : if (!register_operand (operands[2], i1))
3597 : return -1;
3598 1480 : x3 = XEXP (x1, 1);
3599 1480 : operands[1] = x3;
3600 1480 : if (!reg_or_0_operand (operands[1], i1))
3601 : return -1;
3602 : return 0;
3603 : }
3604 :
3605 : int
3606 388 : pattern918 (rtx x1, int i1, machine_mode i2)
3607 : {
3608 388 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3609 388 : rtx x2, x3;
3610 388 : int res ATTRIBUTE_UNUSED;
3611 388 : if (GET_CODE (x1) != VEC_SELECT
3612 388 : || GET_MODE (x1) != i2)
3613 : return -1;
3614 388 : x2 = XEXP (x1, 1);
3615 388 : if (GET_CODE (x2) != PARALLEL
3616 388 : || XVECLEN (x2, 0) != i1)
3617 : return -1;
3618 388 : x3 = XVECEXP (x2, 0, 0);
3619 388 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3620 0 : return -1;
3621 : return 0;
3622 : }
3623 :
3624 : int
3625 2096 : pattern921 (rtx x1, machine_mode i1, machine_mode i2)
3626 : {
3627 2096 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3628 2096 : rtx x2, x3;
3629 2096 : int res ATTRIBUTE_UNUSED;
3630 2096 : if (!register_operand (operands[0], i1)
3631 2096 : || GET_MODE (x1) != i1)
3632 : return -1;
3633 2036 : x2 = XVECEXP (x1, 0, 0);
3634 2036 : if (GET_MODE (x2) != i1)
3635 : return -1;
3636 2036 : x3 = XEXP (x2, 0);
3637 2036 : if (GET_MODE (x3) != i1
3638 2036 : || !register_operand (operands[1], i1)
3639 2016 : || !register_operand (operands[2], i1)
3640 2000 : || !nonimm_or_0_operand (operands[3], i1)
3641 4036 : || !register_operand (operands[4], i2))
3642 36 : return -1;
3643 : return 0;
3644 : }
3645 :
3646 : int
3647 1158 : pattern931 (rtx x1)
3648 : {
3649 1158 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3650 1158 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
3651 1158 : rtx x10, x11, x12, x13, x14, x15, x16;
3652 1158 : int res ATTRIBUTE_UNUSED;
3653 1158 : x2 = XEXP (x1, 0);
3654 1158 : x3 = XEXP (x2, 0);
3655 1158 : if (GET_MODE (x3) != E_V8QImode)
3656 : return -1;
3657 1158 : x4 = XEXP (x2, 1);
3658 1158 : if (GET_CODE (x4) != VEC_SELECT
3659 956 : || GET_MODE (x4) != E_V8QImode)
3660 : return -1;
3661 956 : x5 = XEXP (x4, 1);
3662 956 : if (GET_CODE (x5) != PARALLEL
3663 956 : || XVECLEN (x5, 0) != 8)
3664 : return -1;
3665 956 : x6 = XVECEXP (x5, 0, 0);
3666 956 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3667 : return -1;
3668 956 : x7 = XVECEXP (x5, 0, 1);
3669 956 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
3670 : return -1;
3671 956 : x8 = XVECEXP (x5, 0, 2);
3672 956 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
3673 : return -1;
3674 956 : x9 = XVECEXP (x5, 0, 3);
3675 956 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
3676 : return -1;
3677 956 : x10 = XVECEXP (x5, 0, 4);
3678 956 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
3679 : return -1;
3680 956 : x11 = XVECEXP (x5, 0, 5);
3681 956 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
3682 : return -1;
3683 956 : x12 = XVECEXP (x5, 0, 6);
3684 956 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
3685 : return -1;
3686 956 : x13 = XVECEXP (x5, 0, 7);
3687 956 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
3688 956 : || !register_operand (operands[0], E_V16QImode)
3689 948 : || GET_MODE (x1) != E_V16QImode
3690 948 : || GET_MODE (x2) != E_V8QImode
3691 1904 : || !nonimmediate_operand (operands[1], E_V8HFmode))
3692 80 : return -1;
3693 876 : x14 = XEXP (x4, 0);
3694 876 : operands[2] = x14;
3695 876 : if (!nonimm_or_0_operand (operands[2], E_V16QImode))
3696 : return -1;
3697 876 : x15 = XEXP (x2, 2);
3698 876 : operands[3] = x15;
3699 876 : x16 = XEXP (x1, 1);
3700 876 : operands[4] = x16;
3701 876 : if (!const0_operand (operands[4], E_V8QImode))
3702 : return -1;
3703 : return 0;
3704 : }
3705 :
3706 : int
3707 28 : pattern950 (rtx x1)
3708 : {
3709 28 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3710 28 : rtx x2, x3, x4, x5;
3711 28 : int res ATTRIBUTE_UNUSED;
3712 28 : x2 = XVECEXP (x1, 0, 1);
3713 28 : x3 = XEXP (x2, 0);
3714 28 : operands[2] = x3;
3715 28 : if (!memory_operand (operands[2], E_DImode))
3716 : return -1;
3717 28 : x4 = XVECEXP (x1, 0, 0);
3718 28 : x5 = XEXP (x4, 1);
3719 28 : return pattern391 (x5); /* [-1, 2] */
3720 : }
3721 :
3722 : int
3723 283 : pattern955 (rtx x1)
3724 : {
3725 283 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3726 283 : rtx x2, x3, x4, x5;
3727 283 : int res ATTRIBUTE_UNUSED;
3728 283 : x2 = XEXP (x1, 0);
3729 283 : x3 = XEXP (x2, 1);
3730 283 : x4 = XEXP (x3, 1);
3731 283 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3732 : return -1;
3733 277 : x5 = XEXP (x3, 0);
3734 277 : operands[3] = x5;
3735 277 : if (!int_nonimmediate_operand (operands[3], E_VOIDmode))
3736 : return -1;
3737 271 : switch (GET_MODE (operands[0]))
3738 : {
3739 0 : case E_QImode:
3740 0 : return pattern953 (x1,
3741 0 : E_QImode); /* [-1, 0] */
3742 :
3743 0 : case E_HImode:
3744 0 : if (pattern953 (x1,
3745 : E_HImode) != 0)
3746 : return -1;
3747 : return 1;
3748 :
3749 189 : case E_SImode:
3750 189 : if (pattern954 (x1,
3751 : E_SImode) != 0)
3752 : return -1;
3753 : return 2;
3754 :
3755 82 : case E_DImode:
3756 82 : if (pattern954 (x1,
3757 : E_DImode) != 0)
3758 : return -1;
3759 : return 3;
3760 :
3761 : default:
3762 : return -1;
3763 : }
3764 : }
3765 :
3766 : int
3767 117 : pattern968 (rtx x1, machine_mode i1)
3768 : {
3769 117 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3770 117 : rtx x2;
3771 117 : int res ATTRIBUTE_UNUSED;
3772 117 : if (!register_operand (operands[0], i1)
3773 117 : || GET_MODE (x1) != i1)
3774 : return -1;
3775 93 : x2 = XEXP (x1, 0);
3776 93 : if (GET_MODE (x2) != i1
3777 93 : || !vector_operand (operands[1], i1)
3778 69 : || !vector_operand (operands[2], i1)
3779 150 : || !const0_operand (operands[3], i1))
3780 69 : return -1;
3781 : return 0;
3782 : }
3783 :
3784 : int
3785 144782 : pattern976 (rtx x1)
3786 : {
3787 144782 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3788 144782 : int res ATTRIBUTE_UNUSED;
3789 144782 : switch (GET_MODE (operands[0]))
3790 : {
3791 63283 : case E_QImode:
3792 63283 : if (!register_operand (operands[0], E_QImode)
3793 63283 : || GET_MODE (x1) != E_QImode)
3794 : return -1;
3795 : return 0;
3796 :
3797 59966 : case E_HImode:
3798 59966 : if (!register_operand (operands[0], E_HImode)
3799 59966 : || GET_MODE (x1) != E_HImode)
3800 : return -1;
3801 : return 1;
3802 :
3803 : default:
3804 : return -1;
3805 : }
3806 : }
3807 :
3808 : int
3809 7924 : pattern979 (rtx x1, machine_mode i1)
3810 : {
3811 7924 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3812 7924 : int res ATTRIBUTE_UNUSED;
3813 7924 : if (!register_operand (operands[0], i1)
3814 7566 : || GET_MODE (x1) != i1
3815 7566 : || !nonimmediate_operand (operands[2], i1)
3816 15390 : || !register_operand (operands[1], i1))
3817 964 : return -1;
3818 : return 0;
3819 : }
3820 :
3821 : int
3822 168 : pattern984 (rtx x1)
3823 : {
3824 168 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3825 168 : rtx x2;
3826 168 : int res ATTRIBUTE_UNUSED;
3827 168 : if (!register_operand (operands[0], E_QImode)
3828 168 : || GET_MODE (x1) != E_QImode)
3829 : return -1;
3830 168 : x2 = XEXP (x1, 0);
3831 168 : if (GET_MODE (x2) != E_QImode)
3832 : return -1;
3833 168 : switch (GET_MODE (operands[1]))
3834 : {
3835 3 : case E_V8SImode:
3836 3 : if (!register_operand (operands[1], E_V8SImode)
3837 3 : || !nonimmediate_operand (operands[2], E_V8SImode)
3838 6 : || !const_0_to_7_operand (operands[3], E_SImode))
3839 0 : return -1;
3840 : return 0;
3841 :
3842 0 : case E_V4SImode:
3843 0 : if (!register_operand (operands[1], E_V4SImode)
3844 0 : || !nonimmediate_operand (operands[2], E_V4SImode)
3845 0 : || !const_0_to_7_operand (operands[3], E_SImode))
3846 0 : return -1;
3847 : return 1;
3848 :
3849 29 : case E_V8DImode:
3850 29 : if (!register_operand (operands[1], E_V8DImode)
3851 29 : || !nonimmediate_operand (operands[2], E_V8DImode)
3852 58 : || !const_0_to_7_operand (operands[3], E_SImode))
3853 0 : return -1;
3854 : return 2;
3855 :
3856 0 : case E_V4DImode:
3857 0 : if (!register_operand (operands[1], E_V4DImode)
3858 0 : || !nonimmediate_operand (operands[2], E_V4DImode)
3859 0 : || !const_0_to_7_operand (operands[3], E_SImode))
3860 0 : return -1;
3861 : return 3;
3862 :
3863 0 : case E_V2DImode:
3864 0 : if (!register_operand (operands[1], E_V2DImode)
3865 0 : || !nonimmediate_operand (operands[2], E_V2DImode)
3866 0 : || !const_0_to_7_operand (operands[3], E_SImode))
3867 0 : return -1;
3868 : return 4;
3869 :
3870 0 : case E_V8HFmode:
3871 0 : if (!register_operand (operands[1], E_V8HFmode)
3872 0 : || !nonimmediate_operand (operands[2], E_V8HFmode)
3873 0 : || !const_0_to_31_operand (operands[3], E_SImode))
3874 0 : return -1;
3875 : return 5;
3876 :
3877 3 : case E_V8SFmode:
3878 3 : if (!register_operand (operands[1], E_V8SFmode)
3879 3 : || !nonimmediate_operand (operands[2], E_V8SFmode)
3880 6 : || !const_0_to_31_operand (operands[3], E_SImode))
3881 0 : return -1;
3882 : return 6;
3883 :
3884 21 : case E_V4SFmode:
3885 21 : if (!register_operand (operands[1], E_V4SFmode)
3886 18 : || !nonimmediate_operand (operands[2], E_V4SFmode)
3887 33 : || !const_0_to_31_operand (operands[3], E_SImode))
3888 9 : return -1;
3889 : return 7;
3890 :
3891 50 : case E_V8DFmode:
3892 50 : if (!register_operand (operands[1], E_V8DFmode)
3893 50 : || !nonimmediate_operand (operands[2], E_V8DFmode)
3894 100 : || !const_0_to_31_operand (operands[3], E_SImode))
3895 0 : return -1;
3896 : return 8;
3897 :
3898 25 : case E_V4DFmode:
3899 25 : if (!register_operand (operands[1], E_V4DFmode)
3900 25 : || !nonimmediate_operand (operands[2], E_V4DFmode)
3901 50 : || !const_0_to_31_operand (operands[3], E_SImode))
3902 0 : return -1;
3903 : return 9;
3904 :
3905 34 : case E_V2DFmode:
3906 34 : if (!register_operand (operands[1], E_V2DFmode)
3907 34 : || !nonimmediate_operand (operands[2], E_V2DFmode)
3908 68 : || !const_0_to_31_operand (operands[3], E_SImode))
3909 0 : return -1;
3910 : return 10;
3911 :
3912 3 : case E_V8HImode:
3913 3 : if (!register_operand (operands[1], E_V8HImode)
3914 3 : || !nonimmediate_operand (operands[2], E_V8HImode)
3915 6 : || !const_0_to_7_operand (operands[3], E_SImode))
3916 0 : return -1;
3917 : return 11;
3918 :
3919 : default:
3920 : return -1;
3921 : }
3922 : }
3923 :
3924 : int
3925 622 : pattern1008 (rtx x1)
3926 : {
3927 622 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3928 622 : rtx x2;
3929 622 : int res ATTRIBUTE_UNUSED;
3930 622 : if (!register_operand (operands[0], E_V8DImode)
3931 622 : || GET_MODE (x1) != E_V8DImode)
3932 : return -1;
3933 508 : x2 = XEXP (x1, 0);
3934 508 : if (GET_MODE (x2) != E_V8DImode
3935 508 : || !nonimm_or_0_operand (operands[2], E_V8DImode)
3936 972 : || !register_operand (operands[3], E_QImode))
3937 108 : return -1;
3938 400 : switch (GET_MODE (operands[1]))
3939 : {
3940 146 : case E_V8HFmode:
3941 146 : if (!vector_operand (operands[1], E_V8HFmode))
3942 : return -1;
3943 : return 0;
3944 :
3945 126 : case E_V8DFmode:
3946 126 : if (!vector_operand (operands[1], E_V8DFmode))
3947 : return -1;
3948 : return 1;
3949 :
3950 128 : case E_V8SFmode:
3951 128 : if (!vector_operand (operands[1], E_V8SFmode))
3952 : return -1;
3953 : return 2;
3954 :
3955 : default:
3956 : return -1;
3957 : }
3958 : }
3959 :
3960 : int
3961 3351 : pattern1016 (rtx x1, machine_mode i1)
3962 : {
3963 3351 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3964 3351 : rtx x2, x3, x4;
3965 3351 : int res ATTRIBUTE_UNUSED;
3966 3351 : if (!register_operand (operands[0], i1)
3967 3351 : || GET_MODE (x1) != i1)
3968 : return -1;
3969 3239 : x2 = XEXP (x1, 0);
3970 3239 : if (GET_MODE (x2) != i1)
3971 : return -1;
3972 3239 : x3 = XVECEXP (x2, 0, 0);
3973 3239 : if (!register_operand (x3, i1))
3974 : return -1;
3975 3201 : x4 = XVECEXP (x2, 0, 1);
3976 3201 : if (!register_operand (x4, i1))
3977 : return -1;
3978 : return 0;
3979 : }
3980 :
3981 : int
3982 0 : pattern1026 (rtx x1, machine_mode i1, machine_mode i2)
3983 : {
3984 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3985 0 : rtx x2, x3;
3986 0 : int res ATTRIBUTE_UNUSED;
3987 0 : if (!register_operand (operands[0], i1)
3988 0 : || GET_MODE (x1) != i1
3989 0 : || !vector_operand (operands[1], i1)
3990 0 : || !vector_operand (operands[2], i1))
3991 0 : return -1;
3992 0 : x2 = XEXP (x1, 2);
3993 0 : if (GET_MODE (x2) != i2)
3994 : return -1;
3995 0 : x3 = XVECEXP (x2, 0, 0);
3996 0 : if (GET_MODE (x3) != i1
3997 0 : || !register_operand (operands[3], i1)
3998 0 : || !const0_operand (operands[4], i1))
3999 0 : return -1;
4000 : return 0;
4001 : }
4002 :
4003 : int
4004 221 : pattern1034 (rtx x1, machine_mode i1)
4005 : {
4006 221 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4007 221 : rtx x2;
4008 221 : int res ATTRIBUTE_UNUSED;
4009 221 : if (!register_operand (operands[0], i1)
4010 221 : || GET_MODE (x1) != i1)
4011 : return -1;
4012 213 : x2 = XVECEXP (x1, 0, 0);
4013 213 : if (GET_MODE (x2) != i1
4014 213 : || !register_operand (operands[1], i1))
4015 7 : return -1;
4016 : return 0;
4017 : }
4018 :
4019 : int
4020 213 : pattern1039 (rtx x1, machine_mode i1, machine_mode i2)
4021 : {
4022 213 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4023 213 : rtx x2;
4024 213 : int res ATTRIBUTE_UNUSED;
4025 213 : x2 = XVECEXP (x1, 0, 0);
4026 213 : if (GET_MODE (x2) != i2
4027 213 : || !register_operand (operands[0], i2)
4028 209 : || GET_MODE (x1) != i2
4029 209 : || !register_operand (operands[1], i1)
4030 418 : || !const48_operand (operands[2], E_SImode))
4031 8 : return -1;
4032 : return 0;
4033 : }
4034 :
4035 : int
4036 29472 : pattern1045 (rtx x1, machine_mode i1)
4037 : {
4038 29472 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4039 29472 : int res ATTRIBUTE_UNUSED;
4040 29472 : if (!register_operand (operands[0], i1)
4041 28607 : || GET_MODE (x1) != i1
4042 28607 : || !register_operand (operands[1], i1)
4043 21425 : || !vector_operand (operands[2], i1)
4044 47976 : || !register_operand (operands[3], i1))
4045 13868 : return -1;
4046 : return 0;
4047 : }
4048 :
4049 : int
4050 26 : pattern1052 (rtx x1)
4051 : {
4052 26 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4053 26 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
4054 26 : rtx x10;
4055 26 : int res ATTRIBUTE_UNUSED;
4056 26 : x2 = XEXP (x1, 0);
4057 26 : x3 = XEXP (x2, 0);
4058 26 : x4 = XEXP (x3, 0);
4059 26 : x5 = XEXP (x4, 1);
4060 26 : if (GET_CODE (x5) != CONST_VECTOR
4061 26 : || XVECLEN (x5, 0) != 4
4062 26 : || GET_MODE (x5) != E_V4SImode)
4063 : return -1;
4064 26 : x6 = XVECEXP (x5, 0, 0);
4065 26 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
4066 : return -1;
4067 26 : x7 = XVECEXP (x5, 0, 1);
4068 26 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
4069 : return -1;
4070 26 : x8 = XVECEXP (x5, 0, 2);
4071 26 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
4072 : return -1;
4073 26 : x9 = XVECEXP (x5, 0, 3);
4074 26 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
4075 : return -1;
4076 26 : x10 = XEXP (x4, 2);
4077 26 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
4078 26 : || GET_MODE (x4) != E_V4SImode)
4079 : return -1;
4080 26 : return pattern698 (x1); /* [-1, 2] */
4081 : }
4082 :
4083 : int
4084 428 : pattern1063 ()
4085 : {
4086 428 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4087 428 : int res ATTRIBUTE_UNUSED;
4088 428 : switch (GET_MODE (operands[3]))
4089 : {
4090 87 : case E_HImode:
4091 87 : if (!extract_high_operator (operands[3], E_HImode)
4092 87 : || !extract_high_operator (operands[4], E_HImode))
4093 2 : return -1;
4094 : return 0;
4095 :
4096 247 : case E_SImode:
4097 247 : if (!extract_high_operator (operands[3], E_SImode)
4098 247 : || !extract_high_operator (operands[4], E_SImode))
4099 126 : return -1;
4100 : return 1;
4101 :
4102 94 : case E_DImode:
4103 94 : if (!extract_high_operator (operands[3], E_DImode)
4104 94 : || !extract_high_operator (operands[4], E_DImode))
4105 41 : return -1;
4106 : return 2;
4107 :
4108 : default:
4109 : return -1;
4110 : }
4111 : }
4112 :
4113 : int
4114 261775 : pattern1068 (rtx x1, rtx_code i1)
4115 : {
4116 261775 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4117 261775 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
4118 261775 : rtx x10, x11, x12;
4119 261775 : int res ATTRIBUTE_UNUSED;
4120 261775 : x2 = XEXP (x1, 0);
4121 261775 : x3 = XEXP (x2, 1);
4122 261775 : switch (GET_CODE (x3))
4123 : {
4124 20957 : case AND:
4125 20957 : if (GET_MODE (x3) != E_QImode)
4126 : return -1;
4127 20957 : x4 = XEXP (x3, 1);
4128 20957 : if (GET_CODE (x4) != CONST_INT)
4129 : return -1;
4130 20957 : x5 = XEXP (x1, 1);
4131 20957 : if (GET_CODE (x5) != SUBREG
4132 20957 : || maybe_ne (SUBREG_BYTE (x5), 0))
4133 : return -1;
4134 20914 : x6 = XEXP (x5, 0);
4135 20914 : if (GET_CODE (x6) != i1)
4136 : return -1;
4137 20914 : x7 = XEXP (x6, 0);
4138 20914 : if (GET_CODE (x7) != ZERO_EXTEND)
4139 : return -1;
4140 20914 : x8 = XEXP (x6, 1);
4141 20914 : if (GET_CODE (x8) != MINUS
4142 20914 : || GET_MODE (x8) != E_QImode)
4143 : return -1;
4144 20914 : x9 = XEXP (x8, 0);
4145 20914 : if (GET_CODE (x9) != CONST_INT)
4146 : return -1;
4147 20914 : x10 = XEXP (x8, 1);
4148 20914 : if (GET_CODE (x10) != AND
4149 20914 : || GET_MODE (x10) != E_QImode)
4150 : return -1;
4151 20914 : x11 = XEXP (x10, 1);
4152 20914 : if (GET_CODE (x11) != CONST_INT)
4153 : return -1;
4154 20914 : x12 = XEXP (x3, 0);
4155 20914 : if (!nonmemory_operand (x12, E_QImode))
4156 : return -1;
4157 20910 : switch (XWINT (x4, 0))
4158 : {
4159 12332 : case 63L:
4160 12332 : if (XWINT (x9, 0) != 64L
4161 12332 : || XWINT (x11, 0) != 63L
4162 24664 : || pattern1067 (x1,
4163 : E_DImode,
4164 : E_TImode) != 0)
4165 32 : return -1;
4166 : return 0;
4167 :
4168 8575 : case 31L:
4169 8575 : if (XWINT (x9, 0) != 32L
4170 8575 : || XWINT (x11, 0) != 31L)
4171 : return -1;
4172 : return 1;
4173 :
4174 : default:
4175 : return -1;
4176 : }
4177 :
4178 : case CONST_INT:
4179 : case CONST_WIDE_INT:
4180 : case CONST_POLY_INT:
4181 : case CONST_FIXED:
4182 : case CONST_DOUBLE:
4183 : case CONST_VECTOR:
4184 : case CONST:
4185 : case REG:
4186 : case SUBREG:
4187 : case LABEL_REF:
4188 : case SYMBOL_REF:
4189 : case HIGH:
4190 : return 2;
4191 :
4192 : default:
4193 : return -1;
4194 : }
4195 : }
4196 :
4197 : int
4198 92 : pattern1088 (rtx x1, machine_mode i1, machine_mode i2)
4199 : {
4200 92 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4201 92 : rtx x2;
4202 92 : int res ATTRIBUTE_UNUSED;
4203 92 : if (!memory_operand (operands[0], i2)
4204 92 : || GET_MODE (x1) != i2)
4205 : return -1;
4206 88 : x2 = XVECEXP (x1, 0, 0);
4207 88 : if (GET_MODE (x2) != i2
4208 88 : || !register_operand (operands[1], i1))
4209 0 : return -1;
4210 : return 0;
4211 : }
4212 :
4213 : int
4214 29289 : pattern1091 (rtx x1)
4215 : {
4216 29289 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4217 29289 : rtx x2, x3, x4, x5;
4218 29289 : int res ATTRIBUTE_UNUSED;
4219 29289 : if (!int248_register_operand (operands[2], E_VOIDmode))
4220 : return -1;
4221 27158 : x2 = XEXP (x1, 1);
4222 27158 : x3 = XEXP (x2, 1);
4223 27158 : operands[1] = x3;
4224 27158 : if (!nonimmediate_operand (operands[1], E_QImode))
4225 : return -1;
4226 15547 : x4 = XEXP (x1, 0);
4227 15547 : switch (GET_CODE (x4))
4228 : {
4229 30 : case STRICT_LOW_PART:
4230 30 : x5 = XEXP (x4, 0);
4231 30 : operands[0] = x5;
4232 30 : if (!register_operand (operands[0], E_QImode))
4233 : return -1;
4234 30 : return pattern1090 (); /* [-1, 2] */
4235 :
4236 15517 : case REG:
4237 15517 : case SUBREG:
4238 15517 : case MEM:
4239 15517 : operands[0] = x4;
4240 15517 : if (!nonimmediate_operand (operands[0], E_QImode))
4241 : return -1;
4242 15517 : res = pattern1090 ();
4243 15517 : if (res >= 0)
4244 156 : return res + 3; /* [3, 5] */
4245 : return -1;
4246 :
4247 : default:
4248 : return -1;
4249 : }
4250 : }
4251 :
4252 : int
4253 719 : pattern1105 (rtx x1, machine_mode i1)
4254 : {
4255 719 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4256 719 : int res ATTRIBUTE_UNUSED;
4257 719 : if (!nonimmediate_operand (operands[0], i1)
4258 719 : || GET_MODE (x1) != i1
4259 719 : || !ix86_carry_flag_unset_operator (operands[2], i1)
4260 1179 : || !nonimmediate_operand (operands[1], i1))
4261 507 : return -1;
4262 : return 0;
4263 : }
4264 :
4265 : int
4266 1056 : pattern1113 (rtx x1, machine_mode i1, machine_mode i2)
4267 : {
4268 1056 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4269 1056 : rtx x2;
4270 1056 : int res ATTRIBUTE_UNUSED;
4271 1056 : if (!register_operand (operands[0], i2)
4272 1056 : || GET_MODE (x1) != i2)
4273 : return -1;
4274 1030 : x2 = XEXP (x1, 0);
4275 1030 : if (GET_MODE (x2) != i2
4276 1030 : || !register_operand (operands[1], i1)
4277 2060 : || !nonimmediate_operand (operands[2], i1))
4278 0 : return -1;
4279 : return 0;
4280 : }
4281 :
4282 : int
4283 845 : pattern1119 (rtx x1, machine_mode i1)
4284 : {
4285 845 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4286 845 : rtx x2;
4287 845 : int res ATTRIBUTE_UNUSED;
4288 845 : if (!register_operand (operands[0], i1)
4289 845 : || GET_MODE (x1) != i1)
4290 : return -1;
4291 821 : x2 = XVECEXP (x1, 0, 0);
4292 821 : switch (GET_MODE (x2))
4293 : {
4294 29 : case E_HFmode:
4295 29 : if (!register_operand (operands[1], E_V8HFmode))
4296 : return -1;
4297 : return 0;
4298 :
4299 437 : case E_SFmode:
4300 437 : if (!nonimmediate_operand (operands[1], E_V4SFmode))
4301 : return -1;
4302 : return 1;
4303 :
4304 355 : case E_DFmode:
4305 355 : if (!nonimmediate_operand (operands[1], E_V2DFmode))
4306 : return -1;
4307 : return 2;
4308 :
4309 : default:
4310 : return -1;
4311 : }
4312 : }
4313 :
4314 : int
4315 936 : pattern1124 (rtx x1)
4316 : {
4317 936 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4318 936 : rtx x2;
4319 936 : int res ATTRIBUTE_UNUSED;
4320 936 : if (!register_operand (operands[0], E_V2DImode)
4321 936 : || GET_MODE (x1) != E_V2DImode)
4322 : return -1;
4323 899 : x2 = XEXP (x1, 0);
4324 899 : if (GET_MODE (x2) != E_V2DImode
4325 899 : || !nonimm_or_0_operand (operands[2], E_V2DImode)
4326 1786 : || !register_operand (operands[3], E_QImode))
4327 38 : return -1;
4328 861 : switch (GET_MODE (operands[1]))
4329 : {
4330 : case E_V8HFmode:
4331 : return 0;
4332 :
4333 444 : case E_V2DFmode:
4334 444 : return 1;
4335 :
4336 : default:
4337 : return -1;
4338 : }
4339 : }
4340 :
4341 : int
4342 3059 : pattern1127 (rtx x1, machine_mode i1, machine_mode i2)
4343 : {
4344 3059 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4345 3059 : rtx x2;
4346 3059 : int res ATTRIBUTE_UNUSED;
4347 3059 : if (!register_operand (operands[0], i2)
4348 3059 : || GET_MODE (x1) != i2)
4349 : return -1;
4350 2944 : x2 = XEXP (x1, 0);
4351 2944 : if (GET_MODE (x2) != i2
4352 2944 : || !nonimmediate_operand (operands[1], i2)
4353 2896 : || !register_operand (operands[2], i2)
4354 2895 : || !nonimm_or_0_operand (operands[3], i2)
4355 5749 : || !register_operand (operands[4], i1))
4356 602 : return -1;
4357 : return 0;
4358 : }
4359 :
4360 : int
4361 2760 : pattern1133 (rtx x1)
4362 : {
4363 2760 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4364 2760 : rtx x2, x3, x4, x5;
4365 2760 : int res ATTRIBUTE_UNUSED;
4366 2760 : x2 = XEXP (x1, 0);
4367 2760 : x3 = XEXP (x2, 1);
4368 2760 : operands[4] = x3;
4369 2760 : x4 = XEXP (x2, 2);
4370 2760 : operands[5] = x4;
4371 2760 : if (!register_operand (operands[5], E_QImode))
4372 : return -1;
4373 2707 : x5 = XEXP (x1, 1);
4374 2707 : if (!rtx_equal_p (x5, operands[1]))
4375 : return -1;
4376 2707 : switch (GET_MODE (operands[0]))
4377 : {
4378 825 : case E_V8HFmode:
4379 825 : return pattern1132 (x1,
4380 825 : E_V8HFmode); /* [-1, 0] */
4381 :
4382 935 : case E_V4SFmode:
4383 935 : if (pattern1132 (x1,
4384 : E_V4SFmode) != 0)
4385 : return -1;
4386 : return 1;
4387 :
4388 947 : case E_V2DFmode:
4389 947 : if (pattern1132 (x1,
4390 : E_V2DFmode) != 0)
4391 : return -1;
4392 : return 2;
4393 :
4394 : default:
4395 : return -1;
4396 : }
4397 : }
4398 :
4399 : int
4400 958 : pattern1146 (rtx x1)
4401 : {
4402 958 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4403 958 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
4404 958 : rtx x10, x11;
4405 958 : int res ATTRIBUTE_UNUSED;
4406 958 : x2 = XVECEXP (x1, 0, 0);
4407 958 : x3 = XEXP (x2, 2);
4408 958 : if (XWINT (x3, 0) != 1L)
4409 : return -1;
4410 958 : x4 = XEXP (x2, 0);
4411 958 : x5 = XEXP (x4, 0);
4412 958 : x6 = XVECEXP (x5, 0, 0);
4413 958 : operands[1] = x6;
4414 958 : x7 = XVECEXP (x5, 0, 1);
4415 958 : operands[2] = x7;
4416 958 : x8 = XEXP (x4, 1);
4417 958 : operands[3] = x8;
4418 958 : x9 = XEXP (x4, 2);
4419 958 : operands[4] = x9;
4420 958 : if (!register_operand (operands[4], E_QImode))
4421 : return -1;
4422 940 : x10 = XVECEXP (x1, 0, 1);
4423 940 : operands[5] = x10;
4424 940 : if (!const48_operand (operands[5], E_SImode))
4425 : return -1;
4426 940 : x11 = XEXP (x2, 1);
4427 940 : if (!rtx_equal_p (x11, operands[1]))
4428 : return -1;
4429 940 : switch (GET_MODE (operands[0]))
4430 : {
4431 520 : case E_V8HFmode:
4432 520 : return pattern1145 (x1,
4433 520 : E_V8HFmode); /* [-1, 0] */
4434 :
4435 210 : case E_V4SFmode:
4436 210 : if (pattern1145 (x1,
4437 : E_V4SFmode) != 0)
4438 : return -1;
4439 : return 1;
4440 :
4441 210 : case E_V2DFmode:
4442 210 : if (pattern1145 (x1,
4443 : E_V2DFmode) != 0)
4444 : return -1;
4445 : return 2;
4446 :
4447 : default:
4448 : return -1;
4449 : }
4450 : }
4451 :
4452 : int
4453 3630 : pattern1164 (rtx x1, machine_mode i1)
4454 : {
4455 3630 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4456 3630 : int res ATTRIBUTE_UNUSED;
4457 3630 : if (!memory_operand (operands[0], i1)
4458 3630 : || GET_MODE (x1) != i1
4459 7260 : || !memory_operand (operands[1], i1))
4460 0 : return -1;
4461 3630 : switch (GET_MODE (operands[2]))
4462 : {
4463 16 : case E_SImode:
4464 16 : if (!register_operand (operands[2], E_SImode))
4465 : return -1;
4466 : return 0;
4467 :
4468 3614 : case E_DImode:
4469 3614 : if (!register_operand (operands[2], E_DImode))
4470 : return -1;
4471 : return 1;
4472 :
4473 : default:
4474 : return -1;
4475 : }
4476 : }
4477 :
4478 : int
4479 145 : pattern1172 (rtx x1)
4480 : {
4481 145 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4482 145 : rtx x2, x3, x4, x5;
4483 145 : int res ATTRIBUTE_UNUSED;
4484 145 : x2 = XEXP (x1, 0);
4485 145 : if (GET_MODE (x2) != E_SImode)
4486 : return -1;
4487 145 : x3 = XEXP (x2, 0);
4488 145 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 31])
4489 : return -1;
4490 121 : x4 = XEXP (x2, 1);
4491 121 : if (GET_CODE (x4) != CLZ
4492 121 : || GET_MODE (x4) != E_SImode)
4493 : return -1;
4494 121 : x5 = XEXP (x1, 1);
4495 121 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 31])
4496 0 : return -1;
4497 : return 0;
4498 : }
4499 :
4500 : int
4501 21125 : pattern1180 (rtx x1, machine_mode i1, machine_mode i2)
4502 : {
4503 21125 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4504 21125 : rtx x2;
4505 21125 : int res ATTRIBUTE_UNUSED;
4506 21125 : if (!nonimmediate_operand (operands[0], i2)
4507 21077 : || GET_MODE (x1) != i2
4508 42202 : || !nonimmediate_operand (operands[1], i2))
4509 1022 : return -1;
4510 20103 : x2 = XEXP (x1, 1);
4511 20103 : if (GET_MODE (x2) != i2
4512 20103 : || !nonimmediate_operand (operands[2], i1))
4513 9065 : return -1;
4514 : return 0;
4515 : }
4516 :
4517 : int
4518 14892 : pattern1186 (rtx x1)
4519 : {
4520 14892 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4521 14892 : rtx x2, x3;
4522 14892 : int res ATTRIBUTE_UNUSED;
4523 14892 : switch (XVECLEN (x1, 0))
4524 : {
4525 13969 : case 2:
4526 13969 : if (XINT (x1, 1) != 21)
4527 : return -1;
4528 13969 : x2 = XVECEXP (x1, 0, 1);
4529 13969 : if (GET_CODE (x2) != REG
4530 13969 : || REGNO (x2) != 7)
4531 0 : return -1;
4532 : return 0;
4533 :
4534 923 : case 1:
4535 923 : if (XINT (x1, 1) != 22)
4536 : return -1;
4537 923 : x3 = XVECEXP (x1, 0, 0);
4538 923 : if (GET_CODE (x3) != REG
4539 923 : || REGNO (x3) != 7)
4540 0 : return -1;
4541 : return 1;
4542 :
4543 : default:
4544 : return -1;
4545 : }
4546 : }
4547 :
4548 : int
4549 24232 : pattern1196 (rtx x1)
4550 : {
4551 24232 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4552 24232 : rtx x2, x3, x4, x5;
4553 24232 : int res ATTRIBUTE_UNUSED;
4554 24232 : if (!nonmemory_operand (operands[2], E_QImode))
4555 : return -1;
4556 24077 : x2 = XEXP (x1, 0);
4557 24077 : if (GET_CODE (x2) != STRICT_LOW_PART)
4558 : return -1;
4559 12 : x3 = XEXP (x2, 0);
4560 12 : operands[0] = x3;
4561 12 : x4 = XEXP (x1, 1);
4562 12 : x5 = XEXP (x4, 0);
4563 12 : operands[1] = x5;
4564 12 : return pattern379 (x4); /* [-1, 1] */
4565 : }
4566 :
4567 : int
4568 6 : pattern1202 (rtx x1, machine_mode i1, machine_mode i2)
4569 : {
4570 6 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4571 6 : rtx x2;
4572 6 : int res ATTRIBUTE_UNUSED;
4573 6 : if (!memory_operand (operands[0], i2)
4574 6 : || GET_MODE (x1) != i2)
4575 : return -1;
4576 6 : x2 = XEXP (x1, 0);
4577 6 : if (GET_MODE (x2) != i2
4578 6 : || !nonmemory_operand (operands[1], i1))
4579 0 : return -1;
4580 : return 0;
4581 : }
4582 :
4583 : int
4584 39063 : pattern1209 (rtx x1, machine_mode i1)
4585 : {
4586 39063 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4587 39063 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
4588 39063 : rtx x10, x11, x12;
4589 39063 : int res ATTRIBUTE_UNUSED;
4590 39063 : x2 = XVECEXP (x1, 0, 0);
4591 39063 : x3 = XEXP (x2, 1);
4592 39063 : if (GET_MODE (x3) != i1)
4593 : return -1;
4594 37566 : x4 = XEXP (x3, 0);
4595 37566 : if (GET_CODE (x4) != PLUS
4596 24 : || GET_MODE (x4) != i1)
4597 : return -1;
4598 24 : x5 = XEXP (x4, 0);
4599 24 : if (!ix86_carry_flag_operator (x5, i1))
4600 : return -1;
4601 24 : operands[4] = x5;
4602 24 : x6 = XEXP (x5, 1);
4603 24 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
4604 : return -1;
4605 24 : x7 = XVECEXP (x1, 0, 1);
4606 24 : if (GET_CODE (x7) != CLOBBER)
4607 : return -1;
4608 24 : x8 = XEXP (x7, 0);
4609 24 : if (GET_CODE (x8) != REG
4610 24 : || REGNO (x8) != 17
4611 48 : || GET_MODE (x8) != E_CCmode)
4612 : return -1;
4613 24 : x9 = XEXP (x5, 0);
4614 24 : operands[3] = x9;
4615 24 : if (!flags_reg_operand (operands[3], E_VOIDmode))
4616 : return -1;
4617 24 : x10 = XEXP (x3, 1);
4618 24 : operands[2] = x10;
4619 24 : if (!memory_operand (operands[2], i1))
4620 : return -1;
4621 6 : x11 = XEXP (x4, 1);
4622 6 : if (!rtx_equal_p (x11, operands[0]))
4623 : return -1;
4624 6 : x12 = XEXP (x2, 0);
4625 6 : return pattern1208 (x12,
4626 6 : i1); /* [-1, 1] */
4627 : }
4628 :
4629 : int
4630 1203 : pattern1219 (rtx x1, machine_mode i1)
4631 : {
4632 1203 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4633 1203 : int res ATTRIBUTE_UNUSED;
4634 1203 : if (!register_operand (operands[0], i1)
4635 1203 : || GET_MODE (x1) != i1)
4636 : return -1;
4637 872 : return pattern1218 (); /* [-1, 2] */
4638 : }
4639 :
4640 : int
4641 198 : pattern1224 (rtx x1, machine_mode i1)
4642 : {
4643 198 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4644 198 : int res ATTRIBUTE_UNUSED;
4645 198 : if (!nonimmediate_operand (operands[0], i1)
4646 198 : || GET_MODE (x1) != i1
4647 198 : || !nonimmediate_operand (operands[1], i1)
4648 384 : || !ix86_carry_flag_unset_operator (operands[2], i1))
4649 41 : return -1;
4650 : return 0;
4651 : }
4652 :
4653 : int
4654 978 : pattern1229 (rtx x1, machine_mode i1)
4655 : {
4656 978 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4657 978 : rtx x2;
4658 978 : int res ATTRIBUTE_UNUSED;
4659 978 : if (!register_operand (operands[0], i1)
4660 978 : || GET_MODE (x1) != i1)
4661 : return -1;
4662 904 : x2 = XEXP (x1, 0);
4663 904 : if (GET_MODE (x2) != i1
4664 904 : || !nonimmediate_operand (operands[2], i1)
4665 1794 : || !register_operand (operands[1], i1))
4666 123 : return -1;
4667 : return 0;
4668 : }
4669 :
4670 : int
4671 1812 : pattern1235 (rtx x1)
4672 : {
4673 1812 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4674 1812 : rtx x2, x3, x4, x5, x6, x7, x8;
4675 1812 : int res ATTRIBUTE_UNUSED;
4676 1812 : x2 = XEXP (x1, 0);
4677 1812 : x3 = XEXP (x2, 0);
4678 1812 : x4 = XEXP (x3, 0);
4679 1812 : x5 = XEXP (x4, 0);
4680 1812 : x6 = XEXP (x5, 1);
4681 1812 : if (GET_CODE (x6) != PARALLEL
4682 1812 : || XVECLEN (x6, 0) != 1)
4683 : return -1;
4684 1812 : x7 = XVECEXP (x6, 0, 0);
4685 1812 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
4686 : return -1;
4687 1812 : x8 = XEXP (x1, 2);
4688 1812 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
4689 0 : return -1;
4690 : return 0;
4691 : }
4692 :
4693 : int
4694 1904 : pattern1242 (rtx x1)
4695 : {
4696 1904 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4697 1904 : rtx x2, x3, x4;
4698 1904 : int res ATTRIBUTE_UNUSED;
4699 1904 : x2 = XVECEXP (x1, 0, 2);
4700 1904 : x3 = XEXP (x2, 0);
4701 1904 : x4 = XEXP (x3, 1);
4702 1904 : operands[4] = x4;
4703 1904 : switch (GET_MODE (operands[0]))
4704 : {
4705 1462 : case E_V16QImode:
4706 1462 : if (!register_operand (operands[0], E_V16QImode)
4707 1462 : || GET_MODE (x1) != E_V16QImode
4708 1462 : || !vector_operand (operands[1], E_V16QImode)
4709 1204 : || !register_operand (operands[2], E_V16QImode)
4710 2044 : || GET_MODE (x2) != E_V16QImode)
4711 880 : return -1;
4712 582 : switch (GET_MODE (x3))
4713 : {
4714 272 : case E_V4SImode:
4715 272 : if (!register_operand (operands[3], E_V4SImode)
4716 272 : || !vector_all_ones_operand (operands[4], E_V4SImode))
4717 272 : return -1;
4718 : return 0;
4719 :
4720 303 : case E_V2DImode:
4721 303 : if (!register_operand (operands[3], E_V2DImode)
4722 303 : || !vector_all_ones_operand (operands[4], E_V2DImode))
4723 303 : return -1;
4724 : return 1;
4725 :
4726 : default:
4727 : return -1;
4728 : }
4729 :
4730 190 : case E_V32QImode:
4731 190 : if (!register_operand (operands[0], E_V32QImode)
4732 190 : || GET_MODE (x1) != E_V32QImode
4733 190 : || !vector_operand (operands[1], E_V32QImode)
4734 126 : || !register_operand (operands[2], E_V32QImode)
4735 284 : || GET_MODE (x2) != E_V32QImode)
4736 96 : return -1;
4737 94 : switch (GET_MODE (x3))
4738 : {
4739 64 : case E_V8SImode:
4740 64 : if (!register_operand (operands[3], E_V8SImode)
4741 64 : || !vector_all_ones_operand (operands[4], E_V8SImode))
4742 64 : return -1;
4743 : return 2;
4744 :
4745 29 : case E_V4DImode:
4746 29 : if (!register_operand (operands[3], E_V4DImode)
4747 29 : || !vector_all_ones_operand (operands[4], E_V4DImode))
4748 29 : return -1;
4749 : return 3;
4750 :
4751 : default:
4752 : return -1;
4753 : }
4754 :
4755 : default:
4756 : return -1;
4757 : }
4758 : }
4759 :
4760 : int
4761 50 : pattern1261 (rtx x1)
4762 : {
4763 50 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4764 50 : rtx x2, x3;
4765 50 : int res ATTRIBUTE_UNUSED;
4766 50 : switch (GET_MODE (operands[0]))
4767 : {
4768 40 : case E_SImode:
4769 40 : if (!register_operand (operands[0], E_SImode)
4770 40 : || GET_MODE (x1) != E_SImode)
4771 : return -1;
4772 40 : x2 = XEXP (x1, 0);
4773 40 : if (GET_MODE (x2) != E_SImode)
4774 : return -1;
4775 40 : x3 = XEXP (x2, 0);
4776 40 : if (GET_MODE (x3) != E_SImode
4777 40 : || !nonimmediate_operand (operands[1], E_SImode))
4778 10 : return -1;
4779 : return 0;
4780 :
4781 10 : case E_DImode:
4782 10 : if (!register_operand (operands[0], E_DImode)
4783 10 : || GET_MODE (x1) != E_DImode)
4784 : return -1;
4785 10 : x2 = XEXP (x1, 0);
4786 10 : if (GET_MODE (x2) != E_DImode)
4787 : return -1;
4788 10 : x3 = XEXP (x2, 0);
4789 10 : if (GET_MODE (x3) != E_DImode
4790 10 : || !nonimmediate_operand (operands[1], E_DImode))
4791 0 : return -1;
4792 : return 1;
4793 :
4794 : default:
4795 : return -1;
4796 : }
4797 : }
4798 :
4799 : int
4800 120993 : pattern1275 (rtx x1, machine_mode i1)
4801 : {
4802 120993 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4803 120993 : rtx x2, x3, x4, x5, x6;
4804 120993 : int res ATTRIBUTE_UNUSED;
4805 120993 : if (peep2_current_count < 4
4806 112493 : || GET_CODE (x1) != SET)
4807 : return -1;
4808 106591 : x2 = XEXP (x1, 1);
4809 106591 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
4810 : return -1;
4811 55095 : x3 = XEXP (x1, 0);
4812 55095 : operands[3] = x3;
4813 55095 : if (!memory_operand (operands[3], i1))
4814 : return -1;
4815 47324 : x4 = PATTERN (peep2_next_insn (3));
4816 47324 : if (GET_CODE (x4) != SET)
4817 : return -1;
4818 45085 : x5 = XEXP (x4, 1);
4819 45085 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
4820 : return -1;
4821 27435 : x6 = XEXP (x4, 0);
4822 27435 : operands[4] = x6;
4823 27435 : if (!memory_operand (operands[4], i1))
4824 : return -1;
4825 : return 0;
4826 : }
4827 :
4828 : int
4829 5042 : pattern1285 (rtx x1, machine_mode i1)
4830 : {
4831 5042 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4832 5042 : rtx x2;
4833 5042 : int res ATTRIBUTE_UNUSED;
4834 5042 : if (!nonimmediate_operand (operands[0], i1)
4835 5042 : || GET_MODE (x1) != i1)
4836 : return -1;
4837 5042 : x2 = XEXP (x1, 0);
4838 5042 : if (GET_MODE (x2) != i1
4839 5042 : || !nonimmediate_operand (operands[1], i1)
4840 4027 : || !ix86_carry_flag_operator (operands[4], i1)
4841 9069 : || !x86_64_general_operand (operands[2], i1))
4842 1729 : return -1;
4843 : return 0;
4844 : }
4845 :
4846 : int
4847 276 : pattern1293 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
4848 : {
4849 276 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4850 276 : rtx x2;
4851 276 : int res ATTRIBUTE_UNUSED;
4852 276 : if (!register_operand (operands[0], i1)
4853 276 : || GET_MODE (x1) != i1)
4854 : return -1;
4855 264 : x2 = XEXP (x1, 0);
4856 264 : if (GET_MODE (x2) != i1
4857 264 : || !register_operand (operands[1], i1)
4858 264 : || !register_operand (operands[2], i2)
4859 264 : || !nonimmediate_operand (operands[3], i2)
4860 264 : || !const0_operand (operands[4], i1)
4861 528 : || !register_operand (operands[5], i3))
4862 3 : return -1;
4863 : return 0;
4864 : }
4865 :
4866 : int
4867 1058 : pattern1302 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
4868 : {
4869 1058 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4870 1058 : rtx x2, x3;
4871 1058 : int res ATTRIBUTE_UNUSED;
4872 1058 : if (!register_operand (operands[0], i1)
4873 1058 : || GET_MODE (x1) != i1)
4874 : return -1;
4875 1046 : x2 = XEXP (x1, 0);
4876 1046 : if (GET_MODE (x2) != i1)
4877 : return -1;
4878 1046 : x3 = XEXP (x2, 0);
4879 1046 : if (GET_MODE (x3) != i2
4880 1046 : || !nonimmediate_operand (operands[1], i1)
4881 1046 : || !nonimm_or_0_operand (operands[2], i1)
4882 2088 : || !register_operand (operands[3], i3))
4883 5 : return -1;
4884 : return 0;
4885 : }
4886 :
4887 : int
4888 1920 : pattern1311 (rtx x1, machine_mode i1, machine_mode i2)
4889 : {
4890 1920 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4891 1920 : rtx x2, x3;
4892 1920 : int res ATTRIBUTE_UNUSED;
4893 1920 : if (!register_operand (operands[0], i1)
4894 1920 : || GET_MODE (x1) != i1)
4895 : return -1;
4896 1803 : x2 = XEXP (x1, 0);
4897 1803 : if (GET_MODE (x2) != i1)
4898 : return -1;
4899 1803 : x3 = XEXP (x2, 0);
4900 1803 : if (GET_MODE (x3) != i1
4901 1803 : || !vector_operand (operands[2], i1)
4902 3606 : || !register_operand (operands[4], i2))
4903 0 : return -1;
4904 : return 0;
4905 : }
4906 :
4907 : int
4908 2854 : pattern1318 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
4909 : {
4910 2854 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4911 2854 : rtx x2, x3;
4912 2854 : int res ATTRIBUTE_UNUSED;
4913 2854 : if (!register_operand (operands[0], i2)
4914 2854 : || GET_MODE (x1) != i2)
4915 : return -1;
4916 2744 : x2 = XVECEXP (x1, 0, 0);
4917 2744 : if (GET_MODE (x2) != i2)
4918 : return -1;
4919 2744 : x3 = XEXP (x2, 0);
4920 2744 : if (GET_MODE (x3) != i2
4921 2744 : || !register_operand (operands[1], i3)
4922 2712 : || !nonimm_or_0_operand (operands[2], i2)
4923 5420 : || !register_operand (operands[3], i1))
4924 152 : return -1;
4925 : return 0;
4926 : }
4927 :
4928 : int
4929 972 : pattern1326 (rtx x1)
4930 : {
4931 972 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4932 972 : rtx x2, x3;
4933 972 : int res ATTRIBUTE_UNUSED;
4934 972 : if (!register_operand (operands[0], E_V16HFmode)
4935 972 : || GET_MODE (x1) != E_V16HFmode)
4936 : return -1;
4937 944 : x2 = XVECEXP (x1, 0, 0);
4938 944 : if (GET_MODE (x2) != E_V16HFmode)
4939 : return -1;
4940 944 : x3 = XEXP (x2, 0);
4941 944 : if (GET_MODE (x3) != E_V16HFmode
4942 944 : || !nonimm_or_0_operand (operands[2], E_V16HFmode)
4943 1888 : || !register_operand (operands[3], E_HImode))
4944 20 : return -1;
4945 924 : switch (GET_MODE (operands[1]))
4946 : {
4947 0 : case E_V16HImode:
4948 0 : if (!register_operand (operands[1], E_V16HImode))
4949 : return -1;
4950 : return 0;
4951 :
4952 924 : case E_V16SImode:
4953 924 : if (!register_operand (operands[1], E_V16SImode))
4954 : return -1;
4955 : return 1;
4956 :
4957 : default:
4958 : return -1;
4959 : }
4960 : }
4961 :
4962 : int
4963 6632 : pattern1335 (rtx x1)
4964 : {
4965 6632 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4966 6632 : rtx x2, x3, x4, x5, x6, x7;
4967 6632 : int res ATTRIBUTE_UNUSED;
4968 6632 : x2 = XEXP (x1, 1);
4969 6632 : x3 = XEXP (x2, 2);
4970 6632 : if (maybe_ne (SUBREG_BYTE (x3), 0)
4971 6632 : || GET_MODE (x3) != E_QImode)
4972 : return -1;
4973 6632 : x4 = XEXP (x3, 0);
4974 6632 : if (GET_CODE (x4) != AND)
4975 : return -1;
4976 1132 : x5 = XEXP (x1, 0);
4977 1132 : operands[0] = x5;
4978 1132 : x6 = XEXP (x4, 0);
4979 1132 : operands[2] = x6;
4980 1132 : if (!int248_register_operand (operands[2], E_VOIDmode))
4981 : return -1;
4982 1045 : x7 = XEXP (x4, 1);
4983 1045 : operands[3] = x7;
4984 1045 : if (!const_int_operand (operands[3], E_VOIDmode))
4985 : return -1;
4986 1045 : return pattern410 (x2); /* [-1, 1] */
4987 : }
4988 :
4989 : int
4990 124 : pattern1342 (rtx x1, machine_mode i1)
4991 : {
4992 124 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4993 124 : int res ATTRIBUTE_UNUSED;
4994 124 : if (!register_operand (operands[0], i1)
4995 124 : || GET_MODE (x1) != i1
4996 124 : || !register_operand (operands[1], i1)
4997 239 : || !general_operand (operands[2], i1))
4998 30 : return -1;
4999 : return 0;
5000 : }
5001 :
5002 : int
5003 0 : pattern1349 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
5004 : {
5005 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5006 0 : int res ATTRIBUTE_UNUSED;
5007 0 : if (!register_operand (operands[0], i3)
5008 0 : || GET_MODE (x1) != i3
5009 0 : || pattern565 (x1,
5010 : i1,
5011 : i2) != 0)
5012 0 : return -1;
5013 : return 0;
5014 : }
5015 :
5016 : int
5017 192 : pattern1353 (rtx x1)
5018 : {
5019 192 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5020 192 : rtx x2, x3, x4;
5021 192 : int res ATTRIBUTE_UNUSED;
5022 192 : x2 = XEXP (x1, 0);
5023 192 : x3 = XEXP (x2, 0);
5024 192 : operands[0] = x3;
5025 192 : if (!nonmemory_operand (operands[2], E_QImode))
5026 : return -1;
5027 185 : x4 = XEXP (x1, 1);
5028 185 : return pattern379 (x4); /* [-1, 1] */
5029 : }
5030 :
5031 : int
5032 0 : pattern1360 (rtx x1)
5033 : {
5034 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5035 0 : rtx x2, x3, x4, x5, x6;
5036 0 : int res ATTRIBUTE_UNUSED;
5037 0 : x2 = XEXP (x1, 1);
5038 0 : if (GET_CODE (x2) != CALL)
5039 : return -1;
5040 0 : x3 = XEXP (x2, 0);
5041 0 : if (GET_CODE (x3) != MEM
5042 0 : || GET_MODE (x3) != E_QImode)
5043 : return -1;
5044 0 : x4 = XEXP (x1, 0);
5045 0 : operands[2] = x4;
5046 0 : x5 = XEXP (x2, 1);
5047 0 : operands[3] = x5;
5048 0 : x6 = XEXP (x3, 0);
5049 0 : if (!rtx_equal_p (x6, operands[0]))
5050 : return -1;
5051 : return 0;
5052 : }
5053 :
5054 : int
5055 27242 : pattern1367 (rtx x1, machine_mode i1)
5056 : {
5057 27242 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5058 27242 : rtx x2, x3, x4, x5, x6;
5059 27242 : int res ATTRIBUTE_UNUSED;
5060 27242 : if (!plusminuslogic_operator (operands[3], i1))
5061 : return -1;
5062 6231 : x2 = XVECEXP (x1, 0, 1);
5063 6231 : if (GET_CODE (x2) != CLOBBER)
5064 : return -1;
5065 6231 : x3 = XEXP (x2, 0);
5066 6231 : if (GET_CODE (x3) != REG
5067 6231 : || REGNO (x3) != 17
5068 12462 : || GET_MODE (x3) != E_CCmode)
5069 : return -1;
5070 6231 : x4 = XVECEXP (x1, 0, 0);
5071 6231 : x5 = XEXP (x4, 1);
5072 6231 : x6 = XEXP (x5, 1);
5073 6231 : operands[2] = x6;
5074 6231 : if (!nonmemory_operand (operands[2], i1)
5075 6231 : || pattern1366 (x4) != 0)
5076 5861 : return -1;
5077 : return 0;
5078 : }
5079 :
5080 : int
5081 12 : pattern1376 (rtx x1, machine_mode i1)
5082 : {
5083 12 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5084 12 : rtx x2;
5085 12 : int res ATTRIBUTE_UNUSED;
5086 12 : if (!register_operand (operands[0], i1)
5087 12 : || GET_MODE (x1) != i1)
5088 : return -1;
5089 12 : x2 = XEXP (x1, 0);
5090 12 : if (GET_MODE (x2) != i1
5091 12 : || !nonimmediate_operand (operands[1], i1))
5092 0 : return -1;
5093 : return 0;
5094 : }
5095 :
5096 : int
5097 8 : pattern1382 (rtx x1)
5098 : {
5099 8 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5100 8 : rtx x2, x3, x4;
5101 8 : int res ATTRIBUTE_UNUSED;
5102 8 : if (GET_CODE (x1) != VEC_SELECT)
5103 : return -1;
5104 8 : x2 = XEXP (x1, 1);
5105 8 : if (GET_CODE (x2) != PARALLEL
5106 8 : || XVECLEN (x2, 0) != 1)
5107 : return -1;
5108 8 : x3 = XVECEXP (x2, 0, 0);
5109 8 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
5110 : return -1;
5111 8 : x4 = XEXP (x1, 0);
5112 8 : operands[1] = x4;
5113 8 : if (!const48_operand (operands[2], E_SImode))
5114 : return -1;
5115 8 : switch (GET_MODE (x1))
5116 : {
5117 4 : case E_DFmode:
5118 4 : if (!register_operand (operands[1], E_V2DFmode))
5119 : return -1;
5120 : return 0;
5121 :
5122 4 : case E_SFmode:
5123 4 : if (!register_operand (operands[1], E_V4SFmode))
5124 : return -1;
5125 : return 1;
5126 :
5127 : default:
5128 : return -1;
5129 : }
5130 : }
5131 :
5132 : int
5133 36 : pattern1389 (rtx x1, machine_mode i1, machine_mode i2)
5134 : {
5135 36 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5136 36 : rtx x2, x3, x4, x5, x6, x7, x8;
5137 36 : int res ATTRIBUTE_UNUSED;
5138 36 : x2 = XEXP (x1, 0);
5139 36 : x3 = XEXP (x2, 0);
5140 36 : x4 = XEXP (x3, 0);
5141 36 : x5 = XEXP (x4, 0);
5142 36 : operands[2] = x5;
5143 36 : if (!nonimmediate_operand (operands[2], i2))
5144 : return -1;
5145 36 : x6 = XEXP (x2, 1);
5146 36 : operands[1] = x6;
5147 36 : if (!register_operand (operands[1], i1))
5148 : return -1;
5149 36 : x7 = XEXP (x1, 1);
5150 36 : operands[3] = x7;
5151 36 : if (!nonimm_or_0_operand (operands[3], i1))
5152 : return -1;
5153 36 : x8 = XEXP (x1, 2);
5154 36 : operands[4] = x8;
5155 36 : if (!register_operand (operands[4], E_QImode))
5156 : return -1;
5157 : return 0;
5158 : }
5159 :
5160 : int
5161 258 : pattern1403 (rtx x1, machine_mode i1)
5162 : {
5163 258 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5164 258 : rtx x2, x3;
5165 258 : int res ATTRIBUTE_UNUSED;
5166 258 : if (!register_operand (operands[0], i1)
5167 258 : || GET_MODE (x1) != i1)
5168 : return -1;
5169 244 : x2 = XEXP (x1, 0);
5170 244 : if (GET_MODE (x2) != i1
5171 244 : || !nonimmediate_operand (operands[1], i1)
5172 488 : || !nonimmediate_operand (operands[2], i1))
5173 0 : return -1;
5174 244 : x3 = XEXP (x2, 2);
5175 244 : if (GET_MODE (x3) != i1
5176 244 : || !nonimmediate_operand (operands[3], i1))
5177 0 : return -1;
5178 : return 0;
5179 : }
5180 :
5181 : int
5182 244 : pattern1412 (rtx x1, machine_mode i1)
5183 : {
5184 244 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5185 244 : rtx x2, x3, x4;
5186 244 : int res ATTRIBUTE_UNUSED;
5187 244 : if (!register_operand (operands[0], i1)
5188 244 : || GET_MODE (x1) != i1)
5189 : return -1;
5190 234 : x2 = XEXP (x1, 0);
5191 234 : if (GET_MODE (x2) != i1)
5192 : return -1;
5193 234 : x3 = XEXP (x2, 0);
5194 234 : if (GET_MODE (x3) != i1
5195 234 : || !nonimmediate_operand (operands[1], i1)
5196 468 : || !nonimmediate_operand (operands[2], i1))
5197 0 : return -1;
5198 234 : x4 = XEXP (x2, 2);
5199 234 : if (GET_MODE (x4) != i1
5200 234 : || !nonimmediate_operand (operands[3], i1))
5201 0 : return -1;
5202 : return 0;
5203 : }
5204 :
5205 : int
5206 0 : pattern1422 (rtx x1, machine_mode i1, machine_mode i2)
5207 : {
5208 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5209 0 : rtx x2, x3, x4;
5210 0 : int res ATTRIBUTE_UNUSED;
5211 0 : if (!register_operand (operands[0], i1)
5212 0 : || GET_MODE (x1) != i1)
5213 : return -1;
5214 0 : x2 = XVECEXP (x1, 0, 0);
5215 0 : if (GET_MODE (x2) != i1)
5216 : return -1;
5217 0 : x3 = XEXP (x2, 0);
5218 0 : if (GET_MODE (x3) != i1)
5219 : return -1;
5220 0 : x4 = XEXP (x3, 0);
5221 0 : if (GET_MODE (x4) != i2
5222 0 : || !nonimmediate_operand (operands[1], i2)
5223 0 : || !register_operand (operands[2], i1))
5224 0 : return -1;
5225 : return 0;
5226 : }
5227 :
5228 : int
5229 1002 : pattern1432 (rtx x1, int i1, int i2, int i3, int i4, int i5)
5230 : {
5231 1002 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5232 1002 : rtx x2, x3, x4, x5, x6;
5233 1002 : int res ATTRIBUTE_UNUSED;
5234 1002 : x2 = XVECEXP (x1, 0, 3);
5235 1002 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + i5])
5236 : return -1;
5237 1002 : x3 = XVECEXP (x1, 0, 4);
5238 1002 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + i4])
5239 : return -1;
5240 1002 : x4 = XVECEXP (x1, 0, 5);
5241 1002 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + i3])
5242 : return -1;
5243 1002 : x5 = XVECEXP (x1, 0, 6);
5244 1002 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + i2])
5245 : return -1;
5246 1002 : x6 = XVECEXP (x1, 0, 7);
5247 1002 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
5248 0 : return -1;
5249 : return 0;
5250 : }
5251 :
5252 : int
5253 33 : pattern1440 (rtx x1)
5254 : {
5255 33 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5256 33 : rtx x2, x3, x4, x5;
5257 33 : int res ATTRIBUTE_UNUSED;
5258 33 : x2 = XEXP (x1, 0);
5259 33 : x3 = XEXP (x2, 1);
5260 33 : x4 = XEXP (x3, 0);
5261 33 : if (GET_CODE (x4) != REG
5262 33 : || REGNO (x4) != 17)
5263 : return -1;
5264 9 : x5 = XEXP (x3, 1);
5265 9 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
5266 : return -1;
5267 9 : return pattern1169 (x1); /* [-1, 5] */
5268 : }
5269 :
5270 : int
5271 34 : pattern1450 (rtx x1, machine_mode i1)
5272 : {
5273 34 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5274 34 : rtx x2;
5275 34 : int res ATTRIBUTE_UNUSED;
5276 34 : if (!register_operand (operands[0], i1)
5277 34 : || GET_MODE (x1) != i1)
5278 : return -1;
5279 34 : x2 = XEXP (x1, 0);
5280 34 : if (GET_MODE (x2) != i1
5281 34 : || !nonimmediate_operand (operands[1], i1))
5282 0 : return -1;
5283 : return 0;
5284 : }
5285 :
5286 : int
5287 86002 : pattern1457 (rtx x1, machine_mode i1)
5288 : {
5289 86002 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5290 86002 : rtx x2;
5291 86002 : int res ATTRIBUTE_UNUSED;
5292 86002 : if (!memory_operand (operands[0], i1)
5293 86002 : || GET_MODE (x1) != i1)
5294 : return -1;
5295 83864 : x2 = XVECEXP (x1, 0, 0);
5296 83864 : if (GET_MODE (x2) != i1
5297 83864 : || !nonmemory_operand (operands[1], i1))
5298 1359 : return -1;
5299 : return 0;
5300 : }
5301 :
5302 : int
5303 0 : pattern1463 (rtx x1, machine_mode i1)
5304 : {
5305 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5306 0 : rtx x2;
5307 0 : int res ATTRIBUTE_UNUSED;
5308 0 : if (!register_operand (operands[0], i1)
5309 0 : || GET_MODE (x1) != i1
5310 0 : || !vector_operand (operands[1], i1)
5311 0 : || !register_operand (operands[2], i1))
5312 0 : return -1;
5313 0 : x2 = XVECEXP (x1, 0, 2);
5314 0 : if (GET_MODE (x2) != i1)
5315 : return -1;
5316 : return 0;
5317 : }
5318 :
5319 : int
5320 3126 : pattern1468 ()
5321 : {
5322 3126 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5323 3126 : int res ATTRIBUTE_UNUSED;
5324 3126 : switch (GET_MODE (operands[4]))
5325 : {
5326 135 : case E_QImode:
5327 135 : if (!register_operand (operands[4], E_QImode))
5328 : return -1;
5329 : return 0;
5330 :
5331 42 : case E_HImode:
5332 42 : if (!register_operand (operands[4], E_HImode))
5333 : return -1;
5334 : return 1;
5335 :
5336 784 : case E_SImode:
5337 784 : if (!register_operand (operands[4], E_SImode))
5338 : return -1;
5339 : return 2;
5340 :
5341 2165 : case E_DImode:
5342 2165 : if (!register_operand (operands[4], E_DImode))
5343 : return -1;
5344 : return 3;
5345 :
5346 : default:
5347 : return -1;
5348 : }
5349 : }
5350 :
5351 : int
5352 543 : pattern1479 (rtx x1, machine_mode i1)
5353 : {
5354 543 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5355 543 : rtx x2, x3;
5356 543 : int res ATTRIBUTE_UNUSED;
5357 543 : if (!register_operand (operands[0], i1)
5358 543 : || GET_MODE (x1) != i1)
5359 : return -1;
5360 516 : x2 = XEXP (x1, 0);
5361 516 : if (GET_MODE (x2) != i1)
5362 : return -1;
5363 516 : x3 = XEXP (x2, 0);
5364 516 : if (GET_MODE (x3) != i1
5365 516 : || !nonimmediate_operand (operands[1], i1)
5366 516 : || !nonimmediate_operand (operands[2], i1)
5367 1028 : || !nonimmediate_operand (operands[3], i1))
5368 4 : return -1;
5369 : return 0;
5370 : }
5371 :
5372 : int
5373 1068 : pattern1487 (rtx x1)
5374 : {
5375 1068 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5376 1068 : rtx x2, x3, x4, x5;
5377 1068 : int res ATTRIBUTE_UNUSED;
5378 1068 : x2 = XEXP (x1, 2);
5379 1068 : x3 = XVECEXP (x2, 0, 0);
5380 1068 : if (maybe_ne (SUBREG_BYTE (x3), 0))
5381 : return -1;
5382 1068 : x4 = XEXP (x3, 0);
5383 1068 : if (GET_CODE (x4) != NOT)
5384 : return -1;
5385 75 : x5 = XEXP (x4, 0);
5386 75 : operands[3] = x5;
5387 75 : if (!const_0_to_7_operand (operands[5], E_SImode))
5388 : return -1;
5389 75 : switch (GET_MODE (operands[0]))
5390 : {
5391 48 : case E_V4SImode:
5392 48 : return pattern1485 (x1,
5393 : E_V4SImode,
5394 48 : E_V16QImode); /* [-1, 0] */
5395 :
5396 0 : case E_V2DImode:
5397 0 : if (pattern1485 (x1,
5398 : E_V2DImode,
5399 : E_V16QImode) != 0)
5400 : return -1;
5401 : return 1;
5402 :
5403 0 : case E_V8SImode:
5404 0 : if (pattern1485 (x1,
5405 : E_V8SImode,
5406 : E_V32QImode) != 0)
5407 : return -1;
5408 : return 2;
5409 :
5410 0 : case E_V4DImode:
5411 0 : if (pattern1485 (x1,
5412 : E_V4DImode,
5413 : E_V32QImode) != 0)
5414 : return -1;
5415 : return 3;
5416 :
5417 22 : case E_V32QImode:
5418 22 : if (pattern1486 (x1,
5419 : E_V32QImode,
5420 : E_SImode) != 0)
5421 : return -1;
5422 : return 4;
5423 :
5424 5 : case E_V16QImode:
5425 5 : if (pattern1486 (x1,
5426 : E_V16QImode,
5427 : E_HImode) != 0)
5428 : return -1;
5429 : return 5;
5430 :
5431 : default:
5432 : return -1;
5433 : }
5434 : }
5435 :
5436 : int
5437 371042 : pattern1503 (machine_mode i1)
5438 : {
5439 371042 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5440 371042 : int res ATTRIBUTE_UNUSED;
5441 371042 : if (!register_operand (operands[1], i1)
5442 331 : || !const_0_to_15_operand (operands[2], E_VOIDmode)
5443 331 : || !const_0_to_15_operand (operands[3], E_VOIDmode)
5444 331 : || !const_0_to_15_operand (operands[4], E_VOIDmode)
5445 371373 : || !const_0_to_15_operand (operands[5], E_VOIDmode))
5446 370711 : return -1;
5447 : return 0;
5448 : }
5449 :
5450 : int
5451 36714 : pattern1512 (rtx x1)
5452 : {
5453 36714 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5454 36714 : rtx x2, x3, x4, x5;
5455 36714 : int res ATTRIBUTE_UNUSED;
5456 36714 : if (!register_operand (operands[0], E_SImode))
5457 : return -1;
5458 31061 : x2 = XVECEXP (x1, 0, 0);
5459 31061 : x3 = XEXP (x2, 1);
5460 31061 : if (GET_MODE (x3) != E_SImode
5461 31061 : || !nonimmediate_operand (operands[3], E_SImode)
5462 61694 : || !register_operand (operands[1], E_SImode))
5463 460 : return -1;
5464 30601 : x4 = XVECEXP (x1, 0, 1);
5465 30601 : x5 = XEXP (x4, 1);
5466 30601 : if (GET_MODE (x5) != E_SImode)
5467 : return -1;
5468 : return 0;
5469 : }
5470 :
5471 : int
5472 9 : pattern1520 (rtx x1)
5473 : {
5474 9 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5475 9 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5476 9 : int res ATTRIBUTE_UNUSED;
5477 9 : x2 = XVECEXP (x1, 0, 0);
5478 9 : x3 = XEXP (x2, 1);
5479 9 : x4 = XEXP (x3, 0);
5480 9 : x5 = XEXP (x4, 0);
5481 9 : x6 = XEXP (x5, 0);
5482 9 : operands[1] = x6;
5483 9 : x7 = XVECEXP (x1, 0, 1);
5484 9 : x8 = XEXP (x7, 0);
5485 9 : operands[0] = x8;
5486 9 : x9 = XEXP (x4, 1);
5487 9 : if (!rtx_equal_p (x9, operands[1]))
5488 : return -1;
5489 9 : return pattern1511 (x1); /* [-1, 1] */
5490 : }
5491 :
5492 : int
5493 4423 : pattern1527 (rtx x1)
5494 : {
5495 4423 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5496 4423 : rtx x2, x3, x4, x5, x6;
5497 4423 : int res ATTRIBUTE_UNUSED;
5498 4423 : x2 = XVECEXP (x1, 0, 2);
5499 4423 : if (GET_CODE (x2) != CLOBBER)
5500 : return -1;
5501 4423 : x3 = XEXP (x2, 0);
5502 4423 : if (GET_CODE (x3) != REG
5503 4423 : || REGNO (x3) != 17
5504 8846 : || GET_MODE (x3) != E_CCmode)
5505 : return -1;
5506 4423 : x4 = XVECEXP (x1, 0, 0);
5507 4423 : x5 = XEXP (x4, 1);
5508 4423 : x6 = XVECEXP (x5, 0, 0);
5509 4423 : operands[1] = x6;
5510 4423 : return 0;
5511 : }
5512 :
5513 : int
5514 155 : pattern1534 (rtx x1, machine_mode i1, machine_mode i2)
5515 : {
5516 155 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5517 155 : rtx x2;
5518 155 : int res ATTRIBUTE_UNUSED;
5519 155 : if (!register_operand (operands[0], i2)
5520 155 : || GET_MODE (x1) != i2)
5521 : return -1;
5522 139 : x2 = XEXP (x1, 0);
5523 139 : if (GET_MODE (x2) != i2
5524 139 : || !register_operand (operands[1], i2)
5525 127 : || !register_operand (operands[2], i2)
5526 266 : || !nonimmediate_operand (operands[3], i1))
5527 24 : return -1;
5528 : return 0;
5529 : }
5530 :
5531 : int
5532 326041 : pattern1541 (rtx x1, machine_mode i1)
5533 : {
5534 326041 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5535 326041 : int res ATTRIBUTE_UNUSED;
5536 326041 : if (!nonimmediate_operand (operands[0], i1)
5537 325783 : || GET_MODE (x1) != i1
5538 325783 : || !nonimmediate_operand (operands[1], i1)
5539 649370 : || !nonmemory_operand (operands[2], E_QImode))
5540 7887 : return -1;
5541 : return 0;
5542 : }
5543 :
5544 : int
5545 159 : pattern1548 (rtx x1, machine_mode i1)
5546 : {
5547 159 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5548 159 : rtx x2, x3;
5549 159 : int res ATTRIBUTE_UNUSED;
5550 159 : if (!register_operand (operands[0], i1)
5551 159 : || GET_MODE (x1) != i1
5552 159 : || !nonimmediate_operand (operands[3], i1)
5553 223 : || !nonimmediate_operand (operands[4], i1))
5554 95 : return -1;
5555 64 : x2 = XEXP (x1, 0);
5556 64 : x3 = XEXP (x2, 0);
5557 64 : switch (GET_MODE (x3))
5558 : {
5559 52 : case E_SImode:
5560 52 : if (!nonimmediate_operand (operands[1], E_SImode))
5561 : return -1;
5562 : return 0;
5563 :
5564 12 : case E_DImode:
5565 12 : if (!nonimmediate_operand (operands[1], E_DImode))
5566 : return -1;
5567 : return 1;
5568 :
5569 : default:
5570 : return -1;
5571 : }
5572 : }
5573 :
5574 : int
5575 242 : pattern1558 (rtx x1, machine_mode i1, machine_mode i2)
5576 : {
5577 242 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5578 242 : rtx x2, x3, x4, x5, x6, x7;
5579 242 : int res ATTRIBUTE_UNUSED;
5580 242 : if (!register_operand (operands[0], i2)
5581 242 : || GET_MODE (x1) != i2)
5582 : return -1;
5583 199 : x2 = XEXP (x1, 0);
5584 199 : if (GET_MODE (x2) != i1)
5585 : return -1;
5586 199 : x3 = XEXP (x2, 0);
5587 199 : if (GET_MODE (x3) != i1)
5588 : return -1;
5589 199 : x4 = XEXP (x3, 0);
5590 199 : if (GET_MODE (x4) != i1)
5591 : return -1;
5592 199 : x5 = XEXP (x4, 0);
5593 199 : if (GET_MODE (x5) != i1
5594 199 : || !register_operand (operands[1], i2))
5595 50 : return -1;
5596 149 : x6 = XEXP (x4, 1);
5597 149 : if (GET_MODE (x6) != i1
5598 149 : || !register_operand (operands[2], i2))
5599 29 : return -1;
5600 120 : x7 = XEXP (x3, 1);
5601 120 : if (GET_MODE (x7) != i1)
5602 : return -1;
5603 : return 0;
5604 : }
5605 :
5606 : int
5607 4408 : pattern1568 (rtx x1, machine_mode i1, machine_mode i2)
5608 : {
5609 4408 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5610 4408 : rtx x2;
5611 4408 : int res ATTRIBUTE_UNUSED;
5612 4408 : if (GET_MODE (x1) != i1)
5613 : return -1;
5614 4408 : x2 = XEXP (x1, 0);
5615 4408 : if (GET_MODE (x2) != i1
5616 4408 : || !register_operand (operands[1], i2)
5617 8783 : || !nonimm_or_0_operand (operands[2], i1))
5618 68 : return -1;
5619 : return 0;
5620 : }
5621 :
5622 : int
5623 190 : pattern1576 (rtx x1, machine_mode i1)
5624 : {
5625 190 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5626 190 : rtx x2, x3, x4, x5, x6, x7;
5627 190 : int res ATTRIBUTE_UNUSED;
5628 190 : x2 = XEXP (x1, 0);
5629 190 : if (GET_CODE (x2) != VEC_SELECT
5630 190 : || GET_MODE (x2) != i1)
5631 : return -1;
5632 190 : x3 = XEXP (x2, 1);
5633 190 : if (GET_CODE (x3) != PARALLEL
5634 190 : || XVECLEN (x3, 0) != 1)
5635 : return -1;
5636 190 : x4 = XVECEXP (x3, 0, 0);
5637 190 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
5638 : return -1;
5639 190 : x5 = XEXP (x1, 1);
5640 190 : if (GET_CODE (x5) != VEC_SELECT
5641 190 : || GET_MODE (x5) != i1)
5642 : return -1;
5643 190 : x6 = XEXP (x5, 1);
5644 190 : if (GET_CODE (x6) != PARALLEL
5645 190 : || XVECLEN (x6, 0) != 1)
5646 : return -1;
5647 190 : x7 = XVECEXP (x6, 0, 0);
5648 190 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
5649 0 : return -1;
5650 : return 0;
5651 : }
5652 :
5653 : int
5654 186 : pattern1587 (rtx x1, machine_mode i1)
5655 : {
5656 186 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5657 186 : int res ATTRIBUTE_UNUSED;
5658 186 : if (!nonimmediate_operand (operands[0], i1)
5659 186 : || GET_MODE (x1) != i1
5660 186 : || !nonimmediate_operand (operands[1], i1)
5661 372 : || !ix86_carry_flag_unset_operator (operands[2], i1))
5662 22 : return -1;
5663 : return 0;
5664 : }
5665 :
5666 : int
5667 170 : pattern1594 (rtx x1, int *pnum_clobbers)
5668 : {
5669 170 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5670 170 : rtx x2, x3, x4, x5, x6;
5671 170 : int res ATTRIBUTE_UNUSED;
5672 170 : x2 = XVECEXP (x1, 0, 1);
5673 170 : x3 = XEXP (x2, 1);
5674 170 : x4 = XEXP (x3, 0);
5675 170 : if (!rtx_equal_p (x4, operands[2]))
5676 : return -1;
5677 170 : x5 = XEXP (x3, 1);
5678 170 : if (!rtx_equal_p (x5, operands[3]))
5679 : return -1;
5680 170 : switch (GET_CODE (operands[3]))
5681 : {
5682 138 : case REG:
5683 138 : case SUBREG:
5684 138 : case MEM:
5685 138 : if (!nonimmediate_operand (operands[3], E_SImode))
5686 : return -1;
5687 124 : x6 = XVECEXP (x1, 0, 2);
5688 124 : return pattern1593 (x6, pnum_clobbers); /* [-1, 2] */
5689 :
5690 4 : case CONST_INT:
5691 4 : if (!const_int_operand (operands[3], E_SImode))
5692 : return -1;
5693 4 : x6 = XVECEXP (x1, 0, 2);
5694 4 : if (pattern963 (x6,
5695 : E_CCmode,
5696 : 17) != 0)
5697 : return -1;
5698 : return 3;
5699 :
5700 : default:
5701 : return -1;
5702 : }
5703 : }
5704 :
5705 : int
5706 370 : pattern1606 (rtx x1)
5707 : {
5708 370 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5709 370 : rtx x2, x3, x4, x5, x6;
5710 370 : int res ATTRIBUTE_UNUSED;
5711 370 : if (!register_operand (operands[0], E_V4SFmode)
5712 370 : || GET_MODE (x1) != E_V4SFmode)
5713 : return -1;
5714 358 : x2 = XEXP (x1, 0);
5715 358 : if (GET_MODE (x2) != E_V4SFmode)
5716 : return -1;
5717 358 : x3 = XEXP (x2, 0);
5718 358 : if (GET_MODE (x3) != E_V8SFmode
5719 358 : || !vector_operand (operands[1], E_V4SFmode))
5720 0 : return -1;
5721 358 : x4 = XEXP (x1, 1);
5722 358 : operands[2] = x4;
5723 358 : if (!nonimm_or_0_operand (operands[2], E_V4SFmode))
5724 : return -1;
5725 358 : x5 = XEXP (x1, 2);
5726 358 : operands[3] = x5;
5727 358 : x6 = XEXP (x3, 1);
5728 358 : if (!rtx_equal_p (x6, operands[1]))
5729 : return -1;
5730 : return 0;
5731 : }
5732 :
5733 : int
5734 0 : pattern1617 (rtx x1, machine_mode i1, machine_mode i2)
5735 : {
5736 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5737 0 : rtx x2, x3, x4;
5738 0 : int res ATTRIBUTE_UNUSED;
5739 0 : if (!register_operand (operands[0], i1)
5740 0 : || GET_MODE (x1) != i1)
5741 : return -1;
5742 0 : x2 = XVECEXP (x1, 0, 0);
5743 0 : if (GET_MODE (x2) != i1)
5744 : return -1;
5745 0 : x3 = XEXP (x2, 0);
5746 0 : if (GET_MODE (x3) != i1
5747 0 : || !register_operand (operands[1], i1)
5748 0 : || !register_operand (operands[2], i1)
5749 0 : || !nonimmediate_operand (operands[3], i1)
5750 0 : || !register_operand (operands[4], i2))
5751 0 : return -1;
5752 0 : x4 = XEXP (x2, 1);
5753 0 : if (!rtx_equal_p (x4, operands[3]))
5754 : return -1;
5755 : return 0;
5756 : }
5757 :
5758 : int
5759 287 : pattern1628 (machine_mode i1)
5760 : {
5761 287 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5762 287 : int res ATTRIBUTE_UNUSED;
5763 287 : if (!vsib_address_operand (operands[0], i1))
5764 : return -1;
5765 233 : switch (GET_MODE (operands[2]))
5766 : {
5767 159 : case E_V8SImode:
5768 159 : if (!register_operand (operands[2], E_V8SImode))
5769 : return -1;
5770 : return 0;
5771 :
5772 74 : case E_V8DImode:
5773 74 : if (!register_operand (operands[2], E_V8DImode))
5774 : return -1;
5775 : return 1;
5776 :
5777 : default:
5778 : return -1;
5779 : }
5780 : }
5781 :
5782 : int
5783 218 : pattern1637 (machine_mode i1)
5784 : {
5785 218 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5786 218 : int res ATTRIBUTE_UNUSED;
5787 218 : if (!vsib_address_operand (operands[3], i1))
5788 : return -1;
5789 208 : switch (GET_MODE (operands[2]))
5790 : {
5791 128 : case E_V8SImode:
5792 128 : if (!register_operand (operands[2], E_V8SImode))
5793 : return -1;
5794 : return 0;
5795 :
5796 80 : case E_V8DImode:
5797 80 : if (!register_operand (operands[2], E_V8DImode))
5798 : return -1;
5799 : return 1;
5800 :
5801 : default:
5802 : return -1;
5803 : }
5804 : }
5805 :
5806 : int
5807 3709 : pattern1645 (rtx x1, machine_mode i1, machine_mode i2)
5808 : {
5809 3709 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5810 3709 : rtx x2, x3;
5811 3709 : int res ATTRIBUTE_UNUSED;
5812 3709 : if (!register_operand (operands[0], i1)
5813 3709 : || GET_MODE (x1) != i1)
5814 : return -1;
5815 3679 : x2 = XEXP (x1, 0);
5816 3679 : if (GET_MODE (x2) != i2
5817 3679 : || !register_operand (operands[1], i1))
5818 893 : return -1;
5819 2786 : x3 = XEXP (x2, 1);
5820 2786 : operands[2] = x3;
5821 2786 : if (!nonimmediate_operand (operands[2], i1))
5822 : return -1;
5823 : return 0;
5824 : }
5825 :
5826 : int
5827 57912 : pattern1653 (rtx x1, machine_mode i1)
5828 : {
5829 57912 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5830 57912 : rtx x2;
5831 57912 : int res ATTRIBUTE_UNUSED;
5832 57912 : if (!nonimmediate_operand (operands[1], i1)
5833 57900 : || !register_operand (operands[0], i1)
5834 115812 : || GET_MODE (x1) != i1)
5835 12 : return -1;
5836 57900 : x2 = XEXP (x1, 1);
5837 57900 : if (GET_MODE (x2) != i1)
5838 : return -1;
5839 : return 0;
5840 : }
5841 :
5842 : int
5843 18321 : pattern1660 (rtx x1)
5844 : {
5845 18321 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5846 18321 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5847 18321 : rtx x10, x11;
5848 18321 : int res ATTRIBUTE_UNUSED;
5849 18321 : if (!plusminuslogic_operator (operands[3], E_SImode))
5850 : return -1;
5851 12277 : x2 = XVECEXP (x1, 0, 1);
5852 12277 : if (GET_CODE (x2) != CLOBBER)
5853 : return -1;
5854 12277 : x3 = XEXP (x2, 0);
5855 12277 : if (GET_CODE (x3) != REG
5856 12277 : || REGNO (x3) != 17
5857 24554 : || GET_MODE (x3) != E_CCmode)
5858 : return -1;
5859 12277 : x4 = XVECEXP (x1, 0, 0);
5860 12277 : x5 = XEXP (x4, 0);
5861 12277 : operands[4] = x5;
5862 12277 : if (!register_operand (operands[4], E_SImode))
5863 : return -1;
5864 12272 : x6 = XEXP (x4, 1);
5865 12272 : x7 = XEXP (x6, 1);
5866 12272 : operands[2] = x7;
5867 12272 : if (!nonmemory_operand (operands[2], E_SImode))
5868 : return -1;
5869 12227 : x8 = XEXP (x6, 0);
5870 12227 : if (!rtx_equal_p (x8, operands[4]))
5871 : return -1;
5872 12180 : x9 = PATTERN (peep2_next_insn (2));
5873 12180 : x10 = XEXP (x9, 1);
5874 12180 : if (!rtx_equal_p (x10, operands[0]))
5875 : return -1;
5876 1554 : x11 = PATTERN (peep2_next_insn (3));
5877 1554 : if (GET_CODE (x11) != SET)
5878 : return -1;
5879 : return 0;
5880 : }
5881 :
5882 : int
5883 1084 : pattern1675 (rtx x1, machine_mode i1)
5884 : {
5885 1084 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5886 1084 : rtx x2, x3, x4;
5887 1084 : int res ATTRIBUTE_UNUSED;
5888 1084 : if (!register_operand (operands[0], i1)
5889 1084 : || GET_MODE (x1) != i1)
5890 : return -1;
5891 1041 : x2 = XVECEXP (x1, 0, 0);
5892 1041 : if (GET_MODE (x2) != i1)
5893 : return -1;
5894 1041 : x3 = XEXP (x2, 0);
5895 1041 : if (GET_MODE (x3) != i1)
5896 : return -1;
5897 1041 : x4 = XEXP (x3, 0);
5898 1041 : if (GET_MODE (x4) != i1
5899 1041 : || !register_operand (operands[1], i1)
5900 1041 : || !register_operand (operands[2], i1)
5901 2082 : || !nonimm_or_0_operand (operands[3], i1))
5902 0 : return -1;
5903 : return 0;
5904 : }
5905 :
5906 : int
5907 54 : pattern1683 (rtx x1, machine_mode i1)
5908 : {
5909 54 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5910 54 : rtx x2, x3, x4, x5;
5911 54 : int res ATTRIBUTE_UNUSED;
5912 54 : if (!register_operand (operands[0], i1)
5913 54 : || GET_MODE (x1) != i1)
5914 : return -1;
5915 39 : x2 = XVECEXP (x1, 0, 0);
5916 39 : if (GET_MODE (x2) != i1)
5917 : return -1;
5918 39 : x3 = XEXP (x2, 0);
5919 39 : if (GET_MODE (x3) != i1)
5920 : return -1;
5921 39 : x4 = XEXP (x3, 0);
5922 39 : if (GET_MODE (x4) != i1
5923 39 : || !nonimmediate_operand (operands[1], i1)
5924 78 : || !register_operand (operands[2], i1))
5925 6 : return -1;
5926 33 : x5 = XEXP (x3, 2);
5927 33 : if (GET_MODE (x5) != i1
5928 33 : || !register_operand (operands[3], i1))
5929 0 : return -1;
5930 : return 0;
5931 : }
5932 :
5933 : int
5934 49081 : pattern1696 (rtx x1, machine_mode i1)
5935 : {
5936 49081 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5937 49081 : int res ATTRIBUTE_UNUSED;
5938 49081 : if (!nonimmediate_operand (operands[1], i1)
5939 49081 : || !x86_64_hilo_general_operand (operands[2], i1)
5940 49004 : || !nonimmediate_operand (operands[0], i1)
5941 98085 : || GET_MODE (x1) != i1)
5942 77 : return -1;
5943 : return 0;
5944 : }
5945 :
5946 : int
5947 1279 : pattern1703 (machine_mode i1)
5948 : {
5949 1279 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5950 1279 : int res ATTRIBUTE_UNUSED;
5951 1279 : if (!register_operand (operands[1], i1)
5952 477 : || !const_0_to_15_operand (operands[2], E_VOIDmode)
5953 477 : || !const_0_to_15_operand (operands[3], E_VOIDmode)
5954 477 : || !const_0_to_15_operand (operands[4], E_VOIDmode)
5955 1756 : || !const_0_to_15_operand (operands[5], E_VOIDmode))
5956 802 : return -1;
5957 : return 0;
5958 : }
5959 :
5960 : int
5961 2 : pattern1712 (rtx x1, machine_mode i1)
5962 : {
5963 2 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5964 2 : rtx x2, x3, x4;
5965 2 : int res ATTRIBUTE_UNUSED;
5966 2 : if (!register_operand (operands[0], i1)
5967 2 : || GET_MODE (x1) != i1)
5968 : return -1;
5969 2 : x2 = XEXP (x1, 0);
5970 2 : if (GET_MODE (x2) != i1
5971 2 : || !nonimmediate_operand (operands[1], i1))
5972 0 : return -1;
5973 2 : x3 = XEXP (x1, 1);
5974 2 : if (GET_MODE (x3) != i1)
5975 : return -1;
5976 2 : x4 = XEXP (x3, 0);
5977 2 : if (GET_MODE (x4) != i1)
5978 : return -1;
5979 : return 0;
5980 : }
5981 :
5982 : int
5983 18 : pattern1721 (rtx x1, machine_mode i1)
5984 : {
5985 18 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5986 18 : rtx x2;
5987 18 : int res ATTRIBUTE_UNUSED;
5988 18 : if (!bt_comparison_operator (operands[3], i1))
5989 : return -1;
5990 18 : x2 = XVECEXP (x1, 0, 0);
5991 18 : switch (GET_MODE (x2))
5992 : {
5993 0 : case E_V16QImode:
5994 0 : return pattern1720 (x1,
5995 0 : E_V16QImode); /* [-1, 0] */
5996 :
5997 0 : case E_V8HImode:
5998 0 : if (pattern1720 (x1,
5999 : E_V8HImode) != 0)
6000 : return -1;
6001 : return 1;
6002 :
6003 0 : case E_V4SImode:
6004 0 : if (pattern1720 (x1,
6005 : E_V4SImode) != 0)
6006 : return -1;
6007 : return 2;
6008 :
6009 8 : case E_V2DImode:
6010 8 : if (pattern1720 (x1,
6011 : E_V2DImode) != 0)
6012 : return -1;
6013 : return 3;
6014 :
6015 0 : case E_V1TImode:
6016 0 : if (pattern1720 (x1,
6017 : E_V1TImode) != 0)
6018 : return -1;
6019 : return 4;
6020 :
6021 0 : case E_V4SFmode:
6022 0 : if (pattern1720 (x1,
6023 : E_V4SFmode) != 0)
6024 : return -1;
6025 : return 5;
6026 :
6027 0 : case E_V2DFmode:
6028 0 : if (pattern1720 (x1,
6029 : E_V2DFmode) != 0)
6030 : return -1;
6031 : return 6;
6032 :
6033 0 : case E_V32QImode:
6034 0 : if (pattern1720 (x1,
6035 : E_V32QImode) != 0)
6036 : return -1;
6037 : return 7;
6038 :
6039 0 : case E_V16HImode:
6040 0 : if (pattern1720 (x1,
6041 : E_V16HImode) != 0)
6042 : return -1;
6043 : return 8;
6044 :
6045 0 : case E_V8SImode:
6046 0 : if (pattern1720 (x1,
6047 : E_V8SImode) != 0)
6048 : return -1;
6049 : return 9;
6050 :
6051 10 : case E_V4DImode:
6052 10 : if (pattern1720 (x1,
6053 : E_V4DImode) != 0)
6054 : return -1;
6055 : return 10;
6056 :
6057 0 : case E_V2TImode:
6058 0 : if (pattern1720 (x1,
6059 : E_V2TImode) != 0)
6060 : return -1;
6061 : return 11;
6062 :
6063 0 : case E_V8SFmode:
6064 0 : if (pattern1720 (x1,
6065 : E_V8SFmode) != 0)
6066 : return -1;
6067 : return 12;
6068 :
6069 0 : case E_V4DFmode:
6070 0 : if (pattern1720 (x1,
6071 : E_V4DFmode) != 0)
6072 : return -1;
6073 : return 13;
6074 :
6075 : default:
6076 : return -1;
6077 : }
6078 : }
6079 :
6080 : int
6081 1786 : pattern1746 (rtx x1, machine_mode i1)
6082 : {
6083 1786 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6084 1786 : rtx x2, x3, x4;
6085 1786 : int res ATTRIBUTE_UNUSED;
6086 1786 : if (!vsib_mem_operator (operands[5], i1)
6087 1786 : || !register_operand (operands[6], E_QImode))
6088 166 : return -1;
6089 1620 : x2 = XEXP (x1, 1);
6090 1620 : if (GET_MODE (x2) != i1
6091 1620 : || !register_operand (operands[3], i1)
6092 3190 : || !scratch_operand (operands[1], E_QImode))
6093 50 : return -1;
6094 1570 : x3 = XEXP (x1, 0);
6095 1570 : x4 = XEXP (x3, 0);
6096 1570 : switch (GET_MODE (x4))
6097 : {
6098 0 : case E_SImode:
6099 0 : return pattern1745 (
6100 0 : E_SImode); /* [-1, 1] */
6101 :
6102 1570 : case E_DImode:
6103 1570 : res = pattern1745 (
6104 : E_DImode);
6105 1570 : if (res >= 0)
6106 1460 : return res + 2; /* [2, 3] */
6107 : return -1;
6108 :
6109 : default:
6110 : return -1;
6111 : }
6112 : }
6113 :
6114 : int
6115 3 : pattern1758 (rtx x1, machine_mode i1)
6116 : {
6117 3 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6118 3 : int res ATTRIBUTE_UNUSED;
6119 3 : if (!ix86_carry_flag_unset_operator (operands[2], i1)
6120 3 : || !nonimmediate_operand (operands[1], i1)
6121 3 : || !nonimmediate_operand (operands[0], i1)
6122 6 : || GET_MODE (x1) != i1)
6123 0 : return -1;
6124 : return 0;
6125 : }
6126 :
6127 : int
6128 514 : pattern1765 (rtx x1, machine_mode i1)
6129 : {
6130 514 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6131 514 : rtx x2, x3, x4;
6132 514 : int res ATTRIBUTE_UNUSED;
6133 514 : if (!register_operand (operands[0], i1)
6134 514 : || GET_MODE (x1) != i1)
6135 : return -1;
6136 492 : x2 = XVECEXP (x1, 0, 0);
6137 492 : if (GET_MODE (x2) != i1)
6138 : return -1;
6139 492 : x3 = XEXP (x2, 0);
6140 492 : if (GET_MODE (x3) != i1)
6141 : return -1;
6142 492 : x4 = XEXP (x3, 0);
6143 492 : if (GET_MODE (x4) != i1
6144 492 : || !register_operand (operands[2], i1)
6145 492 : || !nonimm_or_0_operand (operands[4], i1)
6146 984 : || !register_operand (operands[1], i1))
6147 0 : return -1;
6148 : return 0;
6149 : }
6150 :
6151 : int
6152 94 : pattern1771 (machine_mode i1)
6153 : {
6154 94 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6155 94 : int res ATTRIBUTE_UNUSED;
6156 94 : if (!vsib_address_operand (operands[0], i1))
6157 : return -1;
6158 77 : switch (GET_MODE (operands[2]))
6159 : {
6160 23 : case E_V8SImode:
6161 23 : if (!register_operand (operands[2], E_V8SImode)
6162 23 : || !register_operand (operands[3], E_V8SFmode))
6163 2 : return -1;
6164 : return 0;
6165 :
6166 54 : case E_V4DImode:
6167 54 : if (!register_operand (operands[2], E_V4DImode)
6168 54 : || !register_operand (operands[3], E_V4SFmode))
6169 29 : return -1;
6170 : return 1;
6171 :
6172 : default:
6173 : return -1;
6174 : }
6175 : }
6176 :
6177 : int
6178 1308 : pattern1781 (machine_mode i1)
6179 : {
6180 1308 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6181 1308 : int res ATTRIBUTE_UNUSED;
6182 1308 : if (!vsib_address_operand (operands[4], i1))
6183 : return -1;
6184 1308 : switch (GET_MODE (operands[3]))
6185 : {
6186 616 : case E_V4SImode:
6187 616 : if (!register_operand (operands[3], E_V4SImode))
6188 : return -1;
6189 : return 0;
6190 :
6191 692 : case E_V2DImode:
6192 692 : if (!register_operand (operands[3], E_V2DImode))
6193 : return -1;
6194 : return 1;
6195 :
6196 : default:
6197 : return -1;
6198 : }
6199 : }
6200 :
6201 : int
6202 1104 : pattern1789 (rtx x1, machine_mode i1, machine_mode i2)
6203 : {
6204 1104 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6205 1104 : rtx x2, x3;
6206 1104 : int res ATTRIBUTE_UNUSED;
6207 1104 : if (!register_operand (operands[0], i1)
6208 1104 : || GET_MODE (x1) != i1)
6209 : return -1;
6210 965 : x2 = XEXP (x1, 0);
6211 965 : if (GET_MODE (x2) != i1)
6212 : return -1;
6213 965 : x3 = XEXP (x2, 0);
6214 965 : if (GET_MODE (x3) != i2
6215 965 : || !register_operand (operands[1], i1)
6216 963 : || !nonimmediate_operand (operands[2], i1)
6217 1812 : || !nonimm_or_0_operand (operands[11], i1))
6218 173 : return -1;
6219 : return 0;
6220 : }
6221 :
6222 : int
6223 0 : pattern1798 (rtx x1, machine_mode i1)
6224 : {
6225 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6226 0 : rtx x2;
6227 0 : int res ATTRIBUTE_UNUSED;
6228 0 : if (!register_operand (operands[0], i1))
6229 : return -1;
6230 0 : operands[2] = x1;
6231 0 : x2 = PATTERN (peep2_next_insn (1));
6232 0 : return pattern1797 (x2,
6233 0 : i1); /* [-1, 0] */
6234 : }
6235 :
6236 : int
6237 813 : pattern1805 (machine_mode i1)
6238 : {
6239 813 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6240 813 : int res ATTRIBUTE_UNUSED;
6241 813 : if (!vsib_address_operand (operands[0], i1))
6242 : return -1;
6243 794 : switch (GET_MODE (operands[2]))
6244 : {
6245 400 : case E_V16SImode:
6246 400 : return pattern1803 (
6247 : E_HImode,
6248 : E_V16SFmode,
6249 400 : E_V16SImode); /* [-1, 0] */
6250 :
6251 394 : case E_V8DImode:
6252 394 : if (pattern1803 (
6253 : E_QImode,
6254 : E_V8SFmode,
6255 : E_V8DImode) != 0)
6256 : return -1;
6257 : return 1;
6258 :
6259 : default:
6260 : return -1;
6261 : }
6262 : }
6263 :
6264 : int
6265 25 : pattern1812 (rtx x1, machine_mode i1)
6266 : {
6267 25 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6268 25 : rtx x2, x3, x4, x5, x6, x7;
6269 25 : int res ATTRIBUTE_UNUSED;
6270 25 : if (!register_operand (operands[0], i1))
6271 : return -1;
6272 25 : x2 = XVECEXP (x1, 0, 0);
6273 25 : x3 = XEXP (x2, 1);
6274 25 : if (GET_MODE (x3) != i1
6275 25 : || !register_operand (operands[1], i1))
6276 0 : return -1;
6277 25 : x4 = XVECEXP (x1, 0, 1);
6278 25 : x5 = XEXP (x4, 0);
6279 25 : if (GET_MODE (x5) != i1)
6280 : return -1;
6281 25 : x6 = XEXP (x4, 1);
6282 25 : if (GET_MODE (x6) != i1)
6283 : return -1;
6284 25 : x7 = XEXP (x6, 0);
6285 25 : if (GET_MODE (x7) != i1
6286 25 : || !const_int_operand (operands[2], i1))
6287 0 : return -1;
6288 : return 0;
6289 : }
6290 :
6291 : int
6292 1317 : pattern1823 (rtx x1, machine_mode i1, machine_mode i2)
6293 : {
6294 1317 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6295 1317 : rtx x2, x3;
6296 1317 : int res ATTRIBUTE_UNUSED;
6297 1317 : if (!register_operand (operands[0], i1)
6298 1317 : || GET_MODE (x1) != i1)
6299 : return -1;
6300 280 : x2 = XEXP (x1, 0);
6301 280 : if (GET_MODE (x2) != i2
6302 280 : || !nonimmediate_operand (operands[1], i1))
6303 0 : return -1;
6304 280 : x3 = XEXP (x2, 1);
6305 280 : if (!rtx_equal_p (x3, operands[1]))
6306 : return -1;
6307 : return 0;
6308 : }
6309 :
6310 : int
6311 836 : pattern1828 (rtx x1, machine_mode i1, machine_mode i2)
6312 : {
6313 836 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6314 836 : rtx x2, x3;
6315 836 : int res ATTRIBUTE_UNUSED;
6316 836 : if (!register_operand (operands[0], i1)
6317 828 : || GET_MODE (x1) != i1
6318 828 : || !register_operand (operands[2], i1)
6319 828 : || !vsib_mem_operator (operands[7], i2)
6320 828 : || !register_operand (operands[5], i1)
6321 1598 : || !scratch_operand (operands[1], i1))
6322 74 : return -1;
6323 762 : x2 = XVECEXP (x1, 0, 1);
6324 762 : x3 = XEXP (x2, 0);
6325 762 : switch (GET_MODE (x3))
6326 : {
6327 0 : case E_SImode:
6328 0 : return pattern1827 (
6329 0 : E_SImode); /* [-1, 1] */
6330 :
6331 762 : case E_DImode:
6332 762 : res = pattern1827 (
6333 : E_DImode);
6334 762 : if (res >= 0)
6335 686 : return res + 2; /* [2, 3] */
6336 : return -1;
6337 :
6338 : default:
6339 : return -1;
6340 : }
6341 : }
6342 :
6343 : int
6344 61831 : pattern1840 (rtx x1, machine_mode i1, machine_mode i2)
6345 : {
6346 61831 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6347 61831 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6348 61831 : rtx x10;
6349 61831 : int res ATTRIBUTE_UNUSED;
6350 61831 : x2 = XVECEXP (x1, 0, 0);
6351 61831 : x3 = XEXP (x2, 1);
6352 61831 : x4 = XEXP (x3, 0);
6353 61831 : x5 = XEXP (x4, 0);
6354 61831 : if (GET_MODE (x5) != i2
6355 61831 : || !nonimmediate_operand (operands[1], i1))
6356 26 : return -1;
6357 61805 : x6 = XEXP (x4, 1);
6358 61805 : if (GET_MODE (x6) != i2
6359 61805 : || !nonimmediate_operand (operands[2], i1))
6360 36 : return -1;
6361 61769 : x7 = XEXP (x3, 1);
6362 61769 : if (GET_MODE (x7) != i2)
6363 : return -1;
6364 61769 : x8 = XEXP (x7, 0);
6365 61769 : if (GET_MODE (x8) != i1
6366 61769 : || !register_operand (operands[0], i1))
6367 0 : return -1;
6368 61769 : x9 = XVECEXP (x1, 0, 1);
6369 61769 : x10 = XEXP (x9, 1);
6370 61769 : if (GET_MODE (x10) != i1
6371 61769 : || !scratch_operand (operands[3], i1))
6372 20 : return -1;
6373 : return 0;
6374 : }
6375 :
6376 : int
6377 246 : pattern1852 (rtx x1, machine_mode i1)
6378 : {
6379 246 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6380 246 : int res ATTRIBUTE_UNUSED;
6381 246 : if (!register_operand (operands[5], i1))
6382 : return -1;
6383 110 : switch (GET_MODE (x1))
6384 : {
6385 0 : case E_SImode:
6386 0 : if (!vsib_address_operand (operands[3], E_SImode))
6387 : return -1;
6388 : return 0;
6389 :
6390 110 : case E_DImode:
6391 110 : if (!vsib_address_operand (operands[3], E_DImode))
6392 : return -1;
6393 : return 1;
6394 :
6395 : default:
6396 : return -1;
6397 : }
6398 : }
6399 :
6400 : int
6401 9445 : pattern1860 (rtx x1)
6402 : {
6403 9445 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6404 9445 : rtx x2, x3, x4, x5;
6405 9445 : int res ATTRIBUTE_UNUSED;
6406 9445 : x2 = XEXP (x1, 1);
6407 9445 : if (GET_CODE (x2) != COMPARE)
6408 : return -1;
6409 2584 : x3 = XEXP (x2, 1);
6410 2584 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6411 : return -1;
6412 379 : x4 = XEXP (x1, 0);
6413 379 : if (GET_CODE (x4) != REG
6414 379 : || REGNO (x4) != 17)
6415 : return -1;
6416 379 : x5 = XEXP (x2, 0);
6417 379 : if (!rtx_equal_p (x5, operands[0]))
6418 : return -1;
6419 : return 0;
6420 : }
6421 :
6422 : int
6423 552 : pattern1867 (rtx x1, machine_mode i1)
6424 : {
6425 552 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6426 552 : rtx x2;
6427 552 : int res ATTRIBUTE_UNUSED;
6428 552 : if (!register_operand (operands[0], i1)
6429 552 : || GET_MODE (x1) != i1)
6430 : return -1;
6431 502 : x2 = XEXP (x1, 0);
6432 502 : if (GET_MODE (x2) != i1
6433 502 : || !nonimmediate_operand (operands[1], i1)
6434 1004 : || !nonimm_or_0_operand (operands[10], i1))
6435 24 : return -1;
6436 : return 0;
6437 : }
6438 :
6439 : int
6440 736 : pattern1871 ()
6441 : {
6442 736 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6443 736 : int res ATTRIBUTE_UNUSED;
6444 736 : if (!const_0_to_15_operand (operands[2], E_VOIDmode)
6445 736 : || !const_0_to_15_operand (operands[3], E_VOIDmode)
6446 736 : || !const_0_to_15_operand (operands[4], E_VOIDmode)
6447 736 : || !const_0_to_15_operand (operands[5], E_VOIDmode)
6448 736 : || !const_0_to_15_operand (operands[6], E_VOIDmode)
6449 736 : || !const_0_to_15_operand (operands[7], E_VOIDmode)
6450 736 : || !const_0_to_15_operand (operands[8], E_VOIDmode)
6451 736 : || !const_0_to_15_operand (operands[9], E_VOIDmode)
6452 736 : || !const_0_to_15_operand (operands[10], E_VOIDmode)
6453 736 : || !const_0_to_15_operand (operands[11], E_VOIDmode)
6454 736 : || !const_0_to_15_operand (operands[12], E_VOIDmode)
6455 736 : || !const_0_to_15_operand (operands[13], E_VOIDmode)
6456 736 : || !const_0_to_15_operand (operands[14], E_VOIDmode)
6457 736 : || !const_0_to_15_operand (operands[15], E_VOIDmode)
6458 736 : || !const_0_to_15_operand (operands[16], E_VOIDmode)
6459 1472 : || !const_0_to_15_operand (operands[17], E_VOIDmode))
6460 0 : return -1;
6461 : return 0;
6462 : }
6463 :
6464 : int
6465 419 : pattern1885 ()
6466 : {
6467 419 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6468 419 : int res ATTRIBUTE_UNUSED;
6469 419 : if (!const_0_to_7_operand (operands[4], E_VOIDmode)
6470 419 : || !const_0_to_7_operand (operands[5], E_VOIDmode)
6471 419 : || !const_0_to_7_operand (operands[6], E_VOIDmode)
6472 419 : || !const_8_to_15_operand (operands[7], E_VOIDmode)
6473 419 : || !const_8_to_15_operand (operands[8], E_VOIDmode)
6474 419 : || !const_8_to_15_operand (operands[9], E_VOIDmode)
6475 838 : || !const_8_to_15_operand (operands[10], E_VOIDmode))
6476 0 : return -1;
6477 : return 0;
6478 : }
6479 :
6480 : int
6481 39165 : pattern1890 (rtx x1)
6482 : {
6483 39165 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6484 39165 : rtx x2, x3, x4, x5;
6485 39165 : int res ATTRIBUTE_UNUSED;
6486 39165 : x2 = XVECEXP (x1, 0, 8);
6487 39165 : if (XWINT (x2, 0) != 12L)
6488 : return -1;
6489 39165 : x3 = XVECEXP (x1, 0, 9);
6490 39165 : if (XWINT (x3, 0) != 28L)
6491 : return -1;
6492 39165 : x4 = XVECEXP (x1, 0, 10);
6493 39165 : if (XWINT (x4, 0) != 13L)
6494 : return -1;
6495 39165 : x5 = XVECEXP (x1, 0, 11);
6496 39165 : if (XWINT (x5, 0) != 29L)
6497 0 : return -1;
6498 : return 0;
6499 : }
6500 :
6501 : int
6502 2523 : pattern1896 (rtx x1)
6503 : {
6504 2523 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6505 2523 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6506 2523 : rtx x10, x11, x12;
6507 2523 : int res ATTRIBUTE_UNUSED;
6508 2523 : x2 = XVECEXP (x1, 0, 0);
6509 2523 : x3 = XEXP (x2, 1);
6510 2523 : x4 = XEXP (x3, 0);
6511 2523 : x5 = XEXP (x4, 1);
6512 2523 : switch (GET_CODE (x5))
6513 : {
6514 2024 : case SIGN_EXTEND:
6515 2024 : x6 = XEXP (x5, 0);
6516 2024 : operands[2] = x6;
6517 2024 : x7 = XEXP (x3, 1);
6518 2024 : x8 = XEXP (x7, 0);
6519 2024 : x9 = XEXP (x8, 1);
6520 2024 : if (!rtx_equal_p (x9, operands[2]))
6521 : return -1;
6522 2024 : x10 = XVECEXP (x1, 0, 1);
6523 2024 : x11 = XEXP (x10, 1);
6524 2024 : x12 = XEXP (x11, 1);
6525 2024 : if (!rtx_equal_p (x12, operands[2]))
6526 : return -1;
6527 2024 : switch (GET_MODE (x4))
6528 : {
6529 : case E_HImode:
6530 : return 0;
6531 :
6532 : case E_SImode:
6533 : return 1;
6534 :
6535 : case E_DImode:
6536 : return 2;
6537 :
6538 : case E_TImode:
6539 : return 3;
6540 :
6541 : default:
6542 : return -1;
6543 : }
6544 :
6545 499 : case CONST_INT:
6546 499 : operands[6] = x5;
6547 499 : x7 = XEXP (x3, 1);
6548 499 : x8 = XEXP (x7, 0);
6549 499 : x9 = XEXP (x8, 1);
6550 499 : operands[2] = x9;
6551 499 : x10 = XVECEXP (x1, 0, 1);
6552 499 : x11 = XEXP (x10, 1);
6553 499 : x12 = XEXP (x11, 1);
6554 499 : if (!rtx_equal_p (x12, operands[2]))
6555 : return -1;
6556 499 : switch (GET_MODE (x4))
6557 : {
6558 : case E_HImode:
6559 : return 4;
6560 :
6561 : case E_SImode:
6562 : return 5;
6563 :
6564 : case E_DImode:
6565 : return 6;
6566 :
6567 : case E_TImode:
6568 : return 7;
6569 :
6570 : default:
6571 : return -1;
6572 : }
6573 :
6574 : default:
6575 : return -1;
6576 : }
6577 : }
6578 :
6579 : int
6580 2 : pattern1908 (rtx x1)
6581 : {
6582 2 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6583 2 : rtx x2, x3, x4, x5, x6, x7, x8;
6584 2 : int res ATTRIBUTE_UNUSED;
6585 2 : x2 = XEXP (x1, 1);
6586 2 : x3 = XEXP (x2, 0);
6587 2 : x4 = XEXP (x3, 0);
6588 2 : if (GET_CODE (x4) != REG
6589 2 : || REGNO (x4) != 17
6590 4 : || GET_MODE (x4) != E_CCZmode)
6591 : return -1;
6592 2 : x5 = XEXP (x3, 1);
6593 2 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6594 : return -1;
6595 2 : x6 = XEXP (x2, 1);
6596 2 : if (GET_CODE (x6) != LABEL_REF)
6597 : return -1;
6598 2 : x7 = XEXP (x2, 2);
6599 2 : if (GET_CODE (x7) != PC)
6600 : return -1;
6601 2 : x8 = XEXP (x1, 0);
6602 2 : if (GET_CODE (x8) != PC)
6603 0 : return -1;
6604 : return 0;
6605 : }
6606 :
6607 : int
6608 968 : pattern1916 (rtx x1, machine_mode i1, machine_mode i2)
6609 : {
6610 968 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6611 968 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6612 968 : int res ATTRIBUTE_UNUSED;
6613 968 : x2 = XVECEXP (x1, 0, 0);
6614 968 : x3 = XEXP (x2, 1);
6615 968 : x4 = XEXP (x3, 1);
6616 968 : if (GET_MODE (x4) != i2)
6617 : return -1;
6618 968 : x5 = XEXP (x4, 0);
6619 968 : if (GET_MODE (x5) != i1)
6620 : return -1;
6621 968 : x6 = XEXP (x5, 0);
6622 968 : if (GET_MODE (x6) != i1
6623 968 : || !ix86_carry_flag_operator (operands[5], i1)
6624 1936 : || !nonimmediate_operand (operands[0], i1))
6625 0 : return -1;
6626 968 : x7 = XVECEXP (x1, 0, 1);
6627 968 : x8 = XEXP (x7, 1);
6628 968 : if (GET_MODE (x8) != i1)
6629 : return -1;
6630 968 : x9 = XEXP (x8, 0);
6631 968 : if (GET_MODE (x9) != i1)
6632 : return -1;
6633 : return 0;
6634 : }
6635 :
6636 : int
6637 1622 : pattern1924 (rtx x1)
6638 : {
6639 1622 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6640 1622 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6641 1622 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
6642 1622 : int res ATTRIBUTE_UNUSED;
6643 1622 : x2 = XEXP (x1, 0);
6644 1622 : x3 = XEXP (x2, 0);
6645 1622 : x4 = XEXP (x3, 0);
6646 1622 : x5 = XEXP (x4, 0);
6647 1622 : x6 = XEXP (x5, 0);
6648 1622 : operands[1] = x6;
6649 1622 : if (!nonimmediate_operand (operands[1], E_V8HImode))
6650 : return -1;
6651 1399 : x7 = XEXP (x3, 1);
6652 1399 : x8 = XEXP (x7, 0);
6653 1399 : x9 = XEXP (x8, 0);
6654 1399 : operands[2] = x9;
6655 1399 : if (!nonimmediate_operand (operands[2], E_V8HImode))
6656 : return -1;
6657 1217 : x10 = XEXP (x1, 1);
6658 1217 : operands[3] = x10;
6659 1217 : if (!register_operand (operands[3], E_V4SImode))
6660 : return -1;
6661 1205 : x11 = XEXP (x2, 1);
6662 1205 : x12 = XEXP (x11, 0);
6663 1205 : x13 = XEXP (x12, 0);
6664 1205 : x14 = XEXP (x13, 0);
6665 1205 : if (!rtx_equal_p (x14, operands[1]))
6666 : return -1;
6667 1205 : x15 = XEXP (x11, 1);
6668 1205 : x16 = XEXP (x15, 0);
6669 1205 : x17 = XEXP (x16, 0);
6670 1205 : if (!rtx_equal_p (x17, operands[2]))
6671 : return -1;
6672 : return 0;
6673 : }
6674 :
6675 : int
6676 54935146 : recog_5 (rtx x1 ATTRIBUTE_UNUSED,
6677 : rtx_insn *insn ATTRIBUTE_UNUSED,
6678 : int *pnum_clobbers ATTRIBUTE_UNUSED)
6679 : {
6680 54935146 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6681 54935146 : rtx x2, x3, x4, x5, x6, x7, x8;
6682 54935146 : int res ATTRIBUTE_UNUSED;
6683 54935146 : x2 = XEXP (x1, 1);
6684 54935146 : x3 = XEXP (x2, 0);
6685 54935146 : operands[0] = x3;
6686 54935146 : res = recog_4 (x1, insn, pnum_clobbers);
6687 54935146 : if (res >= 0)
6688 : return res;
6689 1546921 : if (GET_CODE (x3) != SUBREG
6690 112485 : || maybe_ne (SUBREG_BYTE (x3), 0)
6691 1648808 : || GET_MODE (x3) != E_QImode)
6692 : return -1;
6693 39247 : x4 = XEXP (x3, 0);
6694 39247 : switch (GET_CODE (x4))
6695 : {
6696 24965 : case ASHIFTRT:
6697 24965 : case LSHIFTRT:
6698 24965 : case SIGN_EXTRACT:
6699 24965 : case ZERO_EXTRACT:
6700 24965 : operands[2] = x4;
6701 24965 : x5 = XEXP (x4, 0);
6702 24965 : operands[0] = x5;
6703 24965 : if (!int248_register_operand (operands[0], E_VOIDmode))
6704 : return -1;
6705 24739 : x6 = XEXP (x2, 1);
6706 24739 : operands[1] = x6;
6707 24739 : switch (pattern1218 ())
6708 : {
6709 276 : case 0:
6710 276 : if (const0_operand (operands[1], E_QImode)
6711 304 : &&
6712 : #line 1676 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6713 : (ix86_match_ccmode (insn, CCNOmode)))
6714 : return 28; /* *cmpqi_exthi_2 */
6715 : if (general_operand (operands[1], E_QImode)
6716 : &&
6717 : #line 1699 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6718 : (ix86_match_ccmode (insn, CCmode)))
6719 : return 31; /* *cmpqi_exthi_3 */
6720 : break;
6721 :
6722 : case 1:
6723 : if (const0_operand (operands[1], E_QImode)
6724 : &&
6725 : #line 1676 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6726 : (ix86_match_ccmode (insn, CCNOmode)))
6727 : return 29; /* *cmpqi_extsi_2 */
6728 : if (general_operand (operands[1], E_QImode)
6729 : &&
6730 : #line 1699 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6731 : (ix86_match_ccmode (insn, CCmode)))
6732 : return 32; /* *cmpqi_extsi_3 */
6733 : break;
6734 :
6735 : case 2:
6736 : if (const0_operand (operands[1], E_QImode)
6737 : && (
6738 : #line 1676 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6739 : (ix86_match_ccmode (insn, CCNOmode)) &&
6740 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6741 : (TARGET_64BIT)))
6742 : return 30; /* *cmpqi_extdi_2 */
6743 : if (general_operand (operands[1], E_QImode)
6744 : && (
6745 : #line 1699 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6746 : (ix86_match_ccmode (insn, CCmode)) &&
6747 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6748 : (TARGET_64BIT)))
6749 : return 33; /* *cmpqi_extdi_3 */
6750 : break;
6751 :
6752 : default:
6753 : break;
6754 : }
6755 : if (GET_CODE (x6) != SUBREG
6756 : || maybe_ne (SUBREG_BYTE (x6), 0)
6757 : || GET_MODE (x6) != E_QImode)
6758 : return -1;
6759 : x7 = XEXP (x6, 0);
6760 : switch (GET_CODE (x7))
6761 : {
6762 : case ASHIFTRT:
6763 : case LSHIFTRT:
6764 : case SIGN_EXTRACT:
6765 : case ZERO_EXTRACT:
6766 : operands[3] = x7;
6767 : x8 = XEXP (x7, 0);
6768 : operands[1] = x8;
6769 : if (!int248_register_operand (operands[1], E_VOIDmode))
6770 : return -1;
6771 : switch (GET_MODE (operands[2]))
6772 : {
6773 : case E_HImode:
6774 : if (!extract_high_operator (operands[2], E_HImode)
6775 : || !extract_high_operator (operands[3], E_HImode)
6776 : || !
6777 : #line 1714 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6778 : (ix86_match_ccmode (insn, CCmode)))
6779 : return -1;
6780 : return 34; /* *cmpqi_exthi_4 */
6781 :
6782 : case E_SImode:
6783 : if (!extract_high_operator (operands[2], E_SImode)
6784 : || !extract_high_operator (operands[3], E_SImode)
6785 : || !
6786 : #line 1714 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6787 : (ix86_match_ccmode (insn, CCmode)))
6788 : return -1;
6789 : return 35; /* *cmpqi_extsi_4 */
6790 :
6791 : case E_DImode:
6792 : if (!extract_high_operator (operands[2], E_DImode)
6793 : || !extract_high_operator (operands[3], E_DImode)
6794 : || !(
6795 : #line 1714 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6796 : (ix86_match_ccmode (insn, CCmode)) &&
6797 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6798 : (TARGET_64BIT)))
6799 : return -1;
6800 : return 36; /* *cmpqi_extdi_4 */
6801 :
6802 : default:
6803 : return -1;
6804 : }
6805 :
6806 : default:
6807 : return -1;
6808 : }
6809 :
6810 : default:
6811 : return -1;
6812 : }
6813 : }
6814 :
6815 : int
6816 : recog_12 (rtx x1 ATTRIBUTE_UNUSED,
6817 : rtx_insn *insn ATTRIBUTE_UNUSED,
6818 : int *pnum_clobbers ATTRIBUTE_UNUSED)
6819 : {
6820 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6821 : rtx x2, x3, x4;
6822 : int res ATTRIBUTE_UNUSED;
6823 : switch (pattern74 (x1))
6824 : {
6825 : case 0:
6826 : x2 = XEXP (x1, 1);
6827 : x3 = XVECEXP (x2, 0, 2);
6828 : operands[3] = x3;
6829 : x4 = XVECEXP (x2, 0, 1);
6830 : operands[2] = x4;
6831 : switch (pattern976 (x2))
6832 : {
6833 : case 0:
6834 : switch (GET_MODE (operands[1]))
6835 : {
6836 : case E_HFmode:
6837 : if (register_operand (operands[1], E_HFmode)
6838 : && nonimmediate_operand (operands[2], E_HFmode)
6839 : && const_0_to_31_operand (operands[3], E_SImode)
6840 : &&
6841 : #line 20745 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6842 : (TARGET_AVX512FP16))
6843 : return 1493; /* setcc_hf_mask */
6844 : break;
6845 :
6846 : case E_V8HFmode:
6847 : if (register_operand (operands[1], E_V8HFmode)
6848 : && nonimmediate_operand (operands[2], E_V8HFmode)
6849 : && const_0_to_31_operand (operands[3], E_SImode)
6850 : && (
6851 : #line 4677 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6852 : (TARGET_AVX512F && 1) &&
6853 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6854 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
6855 : return 3344; /* avx512fp16_cmpv8hf3 */
6856 : break;
6857 :
6858 : case E_V8SFmode:
6859 : if (register_operand (operands[1], E_V8SFmode)
6860 : && nonimmediate_operand (operands[2], E_V8SFmode)
6861 : && const_0_to_31_operand (operands[3], E_SImode)
6862 : && (
6863 : #line 4677 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6864 : (TARGET_AVX512F && 1) &&
6865 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6866 : (TARGET_AVX512VL)))
6867 : return 3350; /* avx512vl_cmpv8sf3 */
6868 : break;
6869 :
6870 : case E_V4SFmode:
6871 : if (register_operand (operands[1], E_V4SFmode)
6872 : && nonimmediate_operand (operands[2], E_V4SFmode)
6873 : && const_0_to_31_operand (operands[3], E_SImode)
6874 : && (
6875 : #line 4677 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6876 : (TARGET_AVX512F && 1) &&
6877 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6878 : (TARGET_AVX512VL)))
6879 : return 3352; /* avx512vl_cmpv4sf3 */
6880 : break;
6881 :
6882 : case E_V8DFmode:
6883 : if (register_operand (operands[1], E_V8DFmode)
6884 : && nonimmediate_operand (operands[2], E_V8DFmode)
6885 : && const_0_to_31_operand (operands[3], E_SImode)
6886 : &&
6887 : #line 4677 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6888 : (TARGET_AVX512F && 1))
6889 : return 3354; /* avx512f_cmpv8df3 */
6890 : break;
6891 :
6892 : case E_V4DFmode:
6893 : if (register_operand (operands[1], E_V4DFmode)
6894 : && nonimmediate_operand (operands[2], E_V4DFmode)
6895 : && const_0_to_31_operand (operands[3], E_SImode)
6896 : && (
6897 : #line 4677 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6898 : (TARGET_AVX512F && 1) &&
6899 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6900 : (TARGET_AVX512VL)))
6901 : return 3358; /* avx512vl_cmpv4df3 */
6902 : break;
6903 :
6904 : case E_V2DFmode:
6905 : if (register_operand (operands[1], E_V2DFmode)
6906 : && nonimmediate_operand (operands[2], E_V2DFmode)
6907 : && const_0_to_31_operand (operands[3], E_SImode)
6908 : && (
6909 : #line 4677 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6910 : (TARGET_AVX512F && 1) &&
6911 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6912 : (TARGET_AVX512VL)))
6913 : return 3360; /* avx512vl_cmpv2df3 */
6914 : break;
6915 :
6916 : case E_V8HImode:
6917 : if (const_0_to_7_operand (operands[3], E_SImode))
6918 : {
6919 : if (register_operand (operands[1], E_V8HImode)
6920 : && nonimmediate_operand (operands[2], E_V8HImode)
6921 : && (
6922 : #line 4872 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6923 : (TARGET_AVX512F) &&
6924 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6925 : (TARGET_AVX512VL && TARGET_AVX512BW)))
6926 : return 3492; /* avx512vl_cmpv8hi3 */
6927 : if (general_operand (operands[1], E_V8HImode)
6928 : && general_operand (operands[2], E_V8HImode)
6929 : && (
6930 : #line 4964 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6931 : (TARGET_AVX512F && ix86_pre_reload_split ()
6932 : && rtx_equal_p (operands[1], operands[2])
6933 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
6934 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6935 : (TARGET_AVX512VL && TARGET_AVX512BW)))
6936 : return 3564; /* *avx512vl_cmpv8hi3_dup_op */
6937 : }
6938 : break;
6939 :
6940 : case E_V8SImode:
6941 : if (const_0_to_7_operand (operands[3], E_SImode))
6942 : {
6943 : if (register_operand (operands[1], E_V8SImode)
6944 : && nonimmediate_operand (operands[2], E_V8SImode)
6945 : && (
6946 : #line 4872 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6947 : (TARGET_AVX512F) &&
6948 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6949 : (TARGET_AVX512VL)))
6950 : return 3496; /* avx512vl_cmpv8si3 */
6951 : if (general_operand (operands[1], E_V8SImode)
6952 : && general_operand (operands[2], E_V8SImode)
6953 : && (
6954 : #line 4964 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6955 : (TARGET_AVX512F && ix86_pre_reload_split ()
6956 : && rtx_equal_p (operands[1], operands[2])
6957 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
6958 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6959 : (TARGET_AVX512VL)))
6960 : return 3568; /* *avx512vl_cmpv8si3_dup_op */
6961 : }
6962 : break;
6963 :
6964 : case E_V4SImode:
6965 : if (const_0_to_7_operand (operands[3], E_SImode))
6966 : {
6967 : if (register_operand (operands[1], E_V4SImode)
6968 : && nonimmediate_operand (operands[2], E_V4SImode)
6969 : && (
6970 : #line 4872 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6971 : (TARGET_AVX512F) &&
6972 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6973 : (TARGET_AVX512VL)))
6974 : return 3498; /* avx512vl_cmpv4si3 */
6975 : if (general_operand (operands[1], E_V4SImode)
6976 : && general_operand (operands[2], E_V4SImode)
6977 : && (
6978 : #line 4964 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6979 : (TARGET_AVX512F && ix86_pre_reload_split ()
6980 : && rtx_equal_p (operands[1], operands[2])
6981 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
6982 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6983 : (TARGET_AVX512VL)))
6984 : return 3570; /* *avx512vl_cmpv4si3_dup_op */
6985 : }
6986 : break;
6987 :
6988 : case E_V8DImode:
6989 : if (const_0_to_7_operand (operands[3], E_SImode))
6990 : {
6991 : if (register_operand (operands[1], E_V8DImode)
6992 : && nonimmediate_operand (operands[2], E_V8DImode)
6993 : &&
6994 : #line 4872 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6995 : (TARGET_AVX512F))
6996 : return 3500; /* avx512f_cmpv8di3 */
6997 : if (general_operand (operands[1], E_V8DImode)
6998 : && general_operand (operands[2], E_V8DImode)
6999 : &&
7000 : #line 4964 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7001 : (TARGET_AVX512F && ix86_pre_reload_split ()
7002 : && rtx_equal_p (operands[1], operands[2])
7003 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))))
7004 : return 3572; /* *avx512f_cmpv8di3_dup_op */
7005 : }
7006 : break;
7007 :
7008 : case E_V4DImode:
7009 : if (const_0_to_7_operand (operands[3], E_SImode))
7010 : {
7011 : if (register_operand (operands[1], E_V4DImode)
7012 : && nonimmediate_operand (operands[2], E_V4DImode)
7013 : && (
7014 : #line 4872 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7015 : (TARGET_AVX512F) &&
7016 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7017 : (TARGET_AVX512VL)))
7018 : return 3502; /* avx512vl_cmpv4di3 */
7019 : if (general_operand (operands[1], E_V4DImode)
7020 : && general_operand (operands[2], E_V4DImode)
7021 : && (
7022 : #line 4964 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7023 : (TARGET_AVX512F && ix86_pre_reload_split ()
7024 : && rtx_equal_p (operands[1], operands[2])
7025 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
7026 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7027 : (TARGET_AVX512VL)))
7028 : return 3574; /* *avx512vl_cmpv4di3_dup_op */
7029 : }
7030 : break;
7031 :
7032 : case E_V2DImode:
7033 : if (const_0_to_7_operand (operands[3], E_SImode))
7034 : {
7035 : if (register_operand (operands[1], E_V2DImode)
7036 : && nonimmediate_operand (operands[2], E_V2DImode)
7037 : && (
7038 : #line 4872 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7039 : (TARGET_AVX512F) &&
7040 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7041 : (TARGET_AVX512VL)))
7042 : return 3504; /* avx512vl_cmpv2di3 */
7043 : if (general_operand (operands[1], E_V2DImode)
7044 : && general_operand (operands[2], E_V2DImode)
7045 : && (
7046 : #line 4964 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7047 : (TARGET_AVX512F && ix86_pre_reload_split ()
7048 : && rtx_equal_p (operands[1], operands[2])
7049 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
7050 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7051 : (TARGET_AVX512VL)))
7052 : return 3576; /* *avx512vl_cmpv2di3_dup_op */
7053 : }
7054 : break;
7055 :
7056 : case E_V8BFmode:
7057 : if (register_operand (operands[1], E_V8BFmode)
7058 : && nonimmediate_operand (operands[2], E_V8BFmode)
7059 : && const_0_to_31_operand (operands[3], E_VOIDmode)
7060 : &&
7061 : #line 33900 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7062 : (TARGET_AVX10_2))
7063 : return 10876; /* avx10_2_cmpbf16_v8bf */
7064 : break;
7065 :
7066 : default:
7067 : break;
7068 : }
7069 : break;
7070 :
7071 : case 1:
7072 : switch (GET_MODE (operands[1]))
7073 : {
7074 : case E_V16HFmode:
7075 : if (register_operand (operands[1], E_V16HFmode)
7076 : && nonimmediate_operand (operands[2], E_V16HFmode)
7077 : && const_0_to_31_operand (operands[3], E_SImode)
7078 : && (
7079 : #line 4677 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7080 : (TARGET_AVX512F && 1) &&
7081 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7082 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
7083 : return 3342; /* avx512vl_cmpv16hf3 */
7084 : break;
7085 :
7086 : case E_V16SFmode:
7087 : if (register_operand (operands[1], E_V16SFmode)
7088 : && nonimmediate_operand (operands[2], E_V16SFmode)
7089 : && const_0_to_31_operand (operands[3], E_SImode)
7090 : &&
7091 : #line 4677 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7092 : (TARGET_AVX512F && 1))
7093 : return 3346; /* avx512f_cmpv16sf3 */
7094 : break;
7095 :
7096 : case E_V16QImode:
7097 : if (const_0_to_7_operand (operands[3], E_SImode))
7098 : {
7099 : if (register_operand (operands[1], E_V16QImode)
7100 : && nonimmediate_operand (operands[2], E_V16QImode)
7101 : && (
7102 : #line 4872 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7103 : (TARGET_AVX512F) &&
7104 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7105 : (TARGET_AVX512VL && TARGET_AVX512BW)))
7106 : return 3486; /* avx512vl_cmpv16qi3 */
7107 : if (general_operand (operands[1], E_V16QImode)
7108 : && general_operand (operands[2], E_V16QImode)
7109 : && (
7110 : #line 4964 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7111 : (TARGET_AVX512F && ix86_pre_reload_split ()
7112 : && rtx_equal_p (operands[1], operands[2])
7113 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
7114 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7115 : (TARGET_AVX512VL && TARGET_AVX512BW)))
7116 : return 3558; /* *avx512vl_cmpv16qi3_dup_op */
7117 : }
7118 : break;
7119 :
7120 : case E_V16HImode:
7121 : if (const_0_to_7_operand (operands[3], E_SImode))
7122 : {
7123 : if (register_operand (operands[1], E_V16HImode)
7124 : && nonimmediate_operand (operands[2], E_V16HImode)
7125 : && (
7126 : #line 4872 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7127 : (TARGET_AVX512F) &&
7128 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7129 : (TARGET_AVX512VL && TARGET_AVX512BW)))
7130 : return 3490; /* avx512vl_cmpv16hi3 */
7131 : if (general_operand (operands[1], E_V16HImode)
7132 : && general_operand (operands[2], E_V16HImode)
7133 : && (
7134 : #line 4964 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7135 : (TARGET_AVX512F && ix86_pre_reload_split ()
7136 : && rtx_equal_p (operands[1], operands[2])
7137 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
7138 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7139 : (TARGET_AVX512VL && TARGET_AVX512BW)))
7140 : return 3562; /* *avx512vl_cmpv16hi3_dup_op */
7141 : }
7142 : break;
7143 :
7144 : case E_V16SImode:
7145 : if (const_0_to_7_operand (operands[3], E_SImode))
7146 : {
7147 : if (register_operand (operands[1], E_V16SImode)
7148 : && nonimmediate_operand (operands[2], E_V16SImode)
7149 : &&
7150 : #line 4872 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7151 : (TARGET_AVX512F))
7152 : return 3494; /* avx512f_cmpv16si3 */
7153 : if (general_operand (operands[1], E_V16SImode)
7154 : && general_operand (operands[2], E_V16SImode)
7155 : &&
7156 : #line 4964 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7157 : (TARGET_AVX512F && ix86_pre_reload_split ()
7158 : && rtx_equal_p (operands[1], operands[2])
7159 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))))
7160 : return 3566; /* *avx512f_cmpv16si3_dup_op */
7161 : }
7162 : break;
7163 :
7164 : case E_V16BFmode:
7165 : if (register_operand (operands[1], E_V16BFmode)
7166 : && nonimmediate_operand (operands[2], E_V16BFmode)
7167 : && const_0_to_31_operand (operands[3], E_VOIDmode)
7168 : &&
7169 : #line 33900 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7170 : (TARGET_AVX10_2))
7171 : return 10874; /* avx10_2_cmpbf16_v16bf */
7172 : break;
7173 :
7174 : default:
7175 : break;
7176 : }
7177 : break;
7178 :
7179 : default:
7180 : break;
7181 : }
7182 : if (XWINT (x3, 0) != 0L)
7183 : return -1;
7184 : operands[2] = x4;
7185 : switch (pattern977 (x2))
7186 : {
7187 : case 0:
7188 : if (!(
7189 : #line 4992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7190 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
7191 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7192 : (TARGET_AVX512VL)))
7193 : return -1;
7194 : return 3582; /* *avx512vl_eqv16qi3_1 */
7195 :
7196 : case 1:
7197 : if (!(
7198 : #line 4992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7199 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
7200 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7201 : (TARGET_AVX512VL)))
7202 : return -1;
7203 : return 3594; /* *avx512vl_eqv16hi3_1 */
7204 :
7205 : case 2:
7206 : if (!
7207 : #line 5068 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7208 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
7209 : return -1;
7210 : return 3638; /* *avx512f_eqv16si3_1 */
7211 :
7212 : case 3:
7213 : if (!(
7214 : #line 4992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7215 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
7216 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7217 : (TARGET_AVX512VL)))
7218 : return -1;
7219 : return 3598; /* *avx512vl_eqv8hi3_1 */
7220 :
7221 : case 4:
7222 : if (!(
7223 : #line 5068 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7224 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
7225 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7226 : (TARGET_AVX512VL)))
7227 : return -1;
7228 : return 3642; /* *avx512vl_eqv8si3_1 */
7229 :
7230 : case 5:
7231 : if (!(
7232 : #line 5068 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7233 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
7234 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7235 : (TARGET_AVX512VL)))
7236 : return -1;
7237 : return 3646; /* *avx512vl_eqv4si3_1 */
7238 :
7239 : case 6:
7240 : if (!
7241 : #line 5068 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7242 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
7243 : return -1;
7244 : return 3650; /* *avx512f_eqv8di3_1 */
7245 :
7246 : case 7:
7247 : if (!(
7248 : #line 5068 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7249 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
7250 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7251 : (TARGET_AVX512VL)))
7252 : return -1;
7253 : return 3654; /* *avx512vl_eqv4di3_1 */
7254 :
7255 : case 8:
7256 : if (!(
7257 : #line 5068 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7258 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
7259 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7260 : (TARGET_AVX512VL)))
7261 : return -1;
7262 : return 3658; /* *avx512vl_eqv2di3_1 */
7263 :
7264 : default:
7265 : return -1;
7266 : }
7267 :
7268 : case 1:
7269 : if (!(
7270 : #line 5189 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7271 : (TARGET_AVX512BW && ix86_pre_reload_split ()
7272 : && ix86_binary_operator_ok (US_MINUS, V16QImode, operands)
7273 : && (INTVAL (operands[4]) & 3) == 0) &&
7274 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7275 : (TARGET_AVX512VL)))
7276 : return -1;
7277 : return 3730; /* *avx512vl_ucmpv16qi3_1 */
7278 :
7279 : case 2:
7280 : if (!(
7281 : #line 5189 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7282 : (TARGET_AVX512BW && ix86_pre_reload_split ()
7283 : && ix86_binary_operator_ok (US_MINUS, V16HImode, operands)
7284 : && (INTVAL (operands[4]) & 3) == 0) &&
7285 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7286 : (TARGET_AVX512VL)))
7287 : return -1;
7288 : return 3736; /* *avx512vl_ucmpv16hi3_1 */
7289 :
7290 : case 3:
7291 : if (!(
7292 : #line 5189 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7293 : (TARGET_AVX512BW && ix86_pre_reload_split ()
7294 : && ix86_binary_operator_ok (US_MINUS, V8HImode, operands)
7295 : && (INTVAL (operands[4]) & 3) == 0) &&
7296 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7297 : (TARGET_AVX512VL)))
7298 : return -1;
7299 : return 3738; /* *avx512vl_ucmpv8hi3_1 */
7300 :
7301 : default:
7302 : return -1;
7303 : }
7304 : }
7305 :
7306 : int
7307 : recog_28 (rtx x1 ATTRIBUTE_UNUSED,
7308 : rtx_insn *insn ATTRIBUTE_UNUSED,
7309 : int *pnum_clobbers ATTRIBUTE_UNUSED)
7310 : {
7311 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
7312 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
7313 : int res ATTRIBUTE_UNUSED;
7314 : x2 = XEXP (x1, 1);
7315 : x3 = XEXP (x2, 0);
7316 : switch (GET_CODE (x3))
7317 : {
7318 : case AND:
7319 : x4 = XEXP (x1, 0);
7320 : operands[0] = x4;
7321 : x5 = XEXP (x3, 1);
7322 : operands[3] = x5;
7323 : x6 = XEXP (x3, 0);
7324 : switch (GET_CODE (x6))
7325 : {
7326 : case REG:
7327 : case SUBREG:
7328 : case MEM:
7329 : operands[1] = x6;
7330 : switch (pattern75 (x2))
7331 : {
7332 : case 0:
7333 : if (!
7334 : #line 3773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7335 : (TARGET_64BIT
7336 : && CONST_WIDE_INT_P (operands[3])
7337 : && CONST_WIDE_INT_NUNITS (operands[3]) == 2
7338 : && CONST_WIDE_INT_ELT (operands[3], 0) == -1
7339 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0))
7340 : return -1;
7341 : return 149; /* *insvti_highpart_1 */
7342 :
7343 : case 1:
7344 : if (!
7345 : #line 3795 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7346 : (TARGET_64BIT
7347 : && CONST_WIDE_INT_P (operands[3])
7348 : && CONST_WIDE_INT_NUNITS (operands[3]) == 2
7349 : && CONST_WIDE_INT_ELT (operands[3], 0) == 0
7350 : && CONST_WIDE_INT_ELT (operands[3], 1) == -1))
7351 : return -1;
7352 : return 152; /* *insvti_lowpart_1 */
7353 :
7354 : case 2:
7355 : if (!
7356 : #line 3817 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7357 : (!TARGET_64BIT
7358 : && CONST_INT_P (operands[3])
7359 : && UINTVAL (operands[3]) == 0xffffffff00000000ll))
7360 : return -1;
7361 : return 155; /* *insvdi_lowpart_1 */
7362 :
7363 : default:
7364 : return -1;
7365 : }
7366 :
7367 : case XOR:
7368 : if (pnum_clobbers == NULL
7369 : || GET_MODE (x6) != E_HImode
7370 : || !register_operand (operands[0], E_HImode)
7371 : || GET_MODE (x2) != E_HImode
7372 : || GET_MODE (x3) != E_HImode)
7373 : return -1;
7374 : x7 = XEXP (x6, 0);
7375 : operands[1] = x7;
7376 : if (!nonimmediate_operand (operands[1], E_HImode))
7377 : return -1;
7378 : x8 = XEXP (x6, 1);
7379 : operands[2] = x8;
7380 : if (!nonimmediate_operand (operands[2], E_HImode)
7381 : || !nonimmediate_operand (operands[3], E_HImode))
7382 : return -1;
7383 : x9 = XEXP (x2, 1);
7384 : if (!rtx_equal_p (x9, operands[1])
7385 : || !
7386 : #line 14554 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7387 : (TARGET_BMI && ix86_pre_reload_split ()))
7388 : return -1;
7389 : *pnum_clobbers = 1;
7390 : return 874; /* *xor2andn */
7391 :
7392 : default:
7393 : return -1;
7394 : }
7395 :
7396 : case ASHIFT:
7397 : x4 = XEXP (x1, 0);
7398 : operands[0] = x4;
7399 : x5 = XEXP (x3, 1);
7400 : operands[2] = x5;
7401 : x6 = XEXP (x3, 0);
7402 : switch (GET_CODE (x6))
7403 : {
7404 : case REG:
7405 : case SUBREG:
7406 : operands[1] = x6;
7407 : switch (pattern619 (x2))
7408 : {
7409 : case 0:
7410 : if (!
7411 : #line 8274 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7412 : ((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
7413 : && ((unsigned HOST_WIDE_INT) INTVAL (operands[3])
7414 : < (HOST_WIDE_INT_1U << INTVAL (operands[2])))))
7415 : return -1;
7416 : return 381; /* *leaqi_general_4 */
7417 :
7418 : case 1:
7419 : if (!
7420 : #line 8274 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7421 : ((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
7422 : && ((unsigned HOST_WIDE_INT) INTVAL (operands[3])
7423 : < (HOST_WIDE_INT_1U << INTVAL (operands[2])))))
7424 : return -1;
7425 : return 383; /* *leahi_general_4 */
7426 :
7427 : case 2:
7428 : if (!(
7429 : #line 15063 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7430 : (INTVAL (operands[2]) == 16 * BITS_PER_UNIT / 2
7431 : && (TImode == DImode
7432 : ? CONST_INT_P (operands[3])
7433 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
7434 : : CONST_INT_P (operands[3])
7435 : ? INTVAL (operands[3]) >= 0
7436 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
7437 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
7438 : && !(CONST_INT_P (operands[3])
7439 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
7440 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
7441 : 0)),
7442 : VOIDmode))) &&
7443 : #line 1231 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7444 : (TARGET_64BIT)))
7445 : return -1;
7446 : return 971; /* *concatditi3_5 */
7447 :
7448 : case 3:
7449 : if (!(
7450 : #line 14986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7451 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT) &&
7452 : #line 1271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7453 : (TARGET_64BIT)))
7454 : return -1;
7455 : return 935; /* *concatditi3_1 */
7456 :
7457 : default:
7458 : return -1;
7459 : }
7460 :
7461 : case SIGN_EXTEND:
7462 : switch (pattern429 (x2))
7463 : {
7464 : case 0:
7465 : if (!(
7466 : #line 15022 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7467 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT) &&
7468 : #line 1271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7469 : (TARGET_64BIT)))
7470 : return -1;
7471 : return 950; /* *concatditi3_3 */
7472 :
7473 : case 1:
7474 : if (!(
7475 : #line 15095 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7476 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT
7477 : && (TImode == DImode
7478 : ? CONST_INT_P (operands[3])
7479 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
7480 : : CONST_INT_P (operands[3])
7481 : ? INTVAL (operands[3]) >= 0
7482 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
7483 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
7484 : && !(CONST_INT_P (operands[3])
7485 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
7486 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
7487 : 0)),
7488 : VOIDmode))) &&
7489 : #line 1271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7490 : (TARGET_64BIT)))
7491 : return -1;
7492 : return 980; /* *concatditi3_6 */
7493 :
7494 : default:
7495 : return -1;
7496 : }
7497 :
7498 : case ZERO_EXTEND:
7499 : switch (pattern429 (x2))
7500 : {
7501 : case 0:
7502 : if (!(
7503 : #line 15022 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7504 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT) &&
7505 : #line 1271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7506 : (TARGET_64BIT)))
7507 : return -1;
7508 : return 953; /* *concatditi3_3 */
7509 :
7510 : case 1:
7511 : if (!(
7512 : #line 15095 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7513 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT
7514 : && (TImode == DImode
7515 : ? CONST_INT_P (operands[3])
7516 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
7517 : : CONST_INT_P (operands[3])
7518 : ? INTVAL (operands[3]) >= 0
7519 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
7520 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
7521 : && !(CONST_INT_P (operands[3])
7522 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
7523 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
7524 : 0)),
7525 : VOIDmode))) &&
7526 : #line 1271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7527 : (TARGET_64BIT)))
7528 : return -1;
7529 : return 983; /* *concatditi3_6 */
7530 :
7531 : default:
7532 : return -1;
7533 : }
7534 :
7535 : default:
7536 : return -1;
7537 : }
7538 :
7539 : case REG:
7540 : case SUBREG:
7541 : case MEM:
7542 : operands[1] = x3;
7543 : switch (pattern82 (x1, pnum_clobbers))
7544 : {
7545 : case 0:
7546 : if (
7547 : #line 13601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7548 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
7549 : {
7550 : *pnum_clobbers = 1;
7551 : return 761; /* *xorqi_1_slp */
7552 : }
7553 : break;
7554 :
7555 : case 1:
7556 : if (
7557 : #line 13601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7558 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
7559 : {
7560 : *pnum_clobbers = 1;
7561 : return 764; /* *xorhi_1_slp */
7562 : }
7563 : break;
7564 :
7565 : case 2:
7566 : if ((
7567 : #line 14382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7568 : (ix86_binary_operator_ok (XOR, TImode, operands, TARGET_APX_NDD)) &&
7569 : #line 1271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7570 : (TARGET_64BIT)))
7571 : {
7572 : *pnum_clobbers = 1;
7573 : return 856; /* *xorti3_doubleword */
7574 : }
7575 : break;
7576 :
7577 : case 3:
7578 : if (
7579 : #line 14444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7580 : (ix86_binary_operator_ok (XOR, HImode, operands, TARGET_APX_NDD)
7581 : && TARGET_APX_NF))
7582 : return 859; /* *xorhi_1_nf */
7583 : if (pnum_clobbers != NULL
7584 : &&
7585 : #line 14444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7586 : (ix86_binary_operator_ok (XOR, HImode, operands, TARGET_APX_NDD)
7587 : && true))
7588 : {
7589 : *pnum_clobbers = 1;
7590 : return 860; /* *xorhi_1 */
7591 : }
7592 : break;
7593 :
7594 : case 4:
7595 : if (
7596 : #line 1383 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7597 : (TARGET_MMX_WITH_SSE))
7598 : return 2139; /* xorv2sf3 */
7599 : break;
7600 :
7601 : case 5:
7602 : if (
7603 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7604 : (TARGET_SSE))
7605 : return 2173; /* xorv2bf3 */
7606 : break;
7607 :
7608 : case 6:
7609 : if ((
7610 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7611 : (TARGET_SSE) &&
7612 : #line 2251 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7613 : (TARGET_MMX_WITH_SSE)))
7614 : return 2176; /* xorv4bf3 */
7615 : break;
7616 :
7617 : case 7:
7618 : if (
7619 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7620 : (TARGET_SSE))
7621 : return 2179; /* xorv2hf3 */
7622 : break;
7623 :
7624 : case 8:
7625 : if ((
7626 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7627 : (TARGET_SSE) &&
7628 : #line 2252 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7629 : (TARGET_MMX_WITH_SSE)))
7630 : return 2182; /* xorv4hf3 */
7631 : break;
7632 :
7633 : case 9:
7634 : if (
7635 : #line 4721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7636 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
7637 : && ix86_binary_operator_ok (XOR, V8QImode, operands)))
7638 : return 2336; /* *mmx_xorv8qi3 */
7639 : break;
7640 :
7641 : case 10:
7642 : if (
7643 : #line 4721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7644 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
7645 : && ix86_binary_operator_ok (XOR, V4HImode, operands)))
7646 : return 2339; /* *mmx_xorv4hi3 */
7647 : break;
7648 :
7649 : case 11:
7650 : if (
7651 : #line 4721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7652 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
7653 : && ix86_binary_operator_ok (XOR, V2SImode, operands)))
7654 : return 2342; /* *mmx_xorv2si3 */
7655 : break;
7656 :
7657 : case 12:
7658 : if (
7659 : #line 4747 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7660 : (ix86_binary_operator_ok (XOR, V4QImode, operands)))
7661 : {
7662 : *pnum_clobbers = 1;
7663 : return 2345; /* *xorv4qi3 */
7664 : }
7665 : break;
7666 :
7667 : case 13:
7668 : if (
7669 : #line 4747 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7670 : (ix86_binary_operator_ok (XOR, V2QImode, operands)))
7671 : {
7672 : *pnum_clobbers = 1;
7673 : return 2348; /* *xorv2qi3 */
7674 : }
7675 : break;
7676 :
7677 : case 14:
7678 : if (
7679 : #line 4747 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7680 : (ix86_binary_operator_ok (XOR, V2HImode, operands)))
7681 : {
7682 : *pnum_clobbers = 1;
7683 : return 2351; /* *xorv2hi3 */
7684 : }
7685 : break;
7686 :
7687 : case 15:
7688 : if (
7689 : #line 6068 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7690 : (TARGET_SSE))
7691 : return 3869; /* xorbf3 */
7692 : break;
7693 :
7694 : case 16:
7695 : if (
7696 : #line 6068 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7697 : (TARGET_SSE))
7698 : return 3872; /* xorhf3 */
7699 : break;
7700 :
7701 : case 17:
7702 : if (
7703 : #line 6068 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7704 : (TARGET_SSE))
7705 : return 3875; /* xorsf3 */
7706 : break;
7707 :
7708 : case 18:
7709 : if ((
7710 : #line 6068 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7711 : (TARGET_SSE) &&
7712 : #line 1387 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7713 : (TARGET_SSE2)))
7714 : return 3878; /* xordf3 */
7715 : break;
7716 :
7717 : case 19:
7718 : if (
7719 : #line 6143 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7720 : (TARGET_SSE && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
7721 : return 3881; /* *xortf3 */
7722 : break;
7723 :
7724 : default:
7725 : break;
7726 : }
7727 : if (pnum_clobbers != NULL
7728 : && pattern83 (x2) == 0)
7729 : {
7730 : x6 = XEXP (x3, 0);
7731 : x7 = XEXP (x6, 0);
7732 : operands[2] = x7;
7733 : switch (pattern1091 (x1))
7734 : {
7735 : case 0:
7736 : if (
7737 : #line 13626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7738 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
7739 : {
7740 : *pnum_clobbers = 1;
7741 : return 767; /* *xorqi_exthi_1_slp */
7742 : }
7743 : break;
7744 :
7745 : case 1:
7746 : if (
7747 : #line 13626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7748 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
7749 : {
7750 : *pnum_clobbers = 1;
7751 : return 770; /* *xorqi_extsi_1_slp */
7752 : }
7753 : break;
7754 :
7755 : case 2:
7756 : if ((
7757 : #line 13626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7758 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
7759 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7760 : (TARGET_64BIT)))
7761 : {
7762 : *pnum_clobbers = 1;
7763 : return 773; /* *xorqi_extdi_1_slp */
7764 : }
7765 : break;
7766 :
7767 : case 3:
7768 : *pnum_clobbers = 1;
7769 : return 791; /* *xorqi_exthi_0 */
7770 :
7771 : case 4:
7772 : *pnum_clobbers = 1;
7773 : return 794; /* *xorqi_extsi_0 */
7774 :
7775 : case 5:
7776 : if (
7777 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7778 : (TARGET_64BIT))
7779 : {
7780 : *pnum_clobbers = 1;
7781 : return 797; /* *xorqi_extdi_0 */
7782 : }
7783 : break;
7784 :
7785 : default:
7786 : break;
7787 : }
7788 : x9 = XEXP (x2, 1);
7789 : if (GET_CODE (x9) == SUBREG)
7790 : {
7791 : switch (pattern1094 (x1))
7792 : {
7793 : case 0:
7794 : if (
7795 : #line 13655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7796 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
7797 : {
7798 : *pnum_clobbers = 1;
7799 : return 776; /* *xorqi_exthi_2_slp */
7800 : }
7801 : break;
7802 :
7803 : case 1:
7804 : if (
7805 : #line 13655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7806 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
7807 : {
7808 : *pnum_clobbers = 1;
7809 : return 779; /* *xorqi_extsi_2_slp */
7810 : }
7811 : break;
7812 :
7813 : case 2:
7814 : if ((
7815 : #line 13655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7816 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
7817 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7818 : (TARGET_64BIT)))
7819 : {
7820 : *pnum_clobbers = 1;
7821 : return 782; /* *xorqi_extdi_2_slp */
7822 : }
7823 : break;
7824 :
7825 : case 3:
7826 : *pnum_clobbers = 1;
7827 : return 800; /* *xorqi_ext2hi_0 */
7828 :
7829 : case 4:
7830 : *pnum_clobbers = 1;
7831 : return 803; /* *xorqi_ext2si_0 */
7832 :
7833 : case 5:
7834 : if (
7835 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7836 : (TARGET_64BIT))
7837 : {
7838 : *pnum_clobbers = 1;
7839 : return 806; /* *xorqi_ext2di_0 */
7840 : }
7841 : break;
7842 :
7843 : default:
7844 : break;
7845 : }
7846 : }
7847 : }
7848 : operands[1] = x3;
7849 : if (pattern84 (x1) != 0)
7850 : return -1;
7851 : if (
7852 : #line 14665 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7853 : (ix86_binary_operator_ok (XOR, QImode, operands, TARGET_APX_NDD)
7854 : && TARGET_APX_NF))
7855 : return 903; /* *xorqi_1_nf */
7856 : if (pnum_clobbers == NULL
7857 : || !
7858 : #line 14665 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7859 : (ix86_binary_operator_ok (XOR, QImode, operands, TARGET_APX_NDD)
7860 : && true))
7861 : return -1;
7862 : *pnum_clobbers = 1;
7863 : return 904; /* *xorqi_1 */
7864 :
7865 : case ZERO_EXTEND:
7866 : switch (pattern40 (x1))
7867 : {
7868 : case 0:
7869 : if (!(
7870 : #line 15003 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7871 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
7872 : #line 1271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7873 : (TARGET_64BIT)))
7874 : return -1;
7875 : return 941; /* *concatditi3_2 */
7876 :
7877 : case 1:
7878 : if (!(
7879 : #line 15047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7880 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
7881 : #line 1271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7882 : (TARGET_64BIT)))
7883 : return -1;
7884 : return 962; /* *concatditi3_4 */
7885 :
7886 : case 2:
7887 : if (!(
7888 : #line 15047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7889 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
7890 : #line 1271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7891 : (TARGET_64BIT)))
7892 : return -1;
7893 : return 965; /* *concatditi3_4 */
7894 :
7895 : case 3:
7896 : if (!(
7897 : #line 15124 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7898 : (TImode == DImode
7899 : ? CONST_INT_P (operands[2])
7900 : && (UINTVAL (operands[2]) & GET_MODE_MASK (SImode)) == 0
7901 : && !ix86_endbr_immediate_operand (operands[2], VOIDmode)
7902 : : CONST_WIDE_INT_P (operands[2])
7903 : && CONST_WIDE_INT_NUNITS (operands[2]) == 2
7904 : && CONST_WIDE_INT_ELT (operands[2], 0) == 0
7905 : && !ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[2],
7906 : 1)),
7907 : VOIDmode)) &&
7908 : #line 1271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7909 : (TARGET_64BIT)))
7910 : return -1;
7911 : return 989; /* *concatditi3_7 */
7912 :
7913 : default:
7914 : return -1;
7915 : }
7916 :
7917 : default:
7918 : return -1;
7919 : }
7920 : }
7921 :
7922 : int
7923 : recog_49 (rtx x1 ATTRIBUTE_UNUSED,
7924 : rtx_insn *insn ATTRIBUTE_UNUSED,
7925 : int *pnum_clobbers ATTRIBUTE_UNUSED)
7926 : {
7927 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
7928 : rtx x2, x3, x4;
7929 : int res ATTRIBUTE_UNUSED;
7930 : switch (pattern2 (x1, pnum_clobbers))
7931 : {
7932 : case 0:
7933 : if (!
7934 : #line 19169 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7935 : (ix86_binary_operator_ok (ROTATERT, QImode, operands)
7936 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (QImode)-1))
7937 : == GET_MODE_BITSIZE (QImode)-1
7938 : && ix86_pre_reload_split ()))
7939 : return -1;
7940 : *pnum_clobbers = 1;
7941 : return 1331; /* *rotrqi3_mask_1 */
7942 :
7943 : case 1:
7944 : if (!
7945 : #line 19169 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7946 : (ix86_binary_operator_ok (ROTATERT, HImode, operands)
7947 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (HImode)-1))
7948 : == GET_MODE_BITSIZE (HImode)-1
7949 : && ix86_pre_reload_split ()))
7950 : return -1;
7951 : *pnum_clobbers = 1;
7952 : return 1333; /* *rotrhi3_mask_1 */
7953 :
7954 : case 2:
7955 : if (!
7956 : #line 19250 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7957 : (ix86_binary_operator_ok (ROTATERT, QImode, operands)
7958 : && (INTVAL (operands[3]) & (1 * BITS_PER_UNIT - 1)) == 0
7959 : && ix86_pre_reload_split ()))
7960 : return -1;
7961 : *pnum_clobbers = 1;
7962 : return 1347; /* *rotrqi3_add_1 */
7963 :
7964 : case 3:
7965 : if (!
7966 : #line 19250 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7967 : (ix86_binary_operator_ok (ROTATERT, HImode, operands)
7968 : && (INTVAL (operands[3]) & (2 * BITS_PER_UNIT - 1)) == 0
7969 : && ix86_pre_reload_split ()))
7970 : return -1;
7971 : *pnum_clobbers = 1;
7972 : return 1349; /* *rotrhi3_add_1 */
7973 :
7974 : case 4:
7975 : if (!
7976 : #line 19319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7977 : (ix86_binary_operator_ok (ROTATERT, QImode, operands)
7978 : && (INTVAL (operands[3]) & (1 * BITS_PER_UNIT - 1)) == 0
7979 : && ix86_pre_reload_split ()))
7980 : return -1;
7981 : *pnum_clobbers = 1;
7982 : return 1363; /* *rotrqi3_sub_1 */
7983 :
7984 : case 5:
7985 : if (!
7986 : #line 19319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7987 : (ix86_binary_operator_ok (ROTATERT, HImode, operands)
7988 : && (INTVAL (operands[3]) & (2 * BITS_PER_UNIT - 1)) == 0
7989 : && ix86_pre_reload_split ()))
7990 : return -1;
7991 : *pnum_clobbers = 1;
7992 : return 1365; /* *rotrhi3_sub_1 */
7993 :
7994 : case 6:
7995 : x2 = XEXP (x1, 0);
7996 : operands[0] = x2;
7997 : x3 = XEXP (x1, 1);
7998 : switch (pattern270 (x3, pnum_clobbers))
7999 : {
8000 : case 0:
8001 : if (
8002 : #line 19121 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8003 : (ix86_binary_operator_ok (ROTATERT, QImode, operands)
8004 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (QImode)-1))
8005 : == GET_MODE_BITSIZE (QImode)-1
8006 : && ix86_pre_reload_split ()))
8007 : {
8008 : *pnum_clobbers = 1;
8009 : return 1323; /* *rotrqi3_mask */
8010 : }
8011 : break;
8012 :
8013 : case 1:
8014 : if (
8015 : #line 19121 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8016 : (ix86_binary_operator_ok (ROTATERT, HImode, operands)
8017 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (HImode)-1))
8018 : == GET_MODE_BITSIZE (HImode)-1
8019 : && ix86_pre_reload_split ()))
8020 : {
8021 : *pnum_clobbers = 1;
8022 : return 1325; /* *rotrhi3_mask */
8023 : }
8024 : break;
8025 :
8026 : case 2:
8027 : if (
8028 : #line 19214 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8029 : (ix86_binary_operator_ok (ROTATERT, QImode, operands)
8030 : && (INTVAL (operands[3]) & (1 * BITS_PER_UNIT - 1)) == 0
8031 : && ix86_pre_reload_split ()))
8032 : {
8033 : *pnum_clobbers = 1;
8034 : return 1339; /* *rotrqi3_add */
8035 : }
8036 : break;
8037 :
8038 : case 3:
8039 : if (
8040 : #line 19214 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8041 : (ix86_binary_operator_ok (ROTATERT, HImode, operands)
8042 : && (INTVAL (operands[3]) & (2 * BITS_PER_UNIT - 1)) == 0
8043 : && ix86_pre_reload_split ()))
8044 : {
8045 : *pnum_clobbers = 1;
8046 : return 1341; /* *rotrhi3_add */
8047 : }
8048 : break;
8049 :
8050 : case 4:
8051 : if (
8052 : #line 19283 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8053 : (ix86_binary_operator_ok (ROTATERT, QImode, operands)
8054 : && (INTVAL (operands[3]) & (1 * BITS_PER_UNIT - 1)) == 0
8055 : && ix86_pre_reload_split ()))
8056 : {
8057 : *pnum_clobbers = 1;
8058 : return 1355; /* *rotrqi3_sub */
8059 : }
8060 : break;
8061 :
8062 : case 5:
8063 : if (
8064 : #line 19283 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8065 : (ix86_binary_operator_ok (ROTATERT, HImode, operands)
8066 : && (INTVAL (operands[3]) & (2 * BITS_PER_UNIT - 1)) == 0
8067 : && ix86_pre_reload_split ()))
8068 : {
8069 : *pnum_clobbers = 1;
8070 : return 1357; /* *rotrhi3_sub */
8071 : }
8072 : break;
8073 :
8074 : case 6:
8075 : if (pnum_clobbers != NULL
8076 : && pattern628 (x3) == 0
8077 : &&
8078 : #line 1271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8079 : (TARGET_64BIT))
8080 : {
8081 : *pnum_clobbers = 2;
8082 : return 1373; /* ix86_rotrti3_doubleword */
8083 : }
8084 : x4 = XEXP (x3, 1);
8085 : if (XWINT (x4, 0) == 64L
8086 : && register_operand (operands[0], E_TImode)
8087 : && GET_MODE (x3) == E_TImode
8088 : && register_operand (operands[1], E_TImode)
8089 : &&
8090 : #line 19442 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8091 : (TARGET_64BIT))
8092 : return 1377; /* rotr64ti2_doubleword */
8093 : break;
8094 :
8095 : default:
8096 : break;
8097 : }
8098 : x4 = XEXP (x3, 1);
8099 : operands[2] = x4;
8100 : switch (pattern271 (x1, pnum_clobbers))
8101 : {
8102 : case 0:
8103 : if (
8104 : #line 19658 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8105 : (ix86_binary_operator_ok (ROTATERT, QImode, operands, TARGET_APX_NDD)
8106 : && TARGET_APX_NF))
8107 : return 1413; /* *rotrqi3_1_nf */
8108 : if (pnum_clobbers == NULL
8109 : || !
8110 : #line 19658 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8111 : (ix86_binary_operator_ok (ROTATERT, QImode, operands, TARGET_APX_NDD)
8112 : && true))
8113 : return -1;
8114 : *pnum_clobbers = 1;
8115 : return 1414; /* *rotrqi3_1 */
8116 :
8117 : case 1:
8118 : if (
8119 : #line 19658 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8120 : (ix86_binary_operator_ok (ROTATERT, HImode, operands, TARGET_APX_NDD)
8121 : && TARGET_APX_NF))
8122 : return 1417; /* *rotrhi3_1_nf */
8123 : if (pnum_clobbers == NULL
8124 : || !
8125 : #line 19658 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8126 : (ix86_binary_operator_ok (ROTATERT, HImode, operands, TARGET_APX_NDD)
8127 : && true))
8128 : return -1;
8129 : *pnum_clobbers = 1;
8130 : return 1418; /* *rotrhi3_1 */
8131 :
8132 : case 2:
8133 : if (!
8134 : #line 19686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8135 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
8136 : return -1;
8137 : *pnum_clobbers = 1;
8138 : return 1420; /* *rotrqi3_1_slp */
8139 :
8140 : case 3:
8141 : if (!
8142 : #line 19686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8143 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
8144 : return -1;
8145 : *pnum_clobbers = 1;
8146 : return 1422; /* *rotrhi3_1_slp */
8147 :
8148 : default:
8149 : return -1;
8150 : }
8151 :
8152 : default:
8153 : return -1;
8154 : }
8155 : }
8156 :
8157 : int
8158 : recog_57 (rtx x1 ATTRIBUTE_UNUSED,
8159 : rtx_insn *insn ATTRIBUTE_UNUSED,
8160 : int *pnum_clobbers ATTRIBUTE_UNUSED)
8161 : {
8162 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
8163 : rtx x2;
8164 : int res ATTRIBUTE_UNUSED;
8165 : switch (pattern88 (x1, pnum_clobbers))
8166 : {
8167 : case 0:
8168 : switch (GET_MODE (operands[0]))
8169 : {
8170 : case E_TImode:
8171 : x2 = XEXP (x1, 1);
8172 : if (pattern79 (x2, pnum_clobbers) != 0
8173 : || !(
8174 : #line 6659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8175 : (ix86_binary_operator_ok (PLUS, TImode, operands, TARGET_APX_NDD)) &&
8176 : #line 1271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8177 : (TARGET_64BIT)))
8178 : return -1;
8179 : *pnum_clobbers = 1;
8180 : return 275; /* *addti3_doubleword */
8181 :
8182 : case E_HImode:
8183 : x2 = XEXP (x1, 1);
8184 : if (pattern80 (x2,
8185 : E_HImode) != 0)
8186 : return -1;
8187 : if (
8188 : #line 7031 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8189 : (ix86_binary_operator_ok (PLUS, HImode, operands, TARGET_APX_NDD)
8190 : && TARGET_APX_NF))
8191 : return 305; /* *addhi_1_nf */
8192 : if (pnum_clobbers == NULL
8193 : || !
8194 : #line 7031 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8195 : (ix86_binary_operator_ok (PLUS, HImode, operands, TARGET_APX_NDD)
8196 : && true))
8197 : return -1;
8198 : *pnum_clobbers = 1;
8199 : return 306; /* *addhi_1 */
8200 :
8201 : case E_QImode:
8202 : x2 = XEXP (x1, 1);
8203 : if (pattern80 (x2,
8204 : E_QImode) != 0)
8205 : return -1;
8206 : if (
8207 : #line 7092 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8208 : (ix86_binary_operator_ok (PLUS, QImode, operands, TARGET_APX_NDD)
8209 : && TARGET_APX_NF))
8210 : return 307; /* *addqi_1_nf */
8211 : if (pnum_clobbers == NULL
8212 : || !
8213 : #line 7092 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8214 : (ix86_binary_operator_ok (PLUS, QImode, operands, TARGET_APX_NDD)
8215 : && true))
8216 : return -1;
8217 : *pnum_clobbers = 1;
8218 : return 308; /* *addqi_1 */
8219 :
8220 : case E_HFmode:
8221 : x2 = XEXP (x1, 1);
8222 : if (pattern3 (x2,
8223 : E_HFmode) != 0
8224 : || !
8225 : #line 24521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8226 : (TARGET_AVX512FP16
8227 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8228 : return -1;
8229 : return 1714; /* *addhf */
8230 :
8231 : case E_V8QImode:
8232 : x2 = XEXP (x1, 1);
8233 : if (pattern6 (x2,
8234 : E_V8QImode) != 0
8235 : || !
8236 : #line 3242 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8237 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8238 : && ix86_binary_operator_ok (PLUS, V8QImode, operands)))
8239 : return -1;
8240 : return 2184; /* *mmx_addv8qi3 */
8241 :
8242 : case E_V4HImode:
8243 : x2 = XEXP (x1, 1);
8244 : if (pattern6 (x2,
8245 : E_V4HImode) != 0
8246 : || !
8247 : #line 3242 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8248 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8249 : && ix86_binary_operator_ok (PLUS, V4HImode, operands)))
8250 : return -1;
8251 : return 2186; /* *mmx_addv4hi3 */
8252 :
8253 : case E_V2SImode:
8254 : x2 = XEXP (x1, 1);
8255 : if (pattern6 (x2,
8256 : E_V2SImode) != 0
8257 : || !
8258 : #line 3242 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8259 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8260 : && ix86_binary_operator_ok (PLUS, V2SImode, operands)))
8261 : return -1;
8262 : return 2188; /* *mmx_addv2si3 */
8263 :
8264 : case E_V1DImode:
8265 : x2 = XEXP (x1, 1);
8266 : if (pattern6 (x2,
8267 : E_V1DImode) != 0
8268 : || !(
8269 : #line 3242 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8270 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8271 : && ix86_binary_operator_ok (PLUS, V1DImode, operands)) &&
8272 : #line 50 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8273 : (TARGET_SSE2)))
8274 : return -1;
8275 : return 2190; /* *mmx_addv1di3 */
8276 :
8277 : case E_V4QImode:
8278 : x2 = XEXP (x1, 1);
8279 : if (pattern5 (x2,
8280 : E_V4QImode) != 0
8281 : || !
8282 : #line 3258 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8283 : (TARGET_SSE2))
8284 : return -1;
8285 : return 2192; /* addv4qi3 */
8286 :
8287 : case E_V2HImode:
8288 : x2 = XEXP (x1, 1);
8289 : if (pattern5 (x2,
8290 : E_V2HImode) != 0
8291 : || !
8292 : #line 3258 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8293 : (TARGET_SSE2))
8294 : return -1;
8295 : return 2194; /* addv2hi3 */
8296 :
8297 : case E_V2QImode:
8298 : if (pnum_clobbers == NULL)
8299 : return -1;
8300 : x2 = XEXP (x1, 1);
8301 : if (pattern5 (x2,
8302 : E_V2QImode) != 0
8303 : || !
8304 : #line 3272 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8305 : (!TARGET_PARTIAL_REG_STALL || optimize_size || TARGET_SSE2))
8306 : return -1;
8307 : *pnum_clobbers = 1;
8308 : return 2196; /* addv2qi3 */
8309 :
8310 : default:
8311 : return -1;
8312 : }
8313 :
8314 : case 1:
8315 : if (!
8316 : #line 7170 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8317 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
8318 : return -1;
8319 : *pnum_clobbers = 1;
8320 : return 309; /* *addqi_1_slp */
8321 :
8322 : case 2:
8323 : if (!
8324 : #line 7170 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8325 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
8326 : return -1;
8327 : *pnum_clobbers = 1;
8328 : return 310; /* *addhi_1_slp */
8329 :
8330 : default:
8331 : return -1;
8332 : }
8333 : }
8334 :
8335 : int
8336 : recog_66 (rtx x1 ATTRIBUTE_UNUSED,
8337 : rtx_insn *insn ATTRIBUTE_UNUSED,
8338 : int *pnum_clobbers ATTRIBUTE_UNUSED)
8339 : {
8340 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
8341 : rtx x2, x3, x4, x5, x6, x7;
8342 : int res ATTRIBUTE_UNUSED;
8343 : x2 = XEXP (x1, 0);
8344 : operands[0] = x2;
8345 : x3 = XEXP (x1, 1);
8346 : x4 = XEXP (x3, 0);
8347 : switch (GET_CODE (x4))
8348 : {
8349 : case REG:
8350 : case SUBREG:
8351 : operands[2] = x4;
8352 : x5 = XEXP (x3, 2);
8353 : if (GET_CODE (x5) != CONST_INT)
8354 : return -1;
8355 : operands[3] = x5;
8356 : x6 = XEXP (x3, 1);
8357 : operands[1] = x6;
8358 : switch (GET_MODE (operands[0]))
8359 : {
8360 : case E_V2SFmode:
8361 : if (register_operand (operands[0], E_V2SFmode)
8362 : && GET_MODE (x3) == E_V2SFmode
8363 : && register_operand (operands[2], E_V2SFmode)
8364 : && register_operand (operands[1], E_V2SFmode)
8365 : && const_0_to_3_operand (operands[3], E_SImode)
8366 : &&
8367 : #line 1321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8368 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
8369 : return 2134; /* *mmx_blendps */
8370 : break;
8371 :
8372 : case E_V4HFmode:
8373 : if (pattern878 (x3,
8374 : E_V4HFmode) == 0
8375 : &&
8376 : #line 5643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8377 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
8378 : return 2396; /* *mmx_pblendw64 */
8379 : break;
8380 :
8381 : case E_V4BFmode:
8382 : if (pattern878 (x3,
8383 : E_V4BFmode) == 0
8384 : &&
8385 : #line 5643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8386 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
8387 : return 2397; /* *mmx_pblendw64 */
8388 : break;
8389 :
8390 : case E_V4HImode:
8391 : if (pattern878 (x3,
8392 : E_V4HImode) == 0
8393 : &&
8394 : #line 5643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8395 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
8396 : return 2398; /* *mmx_pblendw64 */
8397 : break;
8398 :
8399 : case E_V2HFmode:
8400 : if (pattern879 (x3,
8401 : E_V2HFmode) == 0
8402 : &&
8403 : #line 5662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8404 : (TARGET_SSE4_1))
8405 : return 2399; /* *mmx_pblendw32 */
8406 : break;
8407 :
8408 : case E_V2BFmode:
8409 : if (pattern879 (x3,
8410 : E_V2BFmode) == 0
8411 : &&
8412 : #line 5662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8413 : (TARGET_SSE4_1))
8414 : return 2400; /* *mmx_pblendw32 */
8415 : break;
8416 :
8417 : case E_V2HImode:
8418 : if (pattern879 (x3,
8419 : E_V2HImode) == 0
8420 : &&
8421 : #line 5662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8422 : (TARGET_SSE4_1))
8423 : return 2401; /* *mmx_pblendw32 */
8424 : break;
8425 :
8426 : default:
8427 : break;
8428 : }
8429 : if (XWINT (x5, 0) != 1L)
8430 : return -1;
8431 : operands[1] = x6;
8432 : switch (GET_MODE (operands[0]))
8433 : {
8434 : case E_V2SFmode:
8435 : if (pattern880 (x3,
8436 : E_V2SFmode) != 0
8437 : || !
8438 : #line 1767 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8439 : (TARGET_MMX_WITH_SSE))
8440 : return -1;
8441 : return 2150; /* *mmx_movss_v2sf */
8442 :
8443 : case E_V2SImode:
8444 : if (pattern880 (x3,
8445 : E_V2SImode) != 0
8446 : || !
8447 : #line 1767 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8448 : (TARGET_MMX_WITH_SSE))
8449 : return -1;
8450 : return 2151; /* *mmx_movss_v2si */
8451 :
8452 : default:
8453 : return -1;
8454 : }
8455 :
8456 : case VEC_DUPLICATE:
8457 : x7 = XEXP (x4, 0);
8458 : operands[2] = x7;
8459 : x6 = XEXP (x3, 1);
8460 : operands[1] = x6;
8461 : x5 = XEXP (x3, 2);
8462 : operands[3] = x5;
8463 : if (!const_int_operand (operands[3], E_SImode))
8464 : return -1;
8465 : switch (GET_MODE (operands[0]))
8466 : {
8467 : case E_V2SImode:
8468 : if (pattern881 (x3,
8469 : E_V2SImode,
8470 : E_SImode) != 0
8471 : || !
8472 : #line 5300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8473 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE
8474 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
8475 : < GET_MODE_NUNITS (V2SImode))))
8476 : return -1;
8477 : return 2376; /* *mmx_pinsrd */
8478 :
8479 : case E_V4HFmode:
8480 : if (pattern881 (x3,
8481 : E_V4HFmode,
8482 : E_HFmode) != 0
8483 : || !
8484 : #line 5331 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8485 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8486 : && (TARGET_SSE || TARGET_3DNOW_A)
8487 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
8488 : < GET_MODE_NUNITS (V4HImode))))
8489 : return -1;
8490 : return 2377; /* *mmx_pinsrw */
8491 :
8492 : case E_V4BFmode:
8493 : if (pattern881 (x3,
8494 : E_V4BFmode,
8495 : E_BFmode) != 0
8496 : || !
8497 : #line 5331 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8498 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8499 : && (TARGET_SSE || TARGET_3DNOW_A)
8500 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
8501 : < GET_MODE_NUNITS (V4HImode))))
8502 : return -1;
8503 : return 2378; /* *mmx_pinsrw */
8504 :
8505 : case E_V4HImode:
8506 : if (pattern881 (x3,
8507 : E_V4HImode,
8508 : E_HImode) != 0
8509 : || !
8510 : #line 5331 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8511 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8512 : && (TARGET_SSE || TARGET_3DNOW_A)
8513 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
8514 : < GET_MODE_NUNITS (V4HImode))))
8515 : return -1;
8516 : return 2379; /* *mmx_pinsrw */
8517 :
8518 : case E_V8QImode:
8519 : if (pattern881 (x3,
8520 : E_V8QImode,
8521 : E_QImode) != 0
8522 : || !
8523 : #line 5387 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8524 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE
8525 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
8526 : < GET_MODE_NUNITS (V8QImode))))
8527 : return -1;
8528 : return 2380; /* *mmx_pinsrb */
8529 :
8530 : case E_V2HFmode:
8531 : if (pattern881 (x3,
8532 : E_V2HFmode,
8533 : E_HFmode) != 0
8534 : || !
8535 : #line 6010 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8536 : (TARGET_SSE2
8537 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
8538 : < GET_MODE_NUNITS (V2HImode))))
8539 : return -1;
8540 : return 2415; /* *pinsrw */
8541 :
8542 : case E_V2BFmode:
8543 : if (pattern881 (x3,
8544 : E_V2BFmode,
8545 : E_BFmode) != 0
8546 : || !
8547 : #line 6010 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8548 : (TARGET_SSE2
8549 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
8550 : < GET_MODE_NUNITS (V2HImode))))
8551 : return -1;
8552 : return 2416; /* *pinsrw */
8553 :
8554 : case E_V2HImode:
8555 : if (pattern881 (x3,
8556 : E_V2HImode,
8557 : E_HImode) != 0
8558 : || !
8559 : #line 6010 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8560 : (TARGET_SSE2
8561 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
8562 : < GET_MODE_NUNITS (V2HImode))))
8563 : return -1;
8564 : return 2417; /* *pinsrw */
8565 :
8566 : case E_V4QImode:
8567 : if (pattern881 (x3,
8568 : E_V4QImode,
8569 : E_QImode) != 0
8570 : || !
8571 : #line 6064 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8572 : (TARGET_SSE4_1
8573 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
8574 : < GET_MODE_NUNITS (V4QImode))))
8575 : return -1;
8576 : return 2418; /* *pinsrb */
8577 :
8578 : default:
8579 : return -1;
8580 : }
8581 :
8582 : case SS_TRUNCATE:
8583 : switch (pattern107 (x3))
8584 : {
8585 : case 0:
8586 : if (!
8587 : #line 16187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8588 : (TARGET_AVX512VL))
8589 : return -1;
8590 : return 7394; /* avx512vl_ss_truncatev2div2qi2_mask_store_1 */
8591 :
8592 : case 1:
8593 : if (!
8594 : #line 16282 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8595 : (TARGET_AVX512VL))
8596 : return -1;
8597 : return 7421; /* avx512vl_ss_truncatev4siv4qi2_mask_store_1 */
8598 :
8599 : case 2:
8600 : if (!
8601 : #line 16282 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8602 : (TARGET_AVX512VL))
8603 : return -1;
8604 : return 7424; /* avx512vl_ss_truncatev4div4qi2_mask_store_1 */
8605 :
8606 : case 3:
8607 : if (!(
8608 : #line 16380 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8609 : (TARGET_AVX512VL) &&
8610 : #line 16304 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8611 : (TARGET_AVX512BW)))
8612 : return -1;
8613 : return 7451; /* avx512vl_ss_truncatev8hiv8qi2_mask_store_1 */
8614 :
8615 : case 4:
8616 : if (!
8617 : #line 16380 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8618 : (TARGET_AVX512VL))
8619 : return -1;
8620 : return 7454; /* avx512vl_ss_truncatev8siv8qi2_mask_store_1 */
8621 :
8622 : case 5:
8623 : if (!
8624 : #line 16892 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8625 : (TARGET_AVX512F))
8626 : return -1;
8627 : return 7546; /* avx512f_ss_truncatev8div16qi2_mask_store_1 */
8628 :
8629 : case 6:
8630 : if (!
8631 : #line 16534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8632 : (TARGET_AVX512VL))
8633 : return -1;
8634 : return 7491; /* avx512vl_ss_truncatev4siv4hi2_mask_store_1 */
8635 :
8636 : case 7:
8637 : if (!
8638 : #line 16534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8639 : (TARGET_AVX512VL))
8640 : return -1;
8641 : return 7494; /* avx512vl_ss_truncatev4div4hi2_mask_store_1 */
8642 :
8643 : case 8:
8644 : if (!
8645 : #line 16621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8646 : (TARGET_AVX512VL))
8647 : return -1;
8648 : return 7509; /* avx512vl_ss_truncatev2div2hi2_mask_store_1 */
8649 :
8650 : case 9:
8651 : if (!
8652 : #line 16767 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8653 : (TARGET_AVX512VL))
8654 : return -1;
8655 : return 7528; /* avx512vl_ss_truncatev2div2si2_mask_store_1 */
8656 :
8657 : default:
8658 : return -1;
8659 : }
8660 :
8661 : case TRUNCATE:
8662 : switch (pattern107 (x3))
8663 : {
8664 : case 0:
8665 : if (!
8666 : #line 16187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8667 : (TARGET_AVX512VL))
8668 : return -1;
8669 : return 7395; /* avx512vl_truncatev2div2qi2_mask_store_1 */
8670 :
8671 : case 1:
8672 : if (!
8673 : #line 16282 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8674 : (TARGET_AVX512VL))
8675 : return -1;
8676 : return 7422; /* avx512vl_truncatev4siv4qi2_mask_store_1 */
8677 :
8678 : case 2:
8679 : if (!
8680 : #line 16282 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8681 : (TARGET_AVX512VL))
8682 : return -1;
8683 : return 7425; /* avx512vl_truncatev4div4qi2_mask_store_1 */
8684 :
8685 : case 3:
8686 : if (!(
8687 : #line 16380 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8688 : (TARGET_AVX512VL) &&
8689 : #line 16304 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8690 : (TARGET_AVX512BW)))
8691 : return -1;
8692 : return 7452; /* avx512vl_truncatev8hiv8qi2_mask_store_1 */
8693 :
8694 : case 4:
8695 : if (!
8696 : #line 16380 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8697 : (TARGET_AVX512VL))
8698 : return -1;
8699 : return 7455; /* avx512vl_truncatev8siv8qi2_mask_store_1 */
8700 :
8701 : case 5:
8702 : if (!
8703 : #line 16892 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8704 : (TARGET_AVX512F))
8705 : return -1;
8706 : return 7547; /* avx512f_truncatev8div16qi2_mask_store_1 */
8707 :
8708 : case 6:
8709 : if (!
8710 : #line 16534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8711 : (TARGET_AVX512VL))
8712 : return -1;
8713 : return 7492; /* avx512vl_truncatev4siv4hi2_mask_store_1 */
8714 :
8715 : case 7:
8716 : if (!
8717 : #line 16534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8718 : (TARGET_AVX512VL))
8719 : return -1;
8720 : return 7495; /* avx512vl_truncatev4div4hi2_mask_store_1 */
8721 :
8722 : case 8:
8723 : if (!
8724 : #line 16621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8725 : (TARGET_AVX512VL))
8726 : return -1;
8727 : return 7510; /* avx512vl_truncatev2div2hi2_mask_store_1 */
8728 :
8729 : case 9:
8730 : if (!
8731 : #line 16767 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8732 : (TARGET_AVX512VL))
8733 : return -1;
8734 : return 7529; /* avx512vl_truncatev2div2si2_mask_store_1 */
8735 :
8736 : default:
8737 : return -1;
8738 : }
8739 :
8740 : case US_TRUNCATE:
8741 : switch (pattern107 (x3))
8742 : {
8743 : case 0:
8744 : if (!
8745 : #line 16187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8746 : (TARGET_AVX512VL))
8747 : return -1;
8748 : return 7396; /* avx512vl_us_truncatev2div2qi2_mask_store_1 */
8749 :
8750 : case 1:
8751 : if (!
8752 : #line 16282 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8753 : (TARGET_AVX512VL))
8754 : return -1;
8755 : return 7423; /* avx512vl_us_truncatev4siv4qi2_mask_store_1 */
8756 :
8757 : case 2:
8758 : if (!
8759 : #line 16282 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8760 : (TARGET_AVX512VL))
8761 : return -1;
8762 : return 7426; /* avx512vl_us_truncatev4div4qi2_mask_store_1 */
8763 :
8764 : case 3:
8765 : if (!(
8766 : #line 16380 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8767 : (TARGET_AVX512VL) &&
8768 : #line 16304 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8769 : (TARGET_AVX512BW)))
8770 : return -1;
8771 : return 7453; /* avx512vl_us_truncatev8hiv8qi2_mask_store_1 */
8772 :
8773 : case 4:
8774 : if (!
8775 : #line 16380 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8776 : (TARGET_AVX512VL))
8777 : return -1;
8778 : return 7456; /* avx512vl_us_truncatev8siv8qi2_mask_store_1 */
8779 :
8780 : case 5:
8781 : if (!
8782 : #line 16892 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8783 : (TARGET_AVX512F))
8784 : return -1;
8785 : return 7548; /* avx512f_us_truncatev8div16qi2_mask_store_1 */
8786 :
8787 : case 6:
8788 : if (!
8789 : #line 16534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8790 : (TARGET_AVX512VL))
8791 : return -1;
8792 : return 7493; /* avx512vl_us_truncatev4siv4hi2_mask_store_1 */
8793 :
8794 : case 7:
8795 : if (!
8796 : #line 16534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8797 : (TARGET_AVX512VL))
8798 : return -1;
8799 : return 7496; /* avx512vl_us_truncatev4div4hi2_mask_store_1 */
8800 :
8801 : case 8:
8802 : if (!
8803 : #line 16621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8804 : (TARGET_AVX512VL))
8805 : return -1;
8806 : return 7511; /* avx512vl_us_truncatev2div2hi2_mask_store_1 */
8807 :
8808 : case 9:
8809 : if (!
8810 : #line 16767 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8811 : (TARGET_AVX512VL))
8812 : return -1;
8813 : return 7530; /* avx512vl_us_truncatev2div2si2_mask_store_1 */
8814 :
8815 : default:
8816 : return -1;
8817 : }
8818 :
8819 : default:
8820 : return -1;
8821 : }
8822 : }
8823 :
8824 : int
8825 : recog_77 (rtx x1 ATTRIBUTE_UNUSED,
8826 : rtx_insn *insn ATTRIBUTE_UNUSED,
8827 : int *pnum_clobbers ATTRIBUTE_UNUSED)
8828 : {
8829 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
8830 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
8831 : rtx x10;
8832 : int res ATTRIBUTE_UNUSED;
8833 : x2 = XEXP (x1, 1);
8834 : x3 = XEXP (x2, 0);
8835 : x4 = XEXP (x3, 0);
8836 : switch (GET_CODE (x4))
8837 : {
8838 : case REG:
8839 : case SUBREG:
8840 : case MEM:
8841 : operands[1] = x4;
8842 : x5 = XEXP (x3, 1);
8843 : operands[2] = x5;
8844 : switch (pattern281 (x2))
8845 : {
8846 : case 0:
8847 : if (!nonimmediate_operand (operands[1], E_QImode)
8848 : || !general_operand (operands[2], E_QImode))
8849 : return -1;
8850 : if (
8851 : #line 6883 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8852 : (TARGET_APX_NDD && TARGET_APX_NF
8853 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8854 : return 296; /* *addqi_1_zextsi_nf */
8855 : if (pnum_clobbers == NULL
8856 : || !
8857 : #line 6883 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8858 : (TARGET_APX_NDD && true
8859 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8860 : return -1;
8861 : *pnum_clobbers = 1;
8862 : return 297; /* *addqi_1_zextsi */
8863 :
8864 : case 1:
8865 : if (!nonimmediate_operand (operands[1], E_HImode)
8866 : || !general_operand (operands[2], E_HImode))
8867 : return -1;
8868 : if (
8869 : #line 6925 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8870 : (TARGET_APX_NDD && TARGET_APX_NF
8871 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8872 : return 300; /* *addhi_1_zextsi_nf */
8873 : if (pnum_clobbers == NULL
8874 : || !
8875 : #line 6925 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8876 : (TARGET_APX_NDD && true
8877 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8878 : return -1;
8879 : *pnum_clobbers = 1;
8880 : return 301; /* *addhi_1_zextsi */
8881 :
8882 : case 2:
8883 : if (!nonimmediate_operand (operands[1], E_QImode)
8884 : || !general_operand (operands[2], E_QImode))
8885 : return -1;
8886 : if (
8887 : #line 6883 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8888 : (TARGET_APX_NDD && TARGET_APX_NF
8889 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8890 : return 298; /* *addqi_1_zextdi_nf */
8891 : if (pnum_clobbers == NULL
8892 : || !
8893 : #line 6883 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8894 : (TARGET_APX_NDD && true
8895 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8896 : return -1;
8897 : *pnum_clobbers = 1;
8898 : return 299; /* *addqi_1_zextdi */
8899 :
8900 : case 3:
8901 : if (!nonimmediate_operand (operands[1], E_HImode)
8902 : || !general_operand (operands[2], E_HImode))
8903 : return -1;
8904 : if (
8905 : #line 6925 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8906 : (TARGET_APX_NDD && TARGET_APX_NF
8907 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8908 : return 302; /* *addhi_1_zextdi_nf */
8909 : if (pnum_clobbers == NULL
8910 : || !
8911 : #line 6925 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8912 : (TARGET_APX_NDD && true
8913 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8914 : return -1;
8915 : *pnum_clobbers = 1;
8916 : return 303; /* *addhi_1_zextdi */
8917 :
8918 : case 4:
8919 : if (pnum_clobbers == NULL
8920 : || !nonimmediate_operand (operands[1], E_SImode)
8921 : || !x86_64_general_operand (operands[2], E_SImode)
8922 : || !
8923 : #line 6974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8924 : (TARGET_64BIT
8925 : && ix86_binary_operator_ok (PLUS, SImode, operands, TARGET_APX_NDD)))
8926 : return -1;
8927 : *pnum_clobbers = 1;
8928 : return 304; /* addsi_1_zext */
8929 :
8930 : default:
8931 : return -1;
8932 : }
8933 :
8934 : case PLUS:
8935 : if (pnum_clobbers == NULL)
8936 : return -1;
8937 : x6 = XEXP (x4, 0);
8938 : switch (GET_CODE (x6))
8939 : {
8940 : case LTU:
8941 : case UNLT:
8942 : operands[3] = x6;
8943 : x7 = XEXP (x6, 0);
8944 : if (GET_CODE (x7) != REG
8945 : || REGNO (x7) != 17)
8946 : return -1;
8947 : x8 = XEXP (x6, 1);
8948 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
8949 : return -1;
8950 : x9 = XEXP (x4, 1);
8951 : operands[1] = x9;
8952 : x5 = XEXP (x3, 1);
8953 : operands[2] = x5;
8954 : switch (pattern281 (x2))
8955 : {
8956 : case 0:
8957 : if (pattern1559 (x4,
8958 : E_QImode) != 0
8959 : || !
8960 : #line 9318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8961 : (TARGET_APX_NDD
8962 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8963 : return -1;
8964 : *pnum_clobbers = 1;
8965 : return 486; /* *addqi3_carry_zextsi */
8966 :
8967 : case 1:
8968 : if (pattern1559 (x4,
8969 : E_HImode) != 0
8970 : || !
8971 : #line 9342 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8972 : (TARGET_APX_NDD
8973 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8974 : return -1;
8975 : *pnum_clobbers = 1;
8976 : return 488; /* *addhi3_carry_zextsi */
8977 :
8978 : case 2:
8979 : if (pattern1559 (x4,
8980 : E_QImode) != 0
8981 : || !
8982 : #line 9318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8983 : (TARGET_APX_NDD
8984 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8985 : return -1;
8986 : *pnum_clobbers = 1;
8987 : return 487; /* *addqi3_carry_zextdi */
8988 :
8989 : case 3:
8990 : if (pattern1559 (x4,
8991 : E_HImode) != 0
8992 : || !
8993 : #line 9342 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8994 : (TARGET_APX_NDD
8995 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8996 : return -1;
8997 : *pnum_clobbers = 1;
8998 : return 489; /* *addhi3_carry_zextdi */
8999 :
9000 : case 4:
9001 : if (pattern1559 (x4,
9002 : E_SImode) != 0
9003 : || !
9004 : #line 9366 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9005 : (TARGET_64BIT
9006 : && ix86_binary_operator_ok (PLUS, SImode, operands, TARGET_APX_NDD)))
9007 : return -1;
9008 : *pnum_clobbers = 1;
9009 : return 490; /* *addsi3_carry_zext */
9010 :
9011 : default:
9012 : return -1;
9013 : }
9014 :
9015 : default:
9016 : return -1;
9017 : }
9018 :
9019 : case LTU:
9020 : case UNLT:
9021 : switch (pattern282 (x2, pnum_clobbers))
9022 : {
9023 : case 0:
9024 : if (!ix86_carry_flag_operator (operands[2], E_QImode)
9025 : || !nonimmediate_operand (operands[1], E_QImode)
9026 : || !
9027 : #line 9390 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9028 : (TARGET_APX_NDD))
9029 : return -1;
9030 : *pnum_clobbers = 1;
9031 : return 492; /* *addqi3_carry_zextsi_0 */
9032 :
9033 : case 1:
9034 : if (!ix86_carry_flag_operator (operands[2], E_HImode)
9035 : || !nonimmediate_operand (operands[1], E_HImode)
9036 : || !
9037 : #line 9408 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9038 : (TARGET_APX_NDD))
9039 : return -1;
9040 : *pnum_clobbers = 1;
9041 : return 494; /* *addhi3_carry_zextsi_0 */
9042 :
9043 : case 2:
9044 : if (!ix86_carry_flag_operator (operands[2], E_QImode)
9045 : || !nonimmediate_operand (operands[1], E_QImode)
9046 : || !
9047 : #line 9390 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9048 : (TARGET_APX_NDD))
9049 : return -1;
9050 : *pnum_clobbers = 1;
9051 : return 493; /* *addqi3_carry_zextdi_0 */
9052 :
9053 : case 3:
9054 : if (!ix86_carry_flag_operator (operands[2], E_HImode)
9055 : || !nonimmediate_operand (operands[1], E_HImode)
9056 : || !
9057 : #line 9408 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9058 : (TARGET_APX_NDD))
9059 : return -1;
9060 : *pnum_clobbers = 1;
9061 : return 495; /* *addhi3_carry_zextdi_0 */
9062 :
9063 : case 4:
9064 : if (!ix86_carry_flag_operator (operands[2], E_SImode)
9065 : || !nonimmediate_operand (operands[1], E_SImode)
9066 : || !
9067 : #line 9426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9068 : (TARGET_64BIT))
9069 : return -1;
9070 : *pnum_clobbers = 1;
9071 : return 496; /* *addsi3_carry_zext_0 */
9072 :
9073 : default:
9074 : return -1;
9075 : }
9076 :
9077 : case GE:
9078 : case GEU:
9079 : switch (pattern282 (x2, pnum_clobbers))
9080 : {
9081 : case 0:
9082 : if (!ix86_carry_flag_unset_operator (operands[2], E_QImode)
9083 : || !nonimmediate_operand (operands[1], E_QImode)
9084 : || !
9085 : #line 9448 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9086 : (TARGET_APX_NDD))
9087 : return -1;
9088 : *pnum_clobbers = 1;
9089 : return 498; /* *addqi3_carry_zextsi_0r */
9090 :
9091 : case 1:
9092 : if (!ix86_carry_flag_unset_operator (operands[2], E_HImode)
9093 : || !nonimmediate_operand (operands[1], E_HImode)
9094 : || !
9095 : #line 9466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9096 : (TARGET_APX_NDD))
9097 : return -1;
9098 : *pnum_clobbers = 1;
9099 : return 500; /* *addhi3_carry_zextsi_0r */
9100 :
9101 : case 2:
9102 : if (!ix86_carry_flag_unset_operator (operands[2], E_QImode)
9103 : || !nonimmediate_operand (operands[1], E_QImode)
9104 : || !
9105 : #line 9448 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9106 : (TARGET_APX_NDD))
9107 : return -1;
9108 : *pnum_clobbers = 1;
9109 : return 499; /* *addqi3_carry_zextdi_0r */
9110 :
9111 : case 3:
9112 : if (!ix86_carry_flag_unset_operator (operands[2], E_HImode)
9113 : || !nonimmediate_operand (operands[1], E_HImode)
9114 : || !
9115 : #line 9466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9116 : (TARGET_APX_NDD))
9117 : return -1;
9118 : *pnum_clobbers = 1;
9119 : return 501; /* *addhi3_carry_zextdi_0r */
9120 :
9121 : case 4:
9122 : if (!ix86_carry_flag_unset_operator (operands[2], E_SImode)
9123 : || !nonimmediate_operand (operands[1], E_SImode)
9124 : || !
9125 : #line 9484 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9126 : (TARGET_64BIT))
9127 : return -1;
9128 : *pnum_clobbers = 1;
9129 : return 502; /* *addsi3_carry_zext_0r */
9130 :
9131 : default:
9132 : return -1;
9133 : }
9134 :
9135 : case UNSPEC:
9136 : if (pnum_clobbers == NULL
9137 : || XVECLEN (x4, 0) != 1
9138 : || XINT (x4, 1) != 20
9139 : || GET_MODE (x4) != E_SImode)
9140 : return -1;
9141 : x10 = XVECEXP (x4, 0, 0);
9142 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
9143 : || !register_operand (operands[0], E_DImode)
9144 : || GET_MODE (x2) != E_DImode
9145 : || GET_MODE (x3) != E_SImode)
9146 : return -1;
9147 : x5 = XEXP (x3, 1);
9148 : operands[1] = x5;
9149 : if (!register_operand (operands[1], E_SImode)
9150 : || !
9151 : #line 24304 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9152 : (TARGET_X32))
9153 : return -1;
9154 : *pnum_clobbers = 1;
9155 : return 1701; /* *add_tp_x32_zext */
9156 :
9157 : default:
9158 : return -1;
9159 : }
9160 : }
9161 :
9162 : int
9163 : recog_82 (rtx x1 ATTRIBUTE_UNUSED,
9164 : rtx_insn *insn ATTRIBUTE_UNUSED,
9165 : int *pnum_clobbers ATTRIBUTE_UNUSED)
9166 : {
9167 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
9168 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
9169 : rtx x10, x11, x12, x13;
9170 : int res ATTRIBUTE_UNUSED;
9171 : x2 = XEXP (x1, 0);
9172 : operands[0] = x2;
9173 : x3 = XEXP (x1, 1);
9174 : x4 = XEXP (x3, 0);
9175 : switch (GET_CODE (x4))
9176 : {
9177 : case PLUS:
9178 : return recog_77 (x1, insn, pnum_clobbers);
9179 :
9180 : case MINUS:
9181 : return recog_79 (x1, insn, pnum_clobbers);
9182 :
9183 : case MULT:
9184 : x5 = XEXP (x4, 0);
9185 : operands[1] = x5;
9186 : x6 = XEXP (x4, 1);
9187 : operands[2] = x6;
9188 : switch (GET_MODE (operands[0]))
9189 : {
9190 : case E_SImode:
9191 : if (!register_operand (operands[0], E_SImode)
9192 : || GET_MODE (x3) != E_SImode
9193 : || GET_MODE (x4) != E_HImode
9194 : || !nonimmediate_operand (operands[1], E_HImode)
9195 : || !immediate_operand (operands[2], E_HImode))
9196 : return -1;
9197 : if (
9198 : #line 11439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9199 : (TARGET_APX_ZU && TARGET_APX_NF))
9200 : return 628; /* *imulhisizu_nf */
9201 : if (pnum_clobbers == NULL
9202 : || !
9203 : #line 11439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9204 : (TARGET_APX_ZU && true))
9205 : return -1;
9206 : *pnum_clobbers = 1;
9207 : return 629; /* *imulhisizu */
9208 :
9209 : case E_DImode:
9210 : if (!register_operand (operands[0], E_DImode)
9211 : || GET_MODE (x3) != E_DImode)
9212 : return -1;
9213 : switch (GET_MODE (x4))
9214 : {
9215 : case E_HImode:
9216 : if (!nonimmediate_operand (operands[1], E_HImode)
9217 : || !immediate_operand (operands[2], E_HImode))
9218 : return -1;
9219 : if (
9220 : #line 11439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9221 : (TARGET_APX_ZU && TARGET_APX_NF))
9222 : return 630; /* *imulhidizu_nf */
9223 : if (pnum_clobbers == NULL
9224 : || !
9225 : #line 11439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9226 : (TARGET_APX_ZU && true))
9227 : return -1;
9228 : *pnum_clobbers = 1;
9229 : return 631; /* *imulhidizu */
9230 :
9231 : case E_SImode:
9232 : if (!nonimmediate_operand (operands[1], E_SImode)
9233 : || !x86_64_general_operand (operands[2], E_SImode))
9234 : return -1;
9235 : if (
9236 : #line 11451 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9237 : (TARGET_64BIT
9238 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
9239 : && TARGET_APX_NF))
9240 : return 632; /* *mulsi3_1_zext_nf */
9241 : if (pnum_clobbers == NULL
9242 : || !
9243 : #line 11451 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9244 : (TARGET_64BIT
9245 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
9246 : && true))
9247 : return -1;
9248 : *pnum_clobbers = 1;
9249 : return 633; /* *mulsi3_1_zext */
9250 :
9251 : default:
9252 : return -1;
9253 : }
9254 :
9255 : default:
9256 : return -1;
9257 : }
9258 :
9259 : case SMUL_HIGHPART:
9260 : if (pattern113 (x3, pnum_clobbers) != 0
9261 : || !
9262 : #line 11976 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9263 : (TARGET_64BIT))
9264 : return -1;
9265 : *pnum_clobbers = 2;
9266 : return 665; /* *smulsi3_highpart_zext */
9267 :
9268 : case UMUL_HIGHPART:
9269 : if (pattern113 (x3, pnum_clobbers) != 0
9270 : || !
9271 : #line 11976 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9272 : (TARGET_64BIT))
9273 : return -1;
9274 : *pnum_clobbers = 2;
9275 : return 666; /* *umulsi3_highpart_zext */
9276 :
9277 : case TRUNCATE:
9278 : if (pnum_clobbers == NULL
9279 : || GET_MODE (x4) != E_SImode)
9280 : return -1;
9281 : x5 = XEXP (x4, 0);
9282 : if (GET_CODE (x5) != LSHIFTRT
9283 : || GET_MODE (x5) != E_DImode)
9284 : return -1;
9285 : x7 = XEXP (x5, 0);
9286 : if (GET_CODE (x7) != MULT
9287 : || GET_MODE (x7) != E_DImode)
9288 : return -1;
9289 : x8 = XEXP (x5, 1);
9290 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 32]
9291 : || !register_operand (operands[0], E_DImode)
9292 : || GET_MODE (x3) != E_DImode)
9293 : return -1;
9294 : x9 = XEXP (x7, 0);
9295 : if (GET_MODE (x9) != E_DImode)
9296 : return -1;
9297 : x10 = XEXP (x7, 1);
9298 : if (GET_MODE (x10) != E_DImode)
9299 : return -1;
9300 : switch (GET_CODE (x9))
9301 : {
9302 : case SIGN_EXTEND:
9303 : if (GET_CODE (x10) != SIGN_EXTEND)
9304 : return -1;
9305 : x11 = XEXP (x9, 0);
9306 : operands[1] = x11;
9307 : if (!nonimmediate_operand (operands[1], E_SImode))
9308 : return -1;
9309 : x12 = XEXP (x10, 0);
9310 : operands[2] = x12;
9311 : if (!nonimmediate_operand (operands[2], E_SImode)
9312 : || !
9313 : #line 12024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9314 : (TARGET_64BIT
9315 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9316 : return -1;
9317 : *pnum_clobbers = 2;
9318 : return 669; /* *smulsi3_highpart_zext */
9319 :
9320 : case ZERO_EXTEND:
9321 : if (GET_CODE (x10) != ZERO_EXTEND)
9322 : return -1;
9323 : x11 = XEXP (x9, 0);
9324 : operands[1] = x11;
9325 : if (!nonimmediate_operand (operands[1], E_SImode))
9326 : return -1;
9327 : x12 = XEXP (x10, 0);
9328 : operands[2] = x12;
9329 : if (!nonimmediate_operand (operands[2], E_SImode)
9330 : || !
9331 : #line 12024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9332 : (TARGET_64BIT
9333 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9334 : return -1;
9335 : *pnum_clobbers = 2;
9336 : return 670; /* *umulsi3_highpart_zext */
9337 :
9338 : default:
9339 : return -1;
9340 : }
9341 :
9342 : case AND:
9343 : return recog_78 (x1, insn, pnum_clobbers);
9344 :
9345 : case IOR:
9346 : switch (pattern115 (x3, pnum_clobbers))
9347 : {
9348 : case 0:
9349 : if (
9350 : #line 14585 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9351 : (TARGET_APX_NDD && TARGET_APX_NF
9352 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9353 : return 881; /* *iorqi_1_zextsi_nf */
9354 : if (pnum_clobbers == NULL
9355 : || !
9356 : #line 14585 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9357 : (TARGET_APX_NDD && true
9358 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9359 : return -1;
9360 : *pnum_clobbers = 1;
9361 : return 882; /* *iorqi_1_zextsi */
9362 :
9363 : case 1:
9364 : if (
9365 : #line 14604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9366 : (TARGET_APX_NDD && TARGET_APX_NF
9367 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9368 : return 889; /* *iorhi_1_zextsi_nf */
9369 : if (pnum_clobbers == NULL
9370 : || !
9371 : #line 14604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9372 : (TARGET_APX_NDD && true
9373 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9374 : return -1;
9375 : *pnum_clobbers = 1;
9376 : return 890; /* *iorhi_1_zextsi */
9377 :
9378 : case 2:
9379 : if (
9380 : #line 14585 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9381 : (TARGET_APX_NDD && TARGET_APX_NF
9382 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9383 : return 885; /* *iorqi_1_zextdi_nf */
9384 : if (pnum_clobbers == NULL
9385 : || !
9386 : #line 14585 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9387 : (TARGET_APX_NDD && true
9388 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9389 : return -1;
9390 : *pnum_clobbers = 1;
9391 : return 886; /* *iorqi_1_zextdi */
9392 :
9393 : case 3:
9394 : if (
9395 : #line 14604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9396 : (TARGET_APX_NDD && TARGET_APX_NF
9397 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9398 : return 893; /* *iorhi_1_zextdi_nf */
9399 : if (pnum_clobbers == NULL
9400 : || !
9401 : #line 14604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9402 : (TARGET_APX_NDD && true
9403 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9404 : return -1;
9405 : *pnum_clobbers = 1;
9406 : return 894; /* *iorhi_1_zextdi */
9407 :
9408 : case 4:
9409 : if (!
9410 : #line 14625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9411 : (TARGET_64BIT
9412 : && ix86_binary_operator_ok (IOR, SImode, operands, TARGET_APX_NDD)))
9413 : return -1;
9414 : *pnum_clobbers = 1;
9415 : return 897; /* *iorsi_1_zext */
9416 :
9417 : default:
9418 : return -1;
9419 : }
9420 :
9421 : case XOR:
9422 : return recog_81 (x1, insn, pnum_clobbers);
9423 :
9424 : case NEG:
9425 : x5 = XEXP (x4, 0);
9426 : operands[1] = x5;
9427 : switch (pattern284 (x3, pnum_clobbers))
9428 : {
9429 : case 0:
9430 : if (
9431 : #line 15295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9432 : (TARGET_APX_NDD && TARGET_APX_NF))
9433 : return 1002; /* *negqi_1_zextsi_nf */
9434 : if (pnum_clobbers == NULL
9435 : || !
9436 : #line 15295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9437 : (TARGET_APX_NDD && true))
9438 : return -1;
9439 : *pnum_clobbers = 1;
9440 : return 1003; /* *negqi_1_zextsi */
9441 :
9442 : case 1:
9443 : if (
9444 : #line 15309 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9445 : (TARGET_APX_NDD && TARGET_APX_NF))
9446 : return 1006; /* *neghi_1_zextsi_nf */
9447 : if (pnum_clobbers == NULL
9448 : || !
9449 : #line 15309 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9450 : (TARGET_APX_NDD && true))
9451 : return -1;
9452 : *pnum_clobbers = 1;
9453 : return 1007; /* *neghi_1_zextsi */
9454 :
9455 : case 2:
9456 : if (
9457 : #line 15295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9458 : (TARGET_APX_NDD && TARGET_APX_NF))
9459 : return 1004; /* *negqi_1_zextdi_nf */
9460 : if (pnum_clobbers == NULL
9461 : || !
9462 : #line 15295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9463 : (TARGET_APX_NDD && true))
9464 : return -1;
9465 : *pnum_clobbers = 1;
9466 : return 1005; /* *negqi_1_zextdi */
9467 :
9468 : case 3:
9469 : if (
9470 : #line 15309 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9471 : (TARGET_APX_NDD && TARGET_APX_NF))
9472 : return 1008; /* *neghi_1_zextdi_nf */
9473 : if (pnum_clobbers == NULL
9474 : || !
9475 : #line 15309 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9476 : (TARGET_APX_NDD && true))
9477 : return -1;
9478 : *pnum_clobbers = 1;
9479 : return 1009; /* *neghi_1_zextdi */
9480 :
9481 : case 4:
9482 : if (!
9483 : #line 15324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9484 : (TARGET_64BIT
9485 : && ix86_unary_operator_ok (NEG, SImode, operands, TARGET_APX_NDD)))
9486 : return -1;
9487 : *pnum_clobbers = 1;
9488 : return 1010; /* *negsi_1_zext */
9489 :
9490 : default:
9491 : return -1;
9492 : }
9493 :
9494 : case NOT:
9495 : x5 = XEXP (x4, 0);
9496 : operands[1] = x5;
9497 : switch (GET_MODE (operands[0]))
9498 : {
9499 : case E_SImode:
9500 : switch (pattern283 (x3))
9501 : {
9502 : case 0:
9503 : if (!
9504 : #line 15988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9505 : (TARGET_APX_NDD))
9506 : return -1;
9507 : return 1074; /* *one_cmplqi2_1_zextsi */
9508 :
9509 : case 1:
9510 : if (!
9511 : #line 16001 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9512 : (TARGET_APX_NDD))
9513 : return -1;
9514 : return 1076; /* *one_cmplhi2_1_zextsi */
9515 :
9516 : default:
9517 : return -1;
9518 : }
9519 :
9520 : case E_DImode:
9521 : if (!register_operand (operands[0], E_DImode)
9522 : || GET_MODE (x3) != E_DImode)
9523 : return -1;
9524 : switch (GET_MODE (x4))
9525 : {
9526 : case E_QImode:
9527 : if (!nonimmediate_operand (operands[1], E_QImode)
9528 : || !
9529 : #line 15988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9530 : (TARGET_APX_NDD))
9531 : return -1;
9532 : return 1075; /* *one_cmplqi2_1_zextdi */
9533 :
9534 : case E_HImode:
9535 : if (!nonimmediate_operand (operands[1], E_HImode)
9536 : || !
9537 : #line 16001 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9538 : (TARGET_APX_NDD))
9539 : return -1;
9540 : return 1077; /* *one_cmplhi2_1_zextdi */
9541 :
9542 : case E_SImode:
9543 : if (!nonimmediate_operand (operands[1], E_SImode)
9544 : || !
9545 : #line 16014 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9546 : (TARGET_64BIT
9547 : && ix86_unary_operator_ok (NOT, SImode, operands, TARGET_APX_NDD)))
9548 : return -1;
9549 : return 1078; /* *one_cmplsi2_1_zext */
9550 :
9551 : default:
9552 : return -1;
9553 : }
9554 :
9555 : default:
9556 : return -1;
9557 : }
9558 :
9559 : case ASHIFT:
9560 : switch (pattern116 (x3))
9561 : {
9562 : case 0:
9563 : if (register_operand (operands[2], E_SImode)
9564 : &&
9565 : #line 17016 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9566 : (TARGET_64BIT && TARGET_BMI2))
9567 : return 1130; /* *bmi2_ashlsi3_1_zext */
9568 : if (pnum_clobbers == NULL
9569 : || !nonmemory_operand (operands[2], E_QImode)
9570 : || !
9571 : #line 17057 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9572 : (TARGET_64BIT
9573 : && ix86_binary_operator_ok (ASHIFT, SImode, operands, TARGET_APX_NDD)))
9574 : return -1;
9575 : *pnum_clobbers = 1;
9576 : return 1141; /* *ashlsi3_1_zext */
9577 :
9578 : case 1:
9579 : if (
9580 : #line 17026 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9581 : (TARGET_APX_NDD && TARGET_APX_NF))
9582 : return 1135; /* *ashlqi3_1_zextdi_nf */
9583 : if (pnum_clobbers == NULL
9584 : || !
9585 : #line 17026 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9586 : (TARGET_APX_NDD && true))
9587 : return -1;
9588 : *pnum_clobbers = 1;
9589 : return 1136; /* *ashlqi3_1_zextdi */
9590 :
9591 : case 2:
9592 : if (
9593 : #line 17041 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9594 : (TARGET_APX_NDD && TARGET_APX_NF))
9595 : return 1139; /* *ashlhi3_1_zextdi_nf */
9596 : if (pnum_clobbers == NULL
9597 : || !
9598 : #line 17041 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9599 : (TARGET_APX_NDD && true))
9600 : return -1;
9601 : *pnum_clobbers = 1;
9602 : return 1140; /* *ashlhi3_1_zextdi */
9603 :
9604 : case 3:
9605 : if (
9606 : #line 17026 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9607 : (TARGET_APX_NDD && TARGET_APX_NF))
9608 : return 1133; /* *ashlqi3_1_zextsi_nf */
9609 : if (pnum_clobbers == NULL
9610 : || !
9611 : #line 17026 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9612 : (TARGET_APX_NDD && true))
9613 : return -1;
9614 : *pnum_clobbers = 1;
9615 : return 1134; /* *ashlqi3_1_zextsi */
9616 :
9617 : case 4:
9618 : if (
9619 : #line 17041 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9620 : (TARGET_APX_NDD && TARGET_APX_NF))
9621 : return 1137; /* *ashlhi3_1_zextsi_nf */
9622 : if (pnum_clobbers == NULL
9623 : || !
9624 : #line 17041 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9625 : (TARGET_APX_NDD && true))
9626 : return -1;
9627 : *pnum_clobbers = 1;
9628 : return 1138; /* *ashlhi3_1_zextsi */
9629 :
9630 : default:
9631 : return -1;
9632 : }
9633 :
9634 : case ASHIFTRT:
9635 : if (GET_MODE (x4) == E_SImode
9636 : && register_operand (operands[0], E_DImode))
9637 : {
9638 : res = recog_74 (x1, insn, pnum_clobbers);
9639 : if (res >= 0)
9640 : return res;
9641 : }
9642 : x5 = XEXP (x4, 0);
9643 : operands[1] = x5;
9644 : switch (pattern285 (x3, pnum_clobbers))
9645 : {
9646 : case 0:
9647 : if (
9648 : #line 18458 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9649 : (TARGET_APX_NDD && TARGET_APX_NF))
9650 : return 1230; /* *ashrqi3_1_zextsi_nf */
9651 : if (pnum_clobbers == NULL
9652 : || !
9653 : #line 18458 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9654 : (TARGET_APX_NDD && true))
9655 : return -1;
9656 : *pnum_clobbers = 1;
9657 : return 1231; /* *ashrqi3_1_zextsi */
9658 :
9659 : case 1:
9660 : if (
9661 : #line 18473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9662 : (TARGET_APX_NDD && TARGET_APX_NF))
9663 : return 1238; /* *ashrhi3_1_zextsi_nf */
9664 : if (pnum_clobbers == NULL
9665 : || !
9666 : #line 18473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9667 : (TARGET_APX_NDD && true))
9668 : return -1;
9669 : *pnum_clobbers = 1;
9670 : return 1239; /* *ashrhi3_1_zextsi */
9671 :
9672 : case 2:
9673 : if (
9674 : #line 18458 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9675 : (TARGET_APX_NDD && TARGET_APX_NF))
9676 : return 1234; /* *ashrqi3_1_zextdi_nf */
9677 : if (pnum_clobbers == NULL
9678 : || !
9679 : #line 18458 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9680 : (TARGET_APX_NDD && true))
9681 : return -1;
9682 : *pnum_clobbers = 1;
9683 : return 1235; /* *ashrqi3_1_zextdi */
9684 :
9685 : case 3:
9686 : if (
9687 : #line 18473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9688 : (TARGET_APX_NDD && TARGET_APX_NF))
9689 : return 1242; /* *ashrhi3_1_zextdi_nf */
9690 : if (pnum_clobbers == NULL
9691 : || !
9692 : #line 18473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9693 : (TARGET_APX_NDD && true))
9694 : return -1;
9695 : *pnum_clobbers = 1;
9696 : return 1243; /* *ashrhi3_1_zextdi */
9697 :
9698 : case 4:
9699 : if (!
9700 : #line 18489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9701 : (TARGET_64BIT
9702 : && ix86_binary_operator_ok (ASHIFTRT, SImode, operands, TARGET_APX_NDD)))
9703 : return -1;
9704 : *pnum_clobbers = 1;
9705 : return 1245; /* *ashrsi3_1_zext */
9706 :
9707 : default:
9708 : return -1;
9709 : }
9710 :
9711 : case LSHIFTRT:
9712 : switch (pattern116 (x3))
9713 : {
9714 : case 0:
9715 : if (register_operand (operands[2], E_SImode)
9716 : &&
9717 : #line 18448 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9718 : (TARGET_64BIT && TARGET_BMI2))
9719 : return 1222; /* *bmi2_lshrsi3_1_zext */
9720 : if (pnum_clobbers == NULL
9721 : || !nonmemory_operand (operands[2], E_QImode)
9722 : || !
9723 : #line 18489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9724 : (TARGET_64BIT
9725 : && ix86_binary_operator_ok (LSHIFTRT, SImode, operands, TARGET_APX_NDD)))
9726 : return -1;
9727 : *pnum_clobbers = 1;
9728 : return 1244; /* *lshrsi3_1_zext */
9729 :
9730 : case 1:
9731 : if (
9732 : #line 18458 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9733 : (TARGET_APX_NDD && TARGET_APX_NF))
9734 : return 1232; /* *lshrqi3_1_zextdi_nf */
9735 : if (pnum_clobbers == NULL
9736 : || !
9737 : #line 18458 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9738 : (TARGET_APX_NDD && true))
9739 : return -1;
9740 : *pnum_clobbers = 1;
9741 : return 1233; /* *lshrqi3_1_zextdi */
9742 :
9743 : case 2:
9744 : if (
9745 : #line 18473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9746 : (TARGET_APX_NDD && TARGET_APX_NF))
9747 : return 1240; /* *lshrhi3_1_zextdi_nf */
9748 : if (pnum_clobbers == NULL
9749 : || !
9750 : #line 18473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9751 : (TARGET_APX_NDD && true))
9752 : return -1;
9753 : *pnum_clobbers = 1;
9754 : return 1241; /* *lshrhi3_1_zextdi */
9755 :
9756 : case 3:
9757 : if (
9758 : #line 18458 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9759 : (TARGET_APX_NDD && TARGET_APX_NF))
9760 : return 1228; /* *lshrqi3_1_zextsi_nf */
9761 : if (pnum_clobbers == NULL
9762 : || !
9763 : #line 18458 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9764 : (TARGET_APX_NDD && true))
9765 : return -1;
9766 : *pnum_clobbers = 1;
9767 : return 1229; /* *lshrqi3_1_zextsi */
9768 :
9769 : case 4:
9770 : if (
9771 : #line 18473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9772 : (TARGET_APX_NDD && TARGET_APX_NF))
9773 : return 1236; /* *lshrhi3_1_zextsi_nf */
9774 : if (pnum_clobbers == NULL
9775 : || !
9776 : #line 18473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9777 : (TARGET_APX_NDD && true))
9778 : return -1;
9779 : *pnum_clobbers = 1;
9780 : return 1237; /* *lshrhi3_1_zextsi */
9781 :
9782 : default:
9783 : return -1;
9784 : }
9785 :
9786 : case ROTATERT:
9787 : switch (pattern116 (x3))
9788 : {
9789 : case 0:
9790 : if (const_0_to_31_operand (operands[2], E_QImode)
9791 : &&
9792 : #line 19554 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9793 : (TARGET_64BIT && TARGET_BMI2 && !optimize_function_for_size_p (cfun)))
9794 : return 1388; /* *bmi2_rorxsi3_1_zext */
9795 : if (pnum_clobbers == NULL
9796 : || !nonmemory_operand (operands[2], E_QImode)
9797 : || !
9798 : #line 19595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9799 : (TARGET_64BIT && ix86_binary_operator_ok (ROTATERT, SImode, operands)))
9800 : return -1;
9801 : *pnum_clobbers = 1;
9802 : return 1410; /* *rotrsi3_1_zext */
9803 :
9804 : case 1:
9805 : if (
9806 : #line 19564 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9807 : (TARGET_APX_NDD && TARGET_APX_NF))
9808 : return 1399; /* *rotrqi3_1_zextdi_nf */
9809 : if (pnum_clobbers == NULL
9810 : || !
9811 : #line 19564 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9812 : (TARGET_APX_NDD && true))
9813 : return -1;
9814 : *pnum_clobbers = 1;
9815 : return 1400; /* *rotrqi3_1_zextdi */
9816 :
9817 : case 2:
9818 : if (
9819 : #line 19579 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9820 : (TARGET_APX_NDD && TARGET_APX_NF))
9821 : return 1407; /* *rotrhi3_1_zextdi_nf */
9822 : if (pnum_clobbers == NULL
9823 : || !
9824 : #line 19579 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9825 : (TARGET_APX_NDD && true))
9826 : return -1;
9827 : *pnum_clobbers = 1;
9828 : return 1408; /* *rotrhi3_1_zextdi */
9829 :
9830 : case 3:
9831 : if (
9832 : #line 19564 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9833 : (TARGET_APX_NDD && TARGET_APX_NF))
9834 : return 1395; /* *rotrqi3_1_zextsi_nf */
9835 : if (pnum_clobbers == NULL
9836 : || !
9837 : #line 19564 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9838 : (TARGET_APX_NDD && true))
9839 : return -1;
9840 : *pnum_clobbers = 1;
9841 : return 1396; /* *rotrqi3_1_zextsi */
9842 :
9843 : case 4:
9844 : if (
9845 : #line 19579 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9846 : (TARGET_APX_NDD && TARGET_APX_NF))
9847 : return 1403; /* *rotrhi3_1_zextsi_nf */
9848 : if (pnum_clobbers == NULL
9849 : || !
9850 : #line 19579 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9851 : (TARGET_APX_NDD && true))
9852 : return -1;
9853 : *pnum_clobbers = 1;
9854 : return 1404; /* *rotrhi3_1_zextsi */
9855 :
9856 : default:
9857 : return -1;
9858 : }
9859 :
9860 : case ROTATE:
9861 : x5 = XEXP (x4, 0);
9862 : operands[1] = x5;
9863 : switch (pattern285 (x3, pnum_clobbers))
9864 : {
9865 : case 0:
9866 : if (
9867 : #line 19564 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9868 : (TARGET_APX_NDD && TARGET_APX_NF))
9869 : return 1393; /* *rotlqi3_1_zextsi_nf */
9870 : if (pnum_clobbers == NULL
9871 : || !
9872 : #line 19564 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9873 : (TARGET_APX_NDD && true))
9874 : return -1;
9875 : *pnum_clobbers = 1;
9876 : return 1394; /* *rotlqi3_1_zextsi */
9877 :
9878 : case 1:
9879 : if (
9880 : #line 19579 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9881 : (TARGET_APX_NDD && TARGET_APX_NF))
9882 : return 1401; /* *rotlhi3_1_zextsi_nf */
9883 : if (pnum_clobbers == NULL
9884 : || !
9885 : #line 19579 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9886 : (TARGET_APX_NDD && true))
9887 : return -1;
9888 : *pnum_clobbers = 1;
9889 : return 1402; /* *rotlhi3_1_zextsi */
9890 :
9891 : case 2:
9892 : if (
9893 : #line 19564 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9894 : (TARGET_APX_NDD && TARGET_APX_NF))
9895 : return 1397; /* *rotlqi3_1_zextdi_nf */
9896 : if (pnum_clobbers == NULL
9897 : || !
9898 : #line 19564 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9899 : (TARGET_APX_NDD && true))
9900 : return -1;
9901 : *pnum_clobbers = 1;
9902 : return 1398; /* *rotlqi3_1_zextdi */
9903 :
9904 : case 3:
9905 : if (
9906 : #line 19579 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9907 : (TARGET_APX_NDD && TARGET_APX_NF))
9908 : return 1405; /* *rotlhi3_1_zextdi_nf */
9909 : if (pnum_clobbers == NULL
9910 : || !
9911 : #line 19579 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9912 : (TARGET_APX_NDD && true))
9913 : return -1;
9914 : *pnum_clobbers = 1;
9915 : return 1406; /* *rotlhi3_1_zextdi */
9916 :
9917 : case 4:
9918 : if (!
9919 : #line 19595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9920 : (TARGET_64BIT && ix86_binary_operator_ok (ROTATE, SImode, operands)))
9921 : return -1;
9922 : *pnum_clobbers = 1;
9923 : return 1409; /* *rotlsi3_1_zext */
9924 :
9925 : default:
9926 : return -1;
9927 : }
9928 :
9929 : case CTZ:
9930 : if (pattern117 (x3, pnum_clobbers,
9931 : E_SImode,
9932 : E_DImode) != 0
9933 : || !
9934 : #line 22218 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9935 : (TARGET_64BIT))
9936 : return -1;
9937 : *pnum_clobbers = 1;
9938 : return 1557; /* *ctzsidi2_uext */
9939 :
9940 : case CLZ:
9941 : if (pattern117 (x3, pnum_clobbers,
9942 : E_SImode,
9943 : E_DImode) != 0
9944 : || !
9945 : #line 22661 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9946 : (TARGET_LZCNT && TARGET_64BIT))
9947 : return -1;
9948 : *pnum_clobbers = 1;
9949 : return 1581; /* *clzsi2_lzcnt_zext_2 */
9950 :
9951 : case POPCOUNT:
9952 : if (pnum_clobbers == NULL)
9953 : return -1;
9954 : x5 = XEXP (x4, 0);
9955 : operands[1] = x5;
9956 : switch (GET_MODE (operands[0]))
9957 : {
9958 : case E_DImode:
9959 : if (pattern630 (x3,
9960 : E_DImode,
9961 : E_SImode) != 0
9962 : || !
9963 : #line 23500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9964 : (TARGET_POPCNT && TARGET_64BIT))
9965 : return -1;
9966 : *pnum_clobbers = 1;
9967 : return 1672; /* *popcountsi2_zext_2 */
9968 :
9969 : case E_SImode:
9970 : if (pattern630 (x3,
9971 : E_SImode,
9972 : E_HImode) != 0
9973 : || !
9974 : #line 23566 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9975 : (TARGET_POPCNT
9976 : && ix86_pre_reload_split ()))
9977 : return -1;
9978 : *pnum_clobbers = 1;
9979 : return 1675; /* *popcounthi2_2 */
9980 :
9981 : default:
9982 : return -1;
9983 : }
9984 :
9985 : case UNSPEC:
9986 : return recog_76 (x1, insn, pnum_clobbers);
9987 :
9988 : case IF_THEN_ELSE:
9989 : if (GET_MODE (x4) != E_SImode)
9990 : return -1;
9991 : x5 = XEXP (x4, 0);
9992 : if (!ix86_comparison_operator (x5, E_VOIDmode))
9993 : return -1;
9994 : operands[1] = x5;
9995 : x7 = XEXP (x5, 0);
9996 : if (GET_CODE (x7) != REG
9997 : || REGNO (x7) != 17)
9998 : return -1;
9999 : x8 = XEXP (x5, 1);
10000 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
10001 : || !nonimmediate_operand (operands[0], E_DImode)
10002 : || GET_MODE (x3) != E_DImode)
10003 : return -1;
10004 : x6 = XEXP (x4, 1);
10005 : operands[2] = x6;
10006 : if (!nonimmediate_operand (operands[2], E_SImode))
10007 : return -1;
10008 : x13 = XEXP (x4, 2);
10009 : operands[3] = x13;
10010 : if (!nonimmediate_operand (operands[3], E_SImode)
10011 : || !
10012 : #line 27528 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10013 : (TARGET_64BIT
10014 : && TARGET_CMOVE && !(MEM_P (operands[2]) && MEM_P (operands[3]))))
10015 : return -1;
10016 : return 1845; /* *movsicc_noc_zext_1 */
10017 :
10018 : case VEC_SELECT:
10019 : return recog_80 (x1, insn, pnum_clobbers);
10020 :
10021 : case FIX:
10022 : switch (pattern118 (x3))
10023 : {
10024 : case 0:
10025 : if (!
10026 : #line 9087 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10027 : (TARGET_64BIT && TARGET_SSE))
10028 : return -1;
10029 : return 4874; /* *sse_cvttss2si_zext */
10030 :
10031 : case 1:
10032 : if (!
10033 : #line 9804 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10034 : (TARGET_64BIT && TARGET_SSE2))
10035 : return -1;
10036 : return 5028; /* *sse2_cvttsd2si_zext */
10037 :
10038 : default:
10039 : return -1;
10040 : }
10041 :
10042 : case UNSIGNED_FIX:
10043 : switch (pattern118 (x3))
10044 : {
10045 : case 0:
10046 : if (!
10047 : #line 9602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10048 : (TARGET_64BIT && TARGET_AVX512F))
10049 : return -1;
10050 : return 4989; /* *avx512f_vcvttss2usi_zext */
10051 :
10052 : case 1:
10053 : if (!
10054 : #line 9677 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10055 : (TARGET_64BIT && TARGET_AVX512F))
10056 : return -1;
10057 : return 5007; /* *avx512f_vcvttsd2usi_zext */
10058 :
10059 : default:
10060 : return -1;
10061 : }
10062 :
10063 : case SUBREG:
10064 : if (pattern119 (x3) != 0
10065 : || !
10066 : #line 23025 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10067 : (TARGET_SSE2 && ix86_pre_reload_split ()))
10068 : return -1;
10069 : return 8680; /* *sse2_pmovskb_zexthisi */
10070 :
10071 : default:
10072 : return -1;
10073 : }
10074 : }
10075 :
10076 : int
10077 : recog_109 (rtx x1 ATTRIBUTE_UNUSED,
10078 : rtx_insn *insn ATTRIBUTE_UNUSED,
10079 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10080 : {
10081 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10082 : rtx x2, x3;
10083 : int res ATTRIBUTE_UNUSED;
10084 : switch (pattern18 (x1, pnum_clobbers))
10085 : {
10086 : case 0:
10087 : if (!
10088 : #line 19169 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10089 : (ix86_binary_operator_ok (ROTATERT, SImode, operands)
10090 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
10091 : == GET_MODE_BITSIZE (SImode)-1
10092 : && ix86_pre_reload_split ()))
10093 : return -1;
10094 : *pnum_clobbers = 1;
10095 : return 1335; /* *rotrsi3_mask_1 */
10096 :
10097 : case 1:
10098 : if (!(
10099 : #line 19169 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10100 : (ix86_binary_operator_ok (ROTATERT, DImode, operands)
10101 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
10102 : == GET_MODE_BITSIZE (DImode)-1
10103 : && ix86_pre_reload_split ()) &&
10104 : #line 1196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10105 : (TARGET_64BIT)))
10106 : return -1;
10107 : *pnum_clobbers = 1;
10108 : return 1337; /* *rotrdi3_mask_1 */
10109 :
10110 : case 2:
10111 : if (!
10112 : #line 19250 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10113 : (ix86_binary_operator_ok (ROTATERT, SImode, operands)
10114 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
10115 : && ix86_pre_reload_split ()))
10116 : return -1;
10117 : *pnum_clobbers = 1;
10118 : return 1351; /* *rotrsi3_add_1 */
10119 :
10120 : case 3:
10121 : if (!(
10122 : #line 19250 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10123 : (ix86_binary_operator_ok (ROTATERT, DImode, operands)
10124 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
10125 : && ix86_pre_reload_split ()) &&
10126 : #line 1196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10127 : (TARGET_64BIT)))
10128 : return -1;
10129 : *pnum_clobbers = 1;
10130 : return 1353; /* *rotrdi3_add_1 */
10131 :
10132 : case 4:
10133 : if (!
10134 : #line 19319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10135 : (ix86_binary_operator_ok (ROTATERT, SImode, operands)
10136 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
10137 : && ix86_pre_reload_split ()))
10138 : return -1;
10139 : *pnum_clobbers = 1;
10140 : return 1367; /* *rotrsi3_sub_1 */
10141 :
10142 : case 5:
10143 : if (!(
10144 : #line 19319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10145 : (ix86_binary_operator_ok (ROTATERT, DImode, operands)
10146 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
10147 : && ix86_pre_reload_split ()) &&
10148 : #line 1196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10149 : (TARGET_64BIT)))
10150 : return -1;
10151 : *pnum_clobbers = 1;
10152 : return 1369; /* *rotrdi3_sub_1 */
10153 :
10154 : case 6:
10155 : x2 = XEXP (x1, 1);
10156 : x3 = XEXP (x2, 1);
10157 : switch (GET_CODE (x3))
10158 : {
10159 : case SUBREG:
10160 : switch (pattern456 (x2, pnum_clobbers))
10161 : {
10162 : case 0:
10163 : if (
10164 : #line 19121 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10165 : (ix86_binary_operator_ok (ROTATERT, SImode, operands)
10166 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
10167 : == GET_MODE_BITSIZE (SImode)-1
10168 : && ix86_pre_reload_split ()))
10169 : {
10170 : *pnum_clobbers = 1;
10171 : return 1327; /* *rotrsi3_mask */
10172 : }
10173 : break;
10174 :
10175 : case 1:
10176 : if ((
10177 : #line 19121 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10178 : (ix86_binary_operator_ok (ROTATERT, DImode, operands)
10179 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
10180 : == GET_MODE_BITSIZE (DImode)-1
10181 : && ix86_pre_reload_split ()) &&
10182 : #line 1196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10183 : (TARGET_64BIT)))
10184 : {
10185 : *pnum_clobbers = 1;
10186 : return 1329; /* *rotrdi3_mask */
10187 : }
10188 : break;
10189 :
10190 : case 2:
10191 : if (
10192 : #line 19214 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10193 : (ix86_binary_operator_ok (ROTATERT, SImode, operands)
10194 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
10195 : && ix86_pre_reload_split ()))
10196 : {
10197 : *pnum_clobbers = 1;
10198 : return 1343; /* *rotrsi3_add */
10199 : }
10200 : break;
10201 :
10202 : case 3:
10203 : if ((
10204 : #line 19214 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10205 : (ix86_binary_operator_ok (ROTATERT, DImode, operands)
10206 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
10207 : && ix86_pre_reload_split ()) &&
10208 : #line 1196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10209 : (TARGET_64BIT)))
10210 : {
10211 : *pnum_clobbers = 1;
10212 : return 1345; /* *rotrdi3_add */
10213 : }
10214 : break;
10215 :
10216 : case 4:
10217 : if (
10218 : #line 19283 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10219 : (ix86_binary_operator_ok (ROTATERT, SImode, operands)
10220 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
10221 : && ix86_pre_reload_split ()))
10222 : {
10223 : *pnum_clobbers = 1;
10224 : return 1359; /* *rotrsi3_sub */
10225 : }
10226 : break;
10227 :
10228 : case 5:
10229 : if ((
10230 : #line 19283 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10231 : (ix86_binary_operator_ok (ROTATERT, DImode, operands)
10232 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
10233 : && ix86_pre_reload_split ()) &&
10234 : #line 1196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10235 : (TARGET_64BIT)))
10236 : {
10237 : *pnum_clobbers = 1;
10238 : return 1361; /* *rotrdi3_sub */
10239 : }
10240 : break;
10241 :
10242 : default:
10243 : break;
10244 : }
10245 : break;
10246 :
10247 : case CONST_INT:
10248 : operands[2] = x3;
10249 : switch (GET_MODE (operands[0]))
10250 : {
10251 : case E_DImode:
10252 : if (pattern626 (x2, pnum_clobbers,
10253 : E_DImode) == 0
10254 : && const_1_to_31_operand (operands[2], E_QImode)
10255 : &&
10256 : #line 1270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10257 : (!TARGET_64BIT))
10258 : {
10259 : *pnum_clobbers = 2;
10260 : return 1372; /* ix86_rotrdi3_doubleword */
10261 : }
10262 : break;
10263 :
10264 : case E_SImode:
10265 : if (register_operand (operands[0], E_SImode)
10266 : && GET_MODE (x2) == E_SImode
10267 : && nonimmediate_operand (operands[1], E_SImode)
10268 : && const_0_to_31_operand (operands[2], E_QImode)
10269 : &&
10270 : #line 19465 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10271 : (TARGET_BMI2 && !optimize_function_for_size_p (cfun)))
10272 : return 1378; /* *bmi2_rorxsi3_1 */
10273 : break;
10274 :
10275 : default:
10276 : break;
10277 : }
10278 : if (register_operand (operands[0], E_DImode)
10279 : && GET_MODE (x2) == E_DImode)
10280 : {
10281 : if (XWINT (x3, 0) == 32L
10282 : && register_operand (operands[1], E_DImode)
10283 : &&
10284 : #line 19424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10285 : (!TARGET_64BIT))
10286 : return 1375; /* rotr32di2_doubleword */
10287 : if (nonimmediate_operand (operands[1], E_DImode))
10288 : {
10289 : operands[2] = x3;
10290 : if (const_0_to_63_operand (operands[2], E_QImode)
10291 : && (
10292 : #line 19465 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10293 : (TARGET_BMI2 && !optimize_function_for_size_p (cfun)) &&
10294 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10295 : (TARGET_64BIT)))
10296 : return 1379; /* *bmi2_rorxdi3_1 */
10297 : }
10298 : }
10299 : break;
10300 :
10301 : default:
10302 : break;
10303 : }
10304 : operands[2] = x3;
10305 : if (!nonmemory_operand (operands[2], E_QImode))
10306 : return -1;
10307 : switch (pattern14 (x2))
10308 : {
10309 : case 0:
10310 : if (
10311 : #line 19475 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10312 : (ix86_binary_operator_ok (ROTATERT, SImode, operands, TARGET_APX_NDD)
10313 : && TARGET_APX_NF))
10314 : return 1382; /* *rotrsi3_1_nf */
10315 : if (pnum_clobbers == NULL
10316 : || !
10317 : #line 19475 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10318 : (ix86_binary_operator_ok (ROTATERT, SImode, operands, TARGET_APX_NDD)
10319 : && true))
10320 : return -1;
10321 : *pnum_clobbers = 1;
10322 : return 1383; /* *rotrsi3_1 */
10323 :
10324 : case 1:
10325 : if ((
10326 : #line 19475 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10327 : (ix86_binary_operator_ok (ROTATERT, DImode, operands, TARGET_APX_NDD)
10328 : && TARGET_APX_NF) &&
10329 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10330 : (TARGET_64BIT)))
10331 : return 1386; /* *rotrdi3_1_nf */
10332 : if (pnum_clobbers == NULL
10333 : || !(
10334 : #line 19475 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10335 : (ix86_binary_operator_ok (ROTATERT, DImode, operands, TARGET_APX_NDD)
10336 : && true) &&
10337 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10338 : (TARGET_64BIT)))
10339 : return -1;
10340 : *pnum_clobbers = 1;
10341 : return 1387; /* *rotrdi3_1 */
10342 :
10343 : default:
10344 : return -1;
10345 : }
10346 :
10347 : default:
10348 : return -1;
10349 : }
10350 : }
10351 :
10352 : int
10353 : recog_122 (rtx x1 ATTRIBUTE_UNUSED,
10354 : rtx_insn *insn ATTRIBUTE_UNUSED,
10355 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10356 : {
10357 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10358 : rtx x2, x3, x4, x5, x6, x7, x8;
10359 : int res ATTRIBUTE_UNUSED;
10360 : if (pnum_clobbers == NULL)
10361 : return -1;
10362 : x2 = XEXP (x1, 1);
10363 : x3 = XEXP (x2, 0);
10364 : if (!ix86_carry_flag_operator (x3, E_VOIDmode))
10365 : return -1;
10366 : operands[1] = x3;
10367 : x4 = XEXP (x3, 0);
10368 : if (GET_CODE (x4) != REG
10369 : || REGNO (x4) != 17)
10370 : return -1;
10371 : x5 = XEXP (x3, 1);
10372 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
10373 : return -1;
10374 : x6 = XEXP (x2, 1);
10375 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
10376 : return -1;
10377 : x7 = XEXP (x2, 2);
10378 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
10379 : return -1;
10380 : x8 = XEXP (x1, 0);
10381 : operands[0] = x8;
10382 : switch (pattern24 (x2))
10383 : {
10384 : case 0:
10385 : *pnum_clobbers = 1;
10386 : return 1835; /* *x86_movsicc_0_m1_se */
10387 :
10388 : case 1:
10389 : if (!
10390 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10391 : (TARGET_64BIT))
10392 : return -1;
10393 : *pnum_clobbers = 1;
10394 : return 1836; /* *x86_movdicc_0_m1_se */
10395 :
10396 : default:
10397 : return -1;
10398 : }
10399 : }
10400 :
10401 : int
10402 : recog_125 (rtx x1 ATTRIBUTE_UNUSED,
10403 : rtx_insn *insn ATTRIBUTE_UNUSED,
10404 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10405 : {
10406 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10407 : rtx x2, x3, x4, x5, x6;
10408 : int res ATTRIBUTE_UNUSED;
10409 : x2 = XEXP (x1, 1);
10410 : x3 = XEXP (x2, 0);
10411 : if (GET_CODE (x3) != SUBREG
10412 : || maybe_ne (SUBREG_BYTE (x3), 0)
10413 : || GET_MODE (x3) != E_V2DImode)
10414 : return -1;
10415 : x4 = XEXP (x2, 1);
10416 : x5 = XVECEXP (x4, 0, 0);
10417 : if (XWINT (x5, 0) != 0L
10418 : || GET_MODE (x2) != E_DImode)
10419 : return -1;
10420 : x6 = XEXP (x3, 0);
10421 : switch (pattern1227 (x6))
10422 : {
10423 : case 0:
10424 : if (pshufb_truncv8hiv8qi_operand (operands[2], E_V16QImode)
10425 : &&
10426 : #line 16099 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10427 : (TARGET_AVX512VL && TARGET_AVX512BW && ix86_pre_reload_split ()))
10428 : return 7381; /* *avx512f_pshufb_truncv8hiv8qi_1 */
10429 : if (!pshufb_truncv4siv4hi_operand (operands[2], E_V16QImode)
10430 : || !
10431 : #line 16454 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10432 : (TARGET_AVX512VL && ix86_pre_reload_split ()))
10433 : return -1;
10434 : return 7466; /* *avx512f_pshufb_truncv4siv4hi_1 */
10435 :
10436 : case 1:
10437 : if (!
10438 : #line 16691 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10439 : (TARGET_AVX512VL && ix86_pre_reload_split ()))
10440 : return -1;
10441 : return 7515; /* *avx512f_pshufd_truncv2div2si_1 */
10442 :
10443 : default:
10444 : return -1;
10445 : }
10446 : }
10447 :
10448 : int
10449 : recog_127 (rtx x1 ATTRIBUTE_UNUSED,
10450 : rtx_insn *insn ATTRIBUTE_UNUSED,
10451 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10452 : {
10453 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10454 : rtx x2, x3, x4, x5, x6;
10455 : int res ATTRIBUTE_UNUSED;
10456 : x2 = XEXP (x1, 1);
10457 : x3 = XEXP (x2, 0);
10458 : x4 = XVECEXP (x3, 0, 0);
10459 : operands[1] = x4;
10460 : x5 = XEXP (x2, 2);
10461 : switch (GET_CODE (x5))
10462 : {
10463 : case REG:
10464 : case SUBREG:
10465 : operands[3] = x5;
10466 : switch (GET_MODE (operands[0]))
10467 : {
10468 : case E_V16SImode:
10469 : if (pattern1013 (x2,
10470 : E_V16SImode,
10471 : E_HImode) != 0
10472 : || !
10473 : #line 1582 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10474 : (TARGET_AVX512F))
10475 : return -1;
10476 : return 2509; /* *avx512f_loadv16si_mask */
10477 :
10478 : case E_V8SImode:
10479 : if (pattern1013 (x2,
10480 : E_V8SImode,
10481 : E_QImode) != 0
10482 : || !(
10483 : #line 1582 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10484 : (TARGET_AVX512F) &&
10485 : #line 299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10486 : (TARGET_AVX512VL)))
10487 : return -1;
10488 : return 2510; /* *avx512vl_loadv8si_mask */
10489 :
10490 : case E_V4SImode:
10491 : if (pattern1013 (x2,
10492 : E_V4SImode,
10493 : E_QImode) != 0
10494 : || !(
10495 : #line 1582 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10496 : (TARGET_AVX512F) &&
10497 : #line 299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10498 : (TARGET_AVX512VL)))
10499 : return -1;
10500 : return 2511; /* *avx512vl_loadv4si_mask */
10501 :
10502 : case E_V8DImode:
10503 : if (pattern1013 (x2,
10504 : E_V8DImode,
10505 : E_QImode) != 0
10506 : || !
10507 : #line 1582 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10508 : (TARGET_AVX512F))
10509 : return -1;
10510 : return 2512; /* *avx512f_loadv8di_mask */
10511 :
10512 : case E_V4DImode:
10513 : if (pattern1013 (x2,
10514 : E_V4DImode,
10515 : E_QImode) != 0
10516 : || !(
10517 : #line 1582 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10518 : (TARGET_AVX512F) &&
10519 : #line 300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10520 : (TARGET_AVX512VL)))
10521 : return -1;
10522 : return 2513; /* *avx512vl_loadv4di_mask */
10523 :
10524 : case E_V2DImode:
10525 : if (pattern1013 (x2,
10526 : E_V2DImode,
10527 : E_QImode) != 0
10528 : || !(
10529 : #line 1582 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10530 : (TARGET_AVX512F) &&
10531 : #line 300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10532 : (TARGET_AVX512VL)))
10533 : return -1;
10534 : return 2514; /* *avx512vl_loadv2di_mask */
10535 :
10536 : case E_V16SFmode:
10537 : if (pattern1013 (x2,
10538 : E_V16SFmode,
10539 : E_HImode) != 0
10540 : || !
10541 : #line 1582 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10542 : (TARGET_AVX512F))
10543 : return -1;
10544 : return 2515; /* *avx512f_loadv16sf_mask */
10545 :
10546 : case E_V8SFmode:
10547 : if (pattern1013 (x2,
10548 : E_V8SFmode,
10549 : E_QImode) != 0
10550 : || !(
10551 : #line 1582 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10552 : (TARGET_AVX512F) &&
10553 : #line 301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10554 : (TARGET_AVX512VL)))
10555 : return -1;
10556 : return 2516; /* *avx512vl_loadv8sf_mask */
10557 :
10558 : case E_V4SFmode:
10559 : if (pattern1013 (x2,
10560 : E_V4SFmode,
10561 : E_QImode) != 0
10562 : || !(
10563 : #line 1582 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10564 : (TARGET_AVX512F) &&
10565 : #line 301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10566 : (TARGET_AVX512VL)))
10567 : return -1;
10568 : return 2517; /* *avx512vl_loadv4sf_mask */
10569 :
10570 : case E_V8DFmode:
10571 : if (pattern1013 (x2,
10572 : E_V8DFmode,
10573 : E_QImode) != 0
10574 : || !
10575 : #line 1582 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10576 : (TARGET_AVX512F))
10577 : return -1;
10578 : return 2518; /* *avx512f_loadv8df_mask */
10579 :
10580 : case E_V4DFmode:
10581 : if (pattern1013 (x2,
10582 : E_V4DFmode,
10583 : E_QImode) != 0
10584 : || !(
10585 : #line 1582 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10586 : (TARGET_AVX512F) &&
10587 : #line 302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10588 : (TARGET_AVX512VL)))
10589 : return -1;
10590 : return 2519; /* *avx512vl_loadv4df_mask */
10591 :
10592 : case E_V2DFmode:
10593 : if (pattern1013 (x2,
10594 : E_V2DFmode,
10595 : E_QImode) != 0
10596 : || !(
10597 : #line 1582 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10598 : (TARGET_AVX512F) &&
10599 : #line 302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10600 : (TARGET_AVX512VL)))
10601 : return -1;
10602 : return 2520; /* *avx512vl_loadv2df_mask */
10603 :
10604 : case E_V64QImode:
10605 : if (pattern1013 (x2,
10606 : E_V64QImode,
10607 : E_DImode) != 0
10608 : || !
10609 : #line 1679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10610 : (TARGET_AVX512BW))
10611 : return -1;
10612 : return 2539; /* *avx512bw_loadv64qi_mask */
10613 :
10614 : case E_V16QImode:
10615 : if (pattern1013 (x2,
10616 : E_V16QImode,
10617 : E_HImode) != 0
10618 : || !(
10619 : #line 1679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10620 : (TARGET_AVX512BW) &&
10621 : #line 332 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10622 : (TARGET_AVX512VL)))
10623 : return -1;
10624 : return 2540; /* *avx512vl_loadv16qi_mask */
10625 :
10626 : case E_V32QImode:
10627 : if (pattern1013 (x2,
10628 : E_V32QImode,
10629 : E_SImode) != 0
10630 : || !(
10631 : #line 1679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10632 : (TARGET_AVX512BW) &&
10633 : #line 332 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10634 : (TARGET_AVX512VL)))
10635 : return -1;
10636 : return 2541; /* *avx512vl_loadv32qi_mask */
10637 :
10638 : case E_V32HImode:
10639 : if (pattern1013 (x2,
10640 : E_V32HImode,
10641 : E_SImode) != 0
10642 : || !
10643 : #line 1679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10644 : (TARGET_AVX512BW))
10645 : return -1;
10646 : return 2542; /* *avx512bw_loadv32hi_mask */
10647 :
10648 : case E_V16HImode:
10649 : if (pattern1013 (x2,
10650 : E_V16HImode,
10651 : E_HImode) != 0
10652 : || !(
10653 : #line 1679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10654 : (TARGET_AVX512BW) &&
10655 : #line 333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10656 : (TARGET_AVX512VL)))
10657 : return -1;
10658 : return 2543; /* *avx512vl_loadv16hi_mask */
10659 :
10660 : case E_V8HImode:
10661 : if (pattern1013 (x2,
10662 : E_V8HImode,
10663 : E_QImode) != 0
10664 : || !(
10665 : #line 1679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10666 : (TARGET_AVX512BW) &&
10667 : #line 333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10668 : (TARGET_AVX512VL)))
10669 : return -1;
10670 : return 2544; /* *avx512vl_loadv8hi_mask */
10671 :
10672 : case E_V32HFmode:
10673 : if (pattern1013 (x2,
10674 : E_V32HFmode,
10675 : E_SImode) != 0
10676 : || !
10677 : #line 1679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10678 : (TARGET_AVX512BW))
10679 : return -1;
10680 : return 2545; /* *avx512bw_loadv32hf_mask */
10681 :
10682 : case E_V16HFmode:
10683 : if (pattern1013 (x2,
10684 : E_V16HFmode,
10685 : E_HImode) != 0
10686 : || !(
10687 : #line 1679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10688 : (TARGET_AVX512BW) &&
10689 : #line 334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10690 : (TARGET_AVX512VL)))
10691 : return -1;
10692 : return 2546; /* *avx512vl_loadv16hf_mask */
10693 :
10694 : case E_V8HFmode:
10695 : if (pattern1013 (x2,
10696 : E_V8HFmode,
10697 : E_QImode) != 0
10698 : || !(
10699 : #line 1679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10700 : (TARGET_AVX512BW) &&
10701 : #line 334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10702 : (TARGET_AVX512VL)))
10703 : return -1;
10704 : return 2547; /* *avx512fp16_loadv8hf_mask */
10705 :
10706 : case E_V32BFmode:
10707 : if (pattern1013 (x2,
10708 : E_V32BFmode,
10709 : E_SImode) != 0
10710 : || !
10711 : #line 1679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10712 : (TARGET_AVX512BW))
10713 : return -1;
10714 : return 2548; /* *avx512bw_loadv32bf_mask */
10715 :
10716 : case E_V16BFmode:
10717 : if (pattern1013 (x2,
10718 : E_V16BFmode,
10719 : E_HImode) != 0
10720 : || !(
10721 : #line 1679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10722 : (TARGET_AVX512BW) &&
10723 : #line 335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10724 : (TARGET_AVX512VL)))
10725 : return -1;
10726 : return 2549; /* *avx512vl_loadv16bf_mask */
10727 :
10728 : case E_V8BFmode:
10729 : if (pattern1013 (x2,
10730 : E_V8BFmode,
10731 : E_QImode) != 0
10732 : || !(
10733 : #line 1679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10734 : (TARGET_AVX512BW) &&
10735 : #line 335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10736 : (TARGET_AVX512VL)))
10737 : return -1;
10738 : return 2550; /* *avx512vl_loadv8bf_mask */
10739 :
10740 : default:
10741 : return -1;
10742 : }
10743 :
10744 : case AND:
10745 : if (GET_MODE (x5) != E_QImode)
10746 : return -1;
10747 : x6 = XEXP (x5, 1);
10748 : if (GET_CODE (x6) != CONST_INT)
10749 : return -1;
10750 : switch (pattern1121 (x2))
10751 : {
10752 : case 0:
10753 : if (!(
10754 : #line 1623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10755 : (TARGET_AVX512F) &&
10756 : #line 521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10757 : (TARGET_AVX512VL)))
10758 : return -1;
10759 : return 2533; /* *avx512vl_loadv4sfmask_and15 */
10760 :
10761 : case 1:
10762 : if (!(
10763 : #line 1623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10764 : (TARGET_AVX512F) &&
10765 : #line 521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10766 : (TARGET_AVX512VL)))
10767 : return -1;
10768 : return 2534; /* *avx512vl_loadv4dfmask_and15 */
10769 :
10770 : case 2:
10771 : if (!(
10772 : #line 1623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10773 : (TARGET_AVX512F) &&
10774 : #line 522 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10775 : (TARGET_AVX512VL)))
10776 : return -1;
10777 : return 2535; /* *avx512vl_loadv4simask_and15 */
10778 :
10779 : case 3:
10780 : if (!(
10781 : #line 1623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10782 : (TARGET_AVX512F) &&
10783 : #line 522 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10784 : (TARGET_AVX512VL)))
10785 : return -1;
10786 : return 2536; /* *avx512vl_loadv4dimask_and15 */
10787 :
10788 : case 4:
10789 : if (!(
10790 : #line 1642 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10791 : (TARGET_AVX512F) &&
10792 : #line 528 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10793 : (TARGET_AVX512VL)))
10794 : return -1;
10795 : return 2537; /* *avx512vl_loadv2dfmask_and3 */
10796 :
10797 : case 5:
10798 : if (!(
10799 : #line 1642 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10800 : (TARGET_AVX512F) &&
10801 : #line 528 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10802 : (TARGET_AVX512VL)))
10803 : return -1;
10804 : return 2538; /* *avx512vl_loadv2dimask_and3 */
10805 :
10806 : default:
10807 : return -1;
10808 : }
10809 :
10810 : default:
10811 : return -1;
10812 : }
10813 : }
10814 :
10815 : int
10816 : recog_134 (rtx x1 ATTRIBUTE_UNUSED,
10817 : rtx_insn *insn ATTRIBUTE_UNUSED,
10818 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10819 : {
10820 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10821 : rtx x2, x3, x4, x5, x6, x7;
10822 : int res ATTRIBUTE_UNUSED;
10823 : x2 = XEXP (x1, 1);
10824 : x3 = XEXP (x2, 0);
10825 : x4 = XVECEXP (x3, 0, 0);
10826 : operands[1] = x4;
10827 : x5 = XVECEXP (x3, 0, 1);
10828 : operands[2] = x5;
10829 : x6 = XEXP (x2, 1);
10830 : operands[3] = x6;
10831 : x7 = XEXP (x2, 2);
10832 : operands[4] = x7;
10833 : switch (GET_MODE (operands[0]))
10834 : {
10835 : case E_V8SImode:
10836 : if (pattern1127 (x2,
10837 : E_QImode,
10838 : E_V8SImode) != 0
10839 : || !(
10840 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10841 : (TARGET_AVX512F) &&
10842 : #line 28619 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10843 : (TARGET_AVX2 && (32 == 64 || TARGET_AVX512VL))))
10844 : return -1;
10845 : return 9244; /* avx2_permvarv8si_mask */
10846 :
10847 : case E_V8SFmode:
10848 : if (pattern1128 (x2,
10849 : E_QImode,
10850 : E_V8SFmode,
10851 : E_V8SImode) != 0
10852 : || !(
10853 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10854 : (TARGET_AVX512F) &&
10855 : #line 28619 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10856 : (TARGET_AVX2 && (32 == 64 || TARGET_AVX512VL))))
10857 : return -1;
10858 : return 9246; /* avx2_permvarv8sf_mask */
10859 :
10860 : case E_V16SImode:
10861 : if (pattern1127 (x2,
10862 : E_HImode,
10863 : E_V16SImode) != 0
10864 : || !(
10865 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10866 : (TARGET_AVX512F) && (
10867 : #line 28619 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10868 : (TARGET_AVX2 && (64 == 64 || TARGET_AVX512VL)) &&
10869 : #line 978 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10870 : (TARGET_AVX512F))))
10871 : return -1;
10872 : return 9248; /* avx512f_permvarv16si_mask */
10873 :
10874 : case E_V16SFmode:
10875 : if (pattern1128 (x2,
10876 : E_HImode,
10877 : E_V16SFmode,
10878 : E_V16SImode) != 0
10879 : || !(
10880 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10881 : (TARGET_AVX512F) && (
10882 : #line 28619 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10883 : (TARGET_AVX2 && (64 == 64 || TARGET_AVX512VL)) &&
10884 : #line 978 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10885 : (TARGET_AVX512F))))
10886 : return -1;
10887 : return 9250; /* avx512f_permvarv16sf_mask */
10888 :
10889 : case E_V8DImode:
10890 : if (pattern1127 (x2,
10891 : E_QImode,
10892 : E_V8DImode) != 0
10893 : || !(
10894 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10895 : (TARGET_AVX512F) && (
10896 : #line 28619 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10897 : (TARGET_AVX2 && (64 == 64 || TARGET_AVX512VL)) &&
10898 : #line 979 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10899 : (TARGET_AVX512F))))
10900 : return -1;
10901 : return 9252; /* avx512f_permvarv8di_mask */
10902 :
10903 : case E_V8DFmode:
10904 : if (pattern1128 (x2,
10905 : E_QImode,
10906 : E_V8DFmode,
10907 : E_V8DImode) != 0
10908 : || !(
10909 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10910 : (TARGET_AVX512F) && (
10911 : #line 28619 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10912 : (TARGET_AVX2 && (64 == 64 || TARGET_AVX512VL)) &&
10913 : #line 979 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10914 : (TARGET_AVX512F))))
10915 : return -1;
10916 : return 9254; /* avx512f_permvarv8df_mask */
10917 :
10918 : case E_V4DImode:
10919 : if (pattern1127 (x2,
10920 : E_QImode,
10921 : E_V4DImode) != 0
10922 : || !(
10923 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10924 : (TARGET_AVX512F) && (
10925 : #line 28619 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10926 : (TARGET_AVX2 && (32 == 64 || TARGET_AVX512VL)) &&
10927 : #line 980 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10928 : (TARGET_AVX512VL))))
10929 : return -1;
10930 : return 9256; /* avx2_permvarv4di_mask */
10931 :
10932 : case E_V4DFmode:
10933 : if (pattern1128 (x2,
10934 : E_QImode,
10935 : E_V4DFmode,
10936 : E_V4DImode) != 0
10937 : || !(
10938 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10939 : (TARGET_AVX512F) && (
10940 : #line 28619 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10941 : (TARGET_AVX2 && (32 == 64 || TARGET_AVX512VL)) &&
10942 : #line 980 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10943 : (TARGET_AVX512VL))))
10944 : return -1;
10945 : return 9258; /* avx2_permvarv4df_mask */
10946 :
10947 : case E_V64QImode:
10948 : if (pattern1127 (x2,
10949 : E_DImode,
10950 : E_V64QImode) != 0
10951 : || !(
10952 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10953 : (TARGET_AVX512F) &&
10954 : #line 28639 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10955 : (TARGET_AVX512VBMI && (64 == 64 || TARGET_AVX512VL))))
10956 : return -1;
10957 : return 9260; /* avx512bw_permvarv64qi_mask */
10958 :
10959 : case E_V16QImode:
10960 : if (pattern1127 (x2,
10961 : E_HImode,
10962 : E_V16QImode) != 0
10963 : || !(
10964 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10965 : (TARGET_AVX512F) && (
10966 : #line 28639 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10967 : (TARGET_AVX512VBMI && (16 == 64 || TARGET_AVX512VL)) &&
10968 : #line 338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10969 : (TARGET_AVX512VL))))
10970 : return -1;
10971 : return 9262; /* avx512vl_permvarv16qi_mask */
10972 :
10973 : case E_V32QImode:
10974 : if (pattern1127 (x2,
10975 : E_SImode,
10976 : E_V32QImode) != 0
10977 : || !(
10978 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10979 : (TARGET_AVX512F) && (
10980 : #line 28639 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10981 : (TARGET_AVX512VBMI && (32 == 64 || TARGET_AVX512VL)) &&
10982 : #line 338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10983 : (TARGET_AVX512VL))))
10984 : return -1;
10985 : return 9264; /* avx512vl_permvarv32qi_mask */
10986 :
10987 : case E_V8HImode:
10988 : if (pattern1127 (x2,
10989 : E_QImode,
10990 : E_V8HImode) != 0
10991 : || !(
10992 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10993 : (TARGET_AVX512F) && (
10994 : #line 28652 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10995 : (TARGET_AVX512BW && (16 == 64 || TARGET_AVX512VL)) &&
10996 : #line 678 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10997 : (TARGET_AVX512VL))))
10998 : return -1;
10999 : return 9266; /* avx512vl_permvarv8hi_mask */
11000 :
11001 : case E_V16HImode:
11002 : if (pattern1127 (x2,
11003 : E_HImode,
11004 : E_V16HImode) != 0
11005 : || !(
11006 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11007 : (TARGET_AVX512F) && (
11008 : #line 28652 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11009 : (TARGET_AVX512BW && (32 == 64 || TARGET_AVX512VL)) &&
11010 : #line 678 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11011 : (TARGET_AVX512VL))))
11012 : return -1;
11013 : return 9268; /* avx512vl_permvarv16hi_mask */
11014 :
11015 : case E_V32HImode:
11016 : if (pattern1127 (x2,
11017 : E_SImode,
11018 : E_V32HImode) != 0
11019 : || !(
11020 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11021 : (TARGET_AVX512F) &&
11022 : #line 28652 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11023 : (TARGET_AVX512BW && (64 == 64 || TARGET_AVX512VL))))
11024 : return -1;
11025 : return 9270; /* avx512bw_permvarv32hi_mask */
11026 :
11027 : case E_V8HFmode:
11028 : if (pattern1128 (x2,
11029 : E_QImode,
11030 : E_V8HFmode,
11031 : E_V8HImode) != 0
11032 : || !(
11033 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11034 : (TARGET_AVX512F) && (
11035 : #line 28652 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11036 : (TARGET_AVX512BW && (16 == 64 || TARGET_AVX512VL)) &&
11037 : #line 679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11038 : (TARGET_AVX512VL))))
11039 : return -1;
11040 : return 9272; /* avx512fp16_permvarv8hf_mask */
11041 :
11042 : case E_V16HFmode:
11043 : if (pattern1128 (x2,
11044 : E_HImode,
11045 : E_V16HFmode,
11046 : E_V16HImode) != 0
11047 : || !(
11048 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11049 : (TARGET_AVX512F) && (
11050 : #line 28652 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11051 : (TARGET_AVX512BW && (32 == 64 || TARGET_AVX512VL)) &&
11052 : #line 679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11053 : (TARGET_AVX512VL))))
11054 : return -1;
11055 : return 9274; /* avx512vl_permvarv16hf_mask */
11056 :
11057 : case E_V32HFmode:
11058 : if (pattern1128 (x2,
11059 : E_SImode,
11060 : E_V32HFmode,
11061 : E_V32HImode) != 0
11062 : || !(
11063 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11064 : (TARGET_AVX512F) &&
11065 : #line 28652 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11066 : (TARGET_AVX512BW && (64 == 64 || TARGET_AVX512VL))))
11067 : return -1;
11068 : return 9276; /* avx512bw_permvarv32hf_mask */
11069 :
11070 : case E_V8BFmode:
11071 : if (pattern1128 (x2,
11072 : E_QImode,
11073 : E_V8BFmode,
11074 : E_V8HImode) != 0
11075 : || !(
11076 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11077 : (TARGET_AVX512F) && (
11078 : #line 28652 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11079 : (TARGET_AVX512BW && (16 == 64 || TARGET_AVX512VL)) &&
11080 : #line 680 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11081 : (TARGET_AVX512VL))))
11082 : return -1;
11083 : return 9278; /* avx512vl_permvarv8bf_mask */
11084 :
11085 : case E_V16BFmode:
11086 : if (pattern1128 (x2,
11087 : E_HImode,
11088 : E_V16BFmode,
11089 : E_V16HImode) != 0
11090 : || !(
11091 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11092 : (TARGET_AVX512F) && (
11093 : #line 28652 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11094 : (TARGET_AVX512BW && (32 == 64 || TARGET_AVX512VL)) &&
11095 : #line 680 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11096 : (TARGET_AVX512VL))))
11097 : return -1;
11098 : return 9280; /* avx512vl_permvarv16bf_mask */
11099 :
11100 : case E_V32BFmode:
11101 : if (pattern1128 (x2,
11102 : E_SImode,
11103 : E_V32BFmode,
11104 : E_V32HImode) != 0
11105 : || !(
11106 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11107 : (TARGET_AVX512F) &&
11108 : #line 28652 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11109 : (TARGET_AVX512BW && (64 == 64 || TARGET_AVX512VL))))
11110 : return -1;
11111 : return 9282; /* avx512bw_permvarv32bf_mask */
11112 :
11113 : default:
11114 : return -1;
11115 : }
11116 : }
11117 :
11118 : int
11119 : recog_147 (rtx x1 ATTRIBUTE_UNUSED,
11120 : rtx_insn *insn ATTRIBUTE_UNUSED,
11121 : int *pnum_clobbers ATTRIBUTE_UNUSED)
11122 : {
11123 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
11124 : rtx x2;
11125 : int res ATTRIBUTE_UNUSED;
11126 : x2 = XEXP (x1, 1);
11127 : switch (pattern483 (x2))
11128 : {
11129 : case 0:
11130 : if (!(
11131 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11132 : (TARGET_AVX512F) &&
11133 : #line 31824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11134 : (TARGET_AVX512VBMI2)))
11135 : return -1;
11136 : return 10332; /* vpshrd_v32hi_mask */
11137 :
11138 : case 1:
11139 : if (!(
11140 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11141 : (TARGET_AVX512F) &&
11142 : #line 31824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11143 : (TARGET_AVX512VBMI2)))
11144 : return -1;
11145 : return 10334; /* vpshrd_v16si_mask */
11146 :
11147 : case 2:
11148 : if (!(
11149 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11150 : (TARGET_AVX512F) &&
11151 : #line 31824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11152 : (TARGET_AVX512VBMI2)))
11153 : return -1;
11154 : return 10336; /* vpshrd_v8di_mask */
11155 :
11156 : case 3:
11157 : if (!(
11158 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11159 : (TARGET_AVX512F) && (
11160 : #line 31824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11161 : (TARGET_AVX512VBMI2) &&
11162 : #line 747 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11163 : (TARGET_AVX512VL))))
11164 : return -1;
11165 : return 10338; /* vpshrd_v16hi_mask */
11166 :
11167 : case 4:
11168 : if (!(
11169 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11170 : (TARGET_AVX512F) && (
11171 : #line 31824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11172 : (TARGET_AVX512VBMI2) &&
11173 : #line 747 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11174 : (TARGET_AVX512VL))))
11175 : return -1;
11176 : return 10340; /* vpshrd_v8si_mask */
11177 :
11178 : case 5:
11179 : if (!(
11180 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11181 : (TARGET_AVX512F) && (
11182 : #line 31824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11183 : (TARGET_AVX512VBMI2) &&
11184 : #line 748 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11185 : (TARGET_AVX512VL))))
11186 : return -1;
11187 : return 10342; /* vpshrd_v4di_mask */
11188 :
11189 : case 6:
11190 : if (!(
11191 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11192 : (TARGET_AVX512F) && (
11193 : #line 31824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11194 : (TARGET_AVX512VBMI2) &&
11195 : #line 748 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11196 : (TARGET_AVX512VL))))
11197 : return -1;
11198 : return 10344; /* vpshrd_v8hi_mask */
11199 :
11200 : case 7:
11201 : if (!(
11202 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11203 : (TARGET_AVX512F) && (
11204 : #line 31824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11205 : (TARGET_AVX512VBMI2) &&
11206 : #line 749 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11207 : (TARGET_AVX512VL))))
11208 : return -1;
11209 : return 10346; /* vpshrd_v4si_mask */
11210 :
11211 : case 8:
11212 : if (!(
11213 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11214 : (TARGET_AVX512F) && (
11215 : #line 31824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11216 : (TARGET_AVX512VBMI2) &&
11217 : #line 749 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11218 : (TARGET_AVX512VL))))
11219 : return -1;
11220 : return 10348; /* vpshrd_v2di_mask */
11221 :
11222 : default:
11223 : return -1;
11224 : }
11225 : }
11226 :
11227 : int
11228 : recog_154 (rtx x1 ATTRIBUTE_UNUSED,
11229 : rtx_insn *insn ATTRIBUTE_UNUSED,
11230 : int *pnum_clobbers ATTRIBUTE_UNUSED)
11231 : {
11232 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
11233 : rtx x2, x3, x4, x5, x6;
11234 : int res ATTRIBUTE_UNUSED;
11235 : x2 = XEXP (x1, 1);
11236 : x3 = XEXP (x2, 2);
11237 : switch (GET_CODE (x3))
11238 : {
11239 : case CONST_INT:
11240 : x4 = XEXP (x2, 0);
11241 : x5 = XEXP (x4, 0);
11242 : operands[2] = x5;
11243 : x6 = XEXP (x2, 1);
11244 : operands[1] = x6;
11245 : switch (XWINT (x3, 0))
11246 : {
11247 : case 3L:
11248 : switch (GET_MODE (operands[0]))
11249 : {
11250 : case E_V8HFmode:
11251 : if (pattern1020 (x2,
11252 : E_V8HFmode,
11253 : E_V2HFmode) == 0
11254 : &&
11255 : #line 12534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11256 : (TARGET_SSE))
11257 : return 5356; /* *vec_concatv8hf_movss */
11258 : break;
11259 :
11260 : case E_V8BFmode:
11261 : if (pattern1020 (x2,
11262 : E_V8BFmode,
11263 : E_V2BFmode) == 0
11264 : &&
11265 : #line 12534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11266 : (TARGET_SSE))
11267 : return 5357; /* *vec_concatv8bf_movss */
11268 : break;
11269 :
11270 : case E_V8HImode:
11271 : if (pattern1020 (x2,
11272 : E_V8HImode,
11273 : E_V2HImode) == 0
11274 : &&
11275 : #line 12534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11276 : (TARGET_SSE))
11277 : return 5358; /* *vec_concatv8hi_movss */
11278 : break;
11279 :
11280 : default:
11281 : break;
11282 : }
11283 : break;
11284 :
11285 : case 1L:
11286 : switch (GET_MODE (operands[0]))
11287 : {
11288 : case E_V4SImode:
11289 : if (pattern1021 (x2,
11290 : E_V4SImode,
11291 : E_SImode) == 0
11292 : &&
11293 : #line 12556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11294 : (TARGET_SSE))
11295 : return 5359; /* vec_setv4si_0 */
11296 : break;
11297 :
11298 : case E_V4SFmode:
11299 : if (pattern1021 (x2,
11300 : E_V4SFmode,
11301 : E_SFmode) == 0
11302 : &&
11303 : #line 12556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11304 : (TARGET_SSE))
11305 : return 5360; /* vec_setv4sf_0 */
11306 : break;
11307 :
11308 : case E_V8HImode:
11309 : if (pattern1020 (x2,
11310 : E_V8HImode,
11311 : E_HImode) == 0
11312 : &&
11313 : #line 12641 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11314 : (TARGET_SSE2))
11315 : return 5361; /* vec_setv8hi_0 */
11316 : break;
11317 :
11318 : case E_V8HFmode:
11319 : if (pattern1020 (x2,
11320 : E_V8HFmode,
11321 : E_HFmode) == 0
11322 : &&
11323 : #line 12641 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11324 : (TARGET_SSE2))
11325 : return 5362; /* vec_setv8hf_0 */
11326 : break;
11327 :
11328 : case E_V8BFmode:
11329 : if (pattern1020 (x2,
11330 : E_V8BFmode,
11331 : E_BFmode) == 0
11332 : &&
11333 : #line 12641 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11334 : (TARGET_SSE2))
11335 : return 5363; /* vec_setv8bf_0 */
11336 : break;
11337 :
11338 : case E_V16HImode:
11339 : if (pattern1022 (x2,
11340 : E_V16HImode,
11341 : E_HImode) == 0
11342 : &&
11343 : #line 12743 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11344 : (TARGET_AVX512FP16))
11345 : return 5367; /* vec_setv16hi_0 */
11346 : break;
11347 :
11348 : case E_V32HImode:
11349 : if (pattern1022 (x2,
11350 : E_V32HImode,
11351 : E_HImode) == 0
11352 : &&
11353 : #line 12743 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11354 : (TARGET_AVX512FP16))
11355 : return 5368; /* vec_setv32hi_0 */
11356 : break;
11357 :
11358 : case E_V16HFmode:
11359 : if (pattern1022 (x2,
11360 : E_V16HFmode,
11361 : E_HFmode) == 0
11362 : &&
11363 : #line 12743 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11364 : (TARGET_AVX512FP16))
11365 : return 5369; /* vec_setv16hf_0 */
11366 : break;
11367 :
11368 : case E_V32HFmode:
11369 : if (pattern1022 (x2,
11370 : E_V32HFmode,
11371 : E_HFmode) == 0
11372 : &&
11373 : #line 12743 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11374 : (TARGET_AVX512FP16))
11375 : return 5370; /* vec_setv32hf_0 */
11376 : break;
11377 :
11378 : case E_V16BFmode:
11379 : if (pattern1022 (x2,
11380 : E_V16BFmode,
11381 : E_BFmode) == 0
11382 : &&
11383 : #line 12743 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11384 : (TARGET_AVX512FP16))
11385 : return 5371; /* vec_setv16bf_0 */
11386 : break;
11387 :
11388 : case E_V32BFmode:
11389 : if (pattern1022 (x2,
11390 : E_V32BFmode,
11391 : E_BFmode) == 0
11392 : &&
11393 : #line 12743 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11394 : (TARGET_AVX512FP16))
11395 : return 5372; /* vec_setv32bf_0 */
11396 : break;
11397 :
11398 : case E_V8SImode:
11399 : if (pattern1022 (x2,
11400 : E_V8SImode,
11401 : E_SImode) == 0
11402 : &&
11403 : #line 12850 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11404 : (TARGET_AVX))
11405 : return 5384; /* vec_setv8si_0 */
11406 : break;
11407 :
11408 : case E_V8SFmode:
11409 : if (pattern1022 (x2,
11410 : E_V8SFmode,
11411 : E_SFmode) == 0
11412 : &&
11413 : #line 12850 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11414 : (TARGET_AVX))
11415 : return 5385; /* vec_setv8sf_0 */
11416 : break;
11417 :
11418 : case E_V16SImode:
11419 : if (pattern1022 (x2,
11420 : E_V16SImode,
11421 : E_SImode) == 0
11422 : && (
11423 : #line 12850 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11424 : (TARGET_AVX) &&
11425 : #line 975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11426 : (TARGET_AVX512F)))
11427 : return 5386; /* vec_setv16si_0 */
11428 : break;
11429 :
11430 : case E_V16SFmode:
11431 : if (pattern1022 (x2,
11432 : E_V16SFmode,
11433 : E_SFmode) == 0
11434 : && (
11435 : #line 12850 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11436 : (TARGET_AVX) &&
11437 : #line 975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11438 : (TARGET_AVX512F)))
11439 : return 5387; /* vec_setv16sf_0 */
11440 : break;
11441 :
11442 : case E_V2DFmode:
11443 : if (pattern881 (x2,
11444 : E_V2DFmode,
11445 : E_DFmode) == 0
11446 : &&
11447 : #line 12994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11448 : (TARGET_SSE2))
11449 : return 5396; /* vec_setv2df_0 */
11450 : break;
11451 :
11452 : case E_V8DFmode:
11453 : if (pattern1022 (x2,
11454 : E_V8DFmode,
11455 : E_DFmode) == 0
11456 : && (
11457 : #line 15675 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11458 : (TARGET_AVX) &&
11459 : #line 466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11460 : (TARGET_AVX512F)))
11461 : return 7308; /* vec_setv8df_0 */
11462 : break;
11463 :
11464 : case E_V4DFmode:
11465 : if (pattern1022 (x2,
11466 : E_V4DFmode,
11467 : E_DFmode) == 0
11468 : &&
11469 : #line 15675 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11470 : (TARGET_AVX))
11471 : return 7309; /* vec_setv4df_0 */
11472 : break;
11473 :
11474 : case E_V8DImode:
11475 : if (pattern1022 (x2,
11476 : E_V8DImode,
11477 : E_DImode) == 0
11478 : && (
11479 : #line 22626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11480 : (TARGET_AVX) &&
11481 : #line 699 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11482 : (TARGET_AVX512F)))
11483 : return 8610; /* vec_setv8di_0 */
11484 : break;
11485 :
11486 : case E_V4DImode:
11487 : if (pattern1022 (x2,
11488 : E_V4DImode,
11489 : E_DImode) == 0
11490 : &&
11491 : #line 22626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11492 : (TARGET_AVX))
11493 : return 8611; /* vec_setv4di_0 */
11494 : break;
11495 :
11496 : default:
11497 : break;
11498 : }
11499 : break;
11500 :
11501 : default:
11502 : break;
11503 : }
11504 : operands[3] = x3;
11505 : if (const_int_operand (operands[3], E_SImode))
11506 : {
11507 : switch (GET_MODE (operands[0]))
11508 : {
11509 : case E_V4SFmode:
11510 : if (pattern904 (x2,
11511 : E_V4SFmode,
11512 : E_SFmode) == 0
11513 : &&
11514 : #line 12817 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11515 : (TARGET_SSE4_1
11516 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
11517 : < GET_MODE_NUNITS (V4SFmode))))
11518 : return 5383; /* *vec_setv4sf_sse4_1 */
11519 : break;
11520 :
11521 : case E_V16QImode:
11522 : if (pattern904 (x2,
11523 : E_V16QImode,
11524 : E_QImode) == 0
11525 : && (
11526 : #line 20663 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11527 : (TARGET_SSE2
11528 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
11529 : < GET_MODE_NUNITS (V16QImode))) &&
11530 : #line 20643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11531 : (TARGET_SSE4_1)))
11532 : return 8498; /* sse4_1_pinsrb */
11533 : break;
11534 :
11535 : case E_V8HImode:
11536 : if (pattern904 (x2,
11537 : E_V8HImode,
11538 : E_HImode) == 0
11539 : &&
11540 : #line 20663 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11541 : (TARGET_SSE2
11542 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
11543 : < GET_MODE_NUNITS (V8HImode))))
11544 : return 8499; /* sse2_pinsrw */
11545 : break;
11546 :
11547 : case E_V8HFmode:
11548 : if (pattern904 (x2,
11549 : E_V8HFmode,
11550 : E_HFmode) == 0
11551 : &&
11552 : #line 20663 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11553 : (TARGET_SSE2
11554 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
11555 : < GET_MODE_NUNITS (V8HFmode))))
11556 : return 8500; /* sse2_pinsrph */
11557 : break;
11558 :
11559 : case E_V8BFmode:
11560 : if (pattern904 (x2,
11561 : E_V8BFmode,
11562 : E_BFmode) == 0
11563 : &&
11564 : #line 20663 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11565 : (TARGET_SSE2
11566 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
11567 : < GET_MODE_NUNITS (V8BFmode))))
11568 : return 8501; /* sse2_pinsrbf */
11569 : break;
11570 :
11571 : case E_V4SImode:
11572 : if (pattern904 (x2,
11573 : E_V4SImode,
11574 : E_SImode) == 0
11575 : && (
11576 : #line 20663 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11577 : (TARGET_SSE2
11578 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
11579 : < GET_MODE_NUNITS (V4SImode))) &&
11580 : #line 20644 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11581 : (TARGET_SSE4_1)))
11582 : return 8502; /* sse4_1_pinsrd */
11583 : break;
11584 :
11585 : case E_V2DImode:
11586 : if (pattern904 (x2,
11587 : E_V2DImode,
11588 : E_DImode) == 0
11589 : && (
11590 : #line 20663 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11591 : (TARGET_SSE2
11592 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
11593 : < GET_MODE_NUNITS (V2DImode))) &&
11594 : #line 20645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11595 : (TARGET_SSE4_1 && TARGET_64BIT)))
11596 : return 8503; /* sse4_1_pinsrq */
11597 : break;
11598 :
11599 : case E_V8DFmode:
11600 : if (pattern905 (x2,
11601 : E_V8DFmode,
11602 : E_V2DFmode) == 0
11603 : && (
11604 : #line 20768 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11605 : (TARGET_AVX512F
11606 : && (INTVAL (operands[3])
11607 : == (GET_MODE_UNIT_SIZE (V8DFmode) == 4 ? 0xF : 0x3))) &&
11608 : #line 13108 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11609 : (TARGET_AVX512DQ)))
11610 : return 8504; /* *avx512dq_vinsertf64x2_0 */
11611 : break;
11612 :
11613 : case E_V8DImode:
11614 : if (pattern905 (x2,
11615 : E_V8DImode,
11616 : E_V2DImode) == 0
11617 : && (
11618 : #line 20768 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11619 : (TARGET_AVX512F
11620 : && (INTVAL (operands[3])
11621 : == (GET_MODE_UNIT_SIZE (V8DImode) == 4 ? 0xF : 0x3))) &&
11622 : #line 13108 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11623 : (TARGET_AVX512DQ)))
11624 : return 8505; /* *avx512dq_vinserti64x2_0 */
11625 : break;
11626 :
11627 : case E_V16SFmode:
11628 : if (pattern905 (x2,
11629 : E_V16SFmode,
11630 : E_V4SFmode) == 0
11631 : &&
11632 : #line 20768 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11633 : (TARGET_AVX512F
11634 : && (INTVAL (operands[3])
11635 : == (GET_MODE_UNIT_SIZE (V16SFmode) == 4 ? 0xF : 0x3))))
11636 : return 8506; /* *avx512f_vinsertf32x4_0 */
11637 : break;
11638 :
11639 : case E_V16SImode:
11640 : if (pattern905 (x2,
11641 : E_V16SImode,
11642 : E_V4SImode) == 0
11643 : &&
11644 : #line 20768 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11645 : (TARGET_AVX512F
11646 : && (INTVAL (operands[3])
11647 : == (GET_MODE_UNIT_SIZE (V16SImode) == 4 ? 0xF : 0x3))))
11648 : return 8507; /* *avx512f_vinserti32x4_0 */
11649 : break;
11650 :
11651 : default:
11652 : break;
11653 : }
11654 : }
11655 : if (XWINT (x3, 0) != 1L
11656 : || !register_operand (operands[0], E_V4SImode)
11657 : || GET_MODE (x2) != E_V4SImode
11658 : || GET_MODE (x4) != E_V4SImode)
11659 : return -1;
11660 : operands[2] = x5;
11661 : if (!nonimmediate_operand (operands[2], E_SImode))
11662 : return -1;
11663 : operands[1] = x6;
11664 : if (!reg_or_0_operand (operands[1], E_V4SImode)
11665 : || !
11666 : #line 21835 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11667 : (TARGET_SSE))
11668 : return -1;
11669 : return 8574; /* sse2_loadld */
11670 :
11671 : case REG:
11672 : case SUBREG:
11673 : operands[3] = x3;
11674 : x4 = XEXP (x2, 0);
11675 : x5 = XEXP (x4, 0);
11676 : operands[1] = x5;
11677 : x6 = XEXP (x2, 1);
11678 : operands[2] = x6;
11679 : switch (GET_MODE (operands[0]))
11680 : {
11681 : case E_V2DFmode:
11682 : if (pattern155 (x2,
11683 : E_V2DFmode,
11684 : E_DFmode,
11685 : E_QImode) != 0)
11686 : return -1;
11687 : if ((
11688 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11689 : (TARGET_AVX512F) &&
11690 : #line 15603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11691 : (TARGET_SSE2)))
11692 : return 7306; /* vec_dupv2df_mask */
11693 : if (!(
11694 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11695 : (TARGET_AVX512F) && (
11696 : #line 29090 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11697 : (TARGET_AVX512F) &&
11698 : #line 302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11699 : (TARGET_AVX512VL))))
11700 : return -1;
11701 : return 9429; /* avx512vl_vec_dup_gprv2df_mask */
11702 :
11703 : case E_V16SFmode:
11704 : if (pattern142 (x2,
11705 : E_V16SFmode,
11706 : E_HImode) != 0)
11707 : return -1;
11708 : switch (GET_MODE (operands[1]))
11709 : {
11710 : case E_V4SFmode:
11711 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
11712 : || !
11713 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11714 : (TARGET_AVX512F))
11715 : return -1;
11716 : return 9375; /* avx512f_broadcastv16sf_mask */
11717 :
11718 : case E_SFmode:
11719 : if (!nonimmediate_operand (operands[1], E_SFmode)
11720 : || !
11721 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11722 : (TARGET_AVX512F))
11723 : return -1;
11724 : return 9419; /* avx512f_vec_dup_gprv16sf_mask */
11725 :
11726 : case E_V8SFmode:
11727 : if (!nonimmediate_operand (operands[1], E_V8SFmode)
11728 : || !(
11729 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11730 : (TARGET_AVX512F) &&
11731 : #line 29391 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11732 : (TARGET_AVX512DQ)))
11733 : return -1;
11734 : return 9483; /* avx512dq_broadcastv16sf_mask_1 */
11735 :
11736 : default:
11737 : return -1;
11738 : }
11739 :
11740 : case E_V16SImode:
11741 : if (pattern142 (x2,
11742 : E_V16SImode,
11743 : E_HImode) != 0)
11744 : return -1;
11745 : switch (GET_MODE (operands[1]))
11746 : {
11747 : case E_V4SImode:
11748 : if (!nonimmediate_operand (operands[1], E_V4SImode)
11749 : || !
11750 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11751 : (TARGET_AVX512F))
11752 : return -1;
11753 : return 9377; /* avx512f_broadcastv16si_mask */
11754 :
11755 : case E_SImode:
11756 : if (!nonimmediate_operand (operands[1], E_SImode)
11757 : || !
11758 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11759 : (TARGET_AVX512F))
11760 : return -1;
11761 : return 9407; /* avx512f_vec_dup_gprv16si_mask */
11762 :
11763 : case E_V8SImode:
11764 : if (!nonimmediate_operand (operands[1], E_V8SImode)
11765 : || !(
11766 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11767 : (TARGET_AVX512F) &&
11768 : #line 29391 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11769 : (TARGET_AVX512DQ)))
11770 : return -1;
11771 : return 9485; /* avx512dq_broadcastv16si_mask_1 */
11772 :
11773 : default:
11774 : return -1;
11775 : }
11776 :
11777 : case E_V8DFmode:
11778 : if (pattern142 (x2,
11779 : E_V8DFmode,
11780 : E_QImode) != 0)
11781 : return -1;
11782 : switch (GET_MODE (operands[1]))
11783 : {
11784 : case E_V4DFmode:
11785 : if (!nonimmediate_operand (operands[1], E_V4DFmode)
11786 : || !
11787 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11788 : (TARGET_AVX512F))
11789 : return -1;
11790 : return 9379; /* avx512f_broadcastv8df_mask */
11791 :
11792 : case E_DFmode:
11793 : if (!nonimmediate_operand (operands[1], E_DFmode)
11794 : || !
11795 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11796 : (TARGET_AVX512F))
11797 : return -1;
11798 : return 9425; /* avx512f_vec_dup_gprv8df_mask */
11799 :
11800 : case E_V2DFmode:
11801 : if (!nonimmediate_operand (operands[1], E_V2DFmode)
11802 : || !(
11803 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11804 : (TARGET_AVX512F) &&
11805 : #line 29409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11806 : (TARGET_AVX512DQ)))
11807 : return -1;
11808 : return 9489; /* avx512dq_broadcastv8df_mask_1 */
11809 :
11810 : default:
11811 : return -1;
11812 : }
11813 :
11814 : case E_V8DImode:
11815 : if (pattern142 (x2,
11816 : E_V8DImode,
11817 : E_QImode) != 0)
11818 : return -1;
11819 : switch (GET_MODE (operands[1]))
11820 : {
11821 : case E_V4DImode:
11822 : if (!nonimmediate_operand (operands[1], E_V4DImode)
11823 : || !
11824 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11825 : (TARGET_AVX512F))
11826 : return -1;
11827 : return 9381; /* avx512f_broadcastv8di_mask */
11828 :
11829 : case E_DImode:
11830 : if (!nonimmediate_operand (operands[1], E_DImode)
11831 : || !
11832 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11833 : (TARGET_AVX512F))
11834 : return -1;
11835 : return 9413; /* avx512f_vec_dup_gprv8di_mask */
11836 :
11837 : case E_V2DImode:
11838 : if (!nonimmediate_operand (operands[1], E_V2DImode)
11839 : || !(
11840 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11841 : (TARGET_AVX512F) &&
11842 : #line 29409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11843 : (TARGET_AVX512DQ)))
11844 : return -1;
11845 : return 9487; /* avx512dq_broadcastv8di_mask_1 */
11846 :
11847 : default:
11848 : return -1;
11849 : }
11850 :
11851 : case E_V64QImode:
11852 : if (pattern155 (x2,
11853 : E_V64QImode,
11854 : E_QImode,
11855 : E_DImode) != 0
11856 : || !(
11857 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11858 : (TARGET_AVX512F) &&
11859 : #line 29078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11860 : (TARGET_AVX512BW)))
11861 : return -1;
11862 : return 9383; /* avx512bw_vec_dup_gprv64qi_mask */
11863 :
11864 : case E_V16QImode:
11865 : if (pattern155 (x2,
11866 : E_V16QImode,
11867 : E_QImode,
11868 : E_HImode) != 0
11869 : || !(
11870 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11871 : (TARGET_AVX512F) && (
11872 : #line 29078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11873 : (TARGET_AVX512BW) &&
11874 : #line 332 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11875 : (TARGET_AVX512VL))))
11876 : return -1;
11877 : return 9385; /* avx512vl_vec_dup_gprv16qi_mask */
11878 :
11879 : case E_V32QImode:
11880 : if (pattern155 (x2,
11881 : E_V32QImode,
11882 : E_QImode,
11883 : E_SImode) != 0
11884 : || !(
11885 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11886 : (TARGET_AVX512F) && (
11887 : #line 29078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11888 : (TARGET_AVX512BW) &&
11889 : #line 332 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11890 : (TARGET_AVX512VL))))
11891 : return -1;
11892 : return 9387; /* avx512vl_vec_dup_gprv32qi_mask */
11893 :
11894 : case E_V32HImode:
11895 : if (pattern155 (x2,
11896 : E_V32HImode,
11897 : E_HImode,
11898 : E_SImode) != 0
11899 : || !(
11900 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11901 : (TARGET_AVX512F) &&
11902 : #line 29078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11903 : (TARGET_AVX512BW)))
11904 : return -1;
11905 : return 9389; /* avx512bw_vec_dup_gprv32hi_mask */
11906 :
11907 : case E_V16HImode:
11908 : if (pattern153 (x2,
11909 : E_HImode) != 0
11910 : || !(
11911 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11912 : (TARGET_AVX512F) && (
11913 : #line 29078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11914 : (TARGET_AVX512BW) &&
11915 : #line 333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11916 : (TARGET_AVX512VL))))
11917 : return -1;
11918 : return 9391; /* avx512vl_vec_dup_gprv16hi_mask */
11919 :
11920 : case E_V8HImode:
11921 : if (pattern155 (x2,
11922 : E_V8HImode,
11923 : E_HImode,
11924 : E_QImode) != 0
11925 : || !(
11926 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11927 : (TARGET_AVX512F) && (
11928 : #line 29078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11929 : (TARGET_AVX512BW) &&
11930 : #line 333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11931 : (TARGET_AVX512VL))))
11932 : return -1;
11933 : return 9393; /* avx512vl_vec_dup_gprv8hi_mask */
11934 :
11935 : case E_V32HFmode:
11936 : if (pattern155 (x2,
11937 : E_V32HFmode,
11938 : E_HFmode,
11939 : E_SImode) != 0
11940 : || !(
11941 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11942 : (TARGET_AVX512F) &&
11943 : #line 29078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11944 : (TARGET_AVX512BW)))
11945 : return -1;
11946 : return 9395; /* avx512bw_vec_dup_gprv32hf_mask */
11947 :
11948 : case E_V16HFmode:
11949 : if (pattern155 (x2,
11950 : E_V16HFmode,
11951 : E_HFmode,
11952 : E_HImode) != 0
11953 : || !(
11954 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11955 : (TARGET_AVX512F) && (
11956 : #line 29078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11957 : (TARGET_AVX512BW) &&
11958 : #line 334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11959 : (TARGET_AVX512VL))))
11960 : return -1;
11961 : return 9397; /* avx512vl_vec_dup_gprv16hf_mask */
11962 :
11963 : case E_V8HFmode:
11964 : if (pattern155 (x2,
11965 : E_V8HFmode,
11966 : E_HFmode,
11967 : E_QImode) != 0
11968 : || !(
11969 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11970 : (TARGET_AVX512F) && (
11971 : #line 29078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11972 : (TARGET_AVX512BW) &&
11973 : #line 334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11974 : (TARGET_AVX512VL))))
11975 : return -1;
11976 : return 9399; /* avx512fp16_vec_dup_gprv8hf_mask */
11977 :
11978 : case E_V32BFmode:
11979 : if (pattern155 (x2,
11980 : E_V32BFmode,
11981 : E_BFmode,
11982 : E_SImode) != 0
11983 : || !(
11984 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11985 : (TARGET_AVX512F) &&
11986 : #line 29078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11987 : (TARGET_AVX512BW)))
11988 : return -1;
11989 : return 9401; /* avx512bw_vec_dup_gprv32bf_mask */
11990 :
11991 : case E_V16BFmode:
11992 : if (pattern155 (x2,
11993 : E_V16BFmode,
11994 : E_BFmode,
11995 : E_HImode) != 0
11996 : || !(
11997 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11998 : (TARGET_AVX512F) && (
11999 : #line 29078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12000 : (TARGET_AVX512BW) &&
12001 : #line 335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12002 : (TARGET_AVX512VL))))
12003 : return -1;
12004 : return 9403; /* avx512vl_vec_dup_gprv16bf_mask */
12005 :
12006 : case E_V8BFmode:
12007 : if (pattern155 (x2,
12008 : E_V8BFmode,
12009 : E_BFmode,
12010 : E_QImode) != 0
12011 : || !(
12012 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12013 : (TARGET_AVX512F) && (
12014 : #line 29078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12015 : (TARGET_AVX512BW) &&
12016 : #line 335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12017 : (TARGET_AVX512VL))))
12018 : return -1;
12019 : return 9405; /* avx512vl_vec_dup_gprv8bf_mask */
12020 :
12021 : case E_V8SImode:
12022 : if (pattern142 (x2,
12023 : E_V8SImode,
12024 : E_QImode) != 0)
12025 : return -1;
12026 : switch (GET_MODE (operands[1]))
12027 : {
12028 : case E_SImode:
12029 : if (!nonimmediate_operand (operands[1], E_SImode)
12030 : || !(
12031 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12032 : (TARGET_AVX512F) && (
12033 : #line 29090 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12034 : (TARGET_AVX512F) &&
12035 : #line 299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12036 : (TARGET_AVX512VL))))
12037 : return -1;
12038 : return 9409; /* avx512vl_vec_dup_gprv8si_mask */
12039 :
12040 : case E_V4SImode:
12041 : if (!nonimmediate_operand (operands[1], E_V4SImode)
12042 : || !(
12043 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12044 : (TARGET_AVX512F) &&
12045 : #line 29377 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12046 : (TARGET_AVX512VL)))
12047 : return -1;
12048 : return 9479; /* avx512vl_broadcastv8si_mask_1 */
12049 :
12050 : default:
12051 : return -1;
12052 : }
12053 :
12054 : case E_V4SImode:
12055 : if (pattern155 (x2,
12056 : E_V4SImode,
12057 : E_SImode,
12058 : E_QImode) != 0
12059 : || !(
12060 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12061 : (TARGET_AVX512F) && (
12062 : #line 29090 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12063 : (TARGET_AVX512F) &&
12064 : #line 299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12065 : (TARGET_AVX512VL))))
12066 : return -1;
12067 : return 9411; /* avx512vl_vec_dup_gprv4si_mask */
12068 :
12069 : case E_V4DImode:
12070 : if (pattern142 (x2,
12071 : E_V4DImode,
12072 : E_QImode) != 0)
12073 : return -1;
12074 : switch (GET_MODE (operands[1]))
12075 : {
12076 : case E_DImode:
12077 : if (!nonimmediate_operand (operands[1], E_DImode)
12078 : || !(
12079 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12080 : (TARGET_AVX512F) && (
12081 : #line 29090 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12082 : (TARGET_AVX512F) &&
12083 : #line 300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12084 : (TARGET_AVX512VL))))
12085 : return -1;
12086 : return 9415; /* avx512vl_vec_dup_gprv4di_mask */
12087 :
12088 : case E_V2DImode:
12089 : if (!nonimmediate_operand (operands[1], E_V2DImode)
12090 : || !(
12091 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12092 : (TARGET_AVX512F) && (
12093 : #line 29409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12094 : (TARGET_AVX512DQ) &&
12095 : #line 29403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12096 : (TARGET_AVX512VL))))
12097 : return -1;
12098 : return 9491; /* avx512dq_broadcastv4di_mask_1 */
12099 :
12100 : default:
12101 : return -1;
12102 : }
12103 :
12104 : case E_V2DImode:
12105 : if (pattern155 (x2,
12106 : E_V2DImode,
12107 : E_DImode,
12108 : E_QImode) != 0
12109 : || !(
12110 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12111 : (TARGET_AVX512F) && (
12112 : #line 29090 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12113 : (TARGET_AVX512F) &&
12114 : #line 300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12115 : (TARGET_AVX512VL))))
12116 : return -1;
12117 : return 9417; /* avx512vl_vec_dup_gprv2di_mask */
12118 :
12119 : case E_V8SFmode:
12120 : if (pattern142 (x2,
12121 : E_V8SFmode,
12122 : E_QImode) != 0)
12123 : return -1;
12124 : switch (GET_MODE (operands[1]))
12125 : {
12126 : case E_SFmode:
12127 : if (!nonimmediate_operand (operands[1], E_SFmode)
12128 : || !(
12129 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12130 : (TARGET_AVX512F) && (
12131 : #line 29090 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12132 : (TARGET_AVX512F) &&
12133 : #line 301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12134 : (TARGET_AVX512VL))))
12135 : return -1;
12136 : return 9421; /* avx512vl_vec_dup_gprv8sf_mask */
12137 :
12138 : case E_V4SFmode:
12139 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
12140 : || !(
12141 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12142 : (TARGET_AVX512F) &&
12143 : #line 29377 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12144 : (TARGET_AVX512VL)))
12145 : return -1;
12146 : return 9481; /* avx512vl_broadcastv8sf_mask_1 */
12147 :
12148 : default:
12149 : return -1;
12150 : }
12151 :
12152 : case E_V4SFmode:
12153 : if (pattern155 (x2,
12154 : E_V4SFmode,
12155 : E_SFmode,
12156 : E_QImode) != 0
12157 : || !(
12158 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12159 : (TARGET_AVX512F) && (
12160 : #line 29090 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12161 : (TARGET_AVX512F) &&
12162 : #line 301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12163 : (TARGET_AVX512VL))))
12164 : return -1;
12165 : return 9423; /* avx512vl_vec_dup_gprv4sf_mask */
12166 :
12167 : case E_V4DFmode:
12168 : if (pattern142 (x2,
12169 : E_V4DFmode,
12170 : E_QImode) != 0)
12171 : return -1;
12172 : switch (GET_MODE (operands[1]))
12173 : {
12174 : case E_DFmode:
12175 : if (!nonimmediate_operand (operands[1], E_DFmode)
12176 : || !(
12177 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12178 : (TARGET_AVX512F) && (
12179 : #line 29090 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12180 : (TARGET_AVX512F) &&
12181 : #line 302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12182 : (TARGET_AVX512VL))))
12183 : return -1;
12184 : return 9427; /* avx512vl_vec_dup_gprv4df_mask */
12185 :
12186 : case E_V2DFmode:
12187 : if (!nonimmediate_operand (operands[1], E_V2DFmode)
12188 : || !(
12189 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12190 : (TARGET_AVX512F) && (
12191 : #line 29409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12192 : (TARGET_AVX512DQ) &&
12193 : #line 29403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12194 : (TARGET_AVX512VL))))
12195 : return -1;
12196 : return 9493; /* avx512dq_broadcastv4df_mask_1 */
12197 :
12198 : default:
12199 : return -1;
12200 : }
12201 :
12202 : default:
12203 : return -1;
12204 : }
12205 :
12206 : default:
12207 : return -1;
12208 : }
12209 : }
12210 :
12211 : int
12212 : recog_167 (rtx x1 ATTRIBUTE_UNUSED,
12213 : rtx_insn *insn ATTRIBUTE_UNUSED,
12214 : int *pnum_clobbers ATTRIBUTE_UNUSED)
12215 : {
12216 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
12217 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
12218 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
12219 : rtx x18, x19, x20, x21, x22, x23, x24;
12220 : int res ATTRIBUTE_UNUSED;
12221 : x2 = XEXP (x1, 1);
12222 : x3 = XEXP (x2, 0);
12223 : x4 = XEXP (x3, 1);
12224 : x5 = XVECEXP (x4, 0, 2);
12225 : if (GET_CODE (x5) != CONST_INT)
12226 : return -1;
12227 : x6 = XVECEXP (x4, 0, 3);
12228 : if (GET_CODE (x6) != CONST_INT
12229 : || pattern1315 (x4) != 0)
12230 : return -1;
12231 : x7 = XVECEXP (x4, 0, 12);
12232 : if (GET_CODE (x7) != CONST_INT)
12233 : return -1;
12234 : x8 = XVECEXP (x4, 0, 13);
12235 : if (GET_CODE (x8) != CONST_INT)
12236 : return -1;
12237 : x9 = XVECEXP (x4, 0, 14);
12238 : if (GET_CODE (x9) != CONST_INT)
12239 : return -1;
12240 : x10 = XVECEXP (x4, 0, 15);
12241 : if (GET_CODE (x10) != CONST_INT)
12242 : return -1;
12243 : x11 = XEXP (x2, 2);
12244 : if (!register_operand (x11, E_HImode))
12245 : return -1;
12246 : x12 = XVECEXP (x4, 0, 0);
12247 : switch (XWINT (x12, 0))
12248 : {
12249 : case 2L:
12250 : x13 = XVECEXP (x4, 0, 1);
12251 : if (XWINT (x13, 0) != 18L
12252 : || XWINT (x5, 0) != 3L
12253 : || XWINT (x6, 0) != 19L
12254 : || pattern1877 (x4) != 0)
12255 : return -1;
12256 : x14 = XVECEXP (x4, 0, 8);
12257 : if (XWINT (x14, 0) != 10L)
12258 : return -1;
12259 : x15 = XVECEXP (x4, 0, 9);
12260 : if (XWINT (x15, 0) != 26L)
12261 : return -1;
12262 : x16 = XVECEXP (x4, 0, 10);
12263 : if (XWINT (x16, 0) != 11L)
12264 : return -1;
12265 : x17 = XVECEXP (x4, 0, 11);
12266 : if (XWINT (x17, 0) != 27L
12267 : || pattern1909 (x2) != 0)
12268 : return -1;
12269 : switch (GET_MODE (operands[0]))
12270 : {
12271 : case E_V16SFmode:
12272 : if (pattern1607 (x2,
12273 : E_V16SFmode,
12274 : E_V32SFmode) != 0
12275 : || !
12276 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12277 : (TARGET_AVX512F))
12278 : return -1;
12279 : return 5309; /* avx512f_unpckhps512_mask */
12280 :
12281 : case E_V16SImode:
12282 : if (pattern1607 (x2,
12283 : E_V16SImode,
12284 : E_V32SImode) != 0
12285 : || !
12286 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12287 : (TARGET_AVX512F))
12288 : return -1;
12289 : return 8489; /* avx512f_interleave_highv16si_mask */
12290 :
12291 : default:
12292 : return -1;
12293 : }
12294 :
12295 : case 0L:
12296 : x13 = XVECEXP (x4, 0, 1);
12297 : switch (XWINT (x13, 0))
12298 : {
12299 : case 16L:
12300 : if (XWINT (x5, 0) != 1L
12301 : || XWINT (x6, 0) != 17L)
12302 : return -1;
12303 : x18 = XEXP (x3, 0);
12304 : x19 = XEXP (x18, 1);
12305 : operands[2] = x19;
12306 : x20 = XEXP (x2, 1);
12307 : operands[3] = x20;
12308 : operands[4] = x11;
12309 : x21 = XVECEXP (x4, 0, 4);
12310 : switch (XWINT (x21, 0))
12311 : {
12312 : case 4L:
12313 : x22 = XVECEXP (x4, 0, 5);
12314 : if (XWINT (x22, 0) != 20L)
12315 : return -1;
12316 : x23 = XVECEXP (x4, 0, 6);
12317 : if (XWINT (x23, 0) != 5L)
12318 : return -1;
12319 : x24 = XVECEXP (x4, 0, 7);
12320 : if (XWINT (x24, 0) != 21L)
12321 : return -1;
12322 : x14 = XVECEXP (x4, 0, 8);
12323 : if (XWINT (x14, 0) != 8L)
12324 : return -1;
12325 : x15 = XVECEXP (x4, 0, 9);
12326 : if (XWINT (x15, 0) != 24L)
12327 : return -1;
12328 : x16 = XVECEXP (x4, 0, 10);
12329 : if (XWINT (x16, 0) != 9L)
12330 : return -1;
12331 : x17 = XVECEXP (x4, 0, 11);
12332 : if (XWINT (x17, 0) != 25L
12333 : || XWINT (x7, 0) != 12L
12334 : || XWINT (x8, 0) != 28L
12335 : || XWINT (x9, 0) != 13L
12336 : || XWINT (x10, 0) != 29L)
12337 : return -1;
12338 : switch (GET_MODE (operands[0]))
12339 : {
12340 : case E_V16SFmode:
12341 : if (pattern1607 (x2,
12342 : E_V16SFmode,
12343 : E_V32SFmode) != 0
12344 : || !
12345 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12346 : (TARGET_AVX512F))
12347 : return -1;
12348 : return 5315; /* avx512f_unpcklps512_mask */
12349 :
12350 : case E_V16SImode:
12351 : if (pattern1607 (x2,
12352 : E_V16SImode,
12353 : E_V32SImode) != 0
12354 : || !
12355 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12356 : (TARGET_AVX512F))
12357 : return -1;
12358 : return 8495; /* avx512f_interleave_lowv16si_mask */
12359 :
12360 : default:
12361 : return -1;
12362 : }
12363 :
12364 : case 2L:
12365 : x22 = XVECEXP (x4, 0, 5);
12366 : if (XWINT (x22, 0) != 18L)
12367 : return -1;
12368 : x23 = XVECEXP (x4, 0, 6);
12369 : if (XWINT (x23, 0) != 3L)
12370 : return -1;
12371 : x24 = XVECEXP (x4, 0, 7);
12372 : if (XWINT (x24, 0) != 19L)
12373 : return -1;
12374 : x14 = XVECEXP (x4, 0, 8);
12375 : switch (XWINT (x14, 0))
12376 : {
12377 : case 4L:
12378 : x15 = XVECEXP (x4, 0, 9);
12379 : if (XWINT (x15, 0) != 20L)
12380 : return -1;
12381 : x16 = XVECEXP (x4, 0, 10);
12382 : if (XWINT (x16, 0) != 5L)
12383 : return -1;
12384 : x17 = XVECEXP (x4, 0, 11);
12385 : if (XWINT (x17, 0) != 21L
12386 : || XWINT (x7, 0) != 6L
12387 : || XWINT (x8, 0) != 22L
12388 : || XWINT (x9, 0) != 7L
12389 : || XWINT (x10, 0) != 23L
12390 : || pattern1608 (x2,
12391 : E_V16QImode,
12392 : E_V32QImode) != 0
12393 : || !(
12394 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12395 : (TARGET_AVX512F) &&
12396 : #line 20350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12397 : (TARGET_SSE2 && TARGET_AVX512VL && TARGET_AVX512BW)))
12398 : return -1;
12399 : return 8449; /* vec_interleave_lowv16qi_mask */
12400 :
12401 : case 8L:
12402 : x15 = XVECEXP (x4, 0, 9);
12403 : if (XWINT (x15, 0) != 24L)
12404 : return -1;
12405 : x16 = XVECEXP (x4, 0, 10);
12406 : if (XWINT (x16, 0) != 9L)
12407 : return -1;
12408 : x17 = XVECEXP (x4, 0, 11);
12409 : if (XWINT (x17, 0) != 25L
12410 : || XWINT (x7, 0) != 10L
12411 : || XWINT (x8, 0) != 26L
12412 : || XWINT (x9, 0) != 11L
12413 : || XWINT (x10, 0) != 27L)
12414 : return -1;
12415 : switch (GET_MODE (operands[0]))
12416 : {
12417 : case E_V16HImode:
12418 : if (pattern1607 (x2,
12419 : E_V16HImode,
12420 : E_V32HImode) != 0
12421 : || !(
12422 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12423 : (TARGET_AVX512F) &&
12424 : #line 20470 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12425 : (TARGET_AVX2 && TARGET_AVX512VL && TARGET_AVX512BW)))
12426 : return -1;
12427 : return 8475; /* avx2_interleave_lowv16hi_mask */
12428 :
12429 : case E_V16HFmode:
12430 : if (pattern1607 (x2,
12431 : E_V16HFmode,
12432 : E_V32HFmode) != 0
12433 : || !(
12434 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12435 : (TARGET_AVX512F) &&
12436 : #line 20470 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12437 : (TARGET_AVX2 && TARGET_AVX512VL && TARGET_AVX512BW)))
12438 : return -1;
12439 : return 8477; /* avx2_interleave_lowv16hf_mask */
12440 :
12441 : case E_V16BFmode:
12442 : if (pattern1607 (x2,
12443 : E_V16BFmode,
12444 : E_V32BFmode) != 0
12445 : || !(
12446 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12447 : (TARGET_AVX512F) &&
12448 : #line 20470 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12449 : (TARGET_AVX2 && TARGET_AVX512VL && TARGET_AVX512BW)))
12450 : return -1;
12451 : return 8479; /* avx2_interleave_lowv16bf_mask */
12452 :
12453 : default:
12454 : return -1;
12455 : }
12456 :
12457 : default:
12458 : return -1;
12459 : }
12460 :
12461 : default:
12462 : return -1;
12463 : }
12464 :
12465 : case 0L:
12466 : if (pattern1702 (x4) != 0)
12467 : return -1;
12468 : x14 = XVECEXP (x4, 0, 8);
12469 : if (XWINT (x14, 0) != 8L)
12470 : return -1;
12471 : x15 = XVECEXP (x4, 0, 9);
12472 : if (XWINT (x15, 0) != 8L)
12473 : return -1;
12474 : x16 = XVECEXP (x4, 0, 10);
12475 : if (XWINT (x16, 0) != 10L)
12476 : return -1;
12477 : x17 = XVECEXP (x4, 0, 11);
12478 : if (XWINT (x17, 0) != 10L
12479 : || XWINT (x7, 0) != 12L
12480 : || XWINT (x8, 0) != 12L
12481 : || XWINT (x9, 0) != 14L
12482 : || XWINT (x10, 0) != 14L
12483 : || pattern1846 (x2,
12484 : E_V16SFmode,
12485 : E_V32SFmode) != 0
12486 : || !
12487 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12488 : (TARGET_AVX512F))
12489 : return -1;
12490 : return 5331; /* avx512f_movsldup512_mask */
12491 :
12492 : default:
12493 : return -1;
12494 : }
12495 :
12496 : case 1L:
12497 : x13 = XVECEXP (x4, 0, 1);
12498 : if (XWINT (x13, 0) != 1L
12499 : || XWINT (x5, 0) != 3L
12500 : || XWINT (x6, 0) != 3L)
12501 : return -1;
12502 : x21 = XVECEXP (x4, 0, 4);
12503 : if (XWINT (x21, 0) != 5L)
12504 : return -1;
12505 : x22 = XVECEXP (x4, 0, 5);
12506 : if (XWINT (x22, 0) != 5L)
12507 : return -1;
12508 : x23 = XVECEXP (x4, 0, 6);
12509 : if (XWINT (x23, 0) != 7L)
12510 : return -1;
12511 : x24 = XVECEXP (x4, 0, 7);
12512 : if (XWINT (x24, 0) != 7L)
12513 : return -1;
12514 : x14 = XVECEXP (x4, 0, 8);
12515 : if (XWINT (x14, 0) != 9L)
12516 : return -1;
12517 : x15 = XVECEXP (x4, 0, 9);
12518 : if (XWINT (x15, 0) != 9L)
12519 : return -1;
12520 : x16 = XVECEXP (x4, 0, 10);
12521 : if (XWINT (x16, 0) != 11L)
12522 : return -1;
12523 : x17 = XVECEXP (x4, 0, 11);
12524 : if (XWINT (x17, 0) != 11L
12525 : || XWINT (x7, 0) != 13L
12526 : || XWINT (x8, 0) != 13L
12527 : || XWINT (x9, 0) != 15L
12528 : || XWINT (x10, 0) != 15L
12529 : || pattern1846 (x2,
12530 : E_V16SFmode,
12531 : E_V32SFmode) != 0
12532 : || !
12533 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12534 : (TARGET_AVX512F))
12535 : return -1;
12536 : return 5325; /* avx512f_movshdup512_mask */
12537 :
12538 : case 8L:
12539 : x13 = XVECEXP (x4, 0, 1);
12540 : if (XWINT (x13, 0) != 24L
12541 : || XWINT (x5, 0) != 9L
12542 : || XWINT (x6, 0) != 25L)
12543 : return -1;
12544 : x21 = XVECEXP (x4, 0, 4);
12545 : if (XWINT (x21, 0) != 10L)
12546 : return -1;
12547 : x22 = XVECEXP (x4, 0, 5);
12548 : if (XWINT (x22, 0) != 26L)
12549 : return -1;
12550 : x23 = XVECEXP (x4, 0, 6);
12551 : if (XWINT (x23, 0) != 11L)
12552 : return -1;
12553 : x24 = XVECEXP (x4, 0, 7);
12554 : if (XWINT (x24, 0) != 27L
12555 : || pattern1892 (x4) != 0
12556 : || XWINT (x7, 0) != 14L
12557 : || XWINT (x8, 0) != 30L
12558 : || XWINT (x9, 0) != 15L
12559 : || XWINT (x10, 0) != 31L
12560 : || pattern784 (x2,
12561 : E_V32QImode,
12562 : E_V16QImode) != 0
12563 : || !register_operand (operands[1], E_V16QImode))
12564 : return -1;
12565 : x18 = XEXP (x3, 0);
12566 : x19 = XEXP (x18, 1);
12567 : operands[2] = x19;
12568 : if (!vector_operand (operands[2], E_V16QImode))
12569 : return -1;
12570 : x20 = XEXP (x2, 1);
12571 : operands[3] = x20;
12572 : if (!nonimm_or_0_operand (operands[3], E_V16QImode))
12573 : return -1;
12574 : operands[4] = x11;
12575 : if (!(
12576 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12577 : (TARGET_AVX512F) &&
12578 : #line 20254 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12579 : (TARGET_SSE2 && TARGET_AVX512VL && TARGET_AVX512BW)))
12580 : return -1;
12581 : return 8443; /* vec_interleave_highv16qi_mask */
12582 :
12583 : case 4L:
12584 : x13 = XVECEXP (x4, 0, 1);
12585 : if (XWINT (x13, 0) != 20L
12586 : || XWINT (x5, 0) != 5L
12587 : || XWINT (x6, 0) != 21L
12588 : || pattern1877 (x4) != 0
12589 : || pattern1892 (x4) != 0
12590 : || pattern1909 (x2) != 0)
12591 : return -1;
12592 : switch (GET_MODE (operands[0]))
12593 : {
12594 : case E_V16HImode:
12595 : if (pattern1607 (x2,
12596 : E_V16HImode,
12597 : E_V32HImode) != 0
12598 : || !(
12599 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12600 : (TARGET_AVX512F) &&
12601 : #line 20402 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12602 : (TARGET_AVX2 && TARGET_AVX512VL && TARGET_AVX512BW)))
12603 : return -1;
12604 : return 8457; /* avx2_interleave_highv16hi_mask */
12605 :
12606 : case E_V16HFmode:
12607 : if (pattern1607 (x2,
12608 : E_V16HFmode,
12609 : E_V32HFmode) != 0
12610 : || !(
12611 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12612 : (TARGET_AVX512F) &&
12613 : #line 20402 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12614 : (TARGET_AVX2 && TARGET_AVX512VL && TARGET_AVX512BW)))
12615 : return -1;
12616 : return 8459; /* avx2_interleave_highv16hf_mask */
12617 :
12618 : case E_V16BFmode:
12619 : if (pattern1607 (x2,
12620 : E_V16BFmode,
12621 : E_V32BFmode) != 0
12622 : || !(
12623 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12624 : (TARGET_AVX512F) &&
12625 : #line 20402 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12626 : (TARGET_AVX2 && TARGET_AVX512VL && TARGET_AVX512BW)))
12627 : return -1;
12628 : return 8461; /* avx2_interleave_highv16bf_mask */
12629 :
12630 : default:
12631 : return -1;
12632 : }
12633 :
12634 : default:
12635 : return -1;
12636 : }
12637 : }
12638 :
12639 : int
12640 : recog_178 (rtx x1 ATTRIBUTE_UNUSED,
12641 : rtx_insn *insn ATTRIBUTE_UNUSED,
12642 : int *pnum_clobbers ATTRIBUTE_UNUSED)
12643 : {
12644 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
12645 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
12646 : rtx x10;
12647 : int res ATTRIBUTE_UNUSED;
12648 : x2 = XEXP (x1, 1);
12649 : x3 = XEXP (x2, 0);
12650 : x4 = XEXP (x3, 1);
12651 : x5 = XVECEXP (x4, 0, 4);
12652 : if (GET_CODE (x5) != CONST_INT)
12653 : return -1;
12654 : operands[6] = x5;
12655 : res = recog_177 (x1, insn, pnum_clobbers);
12656 : if (res >= 0)
12657 : return res;
12658 : if (XWINT (x5, 0) != 4L)
12659 : return -1;
12660 : x6 = XVECEXP (x4, 0, 5);
12661 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
12662 : return -1;
12663 : x7 = XVECEXP (x4, 0, 6);
12664 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
12665 : return -1;
12666 : x8 = XVECEXP (x4, 0, 7);
12667 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
12668 : || pattern1316 (x2,
12669 : E_V8HImode) != 0
12670 : || pattern1032 (x4) != 0)
12671 : return -1;
12672 : x9 = XEXP (x2, 1);
12673 : operands[6] = x9;
12674 : if (!nonimm_or_0_operand (operands[6], E_V8HImode))
12675 : return -1;
12676 : x10 = XEXP (x2, 2);
12677 : operands[7] = x10;
12678 : if (!register_operand (operands[7], E_QImode)
12679 : || !(
12680 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12681 : (TARGET_AVX512F) &&
12682 : #line 21643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12683 : (TARGET_SSE2 && TARGET_AVX512BW && TARGET_AVX512VL)))
12684 : return -1;
12685 : return 8567; /* sse2_pshuflw_1_mask */
12686 : }
12687 :
12688 : int
12689 : recog_180 (rtx x1 ATTRIBUTE_UNUSED,
12690 : rtx_insn *insn ATTRIBUTE_UNUSED,
12691 : int *pnum_clobbers ATTRIBUTE_UNUSED)
12692 : {
12693 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
12694 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
12695 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
12696 : rtx x18, x19, x20;
12697 : int res ATTRIBUTE_UNUSED;
12698 : x2 = XEXP (x1, 1);
12699 : x3 = XEXP (x2, 0);
12700 : x4 = XEXP (x3, 1);
12701 : x5 = XVECEXP (x4, 0, 1);
12702 : operands[3] = x5;
12703 : x6 = XVECEXP (x4, 0, 2);
12704 : operands[4] = x6;
12705 : x7 = XVECEXP (x4, 0, 3);
12706 : operands[5] = x7;
12707 : x8 = XVECEXP (x4, 0, 5);
12708 : operands[7] = x8;
12709 : x9 = XVECEXP (x4, 0, 6);
12710 : operands[8] = x9;
12711 : x10 = XVECEXP (x4, 0, 7);
12712 : operands[9] = x10;
12713 : x11 = XVECEXP (x4, 0, 8);
12714 : operands[10] = x11;
12715 : x12 = XVECEXP (x4, 0, 9);
12716 : operands[11] = x12;
12717 : x13 = XVECEXP (x4, 0, 10);
12718 : operands[12] = x13;
12719 : x14 = XVECEXP (x4, 0, 11);
12720 : operands[13] = x14;
12721 : x15 = XVECEXP (x4, 0, 12);
12722 : operands[14] = x15;
12723 : x16 = XVECEXP (x4, 0, 13);
12724 : operands[15] = x16;
12725 : x17 = XVECEXP (x4, 0, 14);
12726 : operands[16] = x17;
12727 : x18 = XVECEXP (x4, 0, 15);
12728 : operands[17] = x18;
12729 : x19 = XEXP (x2, 1);
12730 : operands[18] = x19;
12731 : x20 = XEXP (x2, 2);
12732 : operands[19] = x20;
12733 : if (!register_operand (operands[19], E_HImode))
12734 : return -1;
12735 : switch (GET_MODE (operands[0]))
12736 : {
12737 : case E_V16SFmode:
12738 : if (!register_operand (operands[0], E_V16SFmode)
12739 : || GET_MODE (x2) != E_V16SFmode
12740 : || GET_MODE (x3) != E_V16SFmode
12741 : || !register_operand (operands[1], E_V16SFmode)
12742 : || pattern1893 () != 0
12743 : || !nonimm_or_0_operand (operands[18], E_V16SFmode)
12744 : || !(
12745 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12746 : (TARGET_AVX512F) &&
12747 : #line 21261 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12748 : (TARGET_AVX512F
12749 : && (INTVAL (operands[2]) & 3) == 0
12750 : && INTVAL (operands[2]) == INTVAL (operands[3]) - 1
12751 : && INTVAL (operands[2]) == INTVAL (operands[4]) - 2
12752 : && INTVAL (operands[2]) == INTVAL (operands[5]) - 3
12753 : && (INTVAL (operands[6]) & 3) == 0
12754 : && INTVAL (operands[6]) == INTVAL (operands[7]) - 1
12755 : && INTVAL (operands[6]) == INTVAL (operands[8]) - 2
12756 : && INTVAL (operands[6]) == INTVAL (operands[9]) - 3
12757 : && (INTVAL (operands[10]) & 3) == 0
12758 : && INTVAL (operands[10]) == INTVAL (operands[11]) - 1
12759 : && INTVAL (operands[10]) == INTVAL (operands[12]) - 2
12760 : && INTVAL (operands[10]) == INTVAL (operands[13]) - 3
12761 : && (INTVAL (operands[14]) & 3) == 0
12762 : && INTVAL (operands[14]) == INTVAL (operands[15]) - 1
12763 : && INTVAL (operands[14]) == INTVAL (operands[16]) - 2
12764 : && INTVAL (operands[14]) == INTVAL (operands[17]) - 3)))
12765 : return -1;
12766 : return 8553; /* *avx512f_shuf_f32x4_1_mask_1 */
12767 :
12768 : case E_V16SImode:
12769 : if (!register_operand (operands[0], E_V16SImode)
12770 : || GET_MODE (x2) != E_V16SImode
12771 : || GET_MODE (x3) != E_V16SImode
12772 : || !nonimm_or_0_operand (operands[18], E_V16SImode))
12773 : return -1;
12774 : if (register_operand (operands[1], E_V16SImode)
12775 : && pattern1893 () == 0
12776 : && (
12777 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12778 : (TARGET_AVX512F) &&
12779 : #line 21261 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12780 : (TARGET_AVX512F
12781 : && (INTVAL (operands[2]) & 3) == 0
12782 : && INTVAL (operands[2]) == INTVAL (operands[3]) - 1
12783 : && INTVAL (operands[2]) == INTVAL (operands[4]) - 2
12784 : && INTVAL (operands[2]) == INTVAL (operands[5]) - 3
12785 : && (INTVAL (operands[6]) & 3) == 0
12786 : && INTVAL (operands[6]) == INTVAL (operands[7]) - 1
12787 : && INTVAL (operands[6]) == INTVAL (operands[8]) - 2
12788 : && INTVAL (operands[6]) == INTVAL (operands[9]) - 3
12789 : && (INTVAL (operands[10]) & 3) == 0
12790 : && INTVAL (operands[10]) == INTVAL (operands[11]) - 1
12791 : && INTVAL (operands[10]) == INTVAL (operands[12]) - 2
12792 : && INTVAL (operands[10]) == INTVAL (operands[13]) - 3
12793 : && (INTVAL (operands[14]) & 3) == 0
12794 : && INTVAL (operands[14]) == INTVAL (operands[15]) - 1
12795 : && INTVAL (operands[14]) == INTVAL (operands[16]) - 2
12796 : && INTVAL (operands[14]) == INTVAL (operands[17]) - 3)))
12797 : return 8555; /* *avx512f_shuf_i32x4_1_mask_1 */
12798 : if (!nonimmediate_operand (operands[1], E_V16SImode)
12799 : || pattern1847 () != 0
12800 : || !const_8_to_11_operand (operands[10], E_VOIDmode)
12801 : || !const_8_to_11_operand (operands[11], E_VOIDmode)
12802 : || !const_8_to_11_operand (operands[12], E_VOIDmode)
12803 : || !const_8_to_11_operand (operands[13], E_VOIDmode)
12804 : || !const_12_to_15_operand (operands[14], E_VOIDmode)
12805 : || !const_12_to_15_operand (operands[15], E_VOIDmode)
12806 : || !const_12_to_15_operand (operands[16], E_VOIDmode)
12807 : || !const_12_to_15_operand (operands[17], E_VOIDmode)
12808 : || !(
12809 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12810 : (TARGET_AVX512F) &&
12811 : #line 21344 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12812 : (TARGET_AVX512F
12813 : && INTVAL (operands[2]) + 4 == INTVAL (operands[6])
12814 : && INTVAL (operands[3]) + 4 == INTVAL (operands[7])
12815 : && INTVAL (operands[4]) + 4 == INTVAL (operands[8])
12816 : && INTVAL (operands[5]) + 4 == INTVAL (operands[9])
12817 : && INTVAL (operands[2]) + 8 == INTVAL (operands[10])
12818 : && INTVAL (operands[3]) + 8 == INTVAL (operands[11])
12819 : && INTVAL (operands[4]) + 8 == INTVAL (operands[12])
12820 : && INTVAL (operands[5]) + 8 == INTVAL (operands[13])
12821 : && INTVAL (operands[2]) + 12 == INTVAL (operands[14])
12822 : && INTVAL (operands[3]) + 12 == INTVAL (operands[15])
12823 : && INTVAL (operands[4]) + 12 == INTVAL (operands[16])
12824 : && INTVAL (operands[5]) + 12 == INTVAL (operands[17]))))
12825 : return -1;
12826 : return 8557; /* avx512f_pshufd_1_mask */
12827 :
12828 : default:
12829 : return -1;
12830 : }
12831 : }
12832 :
12833 : int
12834 : recog_191 (rtx x1 ATTRIBUTE_UNUSED,
12835 : rtx_insn *insn ATTRIBUTE_UNUSED,
12836 : int *pnum_clobbers ATTRIBUTE_UNUSED)
12837 : {
12838 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
12839 : rtx x2, x3, x4, x5, x6, x7;
12840 : int res ATTRIBUTE_UNUSED;
12841 : x2 = XEXP (x1, 1);
12842 : x3 = XEXP (x2, 0);
12843 : x4 = XEXP (x3, 0);
12844 : operands[1] = x4;
12845 : x5 = XEXP (x3, 1);
12846 : operands[2] = x5;
12847 : x6 = XEXP (x2, 1);
12848 : operands[3] = x6;
12849 : x7 = XEXP (x2, 2);
12850 : operands[4] = x7;
12851 : switch (GET_MODE (operands[0]))
12852 : {
12853 : case E_V16HImode:
12854 : if (pattern135 (x2,
12855 : E_HImode,
12856 : E_V16HImode) != 0)
12857 : return -1;
12858 : if (nonimmediate_operand (operands[1], E_V16HImode)
12859 : && nonmemory_operand (operands[2], E_DImode)
12860 : && (
12861 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12862 : (TARGET_AVX512F) && (
12863 : #line 17851 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12864 : (TARGET_AVX512VL) &&
12865 : #line 781 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12866 : (TARGET_AVX512BW))))
12867 : return 7720; /* ashrv16hi3_mask */
12868 : if (!register_operand (operands[1], E_V16HImode)
12869 : || !nonimmediate_operand (operands[2], E_V16HImode)
12870 : || !(
12871 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12872 : (TARGET_AVX512F) && (
12873 : #line 30327 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12874 : (TARGET_AVX512BW) &&
12875 : #line 675 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12876 : (TARGET_AVX512VL))))
12877 : return -1;
12878 : return 9716; /* avx512vl_ashrvv16hi_mask */
12879 :
12880 : case E_V8HImode:
12881 : if (pattern135 (x2,
12882 : E_QImode,
12883 : E_V8HImode) != 0)
12884 : return -1;
12885 : if (nonimmediate_operand (operands[1], E_V8HImode)
12886 : && nonmemory_operand (operands[2], E_DImode)
12887 : && (
12888 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12889 : (TARGET_AVX512F) && (
12890 : #line 17851 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12891 : (TARGET_AVX512VL) &&
12892 : #line 781 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12893 : (TARGET_AVX512BW))))
12894 : return 7722; /* ashrv8hi3_mask */
12895 : if (!register_operand (operands[1], E_V8HImode)
12896 : || !nonimmediate_operand (operands[2], E_V8HImode)
12897 : || !(
12898 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12899 : (TARGET_AVX512F) && (
12900 : #line 30327 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12901 : (TARGET_AVX512BW) &&
12902 : #line 675 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12903 : (TARGET_AVX512VL))))
12904 : return -1;
12905 : return 9714; /* avx512vl_ashrvv8hi_mask */
12906 :
12907 : case E_V8SImode:
12908 : if (pattern135 (x2,
12909 : E_QImode,
12910 : E_V8SImode) != 0)
12911 : return -1;
12912 : if (nonimmediate_operand (operands[1], E_V8SImode)
12913 : && nonmemory_operand (operands[2], E_DImode)
12914 : && (
12915 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12916 : (TARGET_AVX512F) &&
12917 : #line 17851 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12918 : (TARGET_AVX512VL)))
12919 : return 7724; /* ashrv8si3_mask */
12920 : if (!register_operand (operands[1], E_V8SImode)
12921 : || !nonimmediate_operand (operands[2], E_V8SImode)
12922 : || !(
12923 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12924 : (TARGET_AVX512F) &&
12925 : #line 30316 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12926 : (TARGET_AVX2 && (32 == 64 || TARGET_AVX512VL))))
12927 : return -1;
12928 : return 9704; /* avx2_ashrvv8si_mask */
12929 :
12930 : case E_V4SImode:
12931 : if (pattern135 (x2,
12932 : E_QImode,
12933 : E_V4SImode) != 0)
12934 : return -1;
12935 : if (nonimmediate_operand (operands[1], E_V4SImode)
12936 : && nonmemory_operand (operands[2], E_DImode)
12937 : && (
12938 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12939 : (TARGET_AVX512F) &&
12940 : #line 17851 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12941 : (TARGET_AVX512VL)))
12942 : return 7726; /* ashrv4si3_mask */
12943 : if (!register_operand (operands[1], E_V4SImode)
12944 : || !nonimmediate_operand (operands[2], E_V4SImode)
12945 : || !(
12946 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12947 : (TARGET_AVX512F) &&
12948 : #line 30316 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12949 : (TARGET_AVX2 && (16 == 64 || TARGET_AVX512VL))))
12950 : return -1;
12951 : return 9702; /* avx2_ashrvv4si_mask */
12952 :
12953 : case E_V2DImode:
12954 : if (pattern135 (x2,
12955 : E_QImode,
12956 : E_V2DImode) != 0)
12957 : return -1;
12958 : if (nonimmediate_operand (operands[1], E_V2DImode)
12959 : && nonmemory_operand (operands[2], E_DImode)
12960 : && (
12961 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12962 : (TARGET_AVX512F) &&
12963 : #line 17851 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12964 : (TARGET_AVX512VL)))
12965 : return 7728; /* ashrv2di3_mask */
12966 : if (!register_operand (operands[1], E_V2DImode)
12967 : || !nonimmediate_operand (operands[2], E_V2DImode)
12968 : || !(
12969 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12970 : (TARGET_AVX512F) && (
12971 : #line 30316 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12972 : (TARGET_AVX2 && (16 == 64 || TARGET_AVX512VL)) &&
12973 : #line 671 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12974 : (TARGET_AVX512VL))))
12975 : return -1;
12976 : return 9708; /* avx2_ashrvv2di_mask */
12977 :
12978 : case E_V32HImode:
12979 : if (pattern135 (x2,
12980 : E_SImode,
12981 : E_V32HImode) != 0)
12982 : return -1;
12983 : if (nonimmediate_operand (operands[1], E_V32HImode)
12984 : && nonmemory_operand (operands[2], E_DImode)
12985 : && (
12986 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12987 : (TARGET_AVX512F) && (
12988 : #line 17895 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12989 : (TARGET_AVX512F) &&
12990 : #line 776 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12991 : (TARGET_AVX512BW))))
12992 : return 7738; /* ashrv32hi3_mask */
12993 : if (!register_operand (operands[1], E_V32HImode)
12994 : || !nonimmediate_operand (operands[2], E_V32HImode)
12995 : || !(
12996 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12997 : (TARGET_AVX512F) &&
12998 : #line 30327 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12999 : (TARGET_AVX512BW)))
13000 : return -1;
13001 : return 9718; /* avx512bw_ashrvv32hi_mask */
13002 :
13003 : case E_V4DImode:
13004 : if (pattern135 (x2,
13005 : E_QImode,
13006 : E_V4DImode) != 0)
13007 : return -1;
13008 : if (nonimmediate_operand (operands[1], E_V4DImode)
13009 : && nonmemory_operand (operands[2], E_DImode)
13010 : && (
13011 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13012 : (TARGET_AVX512F) && (
13013 : #line 17895 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13014 : (TARGET_AVX512F) &&
13015 : #line 777 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13016 : (TARGET_AVX512VL))))
13017 : return 7740; /* ashrv4di3_mask */
13018 : if (!register_operand (operands[1], E_V4DImode)
13019 : || !nonimmediate_operand (operands[2], E_V4DImode)
13020 : || !(
13021 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13022 : (TARGET_AVX512F) && (
13023 : #line 30316 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13024 : (TARGET_AVX2 && (32 == 64 || TARGET_AVX512VL)) &&
13025 : #line 671 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13026 : (TARGET_AVX512VL))))
13027 : return -1;
13028 : return 9710; /* avx2_ashrvv4di_mask */
13029 :
13030 : case E_V16SImode:
13031 : if (pattern135 (x2,
13032 : E_HImode,
13033 : E_V16SImode) != 0)
13034 : return -1;
13035 : if (nonimmediate_operand (operands[1], E_V16SImode)
13036 : && nonmemory_operand (operands[2], E_DImode)
13037 : &&
13038 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13039 : (TARGET_AVX512F))
13040 : return 7742; /* ashrv16si3_mask */
13041 : if (!register_operand (operands[1], E_V16SImode)
13042 : || !nonimmediate_operand (operands[2], E_V16SImode)
13043 : || !(
13044 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13045 : (TARGET_AVX512F) && (
13046 : #line 30316 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13047 : (TARGET_AVX2 && (64 == 64 || TARGET_AVX512VL)) &&
13048 : #line 670 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13049 : (TARGET_AVX512F))))
13050 : return -1;
13051 : return 9706; /* avx512f_ashrvv16si_mask */
13052 :
13053 : case E_V8DImode:
13054 : if (pattern135 (x2,
13055 : E_QImode,
13056 : E_V8DImode) != 0)
13057 : return -1;
13058 : if (nonimmediate_operand (operands[1], E_V8DImode)
13059 : && nonmemory_operand (operands[2], E_DImode)
13060 : &&
13061 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13062 : (TARGET_AVX512F))
13063 : return 7744; /* ashrv8di3_mask */
13064 : if (!register_operand (operands[1], E_V8DImode)
13065 : || !nonimmediate_operand (operands[2], E_V8DImode)
13066 : || !(
13067 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13068 : (TARGET_AVX512F) && (
13069 : #line 30316 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13070 : (TARGET_AVX2 && (64 == 64 || TARGET_AVX512VL)) &&
13071 : #line 672 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13072 : (TARGET_AVX512F))))
13073 : return -1;
13074 : return 9712; /* avx512f_ashrvv8di_mask */
13075 :
13076 : default:
13077 : return -1;
13078 : }
13079 : }
13080 :
13081 : int
13082 : recog_193 (rtx x1 ATTRIBUTE_UNUSED,
13083 : rtx_insn *insn ATTRIBUTE_UNUSED,
13084 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13085 : {
13086 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13087 : rtx x2;
13088 : int res ATTRIBUTE_UNUSED;
13089 : x2 = XEXP (x1, 1);
13090 : switch (pattern148 (x2))
13091 : {
13092 : case 0:
13093 : if (nonimmediate_operand (operands[1], E_V16HImode)
13094 : && nonmemory_operand (operands[2], E_DImode)
13095 : && (
13096 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13097 : (TARGET_AVX512F) && (
13098 : #line 18047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13099 : (TARGET_AVX512VL) &&
13100 : #line 786 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13101 : (TARGET_AVX512BW))))
13102 : return 7757; /* lshrv16hi3_mask */
13103 : if (!register_operand (operands[1], E_V16HImode)
13104 : || !nonimmediate_operand (operands[2], E_V16HImode)
13105 : || !(
13106 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13107 : (TARGET_AVX512F) && (
13108 : #line 30349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13109 : (TARGET_AVX512BW) &&
13110 : #line 675 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13111 : (TARGET_AVX512VL))))
13112 : return -1;
13113 : return 9750; /* avx512vl_lshrvv16hi_mask */
13114 :
13115 : case 1:
13116 : if (nonimmediate_operand (operands[1], E_V8HImode)
13117 : && nonmemory_operand (operands[2], E_DImode)
13118 : && (
13119 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13120 : (TARGET_AVX512F) && (
13121 : #line 18047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13122 : (TARGET_AVX512VL) &&
13123 : #line 786 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13124 : (TARGET_AVX512BW))))
13125 : return 7761; /* lshrv8hi3_mask */
13126 : if (!register_operand (operands[1], E_V8HImode)
13127 : || !nonimmediate_operand (operands[2], E_V8HImode)
13128 : || !(
13129 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13130 : (TARGET_AVX512F) && (
13131 : #line 30349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13132 : (TARGET_AVX512BW) &&
13133 : #line 675 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13134 : (TARGET_AVX512VL))))
13135 : return -1;
13136 : return 9746; /* avx512vl_lshrvv8hi_mask */
13137 :
13138 : case 2:
13139 : if (nonimmediate_operand (operands[1], E_V8SImode)
13140 : && nonmemory_operand (operands[2], E_DImode)
13141 : && (
13142 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13143 : (TARGET_AVX512F) &&
13144 : #line 18047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13145 : (TARGET_AVX512VL)))
13146 : return 7765; /* lshrv8si3_mask */
13147 : if (!register_operand (operands[1], E_V8SImode)
13148 : || !nonimmediate_operand (operands[2], E_V8SImode)
13149 : || !(
13150 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13151 : (TARGET_AVX512F) &&
13152 : #line 30338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13153 : (TARGET_AVX2 && (32 == 64 || TARGET_AVX512VL))))
13154 : return -1;
13155 : return 9726; /* avx2_lshrvv8si_mask */
13156 :
13157 : case 3:
13158 : if (nonimmediate_operand (operands[1], E_V4SImode)
13159 : && nonmemory_operand (operands[2], E_DImode)
13160 : && (
13161 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13162 : (TARGET_AVX512F) &&
13163 : #line 18047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13164 : (TARGET_AVX512VL)))
13165 : return 7769; /* lshrv4si3_mask */
13166 : if (!register_operand (operands[1], E_V4SImode)
13167 : || !nonimmediate_operand (operands[2], E_V4SImode)
13168 : || !(
13169 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13170 : (TARGET_AVX512F) &&
13171 : #line 30338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13172 : (TARGET_AVX2 && (16 == 64 || TARGET_AVX512VL))))
13173 : return -1;
13174 : return 9730; /* avx2_lshrvv4si_mask */
13175 :
13176 : case 4:
13177 : if (nonimmediate_operand (operands[1], E_V4DImode)
13178 : && nonmemory_operand (operands[2], E_DImode)
13179 : && (
13180 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13181 : (TARGET_AVX512F) &&
13182 : #line 18047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13183 : (TARGET_AVX512VL)))
13184 : return 7773; /* lshrv4di3_mask */
13185 : if (!register_operand (operands[1], E_V4DImode)
13186 : || !nonimmediate_operand (operands[2], E_V4DImode)
13187 : || !(
13188 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13189 : (TARGET_AVX512F) &&
13190 : #line 30338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13191 : (TARGET_AVX2 && (32 == 64 || TARGET_AVX512VL))))
13192 : return -1;
13193 : return 9738; /* avx2_lshrvv4di_mask */
13194 :
13195 : case 5:
13196 : if (nonimmediate_operand (operands[1], E_V2DImode)
13197 : && nonmemory_operand (operands[2], E_DImode)
13198 : && (
13199 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13200 : (TARGET_AVX512F) &&
13201 : #line 18047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13202 : (TARGET_AVX512VL)))
13203 : return 7777; /* lshrv2di3_mask */
13204 : if (!register_operand (operands[1], E_V2DImode)
13205 : || !nonimmediate_operand (operands[2], E_V2DImode)
13206 : || !(
13207 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13208 : (TARGET_AVX512F) &&
13209 : #line 30338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13210 : (TARGET_AVX2 && (16 == 64 || TARGET_AVX512VL))))
13211 : return -1;
13212 : return 9742; /* avx2_lshrvv2di_mask */
13213 :
13214 : case 6:
13215 : if (nonimmediate_operand (operands[1], E_V32HImode)
13216 : && nonmemory_operand (operands[2], E_DImode)
13217 : && (
13218 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13219 : (TARGET_AVX512F) && (
13220 : #line 18135 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13221 : (TARGET_AVX512F) &&
13222 : #line 773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13223 : (TARGET_AVX512BW))))
13224 : return 7797; /* lshrv32hi3_mask */
13225 : if (!register_operand (operands[1], E_V32HImode)
13226 : || !nonimmediate_operand (operands[2], E_V32HImode)
13227 : || !(
13228 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13229 : (TARGET_AVX512F) &&
13230 : #line 30349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13231 : (TARGET_AVX512BW)))
13232 : return -1;
13233 : return 9754; /* avx512bw_lshrvv32hi_mask */
13234 :
13235 : case 7:
13236 : if (nonimmediate_operand (operands[1], E_V16SImode)
13237 : && nonmemory_operand (operands[2], E_DImode)
13238 : &&
13239 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13240 : (TARGET_AVX512F))
13241 : return 7801; /* lshrv16si3_mask */
13242 : if (!register_operand (operands[1], E_V16SImode)
13243 : || !nonimmediate_operand (operands[2], E_V16SImode)
13244 : || !(
13245 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13246 : (TARGET_AVX512F) && (
13247 : #line 30338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13248 : (TARGET_AVX2 && (64 == 64 || TARGET_AVX512VL)) &&
13249 : #line 791 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13250 : (TARGET_AVX512F))))
13251 : return -1;
13252 : return 9722; /* avx512f_lshrvv16si_mask */
13253 :
13254 : case 8:
13255 : if (nonimmediate_operand (operands[1], E_V8DImode)
13256 : && nonmemory_operand (operands[2], E_DImode)
13257 : &&
13258 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13259 : (TARGET_AVX512F))
13260 : return 7805; /* lshrv8di3_mask */
13261 : if (!register_operand (operands[1], E_V8DImode)
13262 : || !nonimmediate_operand (operands[2], E_V8DImode)
13263 : || !(
13264 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13265 : (TARGET_AVX512F) && (
13266 : #line 30338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13267 : (TARGET_AVX2 && (64 == 64 || TARGET_AVX512VL)) &&
13268 : #line 792 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13269 : (TARGET_AVX512F))))
13270 : return -1;
13271 : return 9734; /* avx512f_lshrvv8di_mask */
13272 :
13273 : default:
13274 : return -1;
13275 : }
13276 : }
13277 :
13278 : int
13279 : recog_199 (rtx x1 ATTRIBUTE_UNUSED,
13280 : rtx_insn *insn ATTRIBUTE_UNUSED,
13281 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13282 : {
13283 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13284 : rtx x2, x3, x4, x5;
13285 : int res ATTRIBUTE_UNUSED;
13286 : x2 = XEXP (x1, 1);
13287 : switch (pattern157 (x2))
13288 : {
13289 : case 0:
13290 : if (!(
13291 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13292 : (TARGET_AVX512F) &&
13293 : #line 25029 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13294 : (TARGET_AVX2 && TARGET_AVX512BW && TARGET_AVX512VL)))
13295 : return -1;
13296 : return 8873; /* avx2_sign_extendv16qiv16hi2_mask */
13297 :
13298 : case 1:
13299 : if (!(
13300 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13301 : (TARGET_AVX512F) &&
13302 : #line 25084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13303 : (TARGET_AVX512BW)))
13304 : return -1;
13305 : return 8881; /* avx512bw_sign_extendv32qiv32hi2_mask */
13306 :
13307 : case 2:
13308 : if (!(
13309 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13310 : (TARGET_AVX512F) &&
13311 : #line 25156 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13312 : (TARGET_SSE4_1 && TARGET_AVX512BW && TARGET_AVX512VL)))
13313 : return -1;
13314 : return 8893; /* *sse4_1_sign_extendv8qiv8hi2_mask_1 */
13315 :
13316 : case 3:
13317 : if (!
13318 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13319 : (TARGET_AVX512F))
13320 : return -1;
13321 : return 8905; /* avx512f_sign_extendv16qiv16si2_mask */
13322 :
13323 : case 4:
13324 : if (!
13325 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13326 : (TARGET_AVX512F))
13327 : return -1;
13328 : return 8935; /* avx512f_sign_extendv16hiv16si2_mask */
13329 :
13330 : case 5:
13331 : if (!(
13332 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13333 : (TARGET_AVX512F) &&
13334 : #line 25342 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13335 : (TARGET_AVX2 && TARGET_AVX512VL)))
13336 : return -1;
13337 : return 8913; /* *avx2_sign_extendv8qiv8si2_mask_1 */
13338 :
13339 : case 6:
13340 : if (!(
13341 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13342 : (TARGET_AVX512F) &&
13343 : #line 25566 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13344 : (TARGET_AVX2 && TARGET_AVX512VL)))
13345 : return -1;
13346 : return 8943; /* avx2_sign_extendv8hiv8si2_mask */
13347 :
13348 : case 7:
13349 : if (!(
13350 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13351 : (TARGET_AVX512F) &&
13352 : #line 25432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13353 : (TARGET_SSE4_1 && TARGET_AVX512VL)))
13354 : return -1;
13355 : return 8925; /* *sse4_1_sign_extendv4qiv4si2_mask_1 */
13356 :
13357 : case 8:
13358 : if (!(
13359 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13360 : (TARGET_AVX512F) &&
13361 : #line 25638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13362 : (TARGET_SSE4_1 && TARGET_AVX512VL)))
13363 : return -1;
13364 : return 8955; /* *sse4_1_sign_extendv4hiv4si2_mask_1 */
13365 :
13366 : case 9:
13367 : if (!
13368 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13369 : (TARGET_AVX512F))
13370 : return -1;
13371 : return 8971; /* *avx512f_sign_extendv8qiv8di2_mask_1 */
13372 :
13373 : case 10:
13374 : if (!
13375 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13376 : (TARGET_AVX512F))
13377 : return -1;
13378 : return 9002; /* avx512f_sign_extendv8hiv8di2_mask */
13379 :
13380 : case 11:
13381 : if (!
13382 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13383 : (TARGET_AVX512F))
13384 : return -1;
13385 : return 9030; /* avx512f_sign_extendv8siv8di2_mask */
13386 :
13387 : case 12:
13388 : if (!(
13389 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13390 : (TARGET_AVX512F) &&
13391 : #line 25882 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13392 : (TARGET_AVX2 && TARGET_AVX512VL)))
13393 : return -1;
13394 : return 8983; /* *avx2_sign_extendv4qiv4di2_mask_1 */
13395 :
13396 : case 13:
13397 : if (!(
13398 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13399 : (TARGET_AVX512F) &&
13400 : #line 26059 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13401 : (TARGET_AVX2 && TARGET_AVX512VL)))
13402 : return -1;
13403 : return 9010; /* *avx2_sign_extendv4hiv4di2_mask_1 */
13404 :
13405 : case 14:
13406 : if (!(
13407 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13408 : (TARGET_AVX512F) &&
13409 : #line 26274 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13410 : (TARGET_AVX2 && TARGET_AVX512VL)))
13411 : return -1;
13412 : return 9036; /* avx2_sign_extendv4siv4di2_mask */
13413 :
13414 : case 15:
13415 : if (!(
13416 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13417 : (TARGET_AVX512F) &&
13418 : #line 25975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13419 : (TARGET_SSE4_1 && TARGET_AVX512VL)))
13420 : return -1;
13421 : return 8995; /* *sse4_1_sign_extendv2qiv2di2_mask_1 */
13422 :
13423 : case 16:
13424 : if (!(
13425 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13426 : (TARGET_AVX512F) &&
13427 : #line 26144 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13428 : (TARGET_SSE4_1 && TARGET_AVX512VL)))
13429 : return -1;
13430 : return 9022; /* *sse4_1_sign_extendv2hiv2di2_mask_1 */
13431 :
13432 : case 17:
13433 : if (!(
13434 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13435 : (TARGET_AVX512F) &&
13436 : #line 26342 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13437 : (TARGET_SSE4_1 && TARGET_AVX512VL)))
13438 : return -1;
13439 : return 9046; /* *sse4_1_sign_extendv2siv2di2_mask_1 */
13440 :
13441 : case 18:
13442 : x3 = XEXP (x2, 0);
13443 : x4 = XEXP (x3, 0);
13444 : x5 = XEXP (x4, 0);
13445 : operands[1] = x5;
13446 : switch (pattern917 (x2))
13447 : {
13448 : case 0:
13449 : if ((
13450 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13451 : (TARGET_AVX512F) &&
13452 : #line 25143 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13453 : (TARGET_SSE4_1 && TARGET_AVX512BW && TARGET_AVX512VL)))
13454 : return 8889; /* sse4_1_sign_extendv8qiv8hi2_mask */
13455 : break;
13456 :
13457 : case 1:
13458 : if ((
13459 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13460 : (TARGET_AVX512F) &&
13461 : #line 25330 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13462 : (TARGET_AVX2 && TARGET_AVX512VL)))
13463 : return 8909; /* avx2_sign_extendv8qiv8si2_mask */
13464 : break;
13465 :
13466 : case 2:
13467 : if (
13468 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13469 : (TARGET_AVX512F))
13470 : return 8967; /* avx512f_sign_extendv8qiv8di2_mask */
13471 : break;
13472 :
13473 : case 3:
13474 : if ((
13475 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13476 : (TARGET_AVX512F) &&
13477 : #line 25419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13478 : (TARGET_SSE4_1 && TARGET_AVX512VL)))
13479 : return 8921; /* sse4_1_sign_extendv4qiv4si2_mask */
13480 : break;
13481 :
13482 : case 4:
13483 : if ((
13484 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13485 : (TARGET_AVX512F) &&
13486 : #line 25625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13487 : (TARGET_SSE4_1 && TARGET_AVX512VL)))
13488 : return 8951; /* sse4_1_sign_extendv4hiv4si2_mask */
13489 : break;
13490 :
13491 : case 5:
13492 : if ((
13493 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13494 : (TARGET_AVX512F) &&
13495 : #line 25870 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13496 : (TARGET_AVX2 && TARGET_AVX512VL)))
13497 : return 8979; /* avx2_sign_extendv4qiv4di2_mask */
13498 : break;
13499 :
13500 : case 6:
13501 : if ((
13502 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13503 : (TARGET_AVX512F) &&
13504 : #line 26047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13505 : (TARGET_AVX2 && TARGET_AVX512VL)))
13506 : return 9006; /* avx2_sign_extendv4hiv4di2_mask */
13507 : break;
13508 :
13509 : case 7:
13510 : if ((
13511 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13512 : (TARGET_AVX512F) &&
13513 : #line 25962 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13514 : (TARGET_SSE4_1 && TARGET_AVX512VL)))
13515 : return 8991; /* sse4_1_sign_extendv2qiv2di2_mask */
13516 : break;
13517 :
13518 : case 8:
13519 : if ((
13520 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13521 : (TARGET_AVX512F) &&
13522 : #line 26131 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13523 : (TARGET_SSE4_1 && TARGET_AVX512VL)))
13524 : return 9018; /* sse4_1_sign_extendv2hiv2di2_mask */
13525 : break;
13526 :
13527 : case 9:
13528 : if ((
13529 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13530 : (TARGET_AVX512F) &&
13531 : #line 26329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13532 : (TARGET_SSE4_1 && TARGET_AVX512VL)))
13533 : return 9042; /* sse4_1_sign_extendv2siv2di2_mask */
13534 : break;
13535 :
13536 : default:
13537 : break;
13538 : }
13539 : if (GET_CODE (x5) != SUBREG
13540 : || maybe_ne (SUBREG_BYTE (x5), 0))
13541 : return -1;
13542 : switch (pattern416 (x2))
13543 : {
13544 : case 0:
13545 : if (!
13546 : #line 25204 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13547 : (TARGET_AVX512VL && TARGET_AVX512BW
13548 : && ix86_pre_reload_split ()))
13549 : return -1;
13550 : return 8898; /* *avx512vl_sign_extendv8qiv8hi2_mask_2 */
13551 :
13552 : case 1:
13553 : if (!
13554 : #line 25385 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13555 : (TARGET_AVX512VL
13556 : && ix86_pre_reload_split ()))
13557 : return -1;
13558 : return 8918; /* *avx512vl_sign_extendv8qiv8si2_mask_2 */
13559 :
13560 : case 2:
13561 : if (!
13562 : #line 25837 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13563 : (TARGET_AVX512F && ix86_pre_reload_split ()))
13564 : return -1;
13565 : return 8976; /* *avx512f_sign_extendv8qiv8di2_mask_2 */
13566 :
13567 : case 3:
13568 : if (!
13569 : #line 25679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13570 : (TARGET_AVX512VL
13571 : && ix86_pre_reload_split ()))
13572 : return -1;
13573 : return 8960; /* *avx512vl_sign_extendv4hiv4si2_mask_2 */
13574 :
13575 : case 4:
13576 : if (!
13577 : #line 26098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13578 : (TARGET_AVX512VL
13579 : && ix86_pre_reload_split ()))
13580 : return -1;
13581 : return 9015; /* *avx512vl_sign_extendv4hiv4di2_mask_2 */
13582 :
13583 : case 5:
13584 : if (!
13585 : #line 26381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13586 : (TARGET_AVX512VL
13587 : && ix86_pre_reload_split ()))
13588 : return -1;
13589 : return 9051; /* *avx512vl_sign_extendv2siv2di2_mask_2 */
13590 :
13591 : case 6:
13592 : if ((
13593 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13594 : (TARGET_AVX512F) &&
13595 : #line 25456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13596 : (TARGET_SSE4_1 && TARGET_AVX512VL
13597 : && ix86_pre_reload_split ())))
13598 : return 8929; /* *sse4_1_sign_extendv4qiv4si2_2 */
13599 : if (!
13600 : #line 25481 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13601 : (TARGET_AVX512VL
13602 : && ix86_pre_reload_split ()))
13603 : return -1;
13604 : return 8932; /* *avx512vl_sign_extendv4qiv4si2_mask_2 */
13605 :
13606 : case 7:
13607 : if (!
13608 : #line 25929 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13609 : (TARGET_AVX512VL
13610 : && ix86_pre_reload_split ()))
13611 : return -1;
13612 : return 8988; /* *avx512vl_sign_extendv4qiv4di2_mask_2 */
13613 :
13614 : case 8:
13615 : if (!
13616 : #line 26191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13617 : (TARGET_AVX512VL
13618 : && ix86_pre_reload_split ()))
13619 : return -1;
13620 : return 9027; /* *avx512vl_sign_extendv2hiv2di2_mask_2 */
13621 :
13622 : default:
13623 : return -1;
13624 : }
13625 :
13626 : default:
13627 : return -1;
13628 : }
13629 : }
13630 :
13631 : int
13632 : recog_208 (rtx x1 ATTRIBUTE_UNUSED,
13633 : rtx_insn *insn ATTRIBUTE_UNUSED,
13634 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13635 : {
13636 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13637 : rtx x2;
13638 : int res ATTRIBUTE_UNUSED;
13639 : x2 = XEXP (x1, 1);
13640 : switch (pattern144 (x2))
13641 : {
13642 : case 0:
13643 : if (!(
13644 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13645 : (TARGET_AVX512F) && (
13646 : #line 8291 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13647 : (TARGET_AVX512FP16) &&
13648 : #line 683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13649 : (TARGET_AVX512VL))))
13650 : return -1;
13651 : return 4672; /* avx512fp16_fix_truncv8hi2_mask */
13652 :
13653 : case 1:
13654 : if (!(
13655 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13656 : (TARGET_AVX512F) && (
13657 : #line 8291 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13658 : (TARGET_AVX512FP16) &&
13659 : #line 683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13660 : (TARGET_AVX512VL))))
13661 : return -1;
13662 : return 4680; /* avx512fp16_fix_truncv16hi2_mask */
13663 :
13664 : case 2:
13665 : if (!(
13666 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13667 : (TARGET_AVX512F) &&
13668 : #line 8291 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13669 : (TARGET_AVX512FP16)))
13670 : return -1;
13671 : return 4688; /* avx512fp16_fix_truncv32hi2_mask */
13672 :
13673 : case 3:
13674 : switch (GET_MODE (operands[1]))
13675 : {
13676 : case E_V8HFmode:
13677 : if (!vector_operand (operands[1], E_V8HFmode)
13678 : || !(
13679 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13680 : (TARGET_AVX512F) && (
13681 : #line 8291 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13682 : (TARGET_AVX512FP16) &&
13683 : #line 684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13684 : (TARGET_AVX512VL))))
13685 : return -1;
13686 : return 4696; /* avx512fp16_fix_truncv8si2_mask */
13687 :
13688 : case E_V8SFmode:
13689 : if (!nonimmediate_operand (operands[1], E_V8SFmode)
13690 : || !(
13691 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13692 : (TARGET_AVX512F) &&
13693 : #line 9309 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13694 : (TARGET_AVX && TARGET_AVX512VL)))
13695 : return -1;
13696 : return 4958; /* fix_truncv8sfv8si2_mask */
13697 :
13698 : case E_V8DFmode:
13699 : if (!vector_operand (operands[1], E_V8DFmode)
13700 : || !
13701 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13702 : (TARGET_AVX512F))
13703 : return -1;
13704 : return 5117; /* fix_truncv8dfv8si2_mask */
13705 :
13706 : default:
13707 : return -1;
13708 : }
13709 :
13710 : case 4:
13711 : if (!(
13712 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13713 : (TARGET_AVX512F) &&
13714 : #line 8291 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13715 : (TARGET_AVX512FP16)))
13716 : return -1;
13717 : return 4704; /* avx512fp16_fix_truncv16si2_mask */
13718 :
13719 : case 5:
13720 : if (!
13721 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13722 : (TARGET_AVX512F))
13723 : return -1;
13724 : return 4949; /* fix_truncv16sfv16si2_mask */
13725 :
13726 : case 6:
13727 : if (!(
13728 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13729 : (TARGET_AVX512F) &&
13730 : #line 8291 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13731 : (TARGET_AVX512FP16)))
13732 : return -1;
13733 : return 4712; /* avx512fp16_fix_truncv8di2_mask */
13734 :
13735 : case 7:
13736 : if (!(
13737 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13738 : (TARGET_AVX512F) &&
13739 : #line 10373 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13740 : (TARGET_AVX512DQ && 1)))
13741 : return -1;
13742 : return 5154; /* fix_truncv8dfv8di2_mask */
13743 :
13744 : case 8:
13745 : if (!(
13746 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13747 : (TARGET_AVX512F) &&
13748 : #line 10416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13749 : (TARGET_AVX512DQ && 1)))
13750 : return -1;
13751 : return 5198; /* fix_truncv8sfv8di2_mask */
13752 :
13753 : case 9:
13754 : switch (GET_MODE (operands[1]))
13755 : {
13756 : case E_V4HFmode:
13757 : if (!memory_operand (operands[1], E_V4HFmode)
13758 : || !(
13759 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13760 : (TARGET_AVX512F) &&
13761 : #line 8341 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13762 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
13763 : return -1;
13764 : return 4735; /* *avx512fp16_fix_truncv4si2_load_mask */
13765 :
13766 : case E_V4SFmode:
13767 : if (!vector_operand (operands[1], E_V4SFmode)
13768 : || !(
13769 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13770 : (TARGET_AVX512F) &&
13771 : #line 9339 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13772 : (TARGET_SSE2 && TARGET_AVX512VL)))
13773 : return -1;
13774 : return 4962; /* fix_truncv4sfv4si2_mask */
13775 :
13776 : case E_V4DFmode:
13777 : if (!nonimmediate_operand (operands[1], E_V4DFmode)
13778 : || !(
13779 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13780 : (TARGET_AVX512F) &&
13781 : #line 10333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13782 : (TARGET_AVX || (TARGET_AVX512VL && TARGET_AVX512F))))
13783 : return -1;
13784 : return 5131; /* fix_truncv4dfv4si2_mask */
13785 :
13786 : default:
13787 : return -1;
13788 : }
13789 :
13790 : case 10:
13791 : if (!(
13792 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13793 : (TARGET_AVX512F) &&
13794 : #line 8341 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13795 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
13796 : return -1;
13797 : return 4739; /* *avx512fp16_fix_truncv4di2_load_mask */
13798 :
13799 : case 11:
13800 : if (!(
13801 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13802 : (TARGET_AVX512F) && (
13803 : #line 10373 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13804 : (TARGET_AVX512DQ && 1) &&
13805 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13806 : (TARGET_AVX512VL))))
13807 : return -1;
13808 : return 5161; /* fix_truncv4dfv4di2_mask */
13809 :
13810 : case 12:
13811 : if (!(
13812 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13813 : (TARGET_AVX512F) && (
13814 : #line 10416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13815 : (TARGET_AVX512DQ && 1) &&
13816 : #line 620 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13817 : (TARGET_AVX512VL))))
13818 : return -1;
13819 : return 5205; /* fix_truncv4sfv4di2_mask */
13820 :
13821 : case 13:
13822 : if (!(
13823 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13824 : (TARGET_AVX512F) &&
13825 : #line 8391 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13826 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
13827 : return -1;
13828 : return 4751; /* *avx512fp16_fix_truncv2di2_load_mask */
13829 :
13830 : case 14:
13831 : if (!(
13832 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13833 : (TARGET_AVX512F) && (
13834 : #line 10373 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13835 : (TARGET_AVX512DQ && 1) &&
13836 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13837 : (TARGET_AVX512VL))))
13838 : return -1;
13839 : return 5165; /* fix_truncv2dfv2di2_mask */
13840 :
13841 : case 15:
13842 : if (!(
13843 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13844 : (TARGET_AVX512F) &&
13845 : #line 8331 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13846 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
13847 : return -1;
13848 : return 4727; /* avx512fp16_fix_truncv4si2_mask */
13849 :
13850 : case 16:
13851 : if (!(
13852 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13853 : (TARGET_AVX512F) &&
13854 : #line 8331 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13855 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
13856 : return -1;
13857 : return 4731; /* avx512fp16_fix_truncv4di2_mask */
13858 :
13859 : case 17:
13860 : if (!(
13861 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13862 : (TARGET_AVX512F) &&
13863 : #line 8381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13864 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
13865 : return -1;
13866 : return 4747; /* avx512fp16_fix_truncv2di2_mask */
13867 :
13868 : case 18:
13869 : if (!(
13870 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13871 : (TARGET_AVX512F) &&
13872 : #line 10439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13873 : (TARGET_AVX512DQ && TARGET_AVX512VL)))
13874 : return -1;
13875 : return 5213; /* avx512dq_fix_truncv2sfv2di2_mask */
13876 :
13877 : default:
13878 : return -1;
13879 : }
13880 : }
13881 :
13882 : int
13883 : recog_219 (rtx x1 ATTRIBUTE_UNUSED,
13884 : rtx_insn *insn ATTRIBUTE_UNUSED,
13885 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13886 : {
13887 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13888 : rtx x2, x3;
13889 : int res ATTRIBUTE_UNUSED;
13890 : x2 = XEXP (x1, 1);
13891 : x3 = XVECEXP (x2, 0, 0);
13892 : operands[1] = x3;
13893 : switch (GET_MODE (operands[0]))
13894 : {
13895 : case E_V8SFmode:
13896 : if (!register_operand (operands[0], E_V8SFmode)
13897 : || GET_MODE (x2) != E_V8SFmode
13898 : || !vector_operand (operands[1], E_V8SFmode)
13899 : || !(
13900 : #line 3173 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13901 : (TARGET_SSE) &&
13902 : #line 444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13903 : (TARGET_AVX)))
13904 : return -1;
13905 : return 3027; /* avx_rsqrtv8sf2 */
13906 :
13907 : case E_V4SFmode:
13908 : if (!register_operand (operands[0], E_V4SFmode)
13909 : || GET_MODE (x2) != E_V4SFmode
13910 : || !vector_operand (operands[1], E_V4SFmode)
13911 : || !
13912 : #line 3173 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13913 : (TARGET_SSE))
13914 : return -1;
13915 : return 3028; /* sse_rsqrtv4sf2 */
13916 :
13917 : case E_V32HFmode:
13918 : if (!register_operand (operands[0], E_V32HFmode)
13919 : || GET_MODE (x2) != E_V32HFmode
13920 : || !vector_operand (operands[1], E_V32HFmode)
13921 : || !
13922 : #line 3185 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13923 : (TARGET_AVX512FP16))
13924 : return -1;
13925 : return 3029; /* avx512fp16_rsqrtv32hf2 */
13926 :
13927 : case E_V16HFmode:
13928 : if (!register_operand (operands[0], E_V16HFmode)
13929 : || GET_MODE (x2) != E_V16HFmode
13930 : || !vector_operand (operands[1], E_V16HFmode)
13931 : || !(
13932 : #line 3185 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13933 : (TARGET_AVX512FP16) &&
13934 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13935 : (TARGET_AVX512VL)))
13936 : return -1;
13937 : return 3031; /* avx512fp16_rsqrtv16hf2 */
13938 :
13939 : case E_V8HFmode:
13940 : if (!register_operand (operands[0], E_V8HFmode)
13941 : || GET_MODE (x2) != E_V8HFmode
13942 : || !vector_operand (operands[1], E_V8HFmode)
13943 : || !(
13944 : #line 3185 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13945 : (TARGET_AVX512FP16) &&
13946 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13947 : (TARGET_AVX512VL)))
13948 : return -1;
13949 : return 3033; /* avx512fp16_rsqrtv8hf2 */
13950 :
13951 : case E_V32BFmode:
13952 : if (!register_operand (operands[0], E_V32BFmode)
13953 : || GET_MODE (x2) != E_V32BFmode
13954 : || !nonimmediate_operand (operands[1], E_V32BFmode)
13955 : || !
13956 : #line 33833 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13957 : (TARGET_AVX10_2))
13958 : return -1;
13959 : return 10824; /* avx10_2_rsqrtbf16_v32bf */
13960 :
13961 : case E_V16BFmode:
13962 : if (!register_operand (operands[0], E_V16BFmode)
13963 : || GET_MODE (x2) != E_V16BFmode
13964 : || !nonimmediate_operand (operands[1], E_V16BFmode)
13965 : || !
13966 : #line 33833 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13967 : (TARGET_AVX10_2))
13968 : return -1;
13969 : return 10826; /* avx10_2_rsqrtbf16_v16bf */
13970 :
13971 : case E_V8BFmode:
13972 : if (!register_operand (operands[0], E_V8BFmode)
13973 : || GET_MODE (x2) != E_V8BFmode
13974 : || !nonimmediate_operand (operands[1], E_V8BFmode)
13975 : || !
13976 : #line 33833 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13977 : (TARGET_AVX10_2))
13978 : return -1;
13979 : return 10828; /* avx10_2_rsqrtbf16_v8bf */
13980 :
13981 : default:
13982 : return -1;
13983 : }
13984 : }
13985 :
13986 : int
13987 : recog_225 (rtx x1 ATTRIBUTE_UNUSED,
13988 : rtx_insn *insn ATTRIBUTE_UNUSED,
13989 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13990 : {
13991 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13992 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
13993 : int res ATTRIBUTE_UNUSED;
13994 : x2 = XEXP (x1, 1);
13995 : x3 = XVECEXP (x2, 0, 1);
13996 : if (!const_4_or_8_to_11_operand (x3, E_SImode))
13997 : return -1;
13998 : x4 = XVECEXP (x2, 0, 0);
13999 : x5 = XEXP (x4, 0);
14000 : x6 = XVECEXP (x5, 0, 2);
14001 : switch (GET_CODE (x6))
14002 : {
14003 : case REG:
14004 : case SUBREG:
14005 : case MEM:
14006 : operands[3] = x6;
14007 : x7 = XEXP (x4, 1);
14008 : switch (GET_CODE (x7))
14009 : {
14010 : case CONST_INT:
14011 : case CONST_DOUBLE:
14012 : case CONST_VECTOR:
14013 : operands[4] = x7;
14014 : x8 = XEXP (x4, 2);
14015 : operands[5] = x8;
14016 : operands[6] = x3;
14017 : switch (GET_MODE (operands[0]))
14018 : {
14019 : case E_V32HFmode:
14020 : if (pattern1677 (x2,
14021 : E_SImode,
14022 : E_V32HFmode) != 0
14023 : || !(
14024 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14025 : (TARGET_AVX512F) && (
14026 : #line 6821 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14027 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V32HFmode == V16SFmode
14028 : || V32HFmode == V8DFmode
14029 : || V32HFmode == V8DImode
14030 : || V32HFmode == V16SImode
14031 : || V32HFmode == V32HFmode)) &&
14032 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14033 : (TARGET_AVX512FP16))))
14034 : return -1;
14035 : return 4149; /* fma_fmaddsub_v32hf_maskz_1_round */
14036 :
14037 : case E_V16SFmode:
14038 : if (pattern1677 (x2,
14039 : E_HImode,
14040 : E_V16SFmode) != 0
14041 : || !(
14042 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14043 : (TARGET_AVX512F) &&
14044 : #line 6821 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14045 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V16SFmode == V16SFmode
14046 : || V16SFmode == V8DFmode
14047 : || V16SFmode == V8DImode
14048 : || V16SFmode == V16SImode
14049 : || V16SFmode == V32HFmode))))
14050 : return -1;
14051 : return 4157; /* fma_fmaddsub_v16sf_maskz_1_round */
14052 :
14053 : case E_V8DFmode:
14054 : if (pattern1677 (x2,
14055 : E_QImode,
14056 : E_V8DFmode) != 0
14057 : || !(
14058 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14059 : (TARGET_AVX512F) &&
14060 : #line 6821 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14061 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V8DFmode == V16SFmode
14062 : || V8DFmode == V8DFmode
14063 : || V8DFmode == V8DImode
14064 : || V8DFmode == V16SImode
14065 : || V8DFmode == V32HFmode))))
14066 : return -1;
14067 : return 4165; /* fma_fmaddsub_v8df_maskz_1_round */
14068 :
14069 : default:
14070 : return -1;
14071 : }
14072 :
14073 : case REG:
14074 : case SUBREG:
14075 : case MEM:
14076 : x8 = XEXP (x4, 2);
14077 : operands[4] = x8;
14078 : operands[5] = x3;
14079 : switch (GET_MODE (operands[0]))
14080 : {
14081 : case E_V32HFmode:
14082 : if (pattern1612 (x2,
14083 : E_V32HFmode,
14084 : E_SImode) != 0)
14085 : return -1;
14086 : if (register_operand (operands[1], E_V32HFmode)
14087 : && register_operand (operands[3], E_V32HFmode)
14088 : && rtx_equal_p (x7, operands[1])
14089 : && (
14090 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14091 : (TARGET_AVX512F) && (
14092 : #line 6840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14093 : (TARGET_AVX512F) &&
14094 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14095 : (TARGET_AVX512FP16))))
14096 : return 4171; /* avx512bw_fmaddsub_v32hf_mask_round */
14097 : if (!nonimmediate_operand (operands[1], E_V32HFmode)
14098 : || !nonimmediate_operand (operands[3], E_V32HFmode)
14099 : || !rtx_equal_p (x7, operands[3])
14100 : || !(
14101 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14102 : (TARGET_AVX512F) && (
14103 : #line 6858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14104 : (TARGET_AVX512F) &&
14105 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14106 : (TARGET_AVX512FP16))))
14107 : return -1;
14108 : return 4189; /* avx512bw_fmaddsub_v32hf_mask3_round */
14109 :
14110 : case E_V16HFmode:
14111 : if (pattern1612 (x2,
14112 : E_V16HFmode,
14113 : E_HImode) != 0)
14114 : return -1;
14115 : if (register_operand (operands[1], E_V16HFmode)
14116 : && register_operand (operands[3], E_V16HFmode)
14117 : && rtx_equal_p (x7, operands[1])
14118 : && (
14119 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14120 : (TARGET_AVX512F) && (
14121 : #line 6840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14122 : (TARGET_AVX512F) &&
14123 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14124 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14125 : return 4173; /* avx512vl_fmaddsub_v16hf_mask_round */
14126 : if (!nonimmediate_operand (operands[1], E_V16HFmode)
14127 : || !nonimmediate_operand (operands[3], E_V16HFmode)
14128 : || !rtx_equal_p (x7, operands[3])
14129 : || !(
14130 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14131 : (TARGET_AVX512F) && (
14132 : #line 6858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14133 : (TARGET_AVX512F) &&
14134 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14135 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14136 : return -1;
14137 : return 4191; /* avx512vl_fmaddsub_v16hf_mask3_round */
14138 :
14139 : case E_V8HFmode:
14140 : if (pattern1612 (x2,
14141 : E_V8HFmode,
14142 : E_QImode) != 0)
14143 : return -1;
14144 : if (register_operand (operands[1], E_V8HFmode)
14145 : && register_operand (operands[3], E_V8HFmode)
14146 : && rtx_equal_p (x7, operands[1])
14147 : && (
14148 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14149 : (TARGET_AVX512F) && (
14150 : #line 6840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14151 : (TARGET_AVX512F) &&
14152 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14153 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14154 : return 4175; /* avx512fp16_fmaddsub_v8hf_mask_round */
14155 : if (!nonimmediate_operand (operands[1], E_V8HFmode)
14156 : || !nonimmediate_operand (operands[3], E_V8HFmode)
14157 : || !rtx_equal_p (x7, operands[3])
14158 : || !(
14159 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14160 : (TARGET_AVX512F) && (
14161 : #line 6858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14162 : (TARGET_AVX512F) &&
14163 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14164 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14165 : return -1;
14166 : return 4193; /* avx512fp16_fmaddsub_v8hf_mask3_round */
14167 :
14168 : case E_V16SFmode:
14169 : if (pattern1612 (x2,
14170 : E_V16SFmode,
14171 : E_HImode) != 0)
14172 : return -1;
14173 : if (register_operand (operands[1], E_V16SFmode)
14174 : && register_operand (operands[3], E_V16SFmode)
14175 : && rtx_equal_p (x7, operands[1])
14176 : &&
14177 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14178 : (TARGET_AVX512F))
14179 : return 4177; /* avx512f_fmaddsub_v16sf_mask_round */
14180 : if (!nonimmediate_operand (operands[1], E_V16SFmode)
14181 : || !nonimmediate_operand (operands[3], E_V16SFmode)
14182 : || !rtx_equal_p (x7, operands[3])
14183 : || !
14184 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14185 : (TARGET_AVX512F))
14186 : return -1;
14187 : return 4195; /* avx512f_fmaddsub_v16sf_mask3_round */
14188 :
14189 : case E_V8SFmode:
14190 : if (pattern1612 (x2,
14191 : E_V8SFmode,
14192 : E_QImode) != 0)
14193 : return -1;
14194 : if (register_operand (operands[1], E_V8SFmode)
14195 : && register_operand (operands[3], E_V8SFmode)
14196 : && rtx_equal_p (x7, operands[1])
14197 : && (
14198 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14199 : (TARGET_AVX512F) && (
14200 : #line 6840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14201 : (TARGET_AVX512F) &&
14202 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14203 : (TARGET_AVX512VL))))
14204 : return 4179; /* avx512vl_fmaddsub_v8sf_mask_round */
14205 : if (!nonimmediate_operand (operands[1], E_V8SFmode)
14206 : || !nonimmediate_operand (operands[3], E_V8SFmode)
14207 : || !rtx_equal_p (x7, operands[3])
14208 : || !(
14209 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14210 : (TARGET_AVX512F) && (
14211 : #line 6858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14212 : (TARGET_AVX512F) &&
14213 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14214 : (TARGET_AVX512VL))))
14215 : return -1;
14216 : return 4197; /* avx512vl_fmaddsub_v8sf_mask3_round */
14217 :
14218 : case E_V4SFmode:
14219 : if (pattern1612 (x2,
14220 : E_V4SFmode,
14221 : E_QImode) != 0)
14222 : return -1;
14223 : if (register_operand (operands[1], E_V4SFmode)
14224 : && register_operand (operands[3], E_V4SFmode)
14225 : && rtx_equal_p (x7, operands[1])
14226 : && (
14227 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14228 : (TARGET_AVX512F) && (
14229 : #line 6840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14230 : (TARGET_AVX512F) &&
14231 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14232 : (TARGET_AVX512VL))))
14233 : return 4181; /* avx512vl_fmaddsub_v4sf_mask_round */
14234 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
14235 : || !nonimmediate_operand (operands[3], E_V4SFmode)
14236 : || !rtx_equal_p (x7, operands[3])
14237 : || !(
14238 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14239 : (TARGET_AVX512F) && (
14240 : #line 6858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14241 : (TARGET_AVX512F) &&
14242 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14243 : (TARGET_AVX512VL))))
14244 : return -1;
14245 : return 4199; /* avx512vl_fmaddsub_v4sf_mask3_round */
14246 :
14247 : case E_V8DFmode:
14248 : if (pattern1612 (x2,
14249 : E_V8DFmode,
14250 : E_QImode) != 0)
14251 : return -1;
14252 : if (register_operand (operands[1], E_V8DFmode)
14253 : && register_operand (operands[3], E_V8DFmode)
14254 : && rtx_equal_p (x7, operands[1])
14255 : &&
14256 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14257 : (TARGET_AVX512F))
14258 : return 4183; /* avx512f_fmaddsub_v8df_mask_round */
14259 : if (!nonimmediate_operand (operands[1], E_V8DFmode)
14260 : || !nonimmediate_operand (operands[3], E_V8DFmode)
14261 : || !rtx_equal_p (x7, operands[3])
14262 : || !
14263 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14264 : (TARGET_AVX512F))
14265 : return -1;
14266 : return 4201; /* avx512f_fmaddsub_v8df_mask3_round */
14267 :
14268 : case E_V4DFmode:
14269 : if (pattern1612 (x2,
14270 : E_V4DFmode,
14271 : E_QImode) != 0)
14272 : return -1;
14273 : if (register_operand (operands[1], E_V4DFmode)
14274 : && register_operand (operands[3], E_V4DFmode)
14275 : && rtx_equal_p (x7, operands[1])
14276 : && (
14277 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14278 : (TARGET_AVX512F) && (
14279 : #line 6840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14280 : (TARGET_AVX512F) &&
14281 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14282 : (TARGET_AVX512VL))))
14283 : return 4185; /* avx512vl_fmaddsub_v4df_mask_round */
14284 : if (!nonimmediate_operand (operands[1], E_V4DFmode)
14285 : || !nonimmediate_operand (operands[3], E_V4DFmode)
14286 : || !rtx_equal_p (x7, operands[3])
14287 : || !(
14288 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14289 : (TARGET_AVX512F) && (
14290 : #line 6858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14291 : (TARGET_AVX512F) &&
14292 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14293 : (TARGET_AVX512VL))))
14294 : return -1;
14295 : return 4203; /* avx512vl_fmaddsub_v4df_mask3_round */
14296 :
14297 : case E_V2DFmode:
14298 : if (pattern1612 (x2,
14299 : E_V2DFmode,
14300 : E_QImode) != 0)
14301 : return -1;
14302 : if (register_operand (operands[1], E_V2DFmode)
14303 : && register_operand (operands[3], E_V2DFmode)
14304 : && rtx_equal_p (x7, operands[1])
14305 : && (
14306 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14307 : (TARGET_AVX512F) && (
14308 : #line 6840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14309 : (TARGET_AVX512F) &&
14310 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14311 : (TARGET_AVX512VL))))
14312 : return 4187; /* avx512vl_fmaddsub_v2df_mask_round */
14313 : if (!nonimmediate_operand (operands[1], E_V2DFmode)
14314 : || !nonimmediate_operand (operands[3], E_V2DFmode)
14315 : || !rtx_equal_p (x7, operands[3])
14316 : || !(
14317 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14318 : (TARGET_AVX512F) && (
14319 : #line 6858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14320 : (TARGET_AVX512F) &&
14321 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14322 : (TARGET_AVX512VL))))
14323 : return -1;
14324 : return 4205; /* avx512vl_fmaddsub_v2df_mask3_round */
14325 :
14326 : default:
14327 : return -1;
14328 : }
14329 :
14330 : default:
14331 : return -1;
14332 : }
14333 :
14334 : case NEG:
14335 : x9 = XEXP (x6, 0);
14336 : operands[3] = x9;
14337 : x7 = XEXP (x4, 1);
14338 : switch (GET_CODE (x7))
14339 : {
14340 : case CONST_INT:
14341 : case CONST_DOUBLE:
14342 : case CONST_VECTOR:
14343 : operands[4] = x7;
14344 : x8 = XEXP (x4, 2);
14345 : operands[5] = x8;
14346 : operands[6] = x3;
14347 : switch (GET_MODE (operands[0]))
14348 : {
14349 : case E_V32HFmode:
14350 : if (pattern1678 (x2,
14351 : E_SImode,
14352 : E_V32HFmode) != 0
14353 : || !(
14354 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14355 : (TARGET_AVX512F) && (
14356 : #line 6891 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14357 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V32HFmode == V16SFmode
14358 : || V32HFmode == V8DFmode
14359 : || V32HFmode == V8DImode
14360 : || V32HFmode == V16SImode
14361 : || V32HFmode == V32HFmode)) &&
14362 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14363 : (TARGET_AVX512FP16))))
14364 : return -1;
14365 : return 4213; /* fma_fmsubadd_v32hf_maskz_1_round */
14366 :
14367 : case E_V16SFmode:
14368 : if (pattern1678 (x2,
14369 : E_HImode,
14370 : E_V16SFmode) != 0
14371 : || !(
14372 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14373 : (TARGET_AVX512F) &&
14374 : #line 6891 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14375 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V16SFmode == V16SFmode
14376 : || V16SFmode == V8DFmode
14377 : || V16SFmode == V8DImode
14378 : || V16SFmode == V16SImode
14379 : || V16SFmode == V32HFmode))))
14380 : return -1;
14381 : return 4221; /* fma_fmsubadd_v16sf_maskz_1_round */
14382 :
14383 : case E_V8DFmode:
14384 : if (pattern1678 (x2,
14385 : E_QImode,
14386 : E_V8DFmode) != 0
14387 : || !(
14388 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14389 : (TARGET_AVX512F) &&
14390 : #line 6891 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14391 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V8DFmode == V16SFmode
14392 : || V8DFmode == V8DFmode
14393 : || V8DFmode == V8DImode
14394 : || V8DFmode == V16SImode
14395 : || V8DFmode == V32HFmode))))
14396 : return -1;
14397 : return 4229; /* fma_fmsubadd_v8df_maskz_1_round */
14398 :
14399 : default:
14400 : return -1;
14401 : }
14402 :
14403 : case REG:
14404 : case SUBREG:
14405 : case MEM:
14406 : x8 = XEXP (x4, 2);
14407 : operands[4] = x8;
14408 : operands[5] = x3;
14409 : switch (GET_MODE (operands[0]))
14410 : {
14411 : case E_V32HFmode:
14412 : if (pattern1613 (x2,
14413 : E_V32HFmode,
14414 : E_SImode) != 0)
14415 : return -1;
14416 : if (register_operand (operands[3], E_V32HFmode)
14417 : && rtx_equal_p (x7, operands[1])
14418 : && (
14419 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14420 : (TARGET_AVX512F) && (
14421 : #line 6911 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14422 : (TARGET_AVX512F) &&
14423 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14424 : (TARGET_AVX512FP16))))
14425 : return 4235; /* avx512bw_fmsubadd_v32hf_mask_round */
14426 : if (!nonimmediate_operand (operands[3], E_V32HFmode)
14427 : || !rtx_equal_p (x7, operands[3])
14428 : || !(
14429 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14430 : (TARGET_AVX512F) && (
14431 : #line 6930 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14432 : (TARGET_AVX512F) &&
14433 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14434 : (TARGET_AVX512FP16))))
14435 : return -1;
14436 : return 4253; /* avx512bw_fmsubadd_v32hf_mask3_round */
14437 :
14438 : case E_V16HFmode:
14439 : if (pattern1613 (x2,
14440 : E_V16HFmode,
14441 : E_HImode) != 0)
14442 : return -1;
14443 : if (register_operand (operands[3], E_V16HFmode)
14444 : && rtx_equal_p (x7, operands[1])
14445 : && (
14446 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14447 : (TARGET_AVX512F) && (
14448 : #line 6911 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14449 : (TARGET_AVX512F) &&
14450 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14451 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14452 : return 4237; /* avx512vl_fmsubadd_v16hf_mask_round */
14453 : if (!nonimmediate_operand (operands[3], E_V16HFmode)
14454 : || !rtx_equal_p (x7, operands[3])
14455 : || !(
14456 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14457 : (TARGET_AVX512F) && (
14458 : #line 6930 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14459 : (TARGET_AVX512F) &&
14460 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14461 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14462 : return -1;
14463 : return 4255; /* avx512vl_fmsubadd_v16hf_mask3_round */
14464 :
14465 : case E_V8HFmode:
14466 : if (pattern1613 (x2,
14467 : E_V8HFmode,
14468 : E_QImode) != 0)
14469 : return -1;
14470 : if (register_operand (operands[3], E_V8HFmode)
14471 : && rtx_equal_p (x7, operands[1])
14472 : && (
14473 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14474 : (TARGET_AVX512F) && (
14475 : #line 6911 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14476 : (TARGET_AVX512F) &&
14477 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14478 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14479 : return 4239; /* avx512fp16_fmsubadd_v8hf_mask_round */
14480 : if (!nonimmediate_operand (operands[3], E_V8HFmode)
14481 : || !rtx_equal_p (x7, operands[3])
14482 : || !(
14483 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14484 : (TARGET_AVX512F) && (
14485 : #line 6930 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14486 : (TARGET_AVX512F) &&
14487 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14488 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14489 : return -1;
14490 : return 4257; /* avx512fp16_fmsubadd_v8hf_mask3_round */
14491 :
14492 : case E_V16SFmode:
14493 : if (pattern1613 (x2,
14494 : E_V16SFmode,
14495 : E_HImode) != 0)
14496 : return -1;
14497 : if (register_operand (operands[3], E_V16SFmode)
14498 : && rtx_equal_p (x7, operands[1])
14499 : &&
14500 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14501 : (TARGET_AVX512F))
14502 : return 4241; /* avx512f_fmsubadd_v16sf_mask_round */
14503 : if (!nonimmediate_operand (operands[3], E_V16SFmode)
14504 : || !rtx_equal_p (x7, operands[3])
14505 : || !
14506 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14507 : (TARGET_AVX512F))
14508 : return -1;
14509 : return 4259; /* avx512f_fmsubadd_v16sf_mask3_round */
14510 :
14511 : case E_V8SFmode:
14512 : if (pattern1613 (x2,
14513 : E_V8SFmode,
14514 : E_QImode) != 0)
14515 : return -1;
14516 : if (register_operand (operands[3], E_V8SFmode)
14517 : && rtx_equal_p (x7, operands[1])
14518 : && (
14519 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14520 : (TARGET_AVX512F) && (
14521 : #line 6911 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14522 : (TARGET_AVX512F) &&
14523 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14524 : (TARGET_AVX512VL))))
14525 : return 4243; /* avx512vl_fmsubadd_v8sf_mask_round */
14526 : if (!nonimmediate_operand (operands[3], E_V8SFmode)
14527 : || !rtx_equal_p (x7, operands[3])
14528 : || !(
14529 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14530 : (TARGET_AVX512F) && (
14531 : #line 6930 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14532 : (TARGET_AVX512F) &&
14533 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14534 : (TARGET_AVX512VL))))
14535 : return -1;
14536 : return 4261; /* avx512vl_fmsubadd_v8sf_mask3_round */
14537 :
14538 : case E_V4SFmode:
14539 : if (pattern1613 (x2,
14540 : E_V4SFmode,
14541 : E_QImode) != 0)
14542 : return -1;
14543 : if (register_operand (operands[3], E_V4SFmode)
14544 : && rtx_equal_p (x7, operands[1])
14545 : && (
14546 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14547 : (TARGET_AVX512F) && (
14548 : #line 6911 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14549 : (TARGET_AVX512F) &&
14550 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14551 : (TARGET_AVX512VL))))
14552 : return 4245; /* avx512vl_fmsubadd_v4sf_mask_round */
14553 : if (!nonimmediate_operand (operands[3], E_V4SFmode)
14554 : || !rtx_equal_p (x7, operands[3])
14555 : || !(
14556 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14557 : (TARGET_AVX512F) && (
14558 : #line 6930 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14559 : (TARGET_AVX512F) &&
14560 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14561 : (TARGET_AVX512VL))))
14562 : return -1;
14563 : return 4263; /* avx512vl_fmsubadd_v4sf_mask3_round */
14564 :
14565 : case E_V8DFmode:
14566 : if (pattern1613 (x2,
14567 : E_V8DFmode,
14568 : E_QImode) != 0)
14569 : return -1;
14570 : if (register_operand (operands[3], E_V8DFmode)
14571 : && rtx_equal_p (x7, operands[1])
14572 : &&
14573 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14574 : (TARGET_AVX512F))
14575 : return 4247; /* avx512f_fmsubadd_v8df_mask_round */
14576 : if (!nonimmediate_operand (operands[3], E_V8DFmode)
14577 : || !rtx_equal_p (x7, operands[3])
14578 : || !
14579 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14580 : (TARGET_AVX512F))
14581 : return -1;
14582 : return 4265; /* avx512f_fmsubadd_v8df_mask3_round */
14583 :
14584 : case E_V4DFmode:
14585 : if (pattern1613 (x2,
14586 : E_V4DFmode,
14587 : E_QImode) != 0)
14588 : return -1;
14589 : if (register_operand (operands[3], E_V4DFmode)
14590 : && rtx_equal_p (x7, operands[1])
14591 : && (
14592 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14593 : (TARGET_AVX512F) && (
14594 : #line 6911 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14595 : (TARGET_AVX512F) &&
14596 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14597 : (TARGET_AVX512VL))))
14598 : return 4249; /* avx512vl_fmsubadd_v4df_mask_round */
14599 : if (!nonimmediate_operand (operands[3], E_V4DFmode)
14600 : || !rtx_equal_p (x7, operands[3])
14601 : || !(
14602 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14603 : (TARGET_AVX512F) && (
14604 : #line 6930 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14605 : (TARGET_AVX512F) &&
14606 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14607 : (TARGET_AVX512VL))))
14608 : return -1;
14609 : return 4267; /* avx512vl_fmsubadd_v4df_mask3_round */
14610 :
14611 : case E_V2DFmode:
14612 : if (pattern1613 (x2,
14613 : E_V2DFmode,
14614 : E_QImode) != 0)
14615 : return -1;
14616 : if (register_operand (operands[3], E_V2DFmode)
14617 : && rtx_equal_p (x7, operands[1])
14618 : && (
14619 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14620 : (TARGET_AVX512F) && (
14621 : #line 6911 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14622 : (TARGET_AVX512F) &&
14623 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14624 : (TARGET_AVX512VL))))
14625 : return 4251; /* avx512vl_fmsubadd_v2df_mask_round */
14626 : if (!nonimmediate_operand (operands[3], E_V2DFmode)
14627 : || !rtx_equal_p (x7, operands[3])
14628 : || !(
14629 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14630 : (TARGET_AVX512F) && (
14631 : #line 6930 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14632 : (TARGET_AVX512F) &&
14633 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14634 : (TARGET_AVX512VL))))
14635 : return -1;
14636 : return 4269; /* avx512vl_fmsubadd_v2df_mask3_round */
14637 :
14638 : default:
14639 : return -1;
14640 : }
14641 :
14642 : default:
14643 : return -1;
14644 : }
14645 :
14646 : default:
14647 : return -1;
14648 : }
14649 : }
14650 :
14651 : int
14652 : recog_238 (rtx x1 ATTRIBUTE_UNUSED,
14653 : rtx_insn *insn ATTRIBUTE_UNUSED,
14654 : int *pnum_clobbers ATTRIBUTE_UNUSED)
14655 : {
14656 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
14657 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
14658 : rtx x10;
14659 : int res ATTRIBUTE_UNUSED;
14660 : if (pnum_clobbers == NULL)
14661 : return -1;
14662 : x2 = XEXP (x1, 0);
14663 : if (GET_CODE (x2) != MEM)
14664 : return -1;
14665 : operands[5] = x2;
14666 : x3 = XEXP (x2, 0);
14667 : if (GET_CODE (x3) != UNSPEC
14668 : || XVECLEN (x3, 0) != 4
14669 : || XINT (x3, 1) != 155)
14670 : return -1;
14671 : x4 = XVECEXP (x3, 0, 0);
14672 : operands[0] = x4;
14673 : x5 = XVECEXP (x3, 0, 1);
14674 : operands[2] = x5;
14675 : x6 = XVECEXP (x3, 0, 2);
14676 : operands[4] = x6;
14677 : if (!const1248_operand (operands[4], E_SImode))
14678 : return -1;
14679 : x7 = XVECEXP (x3, 0, 3);
14680 : operands[6] = x7;
14681 : x8 = XEXP (x1, 1);
14682 : x9 = XVECEXP (x8, 0, 1);
14683 : operands[3] = x9;
14684 : x10 = XVECEXP (x8, 0, 0);
14685 : if (!rtx_equal_p (x10, operands[6]))
14686 : return -1;
14687 : switch (GET_MODE (operands[5]))
14688 : {
14689 : case E_V16SImode:
14690 : if (!vsib_mem_operator (operands[5], E_V16SImode)
14691 : || GET_MODE (x8) != E_V16SImode)
14692 : return -1;
14693 : switch (GET_MODE (x3))
14694 : {
14695 : case E_SImode:
14696 : switch (pattern1731 (
14697 : E_SImode))
14698 : {
14699 : case 0:
14700 : if (!(
14701 : #line 31014 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14702 : (TARGET_AVX512F) &&
14703 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14704 : (Pmode == SImode)))
14705 : return -1;
14706 : *pnum_clobbers = 1;
14707 : return 9986; /* *avx512f_scattersiv16si */
14708 :
14709 : case 1:
14710 : if (!(
14711 : #line 31054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14712 : (TARGET_AVX512F) &&
14713 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14714 : (Pmode == SImode)))
14715 : return -1;
14716 : *pnum_clobbers = 1;
14717 : return 10010; /* *avx512f_scatterdiv16si */
14718 :
14719 : default:
14720 : return -1;
14721 : }
14722 :
14723 : case E_DImode:
14724 : switch (pattern1731 (
14725 : E_DImode))
14726 : {
14727 : case 0:
14728 : if (!(
14729 : #line 31014 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14730 : (TARGET_AVX512F) &&
14731 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14732 : (Pmode == DImode)))
14733 : return -1;
14734 : *pnum_clobbers = 1;
14735 : return 9998; /* *avx512f_scattersiv16si */
14736 :
14737 : case 1:
14738 : if (!(
14739 : #line 31054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14740 : (TARGET_AVX512F) &&
14741 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14742 : (Pmode == DImode)))
14743 : return -1;
14744 : *pnum_clobbers = 1;
14745 : return 10022; /* *avx512f_scatterdiv16si */
14746 :
14747 : default:
14748 : return -1;
14749 : }
14750 :
14751 : default:
14752 : return -1;
14753 : }
14754 :
14755 : case E_V16SFmode:
14756 : if (!vsib_mem_operator (operands[5], E_V16SFmode)
14757 : || GET_MODE (x8) != E_V16SFmode)
14758 : return -1;
14759 : switch (GET_MODE (x3))
14760 : {
14761 : case E_SImode:
14762 : switch (pattern1732 (
14763 : E_SImode))
14764 : {
14765 : case 0:
14766 : if (!(
14767 : #line 31014 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14768 : (TARGET_AVX512F) &&
14769 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14770 : (Pmode == SImode)))
14771 : return -1;
14772 : *pnum_clobbers = 1;
14773 : return 9987; /* *avx512f_scattersiv16sf */
14774 :
14775 : case 1:
14776 : if (!(
14777 : #line 31054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14778 : (TARGET_AVX512F) &&
14779 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14780 : (Pmode == SImode)))
14781 : return -1;
14782 : *pnum_clobbers = 1;
14783 : return 10011; /* *avx512f_scatterdiv16sf */
14784 :
14785 : default:
14786 : return -1;
14787 : }
14788 :
14789 : case E_DImode:
14790 : switch (pattern1732 (
14791 : E_DImode))
14792 : {
14793 : case 0:
14794 : if (!(
14795 : #line 31014 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14796 : (TARGET_AVX512F) &&
14797 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14798 : (Pmode == DImode)))
14799 : return -1;
14800 : *pnum_clobbers = 1;
14801 : return 9999; /* *avx512f_scattersiv16sf */
14802 :
14803 : case 1:
14804 : if (!(
14805 : #line 31054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14806 : (TARGET_AVX512F) &&
14807 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14808 : (Pmode == DImode)))
14809 : return -1;
14810 : *pnum_clobbers = 1;
14811 : return 10023; /* *avx512f_scatterdiv16sf */
14812 :
14813 : default:
14814 : return -1;
14815 : }
14816 :
14817 : default:
14818 : return -1;
14819 : }
14820 :
14821 : case E_V8DImode:
14822 : switch (pattern1629 (x1,
14823 : E_V8DImode))
14824 : {
14825 : case 0:
14826 : if (!(
14827 : #line 31014 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14828 : (TARGET_AVX512F) &&
14829 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14830 : (Pmode == SImode)))
14831 : return -1;
14832 : *pnum_clobbers = 1;
14833 : return 9988; /* *avx512f_scattersiv8di */
14834 :
14835 : case 1:
14836 : if (!(
14837 : #line 31054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14838 : (TARGET_AVX512F) &&
14839 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14840 : (Pmode == SImode)))
14841 : return -1;
14842 : *pnum_clobbers = 1;
14843 : return 10012; /* *avx512f_scatterdiv8di */
14844 :
14845 : case 2:
14846 : if (!(
14847 : #line 31014 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14848 : (TARGET_AVX512F) &&
14849 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14850 : (Pmode == DImode)))
14851 : return -1;
14852 : *pnum_clobbers = 1;
14853 : return 10000; /* *avx512f_scattersiv8di */
14854 :
14855 : case 3:
14856 : if (!(
14857 : #line 31054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14858 : (TARGET_AVX512F) &&
14859 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14860 : (Pmode == DImode)))
14861 : return -1;
14862 : *pnum_clobbers = 1;
14863 : return 10024; /* *avx512f_scatterdiv8di */
14864 :
14865 : default:
14866 : return -1;
14867 : }
14868 :
14869 : case E_V8DFmode:
14870 : switch (pattern1629 (x1,
14871 : E_V8DFmode))
14872 : {
14873 : case 0:
14874 : if (!(
14875 : #line 31014 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14876 : (TARGET_AVX512F) &&
14877 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14878 : (Pmode == SImode)))
14879 : return -1;
14880 : *pnum_clobbers = 1;
14881 : return 9989; /* *avx512f_scattersiv8df */
14882 :
14883 : case 1:
14884 : if (!(
14885 : #line 31054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14886 : (TARGET_AVX512F) &&
14887 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14888 : (Pmode == SImode)))
14889 : return -1;
14890 : *pnum_clobbers = 1;
14891 : return 10013; /* *avx512f_scatterdiv8df */
14892 :
14893 : case 2:
14894 : if (!(
14895 : #line 31014 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14896 : (TARGET_AVX512F) &&
14897 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14898 : (Pmode == DImode)))
14899 : return -1;
14900 : *pnum_clobbers = 1;
14901 : return 10001; /* *avx512f_scattersiv8df */
14902 :
14903 : case 3:
14904 : if (!(
14905 : #line 31054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14906 : (TARGET_AVX512F) &&
14907 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14908 : (Pmode == DImode)))
14909 : return -1;
14910 : *pnum_clobbers = 1;
14911 : return 10025; /* *avx512f_scatterdiv8df */
14912 :
14913 : default:
14914 : return -1;
14915 : }
14916 :
14917 : case E_V8SImode:
14918 : switch (pattern1630 (x1,
14919 : E_V8SImode))
14920 : {
14921 : case 0:
14922 : switch (pattern1770 (
14923 : E_SImode))
14924 : {
14925 : case 0:
14926 : if (!(
14927 : #line 31014 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14928 : (TARGET_AVX512F) && ((((
14929 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14930 : (TARGET_AVX512VL) &&
14931 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14932 : (Pmode == SImode)) &&
14933 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14934 : (Pmode == SImode)) &&
14935 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14936 : (TARGET_AVX512VL)) &&
14937 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14938 : (TARGET_AVX512VL))))
14939 : return -1;
14940 : *pnum_clobbers = 1;
14941 : return 9990; /* *avx512f_scattersiv8si */
14942 :
14943 : case 1:
14944 : if (!(
14945 : #line 31054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14946 : (TARGET_AVX512F) && (((
14947 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14948 : (TARGET_AVX512VL) &&
14949 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14950 : (Pmode == SImode)) &&
14951 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14952 : (Pmode == SImode)) &&
14953 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14954 : (TARGET_AVX512VL))))
14955 : return -1;
14956 : *pnum_clobbers = 1;
14957 : return 10014; /* *avx512f_scatterdiv8si */
14958 :
14959 : default:
14960 : return -1;
14961 : }
14962 :
14963 : case 1:
14964 : switch (pattern1770 (
14965 : E_DImode))
14966 : {
14967 : case 0:
14968 : if (!(
14969 : #line 31014 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14970 : (TARGET_AVX512F) && ((((
14971 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14972 : (TARGET_AVX512VL) &&
14973 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14974 : (Pmode == DImode)) &&
14975 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14976 : (Pmode == DImode)) &&
14977 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14978 : (TARGET_AVX512VL)) &&
14979 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14980 : (TARGET_AVX512VL))))
14981 : return -1;
14982 : *pnum_clobbers = 1;
14983 : return 10002; /* *avx512f_scattersiv8si */
14984 :
14985 : case 1:
14986 : if (!(
14987 : #line 31054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14988 : (TARGET_AVX512F) && (((
14989 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14990 : (TARGET_AVX512VL) &&
14991 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14992 : (Pmode == DImode)) &&
14993 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14994 : (Pmode == DImode)) &&
14995 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14996 : (TARGET_AVX512VL))))
14997 : return -1;
14998 : *pnum_clobbers = 1;
14999 : return 10026; /* *avx512f_scatterdiv8si */
15000 :
15001 : default:
15002 : return -1;
15003 : }
15004 :
15005 : default:
15006 : return -1;
15007 : }
15008 :
15009 : case E_V8SFmode:
15010 : switch (pattern1630 (x1,
15011 : E_V8SFmode))
15012 : {
15013 : case 0:
15014 : switch (pattern1771 (
15015 : E_SImode))
15016 : {
15017 : case 0:
15018 : if (!(
15019 : #line 31014 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15020 : (TARGET_AVX512F) && ((((
15021 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15022 : (TARGET_AVX512VL) &&
15023 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15024 : (Pmode == SImode)) &&
15025 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15026 : (Pmode == SImode)) &&
15027 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15028 : (TARGET_AVX512VL)) &&
15029 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15030 : (TARGET_AVX512VL))))
15031 : return -1;
15032 : *pnum_clobbers = 1;
15033 : return 9991; /* *avx512f_scattersiv8sf */
15034 :
15035 : case 1:
15036 : if (!(
15037 : #line 31054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15038 : (TARGET_AVX512F) && (((
15039 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15040 : (TARGET_AVX512VL) &&
15041 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15042 : (Pmode == SImode)) &&
15043 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15044 : (Pmode == SImode)) &&
15045 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15046 : (TARGET_AVX512VL))))
15047 : return -1;
15048 : *pnum_clobbers = 1;
15049 : return 10015; /* *avx512f_scatterdiv8sf */
15050 :
15051 : default:
15052 : return -1;
15053 : }
15054 :
15055 : case 1:
15056 : switch (pattern1771 (
15057 : E_DImode))
15058 : {
15059 : case 0:
15060 : if (!(
15061 : #line 31014 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15062 : (TARGET_AVX512F) && ((((
15063 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15064 : (TARGET_AVX512VL) &&
15065 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15066 : (Pmode == DImode)) &&
15067 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15068 : (Pmode == DImode)) &&
15069 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15070 : (TARGET_AVX512VL)) &&
15071 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15072 : (TARGET_AVX512VL))))
15073 : return -1;
15074 : *pnum_clobbers = 1;
15075 : return 10003; /* *avx512f_scattersiv8sf */
15076 :
15077 : case 1:
15078 : if (!(
15079 : #line 31054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15080 : (TARGET_AVX512F) && (((
15081 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15082 : (TARGET_AVX512VL) &&
15083 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15084 : (Pmode == DImode)) &&
15085 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15086 : (Pmode == DImode)) &&
15087 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15088 : (TARGET_AVX512VL))))
15089 : return -1;
15090 : *pnum_clobbers = 1;
15091 : return 10027; /* *avx512f_scatterdiv8sf */
15092 :
15093 : default:
15094 : return -1;
15095 : }
15096 :
15097 : default:
15098 : return -1;
15099 : }
15100 :
15101 : case E_V4DImode:
15102 : switch (pattern1632 (x1,
15103 : E_V4DImode))
15104 : {
15105 : case 0:
15106 : if (!(
15107 : #line 31014 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15108 : (TARGET_AVX512F) && ((((
15109 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15110 : (TARGET_AVX512VL) &&
15111 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15112 : (Pmode == SImode)) &&
15113 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15114 : (Pmode == SImode)) &&
15115 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15116 : (TARGET_AVX512VL)) &&
15117 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15118 : (TARGET_AVX512VL))))
15119 : return -1;
15120 : *pnum_clobbers = 1;
15121 : return 9992; /* *avx512f_scattersiv4di */
15122 :
15123 : case 1:
15124 : if (!(
15125 : #line 31054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15126 : (TARGET_AVX512F) && (((
15127 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15128 : (TARGET_AVX512VL) &&
15129 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15130 : (Pmode == SImode)) &&
15131 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15132 : (Pmode == SImode)) &&
15133 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15134 : (TARGET_AVX512VL))))
15135 : return -1;
15136 : *pnum_clobbers = 1;
15137 : return 10016; /* *avx512f_scatterdiv4di */
15138 :
15139 : case 2:
15140 : if (!(
15141 : #line 31014 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15142 : (TARGET_AVX512F) && ((((
15143 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15144 : (TARGET_AVX512VL) &&
15145 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15146 : (Pmode == DImode)) &&
15147 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15148 : (Pmode == DImode)) &&
15149 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15150 : (TARGET_AVX512VL)) &&
15151 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15152 : (TARGET_AVX512VL))))
15153 : return -1;
15154 : *pnum_clobbers = 1;
15155 : return 10004; /* *avx512f_scattersiv4di */
15156 :
15157 : case 3:
15158 : if (!(
15159 : #line 31054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15160 : (TARGET_AVX512F) && (((
15161 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15162 : (TARGET_AVX512VL) &&
15163 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15164 : (Pmode == DImode)) &&
15165 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15166 : (Pmode == DImode)) &&
15167 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15168 : (TARGET_AVX512VL))))
15169 : return -1;
15170 : *pnum_clobbers = 1;
15171 : return 10028; /* *avx512f_scatterdiv4di */
15172 :
15173 : default:
15174 : return -1;
15175 : }
15176 :
15177 : case E_V4DFmode:
15178 : switch (pattern1632 (x1,
15179 : E_V4DFmode))
15180 : {
15181 : case 0:
15182 : if (!(
15183 : #line 31014 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15184 : (TARGET_AVX512F) && ((((
15185 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15186 : (TARGET_AVX512VL) &&
15187 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15188 : (Pmode == SImode)) &&
15189 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15190 : (Pmode == SImode)) &&
15191 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15192 : (TARGET_AVX512VL)) &&
15193 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15194 : (TARGET_AVX512VL))))
15195 : return -1;
15196 : *pnum_clobbers = 1;
15197 : return 9993; /* *avx512f_scattersiv4df */
15198 :
15199 : case 1:
15200 : if (!(
15201 : #line 31054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15202 : (TARGET_AVX512F) && (((
15203 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15204 : (TARGET_AVX512VL) &&
15205 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15206 : (Pmode == SImode)) &&
15207 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15208 : (Pmode == SImode)) &&
15209 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15210 : (TARGET_AVX512VL))))
15211 : return -1;
15212 : *pnum_clobbers = 1;
15213 : return 10017; /* *avx512f_scatterdiv4df */
15214 :
15215 : case 2:
15216 : if (!(
15217 : #line 31014 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15218 : (TARGET_AVX512F) && ((((
15219 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15220 : (TARGET_AVX512VL) &&
15221 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15222 : (Pmode == DImode)) &&
15223 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15224 : (Pmode == DImode)) &&
15225 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15226 : (TARGET_AVX512VL)) &&
15227 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15228 : (TARGET_AVX512VL))))
15229 : return -1;
15230 : *pnum_clobbers = 1;
15231 : return 10005; /* *avx512f_scattersiv4df */
15232 :
15233 : case 3:
15234 : if (!(
15235 : #line 31054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15236 : (TARGET_AVX512F) && (((
15237 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15238 : (TARGET_AVX512VL) &&
15239 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15240 : (Pmode == DImode)) &&
15241 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15242 : (Pmode == DImode)) &&
15243 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15244 : (TARGET_AVX512VL))))
15245 : return -1;
15246 : *pnum_clobbers = 1;
15247 : return 10029; /* *avx512f_scatterdiv4df */
15248 :
15249 : default:
15250 : return -1;
15251 : }
15252 :
15253 : case E_V4SImode:
15254 : switch (pattern1634 (x1,
15255 : E_V4SImode))
15256 : {
15257 : case 0:
15258 : if (!(
15259 : #line 31014 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15260 : (TARGET_AVX512F) && ((((
15261 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15262 : (TARGET_AVX512VL) &&
15263 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15264 : (Pmode == SImode)) &&
15265 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15266 : (Pmode == SImode)) &&
15267 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15268 : (TARGET_AVX512VL)) &&
15269 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15270 : (TARGET_AVX512VL))))
15271 : return -1;
15272 : *pnum_clobbers = 1;
15273 : return 9994; /* *avx512f_scattersiv4si */
15274 :
15275 : case 1:
15276 : if (!(
15277 : #line 31054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15278 : (TARGET_AVX512F) && (((
15279 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15280 : (TARGET_AVX512VL) &&
15281 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15282 : (Pmode == SImode)) &&
15283 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15284 : (Pmode == SImode)) &&
15285 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15286 : (TARGET_AVX512VL))))
15287 : return -1;
15288 : *pnum_clobbers = 1;
15289 : return 10018; /* *avx512f_scatterdiv4si */
15290 :
15291 : case 2:
15292 : if (!(
15293 : #line 31014 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15294 : (TARGET_AVX512F) && ((((
15295 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15296 : (TARGET_AVX512VL) &&
15297 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15298 : (Pmode == DImode)) &&
15299 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15300 : (Pmode == DImode)) &&
15301 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15302 : (TARGET_AVX512VL)) &&
15303 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15304 : (TARGET_AVX512VL))))
15305 : return -1;
15306 : *pnum_clobbers = 1;
15307 : return 10006; /* *avx512f_scattersiv4si */
15308 :
15309 : case 3:
15310 : if (!(
15311 : #line 31054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15312 : (TARGET_AVX512F) && (((
15313 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15314 : (TARGET_AVX512VL) &&
15315 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15316 : (Pmode == DImode)) &&
15317 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15318 : (Pmode == DImode)) &&
15319 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15320 : (TARGET_AVX512VL))))
15321 : return -1;
15322 : *pnum_clobbers = 1;
15323 : return 10030; /* *avx512f_scatterdiv4si */
15324 :
15325 : default:
15326 : return -1;
15327 : }
15328 :
15329 : case E_V4SFmode:
15330 : switch (pattern1634 (x1,
15331 : E_V4SFmode))
15332 : {
15333 : case 0:
15334 : if (!(
15335 : #line 31014 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15336 : (TARGET_AVX512F) && ((((
15337 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15338 : (TARGET_AVX512VL) &&
15339 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15340 : (Pmode == SImode)) &&
15341 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15342 : (Pmode == SImode)) &&
15343 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15344 : (TARGET_AVX512VL)) &&
15345 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15346 : (TARGET_AVX512VL))))
15347 : return -1;
15348 : *pnum_clobbers = 1;
15349 : return 9995; /* *avx512f_scattersiv4sf */
15350 :
15351 : case 1:
15352 : if (!(
15353 : #line 31054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15354 : (TARGET_AVX512F) && (((
15355 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15356 : (TARGET_AVX512VL) &&
15357 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15358 : (Pmode == SImode)) &&
15359 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15360 : (Pmode == SImode)) &&
15361 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15362 : (TARGET_AVX512VL))))
15363 : return -1;
15364 : *pnum_clobbers = 1;
15365 : return 10019; /* *avx512f_scatterdiv4sf */
15366 :
15367 : case 2:
15368 : if (!(
15369 : #line 31014 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15370 : (TARGET_AVX512F) && ((((
15371 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15372 : (TARGET_AVX512VL) &&
15373 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15374 : (Pmode == DImode)) &&
15375 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15376 : (Pmode == DImode)) &&
15377 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15378 : (TARGET_AVX512VL)) &&
15379 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15380 : (TARGET_AVX512VL))))
15381 : return -1;
15382 : *pnum_clobbers = 1;
15383 : return 10007; /* *avx512f_scattersiv4sf */
15384 :
15385 : case 3:
15386 : if (!(
15387 : #line 31054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15388 : (TARGET_AVX512F) && (((
15389 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15390 : (TARGET_AVX512VL) &&
15391 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15392 : (Pmode == DImode)) &&
15393 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15394 : (Pmode == DImode)) &&
15395 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15396 : (TARGET_AVX512VL))))
15397 : return -1;
15398 : *pnum_clobbers = 1;
15399 : return 10031; /* *avx512f_scatterdiv4sf */
15400 :
15401 : default:
15402 : return -1;
15403 : }
15404 :
15405 : case E_V2DImode:
15406 : switch (pattern1634 (x1,
15407 : E_V2DImode))
15408 : {
15409 : case 0:
15410 : if (!(
15411 : #line 31014 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15412 : (TARGET_AVX512F) && ((((
15413 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15414 : (TARGET_AVX512VL) &&
15415 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15416 : (Pmode == SImode)) &&
15417 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15418 : (Pmode == SImode)) &&
15419 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15420 : (TARGET_AVX512VL)) &&
15421 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15422 : (TARGET_AVX512VL))))
15423 : return -1;
15424 : *pnum_clobbers = 1;
15425 : return 9996; /* *avx512f_scattersiv2di */
15426 :
15427 : case 1:
15428 : if (!(
15429 : #line 31054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15430 : (TARGET_AVX512F) && (((
15431 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15432 : (TARGET_AVX512VL) &&
15433 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15434 : (Pmode == SImode)) &&
15435 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15436 : (Pmode == SImode)) &&
15437 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15438 : (TARGET_AVX512VL))))
15439 : return -1;
15440 : *pnum_clobbers = 1;
15441 : return 10020; /* *avx512f_scatterdiv2di */
15442 :
15443 : case 2:
15444 : if (!(
15445 : #line 31014 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15446 : (TARGET_AVX512F) && ((((
15447 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15448 : (TARGET_AVX512VL) &&
15449 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15450 : (Pmode == DImode)) &&
15451 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15452 : (Pmode == DImode)) &&
15453 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15454 : (TARGET_AVX512VL)) &&
15455 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15456 : (TARGET_AVX512VL))))
15457 : return -1;
15458 : *pnum_clobbers = 1;
15459 : return 10008; /* *avx512f_scattersiv2di */
15460 :
15461 : case 3:
15462 : if (!(
15463 : #line 31054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15464 : (TARGET_AVX512F) && (((
15465 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15466 : (TARGET_AVX512VL) &&
15467 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15468 : (Pmode == DImode)) &&
15469 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15470 : (Pmode == DImode)) &&
15471 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15472 : (TARGET_AVX512VL))))
15473 : return -1;
15474 : *pnum_clobbers = 1;
15475 : return 10032; /* *avx512f_scatterdiv2di */
15476 :
15477 : default:
15478 : return -1;
15479 : }
15480 :
15481 : case E_V2DFmode:
15482 : switch (pattern1634 (x1,
15483 : E_V2DFmode))
15484 : {
15485 : case 0:
15486 : if (!(
15487 : #line 31014 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15488 : (TARGET_AVX512F) && ((((
15489 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15490 : (TARGET_AVX512VL) &&
15491 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15492 : (Pmode == SImode)) &&
15493 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15494 : (Pmode == SImode)) &&
15495 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15496 : (TARGET_AVX512VL)) &&
15497 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15498 : (TARGET_AVX512VL))))
15499 : return -1;
15500 : *pnum_clobbers = 1;
15501 : return 9997; /* *avx512f_scattersiv2df */
15502 :
15503 : case 1:
15504 : if (!(
15505 : #line 31054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15506 : (TARGET_AVX512F) && (((
15507 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15508 : (TARGET_AVX512VL) &&
15509 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15510 : (Pmode == SImode)) &&
15511 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15512 : (Pmode == SImode)) &&
15513 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15514 : (TARGET_AVX512VL))))
15515 : return -1;
15516 : *pnum_clobbers = 1;
15517 : return 10021; /* *avx512f_scatterdiv2df */
15518 :
15519 : case 2:
15520 : if (!(
15521 : #line 31014 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15522 : (TARGET_AVX512F) && ((((
15523 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15524 : (TARGET_AVX512VL) &&
15525 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15526 : (Pmode == DImode)) &&
15527 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15528 : (Pmode == DImode)) &&
15529 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15530 : (TARGET_AVX512VL)) &&
15531 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15532 : (TARGET_AVX512VL))))
15533 : return -1;
15534 : *pnum_clobbers = 1;
15535 : return 10009; /* *avx512f_scattersiv2df */
15536 :
15537 : case 3:
15538 : if (!(
15539 : #line 31054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15540 : (TARGET_AVX512F) && (((
15541 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15542 : (TARGET_AVX512VL) &&
15543 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15544 : (Pmode == DImode)) &&
15545 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15546 : (Pmode == DImode)) &&
15547 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15548 : (TARGET_AVX512VL))))
15549 : return -1;
15550 : *pnum_clobbers = 1;
15551 : return 10033; /* *avx512f_scatterdiv2df */
15552 :
15553 : default:
15554 : return -1;
15555 : }
15556 :
15557 : default:
15558 : return -1;
15559 : }
15560 : }
15561 :
15562 : int
15563 : recog_257 (rtx x1 ATTRIBUTE_UNUSED,
15564 : rtx_insn *insn ATTRIBUTE_UNUSED,
15565 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15566 : {
15567 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15568 : rtx x2, x3, x4, x5, x6;
15569 : int res ATTRIBUTE_UNUSED;
15570 : x2 = XEXP (x1, 0);
15571 : operands[0] = x2;
15572 : x3 = XEXP (x1, 1);
15573 : x4 = XVECEXP (x3, 0, 0);
15574 : operands[1] = x4;
15575 : x5 = XVECEXP (x3, 0, 1);
15576 : operands[2] = x5;
15577 : x6 = XVECEXP (x3, 0, 2);
15578 : operands[3] = x6;
15579 : switch (GET_MODE (operands[0]))
15580 : {
15581 : case E_V16SImode:
15582 : if (pattern925 (x3,
15583 : E_HImode,
15584 : E_V16SImode) != 0
15585 : || !
15586 : #line 31069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15587 : (TARGET_AVX512F))
15588 : return -1;
15589 : return 10034; /* avx512f_compressv16si_mask */
15590 :
15591 : case E_V16SFmode:
15592 : if (pattern925 (x3,
15593 : E_HImode,
15594 : E_V16SFmode) != 0
15595 : || !
15596 : #line 31069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15597 : (TARGET_AVX512F))
15598 : return -1;
15599 : return 10035; /* avx512f_compressv16sf_mask */
15600 :
15601 : case E_V8DImode:
15602 : if (pattern925 (x3,
15603 : E_QImode,
15604 : E_V8DImode) != 0
15605 : || !
15606 : #line 31069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15607 : (TARGET_AVX512F))
15608 : return -1;
15609 : return 10036; /* avx512f_compressv8di_mask */
15610 :
15611 : case E_V8DFmode:
15612 : if (pattern925 (x3,
15613 : E_QImode,
15614 : E_V8DFmode) != 0
15615 : || !
15616 : #line 31069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15617 : (TARGET_AVX512F))
15618 : return -1;
15619 : return 10037; /* avx512f_compressv8df_mask */
15620 :
15621 : case E_V8SImode:
15622 : if (pattern925 (x3,
15623 : E_QImode,
15624 : E_V8SImode) != 0
15625 : || !(
15626 : #line 31069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15627 : (TARGET_AVX512F) &&
15628 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15629 : (TARGET_AVX512VL)))
15630 : return -1;
15631 : return 10038; /* avx512vl_compressv8si_mask */
15632 :
15633 : case E_V8SFmode:
15634 : if (pattern925 (x3,
15635 : E_QImode,
15636 : E_V8SFmode) != 0
15637 : || !(
15638 : #line 31069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15639 : (TARGET_AVX512F) &&
15640 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15641 : (TARGET_AVX512VL)))
15642 : return -1;
15643 : return 10039; /* avx512vl_compressv8sf_mask */
15644 :
15645 : case E_V4DImode:
15646 : if (pattern925 (x3,
15647 : E_QImode,
15648 : E_V4DImode) != 0
15649 : || !(
15650 : #line 31069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15651 : (TARGET_AVX512F) &&
15652 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15653 : (TARGET_AVX512VL)))
15654 : return -1;
15655 : return 10040; /* avx512vl_compressv4di_mask */
15656 :
15657 : case E_V4DFmode:
15658 : if (pattern925 (x3,
15659 : E_QImode,
15660 : E_V4DFmode) != 0
15661 : || !(
15662 : #line 31069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15663 : (TARGET_AVX512F) &&
15664 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15665 : (TARGET_AVX512VL)))
15666 : return -1;
15667 : return 10041; /* avx512vl_compressv4df_mask */
15668 :
15669 : case E_V4SImode:
15670 : if (pattern925 (x3,
15671 : E_QImode,
15672 : E_V4SImode) != 0
15673 : || !(
15674 : #line 31069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15675 : (TARGET_AVX512F) &&
15676 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15677 : (TARGET_AVX512VL)))
15678 : return -1;
15679 : return 10042; /* avx512vl_compressv4si_mask */
15680 :
15681 : case E_V4SFmode:
15682 : if (pattern925 (x3,
15683 : E_QImode,
15684 : E_V4SFmode) != 0
15685 : || !(
15686 : #line 31069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15687 : (TARGET_AVX512F) &&
15688 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15689 : (TARGET_AVX512VL)))
15690 : return -1;
15691 : return 10043; /* avx512vl_compressv4sf_mask */
15692 :
15693 : case E_V2DImode:
15694 : if (pattern925 (x3,
15695 : E_QImode,
15696 : E_V2DImode) != 0
15697 : || !(
15698 : #line 31069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15699 : (TARGET_AVX512F) &&
15700 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15701 : (TARGET_AVX512VL)))
15702 : return -1;
15703 : return 10044; /* avx512vl_compressv2di_mask */
15704 :
15705 : case E_V2DFmode:
15706 : if (pattern925 (x3,
15707 : E_QImode,
15708 : E_V2DFmode) != 0
15709 : || !(
15710 : #line 31069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15711 : (TARGET_AVX512F) &&
15712 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15713 : (TARGET_AVX512VL)))
15714 : return -1;
15715 : return 10045; /* avx512vl_compressv2df_mask */
15716 :
15717 : case E_V64QImode:
15718 : if (pattern925 (x3,
15719 : E_DImode,
15720 : E_V64QImode) != 0
15721 : || !
15722 : #line 31083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15723 : (TARGET_AVX512VBMI2))
15724 : return -1;
15725 : return 10046; /* compressv64qi_mask */
15726 :
15727 : case E_V16QImode:
15728 : if (pattern925 (x3,
15729 : E_HImode,
15730 : E_V16QImode) != 0
15731 : || !(
15732 : #line 31083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15733 : (TARGET_AVX512VBMI2) &&
15734 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15735 : (TARGET_AVX512VL)))
15736 : return -1;
15737 : return 10047; /* compressv16qi_mask */
15738 :
15739 : case E_V32QImode:
15740 : if (pattern925 (x3,
15741 : E_SImode,
15742 : E_V32QImode) != 0
15743 : || !(
15744 : #line 31083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15745 : (TARGET_AVX512VBMI2) &&
15746 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15747 : (TARGET_AVX512VL)))
15748 : return -1;
15749 : return 10048; /* compressv32qi_mask */
15750 :
15751 : case E_V32HImode:
15752 : if (pattern925 (x3,
15753 : E_SImode,
15754 : E_V32HImode) != 0
15755 : || !
15756 : #line 31083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15757 : (TARGET_AVX512VBMI2))
15758 : return -1;
15759 : return 10049; /* compressv32hi_mask */
15760 :
15761 : case E_V16HImode:
15762 : if (pattern925 (x3,
15763 : E_HImode,
15764 : E_V16HImode) != 0
15765 : || !(
15766 : #line 31083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15767 : (TARGET_AVX512VBMI2) &&
15768 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15769 : (TARGET_AVX512VL)))
15770 : return -1;
15771 : return 10050; /* compressv16hi_mask */
15772 :
15773 : case E_V8HImode:
15774 : if (pattern925 (x3,
15775 : E_QImode,
15776 : E_V8HImode) != 0
15777 : || !(
15778 : #line 31083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15779 : (TARGET_AVX512VBMI2) &&
15780 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15781 : (TARGET_AVX512VL)))
15782 : return -1;
15783 : return 10051; /* compressv8hi_mask */
15784 :
15785 : default:
15786 : return -1;
15787 : }
15788 : }
15789 :
15790 : int
15791 : recog_267 (rtx x1 ATTRIBUTE_UNUSED,
15792 : rtx_insn *insn ATTRIBUTE_UNUSED,
15793 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15794 : {
15795 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15796 : rtx x2, x3, x4, x5, x6;
15797 : int res ATTRIBUTE_UNUSED;
15798 : x2 = XEXP (x1, 0);
15799 : operands[0] = x2;
15800 : x3 = XEXP (x1, 1);
15801 : x4 = XVECEXP (x3, 0, 0);
15802 : operands[1] = x4;
15803 : x5 = XVECEXP (x3, 0, 1);
15804 : operands[2] = x5;
15805 : x6 = XVECEXP (x3, 0, 2);
15806 : operands[3] = x6;
15807 : if (!const_0_to_255_operand (operands[3], E_SImode))
15808 : return -1;
15809 : switch (GET_MODE (operands[0]))
15810 : {
15811 : case E_V32QImode:
15812 : if (pattern158 (x3,
15813 : E_V32QImode) != 0)
15814 : return -1;
15815 : if ((
15816 : #line 24701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15817 : (TARGET_SSE4_1) &&
15818 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15819 : (TARGET_AVX2)))
15820 : return 8839; /* avx2_mpsadbw */
15821 : if (!(
15822 : #line 24736 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15823 : (TARGET_AVX10_2) &&
15824 : #line 597 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15825 : (TARGET_AVX)))
15826 : return -1;
15827 : return 8843; /* *avx2_mpsadbw */
15828 :
15829 : case E_V16QImode:
15830 : if (pattern158 (x3,
15831 : E_V16QImode) != 0)
15832 : return -1;
15833 : if (
15834 : #line 24701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15835 : (TARGET_SSE4_1))
15836 : return 8840; /* sse4_1_mpsadbw */
15837 : if (!
15838 : #line 24736 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15839 : (TARGET_AVX10_2))
15840 : return -1;
15841 : return 8845; /* *sse4_1_mpsadbw */
15842 :
15843 : case E_V64QImode:
15844 : if (pattern158 (x3,
15845 : E_V64QImode) != 0
15846 : || !
15847 : #line 24724 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15848 : (TARGET_AVX10_2))
15849 : return -1;
15850 : return 8841; /* avx10_2_mpsadbw */
15851 :
15852 : default:
15853 : return -1;
15854 : }
15855 : }
15856 :
15857 : int
15858 : recog_273 (rtx x1 ATTRIBUTE_UNUSED,
15859 : rtx_insn *insn ATTRIBUTE_UNUSED,
15860 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15861 : {
15862 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15863 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
15864 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
15865 : rtx x18;
15866 : int res ATTRIBUTE_UNUSED;
15867 : x2 = XEXP (x1, 1);
15868 : x3 = XEXP (x2, 1);
15869 : x4 = XEXP (x3, 1);
15870 : if (GET_CODE (x4) != PARALLEL)
15871 : return -1;
15872 : x5 = XEXP (x2, 0);
15873 : operands[2] = x5;
15874 : x6 = XEXP (x3, 0);
15875 : operands[1] = x6;
15876 : switch (XVECLEN (x4, 0))
15877 : {
15878 : case 2:
15879 : x7 = XVECEXP (x4, 0, 0);
15880 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
15881 : return -1;
15882 : x8 = XVECEXP (x4, 0, 1);
15883 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
15884 : return -1;
15885 : switch (GET_MODE (operands[0]))
15886 : {
15887 : case E_V4SFmode:
15888 : if (!nonimmediate_operand (operands[0], E_V4SFmode)
15889 : || GET_MODE (x2) != E_V4SFmode
15890 : || !nonimmediate_operand (operands[2], E_V2SFmode)
15891 : || GET_MODE (x3) != E_V2SFmode
15892 : || !nonimmediate_operand (operands[1], E_V4SFmode)
15893 : || !
15894 : #line 12348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15895 : (TARGET_SSE))
15896 : return -1;
15897 : return 5340; /* sse_loadlps */
15898 :
15899 : case E_V4DImode:
15900 : if (pattern1244 (x2,
15901 : E_V4DImode,
15902 : E_V2DImode) != 0
15903 : || !
15904 : #line 29766 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15905 : (TARGET_AVX && 1))
15906 : return -1;
15907 : return 9610; /* vec_set_lo_v4di */
15908 :
15909 : case E_V4DFmode:
15910 : if (pattern1244 (x2,
15911 : E_V4DFmode,
15912 : E_V2DFmode) != 0
15913 : || !
15914 : #line 29766 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15915 : (TARGET_AVX && 1))
15916 : return -1;
15917 : return 9612; /* vec_set_lo_v4df */
15918 :
15919 : default:
15920 : return -1;
15921 : }
15922 :
15923 : case 1:
15924 : x7 = XVECEXP (x4, 0, 0);
15925 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
15926 : || !nonimmediate_operand (operands[0], E_V2DFmode)
15927 : || GET_MODE (x2) != E_V2DFmode
15928 : || !nonimmediate_operand (operands[2], E_DFmode)
15929 : || GET_MODE (x3) != E_DFmode
15930 : || !nonimm_or_0_operand (operands[1], E_V2DFmode)
15931 : || !
15932 : #line 15504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15933 : (TARGET_SSE2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
15934 : return -1;
15935 : return 7302; /* sse2_loadlpd */
15936 :
15937 : case 8:
15938 : x7 = XVECEXP (x4, 0, 0);
15939 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
15940 : return -1;
15941 : x8 = XVECEXP (x4, 0, 1);
15942 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
15943 : return -1;
15944 : x9 = XVECEXP (x4, 0, 2);
15945 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 10]
15946 : || pattern1245 (x4,
15947 : 15,
15948 : 14,
15949 : 13,
15950 : 12,
15951 : 11) != 0)
15952 : return -1;
15953 : switch (GET_MODE (operands[0]))
15954 : {
15955 : case E_V16SFmode:
15956 : if (pattern1244 (x2,
15957 : E_V16SFmode,
15958 : E_V8SFmode) != 0
15959 : || !
15960 : #line 20880 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15961 : (TARGET_AVX512DQ))
15962 : return -1;
15963 : return 8516; /* vec_set_lo_v16sf */
15964 :
15965 : case E_V16SImode:
15966 : if (pattern1244 (x2,
15967 : E_V16SImode,
15968 : E_V8SImode) != 0
15969 : || !
15970 : #line 20880 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15971 : (TARGET_AVX512DQ))
15972 : return -1;
15973 : return 8518; /* vec_set_lo_v16si */
15974 :
15975 : case E_V16HImode:
15976 : if (pattern1244 (x2,
15977 : E_V16HImode,
15978 : E_V8HImode) != 0
15979 : || !
15980 : #line 29867 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15981 : (TARGET_AVX))
15982 : return -1;
15983 : return 9626; /* vec_set_lo_v16hi */
15984 :
15985 : case E_V16HFmode:
15986 : if (pattern1244 (x2,
15987 : E_V16HFmode,
15988 : E_V8HFmode) != 0
15989 : || !
15990 : #line 29867 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15991 : (TARGET_AVX))
15992 : return -1;
15993 : return 9627; /* vec_set_lo_v16hf */
15994 :
15995 : case E_V16BFmode:
15996 : if (pattern1244 (x2,
15997 : E_V16BFmode,
15998 : E_V8BFmode) != 0
15999 : || !
16000 : #line 29867 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16001 : (TARGET_AVX))
16002 : return -1;
16003 : return 9628; /* vec_set_lo_v16bf */
16004 :
16005 : default:
16006 : return -1;
16007 : }
16008 :
16009 : case 4:
16010 : x7 = XVECEXP (x4, 0, 0);
16011 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
16012 : return -1;
16013 : x8 = XVECEXP (x4, 0, 1);
16014 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
16015 : return -1;
16016 : x9 = XVECEXP (x4, 0, 2);
16017 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
16018 : return -1;
16019 : x10 = XVECEXP (x4, 0, 3);
16020 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
16021 : return -1;
16022 : switch (GET_MODE (operands[0]))
16023 : {
16024 : case E_V8DFmode:
16025 : if (pattern1244 (x2,
16026 : E_V8DFmode,
16027 : E_V4DFmode) != 0
16028 : || !
16029 : #line 20914 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16030 : (TARGET_AVX512F))
16031 : return -1;
16032 : return 8524; /* vec_set_lo_v8df */
16033 :
16034 : case E_V8DImode:
16035 : if (pattern1244 (x2,
16036 : E_V8DImode,
16037 : E_V4DImode) != 0
16038 : || !
16039 : #line 20914 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16040 : (TARGET_AVX512F))
16041 : return -1;
16042 : return 8526; /* vec_set_lo_v8di */
16043 :
16044 : case E_V8SImode:
16045 : if (pattern1244 (x2,
16046 : E_V8SImode,
16047 : E_V4SImode) != 0
16048 : || !
16049 : #line 29817 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16050 : (TARGET_AVX))
16051 : return -1;
16052 : return 9618; /* vec_set_lo_v8si */
16053 :
16054 : case E_V8SFmode:
16055 : if (pattern1244 (x2,
16056 : E_V8SFmode,
16057 : E_V4SFmode) != 0
16058 : || !
16059 : #line 29817 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16060 : (TARGET_AVX))
16061 : return -1;
16062 : return 9620; /* vec_set_lo_v8sf */
16063 :
16064 : default:
16065 : return -1;
16066 : }
16067 :
16068 : case 16:
16069 : x7 = XVECEXP (x4, 0, 0);
16070 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
16071 : return -1;
16072 : x8 = XVECEXP (x4, 0, 1);
16073 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 17])
16074 : return -1;
16075 : x9 = XVECEXP (x4, 0, 2);
16076 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 18]
16077 : || pattern1245 (x4,
16078 : 23,
16079 : 22,
16080 : 21,
16081 : 20,
16082 : 19) != 0)
16083 : return -1;
16084 : x11 = XVECEXP (x4, 0, 8);
16085 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 24])
16086 : return -1;
16087 : x12 = XVECEXP (x4, 0, 9);
16088 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 25])
16089 : return -1;
16090 : x13 = XVECEXP (x4, 0, 10);
16091 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 26])
16092 : return -1;
16093 : x14 = XVECEXP (x4, 0, 11);
16094 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 27])
16095 : return -1;
16096 : x15 = XVECEXP (x4, 0, 12);
16097 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 28])
16098 : return -1;
16099 : x16 = XVECEXP (x4, 0, 13);
16100 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 29])
16101 : return -1;
16102 : x17 = XVECEXP (x4, 0, 14);
16103 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 30])
16104 : return -1;
16105 : x18 = XVECEXP (x4, 0, 15);
16106 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 31]
16107 : || pattern1244 (x2,
16108 : E_V32QImode,
16109 : E_V16QImode) != 0
16110 : || !
16111 : #line 29917 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16112 : (TARGET_AVX))
16113 : return -1;
16114 : return 9632; /* vec_set_lo_v32qi */
16115 :
16116 : default:
16117 : return -1;
16118 : }
16119 : }
16120 :
16121 : int
16122 : recog_278 (rtx x1 ATTRIBUTE_UNUSED,
16123 : rtx_insn *insn ATTRIBUTE_UNUSED,
16124 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16125 : {
16126 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16127 : rtx x2, x3, x4;
16128 : int res ATTRIBUTE_UNUSED;
16129 : x2 = XEXP (x1, 1);
16130 : operands[3] = x2;
16131 : x3 = XEXP (x2, 0);
16132 : operands[1] = x3;
16133 : x4 = XEXP (x2, 1);
16134 : operands[2] = x4;
16135 : switch (GET_MODE (operands[0]))
16136 : {
16137 : case E_V8SFmode:
16138 : if (pattern809 (
16139 : E_V8SFmode) != 0)
16140 : return -1;
16141 : if ((
16142 : #line 4594 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16143 : (TARGET_SSE
16144 : && GET_RTX_CLASS (GET_CODE (operands[3])) == RTX_COMM_COMPARE) &&
16145 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16146 : (TARGET_AVX)))
16147 : return 3324; /* *avx_maskcmpv8sf3_comm */
16148 : if (!(
16149 : #line 4628 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16150 : (TARGET_SSE) &&
16151 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16152 : (TARGET_AVX)))
16153 : return -1;
16154 : return 3332; /* avx_maskcmpv8sf3 */
16155 :
16156 : case E_V4SFmode:
16157 : if (pattern809 (
16158 : E_V4SFmode) != 0)
16159 : return -1;
16160 : if (
16161 : #line 4594 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16162 : (TARGET_SSE
16163 : && GET_RTX_CLASS (GET_CODE (operands[3])) == RTX_COMM_COMPARE))
16164 : return 3325; /* *sse_maskcmpv4sf3_comm */
16165 : if (!
16166 : #line 4628 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16167 : (TARGET_SSE))
16168 : return -1;
16169 : return 3333; /* sse_maskcmpv4sf3 */
16170 :
16171 : case E_V4DFmode:
16172 : if (pattern809 (
16173 : E_V4DFmode) != 0)
16174 : return -1;
16175 : if ((
16176 : #line 4594 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16177 : (TARGET_SSE
16178 : && GET_RTX_CLASS (GET_CODE (operands[3])) == RTX_COMM_COMPARE) &&
16179 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16180 : (TARGET_AVX)))
16181 : return 3326; /* *avx_maskcmpv4df3_comm */
16182 : if (!(
16183 : #line 4628 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16184 : (TARGET_SSE) &&
16185 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16186 : (TARGET_AVX)))
16187 : return -1;
16188 : return 3334; /* avx_maskcmpv4df3 */
16189 :
16190 : case E_V2DFmode:
16191 : if (pattern809 (
16192 : E_V2DFmode) != 0)
16193 : return -1;
16194 : if ((
16195 : #line 4594 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16196 : (TARGET_SSE
16197 : && GET_RTX_CLASS (GET_CODE (operands[3])) == RTX_COMM_COMPARE) &&
16198 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16199 : (TARGET_SSE2)))
16200 : return 3327; /* *sse2_maskcmpv2df3_comm */
16201 : if (!(
16202 : #line 4628 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16203 : (TARGET_SSE) &&
16204 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16205 : (TARGET_SSE2)))
16206 : return -1;
16207 : return 3335; /* sse2_maskcmpv2df3 */
16208 :
16209 : case E_V8SImode:
16210 : if (pattern810 (
16211 : E_V8SFmode,
16212 : E_V8SImode) != 0
16213 : || !(
16214 : #line 4611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16215 : (TARGET_SSE
16216 : && GET_RTX_CLASS (GET_CODE (operands[3])) == RTX_COMM_COMPARE) &&
16217 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16218 : (TARGET_AVX)))
16219 : return -1;
16220 : return 3328; /* *avx_imaskcmpv8sf3_comm */
16221 :
16222 : case E_V4SImode:
16223 : if (pattern810 (
16224 : E_V4SFmode,
16225 : E_V4SImode) != 0
16226 : || !
16227 : #line 4611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16228 : (TARGET_SSE
16229 : && GET_RTX_CLASS (GET_CODE (operands[3])) == RTX_COMM_COMPARE))
16230 : return -1;
16231 : return 3329; /* *sse_imaskcmpv4sf3_comm */
16232 :
16233 : case E_V4DImode:
16234 : if (pattern810 (
16235 : E_V4DFmode,
16236 : E_V4DImode) != 0
16237 : || !(
16238 : #line 4611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16239 : (TARGET_SSE
16240 : && GET_RTX_CLASS (GET_CODE (operands[3])) == RTX_COMM_COMPARE) &&
16241 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16242 : (TARGET_AVX)))
16243 : return -1;
16244 : return 3330; /* *avx_imaskcmpv4df3_comm */
16245 :
16246 : case E_V2DImode:
16247 : if (pattern810 (
16248 : E_V2DFmode,
16249 : E_V2DImode) != 0
16250 : || !(
16251 : #line 4611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16252 : (TARGET_SSE
16253 : && GET_RTX_CLASS (GET_CODE (operands[3])) == RTX_COMM_COMPARE) &&
16254 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16255 : (TARGET_SSE2)))
16256 : return -1;
16257 : return 3331; /* *sse2_imaskcmpv2df3_comm */
16258 :
16259 : default:
16260 : return -1;
16261 : }
16262 : }
16263 :
16264 : int
16265 : recog_280 (rtx x1 ATTRIBUTE_UNUSED,
16266 : rtx_insn *insn ATTRIBUTE_UNUSED,
16267 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16268 : {
16269 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16270 : rtx x2, x3, x4, x5;
16271 : int res ATTRIBUTE_UNUSED;
16272 : x2 = XEXP (x1, 1);
16273 : x3 = XEXP (x2, 0);
16274 : operands[1] = x3;
16275 : x4 = XEXP (x2, 2);
16276 : switch (GET_CODE (x4))
16277 : {
16278 : case REG:
16279 : case SUBREG:
16280 : case MEM:
16281 : case VEC_DUPLICATE:
16282 : operands[3] = x4;
16283 : switch (GET_MODE (operands[0]))
16284 : {
16285 : case E_V4SFmode:
16286 : if (!register_operand (operands[0], E_V4SFmode)
16287 : || GET_MODE (x2) != E_V4SFmode)
16288 : return -1;
16289 : if (nonimmediate_operand (operands[1], E_V4SFmode)
16290 : && nonimmediate_operand (operands[2], E_V4SFmode)
16291 : && nonimmediate_operand (operands[3], E_V4SFmode)
16292 : &&
16293 : #line 6316 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16294 : (TARGET_FMA || TARGET_FMA4))
16295 : return 3884; /* *fma_fmadd_v4sf */
16296 : if (!bcst_vector_operand (operands[1], E_V4SFmode)
16297 : || !bcst_vector_operand (operands[2], E_V4SFmode)
16298 : || !bcst_vector_operand (operands[3], E_V4SFmode)
16299 : || !(
16300 : #line 6342 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16301 : (TARGET_AVX512F && 1 && 1) &&
16302 : #line 6333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16303 : (TARGET_AVX512VL)))
16304 : return -1;
16305 : return 3904; /* *fma_fmadd_v4sf */
16306 :
16307 : case E_V2DFmode:
16308 : if (!register_operand (operands[0], E_V2DFmode)
16309 : || GET_MODE (x2) != E_V2DFmode)
16310 : return -1;
16311 : if (nonimmediate_operand (operands[1], E_V2DFmode)
16312 : && nonimmediate_operand (operands[2], E_V2DFmode)
16313 : && nonimmediate_operand (operands[3], E_V2DFmode)
16314 : &&
16315 : #line 6316 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16316 : (TARGET_FMA || TARGET_FMA4))
16317 : return 3885; /* *fma_fmadd_v2df */
16318 : if (!bcst_vector_operand (operands[1], E_V2DFmode)
16319 : || !bcst_vector_operand (operands[2], E_V2DFmode)
16320 : || !bcst_vector_operand (operands[3], E_V2DFmode)
16321 : || !(
16322 : #line 6342 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16323 : (TARGET_AVX512F && 1 && 1) &&
16324 : #line 6334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16325 : (TARGET_AVX512VL)))
16326 : return -1;
16327 : return 3913; /* *fma_fmadd_v2df */
16328 :
16329 : case E_V8SFmode:
16330 : if (!register_operand (operands[0], E_V8SFmode)
16331 : || GET_MODE (x2) != E_V8SFmode)
16332 : return -1;
16333 : if (nonimmediate_operand (operands[1], E_V8SFmode)
16334 : && nonimmediate_operand (operands[2], E_V8SFmode)
16335 : && nonimmediate_operand (operands[3], E_V8SFmode)
16336 : &&
16337 : #line 6316 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16338 : (TARGET_FMA || TARGET_FMA4))
16339 : return 3886; /* *fma_fmadd_v8sf */
16340 : if (!bcst_vector_operand (operands[1], E_V8SFmode)
16341 : || !bcst_vector_operand (operands[2], E_V8SFmode)
16342 : || !bcst_vector_operand (operands[3], E_V8SFmode)
16343 : || !(
16344 : #line 6342 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16345 : (TARGET_AVX512F && 1 && 1) &&
16346 : #line 6333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16347 : (TARGET_AVX512VL)))
16348 : return -1;
16349 : return 3902; /* *fma_fmadd_v8sf */
16350 :
16351 : case E_V4DFmode:
16352 : if (!register_operand (operands[0], E_V4DFmode)
16353 : || GET_MODE (x2) != E_V4DFmode)
16354 : return -1;
16355 : if (nonimmediate_operand (operands[1], E_V4DFmode)
16356 : && nonimmediate_operand (operands[2], E_V4DFmode)
16357 : && nonimmediate_operand (operands[3], E_V4DFmode)
16358 : &&
16359 : #line 6316 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16360 : (TARGET_FMA || TARGET_FMA4))
16361 : return 3887; /* *fma_fmadd_v4df */
16362 : if (!bcst_vector_operand (operands[1], E_V4DFmode)
16363 : || !bcst_vector_operand (operands[2], E_V4DFmode)
16364 : || !bcst_vector_operand (operands[3], E_V4DFmode)
16365 : || !(
16366 : #line 6342 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16367 : (TARGET_AVX512F && 1 && 1) &&
16368 : #line 6334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16369 : (TARGET_AVX512VL)))
16370 : return -1;
16371 : return 3911; /* *fma_fmadd_v4df */
16372 :
16373 : case E_V32HFmode:
16374 : if (pattern882 (x2,
16375 : E_V32HFmode) != 0
16376 : || !(
16377 : #line 6342 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16378 : (TARGET_AVX512F && 1 && 1) &&
16379 : #line 6329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16380 : (TARGET_AVX512FP16)))
16381 : return -1;
16382 : return 3888; /* *fma_fmadd_v32hf */
16383 :
16384 : case E_V16HFmode:
16385 : if (pattern882 (x2,
16386 : E_V16HFmode) != 0
16387 : || !(
16388 : #line 6342 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16389 : (TARGET_AVX512F && 1 && 1) &&
16390 : #line 6330 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16391 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
16392 : return -1;
16393 : return 3892; /* *fma_fmadd_v16hf */
16394 :
16395 : case E_V8HFmode:
16396 : if (pattern882 (x2,
16397 : E_V8HFmode) != 0
16398 : || !(
16399 : #line 6342 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16400 : (TARGET_AVX512F && 1 && 1) &&
16401 : #line 6331 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16402 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
16403 : return -1;
16404 : return 3894; /* *fma_fmadd_v8hf */
16405 :
16406 : case E_V16SFmode:
16407 : if (pattern882 (x2,
16408 : E_V16SFmode) != 0
16409 : || !
16410 : #line 6342 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16411 : (TARGET_AVX512F && 1 && 1))
16412 : return -1;
16413 : return 3898; /* *fma_fmadd_v16sf */
16414 :
16415 : case E_V8DFmode:
16416 : if (pattern882 (x2,
16417 : E_V8DFmode) != 0
16418 : || !
16419 : #line 6342 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16420 : (TARGET_AVX512F && 1 && 1))
16421 : return -1;
16422 : return 3907; /* *fma_fmadd_v8df */
16423 :
16424 : case E_V32BFmode:
16425 : if (pattern934 (x2,
16426 : E_V32BFmode) != 0
16427 : || !
16428 : #line 33589 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16429 : (TARGET_AVX10_2))
16430 : return -1;
16431 : return 10776; /* avx10_2_fmaddbf16_v32bf */
16432 :
16433 : case E_V16BFmode:
16434 : if (pattern934 (x2,
16435 : E_V16BFmode) != 0
16436 : || !
16437 : #line 33589 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16438 : (TARGET_AVX10_2))
16439 : return -1;
16440 : return 10778; /* avx10_2_fmaddbf16_v16bf */
16441 :
16442 : case E_V8BFmode:
16443 : if (pattern934 (x2,
16444 : E_V8BFmode) != 0
16445 : || !
16446 : #line 33589 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16447 : (TARGET_AVX10_2))
16448 : return -1;
16449 : return 10780; /* avx10_2_fmaddbf16_v8bf */
16450 :
16451 : default:
16452 : return -1;
16453 : }
16454 :
16455 : case NEG:
16456 : x5 = XEXP (x4, 0);
16457 : operands[3] = x5;
16458 : switch (GET_MODE (operands[0]))
16459 : {
16460 : case E_V4SFmode:
16461 : if (!register_operand (operands[0], E_V4SFmode)
16462 : || GET_MODE (x2) != E_V4SFmode
16463 : || GET_MODE (x4) != E_V4SFmode)
16464 : return -1;
16465 : if (nonimmediate_operand (operands[1], E_V4SFmode)
16466 : && nonimmediate_operand (operands[2], E_V4SFmode)
16467 : && nonimmediate_operand (operands[3], E_V4SFmode)
16468 : &&
16469 : #line 6413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16470 : (TARGET_FMA || TARGET_FMA4))
16471 : return 3947; /* *fma_fmsub_v4sf */
16472 : if (!bcst_vector_operand (operands[1], E_V4SFmode)
16473 : || !bcst_vector_operand (operands[2], E_V4SFmode)
16474 : || !bcst_vector_operand (operands[3], E_V4SFmode)
16475 : || !(
16476 : #line 6445 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16477 : (TARGET_AVX512F && 1 && 1) &&
16478 : #line 6333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16479 : (TARGET_AVX512VL)))
16480 : return -1;
16481 : return 3967; /* *fma_fmsub_v4sf */
16482 :
16483 : case E_V2DFmode:
16484 : if (!register_operand (operands[0], E_V2DFmode)
16485 : || GET_MODE (x2) != E_V2DFmode
16486 : || GET_MODE (x4) != E_V2DFmode)
16487 : return -1;
16488 : if (nonimmediate_operand (operands[1], E_V2DFmode)
16489 : && nonimmediate_operand (operands[2], E_V2DFmode)
16490 : && nonimmediate_operand (operands[3], E_V2DFmode)
16491 : &&
16492 : #line 6413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16493 : (TARGET_FMA || TARGET_FMA4))
16494 : return 3948; /* *fma_fmsub_v2df */
16495 : if (!bcst_vector_operand (operands[1], E_V2DFmode)
16496 : || !bcst_vector_operand (operands[2], E_V2DFmode)
16497 : || !bcst_vector_operand (operands[3], E_V2DFmode)
16498 : || !(
16499 : #line 6445 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16500 : (TARGET_AVX512F && 1 && 1) &&
16501 : #line 6334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16502 : (TARGET_AVX512VL)))
16503 : return -1;
16504 : return 3976; /* *fma_fmsub_v2df */
16505 :
16506 : case E_V8SFmode:
16507 : if (!register_operand (operands[0], E_V8SFmode)
16508 : || GET_MODE (x2) != E_V8SFmode
16509 : || GET_MODE (x4) != E_V8SFmode)
16510 : return -1;
16511 : if (nonimmediate_operand (operands[1], E_V8SFmode)
16512 : && nonimmediate_operand (operands[2], E_V8SFmode)
16513 : && nonimmediate_operand (operands[3], E_V8SFmode)
16514 : &&
16515 : #line 6413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16516 : (TARGET_FMA || TARGET_FMA4))
16517 : return 3949; /* *fma_fmsub_v8sf */
16518 : if (!bcst_vector_operand (operands[1], E_V8SFmode)
16519 : || !bcst_vector_operand (operands[2], E_V8SFmode)
16520 : || !bcst_vector_operand (operands[3], E_V8SFmode)
16521 : || !(
16522 : #line 6445 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16523 : (TARGET_AVX512F && 1 && 1) &&
16524 : #line 6333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16525 : (TARGET_AVX512VL)))
16526 : return -1;
16527 : return 3965; /* *fma_fmsub_v8sf */
16528 :
16529 : case E_V4DFmode:
16530 : if (!register_operand (operands[0], E_V4DFmode)
16531 : || GET_MODE (x2) != E_V4DFmode
16532 : || GET_MODE (x4) != E_V4DFmode)
16533 : return -1;
16534 : if (nonimmediate_operand (operands[1], E_V4DFmode)
16535 : && nonimmediate_operand (operands[2], E_V4DFmode)
16536 : && nonimmediate_operand (operands[3], E_V4DFmode)
16537 : &&
16538 : #line 6413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16539 : (TARGET_FMA || TARGET_FMA4))
16540 : return 3950; /* *fma_fmsub_v4df */
16541 : if (!bcst_vector_operand (operands[1], E_V4DFmode)
16542 : || !bcst_vector_operand (operands[2], E_V4DFmode)
16543 : || !bcst_vector_operand (operands[3], E_V4DFmode)
16544 : || !(
16545 : #line 6445 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16546 : (TARGET_AVX512F && 1 && 1) &&
16547 : #line 6334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16548 : (TARGET_AVX512VL)))
16549 : return -1;
16550 : return 3974; /* *fma_fmsub_v4df */
16551 :
16552 : case E_V32HFmode:
16553 : if (pattern883 (x2,
16554 : E_V32HFmode) != 0
16555 : || !(
16556 : #line 6445 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16557 : (TARGET_AVX512F && 1 && 1) &&
16558 : #line 6329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16559 : (TARGET_AVX512FP16)))
16560 : return -1;
16561 : return 3951; /* *fma_fmsub_v32hf */
16562 :
16563 : case E_V16HFmode:
16564 : if (pattern883 (x2,
16565 : E_V16HFmode) != 0
16566 : || !(
16567 : #line 6445 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16568 : (TARGET_AVX512F && 1 && 1) &&
16569 : #line 6330 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16570 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
16571 : return -1;
16572 : return 3955; /* *fma_fmsub_v16hf */
16573 :
16574 : case E_V8HFmode:
16575 : if (pattern883 (x2,
16576 : E_V8HFmode) != 0
16577 : || !(
16578 : #line 6445 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16579 : (TARGET_AVX512F && 1 && 1) &&
16580 : #line 6331 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16581 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
16582 : return -1;
16583 : return 3957; /* *fma_fmsub_v8hf */
16584 :
16585 : case E_V16SFmode:
16586 : if (pattern883 (x2,
16587 : E_V16SFmode) != 0
16588 : || !
16589 : #line 6445 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16590 : (TARGET_AVX512F && 1 && 1))
16591 : return -1;
16592 : return 3961; /* *fma_fmsub_v16sf */
16593 :
16594 : case E_V8DFmode:
16595 : if (pattern883 (x2,
16596 : E_V8DFmode) != 0
16597 : || !
16598 : #line 6445 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16599 : (TARGET_AVX512F && 1 && 1))
16600 : return -1;
16601 : return 3970; /* *fma_fmsub_v8df */
16602 :
16603 : case E_V32BFmode:
16604 : if (pattern935 (x2,
16605 : E_V32BFmode) != 0
16606 : || !
16607 : #line 33717 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16608 : (TARGET_AVX10_2))
16609 : return -1;
16610 : return 10800; /* avx10_2_fmsubbf16_v32bf */
16611 :
16612 : case E_V16BFmode:
16613 : if (pattern935 (x2,
16614 : E_V16BFmode) != 0
16615 : || !
16616 : #line 33717 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16617 : (TARGET_AVX10_2))
16618 : return -1;
16619 : return 10802; /* avx10_2_fmsubbf16_v16bf */
16620 :
16621 : case E_V8BFmode:
16622 : if (pattern935 (x2,
16623 : E_V8BFmode) != 0
16624 : || !
16625 : #line 33717 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16626 : (TARGET_AVX10_2))
16627 : return -1;
16628 : return 10804; /* avx10_2_fmsubbf16_v8bf */
16629 :
16630 : default:
16631 : return -1;
16632 : }
16633 :
16634 : default:
16635 : return -1;
16636 : }
16637 : }
16638 :
16639 : int
16640 : recog_289 (rtx x1 ATTRIBUTE_UNUSED,
16641 : rtx_insn *insn ATTRIBUTE_UNUSED,
16642 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16643 : {
16644 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16645 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
16646 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
16647 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
16648 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
16649 : rtx x34, x35, x36, x37, x38, x39, x40, x41;
16650 : rtx x42, x43, x44, x45, x46, x47, x48, x49;
16651 : rtx x50, x51, x52, x53, x54, x55, x56, x57;
16652 : rtx x58, x59, x60, x61, x62, x63, x64, x65;
16653 : rtx x66, x67;
16654 : int res ATTRIBUTE_UNUSED;
16655 : x2 = XEXP (x1, 1);
16656 : x3 = XEXP (x2, 1);
16657 : if (pattern691 (x3) != 0)
16658 : return -1;
16659 : x4 = XVECEXP (x3, 0, 32);
16660 : if (GET_CODE (x4) != CONST_INT)
16661 : return -1;
16662 : x5 = XVECEXP (x3, 0, 33);
16663 : if (GET_CODE (x5) != CONST_INT)
16664 : return -1;
16665 : x6 = XVECEXP (x3, 0, 34);
16666 : if (GET_CODE (x6) != CONST_INT)
16667 : return -1;
16668 : x7 = XVECEXP (x3, 0, 35);
16669 : if (GET_CODE (x7) != CONST_INT)
16670 : return -1;
16671 : x8 = XVECEXP (x3, 0, 36);
16672 : if (GET_CODE (x8) != CONST_INT)
16673 : return -1;
16674 : x9 = XVECEXP (x3, 0, 37);
16675 : if (GET_CODE (x9) != CONST_INT)
16676 : return -1;
16677 : x10 = XVECEXP (x3, 0, 38);
16678 : if (GET_CODE (x10) != CONST_INT)
16679 : return -1;
16680 : x11 = XVECEXP (x3, 0, 39);
16681 : if (GET_CODE (x11) != CONST_INT)
16682 : return -1;
16683 : x12 = XVECEXP (x3, 0, 40);
16684 : if (GET_CODE (x12) != CONST_INT)
16685 : return -1;
16686 : x13 = XVECEXP (x3, 0, 41);
16687 : if (GET_CODE (x13) != CONST_INT)
16688 : return -1;
16689 : x14 = XVECEXP (x3, 0, 42);
16690 : if (GET_CODE (x14) != CONST_INT)
16691 : return -1;
16692 : x15 = XVECEXP (x3, 0, 43);
16693 : if (GET_CODE (x15) != CONST_INT)
16694 : return -1;
16695 : x16 = XVECEXP (x3, 0, 44);
16696 : if (GET_CODE (x16) != CONST_INT)
16697 : return -1;
16698 : x17 = XVECEXP (x3, 0, 45);
16699 : if (GET_CODE (x17) != CONST_INT)
16700 : return -1;
16701 : x18 = XVECEXP (x3, 0, 46);
16702 : if (GET_CODE (x18) != CONST_INT)
16703 : return -1;
16704 : x19 = XVECEXP (x3, 0, 47);
16705 : if (GET_CODE (x19) != CONST_INT)
16706 : return -1;
16707 : x20 = XVECEXP (x3, 0, 48);
16708 : if (GET_CODE (x20) != CONST_INT)
16709 : return -1;
16710 : x21 = XVECEXP (x3, 0, 49);
16711 : if (GET_CODE (x21) != CONST_INT)
16712 : return -1;
16713 : x22 = XVECEXP (x3, 0, 50);
16714 : if (GET_CODE (x22) != CONST_INT)
16715 : return -1;
16716 : x23 = XVECEXP (x3, 0, 51);
16717 : if (GET_CODE (x23) != CONST_INT)
16718 : return -1;
16719 : x24 = XVECEXP (x3, 0, 52);
16720 : if (GET_CODE (x24) != CONST_INT)
16721 : return -1;
16722 : x25 = XVECEXP (x3, 0, 53);
16723 : if (GET_CODE (x25) != CONST_INT)
16724 : return -1;
16725 : x26 = XVECEXP (x3, 0, 54);
16726 : if (GET_CODE (x26) != CONST_INT)
16727 : return -1;
16728 : x27 = XVECEXP (x3, 0, 55);
16729 : if (GET_CODE (x27) != CONST_INT)
16730 : return -1;
16731 : x28 = XVECEXP (x3, 0, 56);
16732 : if (GET_CODE (x28) != CONST_INT)
16733 : return -1;
16734 : x29 = XVECEXP (x3, 0, 57);
16735 : if (GET_CODE (x29) != CONST_INT)
16736 : return -1;
16737 : x30 = XVECEXP (x3, 0, 58);
16738 : if (GET_CODE (x30) != CONST_INT)
16739 : return -1;
16740 : x31 = XVECEXP (x3, 0, 59);
16741 : if (GET_CODE (x31) != CONST_INT)
16742 : return -1;
16743 : x32 = XVECEXP (x3, 0, 60);
16744 : if (GET_CODE (x32) != CONST_INT)
16745 : return -1;
16746 : x33 = XVECEXP (x3, 0, 61);
16747 : if (GET_CODE (x33) != CONST_INT)
16748 : return -1;
16749 : x34 = XVECEXP (x3, 0, 62);
16750 : if (GET_CODE (x34) != CONST_INT)
16751 : return -1;
16752 : x35 = XVECEXP (x3, 0, 63);
16753 : if (GET_CODE (x35) != CONST_INT
16754 : || pattern1645 (x2,
16755 : E_V64QImode,
16756 : E_V128QImode) != 0)
16757 : return -1;
16758 : x36 = XVECEXP (x3, 0, 0);
16759 : switch (XWINT (x36, 0))
16760 : {
16761 : case 8L:
16762 : x37 = XVECEXP (x3, 0, 1);
16763 : if (XWINT (x37, 0) != 72L)
16764 : return -1;
16765 : x38 = XVECEXP (x3, 0, 2);
16766 : if (XWINT (x38, 0) != 9L)
16767 : return -1;
16768 : x39 = XVECEXP (x3, 0, 3);
16769 : if (XWINT (x39, 0) != 73L)
16770 : return -1;
16771 : x40 = XVECEXP (x3, 0, 4);
16772 : if (XWINT (x40, 0) != 10L)
16773 : return -1;
16774 : x41 = XVECEXP (x3, 0, 5);
16775 : if (XWINT (x41, 0) != 74L)
16776 : return -1;
16777 : x42 = XVECEXP (x3, 0, 6);
16778 : if (XWINT (x42, 0) != 11L)
16779 : return -1;
16780 : x43 = XVECEXP (x3, 0, 7);
16781 : if (XWINT (x43, 0) != 75L)
16782 : return -1;
16783 : x44 = XVECEXP (x3, 0, 8);
16784 : if (XWINT (x44, 0) != 12L)
16785 : return -1;
16786 : x45 = XVECEXP (x3, 0, 9);
16787 : if (XWINT (x45, 0) != 76L)
16788 : return -1;
16789 : x46 = XVECEXP (x3, 0, 10);
16790 : if (XWINT (x46, 0) != 13L)
16791 : return -1;
16792 : x47 = XVECEXP (x3, 0, 11);
16793 : if (XWINT (x47, 0) != 77L)
16794 : return -1;
16795 : x48 = XVECEXP (x3, 0, 12);
16796 : if (XWINT (x48, 0) != 14L)
16797 : return -1;
16798 : x49 = XVECEXP (x3, 0, 13);
16799 : if (XWINT (x49, 0) != 78L)
16800 : return -1;
16801 : x50 = XVECEXP (x3, 0, 14);
16802 : if (XWINT (x50, 0) != 15L)
16803 : return -1;
16804 : x51 = XVECEXP (x3, 0, 15);
16805 : if (XWINT (x51, 0) != 79L)
16806 : return -1;
16807 : x52 = XVECEXP (x3, 0, 16);
16808 : if (XWINT (x52, 0) != 24L)
16809 : return -1;
16810 : x53 = XVECEXP (x3, 0, 17);
16811 : if (XWINT (x53, 0) != 88L)
16812 : return -1;
16813 : x54 = XVECEXP (x3, 0, 18);
16814 : if (XWINT (x54, 0) != 25L)
16815 : return -1;
16816 : x55 = XVECEXP (x3, 0, 19);
16817 : if (XWINT (x55, 0) != 89L)
16818 : return -1;
16819 : x56 = XVECEXP (x3, 0, 20);
16820 : if (XWINT (x56, 0) != 26L)
16821 : return -1;
16822 : x57 = XVECEXP (x3, 0, 21);
16823 : if (XWINT (x57, 0) != 90L)
16824 : return -1;
16825 : x58 = XVECEXP (x3, 0, 22);
16826 : if (XWINT (x58, 0) != 27L)
16827 : return -1;
16828 : x59 = XVECEXP (x3, 0, 23);
16829 : if (XWINT (x59, 0) != 91L)
16830 : return -1;
16831 : x60 = XVECEXP (x3, 0, 24);
16832 : if (XWINT (x60, 0) != 28L)
16833 : return -1;
16834 : x61 = XVECEXP (x3, 0, 25);
16835 : if (XWINT (x61, 0) != 92L)
16836 : return -1;
16837 : x62 = XVECEXP (x3, 0, 26);
16838 : if (XWINT (x62, 0) != 29L)
16839 : return -1;
16840 : x63 = XVECEXP (x3, 0, 27);
16841 : if (XWINT (x63, 0) != 93L)
16842 : return -1;
16843 : x64 = XVECEXP (x3, 0, 28);
16844 : if (XWINT (x64, 0) != 30L)
16845 : return -1;
16846 : x65 = XVECEXP (x3, 0, 29);
16847 : if (XWINT (x65, 0) != 94L)
16848 : return -1;
16849 : x66 = XVECEXP (x3, 0, 30);
16850 : if (XWINT (x66, 0) != 31L)
16851 : return -1;
16852 : x67 = XVECEXP (x3, 0, 31);
16853 : if (XWINT (x67, 0) != 95L
16854 : || XWINT (x4, 0) != 40L
16855 : || XWINT (x5, 0) != 104L
16856 : || XWINT (x6, 0) != 41L
16857 : || XWINT (x7, 0) != 105L
16858 : || XWINT (x8, 0) != 42L
16859 : || XWINT (x9, 0) != 106L
16860 : || XWINT (x10, 0) != 43L
16861 : || XWINT (x11, 0) != 107L
16862 : || XWINT (x12, 0) != 44L
16863 : || XWINT (x13, 0) != 108L
16864 : || XWINT (x14, 0) != 45L
16865 : || XWINT (x15, 0) != 109L
16866 : || XWINT (x16, 0) != 46L
16867 : || XWINT (x17, 0) != 110L
16868 : || XWINT (x18, 0) != 47L
16869 : || XWINT (x19, 0) != 111L
16870 : || XWINT (x20, 0) != 56L
16871 : || XWINT (x21, 0) != 120L
16872 : || XWINT (x22, 0) != 57L
16873 : || XWINT (x23, 0) != 121L
16874 : || XWINT (x24, 0) != 58L
16875 : || XWINT (x25, 0) != 122L
16876 : || XWINT (x26, 0) != 59L
16877 : || XWINT (x27, 0) != 123L
16878 : || XWINT (x28, 0) != 60L
16879 : || XWINT (x29, 0) != 124L
16880 : || XWINT (x30, 0) != 61L
16881 : || XWINT (x31, 0) != 125L
16882 : || XWINT (x32, 0) != 62L
16883 : || XWINT (x33, 0) != 126L
16884 : || XWINT (x34, 0) != 63L
16885 : || XWINT (x35, 0) != 127L
16886 : || !
16887 : #line 20206 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16888 : (TARGET_AVX512BW))
16889 : return -1;
16890 : return 8438; /* avx512bw_interleave_highv64qi */
16891 :
16892 : case 0L:
16893 : x37 = XVECEXP (x3, 0, 1);
16894 : if (XWINT (x37, 0) != 64L)
16895 : return -1;
16896 : x38 = XVECEXP (x3, 0, 2);
16897 : if (XWINT (x38, 0) != 1L)
16898 : return -1;
16899 : x39 = XVECEXP (x3, 0, 3);
16900 : if (XWINT (x39, 0) != 65L)
16901 : return -1;
16902 : x40 = XVECEXP (x3, 0, 4);
16903 : if (XWINT (x40, 0) != 2L)
16904 : return -1;
16905 : x41 = XVECEXP (x3, 0, 5);
16906 : if (XWINT (x41, 0) != 66L)
16907 : return -1;
16908 : x42 = XVECEXP (x3, 0, 6);
16909 : if (XWINT (x42, 0) != 3L)
16910 : return -1;
16911 : x43 = XVECEXP (x3, 0, 7);
16912 : if (XWINT (x43, 0) != 67L)
16913 : return -1;
16914 : x44 = XVECEXP (x3, 0, 8);
16915 : if (XWINT (x44, 0) != 4L)
16916 : return -1;
16917 : x45 = XVECEXP (x3, 0, 9);
16918 : if (XWINT (x45, 0) != 68L)
16919 : return -1;
16920 : x46 = XVECEXP (x3, 0, 10);
16921 : if (XWINT (x46, 0) != 5L)
16922 : return -1;
16923 : x47 = XVECEXP (x3, 0, 11);
16924 : if (XWINT (x47, 0) != 69L)
16925 : return -1;
16926 : x48 = XVECEXP (x3, 0, 12);
16927 : if (XWINT (x48, 0) != 6L)
16928 : return -1;
16929 : x49 = XVECEXP (x3, 0, 13);
16930 : if (XWINT (x49, 0) != 70L)
16931 : return -1;
16932 : x50 = XVECEXP (x3, 0, 14);
16933 : if (XWINT (x50, 0) != 7L)
16934 : return -1;
16935 : x51 = XVECEXP (x3, 0, 15);
16936 : if (XWINT (x51, 0) != 71L)
16937 : return -1;
16938 : x52 = XVECEXP (x3, 0, 16);
16939 : if (XWINT (x52, 0) != 16L)
16940 : return -1;
16941 : x53 = XVECEXP (x3, 0, 17);
16942 : if (XWINT (x53, 0) != 80L)
16943 : return -1;
16944 : x54 = XVECEXP (x3, 0, 18);
16945 : if (XWINT (x54, 0) != 17L)
16946 : return -1;
16947 : x55 = XVECEXP (x3, 0, 19);
16948 : if (XWINT (x55, 0) != 81L)
16949 : return -1;
16950 : x56 = XVECEXP (x3, 0, 20);
16951 : if (XWINT (x56, 0) != 18L)
16952 : return -1;
16953 : x57 = XVECEXP (x3, 0, 21);
16954 : if (XWINT (x57, 0) != 82L)
16955 : return -1;
16956 : x58 = XVECEXP (x3, 0, 22);
16957 : if (XWINT (x58, 0) != 19L)
16958 : return -1;
16959 : x59 = XVECEXP (x3, 0, 23);
16960 : if (XWINT (x59, 0) != 83L)
16961 : return -1;
16962 : x60 = XVECEXP (x3, 0, 24);
16963 : if (XWINT (x60, 0) != 20L)
16964 : return -1;
16965 : x61 = XVECEXP (x3, 0, 25);
16966 : if (XWINT (x61, 0) != 84L)
16967 : return -1;
16968 : x62 = XVECEXP (x3, 0, 26);
16969 : if (XWINT (x62, 0) != 21L)
16970 : return -1;
16971 : x63 = XVECEXP (x3, 0, 27);
16972 : if (XWINT (x63, 0) != 85L)
16973 : return -1;
16974 : x64 = XVECEXP (x3, 0, 28);
16975 : if (XWINT (x64, 0) != 22L)
16976 : return -1;
16977 : x65 = XVECEXP (x3, 0, 29);
16978 : if (XWINT (x65, 0) != 86L)
16979 : return -1;
16980 : x66 = XVECEXP (x3, 0, 30);
16981 : if (XWINT (x66, 0) != 23L)
16982 : return -1;
16983 : x67 = XVECEXP (x3, 0, 31);
16984 : if (XWINT (x67, 0) != 87L
16985 : || XWINT (x4, 0) != 32L
16986 : || XWINT (x5, 0) != 96L
16987 : || XWINT (x6, 0) != 33L
16988 : || XWINT (x7, 0) != 97L
16989 : || XWINT (x8, 0) != 34L
16990 : || XWINT (x9, 0) != 98L
16991 : || XWINT (x10, 0) != 35L
16992 : || XWINT (x11, 0) != 99L
16993 : || XWINT (x12, 0) != 36L
16994 : || XWINT (x13, 0) != 100L
16995 : || XWINT (x14, 0) != 37L
16996 : || XWINT (x15, 0) != 101L
16997 : || XWINT (x16, 0) != 38L
16998 : || XWINT (x17, 0) != 102L
16999 : || XWINT (x18, 0) != 39L
17000 : || XWINT (x19, 0) != 103L
17001 : || XWINT (x20, 0) != 48L
17002 : || XWINT (x21, 0) != 112L
17003 : || XWINT (x22, 0) != 49L
17004 : || XWINT (x23, 0) != 113L
17005 : || XWINT (x24, 0) != 50L
17006 : || XWINT (x25, 0) != 114L
17007 : || XWINT (x26, 0) != 51L
17008 : || XWINT (x27, 0) != 115L
17009 : || XWINT (x28, 0) != 52L
17010 : || XWINT (x29, 0) != 116L
17011 : || XWINT (x30, 0) != 53L
17012 : || XWINT (x31, 0) != 117L
17013 : || XWINT (x32, 0) != 54L
17014 : || XWINT (x33, 0) != 118L
17015 : || XWINT (x34, 0) != 55L
17016 : || XWINT (x35, 0) != 119L
17017 : || !
17018 : #line 20302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17019 : (TARGET_AVX512BW))
17020 : return -1;
17021 : return 8444; /* avx512bw_interleave_lowv64qi */
17022 :
17023 : default:
17024 : return -1;
17025 : }
17026 : }
17027 :
17028 : int
17029 : recog_304 (rtx x1 ATTRIBUTE_UNUSED,
17030 : rtx_insn *insn ATTRIBUTE_UNUSED,
17031 : int *pnum_clobbers ATTRIBUTE_UNUSED)
17032 : {
17033 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
17034 : rtx x2, x3, x4;
17035 : int res ATTRIBUTE_UNUSED;
17036 : x2 = XEXP (x1, 1);
17037 : x3 = XEXP (x2, 1);
17038 : x4 = XVECEXP (x3, 0, 0);
17039 : operands[3] = x4;
17040 : if (!const_int_operand (operands[3], E_VOIDmode))
17041 : return -1;
17042 : switch (GET_MODE (operands[0]))
17043 : {
17044 : case E_V4SFmode:
17045 : if (!register_operand (operands[0], E_V4SFmode)
17046 : || GET_MODE (x2) != E_V4SFmode)
17047 : return -1;
17048 : if (nonimmediate_operand (operands[1], E_V4SFmode))
17049 : {
17050 : if (avx_vbroadcast_operand (operands[2], E_VOIDmode)
17051 : &&
17052 : #line 28668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17053 : (TARGET_AVX))
17054 : return 9283; /* *avx_vperm_broadcast_v4sf */
17055 : if (
17056 : #line 28805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17057 : (TARGET_AVX && 1
17058 : && avx_vpermilp_parallel (operands[2], V4SFmode)))
17059 : return 9302; /* *avx_vpermilpv4sf */
17060 : }
17061 : if (!register_operand (operands[1], E_V4SFmode)
17062 : || !palignr_operand (operands[2], E_VOIDmode)
17063 : || !
17064 : #line 29683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17065 : (TARGET_SSSE3))
17066 : return -1;
17067 : return 9608; /* *ssse3_palignrv4sf_perm */
17068 :
17069 : case E_V8SFmode:
17070 : if (!register_operand (operands[0], E_V8SFmode)
17071 : || GET_MODE (x2) != E_V8SFmode
17072 : || !nonimmediate_operand (operands[1], E_V8SFmode))
17073 : return -1;
17074 : if (avx_vbroadcast_operand (operands[2], E_VOIDmode)
17075 : &&
17076 : #line 28696 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17077 : (TARGET_AVX
17078 : && (V8SFmode != V4DFmode || !TARGET_AVX2 || operands[3] == const0_rtx)))
17079 : return 9284; /* *avx_vperm_broadcast_v8sf */
17080 : if (!(
17081 : #line 28805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17082 : (TARGET_AVX && 1
17083 : && avx_vpermilp_parallel (operands[2], V8SFmode)) &&
17084 : #line 313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17085 : (TARGET_AVX)))
17086 : return -1;
17087 : return 9300; /* *avx_vpermilpv8sf */
17088 :
17089 : case E_V4DFmode:
17090 : if (!register_operand (operands[0], E_V4DFmode)
17091 : || GET_MODE (x2) != E_V4DFmode
17092 : || !nonimmediate_operand (operands[1], E_V4DFmode))
17093 : return -1;
17094 : if (avx_vbroadcast_operand (operands[2], E_VOIDmode)
17095 : &&
17096 : #line 28696 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17097 : (TARGET_AVX
17098 : && (V4DFmode != V4DFmode || !TARGET_AVX2 || operands[3] == const0_rtx)))
17099 : return 9285; /* *avx_vperm_broadcast_v4df */
17100 : if (!(
17101 : #line 28805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17102 : (TARGET_AVX && 1
17103 : && avx_vpermilp_parallel (operands[2], V4DFmode)) &&
17104 : #line 314 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17105 : (TARGET_AVX)))
17106 : return -1;
17107 : return 9306; /* *avx_vpermilpv4df */
17108 :
17109 : case E_V16SImode:
17110 : if (!register_operand (operands[0], E_V16SImode)
17111 : || GET_MODE (x2) != E_V16SImode
17112 : || !nonimmediate_operand (operands[1], E_V16SImode)
17113 : || !(
17114 : #line 28805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17115 : (TARGET_AVX && 1
17116 : && avx_vpermilp_parallel (operands[2], V16SImode)) &&
17117 : #line 311 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17118 : (TARGET_AVX512F)))
17119 : return -1;
17120 : return 9286; /* *avx512f_vpermilpv16si */
17121 :
17122 : case E_V8SImode:
17123 : if (!register_operand (operands[0], E_V8SImode)
17124 : || GET_MODE (x2) != E_V8SImode
17125 : || !nonimmediate_operand (operands[1], E_V8SImode)
17126 : || !(
17127 : #line 28805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17128 : (TARGET_AVX && 1
17129 : && avx_vpermilp_parallel (operands[2], V8SImode)) &&
17130 : #line 311 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17131 : (TARGET_AVX)))
17132 : return -1;
17133 : return 9288; /* *avx_vpermilpv8si */
17134 :
17135 : case E_V4SImode:
17136 : if (!register_operand (operands[0], E_V4SImode)
17137 : || GET_MODE (x2) != E_V4SImode)
17138 : return -1;
17139 : if (nonimmediate_operand (operands[1], E_V4SImode)
17140 : &&
17141 : #line 28805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17142 : (TARGET_AVX && 1
17143 : && avx_vpermilp_parallel (operands[2], V4SImode)))
17144 : return 9290; /* *sse2_vpermilpv4si */
17145 : if (!register_operand (operands[1], E_V4SImode)
17146 : || !palignr_operand (operands[2], E_VOIDmode)
17147 : || !
17148 : #line 29683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17149 : (TARGET_SSSE3))
17150 : return -1;
17151 : return 9606; /* *ssse3_palignrv4si_perm */
17152 :
17153 : case E_V8DImode:
17154 : if (!register_operand (operands[0], E_V8DImode)
17155 : || GET_MODE (x2) != E_V8DImode
17156 : || !nonimmediate_operand (operands[1], E_V8DImode)
17157 : || !(
17158 : #line 28805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17159 : (TARGET_AVX && 1
17160 : && avx_vpermilp_parallel (operands[2], V8DImode)) &&
17161 : #line 312 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17162 : (TARGET_AVX512F)))
17163 : return -1;
17164 : return 9292; /* *avx512f_vpermilpv8di */
17165 :
17166 : case E_V4DImode:
17167 : if (!register_operand (operands[0], E_V4DImode)
17168 : || GET_MODE (x2) != E_V4DImode
17169 : || !nonimmediate_operand (operands[1], E_V4DImode)
17170 : || !(
17171 : #line 28805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17172 : (TARGET_AVX && 1
17173 : && avx_vpermilp_parallel (operands[2], V4DImode)) &&
17174 : #line 312 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17175 : (TARGET_AVX)))
17176 : return -1;
17177 : return 9294; /* *avx512vl_vpermilpv4di */
17178 :
17179 : case E_V2DImode:
17180 : if (!register_operand (operands[0], E_V2DImode)
17181 : || GET_MODE (x2) != E_V2DImode)
17182 : return -1;
17183 : if (nonimmediate_operand (operands[1], E_V2DImode)
17184 : && (
17185 : #line 28805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17186 : (TARGET_AVX && 1
17187 : && avx_vpermilp_parallel (operands[2], V2DImode)) &&
17188 : #line 312 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17189 : (TARGET_SSE2)))
17190 : return 9296; /* *avx512vl_vpermilpv2di */
17191 : if (!register_operand (operands[1], E_V2DImode)
17192 : || !palignr_operand (operands[2], E_VOIDmode)
17193 : || !
17194 : #line 29683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17195 : (TARGET_SSSE3))
17196 : return -1;
17197 : return 9607; /* *ssse3_palignrv2di_perm */
17198 :
17199 : case E_V16SFmode:
17200 : if (!register_operand (operands[0], E_V16SFmode)
17201 : || GET_MODE (x2) != E_V16SFmode
17202 : || !nonimmediate_operand (operands[1], E_V16SFmode)
17203 : || !(
17204 : #line 28805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17205 : (TARGET_AVX && 1
17206 : && avx_vpermilp_parallel (operands[2], V16SFmode)) &&
17207 : #line 313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17208 : (TARGET_AVX512F)))
17209 : return -1;
17210 : return 9298; /* *avx512f_vpermilpv16sf */
17211 :
17212 : case E_V8DFmode:
17213 : if (!register_operand (operands[0], E_V8DFmode)
17214 : || GET_MODE (x2) != E_V8DFmode
17215 : || !nonimmediate_operand (operands[1], E_V8DFmode)
17216 : || !(
17217 : #line 28805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17218 : (TARGET_AVX && 1
17219 : && avx_vpermilp_parallel (operands[2], V8DFmode)) &&
17220 : #line 314 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17221 : (TARGET_AVX512F)))
17222 : return -1;
17223 : return 9304; /* *avx512f_vpermilpv8df */
17224 :
17225 : case E_V2DFmode:
17226 : if (!register_operand (operands[0], E_V2DFmode)
17227 : || GET_MODE (x2) != E_V2DFmode)
17228 : return -1;
17229 : if (nonimmediate_operand (operands[1], E_V2DFmode)
17230 : && (
17231 : #line 28805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17232 : (TARGET_AVX && 1
17233 : && avx_vpermilp_parallel (operands[2], V2DFmode)) &&
17234 : #line 314 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17235 : (TARGET_SSE2)))
17236 : return 9308; /* *avx_vpermilpv2df */
17237 : if (!register_operand (operands[1], E_V2DFmode)
17238 : || !palignr_operand (operands[2], E_VOIDmode)
17239 : || !(
17240 : #line 29683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17241 : (TARGET_SSSE3) &&
17242 : #line 356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17243 : (TARGET_SSE2)))
17244 : return -1;
17245 : return 9609; /* *ssse3_palignrv2df_perm */
17246 :
17247 : case E_V16QImode:
17248 : if (pattern1161 (x2,
17249 : E_V16QImode) != 0
17250 : || !
17251 : #line 29683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17252 : (TARGET_SSSE3))
17253 : return -1;
17254 : return 9602; /* *ssse3_palignrv16qi_perm */
17255 :
17256 : case E_V8HImode:
17257 : if (pattern1161 (x2,
17258 : E_V8HImode) != 0
17259 : || !
17260 : #line 29683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17261 : (TARGET_SSSE3))
17262 : return -1;
17263 : return 9603; /* *ssse3_palignrv8hi_perm */
17264 :
17265 : case E_V8HFmode:
17266 : if (pattern1161 (x2,
17267 : E_V8HFmode) != 0
17268 : || !
17269 : #line 29683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17270 : (TARGET_SSSE3))
17271 : return -1;
17272 : return 9604; /* *ssse3_palignrv8hf_perm */
17273 :
17274 : case E_V8BFmode:
17275 : if (pattern1161 (x2,
17276 : E_V8BFmode) != 0
17277 : || !
17278 : #line 29683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17279 : (TARGET_SSSE3))
17280 : return -1;
17281 : return 9605; /* *ssse3_palignrv8bf_perm */
17282 :
17283 : default:
17284 : return -1;
17285 : }
17286 : }
17287 :
17288 : int
17289 : recog_314 (rtx x1 ATTRIBUTE_UNUSED,
17290 : rtx_insn *insn ATTRIBUTE_UNUSED,
17291 : int *pnum_clobbers ATTRIBUTE_UNUSED)
17292 : {
17293 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
17294 : rtx x2, x3, x4;
17295 : int res ATTRIBUTE_UNUSED;
17296 : x2 = XEXP (x1, 1);
17297 : x3 = XEXP (x2, 0);
17298 : x4 = XEXP (x3, 0);
17299 : switch (GET_CODE (x4))
17300 : {
17301 : case REG:
17302 : case SUBREG:
17303 : case MEM:
17304 : case NOT:
17305 : switch (pattern537 (x2))
17306 : {
17307 : case 0:
17308 : if (!(
17309 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17310 : ((64 == 64 || TARGET_AVX512VL
17311 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17312 : && ix86_pre_reload_split ()
17313 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17314 : STRIP_UNARY (operands[4]))
17315 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17316 : STRIP_UNARY (operands[4]))
17317 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17318 : STRIP_UNARY (operands[3]))
17319 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17320 : STRIP_UNARY (operands[3])))) &&
17321 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17322 : (TARGET_AVX512F)))
17323 : return -1;
17324 : return 5599; /* *avx512bw_vpternlogv64qi_1 */
17325 :
17326 : case 1:
17327 : if (!(
17328 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17329 : ((32 == 64 || TARGET_AVX512VL
17330 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17331 : && ix86_pre_reload_split ()
17332 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17333 : STRIP_UNARY (operands[4]))
17334 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17335 : STRIP_UNARY (operands[4]))
17336 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17337 : STRIP_UNARY (operands[3]))
17338 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17339 : STRIP_UNARY (operands[3])))) &&
17340 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17341 : (TARGET_AVX)))
17342 : return -1;
17343 : return 5626; /* *avx512vl_vpternlogv32qi_1 */
17344 :
17345 : case 2:
17346 : if (!
17347 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17348 : ((16 == 64 || TARGET_AVX512VL
17349 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17350 : && ix86_pre_reload_split ()
17351 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17352 : STRIP_UNARY (operands[4]))
17353 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17354 : STRIP_UNARY (operands[4]))
17355 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17356 : STRIP_UNARY (operands[3]))
17357 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17358 : STRIP_UNARY (operands[3])))))
17359 : return -1;
17360 : return 5653; /* *avx512vl_vpternlogv16qi_1 */
17361 :
17362 : case 3:
17363 : if (!(
17364 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17365 : ((64 == 64 || TARGET_AVX512VL
17366 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17367 : && ix86_pre_reload_split ()
17368 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17369 : STRIP_UNARY (operands[4]))
17370 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17371 : STRIP_UNARY (operands[4]))
17372 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17373 : STRIP_UNARY (operands[3]))
17374 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17375 : STRIP_UNARY (operands[3])))) &&
17376 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17377 : (TARGET_AVX512F)))
17378 : return -1;
17379 : return 5680; /* *avx512bw_vpternlogv32hi_1 */
17380 :
17381 : case 4:
17382 : if (!(
17383 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17384 : ((32 == 64 || TARGET_AVX512VL
17385 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17386 : && ix86_pre_reload_split ()
17387 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17388 : STRIP_UNARY (operands[4]))
17389 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17390 : STRIP_UNARY (operands[4]))
17391 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17392 : STRIP_UNARY (operands[3]))
17393 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17394 : STRIP_UNARY (operands[3])))) &&
17395 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17396 : (TARGET_AVX)))
17397 : return -1;
17398 : return 5707; /* *avx512vl_vpternlogv16hi_1 */
17399 :
17400 : case 5:
17401 : if (!
17402 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17403 : ((16 == 64 || TARGET_AVX512VL
17404 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17405 : && ix86_pre_reload_split ()
17406 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17407 : STRIP_UNARY (operands[4]))
17408 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17409 : STRIP_UNARY (operands[4]))
17410 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17411 : STRIP_UNARY (operands[3]))
17412 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17413 : STRIP_UNARY (operands[3])))))
17414 : return -1;
17415 : return 5734; /* *avx512vl_vpternlogv8hi_1 */
17416 :
17417 : case 6:
17418 : if (!(
17419 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17420 : ((64 == 64 || TARGET_AVX512VL
17421 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17422 : && ix86_pre_reload_split ()
17423 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17424 : STRIP_UNARY (operands[4]))
17425 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17426 : STRIP_UNARY (operands[4]))
17427 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17428 : STRIP_UNARY (operands[3]))
17429 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17430 : STRIP_UNARY (operands[3])))) &&
17431 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17432 : (TARGET_AVX512F)))
17433 : return -1;
17434 : return 5761; /* *avx512f_vpternlogv16si_1 */
17435 :
17436 : case 7:
17437 : if (!(
17438 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17439 : ((32 == 64 || TARGET_AVX512VL
17440 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17441 : && ix86_pre_reload_split ()
17442 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17443 : STRIP_UNARY (operands[4]))
17444 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17445 : STRIP_UNARY (operands[4]))
17446 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17447 : STRIP_UNARY (operands[3]))
17448 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17449 : STRIP_UNARY (operands[3])))) &&
17450 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17451 : (TARGET_AVX)))
17452 : return -1;
17453 : return 5788; /* *avx512vl_vpternlogv8si_1 */
17454 :
17455 : case 8:
17456 : if (!
17457 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17458 : ((16 == 64 || TARGET_AVX512VL
17459 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17460 : && ix86_pre_reload_split ()
17461 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17462 : STRIP_UNARY (operands[4]))
17463 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17464 : STRIP_UNARY (operands[4]))
17465 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17466 : STRIP_UNARY (operands[3]))
17467 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17468 : STRIP_UNARY (operands[3])))))
17469 : return -1;
17470 : return 5815; /* *avx512vl_vpternlogv4si_1 */
17471 :
17472 : case 9:
17473 : if (!(
17474 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17475 : ((64 == 64 || TARGET_AVX512VL
17476 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17477 : && ix86_pre_reload_split ()
17478 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17479 : STRIP_UNARY (operands[4]))
17480 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17481 : STRIP_UNARY (operands[4]))
17482 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17483 : STRIP_UNARY (operands[3]))
17484 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17485 : STRIP_UNARY (operands[3])))) &&
17486 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17487 : (TARGET_AVX512F)))
17488 : return -1;
17489 : return 5842; /* *avx512f_vpternlogv8di_1 */
17490 :
17491 : case 10:
17492 : if (!(
17493 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17494 : ((32 == 64 || TARGET_AVX512VL
17495 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17496 : && ix86_pre_reload_split ()
17497 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17498 : STRIP_UNARY (operands[4]))
17499 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17500 : STRIP_UNARY (operands[4]))
17501 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17502 : STRIP_UNARY (operands[3]))
17503 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17504 : STRIP_UNARY (operands[3])))) &&
17505 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17506 : (TARGET_AVX)))
17507 : return -1;
17508 : return 5869; /* *avx512vl_vpternlogv4di_1 */
17509 :
17510 : case 11:
17511 : if (!
17512 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17513 : ((16 == 64 || TARGET_AVX512VL
17514 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17515 : && ix86_pre_reload_split ()
17516 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17517 : STRIP_UNARY (operands[4]))
17518 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17519 : STRIP_UNARY (operands[4]))
17520 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17521 : STRIP_UNARY (operands[3]))
17522 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17523 : STRIP_UNARY (operands[3])))))
17524 : return -1;
17525 : return 5896; /* *avx512vl_vpternlogv2di_1 */
17526 :
17527 : case 12:
17528 : if (!(
17529 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17530 : ((64 == 64 || TARGET_AVX512VL
17531 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17532 : && ix86_pre_reload_split ()
17533 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17534 : STRIP_UNARY (operands[4]))
17535 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17536 : STRIP_UNARY (operands[4]))
17537 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17538 : STRIP_UNARY (operands[3]))
17539 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17540 : STRIP_UNARY (operands[3])))) &&
17541 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17542 : (TARGET_AVX512F)))
17543 : return -1;
17544 : return 5602; /* *avx512bw_vpternlogv64qi_1 */
17545 :
17546 : case 13:
17547 : if (!(
17548 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17549 : ((32 == 64 || TARGET_AVX512VL
17550 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17551 : && ix86_pre_reload_split ()
17552 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17553 : STRIP_UNARY (operands[4]))
17554 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17555 : STRIP_UNARY (operands[4]))
17556 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17557 : STRIP_UNARY (operands[3]))
17558 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17559 : STRIP_UNARY (operands[3])))) &&
17560 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17561 : (TARGET_AVX)))
17562 : return -1;
17563 : return 5629; /* *avx512vl_vpternlogv32qi_1 */
17564 :
17565 : case 14:
17566 : if (!
17567 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17568 : ((16 == 64 || TARGET_AVX512VL
17569 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17570 : && ix86_pre_reload_split ()
17571 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17572 : STRIP_UNARY (operands[4]))
17573 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17574 : STRIP_UNARY (operands[4]))
17575 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17576 : STRIP_UNARY (operands[3]))
17577 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17578 : STRIP_UNARY (operands[3])))))
17579 : return -1;
17580 : return 5656; /* *avx512vl_vpternlogv16qi_1 */
17581 :
17582 : case 15:
17583 : if (!(
17584 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17585 : ((64 == 64 || TARGET_AVX512VL
17586 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17587 : && ix86_pre_reload_split ()
17588 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17589 : STRIP_UNARY (operands[4]))
17590 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17591 : STRIP_UNARY (operands[4]))
17592 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17593 : STRIP_UNARY (operands[3]))
17594 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17595 : STRIP_UNARY (operands[3])))) &&
17596 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17597 : (TARGET_AVX512F)))
17598 : return -1;
17599 : return 5683; /* *avx512bw_vpternlogv32hi_1 */
17600 :
17601 : case 16:
17602 : if (!(
17603 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17604 : ((32 == 64 || TARGET_AVX512VL
17605 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17606 : && ix86_pre_reload_split ()
17607 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17608 : STRIP_UNARY (operands[4]))
17609 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17610 : STRIP_UNARY (operands[4]))
17611 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17612 : STRIP_UNARY (operands[3]))
17613 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17614 : STRIP_UNARY (operands[3])))) &&
17615 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17616 : (TARGET_AVX)))
17617 : return -1;
17618 : return 5710; /* *avx512vl_vpternlogv16hi_1 */
17619 :
17620 : case 17:
17621 : if (!
17622 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17623 : ((16 == 64 || TARGET_AVX512VL
17624 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17625 : && ix86_pre_reload_split ()
17626 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17627 : STRIP_UNARY (operands[4]))
17628 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17629 : STRIP_UNARY (operands[4]))
17630 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17631 : STRIP_UNARY (operands[3]))
17632 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17633 : STRIP_UNARY (operands[3])))))
17634 : return -1;
17635 : return 5737; /* *avx512vl_vpternlogv8hi_1 */
17636 :
17637 : case 18:
17638 : if (!(
17639 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17640 : ((64 == 64 || TARGET_AVX512VL
17641 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17642 : && ix86_pre_reload_split ()
17643 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17644 : STRIP_UNARY (operands[4]))
17645 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17646 : STRIP_UNARY (operands[4]))
17647 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17648 : STRIP_UNARY (operands[3]))
17649 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17650 : STRIP_UNARY (operands[3])))) &&
17651 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17652 : (TARGET_AVX512F)))
17653 : return -1;
17654 : return 5764; /* *avx512f_vpternlogv16si_1 */
17655 :
17656 : case 19:
17657 : if (!(
17658 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17659 : ((32 == 64 || TARGET_AVX512VL
17660 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17661 : && ix86_pre_reload_split ()
17662 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17663 : STRIP_UNARY (operands[4]))
17664 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17665 : STRIP_UNARY (operands[4]))
17666 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17667 : STRIP_UNARY (operands[3]))
17668 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17669 : STRIP_UNARY (operands[3])))) &&
17670 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17671 : (TARGET_AVX)))
17672 : return -1;
17673 : return 5791; /* *avx512vl_vpternlogv8si_1 */
17674 :
17675 : case 20:
17676 : if (!
17677 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17678 : ((16 == 64 || TARGET_AVX512VL
17679 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17680 : && ix86_pre_reload_split ()
17681 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17682 : STRIP_UNARY (operands[4]))
17683 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17684 : STRIP_UNARY (operands[4]))
17685 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17686 : STRIP_UNARY (operands[3]))
17687 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17688 : STRIP_UNARY (operands[3])))))
17689 : return -1;
17690 : return 5818; /* *avx512vl_vpternlogv4si_1 */
17691 :
17692 : case 21:
17693 : if (!(
17694 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17695 : ((64 == 64 || TARGET_AVX512VL
17696 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17697 : && ix86_pre_reload_split ()
17698 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17699 : STRIP_UNARY (operands[4]))
17700 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17701 : STRIP_UNARY (operands[4]))
17702 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17703 : STRIP_UNARY (operands[3]))
17704 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17705 : STRIP_UNARY (operands[3])))) &&
17706 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17707 : (TARGET_AVX512F)))
17708 : return -1;
17709 : return 5845; /* *avx512f_vpternlogv8di_1 */
17710 :
17711 : case 22:
17712 : if (!(
17713 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17714 : ((32 == 64 || TARGET_AVX512VL
17715 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17716 : && ix86_pre_reload_split ()
17717 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17718 : STRIP_UNARY (operands[4]))
17719 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17720 : STRIP_UNARY (operands[4]))
17721 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17722 : STRIP_UNARY (operands[3]))
17723 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17724 : STRIP_UNARY (operands[3])))) &&
17725 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17726 : (TARGET_AVX)))
17727 : return -1;
17728 : return 5872; /* *avx512vl_vpternlogv4di_1 */
17729 :
17730 : case 23:
17731 : if (!
17732 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17733 : ((16 == 64 || TARGET_AVX512VL
17734 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17735 : && ix86_pre_reload_split ()
17736 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17737 : STRIP_UNARY (operands[4]))
17738 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17739 : STRIP_UNARY (operands[4]))
17740 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17741 : STRIP_UNARY (operands[3]))
17742 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17743 : STRIP_UNARY (operands[3])))))
17744 : return -1;
17745 : return 5899; /* *avx512vl_vpternlogv2di_1 */
17746 :
17747 : case 24:
17748 : if (!(
17749 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17750 : ((64 == 64 || TARGET_AVX512VL
17751 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17752 : && ix86_pre_reload_split ()
17753 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17754 : STRIP_UNARY (operands[4]))
17755 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17756 : STRIP_UNARY (operands[4]))
17757 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17758 : STRIP_UNARY (operands[3]))
17759 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17760 : STRIP_UNARY (operands[3])))) &&
17761 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17762 : (TARGET_AVX512F)))
17763 : return -1;
17764 : return 5605; /* *avx512bw_vpternlogv64qi_1 */
17765 :
17766 : case 25:
17767 : if (!(
17768 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17769 : ((32 == 64 || TARGET_AVX512VL
17770 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17771 : && ix86_pre_reload_split ()
17772 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17773 : STRIP_UNARY (operands[4]))
17774 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17775 : STRIP_UNARY (operands[4]))
17776 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17777 : STRIP_UNARY (operands[3]))
17778 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17779 : STRIP_UNARY (operands[3])))) &&
17780 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17781 : (TARGET_AVX)))
17782 : return -1;
17783 : return 5632; /* *avx512vl_vpternlogv32qi_1 */
17784 :
17785 : case 26:
17786 : if (!
17787 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17788 : ((16 == 64 || TARGET_AVX512VL
17789 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17790 : && ix86_pre_reload_split ()
17791 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17792 : STRIP_UNARY (operands[4]))
17793 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17794 : STRIP_UNARY (operands[4]))
17795 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17796 : STRIP_UNARY (operands[3]))
17797 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17798 : STRIP_UNARY (operands[3])))))
17799 : return -1;
17800 : return 5659; /* *avx512vl_vpternlogv16qi_1 */
17801 :
17802 : case 27:
17803 : if (!(
17804 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17805 : ((64 == 64 || TARGET_AVX512VL
17806 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17807 : && ix86_pre_reload_split ()
17808 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17809 : STRIP_UNARY (operands[4]))
17810 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17811 : STRIP_UNARY (operands[4]))
17812 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17813 : STRIP_UNARY (operands[3]))
17814 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17815 : STRIP_UNARY (operands[3])))) &&
17816 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17817 : (TARGET_AVX512F)))
17818 : return -1;
17819 : return 5686; /* *avx512bw_vpternlogv32hi_1 */
17820 :
17821 : case 28:
17822 : if (!(
17823 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17824 : ((32 == 64 || TARGET_AVX512VL
17825 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17826 : && ix86_pre_reload_split ()
17827 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17828 : STRIP_UNARY (operands[4]))
17829 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17830 : STRIP_UNARY (operands[4]))
17831 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17832 : STRIP_UNARY (operands[3]))
17833 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17834 : STRIP_UNARY (operands[3])))) &&
17835 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17836 : (TARGET_AVX)))
17837 : return -1;
17838 : return 5713; /* *avx512vl_vpternlogv16hi_1 */
17839 :
17840 : case 29:
17841 : if (!
17842 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17843 : ((16 == 64 || TARGET_AVX512VL
17844 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17845 : && ix86_pre_reload_split ()
17846 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17847 : STRIP_UNARY (operands[4]))
17848 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17849 : STRIP_UNARY (operands[4]))
17850 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17851 : STRIP_UNARY (operands[3]))
17852 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17853 : STRIP_UNARY (operands[3])))))
17854 : return -1;
17855 : return 5740; /* *avx512vl_vpternlogv8hi_1 */
17856 :
17857 : case 30:
17858 : if (!(
17859 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17860 : ((64 == 64 || TARGET_AVX512VL
17861 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17862 : && ix86_pre_reload_split ()
17863 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17864 : STRIP_UNARY (operands[4]))
17865 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17866 : STRIP_UNARY (operands[4]))
17867 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17868 : STRIP_UNARY (operands[3]))
17869 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17870 : STRIP_UNARY (operands[3])))) &&
17871 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17872 : (TARGET_AVX512F)))
17873 : return -1;
17874 : return 5767; /* *avx512f_vpternlogv16si_1 */
17875 :
17876 : case 31:
17877 : if (!(
17878 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17879 : ((32 == 64 || TARGET_AVX512VL
17880 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17881 : && ix86_pre_reload_split ()
17882 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17883 : STRIP_UNARY (operands[4]))
17884 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17885 : STRIP_UNARY (operands[4]))
17886 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17887 : STRIP_UNARY (operands[3]))
17888 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17889 : STRIP_UNARY (operands[3])))) &&
17890 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17891 : (TARGET_AVX)))
17892 : return -1;
17893 : return 5794; /* *avx512vl_vpternlogv8si_1 */
17894 :
17895 : case 32:
17896 : if (!
17897 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17898 : ((16 == 64 || TARGET_AVX512VL
17899 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17900 : && ix86_pre_reload_split ()
17901 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17902 : STRIP_UNARY (operands[4]))
17903 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17904 : STRIP_UNARY (operands[4]))
17905 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17906 : STRIP_UNARY (operands[3]))
17907 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17908 : STRIP_UNARY (operands[3])))))
17909 : return -1;
17910 : return 5821; /* *avx512vl_vpternlogv4si_1 */
17911 :
17912 : case 33:
17913 : if (!(
17914 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17915 : ((64 == 64 || TARGET_AVX512VL
17916 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17917 : && ix86_pre_reload_split ()
17918 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17919 : STRIP_UNARY (operands[4]))
17920 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17921 : STRIP_UNARY (operands[4]))
17922 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17923 : STRIP_UNARY (operands[3]))
17924 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17925 : STRIP_UNARY (operands[3])))) &&
17926 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17927 : (TARGET_AVX512F)))
17928 : return -1;
17929 : return 5848; /* *avx512f_vpternlogv8di_1 */
17930 :
17931 : case 34:
17932 : if (!(
17933 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17934 : ((32 == 64 || TARGET_AVX512VL
17935 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17936 : && ix86_pre_reload_split ()
17937 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17938 : STRIP_UNARY (operands[4]))
17939 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17940 : STRIP_UNARY (operands[4]))
17941 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17942 : STRIP_UNARY (operands[3]))
17943 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17944 : STRIP_UNARY (operands[3])))) &&
17945 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17946 : (TARGET_AVX)))
17947 : return -1;
17948 : return 5875; /* *avx512vl_vpternlogv4di_1 */
17949 :
17950 : case 35:
17951 : if (!
17952 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17953 : ((16 == 64 || TARGET_AVX512VL
17954 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17955 : && ix86_pre_reload_split ()
17956 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17957 : STRIP_UNARY (operands[4]))
17958 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17959 : STRIP_UNARY (operands[4]))
17960 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17961 : STRIP_UNARY (operands[3]))
17962 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17963 : STRIP_UNARY (operands[3])))))
17964 : return -1;
17965 : return 5902; /* *avx512vl_vpternlogv2di_1 */
17966 :
17967 : case 36:
17968 : if (!(
17969 : #line 14662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17970 : ((64 == 64 || TARGET_AVX512VL
17971 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17972 : && ix86_pre_reload_split ()) &&
17973 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17974 : (TARGET_AVX512F)))
17975 : return -1;
17976 : return 6889; /* *avx512bw_vpternlogv64qi_3 */
17977 :
17978 : case 37:
17979 : if (!(
17980 : #line 14662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17981 : ((32 == 64 || TARGET_AVX512VL
17982 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17983 : && ix86_pre_reload_split ()) &&
17984 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17985 : (TARGET_AVX)))
17986 : return -1;
17987 : return 6898; /* *avx512vl_vpternlogv32qi_3 */
17988 :
17989 : case 38:
17990 : if (!
17991 : #line 14662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17992 : ((16 == 64 || TARGET_AVX512VL
17993 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17994 : && ix86_pre_reload_split ()))
17995 : return -1;
17996 : return 6907; /* *avx512vl_vpternlogv16qi_3 */
17997 :
17998 : case 39:
17999 : if (!(
18000 : #line 14662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18001 : ((64 == 64 || TARGET_AVX512VL
18002 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18003 : && ix86_pre_reload_split ()) &&
18004 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18005 : (TARGET_AVX512F)))
18006 : return -1;
18007 : return 6916; /* *avx512bw_vpternlogv32hi_3 */
18008 :
18009 : case 40:
18010 : if (!(
18011 : #line 14662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18012 : ((32 == 64 || TARGET_AVX512VL
18013 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18014 : && ix86_pre_reload_split ()) &&
18015 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18016 : (TARGET_AVX)))
18017 : return -1;
18018 : return 6925; /* *avx512vl_vpternlogv16hi_3 */
18019 :
18020 : case 41:
18021 : if (!
18022 : #line 14662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18023 : ((16 == 64 || TARGET_AVX512VL
18024 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18025 : && ix86_pre_reload_split ()))
18026 : return -1;
18027 : return 6934; /* *avx512vl_vpternlogv8hi_3 */
18028 :
18029 : case 42:
18030 : if (!(
18031 : #line 14662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18032 : ((64 == 64 || TARGET_AVX512VL
18033 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18034 : && ix86_pre_reload_split ()) &&
18035 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18036 : (TARGET_AVX512F)))
18037 : return -1;
18038 : return 6943; /* *avx512f_vpternlogv16si_3 */
18039 :
18040 : case 43:
18041 : if (!(
18042 : #line 14662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18043 : ((32 == 64 || TARGET_AVX512VL
18044 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18045 : && ix86_pre_reload_split ()) &&
18046 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18047 : (TARGET_AVX)))
18048 : return -1;
18049 : return 6952; /* *avx512vl_vpternlogv8si_3 */
18050 :
18051 : case 44:
18052 : if (!
18053 : #line 14662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18054 : ((16 == 64 || TARGET_AVX512VL
18055 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18056 : && ix86_pre_reload_split ()))
18057 : return -1;
18058 : return 6961; /* *avx512vl_vpternlogv4si_3 */
18059 :
18060 : case 45:
18061 : if (!(
18062 : #line 14662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18063 : ((64 == 64 || TARGET_AVX512VL
18064 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18065 : && ix86_pre_reload_split ()) &&
18066 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18067 : (TARGET_AVX512F)))
18068 : return -1;
18069 : return 6970; /* *avx512f_vpternlogv8di_3 */
18070 :
18071 : case 46:
18072 : if (!(
18073 : #line 14662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18074 : ((32 == 64 || TARGET_AVX512VL
18075 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18076 : && ix86_pre_reload_split ()) &&
18077 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18078 : (TARGET_AVX)))
18079 : return -1;
18080 : return 6979; /* *avx512vl_vpternlogv4di_3 */
18081 :
18082 : case 47:
18083 : if (!
18084 : #line 14662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18085 : ((16 == 64 || TARGET_AVX512VL
18086 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18087 : && ix86_pre_reload_split ()))
18088 : return -1;
18089 : return 6988; /* *avx512vl_vpternlogv2di_3 */
18090 :
18091 : default:
18092 : return -1;
18093 : }
18094 :
18095 : case AND:
18096 : switch (pattern539 (x2))
18097 : {
18098 : case 0:
18099 : if (!(
18100 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18101 : ((64 == 64 || TARGET_AVX512VL
18102 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18103 : && ix86_pre_reload_split ()
18104 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18105 : STRIP_UNARY (operands[4]))
18106 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18107 : STRIP_UNARY (operands[4]))
18108 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18109 : STRIP_UNARY (operands[3]))
18110 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18111 : STRIP_UNARY (operands[3])))) &&
18112 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18113 : (TARGET_AVX512F)))
18114 : return -1;
18115 : return 6247; /* *avx512bw_vpternlogv64qi_2 */
18116 :
18117 : case 1:
18118 : if (!(
18119 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18120 : ((32 == 64 || TARGET_AVX512VL
18121 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18122 : && ix86_pre_reload_split ()
18123 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18124 : STRIP_UNARY (operands[4]))
18125 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18126 : STRIP_UNARY (operands[4]))
18127 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18128 : STRIP_UNARY (operands[3]))
18129 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18130 : STRIP_UNARY (operands[3])))) &&
18131 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18132 : (TARGET_AVX)))
18133 : return -1;
18134 : return 6274; /* *avx512vl_vpternlogv32qi_2 */
18135 :
18136 : case 2:
18137 : if (!
18138 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18139 : ((16 == 64 || TARGET_AVX512VL
18140 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18141 : && ix86_pre_reload_split ()
18142 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18143 : STRIP_UNARY (operands[4]))
18144 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18145 : STRIP_UNARY (operands[4]))
18146 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18147 : STRIP_UNARY (operands[3]))
18148 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18149 : STRIP_UNARY (operands[3])))))
18150 : return -1;
18151 : return 6301; /* *avx512vl_vpternlogv16qi_2 */
18152 :
18153 : case 3:
18154 : if (!(
18155 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18156 : ((64 == 64 || TARGET_AVX512VL
18157 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18158 : && ix86_pre_reload_split ()
18159 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18160 : STRIP_UNARY (operands[4]))
18161 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18162 : STRIP_UNARY (operands[4]))
18163 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18164 : STRIP_UNARY (operands[3]))
18165 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18166 : STRIP_UNARY (operands[3])))) &&
18167 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18168 : (TARGET_AVX512F)))
18169 : return -1;
18170 : return 6328; /* *avx512bw_vpternlogv32hi_2 */
18171 :
18172 : case 4:
18173 : if (!(
18174 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18175 : ((32 == 64 || TARGET_AVX512VL
18176 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18177 : && ix86_pre_reload_split ()
18178 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18179 : STRIP_UNARY (operands[4]))
18180 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18181 : STRIP_UNARY (operands[4]))
18182 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18183 : STRIP_UNARY (operands[3]))
18184 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18185 : STRIP_UNARY (operands[3])))) &&
18186 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18187 : (TARGET_AVX)))
18188 : return -1;
18189 : return 6355; /* *avx512vl_vpternlogv16hi_2 */
18190 :
18191 : case 5:
18192 : if (!
18193 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18194 : ((16 == 64 || TARGET_AVX512VL
18195 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18196 : && ix86_pre_reload_split ()
18197 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18198 : STRIP_UNARY (operands[4]))
18199 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18200 : STRIP_UNARY (operands[4]))
18201 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18202 : STRIP_UNARY (operands[3]))
18203 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18204 : STRIP_UNARY (operands[3])))))
18205 : return -1;
18206 : return 6382; /* *avx512vl_vpternlogv8hi_2 */
18207 :
18208 : case 6:
18209 : if (!(
18210 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18211 : ((64 == 64 || TARGET_AVX512VL
18212 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18213 : && ix86_pre_reload_split ()
18214 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18215 : STRIP_UNARY (operands[4]))
18216 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18217 : STRIP_UNARY (operands[4]))
18218 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18219 : STRIP_UNARY (operands[3]))
18220 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18221 : STRIP_UNARY (operands[3])))) &&
18222 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18223 : (TARGET_AVX512F)))
18224 : return -1;
18225 : return 6409; /* *avx512f_vpternlogv16si_2 */
18226 :
18227 : case 7:
18228 : if (!(
18229 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18230 : ((32 == 64 || TARGET_AVX512VL
18231 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18232 : && ix86_pre_reload_split ()
18233 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18234 : STRIP_UNARY (operands[4]))
18235 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18236 : STRIP_UNARY (operands[4]))
18237 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18238 : STRIP_UNARY (operands[3]))
18239 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18240 : STRIP_UNARY (operands[3])))) &&
18241 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18242 : (TARGET_AVX)))
18243 : return -1;
18244 : return 6436; /* *avx512vl_vpternlogv8si_2 */
18245 :
18246 : case 8:
18247 : if (!
18248 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18249 : ((16 == 64 || TARGET_AVX512VL
18250 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18251 : && ix86_pre_reload_split ()
18252 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18253 : STRIP_UNARY (operands[4]))
18254 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18255 : STRIP_UNARY (operands[4]))
18256 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18257 : STRIP_UNARY (operands[3]))
18258 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18259 : STRIP_UNARY (operands[3])))))
18260 : return -1;
18261 : return 6463; /* *avx512vl_vpternlogv4si_2 */
18262 :
18263 : case 9:
18264 : if (!(
18265 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18266 : ((64 == 64 || TARGET_AVX512VL
18267 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18268 : && ix86_pre_reload_split ()
18269 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18270 : STRIP_UNARY (operands[4]))
18271 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18272 : STRIP_UNARY (operands[4]))
18273 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18274 : STRIP_UNARY (operands[3]))
18275 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18276 : STRIP_UNARY (operands[3])))) &&
18277 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18278 : (TARGET_AVX512F)))
18279 : return -1;
18280 : return 6490; /* *avx512f_vpternlogv8di_2 */
18281 :
18282 : case 10:
18283 : if (!(
18284 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18285 : ((32 == 64 || TARGET_AVX512VL
18286 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18287 : && ix86_pre_reload_split ()
18288 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18289 : STRIP_UNARY (operands[4]))
18290 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18291 : STRIP_UNARY (operands[4]))
18292 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18293 : STRIP_UNARY (operands[3]))
18294 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18295 : STRIP_UNARY (operands[3])))) &&
18296 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18297 : (TARGET_AVX)))
18298 : return -1;
18299 : return 6517; /* *avx512vl_vpternlogv4di_2 */
18300 :
18301 : case 11:
18302 : if (!
18303 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18304 : ((16 == 64 || TARGET_AVX512VL
18305 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18306 : && ix86_pre_reload_split ()
18307 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18308 : STRIP_UNARY (operands[4]))
18309 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18310 : STRIP_UNARY (operands[4]))
18311 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18312 : STRIP_UNARY (operands[3]))
18313 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18314 : STRIP_UNARY (operands[3])))))
18315 : return -1;
18316 : return 6544; /* *avx512vl_vpternlogv2di_2 */
18317 :
18318 : default:
18319 : return -1;
18320 : }
18321 :
18322 : case IOR:
18323 : switch (pattern539 (x2))
18324 : {
18325 : case 0:
18326 : if (!(
18327 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18328 : ((64 == 64 || TARGET_AVX512VL
18329 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18330 : && ix86_pre_reload_split ()
18331 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18332 : STRIP_UNARY (operands[4]))
18333 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18334 : STRIP_UNARY (operands[4]))
18335 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18336 : STRIP_UNARY (operands[3]))
18337 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18338 : STRIP_UNARY (operands[3])))) &&
18339 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18340 : (TARGET_AVX512F)))
18341 : return -1;
18342 : return 6250; /* *avx512bw_vpternlogv64qi_2 */
18343 :
18344 : case 1:
18345 : if (!(
18346 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18347 : ((32 == 64 || TARGET_AVX512VL
18348 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18349 : && ix86_pre_reload_split ()
18350 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18351 : STRIP_UNARY (operands[4]))
18352 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18353 : STRIP_UNARY (operands[4]))
18354 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18355 : STRIP_UNARY (operands[3]))
18356 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18357 : STRIP_UNARY (operands[3])))) &&
18358 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18359 : (TARGET_AVX)))
18360 : return -1;
18361 : return 6277; /* *avx512vl_vpternlogv32qi_2 */
18362 :
18363 : case 2:
18364 : if (!
18365 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18366 : ((16 == 64 || TARGET_AVX512VL
18367 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18368 : && ix86_pre_reload_split ()
18369 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18370 : STRIP_UNARY (operands[4]))
18371 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18372 : STRIP_UNARY (operands[4]))
18373 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18374 : STRIP_UNARY (operands[3]))
18375 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18376 : STRIP_UNARY (operands[3])))))
18377 : return -1;
18378 : return 6304; /* *avx512vl_vpternlogv16qi_2 */
18379 :
18380 : case 3:
18381 : if (!(
18382 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18383 : ((64 == 64 || TARGET_AVX512VL
18384 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18385 : && ix86_pre_reload_split ()
18386 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18387 : STRIP_UNARY (operands[4]))
18388 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18389 : STRIP_UNARY (operands[4]))
18390 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18391 : STRIP_UNARY (operands[3]))
18392 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18393 : STRIP_UNARY (operands[3])))) &&
18394 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18395 : (TARGET_AVX512F)))
18396 : return -1;
18397 : return 6331; /* *avx512bw_vpternlogv32hi_2 */
18398 :
18399 : case 4:
18400 : if (!(
18401 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18402 : ((32 == 64 || TARGET_AVX512VL
18403 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18404 : && ix86_pre_reload_split ()
18405 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18406 : STRIP_UNARY (operands[4]))
18407 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18408 : STRIP_UNARY (operands[4]))
18409 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18410 : STRIP_UNARY (operands[3]))
18411 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18412 : STRIP_UNARY (operands[3])))) &&
18413 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18414 : (TARGET_AVX)))
18415 : return -1;
18416 : return 6358; /* *avx512vl_vpternlogv16hi_2 */
18417 :
18418 : case 5:
18419 : if (!
18420 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18421 : ((16 == 64 || TARGET_AVX512VL
18422 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18423 : && ix86_pre_reload_split ()
18424 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18425 : STRIP_UNARY (operands[4]))
18426 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18427 : STRIP_UNARY (operands[4]))
18428 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18429 : STRIP_UNARY (operands[3]))
18430 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18431 : STRIP_UNARY (operands[3])))))
18432 : return -1;
18433 : return 6385; /* *avx512vl_vpternlogv8hi_2 */
18434 :
18435 : case 6:
18436 : if (!(
18437 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18438 : ((64 == 64 || TARGET_AVX512VL
18439 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18440 : && ix86_pre_reload_split ()
18441 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18442 : STRIP_UNARY (operands[4]))
18443 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18444 : STRIP_UNARY (operands[4]))
18445 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18446 : STRIP_UNARY (operands[3]))
18447 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18448 : STRIP_UNARY (operands[3])))) &&
18449 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18450 : (TARGET_AVX512F)))
18451 : return -1;
18452 : return 6412; /* *avx512f_vpternlogv16si_2 */
18453 :
18454 : case 7:
18455 : if (!(
18456 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18457 : ((32 == 64 || TARGET_AVX512VL
18458 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18459 : && ix86_pre_reload_split ()
18460 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18461 : STRIP_UNARY (operands[4]))
18462 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18463 : STRIP_UNARY (operands[4]))
18464 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18465 : STRIP_UNARY (operands[3]))
18466 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18467 : STRIP_UNARY (operands[3])))) &&
18468 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18469 : (TARGET_AVX)))
18470 : return -1;
18471 : return 6439; /* *avx512vl_vpternlogv8si_2 */
18472 :
18473 : case 8:
18474 : if (!
18475 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18476 : ((16 == 64 || TARGET_AVX512VL
18477 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18478 : && ix86_pre_reload_split ()
18479 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18480 : STRIP_UNARY (operands[4]))
18481 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18482 : STRIP_UNARY (operands[4]))
18483 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18484 : STRIP_UNARY (operands[3]))
18485 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18486 : STRIP_UNARY (operands[3])))))
18487 : return -1;
18488 : return 6466; /* *avx512vl_vpternlogv4si_2 */
18489 :
18490 : case 9:
18491 : if (!(
18492 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18493 : ((64 == 64 || TARGET_AVX512VL
18494 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18495 : && ix86_pre_reload_split ()
18496 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18497 : STRIP_UNARY (operands[4]))
18498 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18499 : STRIP_UNARY (operands[4]))
18500 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18501 : STRIP_UNARY (operands[3]))
18502 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18503 : STRIP_UNARY (operands[3])))) &&
18504 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18505 : (TARGET_AVX512F)))
18506 : return -1;
18507 : return 6493; /* *avx512f_vpternlogv8di_2 */
18508 :
18509 : case 10:
18510 : if (!(
18511 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18512 : ((32 == 64 || TARGET_AVX512VL
18513 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18514 : && ix86_pre_reload_split ()
18515 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18516 : STRIP_UNARY (operands[4]))
18517 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18518 : STRIP_UNARY (operands[4]))
18519 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18520 : STRIP_UNARY (operands[3]))
18521 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18522 : STRIP_UNARY (operands[3])))) &&
18523 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18524 : (TARGET_AVX)))
18525 : return -1;
18526 : return 6520; /* *avx512vl_vpternlogv4di_2 */
18527 :
18528 : case 11:
18529 : if (!
18530 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18531 : ((16 == 64 || TARGET_AVX512VL
18532 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18533 : && ix86_pre_reload_split ()
18534 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18535 : STRIP_UNARY (operands[4]))
18536 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18537 : STRIP_UNARY (operands[4]))
18538 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18539 : STRIP_UNARY (operands[3]))
18540 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18541 : STRIP_UNARY (operands[3])))))
18542 : return -1;
18543 : return 6547; /* *avx512vl_vpternlogv2di_2 */
18544 :
18545 : default:
18546 : return -1;
18547 : }
18548 :
18549 : case XOR:
18550 : switch (pattern539 (x2))
18551 : {
18552 : case 0:
18553 : if (!(
18554 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18555 : ((64 == 64 || TARGET_AVX512VL
18556 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18557 : && ix86_pre_reload_split ()
18558 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18559 : STRIP_UNARY (operands[4]))
18560 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18561 : STRIP_UNARY (operands[4]))
18562 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18563 : STRIP_UNARY (operands[3]))
18564 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18565 : STRIP_UNARY (operands[3])))) &&
18566 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18567 : (TARGET_AVX512F)))
18568 : return -1;
18569 : return 6253; /* *avx512bw_vpternlogv64qi_2 */
18570 :
18571 : case 1:
18572 : if (!(
18573 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18574 : ((32 == 64 || TARGET_AVX512VL
18575 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18576 : && ix86_pre_reload_split ()
18577 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18578 : STRIP_UNARY (operands[4]))
18579 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18580 : STRIP_UNARY (operands[4]))
18581 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18582 : STRIP_UNARY (operands[3]))
18583 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18584 : STRIP_UNARY (operands[3])))) &&
18585 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18586 : (TARGET_AVX)))
18587 : return -1;
18588 : return 6280; /* *avx512vl_vpternlogv32qi_2 */
18589 :
18590 : case 2:
18591 : if (!
18592 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18593 : ((16 == 64 || TARGET_AVX512VL
18594 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18595 : && ix86_pre_reload_split ()
18596 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18597 : STRIP_UNARY (operands[4]))
18598 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18599 : STRIP_UNARY (operands[4]))
18600 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18601 : STRIP_UNARY (operands[3]))
18602 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18603 : STRIP_UNARY (operands[3])))))
18604 : return -1;
18605 : return 6307; /* *avx512vl_vpternlogv16qi_2 */
18606 :
18607 : case 3:
18608 : if (!(
18609 : #line 14578 "/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 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18622 : (TARGET_AVX512F)))
18623 : return -1;
18624 : return 6334; /* *avx512bw_vpternlogv32hi_2 */
18625 :
18626 : case 4:
18627 : if (!(
18628 : #line 14578 "/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 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18641 : (TARGET_AVX)))
18642 : return -1;
18643 : return 6361; /* *avx512vl_vpternlogv16hi_2 */
18644 :
18645 : case 5:
18646 : if (!
18647 : #line 14578 "/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 6388; /* *avx512vl_vpternlogv8hi_2 */
18661 :
18662 : case 6:
18663 : if (!(
18664 : #line 14578 "/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 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18677 : (TARGET_AVX512F)))
18678 : return -1;
18679 : return 6415; /* *avx512f_vpternlogv16si_2 */
18680 :
18681 : case 7:
18682 : if (!(
18683 : #line 14578 "/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 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18696 : (TARGET_AVX)))
18697 : return -1;
18698 : return 6442; /* *avx512vl_vpternlogv8si_2 */
18699 :
18700 : case 8:
18701 : if (!
18702 : #line 14578 "/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 6469; /* *avx512vl_vpternlogv4si_2 */
18716 :
18717 : case 9:
18718 : if (!(
18719 : #line 14578 "/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 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18732 : (TARGET_AVX512F)))
18733 : return -1;
18734 : return 6496; /* *avx512f_vpternlogv8di_2 */
18735 :
18736 : case 10:
18737 : if (!(
18738 : #line 14578 "/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 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18751 : (TARGET_AVX)))
18752 : return -1;
18753 : return 6523; /* *avx512vl_vpternlogv4di_2 */
18754 :
18755 : case 11:
18756 : if (!
18757 : #line 14578 "/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 6550; /* *avx512vl_vpternlogv2di_2 */
18771 :
18772 : default:
18773 : return -1;
18774 : }
18775 :
18776 : default:
18777 : return -1;
18778 : }
18779 : }
18780 :
18781 : int
18782 : recog_323 (rtx x1 ATTRIBUTE_UNUSED,
18783 : rtx_insn *insn ATTRIBUTE_UNUSED,
18784 : int *pnum_clobbers ATTRIBUTE_UNUSED)
18785 : {
18786 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
18787 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
18788 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
18789 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
18790 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
18791 : int res ATTRIBUTE_UNUSED;
18792 : x2 = XEXP (x1, 1);
18793 : x3 = XEXP (x2, 0);
18794 : x4 = XEXP (x3, 0);
18795 : x5 = XEXP (x4, 1);
18796 : if (GET_CODE (x5) != CONST_VECTOR
18797 : || XVECLEN (x5, 0) != 32
18798 : || pattern1379 (x5,
18799 : E_V32HImode) != 0)
18800 : return -1;
18801 : x6 = XVECEXP (x5, 0, 8);
18802 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18803 : return -1;
18804 : x7 = XVECEXP (x5, 0, 9);
18805 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18806 : return -1;
18807 : x8 = XVECEXP (x5, 0, 10);
18808 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18809 : return -1;
18810 : x9 = XVECEXP (x5, 0, 11);
18811 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18812 : return -1;
18813 : x10 = XVECEXP (x5, 0, 12);
18814 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18815 : return -1;
18816 : x11 = XVECEXP (x5, 0, 13);
18817 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18818 : return -1;
18819 : x12 = XVECEXP (x5, 0, 14);
18820 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18821 : return -1;
18822 : x13 = XVECEXP (x5, 0, 15);
18823 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18824 : return -1;
18825 : x14 = XVECEXP (x5, 0, 16);
18826 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18827 : return -1;
18828 : x15 = XVECEXP (x5, 0, 17);
18829 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18830 : return -1;
18831 : x16 = XVECEXP (x5, 0, 18);
18832 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18833 : return -1;
18834 : x17 = XVECEXP (x5, 0, 19);
18835 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18836 : return -1;
18837 : x18 = XVECEXP (x5, 0, 20);
18838 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18839 : return -1;
18840 : x19 = XVECEXP (x5, 0, 21);
18841 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18842 : return -1;
18843 : x20 = XVECEXP (x5, 0, 22);
18844 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18845 : return -1;
18846 : x21 = XVECEXP (x5, 0, 23);
18847 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18848 : return -1;
18849 : x22 = XVECEXP (x5, 0, 24);
18850 : if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18851 : return -1;
18852 : x23 = XVECEXP (x5, 0, 25);
18853 : if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18854 : return -1;
18855 : x24 = XVECEXP (x5, 0, 26);
18856 : if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18857 : return -1;
18858 : x25 = XVECEXP (x5, 0, 27);
18859 : if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18860 : return -1;
18861 : x26 = XVECEXP (x5, 0, 28);
18862 : if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18863 : return -1;
18864 : x27 = XVECEXP (x5, 0, 29);
18865 : if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18866 : return -1;
18867 : x28 = XVECEXP (x5, 0, 30);
18868 : if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18869 : return -1;
18870 : x29 = XVECEXP (x5, 0, 31);
18871 : if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
18872 : || !register_operand (operands[0], E_V32HImode)
18873 : || GET_MODE (x2) != E_V32HImode
18874 : || GET_MODE (x3) != E_V32SImode
18875 : || pattern1531 (x4,
18876 : E_V32SImode) != 0)
18877 : return -1;
18878 : x30 = XEXP (x4, 0);
18879 : x31 = XEXP (x30, 0);
18880 : x32 = XEXP (x31, 1);
18881 : if (GET_MODE (x32) != E_V32SImode)
18882 : return -1;
18883 : x33 = XEXP (x32, 0);
18884 : operands[2] = x33;
18885 : if (!nonimmediate_operand (operands[2], E_V32HImode)
18886 : || !
18887 : #line 23726 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18888 : (TARGET_AVX512BW))
18889 : return -1;
18890 : return 8731; /* avx512bw_umulhrswv32hi3 */
18891 : }
18892 :
18893 : int
18894 : recog_324 (rtx x1 ATTRIBUTE_UNUSED,
18895 : rtx_insn *insn ATTRIBUTE_UNUSED,
18896 : int *pnum_clobbers ATTRIBUTE_UNUSED)
18897 : {
18898 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
18899 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
18900 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
18901 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
18902 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
18903 : rtx x34, x35, x36, x37, x38, x39, x40, x41;
18904 : rtx x42, x43, x44, x45, x46, x47;
18905 : int res ATTRIBUTE_UNUSED;
18906 : x2 = XEXP (x1, 0);
18907 : operands[0] = x2;
18908 : x3 = XEXP (x1, 1);
18909 : x4 = XEXP (x3, 0);
18910 : switch (GET_CODE (x4))
18911 : {
18912 : case REG:
18913 : case SUBREG:
18914 : case MEM:
18915 : case VEC_DUPLICATE:
18916 : switch (pattern191 (x3))
18917 : {
18918 : case 0:
18919 : if (!(
18920 : #line 2690 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18921 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V32HFmode, operands)
18922 : && 1 && 1) &&
18923 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18924 : (TARGET_AVX512FP16)))
18925 : return -1;
18926 : return 2758; /* *addv32hf3 */
18927 :
18928 : case 1:
18929 : if (!(
18930 : #line 2690 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18931 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V16HFmode, operands)
18932 : && 1 && 1) &&
18933 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18934 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
18935 : return -1;
18936 : return 2766; /* *addv16hf3 */
18937 :
18938 : case 2:
18939 : if (!(
18940 : #line 2690 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18941 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V8HFmode, operands)
18942 : && 1 && 1) &&
18943 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18944 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
18945 : return -1;
18946 : return 2774; /* *addv8hf3 */
18947 :
18948 : case 3:
18949 : if (!(
18950 : #line 2690 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18951 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V16SFmode, operands)
18952 : && 1 && 1) &&
18953 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18954 : (TARGET_AVX512F)))
18955 : return -1;
18956 : return 2782; /* *addv16sf3 */
18957 :
18958 : case 4:
18959 : if (!(
18960 : #line 2690 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18961 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V8SFmode, operands)
18962 : && 1 && 1) &&
18963 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18964 : (TARGET_AVX)))
18965 : return -1;
18966 : return 2790; /* *addv8sf3 */
18967 :
18968 : case 5:
18969 : if (!
18970 : #line 2690 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18971 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V4SFmode, operands)
18972 : && 1 && 1))
18973 : return -1;
18974 : return 2798; /* *addv4sf3 */
18975 :
18976 : case 6:
18977 : if (!(
18978 : #line 2690 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18979 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V8DFmode, operands)
18980 : && 1 && 1) &&
18981 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18982 : (TARGET_AVX512F)))
18983 : return -1;
18984 : return 2806; /* *addv8df3 */
18985 :
18986 : case 7:
18987 : if (!(
18988 : #line 2690 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18989 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V4DFmode, operands)
18990 : && 1 && 1) &&
18991 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18992 : (TARGET_AVX)))
18993 : return -1;
18994 : return 2814; /* *addv4df3 */
18995 :
18996 : case 8:
18997 : if (!(
18998 : #line 2690 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18999 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V2DFmode, operands)
19000 : && 1 && 1) &&
19001 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19002 : (TARGET_SSE2)))
19003 : return -1;
19004 : return 2822; /* *addv2df3 */
19005 :
19006 : case 9:
19007 : if (!(
19008 : #line 16994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19009 : (TARGET_SSE2 && ix86_binary_operator_ok (PLUS, V64QImode, operands)) &&
19010 : #line 572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19011 : (TARGET_AVX512BW)))
19012 : return -1;
19013 : return 7549; /* *addv64qi3 */
19014 :
19015 : case 10:
19016 : if (!(
19017 : #line 16994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19018 : (TARGET_SSE2 && ix86_binary_operator_ok (PLUS, V32QImode, operands)) &&
19019 : #line 572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19020 : (TARGET_AVX2)))
19021 : return -1;
19022 : return 7551; /* *addv32qi3 */
19023 :
19024 : case 11:
19025 : if (!
19026 : #line 16994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19027 : (TARGET_SSE2 && ix86_binary_operator_ok (PLUS, V16QImode, operands)))
19028 : return -1;
19029 : return 7553; /* *addv16qi3 */
19030 :
19031 : case 12:
19032 : if (!(
19033 : #line 16994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19034 : (TARGET_SSE2 && ix86_binary_operator_ok (PLUS, V32HImode, operands)) &&
19035 : #line 573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19036 : (TARGET_AVX512BW)))
19037 : return -1;
19038 : return 7555; /* *addv32hi3 */
19039 :
19040 : case 13:
19041 : if (!(
19042 : #line 16994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19043 : (TARGET_SSE2 && ix86_binary_operator_ok (PLUS, V16HImode, operands)) &&
19044 : #line 573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19045 : (TARGET_AVX2)))
19046 : return -1;
19047 : return 7557; /* *addv16hi3 */
19048 :
19049 : case 14:
19050 : if (!
19051 : #line 16994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19052 : (TARGET_SSE2 && ix86_binary_operator_ok (PLUS, V8HImode, operands)))
19053 : return -1;
19054 : return 7559; /* *addv8hi3 */
19055 :
19056 : case 15:
19057 : if (!(
19058 : #line 16994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19059 : (TARGET_SSE2 && ix86_binary_operator_ok (PLUS, V16SImode, operands)) &&
19060 : #line 574 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19061 : (TARGET_AVX512F)))
19062 : return -1;
19063 : return 7561; /* *addv16si3 */
19064 :
19065 : case 16:
19066 : if (!(
19067 : #line 16994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19068 : (TARGET_SSE2 && ix86_binary_operator_ok (PLUS, V8SImode, operands)) &&
19069 : #line 574 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19070 : (TARGET_AVX2)))
19071 : return -1;
19072 : return 7563; /* *addv8si3 */
19073 :
19074 : case 17:
19075 : if (!
19076 : #line 16994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19077 : (TARGET_SSE2 && ix86_binary_operator_ok (PLUS, V4SImode, operands)))
19078 : return -1;
19079 : return 7565; /* *addv4si3 */
19080 :
19081 : case 18:
19082 : if (!(
19083 : #line 16994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19084 : (TARGET_SSE2 && ix86_binary_operator_ok (PLUS, V8DImode, operands)) &&
19085 : #line 575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19086 : (TARGET_AVX512F)))
19087 : return -1;
19088 : return 7567; /* *addv8di3 */
19089 :
19090 : case 19:
19091 : if (!(
19092 : #line 16994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19093 : (TARGET_SSE2 && ix86_binary_operator_ok (PLUS, V4DImode, operands)) &&
19094 : #line 575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19095 : (TARGET_AVX2)))
19096 : return -1;
19097 : return 7569; /* *addv4di3 */
19098 :
19099 : case 20:
19100 : if (!
19101 : #line 16994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19102 : (TARGET_SSE2 && ix86_binary_operator_ok (PLUS, V2DImode, operands)))
19103 : return -1;
19104 : return 7571; /* *addv2di3 */
19105 :
19106 : case 21:
19107 : if (!
19108 : #line 33564 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19109 : (TARGET_AVX10_2))
19110 : return -1;
19111 : return 10752; /* avx10_2_addbf16_v32bf */
19112 :
19113 : case 22:
19114 : if (!
19115 : #line 33564 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19116 : (TARGET_AVX10_2))
19117 : return -1;
19118 : return 10760; /* avx10_2_addbf16_v16bf */
19119 :
19120 : case 23:
19121 : if (!
19122 : #line 33564 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19123 : (TARGET_AVX10_2))
19124 : return -1;
19125 : return 10768; /* avx10_2_addbf16_v8bf */
19126 :
19127 : case 24:
19128 : if (!(
19129 : #line 17038 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19130 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
19131 : #line 572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19132 : (TARGET_AVX512BW)))
19133 : return -1;
19134 : return 7597; /* *addv64qi3_one */
19135 :
19136 : case 25:
19137 : if (!(
19138 : #line 17038 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19139 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
19140 : #line 572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19141 : (TARGET_AVX2)))
19142 : return -1;
19143 : return 7598; /* *addv32qi3_one */
19144 :
19145 : case 26:
19146 : if (!
19147 : #line 17038 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19148 : (TARGET_SSE2 && ix86_pre_reload_split ()))
19149 : return -1;
19150 : return 7599; /* *addv16qi3_one */
19151 :
19152 : case 27:
19153 : if (!(
19154 : #line 17038 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19155 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
19156 : #line 573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19157 : (TARGET_AVX512BW)))
19158 : return -1;
19159 : return 7600; /* *addv32hi3_one */
19160 :
19161 : case 28:
19162 : if (!(
19163 : #line 17038 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19164 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
19165 : #line 573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19166 : (TARGET_AVX2)))
19167 : return -1;
19168 : return 7601; /* *addv16hi3_one */
19169 :
19170 : case 29:
19171 : if (!
19172 : #line 17038 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19173 : (TARGET_SSE2 && ix86_pre_reload_split ()))
19174 : return -1;
19175 : return 7602; /* *addv8hi3_one */
19176 :
19177 : case 30:
19178 : if (!(
19179 : #line 17038 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19180 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
19181 : #line 574 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19182 : (TARGET_AVX512F)))
19183 : return -1;
19184 : return 7603; /* *addv16si3_one */
19185 :
19186 : case 31:
19187 : if (!(
19188 : #line 17038 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19189 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
19190 : #line 574 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19191 : (TARGET_AVX2)))
19192 : return -1;
19193 : return 7604; /* *addv8si3_one */
19194 :
19195 : case 32:
19196 : if (!
19197 : #line 17038 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19198 : (TARGET_SSE2 && ix86_pre_reload_split ()))
19199 : return -1;
19200 : return 7605; /* *addv4si3_one */
19201 :
19202 : case 33:
19203 : if (!(
19204 : #line 17038 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19205 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
19206 : #line 575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19207 : (TARGET_AVX512F)))
19208 : return -1;
19209 : return 7606; /* *addv8di3_one */
19210 :
19211 : case 34:
19212 : if (!(
19213 : #line 17038 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19214 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
19215 : #line 575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19216 : (TARGET_AVX2)))
19217 : return -1;
19218 : return 7607; /* *addv4di3_one */
19219 :
19220 : case 35:
19221 : if (!
19222 : #line 17038 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19223 : (TARGET_SSE2 && ix86_pre_reload_split ()))
19224 : return -1;
19225 : return 7608; /* *addv2di3_one */
19226 :
19227 : default:
19228 : return -1;
19229 : }
19230 :
19231 : case UNSPEC:
19232 : switch (pattern194 (x3))
19233 : {
19234 : case 0:
19235 : if (!
19236 : #line 7574 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19237 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
19238 : && ix86_pre_reload_split ()))
19239 : return -1;
19240 : return 4390; /* fma_v32hf_fadd_fmul */
19241 :
19242 : case 1:
19243 : if (!(
19244 : #line 7574 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19245 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
19246 : && ix86_pre_reload_split ()) &&
19247 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19248 : (TARGET_AVX512VL)))
19249 : return -1;
19250 : return 4391; /* fma_v16hf_fadd_fmul */
19251 :
19252 : case 2:
19253 : if (!(
19254 : #line 7574 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19255 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
19256 : && ix86_pre_reload_split ()) &&
19257 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19258 : (TARGET_AVX512VL)))
19259 : return -1;
19260 : return 4392; /* fma_v8hf_fadd_fmul */
19261 :
19262 : case 3:
19263 : if (!
19264 : #line 7591 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19265 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
19266 : && ix86_pre_reload_split ()))
19267 : return -1;
19268 : return 4393; /* fma_v32hf_fadd_fcmul */
19269 :
19270 : case 4:
19271 : if (!(
19272 : #line 7591 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19273 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
19274 : && ix86_pre_reload_split ()) &&
19275 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19276 : (TARGET_AVX512VL)))
19277 : return -1;
19278 : return 4394; /* fma_v16hf_fadd_fcmul */
19279 :
19280 : case 5:
19281 : if (!(
19282 : #line 7591 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19283 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
19284 : && ix86_pre_reload_split ()) &&
19285 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19286 : (TARGET_AVX512VL)))
19287 : return -1;
19288 : return 4395; /* fma_v8hf_fadd_fcmul */
19289 :
19290 : case 6:
19291 : if (!
19292 : #line 7609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19293 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
19294 : && ix86_pre_reload_split ()))
19295 : return -1;
19296 : return 4396; /* fma_fmaddc_v32hf_fma_zero */
19297 :
19298 : case 7:
19299 : if (!(
19300 : #line 7609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19301 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
19302 : && ix86_pre_reload_split ()) &&
19303 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19304 : (TARGET_AVX512VL)))
19305 : return -1;
19306 : return 4398; /* fma_fmaddc_v16hf_fma_zero */
19307 :
19308 : case 8:
19309 : if (!(
19310 : #line 7609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19311 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
19312 : && ix86_pre_reload_split ()) &&
19313 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19314 : (TARGET_AVX512VL)))
19315 : return -1;
19316 : return 4400; /* fma_fmaddc_v8hf_fma_zero */
19317 :
19318 : case 9:
19319 : if (!
19320 : #line 7609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19321 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
19322 : && ix86_pre_reload_split ()))
19323 : return -1;
19324 : return 4397; /* fma_fcmaddc_v32hf_fma_zero */
19325 :
19326 : case 10:
19327 : if (!(
19328 : #line 7609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19329 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
19330 : && ix86_pre_reload_split ()) &&
19331 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19332 : (TARGET_AVX512VL)))
19333 : return -1;
19334 : return 4399; /* fma_fcmaddc_v16hf_fma_zero */
19335 :
19336 : case 11:
19337 : if (!(
19338 : #line 7609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19339 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
19340 : && ix86_pre_reload_split ()) &&
19341 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19342 : (TARGET_AVX512VL)))
19343 : return -1;
19344 : return 4401; /* fma_fcmaddc_v8hf_fma_zero */
19345 :
19346 : default:
19347 : return -1;
19348 : }
19349 :
19350 : case MULT:
19351 : x5 = XEXP (x4, 0);
19352 : switch (GET_CODE (x5))
19353 : {
19354 : case SIGN_EXTEND:
19355 : if (pattern334 (x4) != 0)
19356 : return -1;
19357 : x6 = XEXP (x5, 0);
19358 : x7 = XEXP (x6, 1);
19359 : switch (XVECLEN (x7, 0))
19360 : {
19361 : case 8:
19362 : if (pattern1331 (x4) != 0)
19363 : return -1;
19364 : x8 = XEXP (x3, 1);
19365 : if (GET_CODE (x8) != MULT
19366 : || GET_MODE (x8) != E_V8SImode)
19367 : return -1;
19368 : x9 = XEXP (x8, 0);
19369 : if (GET_CODE (x9) != SIGN_EXTEND
19370 : || GET_MODE (x9) != E_V8SImode)
19371 : return -1;
19372 : x10 = XEXP (x9, 0);
19373 : if (GET_CODE (x10) != VEC_SELECT
19374 : || GET_MODE (x10) != E_V8HImode)
19375 : return -1;
19376 : x11 = XEXP (x10, 1);
19377 : if (GET_CODE (x11) != PARALLEL
19378 : || pattern1904 (x11,
19379 : 8) != 0)
19380 : return -1;
19381 : x12 = XEXP (x8, 1);
19382 : if (pattern1884 (x12,
19383 : E_V8HImode,
19384 : E_V8SImode) != 0)
19385 : return -1;
19386 : x13 = XEXP (x12, 0);
19387 : x14 = XEXP (x13, 1);
19388 : if (pattern1921 (x14,
19389 : 8) != 0
19390 : || !register_operand (operands[0], E_V8SImode)
19391 : || GET_MODE (x3) != E_V8SImode
19392 : || GET_MODE (x4) != E_V8SImode
19393 : || GET_MODE (x5) != E_V8SImode
19394 : || GET_MODE (x6) != E_V8HImode
19395 : || !nonimmediate_operand (operands[1], E_V16HImode))
19396 : return -1;
19397 : x15 = XEXP (x4, 1);
19398 : if (GET_MODE (x15) != E_V8SImode)
19399 : return -1;
19400 : x16 = XEXP (x15, 0);
19401 : if (GET_MODE (x16) != E_V8HImode
19402 : || !nonimmediate_operand (operands[2], E_V16HImode))
19403 : return -1;
19404 : x17 = XEXP (x10, 0);
19405 : if (!rtx_equal_p (x17, operands[1]))
19406 : return -1;
19407 : x18 = XEXP (x13, 0);
19408 : if (!rtx_equal_p (x18, operands[2])
19409 : || !
19410 : #line 17497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19411 : (TARGET_AVX2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
19412 : return -1;
19413 : return 7705; /* *avx2_pmaddwd */
19414 :
19415 : case 4:
19416 : x19 = XVECEXP (x7, 0, 0);
19417 : if (GET_CODE (x19) != CONST_INT)
19418 : return -1;
19419 : x20 = XVECEXP (x7, 0, 1);
19420 : if (GET_CODE (x20) != CONST_INT)
19421 : return -1;
19422 : x21 = XVECEXP (x7, 0, 2);
19423 : if (GET_CODE (x21) != CONST_INT)
19424 : return -1;
19425 : x22 = XVECEXP (x7, 0, 3);
19426 : if (GET_CODE (x22) != CONST_INT)
19427 : return -1;
19428 : x15 = XEXP (x4, 1);
19429 : x16 = XEXP (x15, 0);
19430 : x23 = XEXP (x16, 1);
19431 : if (XVECLEN (x23, 0) != 4)
19432 : return -1;
19433 : x24 = XVECEXP (x23, 0, 0);
19434 : if (GET_CODE (x24) != CONST_INT)
19435 : return -1;
19436 : x25 = XVECEXP (x23, 0, 1);
19437 : if (GET_CODE (x25) != CONST_INT)
19438 : return -1;
19439 : x26 = XVECEXP (x23, 0, 2);
19440 : if (GET_CODE (x26) != CONST_INT)
19441 : return -1;
19442 : x27 = XVECEXP (x23, 0, 3);
19443 : if (GET_CODE (x27) != CONST_INT
19444 : || pattern901 (x3,
19445 : E_V4HImode,
19446 : E_V4SImode) != 0
19447 : || GET_MODE (x15) != E_V4SImode
19448 : || GET_MODE (x16) != E_V4HImode)
19449 : return -1;
19450 : switch (XWINT (x19, 0))
19451 : {
19452 : case 0L:
19453 : if (XWINT (x20, 0) != 2L
19454 : || XWINT (x21, 0) != 4L
19455 : || XWINT (x22, 0) != 6L
19456 : || XWINT (x24, 0) != 0L
19457 : || XWINT (x25, 0) != 2L
19458 : || XWINT (x26, 0) != 4L
19459 : || XWINT (x27, 0) != 6L)
19460 : return -1;
19461 : x8 = XEXP (x3, 1);
19462 : if (pattern1818 (x8,
19463 : E_V4HImode,
19464 : E_V4SImode,
19465 : SIGN_EXTEND) != 0
19466 : || !vector_operand (operands[1], E_V8HImode)
19467 : || !vector_operand (operands[2], E_V8HImode))
19468 : return -1;
19469 : x9 = XEXP (x8, 0);
19470 : x10 = XEXP (x9, 0);
19471 : x17 = XEXP (x10, 0);
19472 : if (!rtx_equal_p (x17, operands[1]))
19473 : return -1;
19474 : x12 = XEXP (x8, 1);
19475 : x13 = XEXP (x12, 0);
19476 : x18 = XEXP (x13, 0);
19477 : if (!rtx_equal_p (x18, operands[2])
19478 : || !
19479 : #line 17553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19480 : (TARGET_SSE2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
19481 : return -1;
19482 : return 7706; /* *sse2_pmaddwd */
19483 :
19484 : case 1L:
19485 : if (XWINT (x20, 0) != 3L
19486 : || XWINT (x21, 0) != 5L
19487 : || XWINT (x22, 0) != 7L
19488 : || XWINT (x24, 0) != 1L
19489 : || XWINT (x25, 0) != 3L
19490 : || XWINT (x26, 0) != 5L
19491 : || XWINT (x27, 0) != 7L
19492 : || !nonimmediate_operand (operands[1], E_V8HImode)
19493 : || !nonimmediate_operand (operands[2], E_V8HImode))
19494 : return -1;
19495 : x8 = XEXP (x3, 1);
19496 : operands[3] = x8;
19497 : if (!register_operand (operands[3], E_V4SImode)
19498 : || !
19499 : #line 27381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19500 : (TARGET_XOP))
19501 : return -1;
19502 : return 9122; /* xop_pmacswd */
19503 :
19504 : default:
19505 : return -1;
19506 : }
19507 :
19508 : case 2:
19509 : if (pattern1332 (x3) != 0)
19510 : return -1;
19511 : x15 = XEXP (x4, 1);
19512 : if (GET_MODE (x15) != E_V2DImode)
19513 : return -1;
19514 : x16 = XEXP (x15, 0);
19515 : if (GET_MODE (x16) != E_V2SImode
19516 : || !nonimmediate_operand (operands[2], E_V4SImode))
19517 : return -1;
19518 : x8 = XEXP (x3, 1);
19519 : operands[3] = x8;
19520 : switch (pattern1868 (x4))
19521 : {
19522 : case 0:
19523 : if (!
19524 : #line 27340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19525 : (TARGET_XOP))
19526 : return -1;
19527 : return 9118; /* xop_pmacsdql */
19528 :
19529 : case 1:
19530 : if (!
19531 : #line 27359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19532 : (TARGET_XOP))
19533 : return -1;
19534 : return 9120; /* xop_pmacsdqh */
19535 :
19536 : default:
19537 : return -1;
19538 : }
19539 :
19540 : default:
19541 : return -1;
19542 : }
19543 :
19544 : case REG:
19545 : case SUBREG:
19546 : case MEM:
19547 : switch (pattern336 (x3))
19548 : {
19549 : case 0:
19550 : if (!
19551 : #line 27321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19552 : (TARGET_XOP))
19553 : return -1;
19554 : return 9114; /* xop_pmacsww */
19555 :
19556 : case 1:
19557 : if (!
19558 : #line 27321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19559 : (TARGET_XOP))
19560 : return -1;
19561 : return 9116; /* xop_pmacsdd */
19562 :
19563 : default:
19564 : return -1;
19565 : }
19566 :
19567 : default:
19568 : return -1;
19569 : }
19570 :
19571 : case VEC_SELECT:
19572 : switch (pattern198 (x3))
19573 : {
19574 : case 0:
19575 : if (!
19576 : #line 23458 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19577 : (TARGET_AVX2))
19578 : return -1;
19579 : return 8706; /* avx2_phaddwv16hi3 */
19580 :
19581 : case 1:
19582 : if (!
19583 : #line 23482 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19584 : (TARGET_SSSE3))
19585 : return -1;
19586 : return 8710; /* ssse3_phaddwv8hi3 */
19587 :
19588 : case 2:
19589 : if (!
19590 : #line 23551 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19591 : (TARGET_AVX2))
19592 : return -1;
19593 : return 8718; /* avx2_phadddv8si3 */
19594 :
19595 : case 3:
19596 : if (!
19597 : #line 23573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19598 : (TARGET_SSSE3))
19599 : return -1;
19600 : return 8720; /* ssse3_phadddv4si3 */
19601 :
19602 : default:
19603 : return -1;
19604 : }
19605 :
19606 : case PLUS:
19607 : x5 = XEXP (x4, 0);
19608 : switch (GET_CODE (x5))
19609 : {
19610 : case MULT:
19611 : if (pattern337 (x5) != 0)
19612 : return -1;
19613 : x28 = XEXP (x5, 1);
19614 : if (GET_MODE (x28) != E_V4SImode)
19615 : return -1;
19616 : x29 = XEXP (x28, 0);
19617 : if (GET_CODE (x29) != VEC_SELECT
19618 : || GET_MODE (x29) != E_V4HImode)
19619 : return -1;
19620 : x30 = XEXP (x29, 1);
19621 : if (GET_CODE (x30) != PARALLEL
19622 : || XVECLEN (x30, 0) != 4)
19623 : return -1;
19624 : x31 = XVECEXP (x30, 0, 0);
19625 : if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
19626 : return -1;
19627 : x32 = XVECEXP (x30, 0, 1);
19628 : if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
19629 : return -1;
19630 : x33 = XVECEXP (x30, 0, 2);
19631 : if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
19632 : return -1;
19633 : x34 = XVECEXP (x30, 0, 3);
19634 : if (x34 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
19635 : return -1;
19636 : x15 = XEXP (x4, 1);
19637 : if (GET_CODE (x15) != MULT
19638 : || GET_MODE (x15) != E_V4SImode)
19639 : return -1;
19640 : x16 = XEXP (x15, 0);
19641 : if (GET_CODE (x16) != SIGN_EXTEND
19642 : || GET_MODE (x16) != E_V4SImode)
19643 : return -1;
19644 : x35 = XEXP (x16, 0);
19645 : if (GET_CODE (x35) != VEC_SELECT
19646 : || GET_MODE (x35) != E_V4HImode)
19647 : return -1;
19648 : x36 = XEXP (x35, 1);
19649 : if (GET_CODE (x36) != PARALLEL
19650 : || XVECLEN (x36, 0) != 4)
19651 : return -1;
19652 : x37 = XVECEXP (x36, 0, 0);
19653 : if (x37 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
19654 : return -1;
19655 : x38 = XVECEXP (x36, 0, 1);
19656 : if (x38 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
19657 : return -1;
19658 : x39 = XVECEXP (x36, 0, 2);
19659 : if (x39 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
19660 : return -1;
19661 : x40 = XVECEXP (x36, 0, 3);
19662 : if (x40 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
19663 : return -1;
19664 : x41 = XEXP (x15, 1);
19665 : if (GET_CODE (x41) != SIGN_EXTEND
19666 : || GET_MODE (x41) != E_V4SImode)
19667 : return -1;
19668 : x42 = XEXP (x41, 0);
19669 : if (GET_CODE (x42) != VEC_SELECT
19670 : || GET_MODE (x42) != E_V4HImode)
19671 : return -1;
19672 : x43 = XEXP (x42, 1);
19673 : if (GET_CODE (x43) != PARALLEL
19674 : || XVECLEN (x43, 0) != 4)
19675 : return -1;
19676 : x44 = XVECEXP (x43, 0, 0);
19677 : if (x44 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
19678 : return -1;
19679 : x45 = XVECEXP (x43, 0, 1);
19680 : if (x45 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
19681 : return -1;
19682 : x46 = XVECEXP (x43, 0, 2);
19683 : if (x46 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
19684 : return -1;
19685 : x47 = XVECEXP (x43, 0, 3);
19686 : if (x47 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
19687 : || !register_operand (operands[0], E_V4SImode)
19688 : || GET_MODE (x3) != E_V4SImode
19689 : || GET_MODE (x4) != E_V4SImode
19690 : || pattern1924 (x3) != 0
19691 : || !
19692 : #line 27414 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19693 : (TARGET_XOP))
19694 : return -1;
19695 : return 9124; /* xop_pmadcswd */
19696 :
19697 : case SIGN_EXTEND:
19698 : switch (pattern340 (x3,
19699 : SIGN_EXTEND))
19700 : {
19701 : case 0:
19702 : if (!
19703 : #line 27509 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19704 : (TARGET_XOP))
19705 : return -1;
19706 : return 9144; /* xop_phaddbd */
19707 :
19708 : case 1:
19709 : if (!
19710 : #line 27608 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19711 : (TARGET_XOP))
19712 : return -1;
19713 : return 9150; /* xop_phaddwq */
19714 :
19715 : default:
19716 : return -1;
19717 : }
19718 :
19719 : case ZERO_EXTEND:
19720 : switch (pattern340 (x3,
19721 : ZERO_EXTEND))
19722 : {
19723 : case 0:
19724 : if (!
19725 : #line 27509 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19726 : (TARGET_XOP))
19727 : return -1;
19728 : return 9145; /* xop_phaddubd */
19729 :
19730 : case 1:
19731 : if (!
19732 : #line 27608 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19733 : (TARGET_XOP))
19734 : return -1;
19735 : return 9151; /* xop_phadduwq */
19736 :
19737 : default:
19738 : return -1;
19739 : }
19740 :
19741 : case PLUS:
19742 : if (GET_MODE (x5) != E_V2DImode)
19743 : return -1;
19744 : x15 = XEXP (x4, 1);
19745 : if (GET_CODE (x15) != PLUS
19746 : || GET_MODE (x15) != E_V2DImode)
19747 : return -1;
19748 : x8 = XEXP (x3, 1);
19749 : if (GET_CODE (x8) != PLUS
19750 : || GET_MODE (x8) != E_V2DImode
19751 : || pattern1050 (x8,
19752 : E_V2DImode,
19753 : PLUS) != 0
19754 : || !register_operand (operands[0], E_V2DImode)
19755 : || GET_MODE (x3) != E_V2DImode
19756 : || GET_MODE (x4) != E_V2DImode
19757 : || pattern1575 (x3,
19758 : E_V2DImode) != 0)
19759 : return -1;
19760 : x6 = XEXP (x5, 0);
19761 : switch (GET_CODE (x6))
19762 : {
19763 : case SIGN_EXTEND:
19764 : if (pattern1855 (x3,
19765 : SIGN_EXTEND) != 0
19766 : || !
19767 : #line 27558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19768 : (TARGET_XOP))
19769 : return -1;
19770 : return 9146; /* xop_phaddbq */
19771 :
19772 : case ZERO_EXTEND:
19773 : if (pattern1855 (x3,
19774 : ZERO_EXTEND) != 0
19775 : || !
19776 : #line 27558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19777 : (TARGET_XOP))
19778 : return -1;
19779 : return 9147; /* xop_phaddubq */
19780 :
19781 : default:
19782 : return -1;
19783 : }
19784 :
19785 : default:
19786 : return -1;
19787 : }
19788 :
19789 : case SIGN_EXTEND:
19790 : switch (pattern200 (x3,
19791 : SIGN_EXTEND))
19792 : {
19793 : case 0:
19794 : if (!
19795 : #line 27476 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19796 : (TARGET_XOP))
19797 : return -1;
19798 : return 9142; /* xop_phaddbw */
19799 :
19800 : case 1:
19801 : if (!
19802 : #line 27579 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19803 : (TARGET_XOP))
19804 : return -1;
19805 : return 9148; /* xop_phaddwd */
19806 :
19807 : case 2:
19808 : if (!
19809 : #line 27627 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19810 : (TARGET_XOP))
19811 : return -1;
19812 : return 9152; /* xop_phadddq */
19813 :
19814 : default:
19815 : return -1;
19816 : }
19817 :
19818 : case ZERO_EXTEND:
19819 : switch (pattern200 (x3,
19820 : ZERO_EXTEND))
19821 : {
19822 : case 0:
19823 : if (!
19824 : #line 27476 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19825 : (TARGET_XOP))
19826 : return -1;
19827 : return 9143; /* xop_phaddubw */
19828 :
19829 : case 1:
19830 : if (!
19831 : #line 27579 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19832 : (TARGET_XOP))
19833 : return -1;
19834 : return 9149; /* xop_phadduwd */
19835 :
19836 : case 2:
19837 : if (!
19838 : #line 27627 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19839 : (TARGET_XOP))
19840 : return -1;
19841 : return 9153; /* xop_phaddudq */
19842 :
19843 : default:
19844 : return -1;
19845 : }
19846 :
19847 : default:
19848 : return -1;
19849 : }
19850 : }
19851 :
19852 : int
19853 : recog_329 (rtx x1 ATTRIBUTE_UNUSED,
19854 : rtx_insn *insn ATTRIBUTE_UNUSED,
19855 : int *pnum_clobbers ATTRIBUTE_UNUSED)
19856 : {
19857 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
19858 : rtx x2, x3, x4, x5;
19859 : int res ATTRIBUTE_UNUSED;
19860 : x2 = XEXP (x1, 0);
19861 : operands[0] = x2;
19862 : x3 = XEXP (x1, 1);
19863 : x4 = XEXP (x3, 0);
19864 : switch (GET_CODE (x4))
19865 : {
19866 : case VEC_SELECT:
19867 : return recog_306 (x1, insn, pnum_clobbers);
19868 :
19869 : case REG:
19870 : case SUBREG:
19871 : case MEM:
19872 : operands[1] = x4;
19873 : switch (GET_MODE (operands[0]))
19874 : {
19875 : case E_V2DFmode:
19876 : if (!register_operand (operands[0], E_V2DFmode)
19877 : || GET_MODE (x3) != E_V2DFmode
19878 : || !nonimmediate_operand (operands[1], E_DFmode))
19879 : return -1;
19880 : if (
19881 : #line 15603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19882 : (TARGET_SSE2))
19883 : return 7305; /* vec_dupv2df */
19884 : if (!(
19885 : #line 29090 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19886 : (TARGET_AVX512F) &&
19887 : #line 302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19888 : (TARGET_AVX512VL)))
19889 : return -1;
19890 : return 9428; /* *avx512vl_vec_dup_gprv2df */
19891 :
19892 : case E_V16SFmode:
19893 : if (!register_operand (operands[0], E_V16SFmode)
19894 : || GET_MODE (x3) != E_V16SFmode)
19895 : return -1;
19896 : switch (GET_MODE (operands[1]))
19897 : {
19898 : case E_V4SFmode:
19899 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
19900 : || !
19901 : #line 29052 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19902 : (TARGET_AVX512F))
19903 : return -1;
19904 : return 9374; /* *avx512f_broadcastv16sf */
19905 :
19906 : case E_SFmode:
19907 : if (!nonimmediate_operand (operands[1], E_SFmode)
19908 : || !
19909 : #line 29090 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19910 : (TARGET_AVX512F))
19911 : return -1;
19912 : return 9418; /* *avx512f_vec_dup_gprv16sf */
19913 :
19914 : case E_V8SFmode:
19915 : if (!nonimmediate_operand (operands[1], E_V8SFmode)
19916 : || !
19917 : #line 29391 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19918 : (TARGET_AVX512DQ))
19919 : return -1;
19920 : return 9482; /* *avx512dq_broadcastv16sf_1 */
19921 :
19922 : default:
19923 : return -1;
19924 : }
19925 :
19926 : case E_V16SImode:
19927 : if (!register_operand (operands[0], E_V16SImode)
19928 : || GET_MODE (x3) != E_V16SImode)
19929 : return -1;
19930 : switch (GET_MODE (operands[1]))
19931 : {
19932 : case E_V4SImode:
19933 : if (!nonimmediate_operand (operands[1], E_V4SImode)
19934 : || !
19935 : #line 29052 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19936 : (TARGET_AVX512F))
19937 : return -1;
19938 : return 9376; /* *avx512f_broadcastv16si */
19939 :
19940 : case E_SImode:
19941 : if (!nonimmediate_operand (operands[1], E_SImode)
19942 : || !
19943 : #line 29090 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19944 : (TARGET_AVX512F))
19945 : return -1;
19946 : return 9406; /* *avx512f_vec_dup_gprv16si */
19947 :
19948 : case E_V8SImode:
19949 : if (!nonimmediate_operand (operands[1], E_V8SImode)
19950 : || !
19951 : #line 29391 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19952 : (TARGET_AVX512DQ))
19953 : return -1;
19954 : return 9484; /* *avx512dq_broadcastv16si_1 */
19955 :
19956 : default:
19957 : return -1;
19958 : }
19959 :
19960 : case E_V8DFmode:
19961 : if (!register_operand (operands[0], E_V8DFmode)
19962 : || GET_MODE (x3) != E_V8DFmode)
19963 : return -1;
19964 : switch (GET_MODE (operands[1]))
19965 : {
19966 : case E_V4DFmode:
19967 : if (!nonimmediate_operand (operands[1], E_V4DFmode)
19968 : || !
19969 : #line 29065 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19970 : (TARGET_AVX512F))
19971 : return -1;
19972 : return 9378; /* *avx512f_broadcastv8df */
19973 :
19974 : case E_DFmode:
19975 : if (!nonimmediate_operand (operands[1], E_DFmode)
19976 : || !
19977 : #line 29090 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19978 : (TARGET_AVX512F))
19979 : return -1;
19980 : return 9424; /* *avx512f_vec_dup_gprv8df */
19981 :
19982 : case E_V2DFmode:
19983 : if (!nonimmediate_operand (operands[1], E_V2DFmode)
19984 : || !
19985 : #line 29409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19986 : (TARGET_AVX512DQ))
19987 : return -1;
19988 : return 9488; /* *avx512dq_broadcastv8df_1 */
19989 :
19990 : default:
19991 : return -1;
19992 : }
19993 :
19994 : case E_V8DImode:
19995 : if (!register_operand (operands[0], E_V8DImode)
19996 : || GET_MODE (x3) != E_V8DImode)
19997 : return -1;
19998 : switch (GET_MODE (operands[1]))
19999 : {
20000 : case E_V4DImode:
20001 : if (!nonimmediate_operand (operands[1], E_V4DImode)
20002 : || !
20003 : #line 29065 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20004 : (TARGET_AVX512F))
20005 : return -1;
20006 : return 9380; /* *avx512f_broadcastv8di */
20007 :
20008 : case E_DImode:
20009 : if (!nonimmediate_operand (operands[1], E_DImode)
20010 : || !
20011 : #line 29090 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20012 : (TARGET_AVX512F))
20013 : return -1;
20014 : return 9412; /* *avx512f_vec_dup_gprv8di */
20015 :
20016 : case E_V2DImode:
20017 : if (!nonimmediate_operand (operands[1], E_V2DImode)
20018 : || !
20019 : #line 29409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20020 : (TARGET_AVX512DQ))
20021 : return -1;
20022 : return 9486; /* *avx512dq_broadcastv8di_1 */
20023 :
20024 : default:
20025 : return -1;
20026 : }
20027 :
20028 : case E_V64QImode:
20029 : if (!register_operand (operands[0], E_V64QImode)
20030 : || GET_MODE (x3) != E_V64QImode
20031 : || !nonimmediate_operand (operands[1], E_QImode)
20032 : || !
20033 : #line 29078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20034 : (TARGET_AVX512BW))
20035 : return -1;
20036 : return 9382; /* *avx512bw_vec_dup_gprv64qi */
20037 :
20038 : case E_V16QImode:
20039 : if (!register_operand (operands[0], E_V16QImode)
20040 : || GET_MODE (x3) != E_V16QImode
20041 : || !nonimmediate_operand (operands[1], E_QImode))
20042 : return -1;
20043 : if ((
20044 : #line 29078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20045 : (TARGET_AVX512BW) &&
20046 : #line 332 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20047 : (TARGET_AVX512VL)))
20048 : return 9384; /* *avx512vl_vec_dup_gprv16qi */
20049 : if (!
20050 : #line 29240 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20051 : (TARGET_AVX2))
20052 : return -1;
20053 : return 9439; /* *vec_dupv16qi */
20054 :
20055 : case E_V32QImode:
20056 : if (!register_operand (operands[0], E_V32QImode)
20057 : || GET_MODE (x3) != E_V32QImode
20058 : || !nonimmediate_operand (operands[1], E_QImode))
20059 : return -1;
20060 : if ((
20061 : #line 29078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20062 : (TARGET_AVX512BW) &&
20063 : #line 332 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20064 : (TARGET_AVX512VL)))
20065 : return 9386; /* *avx512vl_vec_dup_gprv32qi */
20066 : if (!
20067 : #line 29240 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20068 : (TARGET_AVX2))
20069 : return -1;
20070 : return 9438; /* *vec_dupv32qi */
20071 :
20072 : case E_V32HImode:
20073 : if (!register_operand (operands[0], E_V32HImode)
20074 : || GET_MODE (x3) != E_V32HImode
20075 : || !nonimmediate_operand (operands[1], E_HImode)
20076 : || !
20077 : #line 29078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20078 : (TARGET_AVX512BW))
20079 : return -1;
20080 : return 9388; /* *avx512bw_vec_dup_gprv32hi */
20081 :
20082 : case E_V16HImode:
20083 : if (!register_operand (operands[0], E_V16HImode)
20084 : || GET_MODE (x3) != E_V16HImode
20085 : || !nonimmediate_operand (operands[1], E_HImode))
20086 : return -1;
20087 : if ((
20088 : #line 29078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20089 : (TARGET_AVX512BW) &&
20090 : #line 333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20091 : (TARGET_AVX512VL)))
20092 : return 9390; /* *avx512vl_vec_dup_gprv16hi */
20093 : if (!
20094 : #line 29240 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20095 : (TARGET_AVX2))
20096 : return -1;
20097 : return 9440; /* *vec_dupv16hi */
20098 :
20099 : case E_V8HImode:
20100 : if (!register_operand (operands[0], E_V8HImode)
20101 : || GET_MODE (x3) != E_V8HImode
20102 : || !nonimmediate_operand (operands[1], E_HImode))
20103 : return -1;
20104 : if ((
20105 : #line 29078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20106 : (TARGET_AVX512BW) &&
20107 : #line 333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20108 : (TARGET_AVX512VL)))
20109 : return 9392; /* *avx512vl_vec_dup_gprv8hi */
20110 : if (!
20111 : #line 29240 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20112 : (TARGET_AVX2))
20113 : return -1;
20114 : return 9441; /* *vec_dupv8hi */
20115 :
20116 : case E_V32HFmode:
20117 : if (!register_operand (operands[0], E_V32HFmode)
20118 : || GET_MODE (x3) != E_V32HFmode
20119 : || !nonimmediate_operand (operands[1], E_HFmode)
20120 : || !
20121 : #line 29078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20122 : (TARGET_AVX512BW))
20123 : return -1;
20124 : return 9394; /* *avx512bw_vec_dup_gprv32hf */
20125 :
20126 : case E_V16HFmode:
20127 : if (!register_operand (operands[0], E_V16HFmode)
20128 : || GET_MODE (x3) != E_V16HFmode
20129 : || !nonimmediate_operand (operands[1], E_HFmode))
20130 : return -1;
20131 : if ((
20132 : #line 29078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20133 : (TARGET_AVX512BW) &&
20134 : #line 334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20135 : (TARGET_AVX512VL)))
20136 : return 9396; /* *avx512vl_vec_dup_gprv16hf */
20137 : if (!
20138 : #line 29240 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20139 : (TARGET_AVX2))
20140 : return -1;
20141 : return 9444; /* *vec_dupv16hf */
20142 :
20143 : case E_V8HFmode:
20144 : if (!register_operand (operands[0], E_V8HFmode)
20145 : || GET_MODE (x3) != E_V8HFmode
20146 : || !nonimmediate_operand (operands[1], E_HFmode))
20147 : return -1;
20148 : if ((
20149 : #line 29078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20150 : (TARGET_AVX512BW) &&
20151 : #line 334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20152 : (TARGET_AVX512VL)))
20153 : return 9398; /* *avx512fp16_vec_dup_gprv8hf */
20154 : if (!
20155 : #line 29240 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20156 : (TARGET_AVX2))
20157 : return -1;
20158 : return 9445; /* *vec_dupv8hf */
20159 :
20160 : case E_V32BFmode:
20161 : if (!register_operand (operands[0], E_V32BFmode)
20162 : || GET_MODE (x3) != E_V32BFmode
20163 : || !nonimmediate_operand (operands[1], E_BFmode)
20164 : || !
20165 : #line 29078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20166 : (TARGET_AVX512BW))
20167 : return -1;
20168 : return 9400; /* *avx512bw_vec_dup_gprv32bf */
20169 :
20170 : case E_V16BFmode:
20171 : if (!register_operand (operands[0], E_V16BFmode)
20172 : || GET_MODE (x3) != E_V16BFmode
20173 : || !nonimmediate_operand (operands[1], E_BFmode))
20174 : return -1;
20175 : if ((
20176 : #line 29078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20177 : (TARGET_AVX512BW) &&
20178 : #line 335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20179 : (TARGET_AVX512VL)))
20180 : return 9402; /* *avx512vl_vec_dup_gprv16bf */
20181 : if (!
20182 : #line 29240 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20183 : (TARGET_AVX2))
20184 : return -1;
20185 : return 9446; /* *vec_dupv16bf */
20186 :
20187 : case E_V8BFmode:
20188 : if (!register_operand (operands[0], E_V8BFmode)
20189 : || GET_MODE (x3) != E_V8BFmode
20190 : || !nonimmediate_operand (operands[1], E_BFmode))
20191 : return -1;
20192 : if ((
20193 : #line 29078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20194 : (TARGET_AVX512BW) &&
20195 : #line 335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20196 : (TARGET_AVX512VL)))
20197 : return 9404; /* *avx512vl_vec_dup_gprv8bf */
20198 : if (!
20199 : #line 29240 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20200 : (TARGET_AVX2))
20201 : return -1;
20202 : return 9447; /* *vec_dupv8bf */
20203 :
20204 : case E_V8SImode:
20205 : if (!register_operand (operands[0], E_V8SImode)
20206 : || GET_MODE (x3) != E_V8SImode)
20207 : return -1;
20208 : switch (GET_MODE (operands[1]))
20209 : {
20210 : case E_SImode:
20211 : if (!nonimmediate_operand (operands[1], E_SImode))
20212 : return -1;
20213 : if ((
20214 : #line 29090 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20215 : (TARGET_AVX512F) &&
20216 : #line 299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20217 : (TARGET_AVX512VL)))
20218 : return 9408; /* *avx512vl_vec_dup_gprv8si */
20219 : if (
20220 : #line 29240 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20221 : (TARGET_AVX2))
20222 : return 9442; /* *vec_dupv8si */
20223 : if (!
20224 : #line 29260 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20225 : (TARGET_AVX))
20226 : return -1;
20227 : return 9448; /* vec_dupv8si */
20228 :
20229 : case E_V4SImode:
20230 : if (!nonimmediate_operand (operands[1], E_V4SImode)
20231 : || !
20232 : #line 29377 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20233 : (TARGET_AVX512VL))
20234 : return -1;
20235 : return 9478; /* *avx512vl_broadcastv8si_1 */
20236 :
20237 : default:
20238 : return -1;
20239 : }
20240 :
20241 : case E_V4SImode:
20242 : if (!register_operand (operands[0], E_V4SImode)
20243 : || GET_MODE (x3) != E_V4SImode
20244 : || !nonimmediate_operand (operands[1], E_SImode))
20245 : return -1;
20246 : if ((
20247 : #line 29090 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20248 : (TARGET_AVX512F) &&
20249 : #line 299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20250 : (TARGET_AVX512VL)))
20251 : return 9410; /* *avx512vl_vec_dup_gprv4si */
20252 : if (
20253 : #line 29137 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20254 : (TARGET_SSE))
20255 : return 9431; /* *vec_dupv4si */
20256 : if (!
20257 : #line 29240 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20258 : (TARGET_AVX2))
20259 : return -1;
20260 : return 9443; /* *vec_dupv4si */
20261 :
20262 : case E_V4DImode:
20263 : if (!register_operand (operands[0], E_V4DImode)
20264 : || GET_MODE (x3) != E_V4DImode)
20265 : return -1;
20266 : switch (GET_MODE (operands[1]))
20267 : {
20268 : case E_DImode:
20269 : if (!nonimmediate_operand (operands[1], E_DImode))
20270 : return -1;
20271 : if ((
20272 : #line 29090 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20273 : (TARGET_AVX512F) &&
20274 : #line 300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20275 : (TARGET_AVX512VL)))
20276 : return 9414; /* *avx512vl_vec_dup_gprv4di */
20277 : if (!
20278 : #line 29260 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20279 : (TARGET_AVX))
20280 : return -1;
20281 : return 9450; /* vec_dupv4di */
20282 :
20283 : case E_V2DImode:
20284 : if (!nonimmediate_operand (operands[1], E_V2DImode)
20285 : || !(
20286 : #line 29409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20287 : (TARGET_AVX512DQ) &&
20288 : #line 29403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20289 : (TARGET_AVX512VL)))
20290 : return -1;
20291 : return 9490; /* *avx512dq_broadcastv4di_1 */
20292 :
20293 : default:
20294 : return -1;
20295 : }
20296 :
20297 : case E_V2DImode:
20298 : if (!register_operand (operands[0], E_V2DImode)
20299 : || GET_MODE (x3) != E_V2DImode
20300 : || !nonimmediate_operand (operands[1], E_DImode))
20301 : return -1;
20302 : if ((
20303 : #line 29090 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20304 : (TARGET_AVX512F) &&
20305 : #line 300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20306 : (TARGET_AVX512VL)))
20307 : return 9416; /* *avx512vl_vec_dup_gprv2di */
20308 : if (!
20309 : #line 29165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20310 : (TARGET_SSE))
20311 : return -1;
20312 : return 9432; /* *vec_dupv2di */
20313 :
20314 : case E_V8SFmode:
20315 : if (!register_operand (operands[0], E_V8SFmode)
20316 : || GET_MODE (x3) != E_V8SFmode)
20317 : return -1;
20318 : switch (GET_MODE (operands[1]))
20319 : {
20320 : case E_SFmode:
20321 : if (!nonimmediate_operand (operands[1], E_SFmode))
20322 : return -1;
20323 : if ((
20324 : #line 29090 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20325 : (TARGET_AVX512F) &&
20326 : #line 301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20327 : (TARGET_AVX512VL)))
20328 : return 9420; /* *avx512vl_vec_dup_gprv8sf */
20329 : if (!
20330 : #line 29260 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20331 : (TARGET_AVX))
20332 : return -1;
20333 : return 9449; /* vec_dupv8sf */
20334 :
20335 : case E_V4SFmode:
20336 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
20337 : || !
20338 : #line 29377 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20339 : (TARGET_AVX512VL))
20340 : return -1;
20341 : return 9480; /* *avx512vl_broadcastv8sf_1 */
20342 :
20343 : default:
20344 : return -1;
20345 : }
20346 :
20347 : case E_V4SFmode:
20348 : if (!register_operand (operands[0], E_V4SFmode)
20349 : || GET_MODE (x3) != E_V4SFmode
20350 : || !nonimmediate_operand (operands[1], E_SFmode))
20351 : return -1;
20352 : if ((
20353 : #line 29090 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20354 : (TARGET_AVX512F) &&
20355 : #line 301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20356 : (TARGET_AVX512VL)))
20357 : return 9422; /* *avx512vl_vec_dup_gprv4sf */
20358 : if (!
20359 : #line 29105 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20360 : (TARGET_SSE))
20361 : return -1;
20362 : return 9430; /* vec_dupv4sf */
20363 :
20364 : case E_V4DFmode:
20365 : if (!register_operand (operands[0], E_V4DFmode)
20366 : || GET_MODE (x3) != E_V4DFmode)
20367 : return -1;
20368 : switch (GET_MODE (operands[1]))
20369 : {
20370 : case E_DFmode:
20371 : if (!nonimmediate_operand (operands[1], E_DFmode))
20372 : return -1;
20373 : if ((
20374 : #line 29090 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20375 : (TARGET_AVX512F) &&
20376 : #line 302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20377 : (TARGET_AVX512VL)))
20378 : return 9426; /* *avx512vl_vec_dup_gprv4df */
20379 : if (!
20380 : #line 29260 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20381 : (TARGET_AVX))
20382 : return -1;
20383 : return 9451; /* vec_dupv4df */
20384 :
20385 : case E_V2DFmode:
20386 : if (!nonimmediate_operand (operands[1], E_V2DFmode)
20387 : || !(
20388 : #line 29409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20389 : (TARGET_AVX512DQ) &&
20390 : #line 29403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20391 : (TARGET_AVX512VL)))
20392 : return -1;
20393 : return 9492; /* *avx512dq_broadcastv4df_1 */
20394 :
20395 : default:
20396 : return -1;
20397 : }
20398 :
20399 : default:
20400 : return -1;
20401 : }
20402 :
20403 : case FLOAT_EXTEND:
20404 : if (GET_MODE (x4) != E_SFmode)
20405 : return -1;
20406 : x5 = XEXP (x4, 0);
20407 : operands[1] = x5;
20408 : switch (GET_MODE (operands[0]))
20409 : {
20410 : case E_V8SFmode:
20411 : switch (pattern692 (x3,
20412 : E_V8SFmode))
20413 : {
20414 : case 0:
20415 : if (!(
20416 : #line 33073 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20417 : (TARGET_AVXNECONVERT) &&
20418 : #line 444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20419 : (TARGET_AVX)))
20420 : return -1;
20421 : return 10573; /* vbcstnebf162ps_v8sf */
20422 :
20423 : case 1:
20424 : if (!(
20425 : #line 33084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20426 : (TARGET_AVXNECONVERT) &&
20427 : #line 444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20428 : (TARGET_AVX)))
20429 : return -1;
20430 : return 10575; /* vbcstnesh2ps_v8sf */
20431 :
20432 : default:
20433 : return -1;
20434 : }
20435 :
20436 : case E_V4SFmode:
20437 : switch (pattern692 (x3,
20438 : E_V4SFmode))
20439 : {
20440 : case 0:
20441 : if (!
20442 : #line 33073 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20443 : (TARGET_AVXNECONVERT))
20444 : return -1;
20445 : return 10574; /* vbcstnebf162ps_v4sf */
20446 :
20447 : case 1:
20448 : if (!
20449 : #line 33084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20450 : (TARGET_AVXNECONVERT))
20451 : return -1;
20452 : return 10576; /* vbcstnesh2ps_v4sf */
20453 :
20454 : default:
20455 : return -1;
20456 : }
20457 :
20458 : default:
20459 : return -1;
20460 : }
20461 :
20462 : default:
20463 : return -1;
20464 : }
20465 : }
20466 :
20467 : int
20468 : recog_334 (rtx x1 ATTRIBUTE_UNUSED,
20469 : rtx_insn *insn ATTRIBUTE_UNUSED,
20470 : int *pnum_clobbers ATTRIBUTE_UNUSED)
20471 : {
20472 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
20473 : rtx x2, x3, x4, x5;
20474 : int res ATTRIBUTE_UNUSED;
20475 : x2 = XEXP (x1, 0);
20476 : operands[0] = x2;
20477 : x3 = XEXP (x1, 1);
20478 : x4 = XEXP (x3, 0);
20479 : operands[1] = x4;
20480 : x5 = XEXP (x3, 1);
20481 : operands[2] = x5;
20482 : switch (GET_MODE (operands[0]))
20483 : {
20484 : case E_V16HImode:
20485 : if (!register_operand (operands[0], E_V16HImode)
20486 : || GET_MODE (x3) != E_V16HImode)
20487 : return -1;
20488 : if (nonimmediate_operand (operands[1], E_V16HImode)
20489 : && nonmemory_operand (operands[2], E_DImode)
20490 : && (
20491 : #line 17851 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20492 : (TARGET_AVX512VL) &&
20493 : #line 781 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20494 : (TARGET_AVX512BW)))
20495 : return 7719; /* *ashrv16hi3 */
20496 : if (!register_operand (operands[1], E_V16HImode))
20497 : return -1;
20498 : if (nonmemory_operand (operands[2], E_DImode)
20499 : && (
20500 : #line 17865 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20501 : (TARGET_SSE2) &&
20502 : #line 732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20503 : (TARGET_AVX2)))
20504 : return 7729; /* ashrv16hi3 */
20505 : if (!nonimmediate_operand (operands[2], E_V16HImode)
20506 : || !(
20507 : #line 30327 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20508 : (TARGET_AVX512BW) &&
20509 : #line 675 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20510 : (TARGET_AVX512VL)))
20511 : return -1;
20512 : return 9715; /* avx512vl_ashrvv16hi */
20513 :
20514 : case E_V8HImode:
20515 : if (!register_operand (operands[0], E_V8HImode)
20516 : || GET_MODE (x3) != E_V8HImode)
20517 : return -1;
20518 : if (nonimmediate_operand (operands[1], E_V8HImode)
20519 : && nonmemory_operand (operands[2], E_DImode)
20520 : && (
20521 : #line 17851 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20522 : (TARGET_AVX512VL) &&
20523 : #line 781 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20524 : (TARGET_AVX512BW)))
20525 : return 7721; /* *ashrv8hi3 */
20526 : if (!register_operand (operands[1], E_V8HImode))
20527 : return -1;
20528 : if (nonmemory_operand (operands[2], E_DImode)
20529 : &&
20530 : #line 17865 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20531 : (TARGET_SSE2))
20532 : return 7730; /* ashrv8hi3 */
20533 : if (!nonimmediate_operand (operands[2], E_V8HImode)
20534 : || !(
20535 : #line 30327 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20536 : (TARGET_AVX512BW) &&
20537 : #line 675 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20538 : (TARGET_AVX512VL)))
20539 : return -1;
20540 : return 9713; /* avx512vl_ashrvv8hi */
20541 :
20542 : case E_V8SImode:
20543 : if (!register_operand (operands[0], E_V8SImode)
20544 : || GET_MODE (x3) != E_V8SImode)
20545 : return -1;
20546 : if (nonimmediate_operand (operands[1], E_V8SImode)
20547 : && nonmemory_operand (operands[2], E_DImode)
20548 : &&
20549 : #line 17851 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20550 : (TARGET_AVX512VL))
20551 : return 7723; /* *ashrv8si3 */
20552 : if (!register_operand (operands[1], E_V8SImode))
20553 : return -1;
20554 : if (nonmemory_operand (operands[2], E_DImode)
20555 : && (
20556 : #line 17865 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20557 : (TARGET_SSE2) &&
20558 : #line 733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20559 : (TARGET_AVX2)))
20560 : return 7731; /* ashrv8si3 */
20561 : if (!nonimmediate_operand (operands[2], E_V8SImode)
20562 : || !
20563 : #line 30316 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20564 : (TARGET_AVX2 && 1))
20565 : return -1;
20566 : return 9703; /* avx2_ashrvv8si */
20567 :
20568 : case E_V4SImode:
20569 : if (!register_operand (operands[0], E_V4SImode)
20570 : || GET_MODE (x3) != E_V4SImode)
20571 : return -1;
20572 : if (nonimmediate_operand (operands[1], E_V4SImode)
20573 : && nonmemory_operand (operands[2], E_DImode)
20574 : &&
20575 : #line 17851 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20576 : (TARGET_AVX512VL))
20577 : return 7725; /* *ashrv4si3 */
20578 : if (!register_operand (operands[1], E_V4SImode))
20579 : return -1;
20580 : if (nonmemory_operand (operands[2], E_DImode)
20581 : &&
20582 : #line 17865 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20583 : (TARGET_SSE2))
20584 : return 7732; /* ashrv4si3 */
20585 : if (!nonimmediate_operand (operands[2], E_V4SImode)
20586 : || !
20587 : #line 30316 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20588 : (TARGET_AVX2 && 1))
20589 : return -1;
20590 : return 9701; /* avx2_ashrvv4si */
20591 :
20592 : case E_V2DImode:
20593 : if (!register_operand (operands[0], E_V2DImode)
20594 : || GET_MODE (x3) != E_V2DImode)
20595 : return -1;
20596 : if (nonimmediate_operand (operands[1], E_V2DImode)
20597 : && nonmemory_operand (operands[2], E_DImode)
20598 : &&
20599 : #line 17851 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20600 : (TARGET_AVX512VL))
20601 : return 7727; /* *ashrv2di3 */
20602 : if (!register_operand (operands[1], E_V2DImode))
20603 : return -1;
20604 : if (nonmemory_operand (operands[2], E_DImode)
20605 : &&
20606 : #line 28277 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20607 : (TARGET_SSE2 && !TARGET_AVX512VL && ix86_pre_reload_split ()))
20608 : return 9181; /* *ashrv2di3 */
20609 : if (!nonimmediate_operand (operands[2], E_V2DImode)
20610 : || !(
20611 : #line 30316 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20612 : (TARGET_AVX2 && 1) &&
20613 : #line 671 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20614 : (TARGET_AVX512VL)))
20615 : return -1;
20616 : return 9707; /* avx2_ashrvv2di */
20617 :
20618 : case E_V32HImode:
20619 : if (!register_operand (operands[0], E_V32HImode)
20620 : || GET_MODE (x3) != E_V32HImode)
20621 : return -1;
20622 : if (nonimmediate_operand (operands[1], E_V32HImode)
20623 : && nonmemory_operand (operands[2], E_DImode)
20624 : && (
20625 : #line 17895 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20626 : (TARGET_AVX512F) &&
20627 : #line 776 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20628 : (TARGET_AVX512BW)))
20629 : return 7737; /* *ashrv32hi3 */
20630 : if (!register_operand (operands[1], E_V32HImode)
20631 : || !nonimmediate_operand (operands[2], E_V32HImode)
20632 : || !
20633 : #line 30327 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20634 : (TARGET_AVX512BW))
20635 : return -1;
20636 : return 9717; /* avx512bw_ashrvv32hi */
20637 :
20638 : case E_V4DImode:
20639 : if (!register_operand (operands[0], E_V4DImode)
20640 : || GET_MODE (x3) != E_V4DImode)
20641 : return -1;
20642 : if (nonimmediate_operand (operands[1], E_V4DImode)
20643 : && nonmemory_operand (operands[2], E_DImode)
20644 : && (
20645 : #line 17895 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20646 : (TARGET_AVX512F) &&
20647 : #line 777 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20648 : (TARGET_AVX512VL)))
20649 : return 7739; /* *ashrv4di3 */
20650 : if (!register_operand (operands[1], E_V4DImode)
20651 : || !nonimmediate_operand (operands[2], E_V4DImode)
20652 : || !(
20653 : #line 30316 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20654 : (TARGET_AVX2 && 1) &&
20655 : #line 671 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20656 : (TARGET_AVX512VL)))
20657 : return -1;
20658 : return 9709; /* avx2_ashrvv4di */
20659 :
20660 : case E_V16SImode:
20661 : if (!register_operand (operands[0], E_V16SImode)
20662 : || GET_MODE (x3) != E_V16SImode)
20663 : return -1;
20664 : if (nonimmediate_operand (operands[1], E_V16SImode)
20665 : && nonmemory_operand (operands[2], E_DImode)
20666 : &&
20667 : #line 17895 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20668 : (TARGET_AVX512F))
20669 : return 7741; /* *ashrv16si3 */
20670 : if (!register_operand (operands[1], E_V16SImode)
20671 : || !nonimmediate_operand (operands[2], E_V16SImode)
20672 : || !(
20673 : #line 30316 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20674 : (TARGET_AVX2 && 1) &&
20675 : #line 670 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20676 : (TARGET_AVX512F)))
20677 : return -1;
20678 : return 9705; /* avx512f_ashrvv16si */
20679 :
20680 : case E_V8DImode:
20681 : if (!register_operand (operands[0], E_V8DImode)
20682 : || GET_MODE (x3) != E_V8DImode)
20683 : return -1;
20684 : if (nonimmediate_operand (operands[1], E_V8DImode)
20685 : && nonmemory_operand (operands[2], E_DImode)
20686 : &&
20687 : #line 17895 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20688 : (TARGET_AVX512F))
20689 : return 7743; /* *ashrv8di3 */
20690 : if (!register_operand (operands[1], E_V8DImode)
20691 : || !nonimmediate_operand (operands[2], E_V8DImode)
20692 : || !(
20693 : #line 30316 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20694 : (TARGET_AVX2 && 1) &&
20695 : #line 672 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20696 : (TARGET_AVX512F)))
20697 : return -1;
20698 : return 9711; /* avx512f_ashrvv8di */
20699 :
20700 : case E_V1TImode:
20701 : if (pattern31 (x3) != 0
20702 : || !
20703 : #line 18269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20704 : (TARGET_SSE2 && TARGET_64BIT
20705 : && ix86_pre_reload_split ()))
20706 : return -1;
20707 : return 7808; /* *ashrv1ti3_internal */
20708 :
20709 : default:
20710 : return -1;
20711 : }
20712 : }
20713 :
20714 : int
20715 : recog_337 (rtx x1 ATTRIBUTE_UNUSED,
20716 : rtx_insn *insn ATTRIBUTE_UNUSED,
20717 : int *pnum_clobbers ATTRIBUTE_UNUSED)
20718 : {
20719 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
20720 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
20721 : rtx x10, x11;
20722 : int res ATTRIBUTE_UNUSED;
20723 : x2 = XEXP (x1, 0);
20724 : operands[0] = x2;
20725 : x3 = XEXP (x1, 1);
20726 : x4 = XEXP (x3, 0);
20727 : switch (GET_CODE (x4))
20728 : {
20729 : case REG:
20730 : case SUBREG:
20731 : case MEM:
20732 : operands[3] = x4;
20733 : x5 = XEXP (x3, 1);
20734 : operands[1] = x5;
20735 : x6 = XEXP (x3, 2);
20736 : operands[2] = x6;
20737 : switch (GET_MODE (operands[0]))
20738 : {
20739 : case E_V32QImode:
20740 : if (pattern825 (x3,
20741 : E_V32QImode) != 0
20742 : || !
20743 : #line 27427 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20744 : (TARGET_XOP))
20745 : return -1;
20746 : return 9126; /* xop_pcmov_v32qi256 */
20747 :
20748 : case E_V16QImode:
20749 : if (pattern825 (x3,
20750 : E_V16QImode) != 0
20751 : || !
20752 : #line 27427 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20753 : (TARGET_XOP))
20754 : return -1;
20755 : return 9127; /* xop_pcmov_v16qi */
20756 :
20757 : case E_V16HImode:
20758 : if (pattern825 (x3,
20759 : E_V16HImode) != 0
20760 : || !
20761 : #line 27427 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20762 : (TARGET_XOP))
20763 : return -1;
20764 : return 9128; /* xop_pcmov_v16hi256 */
20765 :
20766 : case E_V8HImode:
20767 : if (pattern825 (x3,
20768 : E_V8HImode) != 0
20769 : || !
20770 : #line 27427 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20771 : (TARGET_XOP))
20772 : return -1;
20773 : return 9129; /* xop_pcmov_v8hi */
20774 :
20775 : case E_V8SImode:
20776 : if (pattern825 (x3,
20777 : E_V8SImode) != 0
20778 : || !
20779 : #line 27427 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20780 : (TARGET_XOP))
20781 : return -1;
20782 : return 9130; /* xop_pcmov_v8si256 */
20783 :
20784 : case E_V4SImode:
20785 : if (pattern825 (x3,
20786 : E_V4SImode) != 0
20787 : || !
20788 : #line 27427 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20789 : (TARGET_XOP))
20790 : return -1;
20791 : return 9131; /* xop_pcmov_v4si */
20792 :
20793 : case E_V4DImode:
20794 : if (pattern825 (x3,
20795 : E_V4DImode) != 0
20796 : || !
20797 : #line 27427 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20798 : (TARGET_XOP))
20799 : return -1;
20800 : return 9132; /* xop_pcmov_v4di256 */
20801 :
20802 : case E_V2DImode:
20803 : if (pattern825 (x3,
20804 : E_V2DImode) != 0
20805 : || !
20806 : #line 27427 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20807 : (TARGET_XOP))
20808 : return -1;
20809 : return 9133; /* xop_pcmov_v2di */
20810 :
20811 : case E_V2TImode:
20812 : if (pattern825 (x3,
20813 : E_V2TImode) != 0
20814 : || !
20815 : #line 27427 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20816 : (TARGET_XOP))
20817 : return -1;
20818 : return 9134; /* xop_pcmov_v2ti256 */
20819 :
20820 : case E_V1TImode:
20821 : if (pattern825 (x3,
20822 : E_V1TImode) != 0
20823 : || !
20824 : #line 27427 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20825 : (TARGET_XOP))
20826 : return -1;
20827 : return 9135; /* xop_pcmov_v1ti */
20828 :
20829 : case E_V16HFmode:
20830 : if (pattern825 (x3,
20831 : E_V16HFmode) != 0
20832 : || !
20833 : #line 27427 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20834 : (TARGET_XOP))
20835 : return -1;
20836 : return 9136; /* xop_pcmov_v16hf256 */
20837 :
20838 : case E_V8HFmode:
20839 : if (pattern825 (x3,
20840 : E_V8HFmode) != 0
20841 : || !
20842 : #line 27427 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20843 : (TARGET_XOP))
20844 : return -1;
20845 : return 9137; /* xop_pcmov_v8hf */
20846 :
20847 : case E_V8SFmode:
20848 : if (pattern825 (x3,
20849 : E_V8SFmode) != 0
20850 : || !
20851 : #line 27427 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20852 : (TARGET_XOP))
20853 : return -1;
20854 : return 9138; /* xop_pcmov_v8sf256 */
20855 :
20856 : case E_V4SFmode:
20857 : if (pattern825 (x3,
20858 : E_V4SFmode) != 0
20859 : || !
20860 : #line 27427 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20861 : (TARGET_XOP))
20862 : return -1;
20863 : return 9139; /* xop_pcmov_v4sf */
20864 :
20865 : case E_V4DFmode:
20866 : if (pattern825 (x3,
20867 : E_V4DFmode) != 0
20868 : || !
20869 : #line 27427 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20870 : (TARGET_XOP))
20871 : return -1;
20872 : return 9140; /* xop_pcmov_v4df256 */
20873 :
20874 : case E_V2DFmode:
20875 : if (pattern825 (x3,
20876 : E_V2DFmode) != 0
20877 : || !
20878 : #line 27427 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20879 : (TARGET_XOP))
20880 : return -1;
20881 : return 9141; /* xop_pcmov_v2df */
20882 :
20883 : default:
20884 : return -1;
20885 : }
20886 :
20887 : case GE:
20888 : x7 = XEXP (x4, 1);
20889 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
20890 : return -1;
20891 : x8 = XEXP (x4, 0);
20892 : operands[2] = x8;
20893 : x5 = XEXP (x3, 1);
20894 : switch (GET_CODE (x5))
20895 : {
20896 : case ROTATE:
20897 : x6 = XEXP (x3, 2);
20898 : if (GET_CODE (x6) != ROTATERT)
20899 : return -1;
20900 : x9 = XEXP (x6, 1);
20901 : if (GET_CODE (x9) != NEG)
20902 : return -1;
20903 : x10 = XEXP (x5, 0);
20904 : operands[1] = x10;
20905 : x11 = XEXP (x5, 1);
20906 : if (!rtx_equal_p (x11, operands[2]))
20907 : return -1;
20908 : switch (pattern1163 (x3))
20909 : {
20910 : case 0:
20911 : if (!
20912 : #line 27882 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20913 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
20914 : return -1;
20915 : return 9169; /* xop_vrotlv16qi3 */
20916 :
20917 : case 1:
20918 : if (!
20919 : #line 27882 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20920 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
20921 : return -1;
20922 : return 9170; /* xop_vrotlv8hi3 */
20923 :
20924 : case 2:
20925 : if (!
20926 : #line 27882 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20927 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
20928 : return -1;
20929 : return 9171; /* xop_vrotlv4si3 */
20930 :
20931 : case 3:
20932 : if (!
20933 : #line 27882 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20934 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
20935 : return -1;
20936 : return 9172; /* xop_vrotlv2di3 */
20937 :
20938 : default:
20939 : return -1;
20940 : }
20941 :
20942 : case ASHIFT:
20943 : x10 = XEXP (x5, 0);
20944 : operands[1] = x10;
20945 : x11 = XEXP (x5, 1);
20946 : if (!rtx_equal_p (x11, operands[2]))
20947 : return -1;
20948 : x6 = XEXP (x3, 2);
20949 : switch (GET_CODE (x6))
20950 : {
20951 : case ASHIFTRT:
20952 : x9 = XEXP (x6, 1);
20953 : if (GET_CODE (x9) != NEG)
20954 : return -1;
20955 : switch (pattern1163 (x3))
20956 : {
20957 : case 0:
20958 : if (!
20959 : #line 28119 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20960 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
20961 : return -1;
20962 : return 9173; /* xop_shav16qi3 */
20963 :
20964 : case 1:
20965 : if (!
20966 : #line 28119 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20967 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
20968 : return -1;
20969 : return 9174; /* xop_shav8hi3 */
20970 :
20971 : case 2:
20972 : if (!
20973 : #line 28119 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20974 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
20975 : return -1;
20976 : return 9175; /* xop_shav4si3 */
20977 :
20978 : case 3:
20979 : if (!
20980 : #line 28119 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20981 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
20982 : return -1;
20983 : return 9176; /* xop_shav2di3 */
20984 :
20985 : default:
20986 : return -1;
20987 : }
20988 :
20989 : case LSHIFTRT:
20990 : x9 = XEXP (x6, 1);
20991 : if (GET_CODE (x9) != NEG)
20992 : return -1;
20993 : switch (pattern1163 (x3))
20994 : {
20995 : case 0:
20996 : if (!
20997 : #line 28138 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20998 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
20999 : return -1;
21000 : return 9177; /* xop_shlv16qi3 */
21001 :
21002 : case 1:
21003 : if (!
21004 : #line 28138 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21005 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21006 : return -1;
21007 : return 9178; /* xop_shlv8hi3 */
21008 :
21009 : case 2:
21010 : if (!
21011 : #line 28138 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21012 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21013 : return -1;
21014 : return 9179; /* xop_shlv4si3 */
21015 :
21016 : case 3:
21017 : if (!
21018 : #line 28138 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21019 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21020 : return -1;
21021 : return 9180; /* xop_shlv2di3 */
21022 :
21023 : default:
21024 : return -1;
21025 : }
21026 :
21027 : default:
21028 : return -1;
21029 : }
21030 :
21031 : default:
21032 : return -1;
21033 : }
21034 :
21035 : default:
21036 : return -1;
21037 : }
21038 : }
21039 :
21040 : int
21041 : recog_344 (rtx x1 ATTRIBUTE_UNUSED,
21042 : rtx_insn *insn ATTRIBUTE_UNUSED,
21043 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21044 : {
21045 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21046 : rtx x2, x3, x4;
21047 : int res ATTRIBUTE_UNUSED;
21048 : x2 = XEXP (x1, 0);
21049 : operands[0] = x2;
21050 : x3 = XEXP (x1, 1);
21051 : x4 = XEXP (x3, 0);
21052 : operands[1] = x4;
21053 : switch (GET_MODE (operands[0]))
21054 : {
21055 : case E_V32HFmode:
21056 : if (!register_operand (operands[0], E_V32HFmode)
21057 : || GET_MODE (x3) != E_V32HFmode
21058 : || !vector_operand (operands[1], E_V32HFmode)
21059 : || !(
21060 : #line 3100 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21061 : (TARGET_SSE && 1 && 1) &&
21062 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21063 : (TARGET_AVX512FP16)))
21064 : return -1;
21065 : return 2979; /* avx512fp16_sqrtv32hf2 */
21066 :
21067 : case E_V16HFmode:
21068 : if (!register_operand (operands[0], E_V16HFmode)
21069 : || GET_MODE (x3) != E_V16HFmode
21070 : || !vector_operand (operands[1], E_V16HFmode)
21071 : || !(
21072 : #line 3100 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21073 : (TARGET_SSE && 1 && 1) &&
21074 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21075 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
21076 : return -1;
21077 : return 2983; /* avx512fp16_sqrtv16hf2 */
21078 :
21079 : case E_V8HFmode:
21080 : if (!register_operand (operands[0], E_V8HFmode)
21081 : || GET_MODE (x3) != E_V8HFmode
21082 : || !vector_operand (operands[1], E_V8HFmode)
21083 : || !(
21084 : #line 3100 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21085 : (TARGET_SSE && 1 && 1) &&
21086 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21087 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
21088 : return -1;
21089 : return 2985; /* avx512fp16_sqrtv8hf2 */
21090 :
21091 : case E_V16SFmode:
21092 : if (!register_operand (operands[0], E_V16SFmode)
21093 : || GET_MODE (x3) != E_V16SFmode
21094 : || !vector_operand (operands[1], E_V16SFmode)
21095 : || !(
21096 : #line 3100 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21097 : (TARGET_SSE && 1 && 1) &&
21098 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21099 : (TARGET_AVX512F)))
21100 : return -1;
21101 : return 2987; /* avx512f_sqrtv16sf2 */
21102 :
21103 : case E_V8SFmode:
21104 : if (!register_operand (operands[0], E_V8SFmode)
21105 : || GET_MODE (x3) != E_V8SFmode
21106 : || !vector_operand (operands[1], E_V8SFmode)
21107 : || !(
21108 : #line 3100 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21109 : (TARGET_SSE && 1 && 1) &&
21110 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21111 : (TARGET_AVX)))
21112 : return -1;
21113 : return 2991; /* avx_sqrtv8sf2 */
21114 :
21115 : case E_V4SFmode:
21116 : if (!register_operand (operands[0], E_V4SFmode)
21117 : || GET_MODE (x3) != E_V4SFmode
21118 : || !vector_operand (operands[1], E_V4SFmode)
21119 : || !
21120 : #line 3100 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21121 : (TARGET_SSE && 1 && 1))
21122 : return -1;
21123 : return 2993; /* sse_sqrtv4sf2 */
21124 :
21125 : case E_V8DFmode:
21126 : if (!register_operand (operands[0], E_V8DFmode)
21127 : || GET_MODE (x3) != E_V8DFmode
21128 : || !vector_operand (operands[1], E_V8DFmode)
21129 : || !(
21130 : #line 3100 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21131 : (TARGET_SSE && 1 && 1) &&
21132 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21133 : (TARGET_AVX512F)))
21134 : return -1;
21135 : return 2995; /* avx512f_sqrtv8df2 */
21136 :
21137 : case E_V4DFmode:
21138 : if (!register_operand (operands[0], E_V4DFmode)
21139 : || GET_MODE (x3) != E_V4DFmode
21140 : || !vector_operand (operands[1], E_V4DFmode)
21141 : || !(
21142 : #line 3100 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21143 : (TARGET_SSE && 1 && 1) &&
21144 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21145 : (TARGET_AVX)))
21146 : return -1;
21147 : return 2999; /* avx_sqrtv4df2 */
21148 :
21149 : case E_V2DFmode:
21150 : if (!register_operand (operands[0], E_V2DFmode)
21151 : || GET_MODE (x3) != E_V2DFmode
21152 : || !vector_operand (operands[1], E_V2DFmode)
21153 : || !(
21154 : #line 3100 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21155 : (TARGET_SSE && 1 && 1) &&
21156 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21157 : (TARGET_SSE2)))
21158 : return -1;
21159 : return 3001; /* sse2_sqrtv2df2 */
21160 :
21161 : case E_V32BFmode:
21162 : if (!register_operand (operands[0], E_V32BFmode)
21163 : || GET_MODE (x3) != E_V32BFmode
21164 : || !nonimmediate_operand (operands[1], E_V32BFmode)
21165 : || !
21166 : #line 33841 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21167 : (TARGET_AVX10_2))
21168 : return -1;
21169 : return 10830; /* avx10_2_sqrtbf16_v32bf */
21170 :
21171 : case E_V16BFmode:
21172 : if (!register_operand (operands[0], E_V16BFmode)
21173 : || GET_MODE (x3) != E_V16BFmode
21174 : || !nonimmediate_operand (operands[1], E_V16BFmode)
21175 : || !
21176 : #line 33841 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21177 : (TARGET_AVX10_2))
21178 : return -1;
21179 : return 10832; /* avx10_2_sqrtbf16_v16bf */
21180 :
21181 : case E_V8BFmode:
21182 : if (!register_operand (operands[0], E_V8BFmode)
21183 : || GET_MODE (x3) != E_V8BFmode
21184 : || !nonimmediate_operand (operands[1], E_V8BFmode)
21185 : || !
21186 : #line 33841 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21187 : (TARGET_AVX10_2))
21188 : return -1;
21189 : return 10834; /* avx10_2_sqrtbf16_v8bf */
21190 :
21191 : default:
21192 : return -1;
21193 : }
21194 : }
21195 :
21196 : int
21197 : recog_350 (rtx x1 ATTRIBUTE_UNUSED,
21198 : rtx_insn *insn ATTRIBUTE_UNUSED,
21199 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21200 : {
21201 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21202 : rtx x2, x3, x4;
21203 : int res ATTRIBUTE_UNUSED;
21204 : switch (pattern35 (x1))
21205 : {
21206 : case 0:
21207 : if (!
21208 : #line 25029 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21209 : (TARGET_AVX2 && 1 && 1))
21210 : return -1;
21211 : return 8872; /* avx2_sign_extendv16qiv16hi2 */
21212 :
21213 : case 1:
21214 : if (!
21215 : #line 25084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21216 : (TARGET_AVX512BW))
21217 : return -1;
21218 : return 8880; /* avx512bw_sign_extendv32qiv32hi2 */
21219 :
21220 : case 2:
21221 : if (!
21222 : #line 25156 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21223 : (TARGET_SSE4_1 && 1 && 1))
21224 : return -1;
21225 : return 8892; /* *sse4_1_sign_extendv8qiv8hi2_1 */
21226 :
21227 : case 3:
21228 : if (!
21229 : #line 25308 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21230 : (TARGET_AVX512F))
21231 : return -1;
21232 : return 8904; /* *avx512f_sign_extendv16qiv16si2 */
21233 :
21234 : case 4:
21235 : if (!
21236 : #line 25512 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21237 : (TARGET_AVX512F))
21238 : return -1;
21239 : return 8934; /* avx512f_sign_extendv16hiv16si2 */
21240 :
21241 : case 5:
21242 : if (!
21243 : #line 25342 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21244 : (TARGET_AVX2 && 1))
21245 : return -1;
21246 : return 8912; /* *avx2_sign_extendv8qiv8si2_1 */
21247 :
21248 : case 6:
21249 : if (!
21250 : #line 25566 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21251 : (TARGET_AVX2 && 1))
21252 : return -1;
21253 : return 8942; /* avx2_sign_extendv8hiv8si2 */
21254 :
21255 : case 7:
21256 : if (!
21257 : #line 25432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21258 : (TARGET_SSE4_1 && 1))
21259 : return -1;
21260 : return 8924; /* *sse4_1_sign_extendv4qiv4si2_1 */
21261 :
21262 : case 8:
21263 : if (!
21264 : #line 25638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21265 : (TARGET_SSE4_1 && 1))
21266 : return -1;
21267 : return 8954; /* *sse4_1_sign_extendv4hiv4si2_1 */
21268 :
21269 : case 9:
21270 : if (!
21271 : #line 25796 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21272 : (TARGET_AVX512F))
21273 : return -1;
21274 : return 8970; /* *avx512f_sign_extendv8qiv8di2_1 */
21275 :
21276 : case 10:
21277 : if (!
21278 : #line 26027 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21279 : (TARGET_AVX512F))
21280 : return -1;
21281 : return 9001; /* avx512f_sign_extendv8hiv8di2 */
21282 :
21283 : case 11:
21284 : if (!
21285 : #line 26222 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21286 : (TARGET_AVX512F))
21287 : return -1;
21288 : return 9029; /* avx512f_sign_extendv8siv8di2 */
21289 :
21290 : case 12:
21291 : if (!
21292 : #line 25882 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21293 : (TARGET_AVX2 && 1))
21294 : return -1;
21295 : return 8982; /* *avx2_sign_extendv4qiv4di2_1 */
21296 :
21297 : case 13:
21298 : if (!
21299 : #line 26059 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21300 : (TARGET_AVX2 && 1))
21301 : return -1;
21302 : return 9009; /* *avx2_sign_extendv4hiv4di2_1 */
21303 :
21304 : case 14:
21305 : if (!
21306 : #line 26274 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21307 : (TARGET_AVX2 && 1))
21308 : return -1;
21309 : return 9035; /* avx2_sign_extendv4siv4di2 */
21310 :
21311 : case 15:
21312 : if (!
21313 : #line 25975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21314 : (TARGET_SSE4_1 && 1))
21315 : return -1;
21316 : return 8994; /* *sse4_1_sign_extendv2qiv2di2_1 */
21317 :
21318 : case 16:
21319 : if (!
21320 : #line 26144 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21321 : (TARGET_SSE4_1 && 1))
21322 : return -1;
21323 : return 9021; /* *sse4_1_sign_extendv2hiv2di2_1 */
21324 :
21325 : case 17:
21326 : if (!
21327 : #line 26342 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21328 : (TARGET_SSE4_1 && 1))
21329 : return -1;
21330 : return 9045; /* *sse4_1_sign_extendv2siv2di2_1 */
21331 :
21332 : case 18:
21333 : x2 = XEXP (x1, 1);
21334 : x3 = XEXP (x2, 0);
21335 : x4 = XEXP (x3, 0);
21336 : operands[1] = x4;
21337 : switch (pattern547 (x2))
21338 : {
21339 : case 0:
21340 : if (
21341 : #line 25143 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21342 : (TARGET_SSE4_1 && 1 && 1))
21343 : return 8888; /* sse4_1_sign_extendv8qiv8hi2 */
21344 : break;
21345 :
21346 : case 1:
21347 : if (
21348 : #line 25330 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21349 : (TARGET_AVX2 && 1))
21350 : return 8908; /* avx2_sign_extendv8qiv8si2 */
21351 : break;
21352 :
21353 : case 2:
21354 : if (
21355 : #line 25785 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21356 : (TARGET_AVX512F))
21357 : return 8966; /* avx512f_sign_extendv8qiv8di2 */
21358 : break;
21359 :
21360 : case 3:
21361 : if (
21362 : #line 25419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21363 : (TARGET_SSE4_1 && 1))
21364 : return 8920; /* sse4_1_sign_extendv4qiv4si2 */
21365 : break;
21366 :
21367 : case 4:
21368 : if (
21369 : #line 25625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21370 : (TARGET_SSE4_1 && 1))
21371 : return 8950; /* sse4_1_sign_extendv4hiv4si2 */
21372 : break;
21373 :
21374 : case 5:
21375 : if (
21376 : #line 25870 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21377 : (TARGET_AVX2 && 1))
21378 : return 8978; /* avx2_sign_extendv4qiv4di2 */
21379 : break;
21380 :
21381 : case 6:
21382 : if (
21383 : #line 26047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21384 : (TARGET_AVX2 && 1))
21385 : return 9005; /* avx2_sign_extendv4hiv4di2 */
21386 : break;
21387 :
21388 : case 7:
21389 : if (
21390 : #line 25962 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21391 : (TARGET_SSE4_1 && 1))
21392 : return 8990; /* sse4_1_sign_extendv2qiv2di2 */
21393 : break;
21394 :
21395 : case 8:
21396 : if (
21397 : #line 26131 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21398 : (TARGET_SSE4_1 && 1))
21399 : return 9017; /* sse4_1_sign_extendv2hiv2di2 */
21400 : break;
21401 :
21402 : case 9:
21403 : if (
21404 : #line 26329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21405 : (TARGET_SSE4_1 && 1))
21406 : return 9041; /* sse4_1_sign_extendv2siv2di2 */
21407 : break;
21408 :
21409 : default:
21410 : break;
21411 : }
21412 : if (GET_CODE (x4) != SUBREG
21413 : || maybe_ne (SUBREG_BYTE (x4), 0))
21414 : return -1;
21415 : switch (pattern699 (x2))
21416 : {
21417 : case 0:
21418 : if (!
21419 : #line 25181 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21420 : (TARGET_SSE4_1
21421 : && ix86_pre_reload_split ()))
21422 : return -1;
21423 : return 8896; /* *sse4_1_sign_extendv8qiv8hi2_2 */
21424 :
21425 : case 1:
21426 : if (!
21427 : #line 25362 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21428 : (TARGET_AVX2
21429 : && ix86_pre_reload_split ()))
21430 : return -1;
21431 : return 8916; /* *avx2_sign_extendv8qiv8si2_2 */
21432 :
21433 : case 2:
21434 : if (!
21435 : #line 25815 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21436 : (TARGET_AVX512F && ix86_pre_reload_split ()))
21437 : return -1;
21438 : return 8974; /* *avx512f_sign_extendv8qiv8di2_2 */
21439 :
21440 : case 3:
21441 : if (!
21442 : #line 25658 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21443 : (TARGET_SSE4_1
21444 : && ix86_pre_reload_split ()))
21445 : return -1;
21446 : return 8958; /* *sse4_1_sign_extendv4hiv4si2_2 */
21447 :
21448 : case 4:
21449 : if (!
21450 : #line 26077 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21451 : (TARGET_AVX2
21452 : && ix86_pre_reload_split ()))
21453 : return -1;
21454 : return 9013; /* *avx2_sign_extendv4hiv4di2_2 */
21455 :
21456 : case 5:
21457 : if (!
21458 : #line 26361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21459 : (TARGET_SSE4_1
21460 : && ix86_pre_reload_split ()))
21461 : return -1;
21462 : return 9049; /* *sse4_1_sign_extendv2siv2di2_2 */
21463 :
21464 : case 6:
21465 : if (!
21466 : #line 25456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21467 : (TARGET_SSE4_1 && 1
21468 : && ix86_pre_reload_split ()))
21469 : return -1;
21470 : return 8928; /* *sse4_1_sign_extendv4qiv4si2_2 */
21471 :
21472 : case 7:
21473 : if (!
21474 : #line 25904 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21475 : (TARGET_AVX2
21476 : && ix86_pre_reload_split ()))
21477 : return -1;
21478 : return 8986; /* *avx2_sign_extendv4qiv4di2_2 */
21479 :
21480 : case 8:
21481 : if (!
21482 : #line 26167 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21483 : (TARGET_SSE4_1
21484 : && ix86_pre_reload_split ()))
21485 : return -1;
21486 : return 9025; /* *sse4_1_sign_extendv2hiv2di2_2 */
21487 :
21488 : default:
21489 : return -1;
21490 : }
21491 :
21492 : default:
21493 : return -1;
21494 : }
21495 : }
21496 :
21497 : int
21498 : recog_356 (rtx x1 ATTRIBUTE_UNUSED,
21499 : rtx_insn *insn ATTRIBUTE_UNUSED,
21500 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21501 : {
21502 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21503 : rtx x2, x3, x4;
21504 : int res ATTRIBUTE_UNUSED;
21505 : x2 = XEXP (x1, 0);
21506 : operands[0] = x2;
21507 : x3 = XEXP (x1, 1);
21508 : x4 = XEXP (x3, 0);
21509 : operands[1] = x4;
21510 : switch (GET_MODE (operands[0]))
21511 : {
21512 : case E_V8HFmode:
21513 : if (!register_operand (operands[0], E_V8HFmode)
21514 : || GET_MODE (x3) != E_V8HFmode)
21515 : return -1;
21516 : switch (GET_MODE (operands[1]))
21517 : {
21518 : case E_V8DFmode:
21519 : if (!vector_operand (operands[1], E_V8DFmode)
21520 : || !
21521 : #line 8550 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21522 : (TARGET_AVX512FP16))
21523 : return -1;
21524 : return 4802; /* avx512fp16_vcvtpd2ph_v8df */
21525 :
21526 : case E_V8SFmode:
21527 : if (!vector_operand (operands[1], E_V8SFmode)
21528 : || !(
21529 : #line 8550 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21530 : (TARGET_AVX512FP16) &&
21531 : #line 982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21532 : (TARGET_AVX512VL)))
21533 : return -1;
21534 : return 4810; /* avx512fp16_vcvtps2ph_v8sf */
21535 :
21536 : default:
21537 : return -1;
21538 : }
21539 :
21540 : case E_V16HFmode:
21541 : if (!register_operand (operands[0], E_V16HFmode)
21542 : || GET_MODE (x3) != E_V16HFmode
21543 : || !vector_operand (operands[1], E_V16SFmode)
21544 : || !
21545 : #line 8550 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21546 : (TARGET_AVX512FP16))
21547 : return -1;
21548 : return 4806; /* avx512fp16_vcvtps2ph_v16sf */
21549 :
21550 : case E_V8SFmode:
21551 : if (!register_operand (operands[0], E_V8SFmode)
21552 : || GET_MODE (x3) != E_V8SFmode
21553 : || !vector_operand (operands[1], E_V8DFmode)
21554 : || !
21555 : #line 10760 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21556 : (TARGET_AVX512F))
21557 : return -1;
21558 : return 5239; /* *avx512f_cvtpd2ps512 */
21559 :
21560 : case E_V4SFmode:
21561 : if (!register_operand (operands[0], E_V4SFmode)
21562 : || GET_MODE (x3) != E_V4SFmode
21563 : || !nonimmediate_operand (operands[1], E_V4DFmode)
21564 : || !
21565 : #line 10770 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21566 : (TARGET_AVX && 1))
21567 : return -1;
21568 : return 5243; /* avx_cvtpd2ps256 */
21569 :
21570 : case E_V8BFmode:
21571 : if (!register_operand (operands[0], E_V8BFmode)
21572 : || GET_MODE (x3) != E_V8BFmode
21573 : || !nonimmediate_operand (operands[1], E_V8SFmode))
21574 : return -1;
21575 : if (
21576 : #line 32576 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21577 : (TARGET_AVXNECONVERT || (TARGET_AVX512BF16 && TARGET_AVX512VL)))
21578 : return 10494; /* vcvtneps2bf16_v8sf */
21579 : if (!(
21580 : #line 32614 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21581 : (TARGET_AVX512BF16) &&
21582 : #line 32542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21583 : (TARGET_AVX512VL)))
21584 : return -1;
21585 : return 10497; /* avx512f_cvtneps2bf16_v8sf */
21586 :
21587 : case E_V16BFmode:
21588 : if (!register_operand (operands[0], E_V16BFmode)
21589 : || GET_MODE (x3) != E_V16BFmode
21590 : || !nonimmediate_operand (operands[1], E_V16SFmode)
21591 : || !
21592 : #line 32614 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21593 : (TARGET_AVX512BF16))
21594 : return -1;
21595 : return 10495; /* avx512f_cvtneps2bf16_v16sf */
21596 :
21597 : default:
21598 : return -1;
21599 : }
21600 : }
21601 :
21602 : int
21603 : recog_359 (rtx x1 ATTRIBUTE_UNUSED,
21604 : rtx_insn *insn ATTRIBUTE_UNUSED,
21605 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21606 : {
21607 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21608 : int res ATTRIBUTE_UNUSED;
21609 : switch (pattern33 (x1))
21610 : {
21611 : case 0:
21612 : if (!
21613 : #line 18339 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21614 : (TARGET_SSE2 && TARGET_64BIT
21615 : && ix86_pre_reload_split ()))
21616 : return -1;
21617 : return 7810; /* *rotrv1ti3_internal */
21618 :
21619 : case 1:
21620 : if (!
21621 : #line 18406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21622 : (TARGET_AVX512F))
21623 : return -1;
21624 : return 7847; /* avx512f_rorv16si */
21625 :
21626 : case 2:
21627 : if (!(
21628 : #line 18406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21629 : (TARGET_AVX512F) &&
21630 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21631 : (TARGET_AVX512VL)))
21632 : return -1;
21633 : return 7851; /* avx512vl_rorv8si */
21634 :
21635 : case 3:
21636 : if (const_0_to_255_operand (operands[2], E_SImode)
21637 : && (
21638 : #line 18406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21639 : (TARGET_AVX512F) &&
21640 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21641 : (TARGET_AVX512VL)))
21642 : return 7855; /* avx512vl_rorv4si */
21643 : if (!const_0_to_31_operand (operands[2], E_SImode)
21644 : || !
21645 : #line 27836 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21646 : (TARGET_XOP))
21647 : return -1;
21648 : return 9167; /* xop_rotrv4si3 */
21649 :
21650 : case 4:
21651 : if (!
21652 : #line 18406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21653 : (TARGET_AVX512F))
21654 : return -1;
21655 : return 7859; /* avx512f_rorv8di */
21656 :
21657 : case 5:
21658 : if (!(
21659 : #line 18406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21660 : (TARGET_AVX512F) &&
21661 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21662 : (TARGET_AVX512VL)))
21663 : return -1;
21664 : return 7863; /* avx512vl_rorv4di */
21665 :
21666 : case 6:
21667 : if (const_0_to_255_operand (operands[2], E_SImode)
21668 : && (
21669 : #line 18406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21670 : (TARGET_AVX512F) &&
21671 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21672 : (TARGET_AVX512VL)))
21673 : return 7867; /* avx512vl_rorv2di */
21674 : if (!const_0_to_63_operand (operands[2], E_SImode)
21675 : || !
21676 : #line 27836 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21677 : (TARGET_XOP))
21678 : return -1;
21679 : return 9168; /* xop_rotrv2di3 */
21680 :
21681 : case 7:
21682 : if (!
21683 : #line 27836 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21684 : (TARGET_XOP))
21685 : return -1;
21686 : return 9165; /* xop_rotrv16qi3 */
21687 :
21688 : case 8:
21689 : if (!
21690 : #line 27836 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21691 : (TARGET_XOP))
21692 : return -1;
21693 : return 9166; /* xop_rotrv8hi3 */
21694 :
21695 : case 9:
21696 : if (!
21697 : #line 18396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21698 : (TARGET_AVX512F))
21699 : return -1;
21700 : return 7823; /* avx512f_rorvv16si */
21701 :
21702 : case 10:
21703 : if (!(
21704 : #line 18396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21705 : (TARGET_AVX512F) &&
21706 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21707 : (TARGET_AVX512VL)))
21708 : return -1;
21709 : return 7827; /* avx512vl_rorvv8si */
21710 :
21711 : case 11:
21712 : if (!(
21713 : #line 18396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21714 : (TARGET_AVX512F) &&
21715 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21716 : (TARGET_AVX512VL)))
21717 : return -1;
21718 : return 7831; /* avx512vl_rorvv4si */
21719 :
21720 : case 12:
21721 : if (!
21722 : #line 18396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21723 : (TARGET_AVX512F))
21724 : return -1;
21725 : return 7835; /* avx512f_rorvv8di */
21726 :
21727 : case 13:
21728 : if (!(
21729 : #line 18396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21730 : (TARGET_AVX512F) &&
21731 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21732 : (TARGET_AVX512VL)))
21733 : return -1;
21734 : return 7839; /* avx512vl_rorvv4di */
21735 :
21736 : case 14:
21737 : if (!(
21738 : #line 18396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21739 : (TARGET_AVX512F) &&
21740 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21741 : (TARGET_AVX512VL)))
21742 : return -1;
21743 : return 7843; /* avx512vl_rorvv2di */
21744 :
21745 : default:
21746 : return -1;
21747 : }
21748 : }
21749 :
21750 : int
21751 : recog_368 (rtx x1 ATTRIBUTE_UNUSED,
21752 : rtx_insn *insn ATTRIBUTE_UNUSED,
21753 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21754 : {
21755 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21756 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
21757 : rtx x10, x11;
21758 : int res ATTRIBUTE_UNUSED;
21759 : x2 = XVECEXP (x1, 0, 0);
21760 : x3 = XEXP (x2, 0);
21761 : switch (GET_CODE (x3))
21762 : {
21763 : case REG:
21764 : case SUBREG:
21765 : case MEM:
21766 : res = recog_366 (x1, insn, pnum_clobbers);
21767 : if (res >= 0)
21768 : return res;
21769 : break;
21770 :
21771 : case STRICT_LOW_PART:
21772 : x4 = XVECEXP (x1, 0, 1);
21773 : if (pattern237 (x4,
21774 : E_CCmode,
21775 : 17) == 0)
21776 : {
21777 : x5 = XEXP (x3, 0);
21778 : operands[0] = x5;
21779 : x6 = XEXP (x2, 1);
21780 : operands[1] = x6;
21781 : switch (GET_MODE (operands[0]))
21782 : {
21783 : case E_QImode:
21784 : if (register_operand (operands[0], E_QImode)
21785 : && const0_operand (operands[1], E_QImode)
21786 : &&
21787 : #line 3525 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21788 : (reload_completed))
21789 : return 117; /* *movstrictqi_xor */
21790 : break;
21791 :
21792 : case E_HImode:
21793 : if (register_operand (operands[0], E_HImode)
21794 : && const0_operand (operands[1], E_HImode)
21795 : &&
21796 : #line 3525 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21797 : (reload_completed))
21798 : return 118; /* *movstricthi_xor */
21799 : break;
21800 :
21801 : default:
21802 : break;
21803 : }
21804 : }
21805 : break;
21806 :
21807 : case PC:
21808 : res = recog_367 (x1, insn, pnum_clobbers);
21809 : if (res >= 0)
21810 : return res;
21811 : break;
21812 :
21813 : default:
21814 : break;
21815 : }
21816 : x4 = XVECEXP (x1, 0, 1);
21817 : if (GET_CODE (x4) != CLOBBER)
21818 : return -1;
21819 : x7 = XEXP (x4, 0);
21820 : if (GET_CODE (x7) != REG
21821 : || REGNO (x7) != 17
21822 : || GET_MODE (x7) != E_CCmode)
21823 : return -1;
21824 : x6 = XEXP (x2, 1);
21825 : switch (GET_CODE (x6))
21826 : {
21827 : case SUBREG:
21828 : if (maybe_ne (SUBREG_BYTE (x6), 0))
21829 : return -1;
21830 : switch (pattern1057 (x2))
21831 : {
21832 : case 0:
21833 : x8 = XEXP (x6, 0);
21834 : x9 = XEXP (x8, 1);
21835 : operands[2] = x9;
21836 : if (general_operand (operands[2], E_QImode))
21837 : {
21838 : switch (pattern1055 (x2))
21839 : {
21840 : case 0:
21841 : return 341; /* *addqi_exthi_1 */
21842 :
21843 : case 1:
21844 : return 342; /* *addqi_extsi_1 */
21845 :
21846 : case 2:
21847 : if (
21848 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21849 : (TARGET_64BIT))
21850 : return 343; /* *addqi_extdi_1 */
21851 : break;
21852 :
21853 : default:
21854 : break;
21855 : }
21856 : }
21857 : if (GET_CODE (x9) != SUBREG)
21858 : return -1;
21859 : switch (pattern1824 (x2))
21860 : {
21861 : case 0:
21862 : return 344; /* *addqi_exthi_2 */
21863 :
21864 : case 1:
21865 : return 346; /* *addqi_extsi_2 */
21866 :
21867 : case 2:
21868 : if (!
21869 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21870 : (TARGET_64BIT))
21871 : return -1;
21872 : return 348; /* *addqi_extdi_2 */
21873 :
21874 : default:
21875 : return -1;
21876 : }
21877 :
21878 : case 1:
21879 : x8 = XEXP (x6, 0);
21880 : x9 = XEXP (x8, 1);
21881 : if (GET_CODE (x9) == SUBREG)
21882 : {
21883 : switch (pattern1824 (x2))
21884 : {
21885 : case 0:
21886 : return 345; /* *subqi_exthi_2 */
21887 :
21888 : case 1:
21889 : return 347; /* *subqi_extsi_2 */
21890 :
21891 : case 2:
21892 : if (
21893 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21894 : (TARGET_64BIT))
21895 : return 349; /* *subqi_extdi_2 */
21896 : break;
21897 :
21898 : default:
21899 : break;
21900 : }
21901 : }
21902 : operands[2] = x9;
21903 : if (!general_operand (operands[2], E_QImode))
21904 : return -1;
21905 : switch (pattern1055 (x2))
21906 : {
21907 : case 0:
21908 : return 430; /* *subqi_exthi_1 */
21909 :
21910 : case 1:
21911 : return 431; /* *subqi_extsi_1 */
21912 :
21913 : case 2:
21914 : if (!
21915 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21916 : (TARGET_64BIT))
21917 : return -1;
21918 : return 432; /* *subqi_extdi_1 */
21919 :
21920 : default:
21921 : return -1;
21922 : }
21923 :
21924 : case 2:
21925 : x8 = XEXP (x6, 0);
21926 : x9 = XEXP (x8, 1);
21927 : operands[2] = x9;
21928 : if (general_operand (operands[2], E_QImode))
21929 : {
21930 : switch (pattern1055 (x2))
21931 : {
21932 : case 0:
21933 : return 807; /* *andqi_exthi_1 */
21934 :
21935 : case 1:
21936 : return 810; /* *andqi_extsi_1 */
21937 :
21938 : case 2:
21939 : if (
21940 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21941 : (TARGET_64BIT))
21942 : return 813; /* *andqi_extdi_1 */
21943 : break;
21944 :
21945 : default:
21946 : break;
21947 : }
21948 : }
21949 : if (GET_CODE (x9) != SUBREG)
21950 : return -1;
21951 : switch (pattern1824 (x2))
21952 : {
21953 : case 0:
21954 : return 825; /* *andqi_exthi_2 */
21955 :
21956 : case 1:
21957 : return 828; /* *andqi_extsi_2 */
21958 :
21959 : case 2:
21960 : if (!
21961 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21962 : (TARGET_64BIT))
21963 : return -1;
21964 : return 831; /* *andqi_extdi_2 */
21965 :
21966 : default:
21967 : return -1;
21968 : }
21969 :
21970 : case 3:
21971 : x8 = XEXP (x6, 0);
21972 : x9 = XEXP (x8, 1);
21973 : operands[2] = x9;
21974 : if (general_operand (operands[2], E_QImode))
21975 : {
21976 : switch (pattern1055 (x2))
21977 : {
21978 : case 0:
21979 : return 808; /* *iorqi_exthi_1 */
21980 :
21981 : case 1:
21982 : return 811; /* *iorqi_extsi_1 */
21983 :
21984 : case 2:
21985 : if (
21986 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21987 : (TARGET_64BIT))
21988 : return 814; /* *iorqi_extdi_1 */
21989 : break;
21990 :
21991 : default:
21992 : break;
21993 : }
21994 : }
21995 : if (GET_CODE (x9) != SUBREG)
21996 : return -1;
21997 : switch (pattern1824 (x2))
21998 : {
21999 : case 0:
22000 : return 826; /* *iorqi_exthi_2 */
22001 :
22002 : case 1:
22003 : return 829; /* *iorqi_extsi_2 */
22004 :
22005 : case 2:
22006 : if (!
22007 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22008 : (TARGET_64BIT))
22009 : return -1;
22010 : return 832; /* *iorqi_extdi_2 */
22011 :
22012 : default:
22013 : return -1;
22014 : }
22015 :
22016 : case 4:
22017 : x8 = XEXP (x6, 0);
22018 : x9 = XEXP (x8, 1);
22019 : operands[2] = x9;
22020 : if (general_operand (operands[2], E_QImode))
22021 : {
22022 : switch (pattern1055 (x2))
22023 : {
22024 : case 0:
22025 : return 809; /* *xorqi_exthi_1 */
22026 :
22027 : case 1:
22028 : return 812; /* *xorqi_extsi_1 */
22029 :
22030 : case 2:
22031 : if (
22032 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22033 : (TARGET_64BIT))
22034 : return 815; /* *xorqi_extdi_1 */
22035 : break;
22036 :
22037 : default:
22038 : break;
22039 : }
22040 : }
22041 : if (GET_CODE (x9) != SUBREG)
22042 : return -1;
22043 : switch (pattern1824 (x2))
22044 : {
22045 : case 0:
22046 : return 827; /* *xorqi_exthi_2 */
22047 :
22048 : case 1:
22049 : return 830; /* *xorqi_extsi_2 */
22050 :
22051 : case 2:
22052 : if (!
22053 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22054 : (TARGET_64BIT))
22055 : return -1;
22056 : return 833; /* *xorqi_extdi_2 */
22057 :
22058 : default:
22059 : return -1;
22060 : }
22061 :
22062 : case 5:
22063 : return 1026; /* *negqi_exthi_1 */
22064 :
22065 : case 6:
22066 : return 1027; /* *negqi_extsi_1 */
22067 :
22068 : case 7:
22069 : if (!
22070 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22071 : (TARGET_64BIT))
22072 : return -1;
22073 : return 1028; /* *negqi_extdi_1 */
22074 :
22075 : case 8:
22076 : return 1157; /* *ashlqi_exthi_1 */
22077 :
22078 : case 9:
22079 : return 1158; /* *ashlqi_extsi_1 */
22080 :
22081 : case 10:
22082 : if (!
22083 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22084 : (TARGET_64BIT))
22085 : return -1;
22086 : return 1159; /* *ashlqi_extdi_1 */
22087 :
22088 : case 11:
22089 : operands[0] = x3;
22090 : switch (pattern1247 (x6))
22091 : {
22092 : case 0:
22093 : if ((
22094 : #line 17736 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22095 : (UINTVAL (operands[2]) < 4 * BITS_PER_UNIT) &&
22096 : #line 1270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22097 : (!TARGET_64BIT)))
22098 : return 1176; /* lshrdi3_doubleword_lowpart */
22099 : break;
22100 :
22101 : case 1:
22102 : if ((
22103 : #line 17736 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22104 : (UINTVAL (operands[2]) < 8 * BITS_PER_UNIT) &&
22105 : #line 1271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22106 : (TARGET_64BIT)))
22107 : return 1178; /* lshrti3_doubleword_lowpart */
22108 : break;
22109 :
22110 : default:
22111 : break;
22112 : }
22113 : x8 = XEXP (x6, 0);
22114 : if (GET_MODE (x8) != E_QImode)
22115 : return -1;
22116 : switch (pattern1056 (x2))
22117 : {
22118 : case 0:
22119 : return 1276; /* *lshrqi_exthi_1 */
22120 :
22121 : case 1:
22122 : return 1278; /* *lshrqi_extsi_1 */
22123 :
22124 : case 2:
22125 : if (!
22126 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22127 : (TARGET_64BIT))
22128 : return -1;
22129 : return 1280; /* *lshrqi_extdi_1 */
22130 :
22131 : default:
22132 : return -1;
22133 : }
22134 :
22135 : case 12:
22136 : operands[0] = x3;
22137 : switch (pattern1247 (x6))
22138 : {
22139 : case 0:
22140 : if ((
22141 : #line 17736 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22142 : (UINTVAL (operands[2]) < 4 * BITS_PER_UNIT) &&
22143 : #line 1270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22144 : (!TARGET_64BIT)))
22145 : return 1177; /* ashrdi3_doubleword_lowpart */
22146 : break;
22147 :
22148 : case 1:
22149 : if ((
22150 : #line 17736 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22151 : (UINTVAL (operands[2]) < 8 * BITS_PER_UNIT) &&
22152 : #line 1271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22153 : (TARGET_64BIT)))
22154 : return 1179; /* ashrti3_doubleword_lowpart */
22155 : break;
22156 :
22157 : default:
22158 : break;
22159 : }
22160 : x8 = XEXP (x6, 0);
22161 : if (GET_MODE (x8) != E_QImode)
22162 : return -1;
22163 : switch (pattern1056 (x2))
22164 : {
22165 : case 0:
22166 : return 1277; /* *ashrqi_exthi_1 */
22167 :
22168 : case 1:
22169 : return 1279; /* *ashrqi_extsi_1 */
22170 :
22171 : case 2:
22172 : if (!
22173 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22174 : (TARGET_64BIT))
22175 : return -1;
22176 : return 1281; /* *ashrqi_extdi_1 */
22177 :
22178 : default:
22179 : return -1;
22180 : }
22181 :
22182 : default:
22183 : return -1;
22184 : }
22185 :
22186 : case CONST_INT:
22187 : if (GET_CODE (x3) != ZERO_EXTRACT)
22188 : return -1;
22189 : x10 = XEXP (x3, 1);
22190 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
22191 : return -1;
22192 : x5 = XEXP (x3, 0);
22193 : operands[0] = x5;
22194 : x11 = XEXP (x3, 2);
22195 : operands[1] = x11;
22196 : switch (XWINT (x6, 0))
22197 : {
22198 : case 0L:
22199 : switch (GET_CODE (operands[1]))
22200 : {
22201 : case REG:
22202 : case SUBREG:
22203 : if (!register_operand (operands[1], E_QImode)
22204 : || GET_MODE (x3) != E_HImode)
22205 : return -1;
22206 : switch (GET_MODE (operands[0]))
22207 : {
22208 : case E_QImode:
22209 : if (!nonimmediate_operand (operands[0], E_QImode)
22210 : || !
22211 : #line 19963 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22212 : (TARGET_USE_BT && ix86_pre_reload_split ()))
22213 : return -1;
22214 : return 1449; /* *btrqi_2 */
22215 :
22216 : case E_HImode:
22217 : if (!nonimmediate_operand (operands[0], E_HImode)
22218 : || !
22219 : #line 19963 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22220 : (TARGET_USE_BT && ix86_pre_reload_split ()))
22221 : return -1;
22222 : return 1450; /* *btrhi_2 */
22223 :
22224 : default:
22225 : return -1;
22226 : }
22227 :
22228 : case CONST_INT:
22229 : if (!const_0_to_63_operand (operands[1], E_QImode)
22230 : || GET_MODE (x3) != E_DImode
22231 : || !nonimmediate_operand (operands[0], E_DImode)
22232 : || !
22233 : #line 20028 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22234 : (TARGET_64BIT && (TARGET_USE_BT || reload_completed)))
22235 : return -1;
22236 : return 1452; /* *btrq_imm */
22237 :
22238 : default:
22239 : return -1;
22240 : }
22241 :
22242 : case 1L:
22243 : if (GET_MODE (x3) != E_DImode
22244 : || !nonimmediate_operand (operands[0], E_DImode)
22245 : || !const_0_to_63_operand (operands[1], E_QImode)
22246 : || !
22247 : #line 20014 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22248 : (TARGET_64BIT && (TARGET_USE_BT || reload_completed)))
22249 : return -1;
22250 : return 1451; /* *btsq_imm */
22251 :
22252 : default:
22253 : return -1;
22254 : }
22255 :
22256 : default:
22257 : return -1;
22258 : }
22259 : }
22260 :
22261 : int
22262 : recog_383 (rtx x1 ATTRIBUTE_UNUSED,
22263 : rtx_insn *insn ATTRIBUTE_UNUSED,
22264 : int *pnum_clobbers ATTRIBUTE_UNUSED)
22265 : {
22266 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
22267 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
22268 : rtx x10, x11, x12;
22269 : int res ATTRIBUTE_UNUSED;
22270 : if (pattern346 (x1) != 0)
22271 : return -1;
22272 : x2 = XVECEXP (x1, 0, 0);
22273 : x3 = XEXP (x2, 1);
22274 : x4 = XEXP (x3, 0);
22275 : x5 = XEXP (x4, 0);
22276 : switch (GET_CODE (x5))
22277 : {
22278 : case REG:
22279 : case SUBREG:
22280 : case MEM:
22281 : operands[1] = x5;
22282 : x6 = XEXP (x4, 1);
22283 : operands[2] = x6;
22284 : switch (GET_CODE (operands[2]))
22285 : {
22286 : case CONST_INT:
22287 : case CONST_WIDE_INT:
22288 : case CONST_POLY_INT:
22289 : case CONST_FIXED:
22290 : case CONST_DOUBLE:
22291 : case CONST_VECTOR:
22292 : case CONST:
22293 : case REG:
22294 : case SUBREG:
22295 : case MEM:
22296 : case LABEL_REF:
22297 : case SYMBOL_REF:
22298 : case HIGH:
22299 : switch (pattern1058 (x3))
22300 : {
22301 : case 0:
22302 : if (!
22303 : #line 8416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22304 : (TARGET_APX_NDD && true
22305 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22306 : return -1;
22307 : return 401; /* *subqi_1_zexthi */
22308 :
22309 : case 1:
22310 : if (!
22311 : #line 8416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22312 : (TARGET_APX_NDD && true
22313 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22314 : return -1;
22315 : return 403; /* *subqi_1_zextsi */
22316 :
22317 : case 2:
22318 : if (!
22319 : #line 8435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22320 : (TARGET_APX_NDD && true
22321 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22322 : return -1;
22323 : return 407; /* *subhi_1_zextsi */
22324 :
22325 : case 3:
22326 : if (!
22327 : #line 8416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22328 : (TARGET_APX_NDD && true
22329 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22330 : return -1;
22331 : return 405; /* *subqi_1_zextdi */
22332 :
22333 : case 4:
22334 : if (!
22335 : #line 8435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22336 : (TARGET_APX_NDD && true
22337 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22338 : return -1;
22339 : return 409; /* *subhi_1_zextdi */
22340 :
22341 : case 5:
22342 : if (!
22343 : #line 8455 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22344 : (TARGET_64BIT
22345 : && ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)))
22346 : return -1;
22347 : return 410; /* *subsi_1_zext */
22348 :
22349 : default:
22350 : return -1;
22351 : }
22352 :
22353 : case LTU:
22354 : case UNLT:
22355 : switch (pattern1440 (x3))
22356 : {
22357 : case 0:
22358 : if (!nonimmediate_operand (operands[1], E_QImode)
22359 : || !ix86_carry_flag_operator (operands[2], E_QImode)
22360 : || !
22361 : #line 10115 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22362 : (TARGET_APX_NDD))
22363 : return -1;
22364 : return 537; /* *subqi3_carry_zexthi_0 */
22365 :
22366 : case 1:
22367 : if (!nonimmediate_operand (operands[1], E_QImode)
22368 : || !ix86_carry_flag_operator (operands[2], E_QImode)
22369 : || !
22370 : #line 10115 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22371 : (TARGET_APX_NDD))
22372 : return -1;
22373 : return 538; /* *subqi3_carry_zextsi_0 */
22374 :
22375 : case 2:
22376 : if (!nonimmediate_operand (operands[1], E_HImode)
22377 : || !ix86_carry_flag_operator (operands[2], E_HImode)
22378 : || !
22379 : #line 10134 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22380 : (TARGET_APX_NDD))
22381 : return -1;
22382 : return 540; /* *subhi3_carry_zextsi_0 */
22383 :
22384 : case 3:
22385 : if (!nonimmediate_operand (operands[1], E_QImode)
22386 : || !ix86_carry_flag_operator (operands[2], E_QImode)
22387 : || !
22388 : #line 10115 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22389 : (TARGET_APX_NDD))
22390 : return -1;
22391 : return 539; /* *subqi3_carry_zextdi_0 */
22392 :
22393 : case 4:
22394 : if (!nonimmediate_operand (operands[1], E_HImode)
22395 : || !ix86_carry_flag_operator (operands[2], E_HImode)
22396 : || !
22397 : #line 10134 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22398 : (TARGET_APX_NDD))
22399 : return -1;
22400 : return 541; /* *subhi3_carry_zextdi_0 */
22401 :
22402 : case 5:
22403 : if (!nonimmediate_operand (operands[1], E_SImode)
22404 : || !ix86_carry_flag_operator (operands[2], E_SImode)
22405 : || !
22406 : #line 10153 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22407 : (TARGET_64BIT))
22408 : return -1;
22409 : return 542; /* *subsi3_carry_zext_0 */
22410 :
22411 : default:
22412 : return -1;
22413 : }
22414 :
22415 : case GE:
22416 : case GEU:
22417 : switch (pattern1440 (x3))
22418 : {
22419 : case 0:
22420 : if (!nonimmediate_operand (operands[1], E_QImode)
22421 : || !ix86_carry_flag_unset_operator (operands[2], E_QImode)
22422 : || !
22423 : #line 10176 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22424 : (TARGET_APX_NDD))
22425 : return -1;
22426 : return 543; /* *subqi3_carry_zexthi_0r */
22427 :
22428 : case 1:
22429 : if (!nonimmediate_operand (operands[1], E_QImode)
22430 : || !ix86_carry_flag_unset_operator (operands[2], E_QImode)
22431 : || !
22432 : #line 10176 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22433 : (TARGET_APX_NDD))
22434 : return -1;
22435 : return 544; /* *subqi3_carry_zextsi_0r */
22436 :
22437 : case 2:
22438 : if (!nonimmediate_operand (operands[1], E_HImode)
22439 : || !ix86_carry_flag_unset_operator (operands[2], E_HImode)
22440 : || !
22441 : #line 10195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22442 : (TARGET_APX_NDD))
22443 : return -1;
22444 : return 546; /* *subhi3_carry_zextsi_0r */
22445 :
22446 : case 3:
22447 : if (!nonimmediate_operand (operands[1], E_QImode)
22448 : || !ix86_carry_flag_unset_operator (operands[2], E_QImode)
22449 : || !
22450 : #line 10176 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22451 : (TARGET_APX_NDD))
22452 : return -1;
22453 : return 545; /* *subqi3_carry_zextdi_0r */
22454 :
22455 : case 4:
22456 : if (!nonimmediate_operand (operands[1], E_HImode)
22457 : || !ix86_carry_flag_unset_operator (operands[2], E_HImode)
22458 : || !
22459 : #line 10195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22460 : (TARGET_APX_NDD))
22461 : return -1;
22462 : return 547; /* *subhi3_carry_zextdi_0r */
22463 :
22464 : case 5:
22465 : if (!nonimmediate_operand (operands[1], E_SImode)
22466 : || !ix86_carry_flag_unset_operator (operands[2], E_SImode)
22467 : || !
22468 : #line 10214 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22469 : (TARGET_64BIT))
22470 : return -1;
22471 : return 548; /* *subsi3_carry_zext_0r */
22472 :
22473 : default:
22474 : return -1;
22475 : }
22476 :
22477 : default:
22478 : return -1;
22479 : }
22480 :
22481 : case MINUS:
22482 : x7 = XEXP (x5, 1);
22483 : switch (GET_CODE (x7))
22484 : {
22485 : case LTU:
22486 : case UNLT:
22487 : operands[3] = x7;
22488 : x8 = XEXP (x7, 0);
22489 : if (GET_CODE (x8) != REG
22490 : || REGNO (x8) != 17)
22491 : return -1;
22492 : x9 = XEXP (x7, 1);
22493 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
22494 : return -1;
22495 : x10 = XEXP (x5, 0);
22496 : operands[1] = x10;
22497 : x6 = XEXP (x4, 1);
22498 : operands[2] = x6;
22499 : switch (pattern1169 (x3))
22500 : {
22501 : case 0:
22502 : if (pattern1784 (x5,
22503 : E_QImode) != 0
22504 : || !
22505 : #line 10040 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22506 : (TARGET_APX_NDD
22507 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22508 : return -1;
22509 : return 531; /* *subqi3_carry_zexthi */
22510 :
22511 : case 1:
22512 : if (pattern1784 (x5,
22513 : E_QImode) != 0
22514 : || !
22515 : #line 10040 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22516 : (TARGET_APX_NDD
22517 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22518 : return -1;
22519 : return 532; /* *subqi3_carry_zextsi */
22520 :
22521 : case 2:
22522 : if (pattern1784 (x5,
22523 : E_HImode) != 0
22524 : || !
22525 : #line 10065 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22526 : (TARGET_APX_NDD
22527 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22528 : return -1;
22529 : return 534; /* *subhi3_carry_zextsi */
22530 :
22531 : case 3:
22532 : if (pattern1784 (x5,
22533 : E_QImode) != 0
22534 : || !
22535 : #line 10040 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22536 : (TARGET_APX_NDD
22537 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22538 : return -1;
22539 : return 533; /* *subqi3_carry_zextdi */
22540 :
22541 : case 4:
22542 : if (pattern1784 (x5,
22543 : E_HImode) != 0
22544 : || !
22545 : #line 10065 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22546 : (TARGET_APX_NDD
22547 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22548 : return -1;
22549 : return 535; /* *subhi3_carry_zextdi */
22550 :
22551 : case 5:
22552 : if (pattern1784 (x5,
22553 : E_SImode) != 0
22554 : || !
22555 : #line 10090 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22556 : (TARGET_64BIT
22557 : && ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)))
22558 : return -1;
22559 : return 536; /* *subsi3_carry_zext */
22560 :
22561 : default:
22562 : return -1;
22563 : }
22564 :
22565 : default:
22566 : return -1;
22567 : }
22568 :
22569 : case CONST_INT:
22570 : if (!register_operand (operands[0], E_DImode)
22571 : || GET_MODE (x3) != E_DImode
22572 : || GET_MODE (x4) != E_SImode)
22573 : return -1;
22574 : x6 = XEXP (x4, 1);
22575 : if (GET_MODE (x6) != E_SImode)
22576 : return -1;
22577 : switch (XWINT (x5, 0))
22578 : {
22579 : case 63L:
22580 : if (GET_CODE (x6) != SUBREG
22581 : || maybe_ne (SUBREG_BYTE (x6), 0))
22582 : return -1;
22583 : x11 = XEXP (x6, 0);
22584 : if (GET_CODE (x11) != CLZ
22585 : || GET_MODE (x11) != E_DImode)
22586 : return -1;
22587 : x12 = XEXP (x11, 0);
22588 : operands[1] = x12;
22589 : if (!nonimmediate_operand (operands[1], E_DImode)
22590 : || !
22591 : #line 22309 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22592 : (!TARGET_LZCNT && TARGET_64BIT))
22593 : return -1;
22594 : return 1562; /* bsr_rex64_1_zext */
22595 :
22596 : case 31L:
22597 : if (GET_CODE (x6) != CLZ)
22598 : return -1;
22599 : x11 = XEXP (x6, 0);
22600 : operands[1] = x11;
22601 : if (!nonimmediate_operand (operands[1], E_SImode)
22602 : || !
22603 : #line 22352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22604 : (!TARGET_LZCNT && TARGET_64BIT))
22605 : return -1;
22606 : return 1565; /* bsr_zext_1 */
22607 :
22608 : default:
22609 : return -1;
22610 : }
22611 :
22612 : default:
22613 : return -1;
22614 : }
22615 : }
22616 :
22617 : int
22618 : recog_392 (rtx x1 ATTRIBUTE_UNUSED,
22619 : rtx_insn *insn ATTRIBUTE_UNUSED,
22620 : int *pnum_clobbers ATTRIBUTE_UNUSED)
22621 : {
22622 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
22623 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
22624 : rtx x10, x11;
22625 : int res ATTRIBUTE_UNUSED;
22626 : x2 = XVECEXP (x1, 0, 0);
22627 : x3 = XEXP (x2, 1);
22628 : x4 = XEXP (x3, 1);
22629 : if (!rtx_equal_p (x4, operands[1]))
22630 : return -1;
22631 : x5 = XEXP (x2, 0);
22632 : if (GET_MODE (x5) != E_CCCmode
22633 : || GET_MODE (x3) != E_CCCmode)
22634 : return -1;
22635 : x6 = XVECEXP (x1, 0, 1);
22636 : switch (GET_CODE (x6))
22637 : {
22638 : case CLOBBER:
22639 : x7 = XEXP (x6, 0);
22640 : operands[0] = x7;
22641 : x8 = XEXP (x3, 0);
22642 : switch (pattern1338 (x8))
22643 : {
22644 : case 0:
22645 : if (!
22646 : #line 10686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22647 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))))
22648 : return -1;
22649 : return 566; /* *addqi3_cconly_overflow_1 */
22650 :
22651 : case 1:
22652 : if (!
22653 : #line 10686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22654 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))))
22655 : return -1;
22656 : return 567; /* *addhi3_cconly_overflow_1 */
22657 :
22658 : case 2:
22659 : if (!
22660 : #line 10686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22661 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))))
22662 : return -1;
22663 : return 568; /* *addsi3_cconly_overflow_1 */
22664 :
22665 : case 3:
22666 : if (!(
22667 : #line 10686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22668 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
22669 : #line 1196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22670 : (TARGET_64BIT)))
22671 : return -1;
22672 : return 569; /* *adddi3_cconly_overflow_1 */
22673 :
22674 : default:
22675 : return -1;
22676 : }
22677 :
22678 : case SET:
22679 : x7 = XEXP (x6, 0);
22680 : operands[0] = x7;
22681 : x9 = XEXP (x6, 1);
22682 : switch (GET_CODE (x9))
22683 : {
22684 : case PLUS:
22685 : x10 = XEXP (x9, 0);
22686 : if (!rtx_equal_p (x10, operands[1]))
22687 : return -1;
22688 : x11 = XEXP (x9, 1);
22689 : if (!rtx_equal_p (x11, operands[2]))
22690 : return -1;
22691 : x8 = XEXP (x3, 0);
22692 : switch (GET_MODE (x8))
22693 : {
22694 : case E_QImode:
22695 : if (pattern1446 (x9,
22696 : E_QImode) != 0
22697 : || !
22698 : #line 10709 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22699 : (ix86_binary_operator_ok (PLUS, QImode, operands, TARGET_APX_NDD)))
22700 : return -1;
22701 : return 570; /* addqi3_cc_overflow_1 */
22702 :
22703 : case E_HImode:
22704 : if (pattern1446 (x9,
22705 : E_HImode) != 0
22706 : || !
22707 : #line 10709 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22708 : (ix86_binary_operator_ok (PLUS, HImode, operands, TARGET_APX_NDD)))
22709 : return -1;
22710 : return 571; /* addhi3_cc_overflow_1 */
22711 :
22712 : case E_SImode:
22713 : if (pattern1447 (x9,
22714 : E_SImode) != 0
22715 : || !
22716 : #line 10709 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22717 : (ix86_binary_operator_ok (PLUS, SImode, operands, TARGET_APX_NDD)))
22718 : return -1;
22719 : return 572; /* addsi3_cc_overflow_1 */
22720 :
22721 : case E_DImode:
22722 : if (pattern1447 (x9,
22723 : E_DImode) != 0
22724 : || !(
22725 : #line 10709 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22726 : (ix86_binary_operator_ok (PLUS, DImode, operands, TARGET_APX_NDD)) &&
22727 : #line 1196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22728 : (TARGET_64BIT)))
22729 : return -1;
22730 : return 573; /* adddi3_cc_overflow_1 */
22731 :
22732 : case E_TImode:
22733 : if (pattern1696 (x9,
22734 : E_TImode) != 0
22735 : || !(
22736 : #line 10868 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22737 : (ix86_binary_operator_ok (PLUS, TImode, operands, TARGET_APX_NDD)) &&
22738 : #line 1271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22739 : (TARGET_64BIT)))
22740 : return -1;
22741 : return 585; /* *addti3_doubleword_cc_overflow_1 */
22742 :
22743 : default:
22744 : return -1;
22745 : }
22746 :
22747 : case ZERO_EXTEND:
22748 : if (pattern1444 (x1,
22749 : PLUS) != 0
22750 : || !
22751 : #line 10772 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22752 : (TARGET_64BIT
22753 : && ix86_binary_operator_ok (PLUS, SImode, operands, TARGET_APX_NDD)))
22754 : return -1;
22755 : return 574; /* *addsi3_zext_cc_overflow_1 */
22756 :
22757 : default:
22758 : return -1;
22759 : }
22760 :
22761 : default:
22762 : return -1;
22763 : }
22764 : }
22765 :
22766 : int
22767 : recog_396 (rtx x1 ATTRIBUTE_UNUSED,
22768 : rtx_insn *insn ATTRIBUTE_UNUSED,
22769 : int *pnum_clobbers ATTRIBUTE_UNUSED)
22770 : {
22771 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
22772 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
22773 : rtx x10, x11;
22774 : int res ATTRIBUTE_UNUSED;
22775 : if (pattern588 (x1,
22776 : PLUS,
22777 : E_CCZmode) != 0)
22778 : return -1;
22779 : x2 = XVECEXP (x1, 0, 0);
22780 : x3 = XEXP (x2, 1);
22781 : if (GET_MODE (x3) != E_CCZmode)
22782 : return -1;
22783 : x4 = XEXP (x3, 0);
22784 : x5 = XVECEXP (x4, 0, 0);
22785 : operands[0] = x5;
22786 : x6 = XVECEXP (x4, 0, 1);
22787 : operands[3] = x6;
22788 : if (!const_int_operand (operands[3], E_SImode))
22789 : return -1;
22790 : x7 = XVECEXP (x1, 0, 1);
22791 : x8 = XEXP (x7, 1);
22792 : x9 = XEXP (x8, 1);
22793 : operands[1] = x9;
22794 : x10 = XEXP (x8, 0);
22795 : if (!rtx_equal_p (x10, operands[0]))
22796 : return -1;
22797 : x11 = XEXP (x7, 0);
22798 : if (!rtx_equal_p (x11, operands[0]))
22799 : return -1;
22800 : switch (GET_MODE (x4))
22801 : {
22802 : case E_QImode:
22803 : if (pattern1787 (x8,
22804 : E_QImode) != 0
22805 : || !
22806 : #line 778 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
22807 : ((unsigned HOST_WIDE_INT) INTVAL (operands[1])
22808 : == -(unsigned HOST_WIDE_INT) INTVAL (operands[2])))
22809 : return -1;
22810 : return 11166; /* *atomic_fetch_add_cmpqi */
22811 :
22812 : case E_HImode:
22813 : if (pattern1787 (x8,
22814 : E_HImode) != 0
22815 : || !
22816 : #line 778 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
22817 : ((unsigned HOST_WIDE_INT) INTVAL (operands[1])
22818 : == -(unsigned HOST_WIDE_INT) INTVAL (operands[2])))
22819 : return -1;
22820 : return 11167; /* *atomic_fetch_add_cmphi */
22821 :
22822 : case E_SImode:
22823 : if (pattern1787 (x8,
22824 : E_SImode) != 0
22825 : || !
22826 : #line 778 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
22827 : ((unsigned HOST_WIDE_INT) INTVAL (operands[1])
22828 : == -(unsigned HOST_WIDE_INT) INTVAL (operands[2])))
22829 : return -1;
22830 : return 11168; /* *atomic_fetch_add_cmpsi */
22831 :
22832 : case E_DImode:
22833 : if (pattern1787 (x8,
22834 : E_DImode) != 0
22835 : || !(
22836 : #line 778 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
22837 : ((unsigned HOST_WIDE_INT) INTVAL (operands[1])
22838 : == -(unsigned HOST_WIDE_INT) INTVAL (operands[2])) &&
22839 : #line 1196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22840 : (TARGET_64BIT)))
22841 : return -1;
22842 : return 11169; /* *atomic_fetch_add_cmpdi */
22843 :
22844 : default:
22845 : return -1;
22846 : }
22847 : }
22848 :
22849 : int
22850 : recog_400 (rtx x1 ATTRIBUTE_UNUSED,
22851 : rtx_insn *insn ATTRIBUTE_UNUSED,
22852 : int *pnum_clobbers ATTRIBUTE_UNUSED)
22853 : {
22854 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
22855 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
22856 : int res ATTRIBUTE_UNUSED;
22857 : switch (pattern370 (x1,
22858 : IOR))
22859 : {
22860 : case 0:
22861 : if (general_operand (operands[2], E_QImode))
22862 : {
22863 : switch (pattern961 (x1,
22864 : IOR))
22865 : {
22866 : case 0:
22867 : if (
22868 : #line 13998 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22869 : (ix86_match_ccmode (insn, CCNOmode)))
22870 : return 817; /* *iorqi_exthi_1_cc */
22871 : break;
22872 :
22873 : case 1:
22874 : if (
22875 : #line 13998 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22876 : (ix86_match_ccmode (insn, CCNOmode)))
22877 : return 820; /* *iorqi_extsi_1_cc */
22878 : break;
22879 :
22880 : case 2:
22881 : if ((
22882 : #line 13998 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22883 : (ix86_match_ccmode (insn, CCNOmode)) &&
22884 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22885 : (TARGET_64BIT)))
22886 : return 823; /* *iorqi_extdi_1_cc */
22887 : break;
22888 :
22889 : default:
22890 : break;
22891 : }
22892 : }
22893 : x2 = XVECEXP (x1, 0, 0);
22894 : x3 = XEXP (x2, 0);
22895 : if (GET_CODE (x3) != REG
22896 : || REGNO (x3) != 17)
22897 : return -1;
22898 : x4 = XEXP (x2, 1);
22899 : x5 = XEXP (x4, 0);
22900 : x6 = XEXP (x5, 0);
22901 : operands[1] = x6;
22902 : x7 = XVECEXP (x1, 0, 1);
22903 : switch (GET_CODE (x7))
22904 : {
22905 : case SET:
22906 : x8 = XEXP (x7, 0);
22907 : operands[0] = x8;
22908 : x9 = XEXP (x7, 1);
22909 : switch (GET_CODE (x9))
22910 : {
22911 : case IOR:
22912 : switch (pattern1448 (x1))
22913 : {
22914 : case 0:
22915 : if (!
22916 : #line 14776 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22917 : (ix86_match_ccmode (insn, CCNOmode)
22918 : && ix86_binary_operator_ok (IOR, QImode, operands, TARGET_APX_NDD)))
22919 : return -1;
22920 : return 906; /* *iorqi_2 */
22921 :
22922 : case 1:
22923 : if (!
22924 : #line 14776 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22925 : (ix86_match_ccmode (insn, CCNOmode)
22926 : && ix86_binary_operator_ok (IOR, HImode, operands, TARGET_APX_NDD)))
22927 : return -1;
22928 : return 908; /* *iorhi_2 */
22929 :
22930 : case 2:
22931 : if (!
22932 : #line 14776 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22933 : (ix86_match_ccmode (insn, CCNOmode)
22934 : && ix86_binary_operator_ok (IOR, SImode, operands, TARGET_APX_NDD)))
22935 : return -1;
22936 : return 910; /* *iorsi_2 */
22937 :
22938 : case 3:
22939 : if (!(
22940 : #line 14776 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22941 : (ix86_match_ccmode (insn, CCNOmode)
22942 : && ix86_binary_operator_ok (IOR, DImode, operands, TARGET_APX_NDD)) &&
22943 : #line 1196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22944 : (TARGET_64BIT)))
22945 : return -1;
22946 : return 912; /* *iordi_2 */
22947 :
22948 : case 4:
22949 : if (!
22950 : #line 14824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22951 : (TARGET_64BIT && ix86_match_ccmode (insn, CCNOmode)
22952 : && ix86_binary_operator_ok (IOR, SImode, operands, TARGET_APX_NDD)))
22953 : return -1;
22954 : return 916; /* *iorsi_2_zext_imm */
22955 :
22956 : default:
22957 : return -1;
22958 : }
22959 :
22960 : case ZERO_EXTEND:
22961 : if (pattern1444 (x1,
22962 : IOR) != 0
22963 : || !
22964 : #line 14801 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22965 : (TARGET_64BIT && ix86_match_ccmode (insn, CCNOmode)
22966 : && ix86_binary_operator_ok (IOR, SImode, operands, TARGET_APX_NDD)))
22967 : return -1;
22968 : return 914; /* *iorsi_2_zext */
22969 :
22970 : default:
22971 : return -1;
22972 : }
22973 :
22974 : case CLOBBER:
22975 : x8 = XEXP (x7, 0);
22976 : operands[0] = x8;
22977 : if (GET_MODE (x3) == E_CCZmode
22978 : && GET_MODE (x4) == E_CCZmode)
22979 : {
22980 : switch (pattern1338 (x5))
22981 : {
22982 : case 0:
22983 : if ((
22984 : #line 14847 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22985 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
22986 : #line 1592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22987 : (TARGET_AVX512DQ)))
22988 : return 918; /* *iorqi_ccz_1 */
22989 : break;
22990 :
22991 : case 1:
22992 : if (
22993 : #line 14847 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22994 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22995 : return 919; /* *iorhi_ccz_1 */
22996 : break;
22997 :
22998 : case 2:
22999 : if ((
23000 : #line 14847 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23001 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
23002 : #line 1593 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23003 : (TARGET_AVX512BW)))
23004 : return 920; /* *iorsi_ccz_1 */
23005 : break;
23006 :
23007 : case 3:
23008 : if ((
23009 : #line 14847 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23010 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
23011 : #line 1593 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23012 : (TARGET_AVX512BW && TARGET_64BIT)))
23013 : return 921; /* *iordi_ccz_1 */
23014 : break;
23015 :
23016 : default:
23017 : break;
23018 : }
23019 : }
23020 : switch (GET_MODE (x5))
23021 : {
23022 : case E_QImode:
23023 : if (!nonimmediate_operand (operands[1], E_QImode)
23024 : || !general_operand (operands[2], E_QImode)
23025 : || !scratch_operand (operands[0], E_QImode)
23026 : || !
23027 : #line 14861 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23028 : (ix86_match_ccmode (insn, CCNOmode)
23029 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
23030 : return -1;
23031 : return 922; /* *iorqi_3 */
23032 :
23033 : case E_HImode:
23034 : if (!nonimmediate_operand (operands[1], E_HImode)
23035 : || !general_operand (operands[2], E_HImode)
23036 : || !scratch_operand (operands[0], E_HImode)
23037 : || !
23038 : #line 14861 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23039 : (ix86_match_ccmode (insn, CCNOmode)
23040 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
23041 : return -1;
23042 : return 924; /* *iorhi_3 */
23043 :
23044 : case E_SImode:
23045 : if (!nonimmediate_operand (operands[1], E_SImode)
23046 : || !x86_64_general_operand (operands[2], E_SImode)
23047 : || !scratch_operand (operands[0], E_SImode)
23048 : || !
23049 : #line 14861 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23050 : (ix86_match_ccmode (insn, CCNOmode)
23051 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
23052 : return -1;
23053 : return 926; /* *iorsi_3 */
23054 :
23055 : case E_DImode:
23056 : if (!nonimmediate_operand (operands[1], E_DImode)
23057 : || !x86_64_general_operand (operands[2], E_DImode)
23058 : || !scratch_operand (operands[0], E_DImode)
23059 : || !(
23060 : #line 14861 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23061 : (ix86_match_ccmode (insn, CCNOmode)
23062 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
23063 : #line 1196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23064 : (TARGET_64BIT)))
23065 : return -1;
23066 : return 928; /* *iordi_3 */
23067 :
23068 : default:
23069 : return -1;
23070 : }
23071 :
23072 : default:
23073 : return -1;
23074 : }
23075 :
23076 : case 1:
23077 : return 11220; /* atomic_or_fetch_cmp_0qi_1 */
23078 :
23079 : case 2:
23080 : return 11223; /* atomic_or_fetch_cmp_0hi_1 */
23081 :
23082 : case 3:
23083 : return 11226; /* atomic_or_fetch_cmp_0si_1 */
23084 :
23085 : case 4:
23086 : if (!
23087 : #line 1196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23088 : (TARGET_64BIT))
23089 : return -1;
23090 : return 11229; /* atomic_or_fetch_cmp_0di_1 */
23091 :
23092 : default:
23093 : return -1;
23094 : }
23095 : }
23096 :
23097 : int
23098 : recog_401 (rtx x1 ATTRIBUTE_UNUSED,
23099 : rtx_insn *insn ATTRIBUTE_UNUSED,
23100 : int *pnum_clobbers ATTRIBUTE_UNUSED)
23101 : {
23102 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
23103 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
23104 : rtx x10, x11, x12, x13, x14, x15;
23105 : int res ATTRIBUTE_UNUSED;
23106 : x2 = XVECEXP (x1, 0, 0);
23107 : x3 = XEXP (x2, 1);
23108 : x4 = XEXP (x3, 1);
23109 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
23110 : return -1;
23111 : x5 = XEXP (x3, 0);
23112 : x6 = XEXP (x5, 0);
23113 : switch (GET_CODE (x6))
23114 : {
23115 : case REG:
23116 : case SUBREG:
23117 : case MEM:
23118 : operands[1] = x6;
23119 : res = recog_395 (x1, insn, pnum_clobbers);
23120 : if (res >= 0)
23121 : return res;
23122 : if (GET_CODE (x6) != SUBREG)
23123 : return -1;
23124 : switch (pattern835 (x1))
23125 : {
23126 : case 0:
23127 : if (!
23128 : #line 13998 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23129 : (ix86_match_ccmode (insn, CCNOmode)))
23130 : return -1;
23131 : return 816; /* *andqi_exthi_1_cc */
23132 :
23133 : case 1:
23134 : if (!
23135 : #line 13998 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23136 : (ix86_match_ccmode (insn, CCNOmode)))
23137 : return -1;
23138 : return 819; /* *andqi_extsi_1_cc */
23139 :
23140 : case 2:
23141 : if (!(
23142 : #line 13998 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23143 : (ix86_match_ccmode (insn, CCNOmode)) &&
23144 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23145 : (TARGET_64BIT)))
23146 : return -1;
23147 : return 822; /* *andqi_extdi_1_cc */
23148 :
23149 : default:
23150 : return -1;
23151 : }
23152 :
23153 : case NOT:
23154 : x7 = XEXP (x2, 0);
23155 : if (GET_CODE (x7) != REG
23156 : || REGNO (x7) != 17)
23157 : return -1;
23158 : x8 = XVECEXP (x1, 0, 1);
23159 : if (GET_CODE (x8) != CLOBBER)
23160 : return -1;
23161 : x9 = XEXP (x6, 0);
23162 : operands[1] = x9;
23163 : x10 = XEXP (x5, 1);
23164 : operands[2] = x10;
23165 : x11 = XEXP (x8, 0);
23166 : operands[0] = x11;
23167 : switch (GET_MODE (x5))
23168 : {
23169 : case E_SImode:
23170 : if (pattern1445 (x6,
23171 : E_SImode) != 0
23172 : || !
23173 : #line 14241 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23174 : (TARGET_BMI && ix86_match_ccmode (insn, CCNOmode)))
23175 : return -1;
23176 : return 851; /* *andn_si_ccno */
23177 :
23178 : case E_DImode:
23179 : if (pattern1445 (x6,
23180 : E_DImode) != 0
23181 : || !(
23182 : #line 14241 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23183 : (TARGET_BMI && ix86_match_ccmode (insn, CCNOmode)) &&
23184 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23185 : (TARGET_64BIT)))
23186 : return -1;
23187 : return 852; /* *andn_di_ccno */
23188 :
23189 : default:
23190 : return -1;
23191 : }
23192 :
23193 : case NEG:
23194 : x7 = XEXP (x2, 0);
23195 : if (GET_CODE (x7) != REG
23196 : || REGNO (x7) != 17)
23197 : return -1;
23198 : x9 = XEXP (x6, 0);
23199 : operands[1] = x9;
23200 : x10 = XEXP (x5, 1);
23201 : if (!rtx_equal_p (x10, operands[1]))
23202 : return -1;
23203 : x8 = XVECEXP (x1, 0, 1);
23204 : switch (GET_CODE (x8))
23205 : {
23206 : case SET:
23207 : x12 = XEXP (x8, 1);
23208 : if (GET_CODE (x12) != AND)
23209 : return -1;
23210 : x13 = XEXP (x12, 0);
23211 : if (GET_CODE (x13) != NEG)
23212 : return -1;
23213 : x11 = XEXP (x8, 0);
23214 : operands[0] = x11;
23215 : switch (pattern1511 (x1))
23216 : {
23217 : case 0:
23218 : if (!
23219 : #line 22856 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23220 : (TARGET_BMI && ix86_match_ccmode (insn, CCNOmode)))
23221 : return -1;
23222 : return 1610; /* *bmi_blsi_si_cmp */
23223 :
23224 : case 1:
23225 : if (!(
23226 : #line 22856 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23227 : (TARGET_BMI && ix86_match_ccmode (insn, CCNOmode)) &&
23228 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23229 : (TARGET_64BIT)))
23230 : return -1;
23231 : return 1611; /* *bmi_blsi_di_cmp */
23232 :
23233 : default:
23234 : return -1;
23235 : }
23236 :
23237 : case CLOBBER:
23238 : switch (pattern1255 (x1))
23239 : {
23240 : case 0:
23241 : if (!
23242 : #line 22915 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23243 : (TARGET_BMI && ix86_match_ccmode (insn, CCNOmode)))
23244 : return -1;
23245 : return 1614; /* *bmi_blsi_si_ccno */
23246 :
23247 : case 1:
23248 : if (!(
23249 : #line 22915 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23250 : (TARGET_BMI && ix86_match_ccmode (insn, CCNOmode)) &&
23251 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23252 : (TARGET_64BIT)))
23253 : return -1;
23254 : return 1615; /* *bmi_blsi_di_ccno */
23255 :
23256 : default:
23257 : return -1;
23258 : }
23259 :
23260 : default:
23261 : return -1;
23262 : }
23263 :
23264 : case PLUS:
23265 : x14 = XEXP (x6, 1);
23266 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + -1]
23267 : || pattern834 (x2,
23268 : E_CCZmode) != 0)
23269 : return -1;
23270 : x9 = XEXP (x6, 0);
23271 : operands[1] = x9;
23272 : x10 = XEXP (x5, 1);
23273 : if (!rtx_equal_p (x10, operands[1]))
23274 : return -1;
23275 : x8 = XVECEXP (x1, 0, 1);
23276 : switch (GET_CODE (x8))
23277 : {
23278 : case SET:
23279 : x12 = XEXP (x8, 1);
23280 : if (GET_CODE (x12) != AND)
23281 : return -1;
23282 : x13 = XEXP (x12, 0);
23283 : if (GET_CODE (x13) != PLUS)
23284 : return -1;
23285 : x15 = XEXP (x13, 1);
23286 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + -1])
23287 : return -1;
23288 : x11 = XEXP (x8, 0);
23289 : operands[0] = x11;
23290 : switch (pattern1511 (x1))
23291 : {
23292 : case 0:
23293 : if (!
23294 : #line 23008 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23295 : (TARGET_BMI))
23296 : return -1;
23297 : return 1622; /* *bmi_blsr_si_cmp */
23298 :
23299 : case 1:
23300 : if (!(
23301 : #line 23008 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23302 : (TARGET_BMI) &&
23303 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23304 : (TARGET_64BIT)))
23305 : return -1;
23306 : return 1623; /* *bmi_blsr_di_cmp */
23307 :
23308 : default:
23309 : return -1;
23310 : }
23311 :
23312 : case CLOBBER:
23313 : switch (pattern1255 (x1))
23314 : {
23315 : case 0:
23316 : if (!
23317 : #line 23065 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23318 : (TARGET_BMI))
23319 : return -1;
23320 : return 1626; /* *bmi_blsr_si_ccz */
23321 :
23322 : case 1:
23323 : if (!(
23324 : #line 23065 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23325 : (TARGET_BMI) &&
23326 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23327 : (TARGET_64BIT)))
23328 : return -1;
23329 : return 1627; /* *bmi_blsr_di_ccz */
23330 :
23331 : default:
23332 : return -1;
23333 : }
23334 :
23335 : default:
23336 : return -1;
23337 : }
23338 :
23339 : case UNSPEC_VOLATILE:
23340 : switch (pattern369 (x1,
23341 : AND))
23342 : {
23343 : case 0:
23344 : return 11219; /* atomic_and_fetch_cmp_0qi_1 */
23345 :
23346 : case 1:
23347 : return 11222; /* atomic_and_fetch_cmp_0hi_1 */
23348 :
23349 : case 2:
23350 : return 11225; /* atomic_and_fetch_cmp_0si_1 */
23351 :
23352 : case 3:
23353 : if (!
23354 : #line 1196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23355 : (TARGET_64BIT))
23356 : return -1;
23357 : return 11228; /* atomic_and_fetch_cmp_0di_1 */
23358 :
23359 : default:
23360 : return -1;
23361 : }
23362 :
23363 : default:
23364 : return -1;
23365 : }
23366 : }
23367 :
23368 : int
23369 : recog_409 (rtx x1 ATTRIBUTE_UNUSED,
23370 : rtx_insn *insn ATTRIBUTE_UNUSED,
23371 : int *pnum_clobbers ATTRIBUTE_UNUSED)
23372 : {
23373 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
23374 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
23375 : rtx x10;
23376 : int res ATTRIBUTE_UNUSED;
23377 : x2 = XVECEXP (x1, 0, 0);
23378 : x3 = XEXP (x2, 0);
23379 : operands[0] = x3;
23380 : x4 = XEXP (x2, 1);
23381 : x5 = XEXP (x4, 0);
23382 : switch (GET_CODE (x5))
23383 : {
23384 : case REG:
23385 : case SUBREG:
23386 : case MEM:
23387 : x6 = XVECEXP (x1, 0, 1);
23388 : switch (GET_CODE (x6))
23389 : {
23390 : case CLOBBER:
23391 : x7 = XEXP (x6, 0);
23392 : if (GET_CODE (x7) != REG
23393 : || REGNO (x7) != 17
23394 : || GET_MODE (x7) != E_CCmode)
23395 : return -1;
23396 : operands[1] = x5;
23397 : x8 = XEXP (x4, 1);
23398 : operands[2] = x8;
23399 : switch (GET_MODE (operands[0]))
23400 : {
23401 : case E_HImode:
23402 : if (!register_operand (operands[0], E_HImode)
23403 : || GET_MODE (x4) != E_HImode
23404 : || !nonimmediate_operand (operands[1], E_HImode)
23405 : || !general_operand (operands[2], E_HImode)
23406 : || !(
23407 : #line 11395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23408 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))
23409 : && true) &&
23410 : #line 1226 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23411 : (TARGET_HIMODE_MATH)))
23412 : return -1;
23413 : return 623; /* *mulhi3_1 */
23414 :
23415 : case E_SImode:
23416 : if (pattern1344 (x4,
23417 : E_SImode) != 0
23418 : || !
23419 : #line 11395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23420 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))
23421 : && true))
23422 : return -1;
23423 : return 625; /* *mulsi3_1 */
23424 :
23425 : case E_DImode:
23426 : if (pattern1344 (x4,
23427 : E_DImode) != 0
23428 : || !(
23429 : #line 11395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23430 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))
23431 : && true) &&
23432 : #line 1227 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23433 : (TARGET_64BIT)))
23434 : return -1;
23435 : return 627; /* *muldi3_1 */
23436 :
23437 : case E_QImode:
23438 : if (pattern214 (x4,
23439 : E_QImode) != 0
23440 : || !
23441 : #line 11492 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23442 : (TARGET_QIMODE_MATH
23443 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
23444 : && true))
23445 : return -1;
23446 : return 635; /* *mulqi3_1 */
23447 :
23448 : default:
23449 : return -1;
23450 : }
23451 :
23452 : case SET:
23453 : x9 = XEXP (x6, 1);
23454 : if (GET_CODE (x9) != UMUL_HIGHPART)
23455 : return -1;
23456 : switch (pattern596 (x1))
23457 : {
23458 : case 0:
23459 : if (!(
23460 : #line 11766 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23461 : (TARGET_BMI2) &&
23462 : #line 1270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23463 : (!TARGET_64BIT)))
23464 : return -1;
23465 : return 647; /* *bmi2_umulsidi3_1 */
23466 :
23467 : case 1:
23468 : if (!(
23469 : #line 11766 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23470 : (TARGET_BMI2) &&
23471 : #line 1271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23472 : (TARGET_64BIT)))
23473 : return -1;
23474 : return 648; /* *bmi2_umulditi3_1 */
23475 :
23476 : default:
23477 : return -1;
23478 : }
23479 :
23480 : case UNSPEC:
23481 : if (XVECLEN (x6, 0) != 1
23482 : || XINT (x6, 1) != 111)
23483 : return -1;
23484 : x10 = XVECEXP (x6, 0, 0);
23485 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
23486 : || !register_operand (operands[0], E_V2SFmode)
23487 : || GET_MODE (x4) != E_V2SFmode)
23488 : return -1;
23489 : operands[1] = x5;
23490 : if (!nonimmediate_operand (operands[1], E_V2SFmode))
23491 : return -1;
23492 : x8 = XEXP (x4, 1);
23493 : operands[2] = x8;
23494 : if (!nonimmediate_operand (operands[2], E_V2SFmode)
23495 : || !
23496 : #line 819 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23497 : (TARGET_3DNOW && ix86_binary_operator_ok (MULT, V2SFmode, operands)))
23498 : return -1;
23499 : return 2114; /* *mmx_mulv2sf3 */
23500 :
23501 : default:
23502 : return -1;
23503 : }
23504 :
23505 : case ZERO_EXTEND:
23506 : switch (pattern567 (x1,
23507 : ZERO_EXTEND))
23508 : {
23509 : case 0:
23510 : if (!(
23511 : #line 11805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23512 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
23513 : #line 1270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23514 : (!TARGET_64BIT)))
23515 : return -1;
23516 : return 649; /* *umulsidi3_1 */
23517 :
23518 : case 1:
23519 : if (!(
23520 : #line 11805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23521 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
23522 : #line 1271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23523 : (TARGET_64BIT)))
23524 : return -1;
23525 : return 650; /* *umulditi3_1 */
23526 :
23527 : case 2:
23528 : if (!
23529 : #line 11871 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23530 : (TARGET_QIMODE_MATH
23531 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
23532 : && true))
23533 : return -1;
23534 : return 658; /* *umulqihi3_1 */
23535 :
23536 : default:
23537 : return -1;
23538 : }
23539 :
23540 : case SIGN_EXTEND:
23541 : switch (pattern567 (x1,
23542 : SIGN_EXTEND))
23543 : {
23544 : case 0:
23545 : if (!(
23546 : #line 11851 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23547 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))
23548 : && true) &&
23549 : #line 1270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23550 : (!TARGET_64BIT)))
23551 : return -1;
23552 : return 652; /* *mulsidi3_1 */
23553 :
23554 : case 1:
23555 : if (!(
23556 : #line 1234 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23557 : (TARGET_64BIT) && (
23558 : #line 11851 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23559 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))
23560 : && true) &&
23561 : #line 1271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23562 : (TARGET_64BIT))))
23563 : return -1;
23564 : return 654; /* *mulditi3_1 */
23565 :
23566 : case 2:
23567 : if (!
23568 : #line 11871 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23569 : (TARGET_QIMODE_MATH
23570 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
23571 : && true))
23572 : return -1;
23573 : return 656; /* *mulqihi3_1 */
23574 :
23575 : default:
23576 : return -1;
23577 : }
23578 :
23579 : default:
23580 : return -1;
23581 : }
23582 : }
23583 :
23584 : int
23585 : recog_416 (rtx x1 ATTRIBUTE_UNUSED,
23586 : rtx_insn *insn ATTRIBUTE_UNUSED,
23587 : int *pnum_clobbers ATTRIBUTE_UNUSED)
23588 : {
23589 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
23590 : rtx x2, x3, x4, x5, x6, x7;
23591 : int res ATTRIBUTE_UNUSED;
23592 : x2 = XVECEXP (x1, 0, 0);
23593 : x3 = XEXP (x2, 1);
23594 : x4 = XEXP (x3, 0);
23595 : x5 = XEXP (x4, 0);
23596 : switch (GET_CODE (x5))
23597 : {
23598 : case ASHIFTRT:
23599 : case LSHIFTRT:
23600 : case SIGN_EXTRACT:
23601 : case ZERO_EXTRACT:
23602 : operands[3] = x5;
23603 : x6 = XEXP (x5, 0);
23604 : operands[2] = x6;
23605 : switch (pattern1543 (x2))
23606 : {
23607 : case 0:
23608 : if (
23609 : #line 13626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23610 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
23611 : return 767; /* *xorqi_exthi_1_slp */
23612 : break;
23613 :
23614 : case 1:
23615 : if (
23616 : #line 13626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23617 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
23618 : return 770; /* *xorqi_extsi_1_slp */
23619 : break;
23620 :
23621 : case 2:
23622 : if ((
23623 : #line 13626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23624 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
23625 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23626 : (TARGET_64BIT)))
23627 : return 773; /* *xorqi_extdi_1_slp */
23628 : break;
23629 :
23630 : case 3:
23631 : return 791; /* *xorqi_exthi_0 */
23632 :
23633 : case 4:
23634 : return 794; /* *xorqi_extsi_0 */
23635 :
23636 : case 5:
23637 : if (
23638 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23639 : (TARGET_64BIT))
23640 : return 797; /* *xorqi_extdi_0 */
23641 : break;
23642 :
23643 : default:
23644 : break;
23645 : }
23646 : x7 = XEXP (x3, 1);
23647 : if (GET_CODE (x7) != SUBREG)
23648 : return -1;
23649 : switch (pattern1544 (x2))
23650 : {
23651 : case 0:
23652 : if (!
23653 : #line 13655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23654 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
23655 : return -1;
23656 : return 776; /* *xorqi_exthi_2_slp */
23657 :
23658 : case 1:
23659 : if (!
23660 : #line 13655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23661 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
23662 : return -1;
23663 : return 779; /* *xorqi_extsi_2_slp */
23664 :
23665 : case 2:
23666 : if (!(
23667 : #line 13655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23668 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
23669 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23670 : (TARGET_64BIT)))
23671 : return -1;
23672 : return 782; /* *xorqi_extdi_2_slp */
23673 :
23674 : case 3:
23675 : return 800; /* *xorqi_ext2hi_0 */
23676 :
23677 : case 4:
23678 : return 803; /* *xorqi_ext2si_0 */
23679 :
23680 : case 5:
23681 : if (!
23682 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23683 : (TARGET_64BIT))
23684 : return -1;
23685 : return 806; /* *xorqi_ext2di_0 */
23686 :
23687 : default:
23688 : return -1;
23689 : }
23690 :
23691 : default:
23692 : return -1;
23693 : }
23694 : }
23695 :
23696 : int
23697 : recog_418 (rtx x1 ATTRIBUTE_UNUSED,
23698 : rtx_insn *insn ATTRIBUTE_UNUSED,
23699 : int *pnum_clobbers ATTRIBUTE_UNUSED)
23700 : {
23701 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
23702 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
23703 : rtx x10;
23704 : int res ATTRIBUTE_UNUSED;
23705 : x2 = XVECEXP (x1, 0, 0);
23706 : x3 = XEXP (x2, 1);
23707 : x4 = XEXP (x3, 0);
23708 : switch (GET_CODE (x4))
23709 : {
23710 : case XOR:
23711 : x5 = XEXP (x2, 0);
23712 : operands[0] = x5;
23713 : x6 = XEXP (x4, 0);
23714 : operands[1] = x6;
23715 : x7 = XEXP (x4, 1);
23716 : operands[2] = x7;
23717 : x8 = XVECEXP (x1, 0, 1);
23718 : switch (pattern838 (x8))
23719 : {
23720 : case 0:
23721 : switch (GET_MODE (operands[0]))
23722 : {
23723 : case E_HImode:
23724 : if (!nonimmediate_operand (operands[0], E_HImode)
23725 : || pattern218 (x3,
23726 : E_HImode) != 0
23727 : || !
23728 : #line 14471 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23729 : (ix86_binary_operator_ok (XOR, HImode, operands, TARGET_APX_NDD)))
23730 : return -1;
23731 : return 869; /* *notxorhi_1 */
23732 :
23733 : case E_SImode:
23734 : if (!nonimmediate_operand (operands[0], E_SImode)
23735 : || pattern219 (x3,
23736 : E_SImode) != 0
23737 : || !
23738 : #line 14471 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23739 : (ix86_binary_operator_ok (XOR, SImode, operands, TARGET_APX_NDD)))
23740 : return -1;
23741 : return 870; /* *notxorsi_1 */
23742 :
23743 : case E_DImode:
23744 : if (!nonimmediate_operand (operands[0], E_DImode)
23745 : || pattern219 (x3,
23746 : E_DImode) != 0
23747 : || !(
23748 : #line 14471 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23749 : (ix86_binary_operator_ok (XOR, DImode, operands, TARGET_APX_NDD)) &&
23750 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23751 : (TARGET_64BIT)))
23752 : return -1;
23753 : return 871; /* *notxordi_1 */
23754 :
23755 : case E_QImode:
23756 : if (!nonimmediate_operand (operands[0], E_QImode)
23757 : || pattern218 (x3,
23758 : E_QImode) != 0
23759 : || !
23760 : #line 14700 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23761 : (ix86_binary_operator_ok (XOR, QImode, operands, TARGET_APX_NDD)))
23762 : return -1;
23763 : return 905; /* *notxorqi_1 */
23764 :
23765 : default:
23766 : return -1;
23767 : }
23768 :
23769 : case 1:
23770 : if (pattern1348 (x3,
23771 : E_QImode) != 0
23772 : || !
23773 : #line 2201 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23774 : (TARGET_AVX512F))
23775 : return -1;
23776 : return 2663; /* kxnorqi */
23777 :
23778 : case 2:
23779 : if (pattern1348 (x3,
23780 : E_HImode) != 0
23781 : || !
23782 : #line 2201 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23783 : (TARGET_AVX512F))
23784 : return -1;
23785 : return 2664; /* kxnorhi */
23786 :
23787 : case 3:
23788 : if (pattern1348 (x3,
23789 : E_SImode) != 0
23790 : || !(
23791 : #line 2201 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23792 : (TARGET_AVX512F) &&
23793 : #line 2098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23794 : (TARGET_AVX512BW)))
23795 : return -1;
23796 : return 2665; /* kxnorsi */
23797 :
23798 : case 4:
23799 : if (pattern1348 (x3,
23800 : E_DImode) != 0
23801 : || !(
23802 : #line 2201 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23803 : (TARGET_AVX512F) &&
23804 : #line 2098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23805 : (TARGET_AVX512BW)))
23806 : return -1;
23807 : return 2666; /* kxnordi */
23808 :
23809 : default:
23810 : return -1;
23811 : }
23812 :
23813 : case ZERO_EXTRACT:
23814 : if (pattern378 (x1) != 0
23815 : || GET_MODE (x3) != E_DImode)
23816 : return -1;
23817 : x6 = XEXP (x4, 0);
23818 : if (!rtx_equal_p (x6, operands[0]))
23819 : return -1;
23820 : x9 = XEXP (x4, 2);
23821 : if (!rtx_equal_p (x9, operands[1])
23822 : || !
23823 : #line 20042 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23824 : (TARGET_64BIT && (TARGET_USE_BT || reload_completed)))
23825 : return -1;
23826 : return 1453; /* *btcq_imm */
23827 :
23828 : case REG:
23829 : case SUBREG:
23830 : operands[1] = x4;
23831 : x8 = XVECEXP (x1, 0, 1);
23832 : if (GET_CODE (x8) != UNSPEC
23833 : || XVECLEN (x8, 0) != 1
23834 : || XINT (x8, 1) != 175)
23835 : return -1;
23836 : x10 = XVECEXP (x8, 0, 0);
23837 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
23838 : return -1;
23839 : x5 = XEXP (x2, 0);
23840 : operands[0] = x5;
23841 : switch (pattern827 (x3))
23842 : {
23843 : case 0:
23844 : if (!
23845 : #line 2222 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23846 : (TARGET_AVX512F))
23847 : return -1;
23848 : return 2667; /* knotqi */
23849 :
23850 : case 1:
23851 : if (!
23852 : #line 2222 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23853 : (TARGET_AVX512F))
23854 : return -1;
23855 : return 2668; /* knothi */
23856 :
23857 : case 2:
23858 : if (!(
23859 : #line 2222 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23860 : (TARGET_AVX512F) &&
23861 : #line 2098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23862 : (TARGET_AVX512BW)))
23863 : return -1;
23864 : return 2669; /* knotsi */
23865 :
23866 : case 3:
23867 : if (!(
23868 : #line 2222 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23869 : (TARGET_AVX512F) &&
23870 : #line 2098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23871 : (TARGET_AVX512BW)))
23872 : return -1;
23873 : return 2670; /* knotdi */
23874 :
23875 : default:
23876 : return -1;
23877 : }
23878 :
23879 : default:
23880 : return -1;
23881 : }
23882 : }
23883 :
23884 : int
23885 : recog_421 (rtx x1 ATTRIBUTE_UNUSED,
23886 : rtx_insn *insn ATTRIBUTE_UNUSED,
23887 : int *pnum_clobbers ATTRIBUTE_UNUSED)
23888 : {
23889 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
23890 : rtx x2, x3, x4, x5, x6, x7, x8;
23891 : int res ATTRIBUTE_UNUSED;
23892 : x2 = XVECEXP (x1, 0, 0);
23893 : x3 = XEXP (x2, 1);
23894 : x4 = XEXP (x3, 0);
23895 : switch (GET_CODE (x4))
23896 : {
23897 : case CONST_INT:
23898 : case REG:
23899 : case SUBREG:
23900 : case MEM:
23901 : switch (pattern345 (x1))
23902 : {
23903 : case 0:
23904 : x5 = XEXP (x2, 0);
23905 : operands[0] = x5;
23906 : switch (pattern828 (x1))
23907 : {
23908 : case 0:
23909 : if ((
23910 : #line 16206 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23911 : (((INTVAL (operands[3]) & (4 * BITS_PER_UNIT)) == 0
23912 : || ((INTVAL (operands[3]) & (2 * 4 * BITS_PER_UNIT - 1))
23913 : == (2 * 4 * BITS_PER_UNIT - 1)))
23914 : && ix86_pre_reload_split ()) &&
23915 : #line 1270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23916 : (!TARGET_64BIT)))
23917 : return 1090; /* *ashldi3_doubleword_mask */
23918 : break;
23919 :
23920 : case 1:
23921 : if ((
23922 : #line 16206 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23923 : (((INTVAL (operands[3]) & (8 * BITS_PER_UNIT)) == 0
23924 : || ((INTVAL (operands[3]) & (2 * 8 * BITS_PER_UNIT - 1))
23925 : == (2 * 8 * BITS_PER_UNIT - 1)))
23926 : && ix86_pre_reload_split ()) &&
23927 : #line 1271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23928 : (TARGET_64BIT)))
23929 : return 1091; /* *ashlti3_doubleword_mask */
23930 : break;
23931 :
23932 : case 2:
23933 : if ((
23934 : #line 2291 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23935 : (TARGET_AVX512F) &&
23936 : #line 2093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23937 : (TARGET_AVX512DQ)))
23938 : return 2676; /* kashiftqi */
23939 : break;
23940 :
23941 : case 3:
23942 : if (
23943 : #line 2291 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23944 : (TARGET_AVX512F))
23945 : return 2678; /* kashifthi */
23946 : break;
23947 :
23948 : case 4:
23949 : if ((
23950 : #line 2291 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23951 : (TARGET_AVX512F) &&
23952 : #line 2093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23953 : (TARGET_AVX512BW)))
23954 : return 2680; /* kashiftsi */
23955 : break;
23956 :
23957 : case 5:
23958 : if ((
23959 : #line 2291 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23960 : (TARGET_AVX512F) &&
23961 : #line 2093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23962 : (TARGET_AVX512BW)))
23963 : return 2682; /* kashiftdi */
23964 : break;
23965 :
23966 : default:
23967 : break;
23968 : }
23969 : x6 = XEXP (x3, 1);
23970 : operands[2] = x6;
23971 : switch (pattern829 (x1))
23972 : {
23973 : case 0:
23974 : operands[0] = x5;
23975 : switch (GET_MODE (operands[0]))
23976 : {
23977 : case E_DImode:
23978 : if (GET_MODE (x3) == E_DImode)
23979 : {
23980 : if (register_operand (operands[0], E_DImode)
23981 : && reg_or_pm1_operand (operands[1], E_DImode)
23982 : &&
23983 : #line 1230 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23984 : (!TARGET_64BIT))
23985 : return 1094; /* ashldi3_doubleword */
23986 : if (nonimmediate_operand (operands[0], E_DImode)
23987 : && nonimmediate_operand (operands[1], E_DImode)
23988 : && (
23989 : #line 16933 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23990 : (ix86_binary_operator_ok (ASHIFT, DImode, operands, TARGET_APX_NDD)
23991 : && true) &&
23992 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23993 : (TARGET_64BIT)))
23994 : return 1129; /* *ashldi3_1 */
23995 : }
23996 : break;
23997 :
23998 : case E_TImode:
23999 : if (register_operand (operands[0], E_TImode)
24000 : && GET_MODE (x3) == E_TImode
24001 : && reg_or_pm1_operand (operands[1], E_TImode)
24002 : &&
24003 : #line 1231 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24004 : (TARGET_64BIT))
24005 : return 1095; /* ashlti3_doubleword */
24006 : break;
24007 :
24008 : case E_SImode:
24009 : if (nonimmediate_operand (operands[0], E_SImode)
24010 : && GET_MODE (x3) == E_SImode
24011 : && nonimmediate_operand (operands[1], E_SImode)
24012 : &&
24013 : #line 16933 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24014 : (ix86_binary_operator_ok (ASHIFT, SImode, operands, TARGET_APX_NDD)
24015 : && true))
24016 : return 1127; /* *ashlsi3_1 */
24017 : break;
24018 :
24019 : case E_HImode:
24020 : if (nonimmediate_operand (operands[0], E_HImode)
24021 : && GET_MODE (x3) == E_HImode
24022 : && nonimmediate_operand (operands[1], E_HImode)
24023 : &&
24024 : #line 17118 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24025 : (ix86_binary_operator_ok (ASHIFT, HImode, operands, TARGET_APX_NDD)
24026 : && true))
24027 : return 1143; /* *ashlhi3_1 */
24028 : break;
24029 :
24030 : case E_QImode:
24031 : if (nonimmediate_operand (operands[0], E_QImode)
24032 : && GET_MODE (x3) == E_QImode
24033 : && nonimmediate_operand (operands[1], E_QImode)
24034 : &&
24035 : #line 17174 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24036 : (ix86_binary_operator_ok (ASHIFT, QImode, operands, TARGET_APX_NDD)
24037 : && true))
24038 : return 1145; /* *ashlqi3_1 */
24039 : break;
24040 :
24041 : case E_V2QImode:
24042 : if (register_operand (operands[0], E_V2QImode)
24043 : && GET_MODE (x3) == E_V2QImode
24044 : && register_operand (operands[1], E_V2QImode)
24045 : &&
24046 : #line 4039 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24047 : (!TARGET_PARTIAL_REG_STALL || optimize_size))
24048 : return 2274; /* ashlv2qi3 */
24049 : break;
24050 :
24051 : default:
24052 : break;
24053 : }
24054 : break;
24055 :
24056 : case 1:
24057 : x7 = XEXP (x5, 0);
24058 : operands[0] = x7;
24059 : switch (pattern379 (x3))
24060 : {
24061 : case 0:
24062 : if (
24063 : #line 17241 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24064 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
24065 : return 1146; /* *ashlqi3_1_slp */
24066 : break;
24067 :
24068 : case 1:
24069 : if (
24070 : #line 17241 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24071 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
24072 : return 1147; /* *ashlhi3_1_slp */
24073 : break;
24074 :
24075 : default:
24076 : break;
24077 : }
24078 : break;
24079 :
24080 : default:
24081 : break;
24082 : }
24083 : if (GET_CODE (x6) != SUBREG
24084 : || maybe_ne (SUBREG_BYTE (x6), 0)
24085 : || GET_MODE (x6) != E_QImode)
24086 : return -1;
24087 : x8 = XVECEXP (x1, 0, 1);
24088 : if (pattern377 (x8) != 0)
24089 : return -1;
24090 : switch (pattern1455 (x2))
24091 : {
24092 : case 0:
24093 : if (!
24094 : #line 18811 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24095 : (ix86_binary_operator_ok (ASHIFT, SImode, operands)
24096 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
24097 : == 4 * BITS_PER_UNIT - 1
24098 : && ix86_pre_reload_split ()))
24099 : return -1;
24100 : return 1282; /* *ashlsi3_mask */
24101 :
24102 : case 1:
24103 : if (!(
24104 : #line 18811 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24105 : (ix86_binary_operator_ok (ASHIFT, DImode, operands)
24106 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
24107 : == 8 * BITS_PER_UNIT - 1
24108 : && ix86_pre_reload_split ()) &&
24109 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24110 : (TARGET_64BIT)))
24111 : return -1;
24112 : return 1285; /* *ashldi3_mask */
24113 :
24114 : case 2:
24115 : if (!
24116 : #line 18859 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24117 : (ix86_binary_operator_ok (ASHIFT, SImode, operands)
24118 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
24119 : && ix86_pre_reload_split ()))
24120 : return -1;
24121 : return 1294; /* *ashlsi3_add */
24122 :
24123 : case 3:
24124 : if (!(
24125 : #line 18859 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24126 : (ix86_binary_operator_ok (ASHIFT, DImode, operands)
24127 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
24128 : && ix86_pre_reload_split ()) &&
24129 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24130 : (TARGET_64BIT)))
24131 : return -1;
24132 : return 1297; /* *ashldi3_add */
24133 :
24134 : case 4:
24135 : if (!
24136 : #line 18905 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24137 : (ix86_binary_operator_ok (ASHIFT, SImode, operands)
24138 : && ((INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
24139 : || (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
24140 : == 4 * BITS_PER_UNIT - 1)
24141 : && ix86_pre_reload_split ()))
24142 : return -1;
24143 : return 1306; /* *ashlsi3_sub */
24144 :
24145 : case 5:
24146 : if (!(
24147 : #line 18905 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24148 : (ix86_binary_operator_ok (ASHIFT, DImode, operands)
24149 : && ((INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
24150 : || (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
24151 : == 8 * BITS_PER_UNIT - 1)
24152 : && ix86_pre_reload_split ()) &&
24153 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24154 : (TARGET_64BIT)))
24155 : return -1;
24156 : return 1309; /* *ashldi3_sub */
24157 :
24158 : default:
24159 : return -1;
24160 : }
24161 :
24162 : case 1:
24163 : if (register_operand (operands[0], E_DImode)
24164 : && register_operand (operands[1], E_DImode)
24165 : && (
24166 : #line 16267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24167 : (((INTVAL (operands[3]) & (4 * BITS_PER_UNIT)) == 0
24168 : || ((INTVAL (operands[3]) & (2 * 4 * BITS_PER_UNIT - 1))
24169 : == (2 * 4 * BITS_PER_UNIT - 1)))
24170 : && ix86_pre_reload_split ()) &&
24171 : #line 1270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24172 : (!TARGET_64BIT)))
24173 : return 1092; /* *ashldi3_doubleword_mask_1 */
24174 : if (!nonimmediate_operand (operands[0], E_DImode)
24175 : || !nonimmediate_operand (operands[1], E_DImode)
24176 : || !(
24177 : #line 18836 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24178 : (ix86_binary_operator_ok (ASHIFT, DImode, operands)
24179 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
24180 : == 8 * BITS_PER_UNIT - 1
24181 : && ix86_pre_reload_split ()) &&
24182 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24183 : (TARGET_64BIT)))
24184 : return -1;
24185 : return 1291; /* *ashldi3_mask_1 */
24186 :
24187 : case 2:
24188 : if (!(
24189 : #line 16267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24190 : (((INTVAL (operands[3]) & (8 * BITS_PER_UNIT)) == 0
24191 : || ((INTVAL (operands[3]) & (2 * 8 * BITS_PER_UNIT - 1))
24192 : == (2 * 8 * BITS_PER_UNIT - 1)))
24193 : && ix86_pre_reload_split ()) &&
24194 : #line 1271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24195 : (TARGET_64BIT)))
24196 : return -1;
24197 : return 1093; /* *ashlti3_doubleword_mask_1 */
24198 :
24199 : case 3:
24200 : if (!
24201 : #line 18836 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24202 : (ix86_binary_operator_ok (ASHIFT, SImode, operands)
24203 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
24204 : == 4 * BITS_PER_UNIT - 1
24205 : && ix86_pre_reload_split ()))
24206 : return -1;
24207 : return 1288; /* *ashlsi3_mask_1 */
24208 :
24209 : case 4:
24210 : if (!
24211 : #line 18883 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24212 : (ix86_binary_operator_ok (ASHIFT, SImode, operands)
24213 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
24214 : && ix86_pre_reload_split ()))
24215 : return -1;
24216 : return 1300; /* *ashlsi3_add_1 */
24217 :
24218 : case 5:
24219 : if (!(
24220 : #line 18883 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24221 : (ix86_binary_operator_ok (ASHIFT, DImode, operands)
24222 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
24223 : && ix86_pre_reload_split ()) &&
24224 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24225 : (TARGET_64BIT)))
24226 : return -1;
24227 : return 1303; /* *ashldi3_add_1 */
24228 :
24229 : case 6:
24230 : if (!
24231 : #line 18938 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24232 : (ix86_binary_operator_ok (ASHIFT, SImode, operands)
24233 : && ((INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
24234 : || (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
24235 : == 4 * BITS_PER_UNIT - 1)
24236 : && ix86_pre_reload_split ()))
24237 : return -1;
24238 : return 1312; /* *ashlsi3_sub_1 */
24239 :
24240 : case 7:
24241 : if (!(
24242 : #line 18938 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24243 : (ix86_binary_operator_ok (ASHIFT, DImode, operands)
24244 : && ((INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
24245 : || (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
24246 : == 8 * BITS_PER_UNIT - 1)
24247 : && ix86_pre_reload_split ()) &&
24248 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24249 : (TARGET_64BIT)))
24250 : return -1;
24251 : return 1315; /* *ashldi3_sub_1 */
24252 :
24253 : default:
24254 : return -1;
24255 : }
24256 :
24257 : case SIGN_EXTEND:
24258 : switch (pattern385 (x1))
24259 : {
24260 : case 0:
24261 : if (!(
24262 : #line 16368 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24263 : (INTVAL (operands[2]) >= 4 * BITS_PER_UNIT
24264 : && INTVAL (operands[2]) < 4 * BITS_PER_UNIT * 2) &&
24265 : #line 1270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24266 : (!TARGET_64BIT)))
24267 : return -1;
24268 : return 1096; /* *ashldi3_doubleword_highpart */
24269 :
24270 : case 1:
24271 : if (!(
24272 : #line 16368 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24273 : (INTVAL (operands[2]) >= 8 * BITS_PER_UNIT
24274 : && INTVAL (operands[2]) < 8 * BITS_PER_UNIT * 2) &&
24275 : #line 1271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24276 : (TARGET_64BIT)))
24277 : return -1;
24278 : return 1098; /* *ashlti3_doubleword_highpart */
24279 :
24280 : default:
24281 : return -1;
24282 : }
24283 :
24284 : case ZERO_EXTEND:
24285 : switch (pattern385 (x1))
24286 : {
24287 : case 0:
24288 : if (!(
24289 : #line 16368 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24290 : (INTVAL (operands[2]) >= 4 * BITS_PER_UNIT
24291 : && INTVAL (operands[2]) < 4 * BITS_PER_UNIT * 2) &&
24292 : #line 1270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24293 : (!TARGET_64BIT)))
24294 : return -1;
24295 : return 1097; /* *ashldi3_doubleword_highpart */
24296 :
24297 : case 1:
24298 : if (!(
24299 : #line 16368 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24300 : (INTVAL (operands[2]) >= 8 * BITS_PER_UNIT
24301 : && INTVAL (operands[2]) < 8 * BITS_PER_UNIT * 2) &&
24302 : #line 1271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24303 : (TARGET_64BIT)))
24304 : return -1;
24305 : return 1099; /* *ashlti3_doubleword_highpart */
24306 :
24307 : default:
24308 : return -1;
24309 : }
24310 :
24311 : default:
24312 : return -1;
24313 : }
24314 : }
24315 :
24316 : int
24317 : recog_438 (rtx x1 ATTRIBUTE_UNUSED,
24318 : rtx_insn *insn ATTRIBUTE_UNUSED,
24319 : int *pnum_clobbers ATTRIBUTE_UNUSED)
24320 : {
24321 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
24322 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
24323 : rtx x10, x11, x12, x13, x14;
24324 : int res ATTRIBUTE_UNUSED;
24325 : if (pattern232 (x1) != 0)
24326 : return -1;
24327 : x2 = XVECEXP (x1, 0, 2);
24328 : if (GET_CODE (x2) != UNSPEC
24329 : || XVECLEN (x2, 0) != 1
24330 : || XINT (x2, 1) != 39)
24331 : return -1;
24332 : x3 = XVECEXP (x1, 0, 1);
24333 : x4 = XEXP (x3, 0);
24334 : operands[0] = x4;
24335 : x5 = XVECEXP (x2, 0, 0);
24336 : operands[2] = x5;
24337 : x6 = XVECEXP (x1, 0, 0);
24338 : x7 = XEXP (x6, 1);
24339 : x8 = XEXP (x7, 0);
24340 : switch (GET_CODE (x8))
24341 : {
24342 : case REG:
24343 : case SUBREG:
24344 : case MEM:
24345 : operands[1] = x8;
24346 : x9 = XEXP (x3, 1);
24347 : if (GET_CODE (x9) != CTZ)
24348 : return -1;
24349 : x10 = XEXP (x6, 0);
24350 : if (GET_MODE (x10) != E_CCCmode
24351 : || GET_MODE (x7) != E_CCCmode)
24352 : return -1;
24353 : x11 = XEXP (x9, 0);
24354 : if (!rtx_equal_p (x11, operands[1]))
24355 : return -1;
24356 : switch (GET_MODE (operands[1]))
24357 : {
24358 : case E_SImode:
24359 : if (pattern1719 (x9,
24360 : E_SImode) != 0
24361 : || !
24362 : #line 22076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24363 : (TARGET_BMI))
24364 : return -1;
24365 : return 1546; /* *tzcntsi_1_falsedep */
24366 :
24367 : case E_DImode:
24368 : if (pattern1719 (x9,
24369 : E_DImode) != 0
24370 : || !(
24371 : #line 22076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24372 : (TARGET_BMI) &&
24373 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24374 : (TARGET_64BIT)))
24375 : return -1;
24376 : return 1547; /* *tzcntdi_1_falsedep */
24377 :
24378 : default:
24379 : return -1;
24380 : }
24381 :
24382 : case AND:
24383 : x9 = XEXP (x3, 1);
24384 : if (GET_CODE (x9) != AND)
24385 : return -1;
24386 : x12 = XEXP (x8, 0);
24387 : switch (GET_CODE (x12))
24388 : {
24389 : case NEG:
24390 : x11 = XEXP (x9, 0);
24391 : if (GET_CODE (x11) != NEG)
24392 : return -1;
24393 : switch (pattern1596 (x1))
24394 : {
24395 : case 0:
24396 : if (!
24397 : #line 22899 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24398 : (TARGET_BMI && ix86_match_ccmode (insn, CCNOmode)))
24399 : return -1;
24400 : return 1612; /* *bmi_blsi_si_falsedep */
24401 :
24402 : case 1:
24403 : if (!(
24404 : #line 22899 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24405 : (TARGET_BMI && ix86_match_ccmode (insn, CCNOmode)) &&
24406 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24407 : (TARGET_64BIT)))
24408 : return -1;
24409 : return 1613; /* *bmi_blsi_di_falsedep */
24410 :
24411 : default:
24412 : return -1;
24413 : }
24414 :
24415 : case PLUS:
24416 : x13 = XEXP (x12, 1);
24417 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + -1])
24418 : return -1;
24419 : x11 = XEXP (x9, 0);
24420 : if (GET_CODE (x11) != PLUS)
24421 : return -1;
24422 : x14 = XEXP (x11, 1);
24423 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + -1])
24424 : return -1;
24425 : x10 = XEXP (x6, 0);
24426 : if (GET_MODE (x10) != E_CCZmode
24427 : || GET_MODE (x7) != E_CCZmode)
24428 : return -1;
24429 : switch (pattern1596 (x1))
24430 : {
24431 : case 0:
24432 : if (!
24433 : #line 23047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24434 : (TARGET_BMI))
24435 : return -1;
24436 : return 1624; /* *bmi_blsr_si_cmp_falsedep */
24437 :
24438 : case 1:
24439 : if (!(
24440 : #line 23047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24441 : (TARGET_BMI) &&
24442 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24443 : (TARGET_64BIT)))
24444 : return -1;
24445 : return 1625; /* *bmi_blsr_di_cmp_falsedep */
24446 :
24447 : default:
24448 : return -1;
24449 : }
24450 :
24451 : default:
24452 : return -1;
24453 : }
24454 :
24455 : default:
24456 : return -1;
24457 : }
24458 : }
24459 :
24460 : int
24461 : recog_441 (rtx x1 ATTRIBUTE_UNUSED,
24462 : rtx_insn *insn ATTRIBUTE_UNUSED,
24463 : int *pnum_clobbers ATTRIBUTE_UNUSED)
24464 : {
24465 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
24466 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
24467 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
24468 : rtx x18, x19;
24469 : int res ATTRIBUTE_UNUSED;
24470 : x2 = XVECEXP (x1, 0, 0);
24471 : switch (GET_CODE (x2))
24472 : {
24473 : case SET:
24474 : x3 = XEXP (x2, 1);
24475 : switch (GET_CODE (x3))
24476 : {
24477 : case UNSPEC:
24478 : return recog_434 (x1, insn, pnum_clobbers);
24479 :
24480 : case SIGN_EXTEND:
24481 : x4 = XVECEXP (x1, 0, 2);
24482 : if (GET_CODE (x4) != CLOBBER)
24483 : return -1;
24484 : x5 = XEXP (x2, 0);
24485 : operands[0] = x5;
24486 : x6 = XEXP (x3, 0);
24487 : switch (GET_CODE (x6))
24488 : {
24489 : case REG:
24490 : case SUBREG:
24491 : operands[1] = x6;
24492 : x7 = XVECEXP (x1, 0, 1);
24493 : if (pattern237 (x7,
24494 : E_CCmode,
24495 : 17) != 0)
24496 : return -1;
24497 : x8 = XEXP (x4, 0);
24498 : operands[2] = x8;
24499 : switch (GET_MODE (operands[0]))
24500 : {
24501 : case E_DImode:
24502 : if (pattern1459 (x3,
24503 : E_SImode,
24504 : E_DImode) != 0
24505 : || !
24506 : #line 5098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24507 : (!TARGET_64BIT))
24508 : return -1;
24509 : return 189; /* extendsidi2_1 */
24510 :
24511 : case E_TImode:
24512 : if (pattern1459 (x3,
24513 : E_DImode,
24514 : E_TImode) != 0
24515 : || !
24516 : #line 5106 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24517 : (TARGET_64BIT))
24518 : return -1;
24519 : return 190; /* extendditi2 */
24520 :
24521 : default:
24522 : return -1;
24523 : }
24524 :
24525 : case CTZ:
24526 : if (GET_MODE (x6) != E_SImode)
24527 : return -1;
24528 : x7 = XVECEXP (x1, 0, 1);
24529 : if (GET_CODE (x7) != UNSPEC
24530 : || XVECLEN (x7, 0) != 1
24531 : || XINT (x7, 1) != 39)
24532 : return -1;
24533 : x8 = XEXP (x4, 0);
24534 : if (GET_CODE (x8) != REG
24535 : || REGNO (x8) != 17
24536 : || GET_MODE (x8) != E_CCmode
24537 : || !register_operand (operands[0], E_DImode)
24538 : || GET_MODE (x3) != E_DImode)
24539 : return -1;
24540 : x9 = XEXP (x6, 0);
24541 : operands[1] = x9;
24542 : if (!nonimmediate_operand (operands[1], E_SImode))
24543 : return -1;
24544 : x10 = XVECEXP (x7, 0, 0);
24545 : operands[2] = x10;
24546 : if (!register_operand (operands[2], E_DImode)
24547 : || !
24548 : #line 22258 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24549 : (TARGET_64BIT))
24550 : return -1;
24551 : return 1558; /* *ctzsidi2_sext_falsedep */
24552 :
24553 : default:
24554 : return -1;
24555 : }
24556 :
24557 : case FIX:
24558 : x7 = XVECEXP (x1, 0, 1);
24559 : if (GET_CODE (x7) != USE)
24560 : return -1;
24561 : x4 = XVECEXP (x1, 0, 2);
24562 : if (GET_CODE (x4) != USE)
24563 : return -1;
24564 : x5 = XEXP (x2, 0);
24565 : operands[0] = x5;
24566 : x6 = XEXP (x3, 0);
24567 : operands[1] = x6;
24568 : if (!register_operand (operands[1], E_VOIDmode))
24569 : return -1;
24570 : switch (pattern841 (x1, pnum_clobbers))
24571 : {
24572 : case 0:
24573 : if (!
24574 : #line 6169 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24575 : (X87_FLOAT_MODE_P (GET_MODE (operands[1]))
24576 : && !TARGET_FISTTP
24577 : && !(TARGET_64BIT && SSE_FLOAT_MODE_P (GET_MODE (operands[1])))))
24578 : return -1;
24579 : *pnum_clobbers = 1;
24580 : return 243; /* fix_truncdi_i387 */
24581 :
24582 : case 1:
24583 : if (!
24584 : #line 6182 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24585 : (X87_FLOAT_MODE_P (GET_MODE (operands[1]))
24586 : && !TARGET_FISTTP
24587 : && !SSE_FLOAT_MODE_P (GET_MODE (operands[1]))))
24588 : return -1;
24589 : return 244; /* fix_trunchi_i387 */
24590 :
24591 : case 2:
24592 : if (!
24593 : #line 6182 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24594 : (X87_FLOAT_MODE_P (GET_MODE (operands[1]))
24595 : && !TARGET_FISTTP
24596 : && !SSE_FLOAT_MODE_P (GET_MODE (operands[1]))))
24597 : return -1;
24598 : return 245; /* fix_truncsi_i387 */
24599 :
24600 : default:
24601 : return -1;
24602 : }
24603 :
24604 : case UNSIGNED_FLOAT:
24605 : x7 = XVECEXP (x1, 0, 1);
24606 : if (GET_CODE (x7) != CLOBBER)
24607 : return -1;
24608 : x4 = XVECEXP (x1, 0, 2);
24609 : if (GET_CODE (x4) != CLOBBER)
24610 : return -1;
24611 : switch (pattern578 (x1))
24612 : {
24613 : case 0:
24614 : if (!
24615 : #line 6449 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24616 : (!TARGET_64BIT
24617 : && TARGET_80387 && X87_ENABLE_FLOAT (SFmode, DImode)
24618 : && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_TO_VEC))
24619 : return -1;
24620 : return 269; /* floatunssisf2_i387_with_xmm */
24621 :
24622 : case 1:
24623 : if (!
24624 : #line 6449 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24625 : (!TARGET_64BIT
24626 : && TARGET_80387 && X87_ENABLE_FLOAT (DFmode, DImode)
24627 : && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_TO_VEC))
24628 : return -1;
24629 : return 270; /* floatunssidf2_i387_with_xmm */
24630 :
24631 : case 2:
24632 : if (!
24633 : #line 6449 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24634 : (!TARGET_64BIT
24635 : && TARGET_80387 && X87_ENABLE_FLOAT (XFmode, DImode)
24636 : && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_TO_VEC))
24637 : return -1;
24638 : return 271; /* floatunssixf2_i387_with_xmm */
24639 :
24640 : default:
24641 : return -1;
24642 : }
24643 :
24644 : case EQ:
24645 : return recog_440 (x1, insn, pnum_clobbers);
24646 :
24647 : case SMUL_HIGHPART:
24648 : switch (pattern224 (x1))
24649 : {
24650 : case 0:
24651 : if (!
24652 : #line 1270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24653 : (!TARGET_64BIT))
24654 : return -1;
24655 : return 661; /* smulsi3_highpart */
24656 :
24657 : case 1:
24658 : if (!
24659 : #line 1271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24660 : (TARGET_64BIT))
24661 : return -1;
24662 : return 663; /* smuldi3_highpart */
24663 :
24664 : default:
24665 : return -1;
24666 : }
24667 :
24668 : case UMUL_HIGHPART:
24669 : switch (pattern224 (x1))
24670 : {
24671 : case 0:
24672 : if (!
24673 : #line 1270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24674 : (!TARGET_64BIT))
24675 : return -1;
24676 : return 662; /* umulsi3_highpart */
24677 :
24678 : case 1:
24679 : if (!
24680 : #line 1271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24681 : (TARGET_64BIT))
24682 : return -1;
24683 : return 664; /* umuldi3_highpart */
24684 :
24685 : default:
24686 : return -1;
24687 : }
24688 :
24689 : case ZERO_EXTEND:
24690 : return recog_435 (x1, insn, pnum_clobbers);
24691 :
24692 : case TRUNCATE:
24693 : x6 = XEXP (x3, 0);
24694 : if (GET_CODE (x6) != LSHIFTRT)
24695 : return -1;
24696 : x9 = XEXP (x6, 0);
24697 : if (GET_CODE (x9) != MULT)
24698 : return -1;
24699 : x11 = XEXP (x6, 1);
24700 : if (GET_CODE (x11) != CONST_INT)
24701 : return -1;
24702 : x7 = XVECEXP (x1, 0, 1);
24703 : if (GET_CODE (x7) != CLOBBER
24704 : || pattern845 (x1) != 0)
24705 : return -1;
24706 : x12 = XEXP (x7, 0);
24707 : operands[3] = x12;
24708 : x13 = XEXP (x9, 0);
24709 : switch (GET_CODE (x13))
24710 : {
24711 : case SIGN_EXTEND:
24712 : switch (pattern1516 (x3,
24713 : SIGN_EXTEND))
24714 : {
24715 : case 0:
24716 : if (!
24717 : #line 12000 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24718 : (TARGET_64BIT
24719 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
24720 : return -1;
24721 : return 667; /* *smuldi3_highpart_1 */
24722 :
24723 : case 1:
24724 : if (!
24725 : #line 12049 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24726 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))))
24727 : return -1;
24728 : return 671; /* *smulsi3_highpart_1 */
24729 :
24730 : default:
24731 : return -1;
24732 : }
24733 :
24734 : case ZERO_EXTEND:
24735 : switch (pattern1516 (x3,
24736 : ZERO_EXTEND))
24737 : {
24738 : case 0:
24739 : if (!
24740 : #line 12000 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24741 : (TARGET_64BIT
24742 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
24743 : return -1;
24744 : return 668; /* *umuldi3_highpart_1 */
24745 :
24746 : case 1:
24747 : if (!
24748 : #line 12049 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24749 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))))
24750 : return -1;
24751 : return 672; /* *umulsi3_highpart_1 */
24752 :
24753 : default:
24754 : return -1;
24755 : }
24756 :
24757 : default:
24758 : return -1;
24759 : }
24760 :
24761 : case DIV:
24762 : switch (pattern225 (x1))
24763 : {
24764 : case 0:
24765 : switch (pattern1351 (x1, pnum_clobbers))
24766 : {
24767 : case 0:
24768 : *pnum_clobbers = 1;
24769 : return 673; /* divmodsi4_1 */
24770 :
24771 : case 1:
24772 : if (!
24773 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24774 : (TARGET_64BIT))
24775 : return -1;
24776 : *pnum_clobbers = 1;
24777 : return 674; /* divmoddi4_1 */
24778 :
24779 : case 2:
24780 : if (!
24781 : #line 1226 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24782 : (TARGET_HIMODE_MATH))
24783 : return -1;
24784 : return 681; /* *divmodhi4 */
24785 :
24786 : case 3:
24787 : return 682; /* *divmodsi4 */
24788 :
24789 : case 4:
24790 : if (!
24791 : #line 1227 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24792 : (TARGET_64BIT))
24793 : return -1;
24794 : return 683; /* *divmoddi4 */
24795 :
24796 : case 5:
24797 : if ((
24798 : #line 12677 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24799 : (TARGET_APX_NF) &&
24800 : #line 1226 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24801 : (TARGET_HIMODE_MATH)))
24802 : return 695; /* *divmodhi4_noext_nf */
24803 : if (pnum_clobbers == NULL
24804 : || !
24805 : #line 1226 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24806 : (TARGET_HIMODE_MATH))
24807 : return -1;
24808 : *pnum_clobbers = 1;
24809 : return 701; /* *divmodhi4_noext */
24810 :
24811 : case 6:
24812 : if (
24813 : #line 12677 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24814 : (TARGET_APX_NF))
24815 : return 697; /* *divmodsi4_noext_nf */
24816 : if (pnum_clobbers == NULL)
24817 : return -1;
24818 : *pnum_clobbers = 1;
24819 : return 703; /* *divmodsi4_noext */
24820 :
24821 : case 7:
24822 : if ((
24823 : #line 12677 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24824 : (TARGET_APX_NF) &&
24825 : #line 1227 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24826 : (TARGET_64BIT)))
24827 : return 699; /* *divmoddi4_noext_nf */
24828 : if (pnum_clobbers == NULL
24829 : || !
24830 : #line 1227 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24831 : (TARGET_64BIT))
24832 : return -1;
24833 : *pnum_clobbers = 1;
24834 : return 705; /* *divmoddi4_noext */
24835 :
24836 : default:
24837 : return -1;
24838 : }
24839 :
24840 : case 1:
24841 : if (!const_int_operand (operands[2], E_SImode))
24842 : return -1;
24843 : x4 = XVECEXP (x1, 0, 2);
24844 : if (pattern963 (x4,
24845 : E_CCmode,
24846 : 17) != 0
24847 : || pattern1512 (x1) != 0
24848 : || !
24849 : #line 12733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24850 : (!optimize_function_for_size_p (cfun)))
24851 : return -1;
24852 : return 711; /* *divmodsi4_const */
24853 :
24854 : default:
24855 : return -1;
24856 : }
24857 :
24858 : case UDIV:
24859 : switch (pattern226 (x1))
24860 : {
24861 : case 0:
24862 : switch (pattern1351 (x1, pnum_clobbers))
24863 : {
24864 : case 0:
24865 : *pnum_clobbers = 1;
24866 : return 675; /* udivmodsi4_1 */
24867 :
24868 : case 1:
24869 : if (!
24870 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24871 : (TARGET_64BIT))
24872 : return -1;
24873 : *pnum_clobbers = 1;
24874 : return 676; /* udivmoddi4_1 */
24875 :
24876 : case 2:
24877 : if (!
24878 : #line 1226 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24879 : (TARGET_HIMODE_MATH))
24880 : return -1;
24881 : return 684; /* *udivmodhi4 */
24882 :
24883 : case 3:
24884 : return 685; /* *udivmodsi4 */
24885 :
24886 : case 4:
24887 : if (!
24888 : #line 1227 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24889 : (TARGET_64BIT))
24890 : return -1;
24891 : return 686; /* *udivmoddi4 */
24892 :
24893 : case 5:
24894 : if ((
24895 : #line 12677 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24896 : (TARGET_APX_NF) &&
24897 : #line 1226 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24898 : (TARGET_HIMODE_MATH)))
24899 : return 696; /* *udivmodhi4_noext_nf */
24900 : if (pnum_clobbers == NULL
24901 : || !
24902 : #line 1226 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24903 : (TARGET_HIMODE_MATH))
24904 : return -1;
24905 : *pnum_clobbers = 1;
24906 : return 702; /* *udivmodhi4_noext */
24907 :
24908 : case 6:
24909 : if (
24910 : #line 12677 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24911 : (TARGET_APX_NF))
24912 : return 698; /* *udivmodsi4_noext_nf */
24913 : if (pnum_clobbers == NULL)
24914 : return -1;
24915 : *pnum_clobbers = 1;
24916 : return 704; /* *udivmodsi4_noext */
24917 :
24918 : case 7:
24919 : if ((
24920 : #line 12677 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24921 : (TARGET_APX_NF) &&
24922 : #line 1227 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24923 : (TARGET_64BIT)))
24924 : return 700; /* *udivmoddi4_noext_nf */
24925 : if (pnum_clobbers == NULL
24926 : || !
24927 : #line 1227 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24928 : (TARGET_64BIT))
24929 : return -1;
24930 : *pnum_clobbers = 1;
24931 : return 706; /* *udivmoddi4_noext */
24932 :
24933 : default:
24934 : return -1;
24935 : }
24936 :
24937 : case 1:
24938 : x4 = XVECEXP (x1, 0, 2);
24939 : if (pattern963 (x4,
24940 : E_CCmode,
24941 : 17) != 0)
24942 : return -1;
24943 : switch (GET_MODE (operands[0]))
24944 : {
24945 : case E_SImode:
24946 : if (pattern1513 (x1,
24947 : E_SImode) != 0
24948 : || !
24949 : #line 12486 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24950 : (IN_RANGE (exact_log2 (UINTVAL (operands[3])), 1, 31)))
24951 : return -1;
24952 : return 687; /* *udivmodsi4_pow2 */
24953 :
24954 : case E_DImode:
24955 : if (pattern1513 (x1,
24956 : E_DImode) != 0
24957 : || !(
24958 : #line 12486 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24959 : (IN_RANGE (exact_log2 (UINTVAL (operands[3])), 1, 31)) &&
24960 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24961 : (TARGET_64BIT)))
24962 : return -1;
24963 : return 688; /* *udivmoddi4_pow2 */
24964 :
24965 : default:
24966 : return -1;
24967 : }
24968 :
24969 : default:
24970 : return -1;
24971 : }
24972 :
24973 : case ABS:
24974 : switch (pattern228 (x1))
24975 : {
24976 : case 0:
24977 : if (!
24978 : #line 15811 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24979 : (TARGET_AVX512FP16))
24980 : return -1;
24981 : return 1054; /* *abshf2_1 */
24982 :
24983 : case 1:
24984 : if (!
24985 : #line 15827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24986 : (TARGET_80387 || (SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)))
24987 : return -1;
24988 : return 1056; /* *abssf2_1 */
24989 :
24990 : case 2:
24991 : if (!
24992 : #line 15827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24993 : (TARGET_80387 || (SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)))
24994 : return -1;
24995 : return 1058; /* *absdf2_1 */
24996 :
24997 : default:
24998 : return -1;
24999 : }
25000 :
25001 : case NEG:
25002 : switch (pattern228 (x1))
25003 : {
25004 : case 0:
25005 : if (!
25006 : #line 15811 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25007 : (TARGET_AVX512FP16))
25008 : return -1;
25009 : return 1055; /* *neghf2_1 */
25010 :
25011 : case 1:
25012 : if (!
25013 : #line 15827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25014 : (TARGET_80387 || (SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)))
25015 : return -1;
25016 : return 1057; /* *negsf2_1 */
25017 :
25018 : case 2:
25019 : if (!
25020 : #line 15827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25021 : (TARGET_80387 || (SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)))
25022 : return -1;
25023 : return 1059; /* *negdf2_1 */
25024 :
25025 : default:
25026 : return -1;
25027 : }
25028 :
25029 : case ROTATE:
25030 : switch (pattern230 (x1))
25031 : {
25032 : case 0:
25033 : if (!
25034 : #line 1270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25035 : (!TARGET_64BIT))
25036 : return -1;
25037 : return 1370; /* ix86_rotldi3_doubleword */
25038 :
25039 : case 1:
25040 : if (!
25041 : #line 1271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25042 : (TARGET_64BIT))
25043 : return -1;
25044 : return 1371; /* ix86_rotlti3_doubleword */
25045 :
25046 : default:
25047 : return -1;
25048 : }
25049 :
25050 : case ROTATERT:
25051 : switch (pattern230 (x1))
25052 : {
25053 : case 0:
25054 : if (!
25055 : #line 1270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25056 : (!TARGET_64BIT))
25057 : return -1;
25058 : return 1372; /* ix86_rotrdi3_doubleword */
25059 :
25060 : case 1:
25061 : if (!
25062 : #line 1271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25063 : (TARGET_64BIT))
25064 : return -1;
25065 : return 1373; /* ix86_rotrti3_doubleword */
25066 :
25067 : default:
25068 : return -1;
25069 : }
25070 :
25071 : case CALL:
25072 : return recog_437 (x1, insn, pnum_clobbers);
25073 :
25074 : case PLUS:
25075 : x4 = XVECEXP (x1, 0, 2);
25076 : if (pattern231 (x4) != 0)
25077 : return -1;
25078 : x6 = XEXP (x3, 0);
25079 : if (GET_CODE (x6) == REG
25080 : && REGNO (x6) == 6)
25081 : {
25082 : x14 = XEXP (x3, 1);
25083 : if (GET_CODE (x14) == CONST_INT)
25084 : {
25085 : x5 = XEXP (x2, 0);
25086 : if (GET_CODE (x5) == REG
25087 : && REGNO (x5) == 7)
25088 : {
25089 : x7 = XVECEXP (x1, 0, 1);
25090 : if (pattern728 (x7,
25091 : 6,
25092 : MEM) == 0)
25093 : {
25094 : switch (XWINT (x14, 0))
25095 : {
25096 : case 4L:
25097 : if (pattern1718 (x1,
25098 : E_SImode) == 0
25099 : &&
25100 : #line 21913 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25101 : (!TARGET_64BIT))
25102 : return 1540; /* *leave */
25103 : break;
25104 :
25105 : case 8L:
25106 : if (pattern1718 (x1,
25107 : E_DImode) == 0
25108 : &&
25109 : #line 21921 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25110 : (TARGET_64BIT))
25111 : return 1541; /* *leave_rex64 */
25112 : break;
25113 :
25114 : default:
25115 : break;
25116 : }
25117 : }
25118 : }
25119 : }
25120 : }
25121 : x7 = XVECEXP (x1, 0, 1);
25122 : if (GET_CODE (x7) != CLOBBER)
25123 : return -1;
25124 : x12 = XEXP (x7, 0);
25125 : if (GET_CODE (x12) != REG
25126 : || REGNO (x12) != 17
25127 : || GET_MODE (x12) != E_CCmode)
25128 : return -1;
25129 : x5 = XEXP (x2, 0);
25130 : operands[0] = x5;
25131 : operands[1] = x6;
25132 : x14 = XEXP (x3, 1);
25133 : operands[2] = x14;
25134 : switch (GET_MODE (operands[0]))
25135 : {
25136 : case E_SImode:
25137 : if (pattern1442 (x3,
25138 : E_SImode) != 0
25139 : || !
25140 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25141 : (Pmode == SImode))
25142 : return -1;
25143 : return 1911; /* pro_epilogue_adjust_stack_add_si */
25144 :
25145 : case E_DImode:
25146 : if (pattern1442 (x3,
25147 : E_DImode) != 0
25148 : || !
25149 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25150 : (Pmode == DImode))
25151 : return -1;
25152 : return 1912; /* pro_epilogue_adjust_stack_add_di */
25153 :
25154 : default:
25155 : return -1;
25156 : }
25157 :
25158 : case FFS:
25159 : if (GET_MODE (x3) != E_SImode)
25160 : return -1;
25161 : x7 = XVECEXP (x1, 0, 1);
25162 : if (GET_CODE (x7) != CLOBBER)
25163 : return -1;
25164 : x4 = XVECEXP (x1, 0, 2);
25165 : if (GET_CODE (x4) != CLOBBER
25166 : || pattern727 (x1) != 0
25167 : || !
25168 : #line 22016 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25169 : (!TARGET_CMOVE))
25170 : return -1;
25171 : return 1543; /* ffssi2_no_cmove */
25172 :
25173 : case COMPARE:
25174 : return recog_438 (x1, insn, pnum_clobbers);
25175 :
25176 : case CTZ:
25177 : switch (pattern235 (x1))
25178 : {
25179 : case 0:
25180 : return 1552; /* *ctzsi2_falsedep */
25181 :
25182 : case 1:
25183 : if (!
25184 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25185 : (TARGET_64BIT))
25186 : return -1;
25187 : return 1553; /* *ctzdi2_falsedep */
25188 :
25189 : default:
25190 : return -1;
25191 : }
25192 :
25193 : case AND:
25194 : if (GET_MODE (x3) != E_DImode)
25195 : return -1;
25196 : x6 = XEXP (x3, 0);
25197 : if (GET_CODE (x6) != SUBREG
25198 : || maybe_ne (SUBREG_BYTE (x6), 0)
25199 : || GET_MODE (x6) != E_DImode)
25200 : return -1;
25201 : x14 = XEXP (x3, 1);
25202 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 63])
25203 : return -1;
25204 : x7 = XVECEXP (x1, 0, 1);
25205 : if (GET_CODE (x7) != UNSPEC
25206 : || XVECLEN (x7, 0) != 1
25207 : || XINT (x7, 1) != 39
25208 : || pattern845 (x1) != 0
25209 : || !register_operand (operands[0], E_DImode))
25210 : return -1;
25211 : x9 = XEXP (x6, 0);
25212 : if (GET_MODE (x9) != E_SImode)
25213 : return -1;
25214 : x10 = XVECEXP (x7, 0, 0);
25215 : operands[2] = x10;
25216 : if (!register_operand (operands[2], E_DImode))
25217 : return -1;
25218 : switch (GET_CODE (x9))
25219 : {
25220 : case CTZ:
25221 : x13 = XEXP (x9, 0);
25222 : operands[1] = x13;
25223 : if (!nonimmediate_operand (operands[1], E_SImode)
25224 : || !
25225 : #line 22204 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25226 : (TARGET_BMI && TARGET_64BIT))
25227 : return -1;
25228 : return 1555; /* *ctzsi2_zext_falsedep */
25229 :
25230 : case CLZ:
25231 : x13 = XEXP (x9, 0);
25232 : operands[1] = x13;
25233 : switch (GET_MODE (operands[1]))
25234 : {
25235 : case E_SImode:
25236 : if (!nonimmediate_operand (operands[1], E_SImode)
25237 : || !
25238 : #line 22650 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25239 : (TARGET_LZCNT))
25240 : return -1;
25241 : return 1579; /* *clzsi2_lzcnt_zext_falsedep */
25242 :
25243 : case E_DImode:
25244 : if (!nonimmediate_operand (operands[1], E_DImode)
25245 : || !(
25246 : #line 22650 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25247 : (TARGET_LZCNT) &&
25248 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25249 : (TARGET_64BIT)))
25250 : return -1;
25251 : return 1580; /* *clzsi2_lzcnt_zext_falsedep */
25252 :
25253 : default:
25254 : return -1;
25255 : }
25256 :
25257 : case POPCOUNT:
25258 : x13 = XEXP (x9, 0);
25259 : operands[1] = x13;
25260 : if (!nonimmediate_operand (operands[1], E_SImode)
25261 : || !
25262 : #line 23483 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25263 : (TARGET_POPCNT && TARGET_64BIT))
25264 : return -1;
25265 : return 1671; /* *popcountsi2_zext_falsedep */
25266 :
25267 : default:
25268 : return -1;
25269 : }
25270 :
25271 : case CLZ:
25272 : switch (pattern235 (x1))
25273 : {
25274 : case 0:
25275 : if (!
25276 : #line 22607 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25277 : (TARGET_LZCNT))
25278 : return -1;
25279 : return 1576; /* *clzsi2_lzcnt_falsedep */
25280 :
25281 : case 1:
25282 : if (!(
25283 : #line 22607 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25284 : (TARGET_LZCNT) &&
25285 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25286 : (TARGET_64BIT)))
25287 : return -1;
25288 : return 1577; /* *clzdi2_lzcnt_falsedep */
25289 :
25290 : default:
25291 : return -1;
25292 : }
25293 :
25294 : case XOR:
25295 : x6 = XEXP (x3, 0);
25296 : if (GET_CODE (x6) != PLUS)
25297 : return -1;
25298 : x11 = XEXP (x6, 1);
25299 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + -1])
25300 : return -1;
25301 : x7 = XVECEXP (x1, 0, 1);
25302 : if (pattern237 (x7,
25303 : E_CCmode,
25304 : 17) != 0)
25305 : return -1;
25306 : x4 = XVECEXP (x1, 0, 2);
25307 : if (GET_CODE (x4) != UNSPEC
25308 : || XVECLEN (x4, 0) != 1
25309 : || XINT (x4, 1) != 39)
25310 : return -1;
25311 : x5 = XEXP (x2, 0);
25312 : operands[0] = x5;
25313 : x9 = XEXP (x6, 0);
25314 : operands[1] = x9;
25315 : x15 = XVECEXP (x4, 0, 0);
25316 : operands[2] = x15;
25317 : x14 = XEXP (x3, 1);
25318 : if (!rtx_equal_p (x14, operands[1]))
25319 : return -1;
25320 : switch (GET_MODE (operands[0]))
25321 : {
25322 : case E_SImode:
25323 : if (pattern1657 (x3,
25324 : E_SImode) != 0
25325 : || !
25326 : #line 22958 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25327 : (TARGET_BMI))
25328 : return -1;
25329 : return 1618; /* *bmi_blsmsk_si_falsedep */
25330 :
25331 : case E_DImode:
25332 : if (pattern1657 (x3,
25333 : E_DImode) != 0
25334 : || !(
25335 : #line 22958 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25336 : (TARGET_BMI) &&
25337 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25338 : (TARGET_64BIT)))
25339 : return -1;
25340 : return 1619; /* *bmi_blsmsk_di_falsedep */
25341 :
25342 : default:
25343 : return -1;
25344 : }
25345 :
25346 : case POPCOUNT:
25347 : switch (pattern235 (x1))
25348 : {
25349 : case 0:
25350 : if (!
25351 : #line 23428 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25352 : (TARGET_POPCNT))
25353 : return -1;
25354 : return 1668; /* *popcountsi2_falsedep */
25355 :
25356 : case 1:
25357 : if (!(
25358 : #line 23428 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25359 : (TARGET_POPCNT) &&
25360 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25361 : (TARGET_64BIT)))
25362 : return -1;
25363 : return 1669; /* *popcountdi2_falsedep */
25364 :
25365 : default:
25366 : return -1;
25367 : }
25368 :
25369 : case MEM:
25370 : return recog_439 (x1, insn, pnum_clobbers);
25371 :
25372 : case REG:
25373 : case SUBREG:
25374 : operands[2] = x3;
25375 : if (pattern236 (x1) != 0)
25376 : return -1;
25377 : x4 = XVECEXP (x1, 0, 2);
25378 : if (pattern387 (x4,
25379 : 37) != 0)
25380 : return -1;
25381 : x5 = XEXP (x2, 0);
25382 : x16 = XEXP (x5, 0);
25383 : operands[1] = x16;
25384 : x7 = XVECEXP (x1, 0, 1);
25385 : x12 = XEXP (x7, 0);
25386 : operands[0] = x12;
25387 : x17 = XEXP (x7, 1);
25388 : x18 = XEXP (x17, 0);
25389 : if (!rtx_equal_p (x18, operands[1]))
25390 : return -1;
25391 : x19 = XEXP (x17, 1);
25392 : switch (XWINT (x19, 0))
25393 : {
25394 : case 8L:
25395 : switch (pattern1597 (x1,
25396 : E_DImode))
25397 : {
25398 : case 0:
25399 : if (!(
25400 : #line 26981 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25401 : (TARGET_64BIT
25402 : && !(fixed_regs[AX_REG] || fixed_regs[DI_REG])
25403 : && ADDR_SPACE_GENERIC_P
25404 : (MEM_ADDR_SPACE (SET_DEST (XVECEXP (PATTERN (insn), 0, 0))))) &&
25405 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25406 : (Pmode == SImode)))
25407 : return -1;
25408 : return 1813; /* *strsetdi_rex_1 */
25409 :
25410 : case 1:
25411 : if (!(
25412 : #line 26981 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25413 : (TARGET_64BIT
25414 : && !(fixed_regs[AX_REG] || fixed_regs[DI_REG])
25415 : && ADDR_SPACE_GENERIC_P
25416 : (MEM_ADDR_SPACE (SET_DEST (XVECEXP (PATTERN (insn), 0, 0))))) &&
25417 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25418 : (Pmode == DImode)))
25419 : return -1;
25420 : return 1814; /* *strsetdi_rex_1 */
25421 :
25422 : default:
25423 : return -1;
25424 : }
25425 :
25426 : case 4L:
25427 : switch (pattern1597 (x1,
25428 : E_SImode))
25429 : {
25430 : case 0:
25431 : if (!(
25432 : #line 26997 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25433 : (!(fixed_regs[AX_REG] || fixed_regs[DI_REG])
25434 : && ADDR_SPACE_GENERIC_P
25435 : (MEM_ADDR_SPACE (SET_DEST (XVECEXP (PATTERN (insn), 0, 0))))) &&
25436 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25437 : (Pmode == SImode)))
25438 : return -1;
25439 : return 1815; /* *strsetsi_1 */
25440 :
25441 : case 1:
25442 : if (!(
25443 : #line 26997 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25444 : (!(fixed_regs[AX_REG] || fixed_regs[DI_REG])
25445 : && ADDR_SPACE_GENERIC_P
25446 : (MEM_ADDR_SPACE (SET_DEST (XVECEXP (PATTERN (insn), 0, 0))))) &&
25447 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25448 : (Pmode == DImode)))
25449 : return -1;
25450 : return 1816; /* *strsetsi_1 */
25451 :
25452 : default:
25453 : return -1;
25454 : }
25455 :
25456 : case 2L:
25457 : switch (pattern1597 (x1,
25458 : E_HImode))
25459 : {
25460 : case 0:
25461 : if (!(
25462 : #line 27012 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25463 : (!(fixed_regs[AX_REG] || fixed_regs[DI_REG])
25464 : && ADDR_SPACE_GENERIC_P
25465 : (MEM_ADDR_SPACE (SET_DEST (XVECEXP (PATTERN (insn), 0, 0))))) &&
25466 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25467 : (Pmode == SImode)))
25468 : return -1;
25469 : return 1817; /* *strsethi_1 */
25470 :
25471 : case 1:
25472 : if (!(
25473 : #line 27012 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25474 : (!(fixed_regs[AX_REG] || fixed_regs[DI_REG])
25475 : && ADDR_SPACE_GENERIC_P
25476 : (MEM_ADDR_SPACE (SET_DEST (XVECEXP (PATTERN (insn), 0, 0))))) &&
25477 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25478 : (Pmode == DImode)))
25479 : return -1;
25480 : return 1818; /* *strsethi_1 */
25481 :
25482 : default:
25483 : return -1;
25484 : }
25485 :
25486 : case 1L:
25487 : switch (pattern1597 (x1,
25488 : E_QImode))
25489 : {
25490 : case 0:
25491 : if (!(
25492 : #line 27027 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25493 : (!(fixed_regs[AX_REG] || fixed_regs[DI_REG])
25494 : && ADDR_SPACE_GENERIC_P
25495 : (MEM_ADDR_SPACE (SET_DEST (XVECEXP (PATTERN (insn), 0, 0))))) &&
25496 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25497 : (Pmode == SImode)))
25498 : return -1;
25499 : return 1819; /* *strsetqi_1 */
25500 :
25501 : case 1:
25502 : if (!(
25503 : #line 27027 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25504 : (!(fixed_regs[AX_REG] || fixed_regs[DI_REG])
25505 : && ADDR_SPACE_GENERIC_P
25506 : (MEM_ADDR_SPACE (SET_DEST (XVECEXP (PATTERN (insn), 0, 0))))) &&
25507 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25508 : (Pmode == DImode)))
25509 : return -1;
25510 : return 1820; /* *strsetqi_1 */
25511 :
25512 : default:
25513 : return -1;
25514 : }
25515 :
25516 : default:
25517 : return -1;
25518 : }
25519 :
25520 : case MINUS:
25521 : x7 = XVECEXP (x1, 0, 1);
25522 : if (pattern237 (x7,
25523 : E_CCmode,
25524 : 17) != 0)
25525 : return -1;
25526 : x4 = XVECEXP (x1, 0, 2);
25527 : if (pattern231 (x4) != 0)
25528 : return -1;
25529 : x5 = XEXP (x2, 0);
25530 : operands[0] = x5;
25531 : x6 = XEXP (x3, 0);
25532 : operands[1] = x6;
25533 : x14 = XEXP (x3, 1);
25534 : operands[2] = x14;
25535 : switch (GET_MODE (operands[0]))
25536 : {
25537 : case E_SImode:
25538 : if (pattern572 (x3,
25539 : E_SImode) != 0
25540 : || !
25541 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25542 : (Pmode == SImode))
25543 : return -1;
25544 : return 1915; /* pro_epilogue_adjust_stack_sub_si */
25545 :
25546 : case E_DImode:
25547 : if (pattern572 (x3,
25548 : E_DImode) != 0
25549 : || !
25550 : #line 1433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25551 : (Pmode == DImode))
25552 : return -1;
25553 : return 1916; /* pro_epilogue_adjust_stack_sub_di */
25554 :
25555 : default:
25556 : return -1;
25557 : }
25558 :
25559 : case UNSPEC_VOLATILE:
25560 : return recog_436 (x1, insn, pnum_clobbers);
25561 :
25562 : default:
25563 : return -1;
25564 : }
25565 :
25566 : case CALL:
25567 : x5 = XEXP (x2, 0);
25568 : if (GET_CODE (x5) != MEM
25569 : || GET_MODE (x5) != E_QImode
25570 : || pattern388 (x1) != 0)
25571 : return -1;
25572 : x16 = XEXP (x5, 0);
25573 : operands[0] = x16;
25574 : if (!memory_operand (operands[0], E_SImode))
25575 : return -1;
25576 : x3 = XEXP (x2, 1);
25577 : operands[1] = x3;
25578 : x7 = XVECEXP (x1, 0, 1);
25579 : x17 = XEXP (x7, 1);
25580 : x19 = XEXP (x17, 1);
25581 : operands[2] = x19;
25582 : if (!immediate_operand (operands[2], E_SImode)
25583 : || !
25584 : #line 21295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25585 : (!TARGET_64BIT && !TARGET_INDIRECT_BRANCH_REGISTER))
25586 : return -1;
25587 : return 1510; /* *sibcall_pop_memory */
25588 :
25589 : default:
25590 : return -1;
25591 : }
25592 : }
25593 :
25594 : rtx_insn *
25595 : split_22 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
25596 : {
25597 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
25598 : rtx x2, x3, x4, x5, x6, x7, x8;
25599 : rtx_insn *res ATTRIBUTE_UNUSED;
25600 : x2 = XVECEXP (x1, 0, 0);
25601 : x3 = XEXP (x2, 1);
25602 : x4 = XEXP (x3, 0);
25603 : x5 = XEXP (x4, 0);
25604 : switch (GET_CODE (x5))
25605 : {
25606 : case REG:
25607 : case SUBREG:
25608 : operands[1] = x5;
25609 : if (!register_operand (operands[1], E_SImode))
25610 : return NULL;
25611 : x6 = XEXP (x2, 0);
25612 : operands[0] = x6;
25613 : if (!register_operand (operands[0], E_DImode)
25614 : || GET_MODE (x3) != E_DImode
25615 : || GET_MODE (x4) != E_DImode)
25616 : return NULL;
25617 : x7 = XEXP (x3, 1);
25618 : operands[2] = x7;
25619 : if (!x86_64_zext_immediate_operand (operands[2], E_DImode)
25620 : || !
25621 : #line 13434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25622 : (TARGET_64BIT))
25623 : return NULL;
25624 : return gen_split_292 (insn, operands);
25625 :
25626 : case ASHIFTRT:
25627 : case LSHIFTRT:
25628 : case SIGN_EXTRACT:
25629 : case ZERO_EXTRACT:
25630 : operands[3] = x5;
25631 : if (GET_MODE (x3) != E_QImode
25632 : || GET_MODE (x4) != E_QImode)
25633 : return NULL;
25634 : x8 = XEXP (x5, 0);
25635 : if (!int248_register_operand (x8, E_VOIDmode))
25636 : return NULL;
25637 : operands[2] = x8;
25638 : switch (pattern1658 (x2))
25639 : {
25640 : case 0:
25641 : if ((
25642 : #line 13626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25643 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25644 : #line 13630 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25645 : ( reload_completed
25646 : && !rtx_equal_p (operands[0], operands[1]))))
25647 : return gen_split_299 (insn, operands);
25648 : break;
25649 :
25650 : case 1:
25651 : if ((
25652 : #line 13626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25653 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25654 : #line 13630 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25655 : ( reload_completed
25656 : && !rtx_equal_p (operands[0], operands[1]))))
25657 : return gen_split_302 (insn, operands);
25658 : break;
25659 :
25660 : case 2:
25661 : if (((
25662 : #line 13626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25663 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25664 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25665 : (TARGET_64BIT)) &&
25666 : #line 13630 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25667 : ( reload_completed
25668 : && !rtx_equal_p (operands[0], operands[1]))))
25669 : return gen_split_305 (insn, operands);
25670 : break;
25671 :
25672 : default:
25673 : break;
25674 : }
25675 : operands[1] = x8;
25676 : switch (pattern1659 (x2))
25677 : {
25678 : case 0:
25679 : if (!(
25680 : #line 13655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25681 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25682 : #line 13657 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25683 : ( reload_completed)))
25684 : return NULL;
25685 : return gen_split_308 (insn, operands);
25686 :
25687 : case 1:
25688 : if (!(
25689 : #line 13655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25690 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25691 : #line 13657 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25692 : ( reload_completed)))
25693 : return NULL;
25694 : return gen_split_311 (insn, operands);
25695 :
25696 : case 2:
25697 : if (!((
25698 : #line 13655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25699 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25700 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25701 : (TARGET_64BIT)) &&
25702 : #line 13657 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25703 : ( reload_completed)))
25704 : return NULL;
25705 : return gen_split_314 (insn, operands);
25706 :
25707 : case 3:
25708 : if (!
25709 : #line 13909 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25710 : ( reload_completed))
25711 : return NULL;
25712 : return gen_split_328 (insn, operands);
25713 :
25714 : case 4:
25715 : if (!
25716 : #line 13909 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25717 : ( reload_completed))
25718 : return NULL;
25719 : return gen_split_331 (insn, operands);
25720 :
25721 : case 5:
25722 : if (!(
25723 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25724 : (TARGET_64BIT) &&
25725 : #line 13909 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25726 : ( reload_completed)))
25727 : return NULL;
25728 : return gen_split_334 (insn, operands);
25729 :
25730 : default:
25731 : return NULL;
25732 : }
25733 :
25734 : case ROTATE:
25735 : if (GET_MODE (x5) != E_SImode)
25736 : return NULL;
25737 : x8 = XEXP (x5, 0);
25738 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + -2])
25739 : return NULL;
25740 : switch (pattern1451 (x2))
25741 : {
25742 : case 0:
25743 : if (!(
25744 : #line 19942 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25745 : (TARGET_USE_BT && ix86_pre_reload_split ()) &&
25746 : #line 19944 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25747 : ( 1)))
25748 : return NULL;
25749 : return gen_split_814 (insn, operands);
25750 :
25751 : case 1:
25752 : if (!(
25753 : #line 19942 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25754 : (TARGET_USE_BT && ix86_pre_reload_split ()) &&
25755 : #line 19944 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25756 : ( 1)))
25757 : return NULL;
25758 : return gen_split_815 (insn, operands);
25759 :
25760 : default:
25761 : return NULL;
25762 : }
25763 :
25764 : default:
25765 : return NULL;
25766 : }
25767 : }
25768 :
25769 : rtx_insn *
25770 : split_28 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
25771 : {
25772 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
25773 : rtx x2, x3, x4, x5, x6, x7;
25774 : rtx_insn *res ATTRIBUTE_UNUSED;
25775 : x2 = XVECEXP (x1, 0, 0);
25776 : x3 = XEXP (x2, 1);
25777 : if (maybe_ne (SUBREG_BYTE (x3), 0))
25778 : return NULL;
25779 : x4 = XVECEXP (x1, 0, 1);
25780 : if (pattern237 (x4,
25781 : E_CCmode,
25782 : 17) != 0)
25783 : return NULL;
25784 : switch (pattern1057 (x2))
25785 : {
25786 : case 0:
25787 : x5 = XEXP (x3, 0);
25788 : x6 = XEXP (x5, 1);
25789 : operands[2] = x6;
25790 : if (general_operand (operands[2], E_QImode))
25791 : {
25792 : switch (pattern1055 (x2))
25793 : {
25794 : case 0:
25795 : if (
25796 : #line 7784 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25797 : (reload_completed
25798 : && !rtx_equal_p (operands[0], operands[1])))
25799 : return gen_split_143 (insn, operands);
25800 : break;
25801 :
25802 : case 1:
25803 : if (
25804 : #line 7784 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25805 : (reload_completed
25806 : && !rtx_equal_p (operands[0], operands[1])))
25807 : return gen_split_144 (insn, operands);
25808 : break;
25809 :
25810 : case 2:
25811 : if ((
25812 : #line 7784 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25813 : (reload_completed
25814 : && !rtx_equal_p (operands[0], operands[1])) &&
25815 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25816 : (TARGET_64BIT)))
25817 : return gen_split_145 (insn, operands);
25818 : break;
25819 :
25820 : default:
25821 : break;
25822 : }
25823 : }
25824 : if (GET_CODE (x6) != SUBREG)
25825 : return NULL;
25826 : switch (pattern1824 (x2))
25827 : {
25828 : case 0:
25829 : if (!
25830 : #line 7827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25831 : (reload_completed
25832 : && !(rtx_equal_p (operands[0], operands[1])
25833 : || (PLUS == PLUS && rtx_equal_p (operands[0], operands[2])))))
25834 : return NULL;
25835 : return gen_split_146 (insn, operands);
25836 :
25837 : case 1:
25838 : if (!
25839 : #line 7827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25840 : (reload_completed
25841 : && !(rtx_equal_p (operands[0], operands[1])
25842 : || (PLUS == PLUS && rtx_equal_p (operands[0], operands[2])))))
25843 : return NULL;
25844 : return gen_split_148 (insn, operands);
25845 :
25846 : case 2:
25847 : if (!(
25848 : #line 7827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25849 : (reload_completed
25850 : && !(rtx_equal_p (operands[0], operands[1])
25851 : || (PLUS == PLUS && rtx_equal_p (operands[0], operands[2])))) &&
25852 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25853 : (TARGET_64BIT)))
25854 : return NULL;
25855 : return gen_split_150 (insn, operands);
25856 :
25857 : default:
25858 : return NULL;
25859 : }
25860 :
25861 : case 1:
25862 : x5 = XEXP (x3, 0);
25863 : x6 = XEXP (x5, 1);
25864 : if (GET_CODE (x6) == SUBREG)
25865 : {
25866 : switch (pattern1824 (x2))
25867 : {
25868 : case 0:
25869 : if (
25870 : #line 7827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25871 : (reload_completed
25872 : && !(rtx_equal_p (operands[0], operands[1])
25873 : || (MINUS == PLUS && rtx_equal_p (operands[0], operands[2])))))
25874 : return gen_split_147 (insn, operands);
25875 : break;
25876 :
25877 : case 1:
25878 : if (
25879 : #line 7827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25880 : (reload_completed
25881 : && !(rtx_equal_p (operands[0], operands[1])
25882 : || (MINUS == PLUS && rtx_equal_p (operands[0], operands[2])))))
25883 : return gen_split_149 (insn, operands);
25884 : break;
25885 :
25886 : case 2:
25887 : if ((
25888 : #line 7827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25889 : (reload_completed
25890 : && !(rtx_equal_p (operands[0], operands[1])
25891 : || (MINUS == PLUS && rtx_equal_p (operands[0], operands[2])))) &&
25892 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25893 : (TARGET_64BIT)))
25894 : return gen_split_151 (insn, operands);
25895 : break;
25896 :
25897 : default:
25898 : break;
25899 : }
25900 : }
25901 : operands[2] = x6;
25902 : if (!general_operand (operands[2], E_QImode))
25903 : return NULL;
25904 : switch (pattern1055 (x2))
25905 : {
25906 : case 0:
25907 : if (!
25908 : #line 8658 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25909 : (reload_completed
25910 : && !(rtx_equal_p (operands[0], operands[1]))))
25911 : return NULL;
25912 : return gen_split_189 (insn, operands);
25913 :
25914 : case 1:
25915 : if (!
25916 : #line 8658 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25917 : (reload_completed
25918 : && !(rtx_equal_p (operands[0], operands[1]))))
25919 : return NULL;
25920 : return gen_split_190 (insn, operands);
25921 :
25922 : case 2:
25923 : if (!(
25924 : #line 8658 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25925 : (reload_completed
25926 : && !(rtx_equal_p (operands[0], operands[1]))) &&
25927 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25928 : (TARGET_64BIT)))
25929 : return NULL;
25930 : return gen_split_191 (insn, operands);
25931 :
25932 : default:
25933 : return NULL;
25934 : }
25935 :
25936 : case 2:
25937 : x5 = XEXP (x3, 0);
25938 : x6 = XEXP (x5, 1);
25939 : operands[2] = x6;
25940 : if (general_operand (operands[2], E_QImode))
25941 : {
25942 : switch (pattern1055 (x2))
25943 : {
25944 : case 0:
25945 : if (
25946 : #line 13957 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25947 : (reload_completed
25948 : && !(rtx_equal_p (operands[0], operands[1]))))
25949 : return gen_split_337 (insn, operands);
25950 : break;
25951 :
25952 : case 1:
25953 : if (
25954 : #line 13957 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25955 : (reload_completed
25956 : && !(rtx_equal_p (operands[0], operands[1]))))
25957 : return gen_split_340 (insn, operands);
25958 : break;
25959 :
25960 : case 2:
25961 : if ((
25962 : #line 13957 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25963 : (reload_completed
25964 : && !(rtx_equal_p (operands[0], operands[1]))) &&
25965 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25966 : (TARGET_64BIT)))
25967 : return gen_split_343 (insn, operands);
25968 : break;
25969 :
25970 : default:
25971 : break;
25972 : }
25973 : }
25974 : if (GET_CODE (x6) != SUBREG)
25975 : return NULL;
25976 : switch (pattern1824 (x2))
25977 : {
25978 : case 0:
25979 : if (!
25980 : #line 14049 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25981 : (reload_completed
25982 : && !(rtx_equal_p (operands[0], operands[1])
25983 : || rtx_equal_p (operands[0], operands[2]))))
25984 : return NULL;
25985 : return gen_split_355 (insn, operands);
25986 :
25987 : case 1:
25988 : if (!
25989 : #line 14049 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25990 : (reload_completed
25991 : && !(rtx_equal_p (operands[0], operands[1])
25992 : || rtx_equal_p (operands[0], operands[2]))))
25993 : return NULL;
25994 : return gen_split_358 (insn, operands);
25995 :
25996 : case 2:
25997 : if (!(
25998 : #line 14049 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25999 : (reload_completed
26000 : && !(rtx_equal_p (operands[0], operands[1])
26001 : || rtx_equal_p (operands[0], operands[2]))) &&
26002 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26003 : (TARGET_64BIT)))
26004 : return NULL;
26005 : return gen_split_361 (insn, operands);
26006 :
26007 : default:
26008 : return NULL;
26009 : }
26010 :
26011 : case 3:
26012 : x5 = XEXP (x3, 0);
26013 : x6 = XEXP (x5, 1);
26014 : operands[2] = x6;
26015 : if (general_operand (operands[2], E_QImode))
26016 : {
26017 : switch (pattern1055 (x2))
26018 : {
26019 : case 0:
26020 : if (
26021 : #line 13957 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26022 : (reload_completed
26023 : && !(rtx_equal_p (operands[0], operands[1]))))
26024 : return gen_split_338 (insn, operands);
26025 : break;
26026 :
26027 : case 1:
26028 : if (
26029 : #line 13957 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26030 : (reload_completed
26031 : && !(rtx_equal_p (operands[0], operands[1]))))
26032 : return gen_split_341 (insn, operands);
26033 : break;
26034 :
26035 : case 2:
26036 : if ((
26037 : #line 13957 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26038 : (reload_completed
26039 : && !(rtx_equal_p (operands[0], operands[1]))) &&
26040 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26041 : (TARGET_64BIT)))
26042 : return gen_split_344 (insn, operands);
26043 : break;
26044 :
26045 : default:
26046 : break;
26047 : }
26048 : }
26049 : if (GET_CODE (x6) != SUBREG)
26050 : return NULL;
26051 : switch (pattern1824 (x2))
26052 : {
26053 : case 0:
26054 : if (!
26055 : #line 14049 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26056 : (reload_completed
26057 : && !(rtx_equal_p (operands[0], operands[1])
26058 : || rtx_equal_p (operands[0], operands[2]))))
26059 : return NULL;
26060 : return gen_split_356 (insn, operands);
26061 :
26062 : case 1:
26063 : if (!
26064 : #line 14049 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26065 : (reload_completed
26066 : && !(rtx_equal_p (operands[0], operands[1])
26067 : || rtx_equal_p (operands[0], operands[2]))))
26068 : return NULL;
26069 : return gen_split_359 (insn, operands);
26070 :
26071 : case 2:
26072 : if (!(
26073 : #line 14049 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26074 : (reload_completed
26075 : && !(rtx_equal_p (operands[0], operands[1])
26076 : || rtx_equal_p (operands[0], operands[2]))) &&
26077 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26078 : (TARGET_64BIT)))
26079 : return NULL;
26080 : return gen_split_362 (insn, operands);
26081 :
26082 : default:
26083 : return NULL;
26084 : }
26085 :
26086 : case 4:
26087 : x5 = XEXP (x3, 0);
26088 : x6 = XEXP (x5, 1);
26089 : operands[2] = x6;
26090 : if (general_operand (operands[2], E_QImode))
26091 : {
26092 : switch (pattern1055 (x2))
26093 : {
26094 : case 0:
26095 : if (
26096 : #line 13957 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26097 : (reload_completed
26098 : && !(rtx_equal_p (operands[0], operands[1]))))
26099 : return gen_split_339 (insn, operands);
26100 : break;
26101 :
26102 : case 1:
26103 : if (
26104 : #line 13957 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26105 : (reload_completed
26106 : && !(rtx_equal_p (operands[0], operands[1]))))
26107 : return gen_split_342 (insn, operands);
26108 : break;
26109 :
26110 : case 2:
26111 : if ((
26112 : #line 13957 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26113 : (reload_completed
26114 : && !(rtx_equal_p (operands[0], operands[1]))) &&
26115 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26116 : (TARGET_64BIT)))
26117 : return gen_split_345 (insn, operands);
26118 : break;
26119 :
26120 : default:
26121 : break;
26122 : }
26123 : }
26124 : if (GET_CODE (x6) != SUBREG)
26125 : return NULL;
26126 : switch (pattern1824 (x2))
26127 : {
26128 : case 0:
26129 : if (!
26130 : #line 14049 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26131 : (reload_completed
26132 : && !(rtx_equal_p (operands[0], operands[1])
26133 : || rtx_equal_p (operands[0], operands[2]))))
26134 : return NULL;
26135 : return gen_split_357 (insn, operands);
26136 :
26137 : case 1:
26138 : if (!
26139 : #line 14049 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26140 : (reload_completed
26141 : && !(rtx_equal_p (operands[0], operands[1])
26142 : || rtx_equal_p (operands[0], operands[2]))))
26143 : return NULL;
26144 : return gen_split_360 (insn, operands);
26145 :
26146 : case 2:
26147 : if (!(
26148 : #line 14049 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26149 : (reload_completed
26150 : && !(rtx_equal_p (operands[0], operands[1])
26151 : || rtx_equal_p (operands[0], operands[2]))) &&
26152 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26153 : (TARGET_64BIT)))
26154 : return NULL;
26155 : return gen_split_363 (insn, operands);
26156 :
26157 : default:
26158 : return NULL;
26159 : }
26160 :
26161 : case 5:
26162 : if (!
26163 : #line 15464 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26164 : (reload_completed
26165 : && !(rtx_equal_p (operands[0], operands[1]))))
26166 : return NULL;
26167 : return gen_split_500 (insn, operands);
26168 :
26169 : case 6:
26170 : if (!
26171 : #line 15464 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26172 : (reload_completed
26173 : && !(rtx_equal_p (operands[0], operands[1]))))
26174 : return NULL;
26175 : return gen_split_501 (insn, operands);
26176 :
26177 : case 7:
26178 : if (!(
26179 : #line 15464 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26180 : (reload_completed
26181 : && !(rtx_equal_p (operands[0], operands[1]))) &&
26182 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26183 : (TARGET_64BIT)))
26184 : return NULL;
26185 : return gen_split_502 (insn, operands);
26186 :
26187 : case 8:
26188 : if (!
26189 : #line 17508 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26190 : (reload_completed
26191 : && !(rtx_equal_p (operands[0], operands[1]))))
26192 : return NULL;
26193 : return gen_split_592 (insn, operands);
26194 :
26195 : case 9:
26196 : if (!
26197 : #line 17508 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26198 : (reload_completed
26199 : && !(rtx_equal_p (operands[0], operands[1]))))
26200 : return NULL;
26201 : return gen_split_593 (insn, operands);
26202 :
26203 : case 10:
26204 : if (!(
26205 : #line 17508 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26206 : (reload_completed
26207 : && !(rtx_equal_p (operands[0], operands[1]))) &&
26208 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26209 : (TARGET_64BIT)))
26210 : return NULL;
26211 : return gen_split_594 (insn, operands);
26212 :
26213 : case 11:
26214 : x7 = XEXP (x2, 0);
26215 : operands[0] = x7;
26216 : switch (pattern1247 (x3))
26217 : {
26218 : case 0:
26219 : if (((
26220 : #line 17736 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26221 : (UINTVAL (operands[2]) < 4 * BITS_PER_UNIT) &&
26222 : #line 1270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26223 : (!TARGET_64BIT)) &&
26224 : #line 17738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26225 : ( reload_completed)))
26226 : return gen_split_611 (insn, operands);
26227 : break;
26228 :
26229 : case 1:
26230 : if (((
26231 : #line 17736 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26232 : (UINTVAL (operands[2]) < 8 * BITS_PER_UNIT) &&
26233 : #line 1271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26234 : (TARGET_64BIT)) &&
26235 : #line 17738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26236 : ( reload_completed)))
26237 : return gen_split_613 (insn, operands);
26238 : break;
26239 :
26240 : default:
26241 : break;
26242 : }
26243 : x5 = XEXP (x3, 0);
26244 : if (GET_MODE (x5) != E_QImode)
26245 : return NULL;
26246 : switch (pattern1056 (x2))
26247 : {
26248 : case 0:
26249 : if (!
26250 : #line 18776 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26251 : (reload_completed
26252 : && !(rtx_equal_p (operands[0], operands[1]))))
26253 : return NULL;
26254 : return gen_split_638 (insn, operands);
26255 :
26256 : case 1:
26257 : if (!
26258 : #line 18776 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26259 : (reload_completed
26260 : && !(rtx_equal_p (operands[0], operands[1]))))
26261 : return NULL;
26262 : return gen_split_640 (insn, operands);
26263 :
26264 : case 2:
26265 : if (!(
26266 : #line 18776 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26267 : (reload_completed
26268 : && !(rtx_equal_p (operands[0], operands[1]))) &&
26269 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26270 : (TARGET_64BIT)))
26271 : return NULL;
26272 : return gen_split_642 (insn, operands);
26273 :
26274 : default:
26275 : return NULL;
26276 : }
26277 :
26278 : case 12:
26279 : x7 = XEXP (x2, 0);
26280 : operands[0] = x7;
26281 : switch (pattern1247 (x3))
26282 : {
26283 : case 0:
26284 : if (((
26285 : #line 17736 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26286 : (UINTVAL (operands[2]) < 4 * BITS_PER_UNIT) &&
26287 : #line 1270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26288 : (!TARGET_64BIT)) &&
26289 : #line 17738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26290 : ( reload_completed)))
26291 : return gen_split_612 (insn, operands);
26292 : break;
26293 :
26294 : case 1:
26295 : if (((
26296 : #line 17736 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26297 : (UINTVAL (operands[2]) < 8 * BITS_PER_UNIT) &&
26298 : #line 1271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26299 : (TARGET_64BIT)) &&
26300 : #line 17738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26301 : ( reload_completed)))
26302 : return gen_split_614 (insn, operands);
26303 : break;
26304 :
26305 : default:
26306 : break;
26307 : }
26308 : x5 = XEXP (x3, 0);
26309 : if (GET_MODE (x5) != E_QImode)
26310 : return NULL;
26311 : switch (pattern1056 (x2))
26312 : {
26313 : case 0:
26314 : if (!
26315 : #line 18776 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26316 : (reload_completed
26317 : && !(rtx_equal_p (operands[0], operands[1]))))
26318 : return NULL;
26319 : return gen_split_639 (insn, operands);
26320 :
26321 : case 1:
26322 : if (!
26323 : #line 18776 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26324 : (reload_completed
26325 : && !(rtx_equal_p (operands[0], operands[1]))))
26326 : return NULL;
26327 : return gen_split_641 (insn, operands);
26328 :
26329 : case 2:
26330 : if (!(
26331 : #line 18776 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26332 : (reload_completed
26333 : && !(rtx_equal_p (operands[0], operands[1]))) &&
26334 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26335 : (TARGET_64BIT)))
26336 : return NULL;
26337 : return gen_split_643 (insn, operands);
26338 :
26339 : default:
26340 : return NULL;
26341 : }
26342 :
26343 : default:
26344 : return NULL;
26345 : }
26346 : }
26347 :
26348 : rtx_insn *
26349 : split_36 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
26350 : {
26351 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
26352 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
26353 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
26354 : rtx x18, x19, x20, x21;
26355 : rtx_insn *res ATTRIBUTE_UNUSED;
26356 : x2 = XVECEXP (x1, 0, 0);
26357 : switch (GET_CODE (x2))
26358 : {
26359 : case SET:
26360 : x3 = XEXP (x2, 1);
26361 : switch (GET_CODE (x3))
26362 : {
26363 : case CONST_INT:
26364 : case CONST_DOUBLE:
26365 : case CONST_VECTOR:
26366 : operands[1] = x3;
26367 : if (pattern346 (x1) == 0)
26368 : {
26369 : switch (GET_MODE (operands[0]))
26370 : {
26371 : case E_HImode:
26372 : if (memory_operand (operands[0], E_HImode)
26373 : && const0_operand (operands[1], E_HImode)
26374 : && (
26375 : #line 2479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26376 : (reload_completed) &&
26377 : #line 2481 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26378 : ( !(optimize_insn_for_size_p () && optimize_size > 1))))
26379 : return gen_split_14 (insn, operands);
26380 : if (nonimmediate_operand (operands[0], E_HImode)
26381 : && constm1_operand (operands[1], E_HImode)
26382 : && (
26383 : #line 2494 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26384 : (reload_completed) &&
26385 : #line 2496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26386 : ( !(optimize_insn_for_size_p () && optimize_size > 1))))
26387 : return gen_split_17 (insn, operands);
26388 : break;
26389 :
26390 : case E_SImode:
26391 : if (memory_operand (operands[0], E_SImode)
26392 : && const0_operand (operands[1], E_SImode)
26393 : && (
26394 : #line 2479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26395 : (reload_completed) &&
26396 : #line 2481 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26397 : ( !(optimize_insn_for_size_p () && optimize_size > 1))))
26398 : return gen_split_15 (insn, operands);
26399 : if (nonimmediate_operand (operands[0], E_SImode)
26400 : && constm1_operand (operands[1], E_SImode)
26401 : && (
26402 : #line 2494 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26403 : (reload_completed) &&
26404 : #line 2496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26405 : ( !(optimize_insn_for_size_p () && optimize_size > 1))))
26406 : return gen_split_18 (insn, operands);
26407 : break;
26408 :
26409 : case E_DImode:
26410 : if (memory_operand (operands[0], E_DImode)
26411 : && const0_operand (operands[1], E_DImode)
26412 : && ((
26413 : #line 2479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26414 : (reload_completed) &&
26415 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26416 : (TARGET_64BIT)) &&
26417 : #line 2481 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26418 : ( !(optimize_insn_for_size_p () && optimize_size > 1))))
26419 : return gen_split_16 (insn, operands);
26420 : if (nonimmediate_operand (operands[0], E_DImode)
26421 : && constm1_operand (operands[1], E_DImode)
26422 : && ((
26423 : #line 2494 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26424 : (reload_completed) &&
26425 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26426 : (TARGET_64BIT)) &&
26427 : #line 2496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26428 : ( !(optimize_insn_for_size_p () && optimize_size > 1))))
26429 : return gen_split_19 (insn, operands);
26430 : break;
26431 :
26432 : default:
26433 : break;
26434 : }
26435 : }
26436 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
26437 : return NULL;
26438 : x4 = XEXP (x2, 0);
26439 : if (GET_CODE (x4) != ZERO_EXTRACT
26440 : || GET_MODE (x4) != E_HImode)
26441 : return NULL;
26442 : x5 = XEXP (x4, 1);
26443 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
26444 : return NULL;
26445 : x6 = XVECEXP (x1, 0, 1);
26446 : if (pattern237 (x6,
26447 : E_CCmode,
26448 : 17) != 0)
26449 : return NULL;
26450 : x7 = XEXP (x4, 0);
26451 : operands[0] = x7;
26452 : x8 = XEXP (x4, 2);
26453 : operands[1] = x8;
26454 : if (!register_operand (operands[1], E_QImode))
26455 : return NULL;
26456 : switch (GET_MODE (operands[0]))
26457 : {
26458 : case E_QImode:
26459 : if (nonimmediate_operand (operands[0], E_QImode)
26460 : && (
26461 : #line 19963 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26462 : (TARGET_USE_BT && ix86_pre_reload_split ()) &&
26463 : #line 19965 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26464 : ( MEM_P (operands[0]))))
26465 : return gen_split_816 (insn, operands);
26466 : if (!register_operand (operands[0], E_QImode)
26467 : || !
26468 : #line 19987 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26469 : (TARGET_USE_BT && ix86_pre_reload_split ()))
26470 : return NULL;
26471 : return gen_split_818 (insn, operands);
26472 :
26473 : case E_HImode:
26474 : if (nonimmediate_operand (operands[0], E_HImode)
26475 : && (
26476 : #line 19963 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26477 : (TARGET_USE_BT && ix86_pre_reload_split ()) &&
26478 : #line 19965 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26479 : ( MEM_P (operands[0]))))
26480 : return gen_split_817 (insn, operands);
26481 : if (!register_operand (operands[0], E_HImode)
26482 : || !
26483 : #line 19987 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26484 : (TARGET_USE_BT && ix86_pre_reload_split ()))
26485 : return NULL;
26486 : return gen_split_819 (insn, operands);
26487 :
26488 : default:
26489 : return NULL;
26490 : }
26491 :
26492 : case ASHIFTRT:
26493 : case LSHIFTRT:
26494 : case SIGN_EXTRACT:
26495 : case ZERO_EXTRACT:
26496 : x6 = XVECEXP (x1, 0, 1);
26497 : if (pattern237 (x6,
26498 : E_CCmode,
26499 : 17) != 0)
26500 : return NULL;
26501 : switch (GET_CODE (x3))
26502 : {
26503 : case SIGN_EXTRACT:
26504 : res = split_15 (x1, insn);
26505 : if (res != NULL_RTX)
26506 : return res;
26507 : break;
26508 :
26509 : case LSHIFTRT:
26510 : res = split_16 (x1, insn);
26511 : if (res != NULL_RTX)
26512 : return res;
26513 : break;
26514 :
26515 : case ASHIFTRT:
26516 : res = split_17 (x1, insn);
26517 : if (res != NULL_RTX)
26518 : return res;
26519 : break;
26520 :
26521 : case ZERO_EXTRACT:
26522 : res = split_18 (x1, insn);
26523 : if (res != NULL_RTX)
26524 : return res;
26525 : break;
26526 :
26527 : default:
26528 : break;
26529 : }
26530 : x4 = XEXP (x2, 0);
26531 : if (GET_CODE (x4) != ZERO_EXTRACT)
26532 : return NULL;
26533 : x5 = XEXP (x4, 1);
26534 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
26535 : return NULL;
26536 : x8 = XEXP (x4, 2);
26537 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
26538 : return NULL;
26539 : x7 = XEXP (x4, 0);
26540 : operands[0] = x7;
26541 : if (!int248_register_operand (operands[0], E_VOIDmode))
26542 : return NULL;
26543 : operands[3] = x3;
26544 : x9 = XEXP (x3, 0);
26545 : switch (GET_CODE (x9))
26546 : {
26547 : case AND:
26548 : switch (pattern1505 (x2))
26549 : {
26550 : case 0:
26551 : if (!(
26552 : #line 14083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26553 : (GET_MODE (operands[1]) == GET_MODE (operands[2])) &&
26554 : #line 14087 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26555 : ( reload_completed
26556 : && !(rtx_equal_p (operands[0], operands[1])
26557 : || rtx_equal_p (operands[0], operands[2])))))
26558 : return NULL;
26559 : return gen_split_364 (insn, operands);
26560 :
26561 : case 1:
26562 : if (!(
26563 : #line 14083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26564 : (GET_MODE (operands[1]) == GET_MODE (operands[2])) &&
26565 : #line 14087 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26566 : ( reload_completed
26567 : && !(rtx_equal_p (operands[0], operands[1])
26568 : || rtx_equal_p (operands[0], operands[2])))))
26569 : return NULL;
26570 : return gen_split_367 (insn, operands);
26571 :
26572 : case 2:
26573 : if (!((
26574 : #line 14083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26575 : (GET_MODE (operands[1]) == GET_MODE (operands[2])) &&
26576 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26577 : (TARGET_64BIT)) &&
26578 : #line 14087 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26579 : ( reload_completed
26580 : && !(rtx_equal_p (operands[0], operands[1])
26581 : || rtx_equal_p (operands[0], operands[2])))))
26582 : return NULL;
26583 : return gen_split_370 (insn, operands);
26584 :
26585 : default:
26586 : return NULL;
26587 : }
26588 :
26589 : case IOR:
26590 : switch (pattern1505 (x2))
26591 : {
26592 : case 0:
26593 : if (!(
26594 : #line 14083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26595 : (GET_MODE (operands[1]) == GET_MODE (operands[2])) &&
26596 : #line 14087 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26597 : ( reload_completed
26598 : && !(rtx_equal_p (operands[0], operands[1])
26599 : || rtx_equal_p (operands[0], operands[2])))))
26600 : return NULL;
26601 : return gen_split_365 (insn, operands);
26602 :
26603 : case 1:
26604 : if (!(
26605 : #line 14083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26606 : (GET_MODE (operands[1]) == GET_MODE (operands[2])) &&
26607 : #line 14087 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26608 : ( reload_completed
26609 : && !(rtx_equal_p (operands[0], operands[1])
26610 : || rtx_equal_p (operands[0], operands[2])))))
26611 : return NULL;
26612 : return gen_split_368 (insn, operands);
26613 :
26614 : case 2:
26615 : if (!((
26616 : #line 14083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26617 : (GET_MODE (operands[1]) == GET_MODE (operands[2])) &&
26618 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26619 : (TARGET_64BIT)) &&
26620 : #line 14087 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26621 : ( reload_completed
26622 : && !(rtx_equal_p (operands[0], operands[1])
26623 : || rtx_equal_p (operands[0], operands[2])))))
26624 : return NULL;
26625 : return gen_split_371 (insn, operands);
26626 :
26627 : default:
26628 : return NULL;
26629 : }
26630 :
26631 : case XOR:
26632 : switch (pattern1505 (x2))
26633 : {
26634 : case 0:
26635 : if (!(
26636 : #line 14083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26637 : (GET_MODE (operands[1]) == GET_MODE (operands[2])) &&
26638 : #line 14087 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26639 : ( reload_completed
26640 : && !(rtx_equal_p (operands[0], operands[1])
26641 : || rtx_equal_p (operands[0], operands[2])))))
26642 : return NULL;
26643 : return gen_split_366 (insn, operands);
26644 :
26645 : case 1:
26646 : if (!(
26647 : #line 14083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26648 : (GET_MODE (operands[1]) == GET_MODE (operands[2])) &&
26649 : #line 14087 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26650 : ( reload_completed
26651 : && !(rtx_equal_p (operands[0], operands[1])
26652 : || rtx_equal_p (operands[0], operands[2])))))
26653 : return NULL;
26654 : return gen_split_369 (insn, operands);
26655 :
26656 : case 2:
26657 : if (!((
26658 : #line 14083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26659 : (GET_MODE (operands[1]) == GET_MODE (operands[2])) &&
26660 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26661 : (TARGET_64BIT)) &&
26662 : #line 14087 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26663 : ( reload_completed
26664 : && !(rtx_equal_p (operands[0], operands[1])
26665 : || rtx_equal_p (operands[0], operands[2])))))
26666 : return NULL;
26667 : return gen_split_372 (insn, operands);
26668 :
26669 : default:
26670 : return NULL;
26671 : }
26672 :
26673 : default:
26674 : return NULL;
26675 : }
26676 :
26677 : case ZERO_EXTEND:
26678 : return split_32 (x1, insn);
26679 :
26680 : case FIX:
26681 : x6 = XVECEXP (x1, 0, 1);
26682 : if (pattern357 (x6) != 0)
26683 : return NULL;
26684 : x4 = XEXP (x2, 0);
26685 : operands[0] = x4;
26686 : x9 = XEXP (x3, 0);
26687 : operands[1] = x9;
26688 : if (!register_operand (operands[1], E_VOIDmode))
26689 : return NULL;
26690 : switch (pattern554 (x3))
26691 : {
26692 : case 0:
26693 : if (!(
26694 : #line 6141 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26695 : (X87_FLOAT_MODE_P (GET_MODE (operands[1]))
26696 : && !TARGET_FISTTP
26697 : && !(SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
26698 : && (TARGET_64BIT || HImode != DImode))
26699 : && ix86_pre_reload_split ()) &&
26700 : #line 6147 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26701 : ( 1)))
26702 : return NULL;
26703 : return gen_split_82 (insn, operands);
26704 :
26705 : case 1:
26706 : if (!(
26707 : #line 6141 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26708 : (X87_FLOAT_MODE_P (GET_MODE (operands[1]))
26709 : && !TARGET_FISTTP
26710 : && !(SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
26711 : && (TARGET_64BIT || SImode != DImode))
26712 : && ix86_pre_reload_split ()) &&
26713 : #line 6147 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26714 : ( 1)))
26715 : return NULL;
26716 : return gen_split_83 (insn, operands);
26717 :
26718 : case 2:
26719 : if (!(
26720 : #line 6141 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26721 : (X87_FLOAT_MODE_P (GET_MODE (operands[1]))
26722 : && !TARGET_FISTTP
26723 : && !(SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
26724 : && (TARGET_64BIT || DImode != DImode))
26725 : && ix86_pre_reload_split ()) &&
26726 : #line 6147 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26727 : ( 1)))
26728 : return NULL;
26729 : return gen_split_84 (insn, operands);
26730 :
26731 : default:
26732 : return NULL;
26733 : }
26734 :
26735 : case MULT:
26736 : if (pattern346 (x1) != 0)
26737 : return NULL;
26738 : x9 = XEXP (x3, 0);
26739 : switch (GET_CODE (x9))
26740 : {
26741 : case REG:
26742 : if (!rtx_equal_p (x9, operands[0]))
26743 : return NULL;
26744 : x10 = XEXP (x3, 1);
26745 : operands[1] = x10;
26746 : switch (GET_MODE (operands[0]))
26747 : {
26748 : case E_SImode:
26749 : if (!general_reg_operand (operands[0], E_SImode)
26750 : || GET_MODE (x3) != E_SImode
26751 : || !const1248_operand (operands[1], E_SImode)
26752 : || !
26753 : #line 6572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26754 : (reload_completed))
26755 : return NULL;
26756 : return gen_split_100 (insn, operands);
26757 :
26758 : case E_DImode:
26759 : if (!general_reg_operand (operands[0], E_DImode)
26760 : || GET_MODE (x3) != E_DImode
26761 : || !const1248_operand (operands[1], E_DImode)
26762 : || !(
26763 : #line 6572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26764 : (reload_completed) &&
26765 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26766 : (TARGET_64BIT)))
26767 : return NULL;
26768 : return gen_split_101 (insn, operands);
26769 :
26770 : default:
26771 : return NULL;
26772 : }
26773 :
26774 : case ZERO_EXTEND:
26775 : x10 = XEXP (x3, 1);
26776 : if (GET_CODE (x10) != ZERO_EXTEND)
26777 : return NULL;
26778 : x11 = XEXP (x9, 0);
26779 : operands[1] = x11;
26780 : x12 = XEXP (x10, 0);
26781 : operands[2] = x12;
26782 : switch (GET_MODE (operands[0]))
26783 : {
26784 : case E_DImode:
26785 : if (pattern566 (x3,
26786 : E_SImode,
26787 : E_DImode) != 0
26788 : || !(
26789 : #line 11832 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26790 : (TARGET_BMI2 && reload_completed
26791 : && REGNO (operands[1]) == DX_REG) &&
26792 : #line 1270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26793 : (!TARGET_64BIT)))
26794 : return NULL;
26795 : return gen_split_244 (insn, operands);
26796 :
26797 : case E_TImode:
26798 : if (pattern566 (x3,
26799 : E_DImode,
26800 : E_TImode) != 0
26801 : || !(
26802 : #line 11832 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26803 : (TARGET_BMI2 && reload_completed
26804 : && REGNO (operands[1]) == DX_REG) &&
26805 : #line 1271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26806 : (TARGET_64BIT)))
26807 : return NULL;
26808 : return gen_split_245 (insn, operands);
26809 :
26810 : default:
26811 : return NULL;
26812 : }
26813 :
26814 : default:
26815 : return NULL;
26816 : }
26817 :
26818 : case PLUS:
26819 : return split_29 (x1, insn);
26820 :
26821 : case SUBREG:
26822 : return split_28 (x1, insn);
26823 :
26824 : case NE:
26825 : case EQ:
26826 : case GE:
26827 : case GT:
26828 : case LE:
26829 : case LT:
26830 : case LTGT:
26831 : case GEU:
26832 : case GTU:
26833 : case LEU:
26834 : case LTU:
26835 : case UNORDERED:
26836 : case ORDERED:
26837 : case UNEQ:
26838 : case UNGE:
26839 : case UNGT:
26840 : case UNLE:
26841 : case UNLT:
26842 : if (GET_CODE (x3) == EQ)
26843 : {
26844 : x9 = XEXP (x3, 0);
26845 : switch (GET_CODE (x9))
26846 : {
26847 : case PLUS:
26848 : switch (pattern736 (x1,
26849 : PLUS))
26850 : {
26851 : case 0:
26852 : if (((
26853 : #line 7954 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26854 : (ix86_binary_operator_ok (PLUS, DImode, operands, TARGET_APX_NDD)) &&
26855 : #line 1270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26856 : (!TARGET_64BIT)) &&
26857 : #line 7956 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26858 : ( reload_completed)))
26859 : return gen_split_152 (insn, operands);
26860 : break;
26861 :
26862 : case 1:
26863 : if (((
26864 : #line 7954 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26865 : (ix86_binary_operator_ok (PLUS, TImode, operands, TARGET_APX_NDD)) &&
26866 : #line 1271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26867 : (TARGET_64BIT)) &&
26868 : #line 7956 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26869 : ( reload_completed)))
26870 : return gen_split_153 (insn, operands);
26871 : break;
26872 :
26873 : case 2:
26874 : if (((
26875 : #line 8004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26876 : (ix86_binary_operator_ok (PLUS, DImode, operands, TARGET_APX_NDD)
26877 : && CONST_SCALAR_INT_P (operands[2])
26878 : && rtx_equal_p (operands[2], operands[3])) &&
26879 : #line 1270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26880 : (!TARGET_64BIT)) &&
26881 : #line 8008 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26882 : ( reload_completed)))
26883 : return gen_split_154 (insn, operands);
26884 : break;
26885 :
26886 : case 3:
26887 : if (((
26888 : #line 8004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26889 : (ix86_binary_operator_ok (PLUS, TImode, operands, TARGET_APX_NDD)
26890 : && CONST_SCALAR_INT_P (operands[2])
26891 : && rtx_equal_p (operands[2], operands[3])) &&
26892 : #line 1271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26893 : (TARGET_64BIT)) &&
26894 : #line 8008 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26895 : ( reload_completed)))
26896 : return gen_split_155 (insn, operands);
26897 : break;
26898 :
26899 : default:
26900 : break;
26901 : }
26902 : break;
26903 :
26904 : case MINUS:
26905 : switch (pattern736 (x1,
26906 : MINUS))
26907 : {
26908 : case 0:
26909 : if (((
26910 : #line 8778 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26911 : (ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)) &&
26912 : #line 1270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26913 : (!TARGET_64BIT)) &&
26914 : #line 8780 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26915 : ( reload_completed)))
26916 : return gen_split_192 (insn, operands);
26917 : break;
26918 :
26919 : case 1:
26920 : if (((
26921 : #line 8778 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26922 : (ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)) &&
26923 : #line 1271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26924 : (TARGET_64BIT)) &&
26925 : #line 8780 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26926 : ( reload_completed)))
26927 : return gen_split_193 (insn, operands);
26928 : break;
26929 :
26930 : case 2:
26931 : if (((
26932 : #line 8826 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26933 : (ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)
26934 : && CONST_SCALAR_INT_P (operands[2])
26935 : && rtx_equal_p (operands[2], operands[3])) &&
26936 : #line 1270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26937 : (!TARGET_64BIT)) &&
26938 : #line 8830 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26939 : ( reload_completed)))
26940 : return gen_split_194 (insn, operands);
26941 : break;
26942 :
26943 : case 3:
26944 : if (((
26945 : #line 8826 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26946 : (ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)
26947 : && CONST_SCALAR_INT_P (operands[2])
26948 : && rtx_equal_p (operands[2], operands[3])) &&
26949 : #line 1271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26950 : (TARGET_64BIT)) &&
26951 : #line 8830 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26952 : ( reload_completed)))
26953 : return gen_split_195 (insn, operands);
26954 : break;
26955 :
26956 : default:
26957 : break;
26958 : }
26959 : break;
26960 :
26961 : case ZERO_EXTRACT:
26962 : switch (pattern705 (x1))
26963 : {
26964 : case 0:
26965 : if ((
26966 : #line 20422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26967 : (TARGET_USE_BT && ix86_pre_reload_split ()) &&
26968 : #line 20424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26969 : ( 1)))
26970 : return gen_split_846 (insn, operands);
26971 : break;
26972 :
26973 : case 1:
26974 : if (((
26975 : #line 20422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26976 : (TARGET_USE_BT && ix86_pre_reload_split ()) &&
26977 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26978 : (TARGET_64BIT)) &&
26979 : #line 20424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26980 : ( 1)))
26981 : return gen_split_847 (insn, operands);
26982 : break;
26983 :
26984 : default:
26985 : break;
26986 : }
26987 : break;
26988 :
26989 : default:
26990 : break;
26991 : }
26992 : }
26993 : operands[1] = x3;
26994 : switch (pattern373 (x1))
26995 : {
26996 : case 0:
26997 : if (!(
26998 : #line 20536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26999 : (!TARGET_PARTIAL_REG_STALL
27000 : && TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)) &&
27001 : #line 20539 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27002 : ( reload_completed)))
27003 : return NULL;
27004 : return gen_split_856 (insn, operands);
27005 :
27006 : case 1:
27007 : if (!(
27008 : #line 20536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27009 : (!TARGET_PARTIAL_REG_STALL
27010 : && TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)) &&
27011 : #line 20539 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27012 : ( reload_completed)))
27013 : return NULL;
27014 : return gen_split_857 (insn, operands);
27015 :
27016 : default:
27017 : return NULL;
27018 : }
27019 :
27020 : case MINUS:
27021 : x6 = XVECEXP (x1, 0, 1);
27022 : if (pattern237 (x6,
27023 : E_CCmode,
27024 : 17) != 0)
27025 : return NULL;
27026 : x9 = XEXP (x3, 0);
27027 : switch (GET_CODE (x9))
27028 : {
27029 : case CONST_INT:
27030 : case CONST_WIDE_INT:
27031 : case CONST_POLY_INT:
27032 : case CONST_FIXED:
27033 : case CONST_DOUBLE:
27034 : case CONST_VECTOR:
27035 : case CONST:
27036 : case REG:
27037 : case SUBREG:
27038 : case MEM:
27039 : case LABEL_REF:
27040 : case SYMBOL_REF:
27041 : case HIGH:
27042 : operands[1] = x9;
27043 : res = split_20 (x1, insn);
27044 : if (res != NULL_RTX)
27045 : return res;
27046 : if (GET_CODE (x9) != SUBREG)
27047 : return NULL;
27048 : switch (pattern1066 (x2))
27049 : {
27050 : case 0:
27051 : if (!(
27052 : #line 8529 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27053 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
27054 : #line 8531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27055 : ( reload_completed)))
27056 : return NULL;
27057 : return gen_split_183 (insn, operands);
27058 :
27059 : case 1:
27060 : if (!(
27061 : #line 8529 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27062 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
27063 : #line 8531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27064 : ( reload_completed)))
27065 : return NULL;
27066 : return gen_split_184 (insn, operands);
27067 :
27068 : case 2:
27069 : if (!((
27070 : #line 8529 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27071 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
27072 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27073 : (TARGET_64BIT)) &&
27074 : #line 8531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27075 : ( reload_completed)))
27076 : return NULL;
27077 : return gen_split_185 (insn, operands);
27078 :
27079 : case 3:
27080 : if (!
27081 : #line 8624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27082 : ( reload_completed))
27083 : return NULL;
27084 : return gen_split_186 (insn, operands);
27085 :
27086 : case 4:
27087 : if (!
27088 : #line 8624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27089 : ( reload_completed))
27090 : return NULL;
27091 : return gen_split_187 (insn, operands);
27092 :
27093 : case 5:
27094 : if (!(
27095 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27096 : (TARGET_64BIT) &&
27097 : #line 8624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27098 : ( reload_completed)))
27099 : return NULL;
27100 : return gen_split_188 (insn, operands);
27101 :
27102 : default:
27103 : return NULL;
27104 : }
27105 :
27106 : case MINUS:
27107 : x13 = XEXP (x9, 1);
27108 : if (GET_CODE (x13) != EQ)
27109 : return NULL;
27110 : x14 = XEXP (x13, 1);
27111 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
27112 : return NULL;
27113 : x4 = XEXP (x2, 0);
27114 : operands[0] = x4;
27115 : x11 = XEXP (x9, 0);
27116 : operands[1] = x11;
27117 : x15 = XEXP (x13, 0);
27118 : operands[3] = x15;
27119 : if (!int_nonimmediate_operand (operands[3], E_VOIDmode))
27120 : return NULL;
27121 : x10 = XEXP (x3, 1);
27122 : operands[2] = x10;
27123 : switch (GET_MODE (operands[0]))
27124 : {
27125 : case E_QImode:
27126 : if (pattern1588 (x3,
27127 : E_QImode) != 0
27128 : || !(
27129 : #line 11021 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27130 : (ix86_binary_operator_ok (MINUS, QImode, operands, TARGET_APX_NDD)
27131 : && ix86_pre_reload_split ()) &&
27132 : #line 11024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27133 : ( 1)))
27134 : return NULL;
27135 : return gen_split_224 (insn, operands);
27136 :
27137 : case E_HImode:
27138 : if (pattern1588 (x3,
27139 : E_HImode) != 0
27140 : || !(
27141 : #line 11021 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27142 : (ix86_binary_operator_ok (MINUS, HImode, operands, TARGET_APX_NDD)
27143 : && ix86_pre_reload_split ()) &&
27144 : #line 11024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27145 : ( 1)))
27146 : return NULL;
27147 : return gen_split_225 (insn, operands);
27148 :
27149 : case E_SImode:
27150 : if (pattern1589 (x3,
27151 : E_SImode) != 0
27152 : || !(
27153 : #line 11021 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27154 : (ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)
27155 : && ix86_pre_reload_split ()) &&
27156 : #line 11024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27157 : ( 1)))
27158 : return NULL;
27159 : return gen_split_226 (insn, operands);
27160 :
27161 : case E_DImode:
27162 : if (pattern1589 (x3,
27163 : E_DImode) != 0
27164 : || !((
27165 : #line 11021 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27166 : (ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)
27167 : && ix86_pre_reload_split ()) &&
27168 : #line 1196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27169 : (TARGET_64BIT)) &&
27170 : #line 11024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27171 : ( 1)))
27172 : return NULL;
27173 : return gen_split_227 (insn, operands);
27174 :
27175 : default:
27176 : return NULL;
27177 : }
27178 :
27179 : default:
27180 : return NULL;
27181 : }
27182 :
27183 : case IF_THEN_ELSE:
27184 : x9 = XEXP (x3, 0);
27185 : if (!bt_comparison_operator (x9, E_VOIDmode))
27186 : return NULL;
27187 : x13 = XEXP (x9, 1);
27188 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
27189 : return NULL;
27190 : switch (pattern711 (x1))
27191 : {
27192 : case 0:
27193 : x11 = XEXP (x9, 0);
27194 : operands[2] = x11;
27195 : x10 = XEXP (x3, 1);
27196 : if (GET_CODE (x10) != PLUS)
27197 : return NULL;
27198 : x16 = XEXP (x10, 1);
27199 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + -1])
27200 : return NULL;
27201 : x4 = XEXP (x2, 0);
27202 : operands[0] = x4;
27203 : operands[1] = x9;
27204 : switch (pattern1599 (x3))
27205 : {
27206 : case 0:
27207 : if (!(
27208 : #line 9094 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27209 : (TARGET_CMOVE) &&
27210 : #line 9096 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27211 : ( reload_completed)))
27212 : return NULL;
27213 : return gen_split_196 (insn, operands);
27214 :
27215 : case 1:
27216 : if (!(
27217 : #line 9094 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27218 : (TARGET_CMOVE) &&
27219 : #line 9096 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27220 : ( reload_completed)))
27221 : return NULL;
27222 : return gen_split_197 (insn, operands);
27223 :
27224 : case 2:
27225 : if (!((
27226 : #line 9094 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27227 : (TARGET_CMOVE) &&
27228 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27229 : (TARGET_64BIT)) &&
27230 : #line 9096 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27231 : ( reload_completed)))
27232 : return NULL;
27233 : return gen_split_198 (insn, operands);
27234 :
27235 : default:
27236 : return NULL;
27237 : }
27238 :
27239 : case 1:
27240 : x11 = XEXP (x9, 0);
27241 : x17 = XEXP (x11, 1);
27242 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
27243 : return NULL;
27244 : switch (pattern1355 (x2))
27245 : {
27246 : case 0:
27247 : x18 = XEXP (x11, 2);
27248 : operands[2] = x18;
27249 : switch (pattern1551 (x2))
27250 : {
27251 : case 0:
27252 : if ((
27253 : #line 20192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27254 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
27255 : && (CONST_INT_P (operands[2])
27256 : ? (INTVAL (operands[2]) < GET_MODE_BITSIZE (SImode)
27257 : && INTVAL (operands[2])
27258 : >= (optimize_function_for_size_p (cfun) ? 8 : 32))
27259 : : !memory_operand (operands[1], SImode))
27260 : && ix86_pre_reload_split ()) &&
27261 : #line 20200 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27262 : ( 1)))
27263 : return gen_split_822 (insn, operands);
27264 : break;
27265 :
27266 : case 1:
27267 : if (((
27268 : #line 20192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27269 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
27270 : && (CONST_INT_P (operands[2])
27271 : ? (INTVAL (operands[2]) < GET_MODE_BITSIZE (DImode)
27272 : && INTVAL (operands[2])
27273 : >= (optimize_function_for_size_p (cfun) ? 8 : 32))
27274 : : !memory_operand (operands[1], DImode))
27275 : && ix86_pre_reload_split ()) &&
27276 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27277 : (TARGET_64BIT)) &&
27278 : #line 20200 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27279 : ( 1)))
27280 : return gen_split_823 (insn, operands);
27281 : break;
27282 :
27283 : case 2:
27284 : if ((
27285 : #line 20335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27286 : (TARGET_USE_BT && TARGET_CMOVE
27287 : && ix86_pre_reload_split ()) &&
27288 : #line 20338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27289 : ( 1)))
27290 : return gen_split_834 (insn, operands);
27291 : break;
27292 :
27293 : case 3:
27294 : if (((
27295 : #line 20335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27296 : (TARGET_USE_BT && TARGET_CMOVE
27297 : && ix86_pre_reload_split ()) &&
27298 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27299 : (TARGET_64BIT)) &&
27300 : #line 20338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27301 : ( 1)))
27302 : return gen_split_835 (insn, operands);
27303 : break;
27304 :
27305 : case 4:
27306 : if ((
27307 : #line 20335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27308 : (TARGET_USE_BT && TARGET_CMOVE
27309 : && ix86_pre_reload_split ()) &&
27310 : #line 20338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27311 : ( 1)))
27312 : return gen_split_836 (insn, operands);
27313 : break;
27314 :
27315 : case 5:
27316 : if (((
27317 : #line 20335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27318 : (TARGET_USE_BT && TARGET_CMOVE
27319 : && ix86_pre_reload_split ()) &&
27320 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27321 : (TARGET_64BIT)) &&
27322 : #line 20338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27323 : ( 1)))
27324 : return gen_split_837 (insn, operands);
27325 : break;
27326 :
27327 : case 6:
27328 : if (((
27329 : #line 20335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27330 : (TARGET_USE_BT && TARGET_CMOVE
27331 : && ix86_pre_reload_split ()) &&
27332 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27333 : (TARGET_64BIT)) &&
27334 : #line 20338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27335 : ( 1)))
27336 : return gen_split_838 (insn, operands);
27337 : break;
27338 :
27339 : case 7:
27340 : if (((
27341 : #line 20335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27342 : (TARGET_USE_BT && TARGET_CMOVE
27343 : && ix86_pre_reload_split ()) &&
27344 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27345 : (TARGET_64BIT)) &&
27346 : #line 20338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27347 : ( 1)))
27348 : return gen_split_839 (insn, operands);
27349 : break;
27350 :
27351 : default:
27352 : break;
27353 : }
27354 : if (GET_CODE (x18) != SUBREG)
27355 : return NULL;
27356 : switch (pattern1552 (x2))
27357 : {
27358 : case 0:
27359 : if (!(
27360 : #line 20268 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27361 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
27362 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
27363 : == GET_MODE_BITSIZE (SImode)-1
27364 : && ix86_pre_reload_split ()) &&
27365 : #line 20273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27366 : ( 1)))
27367 : return NULL;
27368 : return gen_split_826 (insn, operands);
27369 :
27370 : case 1:
27371 : if (!((
27372 : #line 20268 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27373 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
27374 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
27375 : == GET_MODE_BITSIZE (DImode)-1
27376 : && ix86_pre_reload_split ()) &&
27377 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27378 : (TARGET_64BIT)) &&
27379 : #line 20273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27380 : ( 1)))
27381 : return NULL;
27382 : return gen_split_827 (insn, operands);
27383 :
27384 : default:
27385 : return NULL;
27386 : }
27387 :
27388 : case 1:
27389 : if (!(
27390 : #line 20231 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27391 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
27392 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
27393 : == GET_MODE_BITSIZE (SImode)-1
27394 : && ix86_pre_reload_split ()) &&
27395 : #line 20236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27396 : ( 1)))
27397 : return NULL;
27398 : return gen_split_824 (insn, operands);
27399 :
27400 : case 2:
27401 : if (!((
27402 : #line 20231 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27403 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
27404 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
27405 : == GET_MODE_BITSIZE (DImode)-1
27406 : && ix86_pre_reload_split ()) &&
27407 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27408 : (TARGET_64BIT)) &&
27409 : #line 20236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27410 : ( 1)))
27411 : return NULL;
27412 : return gen_split_825 (insn, operands);
27413 :
27414 : default:
27415 : return NULL;
27416 : }
27417 :
27418 : default:
27419 : return NULL;
27420 : }
27421 :
27422 : case COMPARE:
27423 : return split_27 (x1, insn);
27424 :
27425 : case AND:
27426 : return split_25 (x1, insn);
27427 :
27428 : case IOR:
27429 : return split_26 (x1, insn);
27430 :
27431 : case XOR:
27432 : return split_24 (x1, insn);
27433 :
27434 : case NOT:
27435 : x9 = XEXP (x3, 0);
27436 : if (GET_CODE (x9) != XOR
27437 : || pattern347 (x1) != 0)
27438 : return NULL;
27439 : switch (GET_MODE (operands[0]))
27440 : {
27441 : case E_HImode:
27442 : if (!nonimmediate_operand (operands[0], E_HImode)
27443 : || pattern218 (x3,
27444 : E_HImode) != 0
27445 : || !(
27446 : #line 14471 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27447 : (ix86_binary_operator_ok (XOR, HImode, operands, TARGET_APX_NDD)) &&
27448 : #line 14473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27449 : ( reload_completed)))
27450 : return NULL;
27451 : return gen_split_397 (insn, operands);
27452 :
27453 : case E_SImode:
27454 : if (!nonimmediate_operand (operands[0], E_SImode)
27455 : || pattern219 (x3,
27456 : E_SImode) != 0
27457 : || !(
27458 : #line 14471 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27459 : (ix86_binary_operator_ok (XOR, SImode, operands, TARGET_APX_NDD)) &&
27460 : #line 14473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27461 : ( reload_completed)))
27462 : return NULL;
27463 : return gen_split_398 (insn, operands);
27464 :
27465 : case E_DImode:
27466 : if (!nonimmediate_operand (operands[0], E_DImode)
27467 : || pattern219 (x3,
27468 : E_DImode) != 0
27469 : || !((
27470 : #line 14471 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27471 : (ix86_binary_operator_ok (XOR, DImode, operands, TARGET_APX_NDD)) &&
27472 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27473 : (TARGET_64BIT)) &&
27474 : #line 14473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27475 : ( reload_completed)))
27476 : return NULL;
27477 : return gen_split_399 (insn, operands);
27478 :
27479 : case E_QImode:
27480 : if (!nonimmediate_operand (operands[0], E_QImode)
27481 : || pattern218 (x3,
27482 : E_QImode) != 0
27483 : || !(
27484 : #line 14700 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27485 : (ix86_binary_operator_ok (XOR, QImode, operands, TARGET_APX_NDD)) &&
27486 : #line 14702 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27487 : ( reload_completed)))
27488 : return NULL;
27489 : return gen_split_405 (insn, operands);
27490 :
27491 : default:
27492 : return NULL;
27493 : }
27494 :
27495 : case NEG:
27496 : return split_31 (x1, insn);
27497 :
27498 : case ABS:
27499 : return split_33 (x1, insn);
27500 :
27501 : case ASHIFT:
27502 : return split_30 (x1, insn);
27503 :
27504 : case ROTATE:
27505 : return split_35 (x1, insn);
27506 :
27507 : case ROTATERT:
27508 : return split_34 (x1, insn);
27509 :
27510 : case CTZ:
27511 : switch (pattern411 (x1))
27512 : {
27513 : case 0:
27514 : if (!
27515 : #line 22117 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27516 : ((TARGET_BMI || TARGET_CPU_P (GENERIC))
27517 : && (TARGET_AVOID_FALSE_DEP_FOR_BMI || TARGET_AVOID_FALSE_DEP_FOR_TZCNT)
27518 : && epilogue_completed
27519 : && optimize_function_for_speed_p (cfun)
27520 : && !reg_mentioned_p (operands[0], operands[1])))
27521 : return NULL;
27522 : return gen_split_877 (insn, operands);
27523 :
27524 : case 1:
27525 : if (!(
27526 : #line 22117 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27527 : ((TARGET_BMI || TARGET_CPU_P (GENERIC))
27528 : && (TARGET_AVOID_FALSE_DEP_FOR_BMI || TARGET_AVOID_FALSE_DEP_FOR_TZCNT)
27529 : && epilogue_completed
27530 : && optimize_function_for_speed_p (cfun)
27531 : && !reg_mentioned_p (operands[0], operands[1])) &&
27532 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27533 : (TARGET_64BIT)))
27534 : return NULL;
27535 : return gen_split_878 (insn, operands);
27536 :
27537 : default:
27538 : return NULL;
27539 : }
27540 :
27541 : case SIGN_EXTEND:
27542 : if (GET_MODE (x3) != E_DImode)
27543 : return NULL;
27544 : x6 = XVECEXP (x1, 0, 1);
27545 : if (pattern357 (x6) != 0)
27546 : return NULL;
27547 : x4 = XEXP (x2, 0);
27548 : operands[0] = x4;
27549 : if (!register_operand (operands[0], E_DImode))
27550 : return NULL;
27551 : x9 = XEXP (x3, 0);
27552 : if (GET_MODE (x9) != E_SImode)
27553 : return NULL;
27554 : switch (GET_CODE (x9))
27555 : {
27556 : case CTZ:
27557 : x11 = XEXP (x9, 0);
27558 : operands[1] = x11;
27559 : if (!nonimmediate_operand (operands[1], E_SImode)
27560 : || !
27561 : #line 22228 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27562 : ((TARGET_BMI || TARGET_CPU_P (GENERIC))
27563 : && (TARGET_AVOID_FALSE_DEP_FOR_BMI || TARGET_AVOID_FALSE_DEP_FOR_TZCNT)
27564 : && epilogue_completed
27565 : && optimize_function_for_speed_p (cfun)
27566 : && !reg_mentioned_p (operands[0], operands[1])))
27567 : return NULL;
27568 : return gen_split_880 (insn, operands);
27569 :
27570 : case XOR:
27571 : x11 = XEXP (x9, 0);
27572 : if (GET_CODE (x11) != MINUS
27573 : || pattern1172 (x9) != 0)
27574 : return NULL;
27575 : x17 = XEXP (x11, 1);
27576 : x19 = XEXP (x17, 0);
27577 : operands[1] = x19;
27578 : if (!nonimmediate_operand (operands[1], E_SImode)
27579 : || !(
27580 : #line 22397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27581 : (!TARGET_LZCNT && TARGET_64BIT && ix86_pre_reload_split ()) &&
27582 : #line 22399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27583 : ( 1)))
27584 : return NULL;
27585 : return gen_split_884 (insn, operands);
27586 :
27587 : default:
27588 : return NULL;
27589 : }
27590 :
27591 : case CLZ:
27592 : switch (pattern411 (x1))
27593 : {
27594 : case 0:
27595 : if (!(
27596 : #line 22569 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27597 : (TARGET_LZCNT) &&
27598 : #line 22571 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27599 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
27600 : && optimize_function_for_speed_p (cfun)
27601 : && !reg_mentioned_p (operands[0], operands[1]))))
27602 : return NULL;
27603 : return gen_split_894 (insn, operands);
27604 :
27605 : case 1:
27606 : if (!((
27607 : #line 22569 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27608 : (TARGET_LZCNT) &&
27609 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27610 : (TARGET_64BIT)) &&
27611 : #line 22571 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27612 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
27613 : && optimize_function_for_speed_p (cfun)
27614 : && !reg_mentioned_p (operands[0], operands[1]))))
27615 : return NULL;
27616 : return gen_split_895 (insn, operands);
27617 :
27618 : default:
27619 : return NULL;
27620 : }
27621 :
27622 : case UNSPEC:
27623 : if (XVECLEN (x3, 0) != 1)
27624 : return NULL;
27625 : x6 = XVECEXP (x1, 0, 1);
27626 : if (pattern237 (x6,
27627 : E_CCmode,
27628 : 17) != 0)
27629 : return NULL;
27630 : x4 = XEXP (x2, 0);
27631 : operands[0] = x4;
27632 : x20 = XVECEXP (x3, 0, 0);
27633 : operands[1] = x20;
27634 : switch (XINT (x3, 1))
27635 : {
27636 : case 98:
27637 : switch (pattern1357 (x3))
27638 : {
27639 : case 0:
27640 : if (!(
27641 : #line 22693 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27642 : (TARGET_BMI) &&
27643 : #line 22734 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27644 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
27645 : && optimize_function_for_speed_p (cfun)
27646 : && !reg_mentioned_p (operands[0], operands[1]))))
27647 : return NULL;
27648 : return gen_split_902 (insn, operands);
27649 :
27650 : case 1:
27651 : if (!((((
27652 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27653 : (TARGET_64BIT) &&
27654 : #line 22693 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27655 : (TARGET_BMI)) &&
27656 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27657 : (TARGET_64BIT)) &&
27658 : #line 22693 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27659 : (TARGET_BMI)) &&
27660 : #line 22734 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27661 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
27662 : && optimize_function_for_speed_p (cfun)
27663 : && !reg_mentioned_p (operands[0], operands[1]))))
27664 : return NULL;
27665 : return gen_split_904 (insn, operands);
27666 :
27667 : default:
27668 : return NULL;
27669 : }
27670 :
27671 : case 97:
27672 : switch (pattern1357 (x3))
27673 : {
27674 : case 0:
27675 : if (!(
27676 : #line 22694 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27677 : (TARGET_LZCNT) &&
27678 : #line 22734 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27679 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
27680 : && optimize_function_for_speed_p (cfun)
27681 : && !reg_mentioned_p (operands[0], operands[1]))))
27682 : return NULL;
27683 : return gen_split_903 (insn, operands);
27684 :
27685 : case 1:
27686 : if (!((((
27687 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27688 : (TARGET_64BIT) &&
27689 : #line 22694 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27690 : (TARGET_LZCNT)) &&
27691 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27692 : (TARGET_64BIT)) &&
27693 : #line 22694 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27694 : (TARGET_LZCNT)) &&
27695 : #line 22734 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27696 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
27697 : && optimize_function_for_speed_p (cfun)
27698 : && !reg_mentioned_p (operands[0], operands[1]))))
27699 : return NULL;
27700 : return gen_split_905 (insn, operands);
27701 :
27702 : default:
27703 : return NULL;
27704 : }
27705 :
27706 : default:
27707 : return NULL;
27708 : }
27709 :
27710 : case POPCOUNT:
27711 : x6 = XVECEXP (x1, 0, 1);
27712 : if (pattern357 (x6) != 0)
27713 : return NULL;
27714 : x4 = XEXP (x2, 0);
27715 : operands[0] = x4;
27716 : x9 = XEXP (x3, 0);
27717 : switch (GET_CODE (x9))
27718 : {
27719 : case REG:
27720 : case SUBREG:
27721 : case MEM:
27722 : operands[1] = x9;
27723 : switch (pattern410 (x3))
27724 : {
27725 : case 0:
27726 : if (!(
27727 : #line 23378 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27728 : (TARGET_POPCNT) &&
27729 : #line 23386 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27730 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
27731 : && optimize_function_for_speed_p (cfun)
27732 : && !reg_mentioned_p (operands[0], operands[1]))))
27733 : return NULL;
27734 : return gen_split_918 (insn, operands);
27735 :
27736 : case 1:
27737 : if (!((
27738 : #line 23378 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27739 : (TARGET_POPCNT) &&
27740 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27741 : (TARGET_64BIT)) &&
27742 : #line 23386 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27743 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
27744 : && optimize_function_for_speed_p (cfun)
27745 : && !reg_mentioned_p (operands[0], operands[1]))))
27746 : return NULL;
27747 : return gen_split_919 (insn, operands);
27748 :
27749 : default:
27750 : return NULL;
27751 : }
27752 :
27753 : case ZERO_EXTEND:
27754 : if (pattern1191 (x3,
27755 : E_HImode,
27756 : E_SImode) != 0
27757 : || !(
27758 : #line 23548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27759 : (TARGET_POPCNT
27760 : && ix86_pre_reload_split ()) &&
27761 : #line 23551 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27762 : ( 1)))
27763 : return NULL;
27764 : return gen_split_922 (insn, operands);
27765 :
27766 : default:
27767 : return NULL;
27768 : }
27769 :
27770 : default:
27771 : return NULL;
27772 : }
27773 :
27774 : case SIMPLE_RETURN:
27775 : x6 = XVECEXP (x1, 0, 1);
27776 : if (GET_CODE (x6) != USE)
27777 : return NULL;
27778 : x21 = XEXP (x6, 0);
27779 : operands[0] = x21;
27780 : if (!const_int_operand (operands[0], E_SImode)
27781 : || !(
27782 : #line 21708 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27783 : (reload_completed) &&
27784 : #line 21710 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27785 : ( cfun->machine->function_return_type != indirect_branch_keep)))
27786 : return NULL;
27787 : return gen_split_872 (insn, operands);
27788 :
27789 : default:
27790 : return NULL;
27791 : }
27792 : }
27793 :
27794 : rtx_insn *
27795 : split_66 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
27796 : {
27797 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
27798 : rtx x2, x3, x4, x5, x6, x7, x8;
27799 : rtx_insn *res ATTRIBUTE_UNUSED;
27800 : x2 = XEXP (x1, 1);
27801 : x3 = XEXP (x2, 0);
27802 : x4 = XEXP (x3, 0);
27803 : switch (GET_CODE (x4))
27804 : {
27805 : case REG:
27806 : case SUBREG:
27807 : case MEM:
27808 : case NOT:
27809 : switch (pattern537 (x2))
27810 : {
27811 : case 0:
27812 : if (!((
27813 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27814 : ((64 == 64 || TARGET_AVX512VL
27815 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27816 : && ix86_pre_reload_split ()
27817 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27818 : STRIP_UNARY (operands[4]))
27819 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27820 : STRIP_UNARY (operands[4]))
27821 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27822 : STRIP_UNARY (operands[3]))
27823 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27824 : STRIP_UNARY (operands[3])))) &&
27825 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27826 : (TARGET_AVX512F)) &&
27827 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27828 : ( 1)))
27829 : return NULL;
27830 : return gen_split_1741 (insn, operands);
27831 :
27832 : case 1:
27833 : if (!((
27834 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27835 : ((32 == 64 || TARGET_AVX512VL
27836 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27837 : && ix86_pre_reload_split ()
27838 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27839 : STRIP_UNARY (operands[4]))
27840 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27841 : STRIP_UNARY (operands[4]))
27842 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27843 : STRIP_UNARY (operands[3]))
27844 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27845 : STRIP_UNARY (operands[3])))) &&
27846 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27847 : (TARGET_AVX)) &&
27848 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27849 : ( 1)))
27850 : return NULL;
27851 : return gen_split_1768 (insn, operands);
27852 :
27853 : case 2:
27854 : if (!(
27855 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27856 : ((16 == 64 || TARGET_AVX512VL
27857 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27858 : && ix86_pre_reload_split ()
27859 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27860 : STRIP_UNARY (operands[4]))
27861 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27862 : STRIP_UNARY (operands[4]))
27863 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27864 : STRIP_UNARY (operands[3]))
27865 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27866 : STRIP_UNARY (operands[3])))) &&
27867 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27868 : ( 1)))
27869 : return NULL;
27870 : return gen_split_1795 (insn, operands);
27871 :
27872 : case 3:
27873 : if (!((
27874 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27875 : ((64 == 64 || TARGET_AVX512VL
27876 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27877 : && ix86_pre_reload_split ()
27878 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27879 : STRIP_UNARY (operands[4]))
27880 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27881 : STRIP_UNARY (operands[4]))
27882 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27883 : STRIP_UNARY (operands[3]))
27884 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27885 : STRIP_UNARY (operands[3])))) &&
27886 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27887 : (TARGET_AVX512F)) &&
27888 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27889 : ( 1)))
27890 : return NULL;
27891 : return gen_split_1822 (insn, operands);
27892 :
27893 : case 4:
27894 : if (!((
27895 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27896 : ((32 == 64 || TARGET_AVX512VL
27897 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27898 : && ix86_pre_reload_split ()
27899 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27900 : STRIP_UNARY (operands[4]))
27901 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27902 : STRIP_UNARY (operands[4]))
27903 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27904 : STRIP_UNARY (operands[3]))
27905 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27906 : STRIP_UNARY (operands[3])))) &&
27907 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27908 : (TARGET_AVX)) &&
27909 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27910 : ( 1)))
27911 : return NULL;
27912 : return gen_split_1849 (insn, operands);
27913 :
27914 : case 5:
27915 : if (!(
27916 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27917 : ((16 == 64 || TARGET_AVX512VL
27918 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27919 : && ix86_pre_reload_split ()
27920 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27921 : STRIP_UNARY (operands[4]))
27922 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27923 : STRIP_UNARY (operands[4]))
27924 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27925 : STRIP_UNARY (operands[3]))
27926 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27927 : STRIP_UNARY (operands[3])))) &&
27928 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27929 : ( 1)))
27930 : return NULL;
27931 : return gen_split_1876 (insn, operands);
27932 :
27933 : case 6:
27934 : if (!((
27935 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27936 : ((64 == 64 || TARGET_AVX512VL
27937 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27938 : && ix86_pre_reload_split ()
27939 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27940 : STRIP_UNARY (operands[4]))
27941 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27942 : STRIP_UNARY (operands[4]))
27943 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27944 : STRIP_UNARY (operands[3]))
27945 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27946 : STRIP_UNARY (operands[3])))) &&
27947 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27948 : (TARGET_AVX512F)) &&
27949 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27950 : ( 1)))
27951 : return NULL;
27952 : return gen_split_1903 (insn, operands);
27953 :
27954 : case 7:
27955 : if (!((
27956 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27957 : ((32 == 64 || TARGET_AVX512VL
27958 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27959 : && ix86_pre_reload_split ()
27960 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27961 : STRIP_UNARY (operands[4]))
27962 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27963 : STRIP_UNARY (operands[4]))
27964 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27965 : STRIP_UNARY (operands[3]))
27966 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27967 : STRIP_UNARY (operands[3])))) &&
27968 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27969 : (TARGET_AVX)) &&
27970 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27971 : ( 1)))
27972 : return NULL;
27973 : return gen_split_1930 (insn, operands);
27974 :
27975 : case 8:
27976 : if (!(
27977 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27978 : ((16 == 64 || TARGET_AVX512VL
27979 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27980 : && ix86_pre_reload_split ()
27981 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27982 : STRIP_UNARY (operands[4]))
27983 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27984 : STRIP_UNARY (operands[4]))
27985 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27986 : STRIP_UNARY (operands[3]))
27987 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27988 : STRIP_UNARY (operands[3])))) &&
27989 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27990 : ( 1)))
27991 : return NULL;
27992 : return gen_split_1957 (insn, operands);
27993 :
27994 : case 9:
27995 : if (!((
27996 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27997 : ((64 == 64 || TARGET_AVX512VL
27998 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27999 : && ix86_pre_reload_split ()
28000 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28001 : STRIP_UNARY (operands[4]))
28002 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28003 : STRIP_UNARY (operands[4]))
28004 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28005 : STRIP_UNARY (operands[3]))
28006 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28007 : STRIP_UNARY (operands[3])))) &&
28008 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28009 : (TARGET_AVX512F)) &&
28010 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28011 : ( 1)))
28012 : return NULL;
28013 : return gen_split_1984 (insn, operands);
28014 :
28015 : case 10:
28016 : if (!((
28017 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28018 : ((32 == 64 || TARGET_AVX512VL
28019 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28020 : && ix86_pre_reload_split ()
28021 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28022 : STRIP_UNARY (operands[4]))
28023 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28024 : STRIP_UNARY (operands[4]))
28025 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28026 : STRIP_UNARY (operands[3]))
28027 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28028 : STRIP_UNARY (operands[3])))) &&
28029 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28030 : (TARGET_AVX)) &&
28031 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28032 : ( 1)))
28033 : return NULL;
28034 : return gen_split_2011 (insn, operands);
28035 :
28036 : case 11:
28037 : if (!(
28038 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28039 : ((16 == 64 || TARGET_AVX512VL
28040 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28041 : && ix86_pre_reload_split ()
28042 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28043 : STRIP_UNARY (operands[4]))
28044 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28045 : STRIP_UNARY (operands[4]))
28046 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28047 : STRIP_UNARY (operands[3]))
28048 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28049 : STRIP_UNARY (operands[3])))) &&
28050 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28051 : ( 1)))
28052 : return NULL;
28053 : return gen_split_2038 (insn, operands);
28054 :
28055 : case 12:
28056 : if (!((
28057 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28058 : ((64 == 64 || TARGET_AVX512VL
28059 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28060 : && ix86_pre_reload_split ()
28061 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28062 : STRIP_UNARY (operands[4]))
28063 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28064 : STRIP_UNARY (operands[4]))
28065 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28066 : STRIP_UNARY (operands[3]))
28067 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28068 : STRIP_UNARY (operands[3])))) &&
28069 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28070 : (TARGET_AVX512F)) &&
28071 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28072 : ( 1)))
28073 : return NULL;
28074 : return gen_split_1744 (insn, operands);
28075 :
28076 : case 13:
28077 : if (!((
28078 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28079 : ((32 == 64 || TARGET_AVX512VL
28080 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28081 : && ix86_pre_reload_split ()
28082 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28083 : STRIP_UNARY (operands[4]))
28084 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28085 : STRIP_UNARY (operands[4]))
28086 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28087 : STRIP_UNARY (operands[3]))
28088 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28089 : STRIP_UNARY (operands[3])))) &&
28090 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28091 : (TARGET_AVX)) &&
28092 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28093 : ( 1)))
28094 : return NULL;
28095 : return gen_split_1771 (insn, operands);
28096 :
28097 : case 14:
28098 : if (!(
28099 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28100 : ((16 == 64 || TARGET_AVX512VL
28101 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28102 : && ix86_pre_reload_split ()
28103 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28104 : STRIP_UNARY (operands[4]))
28105 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28106 : STRIP_UNARY (operands[4]))
28107 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28108 : STRIP_UNARY (operands[3]))
28109 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28110 : STRIP_UNARY (operands[3])))) &&
28111 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28112 : ( 1)))
28113 : return NULL;
28114 : return gen_split_1798 (insn, operands);
28115 :
28116 : case 15:
28117 : if (!((
28118 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28119 : ((64 == 64 || TARGET_AVX512VL
28120 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28121 : && ix86_pre_reload_split ()
28122 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28123 : STRIP_UNARY (operands[4]))
28124 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28125 : STRIP_UNARY (operands[4]))
28126 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28127 : STRIP_UNARY (operands[3]))
28128 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28129 : STRIP_UNARY (operands[3])))) &&
28130 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28131 : (TARGET_AVX512F)) &&
28132 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28133 : ( 1)))
28134 : return NULL;
28135 : return gen_split_1825 (insn, operands);
28136 :
28137 : case 16:
28138 : if (!((
28139 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28140 : ((32 == 64 || TARGET_AVX512VL
28141 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28142 : && ix86_pre_reload_split ()
28143 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28144 : STRIP_UNARY (operands[4]))
28145 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28146 : STRIP_UNARY (operands[4]))
28147 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28148 : STRIP_UNARY (operands[3]))
28149 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28150 : STRIP_UNARY (operands[3])))) &&
28151 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28152 : (TARGET_AVX)) &&
28153 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28154 : ( 1)))
28155 : return NULL;
28156 : return gen_split_1852 (insn, operands);
28157 :
28158 : case 17:
28159 : if (!(
28160 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28161 : ((16 == 64 || TARGET_AVX512VL
28162 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28163 : && ix86_pre_reload_split ()
28164 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28165 : STRIP_UNARY (operands[4]))
28166 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28167 : STRIP_UNARY (operands[4]))
28168 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28169 : STRIP_UNARY (operands[3]))
28170 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28171 : STRIP_UNARY (operands[3])))) &&
28172 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28173 : ( 1)))
28174 : return NULL;
28175 : return gen_split_1879 (insn, operands);
28176 :
28177 : case 18:
28178 : if (!((
28179 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28180 : ((64 == 64 || TARGET_AVX512VL
28181 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28182 : && ix86_pre_reload_split ()
28183 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28184 : STRIP_UNARY (operands[4]))
28185 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28186 : STRIP_UNARY (operands[4]))
28187 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28188 : STRIP_UNARY (operands[3]))
28189 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28190 : STRIP_UNARY (operands[3])))) &&
28191 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28192 : (TARGET_AVX512F)) &&
28193 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28194 : ( 1)))
28195 : return NULL;
28196 : return gen_split_1906 (insn, operands);
28197 :
28198 : case 19:
28199 : if (!((
28200 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28201 : ((32 == 64 || TARGET_AVX512VL
28202 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28203 : && ix86_pre_reload_split ()
28204 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28205 : STRIP_UNARY (operands[4]))
28206 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28207 : STRIP_UNARY (operands[4]))
28208 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28209 : STRIP_UNARY (operands[3]))
28210 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28211 : STRIP_UNARY (operands[3])))) &&
28212 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28213 : (TARGET_AVX)) &&
28214 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28215 : ( 1)))
28216 : return NULL;
28217 : return gen_split_1933 (insn, operands);
28218 :
28219 : case 20:
28220 : if (!(
28221 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28222 : ((16 == 64 || TARGET_AVX512VL
28223 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28224 : && ix86_pre_reload_split ()
28225 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28226 : STRIP_UNARY (operands[4]))
28227 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28228 : STRIP_UNARY (operands[4]))
28229 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28230 : STRIP_UNARY (operands[3]))
28231 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28232 : STRIP_UNARY (operands[3])))) &&
28233 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28234 : ( 1)))
28235 : return NULL;
28236 : return gen_split_1960 (insn, operands);
28237 :
28238 : case 21:
28239 : if (!((
28240 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28241 : ((64 == 64 || TARGET_AVX512VL
28242 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28243 : && ix86_pre_reload_split ()
28244 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28245 : STRIP_UNARY (operands[4]))
28246 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28247 : STRIP_UNARY (operands[4]))
28248 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28249 : STRIP_UNARY (operands[3]))
28250 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28251 : STRIP_UNARY (operands[3])))) &&
28252 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28253 : (TARGET_AVX512F)) &&
28254 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28255 : ( 1)))
28256 : return NULL;
28257 : return gen_split_1987 (insn, operands);
28258 :
28259 : case 22:
28260 : if (!((
28261 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28262 : ((32 == 64 || TARGET_AVX512VL
28263 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28264 : && ix86_pre_reload_split ()
28265 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28266 : STRIP_UNARY (operands[4]))
28267 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28268 : STRIP_UNARY (operands[4]))
28269 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28270 : STRIP_UNARY (operands[3]))
28271 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28272 : STRIP_UNARY (operands[3])))) &&
28273 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28274 : (TARGET_AVX)) &&
28275 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28276 : ( 1)))
28277 : return NULL;
28278 : return gen_split_2014 (insn, operands);
28279 :
28280 : case 23:
28281 : if (!(
28282 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28283 : ((16 == 64 || TARGET_AVX512VL
28284 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28285 : && ix86_pre_reload_split ()
28286 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28287 : STRIP_UNARY (operands[4]))
28288 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28289 : STRIP_UNARY (operands[4]))
28290 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28291 : STRIP_UNARY (operands[3]))
28292 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28293 : STRIP_UNARY (operands[3])))) &&
28294 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28295 : ( 1)))
28296 : return NULL;
28297 : return gen_split_2041 (insn, operands);
28298 :
28299 : case 24:
28300 : if (!((
28301 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28302 : ((64 == 64 || TARGET_AVX512VL
28303 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28304 : && ix86_pre_reload_split ()
28305 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28306 : STRIP_UNARY (operands[4]))
28307 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28308 : STRIP_UNARY (operands[4]))
28309 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28310 : STRIP_UNARY (operands[3]))
28311 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28312 : STRIP_UNARY (operands[3])))) &&
28313 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28314 : (TARGET_AVX512F)) &&
28315 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28316 : ( 1)))
28317 : return NULL;
28318 : return gen_split_1747 (insn, operands);
28319 :
28320 : case 25:
28321 : if (!((
28322 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28323 : ((32 == 64 || TARGET_AVX512VL
28324 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28325 : && ix86_pre_reload_split ()
28326 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28327 : STRIP_UNARY (operands[4]))
28328 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28329 : STRIP_UNARY (operands[4]))
28330 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28331 : STRIP_UNARY (operands[3]))
28332 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28333 : STRIP_UNARY (operands[3])))) &&
28334 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28335 : (TARGET_AVX)) &&
28336 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28337 : ( 1)))
28338 : return NULL;
28339 : return gen_split_1774 (insn, operands);
28340 :
28341 : case 26:
28342 : if (!(
28343 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28344 : ((16 == 64 || TARGET_AVX512VL
28345 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28346 : && ix86_pre_reload_split ()
28347 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28348 : STRIP_UNARY (operands[4]))
28349 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28350 : STRIP_UNARY (operands[4]))
28351 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28352 : STRIP_UNARY (operands[3]))
28353 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28354 : STRIP_UNARY (operands[3])))) &&
28355 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28356 : ( 1)))
28357 : return NULL;
28358 : return gen_split_1801 (insn, operands);
28359 :
28360 : case 27:
28361 : if (!((
28362 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28363 : ((64 == 64 || TARGET_AVX512VL
28364 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28365 : && ix86_pre_reload_split ()
28366 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28367 : STRIP_UNARY (operands[4]))
28368 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28369 : STRIP_UNARY (operands[4]))
28370 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28371 : STRIP_UNARY (operands[3]))
28372 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28373 : STRIP_UNARY (operands[3])))) &&
28374 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28375 : (TARGET_AVX512F)) &&
28376 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28377 : ( 1)))
28378 : return NULL;
28379 : return gen_split_1828 (insn, operands);
28380 :
28381 : case 28:
28382 : if (!((
28383 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28384 : ((32 == 64 || TARGET_AVX512VL
28385 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28386 : && ix86_pre_reload_split ()
28387 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28388 : STRIP_UNARY (operands[4]))
28389 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28390 : STRIP_UNARY (operands[4]))
28391 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28392 : STRIP_UNARY (operands[3]))
28393 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28394 : STRIP_UNARY (operands[3])))) &&
28395 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28396 : (TARGET_AVX)) &&
28397 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28398 : ( 1)))
28399 : return NULL;
28400 : return gen_split_1855 (insn, operands);
28401 :
28402 : case 29:
28403 : if (!(
28404 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28405 : ((16 == 64 || TARGET_AVX512VL
28406 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28407 : && ix86_pre_reload_split ()
28408 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28409 : STRIP_UNARY (operands[4]))
28410 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28411 : STRIP_UNARY (operands[4]))
28412 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28413 : STRIP_UNARY (operands[3]))
28414 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28415 : STRIP_UNARY (operands[3])))) &&
28416 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28417 : ( 1)))
28418 : return NULL;
28419 : return gen_split_1882 (insn, operands);
28420 :
28421 : case 30:
28422 : if (!((
28423 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28424 : ((64 == 64 || TARGET_AVX512VL
28425 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28426 : && ix86_pre_reload_split ()
28427 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28428 : STRIP_UNARY (operands[4]))
28429 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28430 : STRIP_UNARY (operands[4]))
28431 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28432 : STRIP_UNARY (operands[3]))
28433 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28434 : STRIP_UNARY (operands[3])))) &&
28435 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28436 : (TARGET_AVX512F)) &&
28437 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28438 : ( 1)))
28439 : return NULL;
28440 : return gen_split_1909 (insn, operands);
28441 :
28442 : case 31:
28443 : if (!((
28444 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28445 : ((32 == 64 || TARGET_AVX512VL
28446 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28447 : && ix86_pre_reload_split ()
28448 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28449 : STRIP_UNARY (operands[4]))
28450 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28451 : STRIP_UNARY (operands[4]))
28452 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28453 : STRIP_UNARY (operands[3]))
28454 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28455 : STRIP_UNARY (operands[3])))) &&
28456 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28457 : (TARGET_AVX)) &&
28458 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28459 : ( 1)))
28460 : return NULL;
28461 : return gen_split_1936 (insn, operands);
28462 :
28463 : case 32:
28464 : if (!(
28465 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28466 : ((16 == 64 || TARGET_AVX512VL
28467 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28468 : && ix86_pre_reload_split ()
28469 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28470 : STRIP_UNARY (operands[4]))
28471 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28472 : STRIP_UNARY (operands[4]))
28473 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28474 : STRIP_UNARY (operands[3]))
28475 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28476 : STRIP_UNARY (operands[3])))) &&
28477 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28478 : ( 1)))
28479 : return NULL;
28480 : return gen_split_1963 (insn, operands);
28481 :
28482 : case 33:
28483 : if (!((
28484 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28485 : ((64 == 64 || TARGET_AVX512VL
28486 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28487 : && ix86_pre_reload_split ()
28488 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28489 : STRIP_UNARY (operands[4]))
28490 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28491 : STRIP_UNARY (operands[4]))
28492 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28493 : STRIP_UNARY (operands[3]))
28494 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28495 : STRIP_UNARY (operands[3])))) &&
28496 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28497 : (TARGET_AVX512F)) &&
28498 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28499 : ( 1)))
28500 : return NULL;
28501 : return gen_split_1990 (insn, operands);
28502 :
28503 : case 34:
28504 : if (!((
28505 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28506 : ((32 == 64 || TARGET_AVX512VL
28507 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28508 : && ix86_pre_reload_split ()
28509 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28510 : STRIP_UNARY (operands[4]))
28511 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28512 : STRIP_UNARY (operands[4]))
28513 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28514 : STRIP_UNARY (operands[3]))
28515 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28516 : STRIP_UNARY (operands[3])))) &&
28517 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28518 : (TARGET_AVX)) &&
28519 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28520 : ( 1)))
28521 : return NULL;
28522 : return gen_split_2017 (insn, operands);
28523 :
28524 : case 35:
28525 : if (!(
28526 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28527 : ((16 == 64 || TARGET_AVX512VL
28528 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28529 : && ix86_pre_reload_split ()
28530 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28531 : STRIP_UNARY (operands[4]))
28532 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28533 : STRIP_UNARY (operands[4]))
28534 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28535 : STRIP_UNARY (operands[3]))
28536 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28537 : STRIP_UNARY (operands[3])))) &&
28538 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28539 : ( 1)))
28540 : return NULL;
28541 : return gen_split_2044 (insn, operands);
28542 :
28543 : case 36:
28544 : if (!((
28545 : #line 14662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28546 : ((64 == 64 || TARGET_AVX512VL
28547 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28548 : && ix86_pre_reload_split ()) &&
28549 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28550 : (TARGET_AVX512F)) &&
28551 : #line 14666 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28552 : ( 1)))
28553 : return NULL;
28554 : return gen_split_3037 (insn, operands);
28555 :
28556 : case 37:
28557 : if (!((
28558 : #line 14662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28559 : ((32 == 64 || TARGET_AVX512VL
28560 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28561 : && ix86_pre_reload_split ()) &&
28562 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28563 : (TARGET_AVX)) &&
28564 : #line 14666 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28565 : ( 1)))
28566 : return NULL;
28567 : return gen_split_3046 (insn, operands);
28568 :
28569 : case 38:
28570 : if (!(
28571 : #line 14662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28572 : ((16 == 64 || TARGET_AVX512VL
28573 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28574 : && ix86_pre_reload_split ()) &&
28575 : #line 14666 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28576 : ( 1)))
28577 : return NULL;
28578 : return gen_split_3055 (insn, operands);
28579 :
28580 : case 39:
28581 : if (!((
28582 : #line 14662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28583 : ((64 == 64 || TARGET_AVX512VL
28584 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28585 : && ix86_pre_reload_split ()) &&
28586 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28587 : (TARGET_AVX512F)) &&
28588 : #line 14666 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28589 : ( 1)))
28590 : return NULL;
28591 : return gen_split_3064 (insn, operands);
28592 :
28593 : case 40:
28594 : if (!((
28595 : #line 14662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28596 : ((32 == 64 || TARGET_AVX512VL
28597 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28598 : && ix86_pre_reload_split ()) &&
28599 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28600 : (TARGET_AVX)) &&
28601 : #line 14666 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28602 : ( 1)))
28603 : return NULL;
28604 : return gen_split_3073 (insn, operands);
28605 :
28606 : case 41:
28607 : if (!(
28608 : #line 14662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28609 : ((16 == 64 || TARGET_AVX512VL
28610 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28611 : && ix86_pre_reload_split ()) &&
28612 : #line 14666 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28613 : ( 1)))
28614 : return NULL;
28615 : return gen_split_3082 (insn, operands);
28616 :
28617 : case 42:
28618 : if (!((
28619 : #line 14662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28620 : ((64 == 64 || TARGET_AVX512VL
28621 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28622 : && ix86_pre_reload_split ()) &&
28623 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28624 : (TARGET_AVX512F)) &&
28625 : #line 14666 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28626 : ( 1)))
28627 : return NULL;
28628 : return gen_split_3091 (insn, operands);
28629 :
28630 : case 43:
28631 : if (!((
28632 : #line 14662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28633 : ((32 == 64 || TARGET_AVX512VL
28634 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28635 : && ix86_pre_reload_split ()) &&
28636 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28637 : (TARGET_AVX)) &&
28638 : #line 14666 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28639 : ( 1)))
28640 : return NULL;
28641 : return gen_split_3100 (insn, operands);
28642 :
28643 : case 44:
28644 : if (!(
28645 : #line 14662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28646 : ((16 == 64 || TARGET_AVX512VL
28647 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28648 : && ix86_pre_reload_split ()) &&
28649 : #line 14666 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28650 : ( 1)))
28651 : return NULL;
28652 : return gen_split_3109 (insn, operands);
28653 :
28654 : case 45:
28655 : if (!((
28656 : #line 14662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28657 : ((64 == 64 || TARGET_AVX512VL
28658 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28659 : && ix86_pre_reload_split ()) &&
28660 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28661 : (TARGET_AVX512F)) &&
28662 : #line 14666 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28663 : ( 1)))
28664 : return NULL;
28665 : return gen_split_3118 (insn, operands);
28666 :
28667 : case 46:
28668 : if (!((
28669 : #line 14662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28670 : ((32 == 64 || TARGET_AVX512VL
28671 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28672 : && ix86_pre_reload_split ()) &&
28673 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28674 : (TARGET_AVX)) &&
28675 : #line 14666 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28676 : ( 1)))
28677 : return NULL;
28678 : return gen_split_3127 (insn, operands);
28679 :
28680 : case 47:
28681 : if (!(
28682 : #line 14662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28683 : ((16 == 64 || TARGET_AVX512VL
28684 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28685 : && ix86_pre_reload_split ()) &&
28686 : #line 14666 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28687 : ( 1)))
28688 : return NULL;
28689 : return gen_split_3136 (insn, operands);
28690 :
28691 : default:
28692 : return NULL;
28693 : }
28694 :
28695 : case AND:
28696 : switch (pattern539 (x2))
28697 : {
28698 : case 0:
28699 : if (!((
28700 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28701 : ((64 == 64 || TARGET_AVX512VL
28702 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28703 : && ix86_pre_reload_split ()
28704 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28705 : STRIP_UNARY (operands[4]))
28706 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28707 : STRIP_UNARY (operands[4]))
28708 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28709 : STRIP_UNARY (operands[3]))
28710 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28711 : STRIP_UNARY (operands[3])))) &&
28712 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28713 : (TARGET_AVX512F)) &&
28714 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28715 : ( 1)))
28716 : return NULL;
28717 : return gen_split_2389 (insn, operands);
28718 :
28719 : case 1:
28720 : if (!((
28721 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28722 : ((32 == 64 || TARGET_AVX512VL
28723 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28724 : && ix86_pre_reload_split ()
28725 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28726 : STRIP_UNARY (operands[4]))
28727 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28728 : STRIP_UNARY (operands[4]))
28729 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28730 : STRIP_UNARY (operands[3]))
28731 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28732 : STRIP_UNARY (operands[3])))) &&
28733 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28734 : (TARGET_AVX)) &&
28735 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28736 : ( 1)))
28737 : return NULL;
28738 : return gen_split_2416 (insn, operands);
28739 :
28740 : case 2:
28741 : if (!(
28742 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28743 : ((16 == 64 || TARGET_AVX512VL
28744 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28745 : && ix86_pre_reload_split ()
28746 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28747 : STRIP_UNARY (operands[4]))
28748 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28749 : STRIP_UNARY (operands[4]))
28750 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28751 : STRIP_UNARY (operands[3]))
28752 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28753 : STRIP_UNARY (operands[3])))) &&
28754 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28755 : ( 1)))
28756 : return NULL;
28757 : return gen_split_2443 (insn, operands);
28758 :
28759 : case 3:
28760 : if (!((
28761 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28762 : ((64 == 64 || TARGET_AVX512VL
28763 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28764 : && ix86_pre_reload_split ()
28765 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28766 : STRIP_UNARY (operands[4]))
28767 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28768 : STRIP_UNARY (operands[4]))
28769 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28770 : STRIP_UNARY (operands[3]))
28771 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28772 : STRIP_UNARY (operands[3])))) &&
28773 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28774 : (TARGET_AVX512F)) &&
28775 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28776 : ( 1)))
28777 : return NULL;
28778 : return gen_split_2470 (insn, operands);
28779 :
28780 : case 4:
28781 : if (!((
28782 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28783 : ((32 == 64 || TARGET_AVX512VL
28784 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28785 : && ix86_pre_reload_split ()
28786 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28787 : STRIP_UNARY (operands[4]))
28788 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28789 : STRIP_UNARY (operands[4]))
28790 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28791 : STRIP_UNARY (operands[3]))
28792 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28793 : STRIP_UNARY (operands[3])))) &&
28794 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28795 : (TARGET_AVX)) &&
28796 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28797 : ( 1)))
28798 : return NULL;
28799 : return gen_split_2497 (insn, operands);
28800 :
28801 : case 5:
28802 : if (!(
28803 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28804 : ((16 == 64 || TARGET_AVX512VL
28805 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28806 : && ix86_pre_reload_split ()
28807 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28808 : STRIP_UNARY (operands[4]))
28809 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28810 : STRIP_UNARY (operands[4]))
28811 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28812 : STRIP_UNARY (operands[3]))
28813 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28814 : STRIP_UNARY (operands[3])))) &&
28815 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28816 : ( 1)))
28817 : return NULL;
28818 : return gen_split_2524 (insn, operands);
28819 :
28820 : case 6:
28821 : if (!((
28822 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28823 : ((64 == 64 || TARGET_AVX512VL
28824 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28825 : && ix86_pre_reload_split ()
28826 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28827 : STRIP_UNARY (operands[4]))
28828 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28829 : STRIP_UNARY (operands[4]))
28830 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28831 : STRIP_UNARY (operands[3]))
28832 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28833 : STRIP_UNARY (operands[3])))) &&
28834 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28835 : (TARGET_AVX512F)) &&
28836 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28837 : ( 1)))
28838 : return NULL;
28839 : return gen_split_2551 (insn, operands);
28840 :
28841 : case 7:
28842 : if (!((
28843 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28844 : ((32 == 64 || TARGET_AVX512VL
28845 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28846 : && ix86_pre_reload_split ()
28847 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28848 : STRIP_UNARY (operands[4]))
28849 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28850 : STRIP_UNARY (operands[4]))
28851 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28852 : STRIP_UNARY (operands[3]))
28853 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28854 : STRIP_UNARY (operands[3])))) &&
28855 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28856 : (TARGET_AVX)) &&
28857 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28858 : ( 1)))
28859 : return NULL;
28860 : return gen_split_2578 (insn, operands);
28861 :
28862 : case 8:
28863 : if (!(
28864 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28865 : ((16 == 64 || TARGET_AVX512VL
28866 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28867 : && ix86_pre_reload_split ()
28868 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28869 : STRIP_UNARY (operands[4]))
28870 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28871 : STRIP_UNARY (operands[4]))
28872 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28873 : STRIP_UNARY (operands[3]))
28874 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28875 : STRIP_UNARY (operands[3])))) &&
28876 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28877 : ( 1)))
28878 : return NULL;
28879 : return gen_split_2605 (insn, operands);
28880 :
28881 : case 9:
28882 : if (!((
28883 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28884 : ((64 == 64 || TARGET_AVX512VL
28885 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28886 : && ix86_pre_reload_split ()
28887 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28888 : STRIP_UNARY (operands[4]))
28889 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28890 : STRIP_UNARY (operands[4]))
28891 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28892 : STRIP_UNARY (operands[3]))
28893 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28894 : STRIP_UNARY (operands[3])))) &&
28895 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28896 : (TARGET_AVX512F)) &&
28897 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28898 : ( 1)))
28899 : return NULL;
28900 : return gen_split_2632 (insn, operands);
28901 :
28902 : case 10:
28903 : if (!((
28904 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28905 : ((32 == 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 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28917 : (TARGET_AVX)) &&
28918 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28919 : ( 1)))
28920 : return NULL;
28921 : return gen_split_2659 (insn, operands);
28922 :
28923 : case 11:
28924 : if (!(
28925 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28926 : ((16 == 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 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28938 : ( 1)))
28939 : return NULL;
28940 : return gen_split_2686 (insn, operands);
28941 :
28942 : default:
28943 : return NULL;
28944 : }
28945 :
28946 : case IOR:
28947 : switch (pattern539 (x2))
28948 : {
28949 : case 0:
28950 : if (!((
28951 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28952 : ((64 == 64 || TARGET_AVX512VL
28953 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28954 : && ix86_pre_reload_split ()
28955 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28956 : STRIP_UNARY (operands[4]))
28957 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28958 : STRIP_UNARY (operands[4]))
28959 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28960 : STRIP_UNARY (operands[3]))
28961 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28962 : STRIP_UNARY (operands[3])))) &&
28963 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28964 : (TARGET_AVX512F)) &&
28965 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28966 : ( 1)))
28967 : return NULL;
28968 : return gen_split_2392 (insn, operands);
28969 :
28970 : case 1:
28971 : if (!((
28972 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28973 : ((32 == 64 || TARGET_AVX512VL
28974 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28975 : && ix86_pre_reload_split ()
28976 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28977 : STRIP_UNARY (operands[4]))
28978 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28979 : STRIP_UNARY (operands[4]))
28980 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28981 : STRIP_UNARY (operands[3]))
28982 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28983 : STRIP_UNARY (operands[3])))) &&
28984 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28985 : (TARGET_AVX)) &&
28986 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28987 : ( 1)))
28988 : return NULL;
28989 : return gen_split_2419 (insn, operands);
28990 :
28991 : case 2:
28992 : if (!(
28993 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28994 : ((16 == 64 || TARGET_AVX512VL
28995 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28996 : && ix86_pre_reload_split ()
28997 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28998 : STRIP_UNARY (operands[4]))
28999 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29000 : STRIP_UNARY (operands[4]))
29001 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29002 : STRIP_UNARY (operands[3]))
29003 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29004 : STRIP_UNARY (operands[3])))) &&
29005 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29006 : ( 1)))
29007 : return NULL;
29008 : return gen_split_2446 (insn, operands);
29009 :
29010 : case 3:
29011 : if (!((
29012 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29013 : ((64 == 64 || TARGET_AVX512VL
29014 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29015 : && ix86_pre_reload_split ()
29016 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29017 : STRIP_UNARY (operands[4]))
29018 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29019 : STRIP_UNARY (operands[4]))
29020 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29021 : STRIP_UNARY (operands[3]))
29022 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29023 : STRIP_UNARY (operands[3])))) &&
29024 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29025 : (TARGET_AVX512F)) &&
29026 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29027 : ( 1)))
29028 : return NULL;
29029 : return gen_split_2473 (insn, operands);
29030 :
29031 : case 4:
29032 : if (!((
29033 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29034 : ((32 == 64 || TARGET_AVX512VL
29035 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29036 : && ix86_pre_reload_split ()
29037 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29038 : STRIP_UNARY (operands[4]))
29039 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29040 : STRIP_UNARY (operands[4]))
29041 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29042 : STRIP_UNARY (operands[3]))
29043 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29044 : STRIP_UNARY (operands[3])))) &&
29045 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29046 : (TARGET_AVX)) &&
29047 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29048 : ( 1)))
29049 : return NULL;
29050 : return gen_split_2500 (insn, operands);
29051 :
29052 : case 5:
29053 : if (!(
29054 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29055 : ((16 == 64 || TARGET_AVX512VL
29056 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29057 : && ix86_pre_reload_split ()
29058 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29059 : STRIP_UNARY (operands[4]))
29060 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29061 : STRIP_UNARY (operands[4]))
29062 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29063 : STRIP_UNARY (operands[3]))
29064 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29065 : STRIP_UNARY (operands[3])))) &&
29066 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29067 : ( 1)))
29068 : return NULL;
29069 : return gen_split_2527 (insn, operands);
29070 :
29071 : case 6:
29072 : if (!((
29073 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29074 : ((64 == 64 || TARGET_AVX512VL
29075 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29076 : && ix86_pre_reload_split ()
29077 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29078 : STRIP_UNARY (operands[4]))
29079 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29080 : STRIP_UNARY (operands[4]))
29081 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29082 : STRIP_UNARY (operands[3]))
29083 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29084 : STRIP_UNARY (operands[3])))) &&
29085 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29086 : (TARGET_AVX512F)) &&
29087 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29088 : ( 1)))
29089 : return NULL;
29090 : return gen_split_2554 (insn, operands);
29091 :
29092 : case 7:
29093 : if (!((
29094 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29095 : ((32 == 64 || TARGET_AVX512VL
29096 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29097 : && ix86_pre_reload_split ()
29098 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29099 : STRIP_UNARY (operands[4]))
29100 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29101 : STRIP_UNARY (operands[4]))
29102 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29103 : STRIP_UNARY (operands[3]))
29104 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29105 : STRIP_UNARY (operands[3])))) &&
29106 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29107 : (TARGET_AVX)) &&
29108 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29109 : ( 1)))
29110 : return NULL;
29111 : return gen_split_2581 (insn, operands);
29112 :
29113 : case 8:
29114 : if (!(
29115 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29116 : ((16 == 64 || TARGET_AVX512VL
29117 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29118 : && ix86_pre_reload_split ()
29119 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29120 : STRIP_UNARY (operands[4]))
29121 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29122 : STRIP_UNARY (operands[4]))
29123 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29124 : STRIP_UNARY (operands[3]))
29125 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29126 : STRIP_UNARY (operands[3])))) &&
29127 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29128 : ( 1)))
29129 : return NULL;
29130 : return gen_split_2608 (insn, operands);
29131 :
29132 : case 9:
29133 : if (!((
29134 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29135 : ((64 == 64 || TARGET_AVX512VL
29136 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29137 : && ix86_pre_reload_split ()
29138 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29139 : STRIP_UNARY (operands[4]))
29140 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29141 : STRIP_UNARY (operands[4]))
29142 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29143 : STRIP_UNARY (operands[3]))
29144 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29145 : STRIP_UNARY (operands[3])))) &&
29146 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29147 : (TARGET_AVX512F)) &&
29148 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29149 : ( 1)))
29150 : return NULL;
29151 : return gen_split_2635 (insn, operands);
29152 :
29153 : case 10:
29154 : if (!((
29155 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29156 : ((32 == 64 || TARGET_AVX512VL
29157 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29158 : && ix86_pre_reload_split ()
29159 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29160 : STRIP_UNARY (operands[4]))
29161 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29162 : STRIP_UNARY (operands[4]))
29163 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29164 : STRIP_UNARY (operands[3]))
29165 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29166 : STRIP_UNARY (operands[3])))) &&
29167 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29168 : (TARGET_AVX)) &&
29169 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29170 : ( 1)))
29171 : return NULL;
29172 : return gen_split_2662 (insn, operands);
29173 :
29174 : case 11:
29175 : if (!(
29176 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29177 : ((16 == 64 || TARGET_AVX512VL
29178 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29179 : && ix86_pre_reload_split ()
29180 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29181 : STRIP_UNARY (operands[4]))
29182 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29183 : STRIP_UNARY (operands[4]))
29184 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29185 : STRIP_UNARY (operands[3]))
29186 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29187 : STRIP_UNARY (operands[3])))) &&
29188 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29189 : ( 1)))
29190 : return NULL;
29191 : return gen_split_2689 (insn, operands);
29192 :
29193 : default:
29194 : return NULL;
29195 : }
29196 :
29197 : case XOR:
29198 : x5 = XEXP (x4, 0);
29199 : operands[1] = x5;
29200 : x6 = XEXP (x4, 1);
29201 : operands[2] = x6;
29202 : x7 = XEXP (x3, 1);
29203 : operands[3] = x7;
29204 : switch (GET_MODE (operands[0]))
29205 : {
29206 : case E_V64QImode:
29207 : if (pattern1203 (x2,
29208 : E_V64QImode) != 0
29209 : || !((
29210 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29211 : ((64 == 64 || TARGET_AVX512VL
29212 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29213 : && ix86_pre_reload_split ()
29214 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29215 : STRIP_UNARY (operands[4]))
29216 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29217 : STRIP_UNARY (operands[4]))
29218 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29219 : STRIP_UNARY (operands[3]))
29220 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29221 : STRIP_UNARY (operands[3])))) &&
29222 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29223 : (TARGET_AVX512F)) &&
29224 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29225 : ( 1)))
29226 : return NULL;
29227 : return gen_split_2395 (insn, operands);
29228 :
29229 : case E_V32QImode:
29230 : if (pattern1017 (x2,
29231 : E_V32QImode) != 0)
29232 : return NULL;
29233 : if (regmem_or_bitnot_regmem_operand (operands[1], E_V32QImode)
29234 : && regmem_or_bitnot_regmem_operand (operands[2], E_V32QImode)
29235 : && regmem_or_bitnot_regmem_operand (operands[3], E_V32QImode))
29236 : {
29237 : x8 = XEXP (x2, 1);
29238 : operands[4] = x8;
29239 : if (regmem_or_bitnot_regmem_operand (operands[4], E_V32QImode)
29240 : && ((
29241 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29242 : ((32 == 64 || TARGET_AVX512VL
29243 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29244 : && ix86_pre_reload_split ()
29245 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29246 : STRIP_UNARY (operands[4]))
29247 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29248 : STRIP_UNARY (operands[4]))
29249 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29250 : STRIP_UNARY (operands[3]))
29251 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29252 : STRIP_UNARY (operands[3])))) &&
29253 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29254 : (TARGET_AVX)) &&
29255 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29256 : ( 1)))
29257 : return gen_split_2422 (insn, operands);
29258 : }
29259 : if (!register_operand (operands[1], E_V32QImode)
29260 : || !register_operand (operands[2], E_V32QImode)
29261 : || !nonimmediate_operand (operands[3], E_V32QImode))
29262 : return NULL;
29263 : x8 = XEXP (x2, 1);
29264 : if (rtx_equal_p (x8, operands[1])
29265 : &&
29266 : #line 27441 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29267 : (TARGET_XOP))
29268 : return gen_split_3817 (insn, operands);
29269 : if (!rtx_equal_p (x8, operands[2])
29270 : || !
29271 : #line 27453 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29272 : (TARGET_XOP))
29273 : return NULL;
29274 : return gen_split_3833 (insn, operands);
29275 :
29276 : case E_V16QImode:
29277 : if (pattern1017 (x2,
29278 : E_V16QImode) != 0)
29279 : return NULL;
29280 : if (regmem_or_bitnot_regmem_operand (operands[1], E_V16QImode)
29281 : && regmem_or_bitnot_regmem_operand (operands[2], E_V16QImode)
29282 : && regmem_or_bitnot_regmem_operand (operands[3], E_V16QImode))
29283 : {
29284 : x8 = XEXP (x2, 1);
29285 : operands[4] = x8;
29286 : if (regmem_or_bitnot_regmem_operand (operands[4], E_V16QImode)
29287 : && (
29288 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29289 : ((16 == 64 || TARGET_AVX512VL
29290 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29291 : && ix86_pre_reload_split ()
29292 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29293 : STRIP_UNARY (operands[4]))
29294 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29295 : STRIP_UNARY (operands[4]))
29296 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29297 : STRIP_UNARY (operands[3]))
29298 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29299 : STRIP_UNARY (operands[3])))) &&
29300 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29301 : ( 1)))
29302 : return gen_split_2449 (insn, operands);
29303 : }
29304 : if (!register_operand (operands[1], E_V16QImode)
29305 : || !register_operand (operands[2], E_V16QImode)
29306 : || !nonimmediate_operand (operands[3], E_V16QImode))
29307 : return NULL;
29308 : x8 = XEXP (x2, 1);
29309 : if (rtx_equal_p (x8, operands[1])
29310 : &&
29311 : #line 27441 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29312 : (TARGET_XOP))
29313 : return gen_split_3818 (insn, operands);
29314 : if (!rtx_equal_p (x8, operands[2])
29315 : || !
29316 : #line 27453 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29317 : (TARGET_XOP))
29318 : return NULL;
29319 : return gen_split_3834 (insn, operands);
29320 :
29321 : case E_V32HImode:
29322 : if (pattern1203 (x2,
29323 : E_V32HImode) != 0
29324 : || !((
29325 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29326 : ((64 == 64 || TARGET_AVX512VL
29327 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29328 : && ix86_pre_reload_split ()
29329 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29330 : STRIP_UNARY (operands[4]))
29331 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29332 : STRIP_UNARY (operands[4]))
29333 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29334 : STRIP_UNARY (operands[3]))
29335 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29336 : STRIP_UNARY (operands[3])))) &&
29337 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29338 : (TARGET_AVX512F)) &&
29339 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29340 : ( 1)))
29341 : return NULL;
29342 : return gen_split_2476 (insn, operands);
29343 :
29344 : case E_V16HImode:
29345 : if (pattern1017 (x2,
29346 : E_V16HImode) != 0)
29347 : return NULL;
29348 : if (regmem_or_bitnot_regmem_operand (operands[1], E_V16HImode)
29349 : && regmem_or_bitnot_regmem_operand (operands[2], E_V16HImode)
29350 : && regmem_or_bitnot_regmem_operand (operands[3], E_V16HImode))
29351 : {
29352 : x8 = XEXP (x2, 1);
29353 : operands[4] = x8;
29354 : if (regmem_or_bitnot_regmem_operand (operands[4], E_V16HImode)
29355 : && ((
29356 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29357 : ((32 == 64 || TARGET_AVX512VL
29358 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29359 : && ix86_pre_reload_split ()
29360 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29361 : STRIP_UNARY (operands[4]))
29362 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29363 : STRIP_UNARY (operands[4]))
29364 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29365 : STRIP_UNARY (operands[3]))
29366 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29367 : STRIP_UNARY (operands[3])))) &&
29368 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29369 : (TARGET_AVX)) &&
29370 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29371 : ( 1)))
29372 : return gen_split_2503 (insn, operands);
29373 : }
29374 : if (!register_operand (operands[1], E_V16HImode)
29375 : || !register_operand (operands[2], E_V16HImode)
29376 : || !nonimmediate_operand (operands[3], E_V16HImode))
29377 : return NULL;
29378 : x8 = XEXP (x2, 1);
29379 : if (rtx_equal_p (x8, operands[1])
29380 : &&
29381 : #line 27441 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29382 : (TARGET_XOP))
29383 : return gen_split_3819 (insn, operands);
29384 : if (!rtx_equal_p (x8, operands[2])
29385 : || !
29386 : #line 27453 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29387 : (TARGET_XOP))
29388 : return NULL;
29389 : return gen_split_3835 (insn, operands);
29390 :
29391 : case E_V8HImode:
29392 : if (pattern1017 (x2,
29393 : E_V8HImode) != 0)
29394 : return NULL;
29395 : if (regmem_or_bitnot_regmem_operand (operands[1], E_V8HImode)
29396 : && regmem_or_bitnot_regmem_operand (operands[2], E_V8HImode)
29397 : && regmem_or_bitnot_regmem_operand (operands[3], E_V8HImode))
29398 : {
29399 : x8 = XEXP (x2, 1);
29400 : operands[4] = x8;
29401 : if (regmem_or_bitnot_regmem_operand (operands[4], E_V8HImode)
29402 : && (
29403 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29404 : ((16 == 64 || TARGET_AVX512VL
29405 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29406 : && ix86_pre_reload_split ()
29407 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29408 : STRIP_UNARY (operands[4]))
29409 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29410 : STRIP_UNARY (operands[4]))
29411 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29412 : STRIP_UNARY (operands[3]))
29413 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29414 : STRIP_UNARY (operands[3])))) &&
29415 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29416 : ( 1)))
29417 : return gen_split_2530 (insn, operands);
29418 : }
29419 : if (!register_operand (operands[1], E_V8HImode)
29420 : || !register_operand (operands[2], E_V8HImode)
29421 : || !nonimmediate_operand (operands[3], E_V8HImode))
29422 : return NULL;
29423 : x8 = XEXP (x2, 1);
29424 : if (rtx_equal_p (x8, operands[1])
29425 : &&
29426 : #line 27441 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29427 : (TARGET_XOP))
29428 : return gen_split_3820 (insn, operands);
29429 : if (!rtx_equal_p (x8, operands[2])
29430 : || !
29431 : #line 27453 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29432 : (TARGET_XOP))
29433 : return NULL;
29434 : return gen_split_3836 (insn, operands);
29435 :
29436 : case E_V16SImode:
29437 : if (pattern1203 (x2,
29438 : E_V16SImode) != 0
29439 : || !((
29440 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29441 : ((64 == 64 || TARGET_AVX512VL
29442 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29443 : && ix86_pre_reload_split ()
29444 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29445 : STRIP_UNARY (operands[4]))
29446 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29447 : STRIP_UNARY (operands[4]))
29448 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29449 : STRIP_UNARY (operands[3]))
29450 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29451 : STRIP_UNARY (operands[3])))) &&
29452 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29453 : (TARGET_AVX512F)) &&
29454 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29455 : ( 1)))
29456 : return NULL;
29457 : return gen_split_2557 (insn, operands);
29458 :
29459 : case E_V8SImode:
29460 : if (pattern1017 (x2,
29461 : E_V8SImode) != 0)
29462 : return NULL;
29463 : if (regmem_or_bitnot_regmem_operand (operands[1], E_V8SImode)
29464 : && regmem_or_bitnot_regmem_operand (operands[2], E_V8SImode)
29465 : && regmem_or_bitnot_regmem_operand (operands[3], E_V8SImode))
29466 : {
29467 : x8 = XEXP (x2, 1);
29468 : operands[4] = x8;
29469 : if (regmem_or_bitnot_regmem_operand (operands[4], E_V8SImode)
29470 : && ((
29471 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29472 : ((32 == 64 || TARGET_AVX512VL
29473 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29474 : && ix86_pre_reload_split ()
29475 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29476 : STRIP_UNARY (operands[4]))
29477 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29478 : STRIP_UNARY (operands[4]))
29479 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29480 : STRIP_UNARY (operands[3]))
29481 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29482 : STRIP_UNARY (operands[3])))) &&
29483 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29484 : (TARGET_AVX)) &&
29485 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29486 : ( 1)))
29487 : return gen_split_2584 (insn, operands);
29488 : }
29489 : if (!register_operand (operands[1], E_V8SImode)
29490 : || !register_operand (operands[2], E_V8SImode)
29491 : || !nonimmediate_operand (operands[3], E_V8SImode))
29492 : return NULL;
29493 : x8 = XEXP (x2, 1);
29494 : if (rtx_equal_p (x8, operands[1])
29495 : &&
29496 : #line 27441 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29497 : (TARGET_XOP))
29498 : return gen_split_3821 (insn, operands);
29499 : if (!rtx_equal_p (x8, operands[2])
29500 : || !
29501 : #line 27453 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29502 : (TARGET_XOP))
29503 : return NULL;
29504 : return gen_split_3837 (insn, operands);
29505 :
29506 : case E_V4SImode:
29507 : if (pattern1017 (x2,
29508 : E_V4SImode) != 0)
29509 : return NULL;
29510 : if (regmem_or_bitnot_regmem_operand (operands[1], E_V4SImode)
29511 : && regmem_or_bitnot_regmem_operand (operands[2], E_V4SImode)
29512 : && regmem_or_bitnot_regmem_operand (operands[3], E_V4SImode))
29513 : {
29514 : x8 = XEXP (x2, 1);
29515 : operands[4] = x8;
29516 : if (regmem_or_bitnot_regmem_operand (operands[4], E_V4SImode)
29517 : && (
29518 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29519 : ((16 == 64 || TARGET_AVX512VL
29520 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29521 : && ix86_pre_reload_split ()
29522 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29523 : STRIP_UNARY (operands[4]))
29524 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29525 : STRIP_UNARY (operands[4]))
29526 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29527 : STRIP_UNARY (operands[3]))
29528 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29529 : STRIP_UNARY (operands[3])))) &&
29530 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29531 : ( 1)))
29532 : return gen_split_2611 (insn, operands);
29533 : }
29534 : if (!register_operand (operands[1], E_V4SImode)
29535 : || !register_operand (operands[2], E_V4SImode)
29536 : || !nonimmediate_operand (operands[3], E_V4SImode))
29537 : return NULL;
29538 : x8 = XEXP (x2, 1);
29539 : if (rtx_equal_p (x8, operands[1])
29540 : &&
29541 : #line 27441 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29542 : (TARGET_XOP))
29543 : return gen_split_3822 (insn, operands);
29544 : if (!rtx_equal_p (x8, operands[2])
29545 : || !
29546 : #line 27453 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29547 : (TARGET_XOP))
29548 : return NULL;
29549 : return gen_split_3838 (insn, operands);
29550 :
29551 : case E_V8DImode:
29552 : if (pattern1203 (x2,
29553 : E_V8DImode) != 0
29554 : || !((
29555 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29556 : ((64 == 64 || TARGET_AVX512VL
29557 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29558 : && ix86_pre_reload_split ()
29559 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29560 : STRIP_UNARY (operands[4]))
29561 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29562 : STRIP_UNARY (operands[4]))
29563 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29564 : STRIP_UNARY (operands[3]))
29565 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29566 : STRIP_UNARY (operands[3])))) &&
29567 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29568 : (TARGET_AVX512F)) &&
29569 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29570 : ( 1)))
29571 : return NULL;
29572 : return gen_split_2638 (insn, operands);
29573 :
29574 : case E_V4DImode:
29575 : if (pattern1017 (x2,
29576 : E_V4DImode) != 0)
29577 : return NULL;
29578 : if (regmem_or_bitnot_regmem_operand (operands[1], E_V4DImode)
29579 : && regmem_or_bitnot_regmem_operand (operands[2], E_V4DImode)
29580 : && regmem_or_bitnot_regmem_operand (operands[3], E_V4DImode))
29581 : {
29582 : x8 = XEXP (x2, 1);
29583 : operands[4] = x8;
29584 : if (regmem_or_bitnot_regmem_operand (operands[4], E_V4DImode)
29585 : && ((
29586 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29587 : ((32 == 64 || TARGET_AVX512VL
29588 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29589 : && ix86_pre_reload_split ()
29590 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29591 : STRIP_UNARY (operands[4]))
29592 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29593 : STRIP_UNARY (operands[4]))
29594 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29595 : STRIP_UNARY (operands[3]))
29596 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29597 : STRIP_UNARY (operands[3])))) &&
29598 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29599 : (TARGET_AVX)) &&
29600 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29601 : ( 1)))
29602 : return gen_split_2665 (insn, operands);
29603 : }
29604 : if (!register_operand (operands[1], E_V4DImode)
29605 : || !register_operand (operands[2], E_V4DImode)
29606 : || !nonimmediate_operand (operands[3], E_V4DImode))
29607 : return NULL;
29608 : x8 = XEXP (x2, 1);
29609 : if (rtx_equal_p (x8, operands[1])
29610 : &&
29611 : #line 27441 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29612 : (TARGET_XOP))
29613 : return gen_split_3823 (insn, operands);
29614 : if (!rtx_equal_p (x8, operands[2])
29615 : || !
29616 : #line 27453 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29617 : (TARGET_XOP))
29618 : return NULL;
29619 : return gen_split_3839 (insn, operands);
29620 :
29621 : case E_V2DImode:
29622 : if (pattern1017 (x2,
29623 : E_V2DImode) != 0)
29624 : return NULL;
29625 : if (regmem_or_bitnot_regmem_operand (operands[1], E_V2DImode)
29626 : && regmem_or_bitnot_regmem_operand (operands[2], E_V2DImode)
29627 : && regmem_or_bitnot_regmem_operand (operands[3], E_V2DImode))
29628 : {
29629 : x8 = XEXP (x2, 1);
29630 : operands[4] = x8;
29631 : if (regmem_or_bitnot_regmem_operand (operands[4], E_V2DImode)
29632 : && (
29633 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29634 : ((16 == 64 || TARGET_AVX512VL
29635 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29636 : && ix86_pre_reload_split ()
29637 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29638 : STRIP_UNARY (operands[4]))
29639 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29640 : STRIP_UNARY (operands[4]))
29641 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29642 : STRIP_UNARY (operands[3]))
29643 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29644 : STRIP_UNARY (operands[3])))) &&
29645 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29646 : ( 1)))
29647 : return gen_split_2692 (insn, operands);
29648 : }
29649 : if (!register_operand (operands[1], E_V2DImode)
29650 : || !register_operand (operands[2], E_V2DImode)
29651 : || !nonimmediate_operand (operands[3], E_V2DImode))
29652 : return NULL;
29653 : x8 = XEXP (x2, 1);
29654 : if (rtx_equal_p (x8, operands[1])
29655 : &&
29656 : #line 27441 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29657 : (TARGET_XOP))
29658 : return gen_split_3824 (insn, operands);
29659 : if (!rtx_equal_p (x8, operands[2])
29660 : || !
29661 : #line 27453 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29662 : (TARGET_XOP))
29663 : return NULL;
29664 : return gen_split_3840 (insn, operands);
29665 :
29666 : case E_V2TImode:
29667 : if (pattern1204 (x2,
29668 : E_V2TImode) != 0)
29669 : return NULL;
29670 : x8 = XEXP (x2, 1);
29671 : if (rtx_equal_p (x8, operands[1])
29672 : &&
29673 : #line 27441 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29674 : (TARGET_XOP))
29675 : return gen_split_3825 (insn, operands);
29676 : if (!rtx_equal_p (x8, operands[2])
29677 : || !
29678 : #line 27453 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29679 : (TARGET_XOP))
29680 : return NULL;
29681 : return gen_split_3841 (insn, operands);
29682 :
29683 : case E_V1TImode:
29684 : if (pattern1204 (x2,
29685 : E_V1TImode) != 0)
29686 : return NULL;
29687 : x8 = XEXP (x2, 1);
29688 : if (rtx_equal_p (x8, operands[1])
29689 : &&
29690 : #line 27441 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29691 : (TARGET_XOP))
29692 : return gen_split_3826 (insn, operands);
29693 : if (!rtx_equal_p (x8, operands[2])
29694 : || !
29695 : #line 27453 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29696 : (TARGET_XOP))
29697 : return NULL;
29698 : return gen_split_3842 (insn, operands);
29699 :
29700 : default:
29701 : return NULL;
29702 : }
29703 :
29704 : default:
29705 : return NULL;
29706 : }
29707 : }
29708 :
29709 : rtx_insn *
29710 : split_82 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
29711 : {
29712 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
29713 : rtx x2, x3, x4, x5;
29714 : rtx_insn *res ATTRIBUTE_UNUSED;
29715 : x2 = XEXP (x1, 1);
29716 : switch (GET_CODE (x2))
29717 : {
29718 : case AND:
29719 : res = split_64 (x1, insn);
29720 : if (res != NULL_RTX)
29721 : return res;
29722 : break;
29723 :
29724 : case IOR:
29725 : res = split_71 (x1, insn);
29726 : if (res != NULL_RTX)
29727 : return res;
29728 : break;
29729 :
29730 : case XOR:
29731 : x3 = XEXP (x2, 0);
29732 : switch (GET_CODE (x3))
29733 : {
29734 : case AND:
29735 : res = split_66 (x1, insn);
29736 : if (res != NULL_RTX)
29737 : return res;
29738 : break;
29739 :
29740 : case IOR:
29741 : res = split_67 (x1, insn);
29742 : if (res != NULL_RTX)
29743 : return res;
29744 : break;
29745 :
29746 : case XOR:
29747 : x4 = XEXP (x3, 0);
29748 : switch (GET_CODE (x4))
29749 : {
29750 : case REG:
29751 : case SUBREG:
29752 : case MEM:
29753 : case NOT:
29754 : switch (pattern537 (x2))
29755 : {
29756 : case 0:
29757 : if (((
29758 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29759 : ((64 == 64 || TARGET_AVX512VL
29760 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29761 : && ix86_pre_reload_split ()
29762 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29763 : STRIP_UNARY (operands[4]))
29764 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29765 : STRIP_UNARY (operands[4]))
29766 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29767 : STRIP_UNARY (operands[3]))
29768 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29769 : STRIP_UNARY (operands[3])))) &&
29770 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29771 : (TARGET_AVX512F)) &&
29772 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29773 : ( 1)))
29774 : return gen_split_1759 (insn, operands);
29775 : break;
29776 :
29777 : case 1:
29778 : if (((
29779 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29780 : ((32 == 64 || TARGET_AVX512VL
29781 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29782 : && ix86_pre_reload_split ()
29783 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29784 : STRIP_UNARY (operands[4]))
29785 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29786 : STRIP_UNARY (operands[4]))
29787 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29788 : STRIP_UNARY (operands[3]))
29789 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29790 : STRIP_UNARY (operands[3])))) &&
29791 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29792 : (TARGET_AVX)) &&
29793 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29794 : ( 1)))
29795 : return gen_split_1786 (insn, operands);
29796 : break;
29797 :
29798 : case 2:
29799 : if ((
29800 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29801 : ((16 == 64 || TARGET_AVX512VL
29802 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29803 : && ix86_pre_reload_split ()
29804 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29805 : STRIP_UNARY (operands[4]))
29806 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29807 : STRIP_UNARY (operands[4]))
29808 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29809 : STRIP_UNARY (operands[3]))
29810 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29811 : STRIP_UNARY (operands[3])))) &&
29812 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29813 : ( 1)))
29814 : return gen_split_1813 (insn, operands);
29815 : break;
29816 :
29817 : case 3:
29818 : if (((
29819 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29820 : ((64 == 64 || TARGET_AVX512VL
29821 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29822 : && ix86_pre_reload_split ()
29823 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29824 : STRIP_UNARY (operands[4]))
29825 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29826 : STRIP_UNARY (operands[4]))
29827 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29828 : STRIP_UNARY (operands[3]))
29829 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29830 : STRIP_UNARY (operands[3])))) &&
29831 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29832 : (TARGET_AVX512F)) &&
29833 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29834 : ( 1)))
29835 : return gen_split_1840 (insn, operands);
29836 : break;
29837 :
29838 : case 4:
29839 : if (((
29840 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29841 : ((32 == 64 || TARGET_AVX512VL
29842 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29843 : && ix86_pre_reload_split ()
29844 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29845 : STRIP_UNARY (operands[4]))
29846 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29847 : STRIP_UNARY (operands[4]))
29848 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29849 : STRIP_UNARY (operands[3]))
29850 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29851 : STRIP_UNARY (operands[3])))) &&
29852 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29853 : (TARGET_AVX)) &&
29854 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29855 : ( 1)))
29856 : return gen_split_1867 (insn, operands);
29857 : break;
29858 :
29859 : case 5:
29860 : if ((
29861 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29862 : ((16 == 64 || TARGET_AVX512VL
29863 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29864 : && ix86_pre_reload_split ()
29865 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29866 : STRIP_UNARY (operands[4]))
29867 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29868 : STRIP_UNARY (operands[4]))
29869 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29870 : STRIP_UNARY (operands[3]))
29871 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29872 : STRIP_UNARY (operands[3])))) &&
29873 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29874 : ( 1)))
29875 : return gen_split_1894 (insn, operands);
29876 : break;
29877 :
29878 : case 6:
29879 : if (((
29880 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29881 : ((64 == 64 || TARGET_AVX512VL
29882 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29883 : && ix86_pre_reload_split ()
29884 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29885 : STRIP_UNARY (operands[4]))
29886 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29887 : STRIP_UNARY (operands[4]))
29888 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29889 : STRIP_UNARY (operands[3]))
29890 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29891 : STRIP_UNARY (operands[3])))) &&
29892 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29893 : (TARGET_AVX512F)) &&
29894 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29895 : ( 1)))
29896 : return gen_split_1921 (insn, operands);
29897 : break;
29898 :
29899 : case 7:
29900 : if (((
29901 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29902 : ((32 == 64 || TARGET_AVX512VL
29903 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29904 : && ix86_pre_reload_split ()
29905 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29906 : STRIP_UNARY (operands[4]))
29907 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29908 : STRIP_UNARY (operands[4]))
29909 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29910 : STRIP_UNARY (operands[3]))
29911 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29912 : STRIP_UNARY (operands[3])))) &&
29913 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29914 : (TARGET_AVX)) &&
29915 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29916 : ( 1)))
29917 : return gen_split_1948 (insn, operands);
29918 : break;
29919 :
29920 : case 8:
29921 : if ((
29922 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29923 : ((16 == 64 || TARGET_AVX512VL
29924 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29925 : && ix86_pre_reload_split ()
29926 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29927 : STRIP_UNARY (operands[4]))
29928 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29929 : STRIP_UNARY (operands[4]))
29930 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29931 : STRIP_UNARY (operands[3]))
29932 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29933 : STRIP_UNARY (operands[3])))) &&
29934 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29935 : ( 1)))
29936 : return gen_split_1975 (insn, operands);
29937 : break;
29938 :
29939 : case 9:
29940 : if (((
29941 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29942 : ((64 == 64 || TARGET_AVX512VL
29943 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29944 : && ix86_pre_reload_split ()
29945 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29946 : STRIP_UNARY (operands[4]))
29947 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29948 : STRIP_UNARY (operands[4]))
29949 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29950 : STRIP_UNARY (operands[3]))
29951 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29952 : STRIP_UNARY (operands[3])))) &&
29953 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29954 : (TARGET_AVX512F)) &&
29955 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29956 : ( 1)))
29957 : return gen_split_2002 (insn, operands);
29958 : break;
29959 :
29960 : case 10:
29961 : if (((
29962 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29963 : ((32 == 64 || TARGET_AVX512VL
29964 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29965 : && ix86_pre_reload_split ()
29966 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29967 : STRIP_UNARY (operands[4]))
29968 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29969 : STRIP_UNARY (operands[4]))
29970 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29971 : STRIP_UNARY (operands[3]))
29972 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29973 : STRIP_UNARY (operands[3])))) &&
29974 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29975 : (TARGET_AVX)) &&
29976 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29977 : ( 1)))
29978 : return gen_split_2029 (insn, operands);
29979 : break;
29980 :
29981 : case 11:
29982 : if ((
29983 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29984 : ((16 == 64 || TARGET_AVX512VL
29985 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29986 : && ix86_pre_reload_split ()
29987 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29988 : STRIP_UNARY (operands[4]))
29989 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29990 : STRIP_UNARY (operands[4]))
29991 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29992 : STRIP_UNARY (operands[3]))
29993 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29994 : STRIP_UNARY (operands[3])))) &&
29995 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29996 : ( 1)))
29997 : return gen_split_2056 (insn, operands);
29998 : break;
29999 :
30000 : case 12:
30001 : if (((
30002 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30003 : ((64 == 64 || TARGET_AVX512VL
30004 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30005 : && ix86_pre_reload_split ()
30006 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30007 : STRIP_UNARY (operands[4]))
30008 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30009 : STRIP_UNARY (operands[4]))
30010 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30011 : STRIP_UNARY (operands[3]))
30012 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30013 : STRIP_UNARY (operands[3])))) &&
30014 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30015 : (TARGET_AVX512F)) &&
30016 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30017 : ( 1)))
30018 : return gen_split_1762 (insn, operands);
30019 : break;
30020 :
30021 : case 13:
30022 : if (((
30023 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30024 : ((32 == 64 || TARGET_AVX512VL
30025 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30026 : && ix86_pre_reload_split ()
30027 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30028 : STRIP_UNARY (operands[4]))
30029 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30030 : STRIP_UNARY (operands[4]))
30031 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30032 : STRIP_UNARY (operands[3]))
30033 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30034 : STRIP_UNARY (operands[3])))) &&
30035 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30036 : (TARGET_AVX)) &&
30037 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30038 : ( 1)))
30039 : return gen_split_1789 (insn, operands);
30040 : break;
30041 :
30042 : case 14:
30043 : if ((
30044 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30045 : ((16 == 64 || TARGET_AVX512VL
30046 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30047 : && ix86_pre_reload_split ()
30048 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30049 : STRIP_UNARY (operands[4]))
30050 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30051 : STRIP_UNARY (operands[4]))
30052 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30053 : STRIP_UNARY (operands[3]))
30054 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30055 : STRIP_UNARY (operands[3])))) &&
30056 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30057 : ( 1)))
30058 : return gen_split_1816 (insn, operands);
30059 : break;
30060 :
30061 : case 15:
30062 : if (((
30063 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30064 : ((64 == 64 || TARGET_AVX512VL
30065 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30066 : && ix86_pre_reload_split ()
30067 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30068 : STRIP_UNARY (operands[4]))
30069 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30070 : STRIP_UNARY (operands[4]))
30071 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30072 : STRIP_UNARY (operands[3]))
30073 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30074 : STRIP_UNARY (operands[3])))) &&
30075 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30076 : (TARGET_AVX512F)) &&
30077 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30078 : ( 1)))
30079 : return gen_split_1843 (insn, operands);
30080 : break;
30081 :
30082 : case 16:
30083 : if (((
30084 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30085 : ((32 == 64 || TARGET_AVX512VL
30086 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30087 : && ix86_pre_reload_split ()
30088 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30089 : STRIP_UNARY (operands[4]))
30090 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30091 : STRIP_UNARY (operands[4]))
30092 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30093 : STRIP_UNARY (operands[3]))
30094 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30095 : STRIP_UNARY (operands[3])))) &&
30096 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30097 : (TARGET_AVX)) &&
30098 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30099 : ( 1)))
30100 : return gen_split_1870 (insn, operands);
30101 : break;
30102 :
30103 : case 17:
30104 : if ((
30105 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30106 : ((16 == 64 || TARGET_AVX512VL
30107 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30108 : && ix86_pre_reload_split ()
30109 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30110 : STRIP_UNARY (operands[4]))
30111 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30112 : STRIP_UNARY (operands[4]))
30113 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30114 : STRIP_UNARY (operands[3]))
30115 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30116 : STRIP_UNARY (operands[3])))) &&
30117 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30118 : ( 1)))
30119 : return gen_split_1897 (insn, operands);
30120 : break;
30121 :
30122 : case 18:
30123 : if (((
30124 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30125 : ((64 == 64 || TARGET_AVX512VL
30126 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30127 : && ix86_pre_reload_split ()
30128 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30129 : STRIP_UNARY (operands[4]))
30130 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30131 : STRIP_UNARY (operands[4]))
30132 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30133 : STRIP_UNARY (operands[3]))
30134 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30135 : STRIP_UNARY (operands[3])))) &&
30136 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30137 : (TARGET_AVX512F)) &&
30138 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30139 : ( 1)))
30140 : return gen_split_1924 (insn, operands);
30141 : break;
30142 :
30143 : case 19:
30144 : if (((
30145 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30146 : ((32 == 64 || TARGET_AVX512VL
30147 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30148 : && ix86_pre_reload_split ()
30149 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30150 : STRIP_UNARY (operands[4]))
30151 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30152 : STRIP_UNARY (operands[4]))
30153 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30154 : STRIP_UNARY (operands[3]))
30155 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30156 : STRIP_UNARY (operands[3])))) &&
30157 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30158 : (TARGET_AVX)) &&
30159 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30160 : ( 1)))
30161 : return gen_split_1951 (insn, operands);
30162 : break;
30163 :
30164 : case 20:
30165 : if ((
30166 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30167 : ((16 == 64 || TARGET_AVX512VL
30168 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30169 : && ix86_pre_reload_split ()
30170 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30171 : STRIP_UNARY (operands[4]))
30172 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30173 : STRIP_UNARY (operands[4]))
30174 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30175 : STRIP_UNARY (operands[3]))
30176 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30177 : STRIP_UNARY (operands[3])))) &&
30178 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30179 : ( 1)))
30180 : return gen_split_1978 (insn, operands);
30181 : break;
30182 :
30183 : case 21:
30184 : if (((
30185 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30186 : ((64 == 64 || TARGET_AVX512VL
30187 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30188 : && ix86_pre_reload_split ()
30189 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30190 : STRIP_UNARY (operands[4]))
30191 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30192 : STRIP_UNARY (operands[4]))
30193 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30194 : STRIP_UNARY (operands[3]))
30195 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30196 : STRIP_UNARY (operands[3])))) &&
30197 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30198 : (TARGET_AVX512F)) &&
30199 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30200 : ( 1)))
30201 : return gen_split_2005 (insn, operands);
30202 : break;
30203 :
30204 : case 22:
30205 : if (((
30206 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30207 : ((32 == 64 || TARGET_AVX512VL
30208 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30209 : && ix86_pre_reload_split ()
30210 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30211 : STRIP_UNARY (operands[4]))
30212 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30213 : STRIP_UNARY (operands[4]))
30214 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30215 : STRIP_UNARY (operands[3]))
30216 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30217 : STRIP_UNARY (operands[3])))) &&
30218 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30219 : (TARGET_AVX)) &&
30220 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30221 : ( 1)))
30222 : return gen_split_2032 (insn, operands);
30223 : break;
30224 :
30225 : case 23:
30226 : if ((
30227 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30228 : ((16 == 64 || TARGET_AVX512VL
30229 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30230 : && ix86_pre_reload_split ()
30231 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30232 : STRIP_UNARY (operands[4]))
30233 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30234 : STRIP_UNARY (operands[4]))
30235 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30236 : STRIP_UNARY (operands[3]))
30237 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30238 : STRIP_UNARY (operands[3])))) &&
30239 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30240 : ( 1)))
30241 : return gen_split_2059 (insn, operands);
30242 : break;
30243 :
30244 : case 24:
30245 : if (((
30246 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30247 : ((64 == 64 || TARGET_AVX512VL
30248 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30249 : && ix86_pre_reload_split ()
30250 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30251 : STRIP_UNARY (operands[4]))
30252 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30253 : STRIP_UNARY (operands[4]))
30254 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30255 : STRIP_UNARY (operands[3]))
30256 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30257 : STRIP_UNARY (operands[3])))) &&
30258 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30259 : (TARGET_AVX512F)) &&
30260 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30261 : ( 1)))
30262 : return gen_split_1765 (insn, operands);
30263 : break;
30264 :
30265 : case 25:
30266 : if (((
30267 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30268 : ((32 == 64 || TARGET_AVX512VL
30269 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30270 : && ix86_pre_reload_split ()
30271 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30272 : STRIP_UNARY (operands[4]))
30273 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30274 : STRIP_UNARY (operands[4]))
30275 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30276 : STRIP_UNARY (operands[3]))
30277 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30278 : STRIP_UNARY (operands[3])))) &&
30279 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30280 : (TARGET_AVX)) &&
30281 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30282 : ( 1)))
30283 : return gen_split_1792 (insn, operands);
30284 : break;
30285 :
30286 : case 26:
30287 : if ((
30288 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30289 : ((16 == 64 || TARGET_AVX512VL
30290 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30291 : && ix86_pre_reload_split ()
30292 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30293 : STRIP_UNARY (operands[4]))
30294 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30295 : STRIP_UNARY (operands[4]))
30296 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30297 : STRIP_UNARY (operands[3]))
30298 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30299 : STRIP_UNARY (operands[3])))) &&
30300 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30301 : ( 1)))
30302 : return gen_split_1819 (insn, operands);
30303 : break;
30304 :
30305 : case 27:
30306 : if (((
30307 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30308 : ((64 == 64 || TARGET_AVX512VL
30309 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30310 : && ix86_pre_reload_split ()
30311 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30312 : STRIP_UNARY (operands[4]))
30313 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30314 : STRIP_UNARY (operands[4]))
30315 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30316 : STRIP_UNARY (operands[3]))
30317 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30318 : STRIP_UNARY (operands[3])))) &&
30319 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30320 : (TARGET_AVX512F)) &&
30321 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30322 : ( 1)))
30323 : return gen_split_1846 (insn, operands);
30324 : break;
30325 :
30326 : case 28:
30327 : if (((
30328 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30329 : ((32 == 64 || TARGET_AVX512VL
30330 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30331 : && ix86_pre_reload_split ()
30332 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30333 : STRIP_UNARY (operands[4]))
30334 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30335 : STRIP_UNARY (operands[4]))
30336 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30337 : STRIP_UNARY (operands[3]))
30338 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30339 : STRIP_UNARY (operands[3])))) &&
30340 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30341 : (TARGET_AVX)) &&
30342 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30343 : ( 1)))
30344 : return gen_split_1873 (insn, operands);
30345 : break;
30346 :
30347 : case 29:
30348 : if ((
30349 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30350 : ((16 == 64 || TARGET_AVX512VL
30351 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30352 : && ix86_pre_reload_split ()
30353 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30354 : STRIP_UNARY (operands[4]))
30355 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30356 : STRIP_UNARY (operands[4]))
30357 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30358 : STRIP_UNARY (operands[3]))
30359 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30360 : STRIP_UNARY (operands[3])))) &&
30361 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30362 : ( 1)))
30363 : return gen_split_1900 (insn, operands);
30364 : break;
30365 :
30366 : case 30:
30367 : if (((
30368 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30369 : ((64 == 64 || TARGET_AVX512VL
30370 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30371 : && ix86_pre_reload_split ()
30372 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30373 : STRIP_UNARY (operands[4]))
30374 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30375 : STRIP_UNARY (operands[4]))
30376 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30377 : STRIP_UNARY (operands[3]))
30378 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30379 : STRIP_UNARY (operands[3])))) &&
30380 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30381 : (TARGET_AVX512F)) &&
30382 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30383 : ( 1)))
30384 : return gen_split_1927 (insn, operands);
30385 : break;
30386 :
30387 : case 31:
30388 : if (((
30389 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30390 : ((32 == 64 || TARGET_AVX512VL
30391 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30392 : && ix86_pre_reload_split ()
30393 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30394 : STRIP_UNARY (operands[4]))
30395 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30396 : STRIP_UNARY (operands[4]))
30397 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30398 : STRIP_UNARY (operands[3]))
30399 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30400 : STRIP_UNARY (operands[3])))) &&
30401 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30402 : (TARGET_AVX)) &&
30403 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30404 : ( 1)))
30405 : return gen_split_1954 (insn, operands);
30406 : break;
30407 :
30408 : case 32:
30409 : if ((
30410 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30411 : ((16 == 64 || TARGET_AVX512VL
30412 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30413 : && ix86_pre_reload_split ()
30414 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30415 : STRIP_UNARY (operands[4]))
30416 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30417 : STRIP_UNARY (operands[4]))
30418 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30419 : STRIP_UNARY (operands[3]))
30420 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30421 : STRIP_UNARY (operands[3])))) &&
30422 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30423 : ( 1)))
30424 : return gen_split_1981 (insn, operands);
30425 : break;
30426 :
30427 : case 33:
30428 : if (((
30429 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30430 : ((64 == 64 || TARGET_AVX512VL
30431 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30432 : && ix86_pre_reload_split ()
30433 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30434 : STRIP_UNARY (operands[4]))
30435 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30436 : STRIP_UNARY (operands[4]))
30437 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30438 : STRIP_UNARY (operands[3]))
30439 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30440 : STRIP_UNARY (operands[3])))) &&
30441 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30442 : (TARGET_AVX512F)) &&
30443 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30444 : ( 1)))
30445 : return gen_split_2008 (insn, operands);
30446 : break;
30447 :
30448 : case 34:
30449 : if (((
30450 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30451 : ((32 == 64 || TARGET_AVX512VL
30452 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30453 : && ix86_pre_reload_split ()
30454 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30455 : STRIP_UNARY (operands[4]))
30456 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30457 : STRIP_UNARY (operands[4]))
30458 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30459 : STRIP_UNARY (operands[3]))
30460 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30461 : STRIP_UNARY (operands[3])))) &&
30462 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30463 : (TARGET_AVX)) &&
30464 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30465 : ( 1)))
30466 : return gen_split_2035 (insn, operands);
30467 : break;
30468 :
30469 : case 35:
30470 : if ((
30471 : #line 14493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30472 : ((16 == 64 || TARGET_AVX512VL
30473 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30474 : && ix86_pre_reload_split ()
30475 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30476 : STRIP_UNARY (operands[4]))
30477 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30478 : STRIP_UNARY (operands[4]))
30479 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30480 : STRIP_UNARY (operands[3]))
30481 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30482 : STRIP_UNARY (operands[3])))) &&
30483 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30484 : ( 1)))
30485 : return gen_split_2062 (insn, operands);
30486 : break;
30487 :
30488 : case 36:
30489 : if (((
30490 : #line 14662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30491 : ((64 == 64 || TARGET_AVX512VL
30492 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30493 : && ix86_pre_reload_split ()) &&
30494 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30495 : (TARGET_AVX512F)) &&
30496 : #line 14666 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30497 : ( 1)))
30498 : return gen_split_3043 (insn, operands);
30499 : break;
30500 :
30501 : case 37:
30502 : if (((
30503 : #line 14662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30504 : ((32 == 64 || TARGET_AVX512VL
30505 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30506 : && ix86_pre_reload_split ()) &&
30507 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30508 : (TARGET_AVX)) &&
30509 : #line 14666 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30510 : ( 1)))
30511 : return gen_split_3052 (insn, operands);
30512 : break;
30513 :
30514 : case 38:
30515 : if ((
30516 : #line 14662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30517 : ((16 == 64 || TARGET_AVX512VL
30518 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30519 : && ix86_pre_reload_split ()) &&
30520 : #line 14666 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30521 : ( 1)))
30522 : return gen_split_3061 (insn, operands);
30523 : break;
30524 :
30525 : case 39:
30526 : if (((
30527 : #line 14662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30528 : ((64 == 64 || TARGET_AVX512VL
30529 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30530 : && ix86_pre_reload_split ()) &&
30531 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30532 : (TARGET_AVX512F)) &&
30533 : #line 14666 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30534 : ( 1)))
30535 : return gen_split_3070 (insn, operands);
30536 : break;
30537 :
30538 : case 40:
30539 : if (((
30540 : #line 14662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30541 : ((32 == 64 || TARGET_AVX512VL
30542 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30543 : && ix86_pre_reload_split ()) &&
30544 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30545 : (TARGET_AVX)) &&
30546 : #line 14666 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30547 : ( 1)))
30548 : return gen_split_3079 (insn, operands);
30549 : break;
30550 :
30551 : case 41:
30552 : if ((
30553 : #line 14662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30554 : ((16 == 64 || TARGET_AVX512VL
30555 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30556 : && ix86_pre_reload_split ()) &&
30557 : #line 14666 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30558 : ( 1)))
30559 : return gen_split_3088 (insn, operands);
30560 : break;
30561 :
30562 : case 42:
30563 : if (((
30564 : #line 14662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30565 : ((64 == 64 || TARGET_AVX512VL
30566 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30567 : && ix86_pre_reload_split ()) &&
30568 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30569 : (TARGET_AVX512F)) &&
30570 : #line 14666 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30571 : ( 1)))
30572 : return gen_split_3097 (insn, operands);
30573 : break;
30574 :
30575 : case 43:
30576 : if (((
30577 : #line 14662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30578 : ((32 == 64 || TARGET_AVX512VL
30579 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30580 : && ix86_pre_reload_split ()) &&
30581 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30582 : (TARGET_AVX)) &&
30583 : #line 14666 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30584 : ( 1)))
30585 : return gen_split_3106 (insn, operands);
30586 : break;
30587 :
30588 : case 44:
30589 : if ((
30590 : #line 14662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30591 : ((16 == 64 || TARGET_AVX512VL
30592 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30593 : && ix86_pre_reload_split ()) &&
30594 : #line 14666 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30595 : ( 1)))
30596 : return gen_split_3115 (insn, operands);
30597 : break;
30598 :
30599 : case 45:
30600 : if (((
30601 : #line 14662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30602 : ((64 == 64 || TARGET_AVX512VL
30603 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30604 : && ix86_pre_reload_split ()) &&
30605 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30606 : (TARGET_AVX512F)) &&
30607 : #line 14666 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30608 : ( 1)))
30609 : return gen_split_3124 (insn, operands);
30610 : break;
30611 :
30612 : case 46:
30613 : if (((
30614 : #line 14662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30615 : ((32 == 64 || TARGET_AVX512VL
30616 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30617 : && ix86_pre_reload_split ()) &&
30618 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30619 : (TARGET_AVX)) &&
30620 : #line 14666 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30621 : ( 1)))
30622 : return gen_split_3133 (insn, operands);
30623 : break;
30624 :
30625 : case 47:
30626 : if ((
30627 : #line 14662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30628 : ((16 == 64 || TARGET_AVX512VL
30629 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30630 : && ix86_pre_reload_split ()) &&
30631 : #line 14666 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30632 : ( 1)))
30633 : return gen_split_3142 (insn, operands);
30634 : break;
30635 :
30636 : default:
30637 : break;
30638 : }
30639 : break;
30640 :
30641 : case AND:
30642 : switch (pattern539 (x2))
30643 : {
30644 : case 0:
30645 : if (((
30646 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30647 : ((64 == 64 || TARGET_AVX512VL
30648 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30649 : && ix86_pre_reload_split ()
30650 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30651 : STRIP_UNARY (operands[4]))
30652 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30653 : STRIP_UNARY (operands[4]))
30654 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30655 : STRIP_UNARY (operands[3]))
30656 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30657 : STRIP_UNARY (operands[3])))) &&
30658 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30659 : (TARGET_AVX512F)) &&
30660 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30661 : ( 1)))
30662 : return gen_split_2407 (insn, operands);
30663 : break;
30664 :
30665 : case 1:
30666 : if (((
30667 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30668 : ((32 == 64 || TARGET_AVX512VL
30669 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30670 : && ix86_pre_reload_split ()
30671 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30672 : STRIP_UNARY (operands[4]))
30673 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30674 : STRIP_UNARY (operands[4]))
30675 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30676 : STRIP_UNARY (operands[3]))
30677 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30678 : STRIP_UNARY (operands[3])))) &&
30679 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30680 : (TARGET_AVX)) &&
30681 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30682 : ( 1)))
30683 : return gen_split_2434 (insn, operands);
30684 : break;
30685 :
30686 : case 2:
30687 : if ((
30688 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30689 : ((16 == 64 || TARGET_AVX512VL
30690 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30691 : && ix86_pre_reload_split ()
30692 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30693 : STRIP_UNARY (operands[4]))
30694 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30695 : STRIP_UNARY (operands[4]))
30696 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30697 : STRIP_UNARY (operands[3]))
30698 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30699 : STRIP_UNARY (operands[3])))) &&
30700 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30701 : ( 1)))
30702 : return gen_split_2461 (insn, operands);
30703 : break;
30704 :
30705 : case 3:
30706 : if (((
30707 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30708 : ((64 == 64 || TARGET_AVX512VL
30709 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30710 : && ix86_pre_reload_split ()
30711 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30712 : STRIP_UNARY (operands[4]))
30713 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30714 : STRIP_UNARY (operands[4]))
30715 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30716 : STRIP_UNARY (operands[3]))
30717 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30718 : STRIP_UNARY (operands[3])))) &&
30719 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30720 : (TARGET_AVX512F)) &&
30721 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30722 : ( 1)))
30723 : return gen_split_2488 (insn, operands);
30724 : break;
30725 :
30726 : case 4:
30727 : if (((
30728 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30729 : ((32 == 64 || TARGET_AVX512VL
30730 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30731 : && ix86_pre_reload_split ()
30732 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30733 : STRIP_UNARY (operands[4]))
30734 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30735 : STRIP_UNARY (operands[4]))
30736 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30737 : STRIP_UNARY (operands[3]))
30738 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30739 : STRIP_UNARY (operands[3])))) &&
30740 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30741 : (TARGET_AVX)) &&
30742 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30743 : ( 1)))
30744 : return gen_split_2515 (insn, operands);
30745 : break;
30746 :
30747 : case 5:
30748 : if ((
30749 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30750 : ((16 == 64 || TARGET_AVX512VL
30751 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30752 : && ix86_pre_reload_split ()
30753 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30754 : STRIP_UNARY (operands[4]))
30755 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30756 : STRIP_UNARY (operands[4]))
30757 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30758 : STRIP_UNARY (operands[3]))
30759 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30760 : STRIP_UNARY (operands[3])))) &&
30761 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30762 : ( 1)))
30763 : return gen_split_2542 (insn, operands);
30764 : break;
30765 :
30766 : case 6:
30767 : if (((
30768 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30769 : ((64 == 64 || TARGET_AVX512VL
30770 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30771 : && ix86_pre_reload_split ()
30772 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30773 : STRIP_UNARY (operands[4]))
30774 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30775 : STRIP_UNARY (operands[4]))
30776 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30777 : STRIP_UNARY (operands[3]))
30778 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30779 : STRIP_UNARY (operands[3])))) &&
30780 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30781 : (TARGET_AVX512F)) &&
30782 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30783 : ( 1)))
30784 : return gen_split_2569 (insn, operands);
30785 : break;
30786 :
30787 : case 7:
30788 : if (((
30789 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30790 : ((32 == 64 || TARGET_AVX512VL
30791 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30792 : && ix86_pre_reload_split ()
30793 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30794 : STRIP_UNARY (operands[4]))
30795 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30796 : STRIP_UNARY (operands[4]))
30797 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30798 : STRIP_UNARY (operands[3]))
30799 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30800 : STRIP_UNARY (operands[3])))) &&
30801 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30802 : (TARGET_AVX)) &&
30803 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30804 : ( 1)))
30805 : return gen_split_2596 (insn, operands);
30806 : break;
30807 :
30808 : case 8:
30809 : if ((
30810 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30811 : ((16 == 64 || TARGET_AVX512VL
30812 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30813 : && ix86_pre_reload_split ()
30814 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30815 : STRIP_UNARY (operands[4]))
30816 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30817 : STRIP_UNARY (operands[4]))
30818 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30819 : STRIP_UNARY (operands[3]))
30820 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30821 : STRIP_UNARY (operands[3])))) &&
30822 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30823 : ( 1)))
30824 : return gen_split_2623 (insn, operands);
30825 : break;
30826 :
30827 : case 9:
30828 : if (((
30829 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30830 : ((64 == 64 || TARGET_AVX512VL
30831 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30832 : && ix86_pre_reload_split ()
30833 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30834 : STRIP_UNARY (operands[4]))
30835 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30836 : STRIP_UNARY (operands[4]))
30837 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30838 : STRIP_UNARY (operands[3]))
30839 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30840 : STRIP_UNARY (operands[3])))) &&
30841 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30842 : (TARGET_AVX512F)) &&
30843 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30844 : ( 1)))
30845 : return gen_split_2650 (insn, operands);
30846 : break;
30847 :
30848 : case 10:
30849 : if (((
30850 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30851 : ((32 == 64 || TARGET_AVX512VL
30852 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30853 : && ix86_pre_reload_split ()
30854 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30855 : STRIP_UNARY (operands[4]))
30856 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30857 : STRIP_UNARY (operands[4]))
30858 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30859 : STRIP_UNARY (operands[3]))
30860 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30861 : STRIP_UNARY (operands[3])))) &&
30862 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30863 : (TARGET_AVX)) &&
30864 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30865 : ( 1)))
30866 : return gen_split_2677 (insn, operands);
30867 : break;
30868 :
30869 : case 11:
30870 : if ((
30871 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30872 : ((16 == 64 || TARGET_AVX512VL
30873 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30874 : && ix86_pre_reload_split ()
30875 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30876 : STRIP_UNARY (operands[4]))
30877 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30878 : STRIP_UNARY (operands[4]))
30879 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30880 : STRIP_UNARY (operands[3]))
30881 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30882 : STRIP_UNARY (operands[3])))) &&
30883 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30884 : ( 1)))
30885 : return gen_split_2704 (insn, operands);
30886 : break;
30887 :
30888 : default:
30889 : break;
30890 : }
30891 : break;
30892 :
30893 : case IOR:
30894 : switch (pattern539 (x2))
30895 : {
30896 : case 0:
30897 : if (((
30898 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30899 : ((64 == 64 || TARGET_AVX512VL
30900 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30901 : && ix86_pre_reload_split ()
30902 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30903 : STRIP_UNARY (operands[4]))
30904 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30905 : STRIP_UNARY (operands[4]))
30906 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30907 : STRIP_UNARY (operands[3]))
30908 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30909 : STRIP_UNARY (operands[3])))) &&
30910 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30911 : (TARGET_AVX512F)) &&
30912 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30913 : ( 1)))
30914 : return gen_split_2410 (insn, operands);
30915 : break;
30916 :
30917 : case 1:
30918 : if (((
30919 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30920 : ((32 == 64 || TARGET_AVX512VL
30921 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30922 : && ix86_pre_reload_split ()
30923 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30924 : STRIP_UNARY (operands[4]))
30925 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30926 : STRIP_UNARY (operands[4]))
30927 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30928 : STRIP_UNARY (operands[3]))
30929 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30930 : STRIP_UNARY (operands[3])))) &&
30931 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30932 : (TARGET_AVX)) &&
30933 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30934 : ( 1)))
30935 : return gen_split_2437 (insn, operands);
30936 : break;
30937 :
30938 : case 2:
30939 : if ((
30940 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30941 : ((16 == 64 || TARGET_AVX512VL
30942 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30943 : && ix86_pre_reload_split ()
30944 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30945 : STRIP_UNARY (operands[4]))
30946 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30947 : STRIP_UNARY (operands[4]))
30948 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30949 : STRIP_UNARY (operands[3]))
30950 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30951 : STRIP_UNARY (operands[3])))) &&
30952 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30953 : ( 1)))
30954 : return gen_split_2464 (insn, operands);
30955 : break;
30956 :
30957 : case 3:
30958 : if (((
30959 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30960 : ((64 == 64 || TARGET_AVX512VL
30961 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30962 : && ix86_pre_reload_split ()
30963 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30964 : STRIP_UNARY (operands[4]))
30965 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30966 : STRIP_UNARY (operands[4]))
30967 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30968 : STRIP_UNARY (operands[3]))
30969 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30970 : STRIP_UNARY (operands[3])))) &&
30971 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30972 : (TARGET_AVX512F)) &&
30973 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30974 : ( 1)))
30975 : return gen_split_2491 (insn, operands);
30976 : break;
30977 :
30978 : case 4:
30979 : if (((
30980 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30981 : ((32 == 64 || TARGET_AVX512VL
30982 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30983 : && ix86_pre_reload_split ()
30984 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30985 : STRIP_UNARY (operands[4]))
30986 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30987 : STRIP_UNARY (operands[4]))
30988 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30989 : STRIP_UNARY (operands[3]))
30990 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30991 : STRIP_UNARY (operands[3])))) &&
30992 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30993 : (TARGET_AVX)) &&
30994 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30995 : ( 1)))
30996 : return gen_split_2518 (insn, operands);
30997 : break;
30998 :
30999 : case 5:
31000 : if ((
31001 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31002 : ((16 == 64 || TARGET_AVX512VL
31003 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31004 : && ix86_pre_reload_split ()
31005 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
31006 : STRIP_UNARY (operands[4]))
31007 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31008 : STRIP_UNARY (operands[4]))
31009 : || rtx_equal_p (STRIP_UNARY (operands[1]),
31010 : STRIP_UNARY (operands[3]))
31011 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31012 : STRIP_UNARY (operands[3])))) &&
31013 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31014 : ( 1)))
31015 : return gen_split_2545 (insn, operands);
31016 : break;
31017 :
31018 : case 6:
31019 : if (((
31020 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31021 : ((64 == 64 || TARGET_AVX512VL
31022 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31023 : && ix86_pre_reload_split ()
31024 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
31025 : STRIP_UNARY (operands[4]))
31026 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31027 : STRIP_UNARY (operands[4]))
31028 : || rtx_equal_p (STRIP_UNARY (operands[1]),
31029 : STRIP_UNARY (operands[3]))
31030 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31031 : STRIP_UNARY (operands[3])))) &&
31032 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31033 : (TARGET_AVX512F)) &&
31034 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31035 : ( 1)))
31036 : return gen_split_2572 (insn, operands);
31037 : break;
31038 :
31039 : case 7:
31040 : if (((
31041 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31042 : ((32 == 64 || TARGET_AVX512VL
31043 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31044 : && ix86_pre_reload_split ()
31045 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
31046 : STRIP_UNARY (operands[4]))
31047 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31048 : STRIP_UNARY (operands[4]))
31049 : || rtx_equal_p (STRIP_UNARY (operands[1]),
31050 : STRIP_UNARY (operands[3]))
31051 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31052 : STRIP_UNARY (operands[3])))) &&
31053 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31054 : (TARGET_AVX)) &&
31055 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31056 : ( 1)))
31057 : return gen_split_2599 (insn, operands);
31058 : break;
31059 :
31060 : case 8:
31061 : if ((
31062 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31063 : ((16 == 64 || TARGET_AVX512VL
31064 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31065 : && ix86_pre_reload_split ()
31066 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
31067 : STRIP_UNARY (operands[4]))
31068 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31069 : STRIP_UNARY (operands[4]))
31070 : || rtx_equal_p (STRIP_UNARY (operands[1]),
31071 : STRIP_UNARY (operands[3]))
31072 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31073 : STRIP_UNARY (operands[3])))) &&
31074 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31075 : ( 1)))
31076 : return gen_split_2626 (insn, operands);
31077 : break;
31078 :
31079 : case 9:
31080 : if (((
31081 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31082 : ((64 == 64 || TARGET_AVX512VL
31083 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31084 : && ix86_pre_reload_split ()
31085 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
31086 : STRIP_UNARY (operands[4]))
31087 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31088 : STRIP_UNARY (operands[4]))
31089 : || rtx_equal_p (STRIP_UNARY (operands[1]),
31090 : STRIP_UNARY (operands[3]))
31091 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31092 : STRIP_UNARY (operands[3])))) &&
31093 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31094 : (TARGET_AVX512F)) &&
31095 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31096 : ( 1)))
31097 : return gen_split_2653 (insn, operands);
31098 : break;
31099 :
31100 : case 10:
31101 : if (((
31102 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31103 : ((32 == 64 || TARGET_AVX512VL
31104 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31105 : && ix86_pre_reload_split ()
31106 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
31107 : STRIP_UNARY (operands[4]))
31108 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31109 : STRIP_UNARY (operands[4]))
31110 : || rtx_equal_p (STRIP_UNARY (operands[1]),
31111 : STRIP_UNARY (operands[3]))
31112 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31113 : STRIP_UNARY (operands[3])))) &&
31114 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31115 : (TARGET_AVX)) &&
31116 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31117 : ( 1)))
31118 : return gen_split_2680 (insn, operands);
31119 : break;
31120 :
31121 : case 11:
31122 : if ((
31123 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31124 : ((16 == 64 || TARGET_AVX512VL
31125 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31126 : && ix86_pre_reload_split ()
31127 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
31128 : STRIP_UNARY (operands[4]))
31129 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31130 : STRIP_UNARY (operands[4]))
31131 : || rtx_equal_p (STRIP_UNARY (operands[1]),
31132 : STRIP_UNARY (operands[3]))
31133 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31134 : STRIP_UNARY (operands[3])))) &&
31135 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31136 : ( 1)))
31137 : return gen_split_2707 (insn, operands);
31138 : break;
31139 :
31140 : default:
31141 : break;
31142 : }
31143 : break;
31144 :
31145 : case XOR:
31146 : switch (pattern539 (x2))
31147 : {
31148 : case 0:
31149 : if (((
31150 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31151 : ((64 == 64 || TARGET_AVX512VL
31152 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31153 : && ix86_pre_reload_split ()
31154 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
31155 : STRIP_UNARY (operands[4]))
31156 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31157 : STRIP_UNARY (operands[4]))
31158 : || rtx_equal_p (STRIP_UNARY (operands[1]),
31159 : STRIP_UNARY (operands[3]))
31160 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31161 : STRIP_UNARY (operands[3])))) &&
31162 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31163 : (TARGET_AVX512F)) &&
31164 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31165 : ( 1)))
31166 : return gen_split_2413 (insn, operands);
31167 : break;
31168 :
31169 : case 1:
31170 : if (((
31171 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31172 : ((32 == 64 || TARGET_AVX512VL
31173 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31174 : && ix86_pre_reload_split ()
31175 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
31176 : STRIP_UNARY (operands[4]))
31177 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31178 : STRIP_UNARY (operands[4]))
31179 : || rtx_equal_p (STRIP_UNARY (operands[1]),
31180 : STRIP_UNARY (operands[3]))
31181 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31182 : STRIP_UNARY (operands[3])))) &&
31183 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31184 : (TARGET_AVX)) &&
31185 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31186 : ( 1)))
31187 : return gen_split_2440 (insn, operands);
31188 : break;
31189 :
31190 : case 2:
31191 : if ((
31192 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31193 : ((16 == 64 || TARGET_AVX512VL
31194 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31195 : && ix86_pre_reload_split ()
31196 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
31197 : STRIP_UNARY (operands[4]))
31198 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31199 : STRIP_UNARY (operands[4]))
31200 : || rtx_equal_p (STRIP_UNARY (operands[1]),
31201 : STRIP_UNARY (operands[3]))
31202 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31203 : STRIP_UNARY (operands[3])))) &&
31204 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31205 : ( 1)))
31206 : return gen_split_2467 (insn, operands);
31207 : break;
31208 :
31209 : case 3:
31210 : if (((
31211 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31212 : ((64 == 64 || TARGET_AVX512VL
31213 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31214 : && ix86_pre_reload_split ()
31215 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
31216 : STRIP_UNARY (operands[4]))
31217 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31218 : STRIP_UNARY (operands[4]))
31219 : || rtx_equal_p (STRIP_UNARY (operands[1]),
31220 : STRIP_UNARY (operands[3]))
31221 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31222 : STRIP_UNARY (operands[3])))) &&
31223 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31224 : (TARGET_AVX512F)) &&
31225 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31226 : ( 1)))
31227 : return gen_split_2494 (insn, operands);
31228 : break;
31229 :
31230 : case 4:
31231 : if (((
31232 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31233 : ((32 == 64 || TARGET_AVX512VL
31234 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31235 : && ix86_pre_reload_split ()
31236 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
31237 : STRIP_UNARY (operands[4]))
31238 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31239 : STRIP_UNARY (operands[4]))
31240 : || rtx_equal_p (STRIP_UNARY (operands[1]),
31241 : STRIP_UNARY (operands[3]))
31242 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31243 : STRIP_UNARY (operands[3])))) &&
31244 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31245 : (TARGET_AVX)) &&
31246 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31247 : ( 1)))
31248 : return gen_split_2521 (insn, operands);
31249 : break;
31250 :
31251 : case 5:
31252 : if ((
31253 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31254 : ((16 == 64 || TARGET_AVX512VL
31255 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31256 : && ix86_pre_reload_split ()
31257 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
31258 : STRIP_UNARY (operands[4]))
31259 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31260 : STRIP_UNARY (operands[4]))
31261 : || rtx_equal_p (STRIP_UNARY (operands[1]),
31262 : STRIP_UNARY (operands[3]))
31263 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31264 : STRIP_UNARY (operands[3])))) &&
31265 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31266 : ( 1)))
31267 : return gen_split_2548 (insn, operands);
31268 : break;
31269 :
31270 : case 6:
31271 : if (((
31272 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31273 : ((64 == 64 || TARGET_AVX512VL
31274 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31275 : && ix86_pre_reload_split ()
31276 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
31277 : STRIP_UNARY (operands[4]))
31278 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31279 : STRIP_UNARY (operands[4]))
31280 : || rtx_equal_p (STRIP_UNARY (operands[1]),
31281 : STRIP_UNARY (operands[3]))
31282 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31283 : STRIP_UNARY (operands[3])))) &&
31284 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31285 : (TARGET_AVX512F)) &&
31286 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31287 : ( 1)))
31288 : return gen_split_2575 (insn, operands);
31289 : break;
31290 :
31291 : case 7:
31292 : if (((
31293 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31294 : ((32 == 64 || TARGET_AVX512VL
31295 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31296 : && ix86_pre_reload_split ()
31297 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
31298 : STRIP_UNARY (operands[4]))
31299 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31300 : STRIP_UNARY (operands[4]))
31301 : || rtx_equal_p (STRIP_UNARY (operands[1]),
31302 : STRIP_UNARY (operands[3]))
31303 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31304 : STRIP_UNARY (operands[3])))) &&
31305 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31306 : (TARGET_AVX)) &&
31307 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31308 : ( 1)))
31309 : return gen_split_2602 (insn, operands);
31310 : break;
31311 :
31312 : case 8:
31313 : if ((
31314 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31315 : ((16 == 64 || TARGET_AVX512VL
31316 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31317 : && ix86_pre_reload_split ()
31318 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
31319 : STRIP_UNARY (operands[4]))
31320 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31321 : STRIP_UNARY (operands[4]))
31322 : || rtx_equal_p (STRIP_UNARY (operands[1]),
31323 : STRIP_UNARY (operands[3]))
31324 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31325 : STRIP_UNARY (operands[3])))) &&
31326 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31327 : ( 1)))
31328 : return gen_split_2629 (insn, operands);
31329 : break;
31330 :
31331 : case 9:
31332 : if (((
31333 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31334 : ((64 == 64 || TARGET_AVX512VL
31335 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31336 : && ix86_pre_reload_split ()
31337 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
31338 : STRIP_UNARY (operands[4]))
31339 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31340 : STRIP_UNARY (operands[4]))
31341 : || rtx_equal_p (STRIP_UNARY (operands[1]),
31342 : STRIP_UNARY (operands[3]))
31343 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31344 : STRIP_UNARY (operands[3])))) &&
31345 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31346 : (TARGET_AVX512F)) &&
31347 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31348 : ( 1)))
31349 : return gen_split_2656 (insn, operands);
31350 : break;
31351 :
31352 : case 10:
31353 : if (((
31354 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31355 : ((32 == 64 || TARGET_AVX512VL
31356 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31357 : && ix86_pre_reload_split ()
31358 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
31359 : STRIP_UNARY (operands[4]))
31360 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31361 : STRIP_UNARY (operands[4]))
31362 : || rtx_equal_p (STRIP_UNARY (operands[1]),
31363 : STRIP_UNARY (operands[3]))
31364 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31365 : STRIP_UNARY (operands[3])))) &&
31366 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31367 : (TARGET_AVX)) &&
31368 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31369 : ( 1)))
31370 : return gen_split_2683 (insn, operands);
31371 : break;
31372 :
31373 : case 11:
31374 : if ((
31375 : #line 14578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31376 : ((16 == 64 || TARGET_AVX512VL
31377 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31378 : && ix86_pre_reload_split ()
31379 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
31380 : STRIP_UNARY (operands[4]))
31381 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31382 : STRIP_UNARY (operands[4]))
31383 : || rtx_equal_p (STRIP_UNARY (operands[1]),
31384 : STRIP_UNARY (operands[3]))
31385 : || rtx_equal_p (STRIP_UNARY (operands[2]),
31386 : STRIP_UNARY (operands[3])))) &&
31387 : #line 14590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31388 : ( 1)))
31389 : return gen_split_2710 (insn, operands);
31390 : break;
31391 :
31392 : default:
31393 : break;
31394 : }
31395 : break;
31396 :
31397 : default:
31398 : break;
31399 : }
31400 : break;
31401 :
31402 : case REG:
31403 : case SUBREG:
31404 : case MEM:
31405 : case VEC_DUPLICATE:
31406 : operands[1] = x3;
31407 : x5 = XEXP (x2, 1);
31408 : operands[2] = x5;
31409 : switch (GET_MODE (operands[0]))
31410 : {
31411 : case E_V16SImode:
31412 : if (pattern944 (x2,
31413 : E_V16SImode) == 0
31414 : && ((
31415 : #line 19137 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31416 : (TARGET_AVX512F
31417 : && (!false
31418 : || SImode == SImode
31419 : || SImode == DImode)) &&
31420 : #line 556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31421 : (TARGET_AVX512F)) &&
31422 : #line 19147 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31423 : ( reload_completed && !REG_P (operands[1]) && !false
31424 : && optimize_insn_for_speed_p ())))
31425 : return gen_split_3440 (insn, operands);
31426 : break;
31427 :
31428 : case E_V8DImode:
31429 : if (pattern944 (x2,
31430 : E_V8DImode) == 0
31431 : && ((
31432 : #line 19137 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31433 : (TARGET_AVX512F
31434 : && (!false
31435 : || DImode == SImode
31436 : || DImode == DImode)) &&
31437 : #line 556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31438 : (TARGET_AVX512F)) &&
31439 : #line 19147 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31440 : ( reload_completed && !REG_P (operands[1]) && !false
31441 : && optimize_insn_for_speed_p ())))
31442 : return gen_split_3441 (insn, operands);
31443 : break;
31444 :
31445 : case E_V64QImode:
31446 : if (pattern944 (x2,
31447 : E_V64QImode) == 0
31448 : && ((
31449 : #line 19137 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31450 : (TARGET_AVX512F
31451 : && (!false
31452 : || QImode == SImode
31453 : || QImode == DImode)) &&
31454 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31455 : (TARGET_AVX512BW)) &&
31456 : #line 19147 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31457 : ( reload_completed && !REG_P (operands[1]) && !false
31458 : && optimize_insn_for_speed_p ())))
31459 : return gen_split_3442 (insn, operands);
31460 : break;
31461 :
31462 : case E_V32QImode:
31463 : if (pattern944 (x2,
31464 : E_V32QImode) == 0
31465 : && ((
31466 : #line 19137 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31467 : (TARGET_AVX512F
31468 : && (!false
31469 : || QImode == SImode
31470 : || QImode == DImode)) &&
31471 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31472 : (TARGET_AVX)) &&
31473 : #line 19147 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31474 : ( reload_completed && !REG_P (operands[1]) && !false
31475 : && optimize_insn_for_speed_p ())))
31476 : return gen_split_3443 (insn, operands);
31477 : break;
31478 :
31479 : case E_V16QImode:
31480 : if (pattern944 (x2,
31481 : E_V16QImode) == 0
31482 : && (
31483 : #line 19137 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31484 : (TARGET_AVX512F
31485 : && (!false
31486 : || QImode == SImode
31487 : || QImode == DImode)) &&
31488 : #line 19147 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31489 : ( reload_completed && !REG_P (operands[1]) && !false
31490 : && optimize_insn_for_speed_p ())))
31491 : return gen_split_3444 (insn, operands);
31492 : break;
31493 :
31494 : case E_V32HImode:
31495 : if (pattern944 (x2,
31496 : E_V32HImode) == 0
31497 : && ((
31498 : #line 19137 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31499 : (TARGET_AVX512F
31500 : && (!false
31501 : || HImode == SImode
31502 : || HImode == DImode)) &&
31503 : #line 558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31504 : (TARGET_AVX512BW)) &&
31505 : #line 19147 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31506 : ( reload_completed && !REG_P (operands[1]) && !false
31507 : && optimize_insn_for_speed_p ())))
31508 : return gen_split_3445 (insn, operands);
31509 : break;
31510 :
31511 : case E_V16HImode:
31512 : if (pattern944 (x2,
31513 : E_V16HImode) == 0
31514 : && ((
31515 : #line 19137 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31516 : (TARGET_AVX512F
31517 : && (!false
31518 : || HImode == SImode
31519 : || HImode == DImode)) &&
31520 : #line 558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31521 : (TARGET_AVX)) &&
31522 : #line 19147 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31523 : ( reload_completed && !REG_P (operands[1]) && !false
31524 : && optimize_insn_for_speed_p ())))
31525 : return gen_split_3446 (insn, operands);
31526 : break;
31527 :
31528 : case E_V8HImode:
31529 : if (pattern944 (x2,
31530 : E_V8HImode) == 0
31531 : && (
31532 : #line 19137 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31533 : (TARGET_AVX512F
31534 : && (!false
31535 : || HImode == SImode
31536 : || HImode == DImode)) &&
31537 : #line 19147 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31538 : ( reload_completed && !REG_P (operands[1]) && !false
31539 : && optimize_insn_for_speed_p ())))
31540 : return gen_split_3447 (insn, operands);
31541 : break;
31542 :
31543 : case E_V8SImode:
31544 : if (pattern944 (x2,
31545 : E_V8SImode) == 0
31546 : && ((
31547 : #line 19137 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31548 : (TARGET_AVX512F
31549 : && (!false
31550 : || SImode == SImode
31551 : || SImode == DImode)) &&
31552 : #line 559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31553 : (TARGET_AVX)) &&
31554 : #line 19147 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31555 : ( reload_completed && !REG_P (operands[1]) && !false
31556 : && optimize_insn_for_speed_p ())))
31557 : return gen_split_3448 (insn, operands);
31558 : break;
31559 :
31560 : case E_V4SImode:
31561 : if (pattern944 (x2,
31562 : E_V4SImode) == 0
31563 : && (
31564 : #line 19137 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31565 : (TARGET_AVX512F
31566 : && (!false
31567 : || SImode == SImode
31568 : || SImode == DImode)) &&
31569 : #line 19147 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31570 : ( reload_completed && !REG_P (operands[1]) && !false
31571 : && optimize_insn_for_speed_p ())))
31572 : return gen_split_3449 (insn, operands);
31573 : break;
31574 :
31575 : case E_V4DImode:
31576 : if (pattern944 (x2,
31577 : E_V4DImode) == 0
31578 : && ((
31579 : #line 19137 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31580 : (TARGET_AVX512F
31581 : && (!false
31582 : || DImode == SImode
31583 : || DImode == DImode)) &&
31584 : #line 560 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31585 : (TARGET_AVX)) &&
31586 : #line 19147 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31587 : ( reload_completed && !REG_P (operands[1]) && !false
31588 : && optimize_insn_for_speed_p ())))
31589 : return gen_split_3450 (insn, operands);
31590 : break;
31591 :
31592 : case E_V2DImode:
31593 : if (pattern944 (x2,
31594 : E_V2DImode) == 0
31595 : && (
31596 : #line 19137 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31597 : (TARGET_AVX512F
31598 : && (!false
31599 : || DImode == SImode
31600 : || DImode == DImode)) &&
31601 : #line 19147 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31602 : ( reload_completed && !REG_P (operands[1]) && !false
31603 : && optimize_insn_for_speed_p ())))
31604 : return gen_split_3451 (insn, operands);
31605 : break;
31606 :
31607 : default:
31608 : break;
31609 : }
31610 : if (GET_CODE (x3) == VEC_DUPLICATE)
31611 : {
31612 : switch (pattern607 (x2))
31613 : {
31614 : case 0:
31615 : if ((
31616 : #line 19441 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31617 : (64 == 64 || TARGET_AVX512VL
31618 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)) &&
31619 : #line 556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31620 : (TARGET_AVX512F)))
31621 : return gen_split_3484 (insn, operands);
31622 : break;
31623 :
31624 : case 1:
31625 : if ((
31626 : #line 19441 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31627 : (64 == 64 || TARGET_AVX512VL
31628 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)) &&
31629 : #line 556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31630 : (TARGET_AVX512F)))
31631 : return gen_split_3485 (insn, operands);
31632 : break;
31633 :
31634 : case 2:
31635 : if ((
31636 : #line 19441 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31637 : (64 == 64 || TARGET_AVX512VL
31638 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)) &&
31639 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31640 : (TARGET_AVX512BW)))
31641 : return gen_split_3486 (insn, operands);
31642 : break;
31643 :
31644 : case 3:
31645 : if ((
31646 : #line 19441 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31647 : (32 == 64 || TARGET_AVX512VL
31648 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)) &&
31649 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31650 : (TARGET_AVX)))
31651 : return gen_split_3487 (insn, operands);
31652 : break;
31653 :
31654 : case 4:
31655 : if (
31656 : #line 19441 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31657 : (16 == 64 || TARGET_AVX512VL
31658 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)))
31659 : return gen_split_3488 (insn, operands);
31660 : break;
31661 :
31662 : case 5:
31663 : if ((
31664 : #line 19441 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31665 : (64 == 64 || TARGET_AVX512VL
31666 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)) &&
31667 : #line 558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31668 : (TARGET_AVX512BW)))
31669 : return gen_split_3489 (insn, operands);
31670 : break;
31671 :
31672 : case 6:
31673 : if ((
31674 : #line 19441 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31675 : (32 == 64 || TARGET_AVX512VL
31676 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)) &&
31677 : #line 558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31678 : (TARGET_AVX)))
31679 : return gen_split_3490 (insn, operands);
31680 : break;
31681 :
31682 : case 7:
31683 : if (
31684 : #line 19441 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31685 : (16 == 64 || TARGET_AVX512VL
31686 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)))
31687 : return gen_split_3491 (insn, operands);
31688 : break;
31689 :
31690 : case 8:
31691 : if ((
31692 : #line 19441 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31693 : (32 == 64 || TARGET_AVX512VL
31694 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)) &&
31695 : #line 559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31696 : (TARGET_AVX)))
31697 : return gen_split_3492 (insn, operands);
31698 : break;
31699 :
31700 : case 9:
31701 : if (
31702 : #line 19441 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31703 : (16 == 64 || TARGET_AVX512VL
31704 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)))
31705 : return gen_split_3493 (insn, operands);
31706 : break;
31707 :
31708 : case 10:
31709 : if ((
31710 : #line 19441 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31711 : (32 == 64 || TARGET_AVX512VL
31712 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)) &&
31713 : #line 560 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31714 : (TARGET_AVX)))
31715 : return gen_split_3494 (insn, operands);
31716 : break;
31717 :
31718 : case 11:
31719 : if (
31720 : #line 19441 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31721 : (16 == 64 || TARGET_AVX512VL
31722 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)))
31723 : return gen_split_3495 (insn, operands);
31724 : break;
31725 :
31726 : default:
31727 : break;
31728 : }
31729 : }
31730 : break;
31731 :
31732 : default:
31733 : break;
31734 : }
31735 : break;
31736 :
31737 : default:
31738 : break;
31739 : }
31740 : operands[1] = x2;
31741 : switch (pattern205 ())
31742 : {
31743 : case 0:
31744 : if (((
31745 : #line 14463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31746 : ((64 == 64 || TARGET_AVX512VL
31747 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31748 : && ix86_pre_reload_split ()) &&
31749 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31750 : (TARGET_AVX512F)) &&
31751 : #line 14467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31752 : ( 1)))
31753 : return gen_split_1727 (insn, operands);
31754 : break;
31755 :
31756 : case 1:
31757 : if (((
31758 : #line 14463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31759 : ((32 == 64 || TARGET_AVX512VL
31760 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31761 : && ix86_pre_reload_split ()) &&
31762 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31763 : (TARGET_AVX)) &&
31764 : #line 14467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31765 : ( 1)))
31766 : return gen_split_1728 (insn, operands);
31767 : break;
31768 :
31769 : case 2:
31770 : if ((
31771 : #line 14463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31772 : ((16 == 64 || TARGET_AVX512VL
31773 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31774 : && ix86_pre_reload_split ()) &&
31775 : #line 14467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31776 : ( 1)))
31777 : return gen_split_1729 (insn, operands);
31778 : break;
31779 :
31780 : case 3:
31781 : if (((
31782 : #line 14463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31783 : ((64 == 64 || TARGET_AVX512VL
31784 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31785 : && ix86_pre_reload_split ()) &&
31786 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31787 : (TARGET_AVX512F)) &&
31788 : #line 14467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31789 : ( 1)))
31790 : return gen_split_1730 (insn, operands);
31791 : break;
31792 :
31793 : case 4:
31794 : if (((
31795 : #line 14463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31796 : ((32 == 64 || TARGET_AVX512VL
31797 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31798 : && ix86_pre_reload_split ()) &&
31799 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31800 : (TARGET_AVX)) &&
31801 : #line 14467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31802 : ( 1)))
31803 : return gen_split_1731 (insn, operands);
31804 : break;
31805 :
31806 : case 5:
31807 : if ((
31808 : #line 14463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31809 : ((16 == 64 || TARGET_AVX512VL
31810 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31811 : && ix86_pre_reload_split ()) &&
31812 : #line 14467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31813 : ( 1)))
31814 : return gen_split_1732 (insn, operands);
31815 : break;
31816 :
31817 : case 6:
31818 : if (((
31819 : #line 14463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31820 : ((64 == 64 || TARGET_AVX512VL
31821 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31822 : && ix86_pre_reload_split ()) &&
31823 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31824 : (TARGET_AVX512F)) &&
31825 : #line 14467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31826 : ( 1)))
31827 : return gen_split_1733 (insn, operands);
31828 : break;
31829 :
31830 : case 7:
31831 : if (((
31832 : #line 14463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31833 : ((32 == 64 || TARGET_AVX512VL
31834 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31835 : && ix86_pre_reload_split ()) &&
31836 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31837 : (TARGET_AVX)) &&
31838 : #line 14467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31839 : ( 1)))
31840 : return gen_split_1734 (insn, operands);
31841 : break;
31842 :
31843 : case 8:
31844 : if ((
31845 : #line 14463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31846 : ((16 == 64 || TARGET_AVX512VL
31847 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31848 : && ix86_pre_reload_split ()) &&
31849 : #line 14467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31850 : ( 1)))
31851 : return gen_split_1735 (insn, operands);
31852 : break;
31853 :
31854 : case 9:
31855 : if (((
31856 : #line 14463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31857 : ((64 == 64 || TARGET_AVX512VL
31858 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31859 : && ix86_pre_reload_split ()) &&
31860 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31861 : (TARGET_AVX512F)) &&
31862 : #line 14467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31863 : ( 1)))
31864 : return gen_split_1736 (insn, operands);
31865 : break;
31866 :
31867 : case 10:
31868 : if (((
31869 : #line 14463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31870 : ((32 == 64 || TARGET_AVX512VL
31871 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31872 : && ix86_pre_reload_split ()) &&
31873 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31874 : (TARGET_AVX)) &&
31875 : #line 14467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31876 : ( 1)))
31877 : return gen_split_1737 (insn, operands);
31878 : break;
31879 :
31880 : case 11:
31881 : if (((
31882 : #line 14463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31883 : ((16 == 64 || TARGET_AVX512VL
31884 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31885 : && ix86_pre_reload_split ()) &&
31886 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31887 : (TARGET_SSE2)) &&
31888 : #line 14467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31889 : ( 1)))
31890 : return gen_split_1738 (insn, operands);
31891 : break;
31892 :
31893 : default:
31894 : break;
31895 : }
31896 : switch (GET_CODE (x2))
31897 : {
31898 : case AND:
31899 : return split_74 (x1, insn);
31900 :
31901 : case IOR:
31902 : return split_73 (x1, insn);
31903 :
31904 : case XOR:
31905 : return split_72 (x1, insn);
31906 :
31907 : default:
31908 : return NULL;
31909 : }
31910 : }
31911 :
31912 : rtx_insn *
31913 : peephole2_29 (rtx x1 ATTRIBUTE_UNUSED,
31914 : rtx_insn *insn ATTRIBUTE_UNUSED,
31915 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31916 : {
31917 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31918 : rtx x2, x3, x4, x5, x6, x7;
31919 : rtx_insn *res ATTRIBUTE_UNUSED;
31920 : x2 = XEXP (x1, 1);
31921 : x3 = XEXP (x2, 0);
31922 : switch (GET_CODE (x3))
31923 : {
31924 : case NE:
31925 : case EQ:
31926 : case GE:
31927 : case GT:
31928 : case LE:
31929 : case LT:
31930 : case LTGT:
31931 : case GEU:
31932 : case GTU:
31933 : case LEU:
31934 : case LTU:
31935 : case UNORDERED:
31936 : case ORDERED:
31937 : case UNEQ:
31938 : case UNGE:
31939 : case UNGT:
31940 : case UNLE:
31941 : case UNLT:
31942 : operands[1] = x3;
31943 : switch (pattern249 (x1))
31944 : {
31945 : case 0:
31946 : switch (GET_MODE (operands[0]))
31947 : {
31948 : case E_HImode:
31949 : if (pattern1214 (x2,
31950 : E_HImode) != 0
31951 : || !
31952 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31953 : (TARGET_CMOVE && TARGET_AVOID_MEM_OPND_FOR_CMOVE
31954 : && (MEM_P (operands[2]) || MEM_P (operands[3]))
31955 : && optimize_insn_for_speed_p ()))
31956 : return NULL;
31957 : *pmatch_len_ = 0;
31958 : return gen_peephole2_220 (insn, operands);
31959 :
31960 : case E_SImode:
31961 : if (pattern1214 (x2,
31962 : E_SImode) != 0
31963 : || !
31964 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31965 : (TARGET_CMOVE && TARGET_AVOID_MEM_OPND_FOR_CMOVE
31966 : && (MEM_P (operands[2]) || MEM_P (operands[3]))
31967 : && optimize_insn_for_speed_p ()))
31968 : return NULL;
31969 : *pmatch_len_ = 0;
31970 : return gen_peephole2_221 (insn, operands);
31971 :
31972 : case E_DImode:
31973 : if (pattern1214 (x2,
31974 : E_DImode) != 0
31975 : || !(
31976 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31977 : (TARGET_CMOVE && TARGET_AVOID_MEM_OPND_FOR_CMOVE
31978 : && (MEM_P (operands[2]) || MEM_P (operands[3]))
31979 : && optimize_insn_for_speed_p ()) &&
31980 : #line 1199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31981 : (TARGET_64BIT)))
31982 : return NULL;
31983 : *pmatch_len_ = 0;
31984 : return gen_peephole2_222 (insn, operands);
31985 :
31986 : case E_SFmode:
31987 : if (!general_reg_operand (operands[0], E_SFmode)
31988 : || pattern1276 (x2,
31989 : E_SFmode) != 0
31990 : || !
31991 : #line 27853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31992 : ((SFmode != DFmode || TARGET_64BIT)
31993 : && TARGET_80387 && TARGET_CMOVE
31994 : && TARGET_AVOID_MEM_OPND_FOR_CMOVE
31995 : && (MEM_P (operands[2]) || MEM_P (operands[3]))
31996 : && optimize_insn_for_speed_p ()))
31997 : return NULL;
31998 : *pmatch_len_ = 0;
31999 : return gen_peephole2_230 (insn, operands);
32000 :
32001 : case E_DFmode:
32002 : if (!general_reg_operand (operands[0], E_DFmode)
32003 : || pattern1276 (x2,
32004 : E_DFmode) != 0
32005 : || !
32006 : #line 27853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32007 : ((DFmode != DFmode || TARGET_64BIT)
32008 : && TARGET_80387 && TARGET_CMOVE
32009 : && TARGET_AVOID_MEM_OPND_FOR_CMOVE
32010 : && (MEM_P (operands[2]) || MEM_P (operands[3]))
32011 : && optimize_insn_for_speed_p ()))
32012 : return NULL;
32013 : *pmatch_len_ = 0;
32014 : return gen_peephole2_231 (insn, operands);
32015 :
32016 : default:
32017 : return NULL;
32018 : }
32019 :
32020 : case 1:
32021 : if (!register_operand (operands[0], E_DImode)
32022 : || GET_MODE (x2) != E_DImode
32023 : || !ix86_comparison_operator (operands[1], E_VOIDmode))
32024 : return NULL;
32025 : x4 = XEXP (x2, 1);
32026 : x5 = XEXP (x4, 0);
32027 : operands[2] = x5;
32028 : if (!nonimmediate_operand (operands[2], E_SImode))
32029 : return NULL;
32030 : x6 = XEXP (x2, 2);
32031 : x7 = XEXP (x6, 0);
32032 : operands[3] = x7;
32033 : if (!nonimmediate_operand (operands[3], E_SImode)
32034 : || !
32035 : #line 27631 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32036 : (TARGET_64BIT
32037 : && TARGET_CMOVE && TARGET_AVOID_MEM_OPND_FOR_CMOVE
32038 : && (MEM_P (operands[2]) || MEM_P (operands[3]))
32039 : && optimize_insn_for_speed_p ()))
32040 : return NULL;
32041 : *pmatch_len_ = 0;
32042 : return gen_peephole2_223 (insn, operands);
32043 :
32044 : default:
32045 : return NULL;
32046 : }
32047 :
32048 : default:
32049 : return NULL;
32050 : }
32051 : }
32052 :
32053 : rtx_insn *
32054 : peephole2_35 (rtx x1 ATTRIBUTE_UNUSED,
32055 : rtx_insn *insn ATTRIBUTE_UNUSED,
32056 : int *pmatch_len_ ATTRIBUTE_UNUSED)
32057 : {
32058 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
32059 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
32060 : rtx x10, x11, x12;
32061 : rtx_insn *res ATTRIBUTE_UNUSED;
32062 : if (peep2_current_count < 3)
32063 : return NULL;
32064 : x2 = XEXP (x1, 0);
32065 : operands[0] = x2;
32066 : if (!register_operand (operands[0], E_QImode))
32067 : return NULL;
32068 : x3 = PATTERN (peep2_next_insn (1));
32069 : if (pattern423 (x3,
32070 : UNSPEC_VOLATILE,
32071 : 3) != 0)
32072 : return NULL;
32073 : x4 = XVECEXP (x3, 0, 0);
32074 : x5 = XEXP (x4, 1);
32075 : if (XVECLEN (x5, 0) == 4
32076 : && XINT (x5, 1) == 109
32077 : && GET_MODE (x5) == E_QImode)
32078 : {
32079 : res = peephole2_34 (x1, insn, pmatch_len_);
32080 : if (res != NULL_RTX)
32081 : return res;
32082 : }
32083 : if (XVECLEN (x5, 0) != 2
32084 : || XINT (x5, 1) != 110
32085 : || GET_MODE (x5) != E_QImode)
32086 : return NULL;
32087 : x6 = XEXP (x1, 1);
32088 : operands[2] = x6;
32089 : if (!const_int_operand (operands[2], E_QImode))
32090 : return NULL;
32091 : x7 = XVECEXP (x3, 0, 1);
32092 : if (GET_CODE (x7) != SET)
32093 : return NULL;
32094 : x8 = XEXP (x7, 1);
32095 : if (GET_CODE (x8) != PLUS
32096 : || GET_MODE (x8) != E_QImode
32097 : || pattern1527 (x3) != 0
32098 : || !memory_operand (operands[1], E_QImode)
32099 : || pattern1723 (x3) != 0)
32100 : return NULL;
32101 : x9 = PATTERN (peep2_next_insn (2));
32102 : x10 = XEXP (x9, 1);
32103 : x11 = XEXP (x10, 1);
32104 : operands[3] = x11;
32105 : if (!const_int_operand (operands[3], E_QImode))
32106 : return NULL;
32107 : x12 = XEXP (x10, 0);
32108 : if (!rtx_equal_p (x12, operands[0])
32109 : || !
32110 : #line 724 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32111 : (peep2_reg_dead_p (3, operands[0])
32112 : && (unsigned HOST_WIDE_INT) INTVAL (operands[2])
32113 : == -(unsigned HOST_WIDE_INT) INTVAL (operands[3])
32114 : && !reg_overlap_mentioned_p (operands[0], operands[1])))
32115 : return NULL;
32116 : *pmatch_len_ = 2;
32117 : return gen_peephole2_448 (insn, operands);
32118 : }
32119 :
32120 : rtx_insn *
32121 : peephole2_41 (rtx x1 ATTRIBUTE_UNUSED,
32122 : rtx_insn *insn ATTRIBUTE_UNUSED,
32123 : int *pmatch_len_ ATTRIBUTE_UNUSED)
32124 : {
32125 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
32126 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
32127 : rtx x10, x11, x12, x13, x14, x15, x16;
32128 : rtx_insn *res ATTRIBUTE_UNUSED;
32129 : if (peep2_current_count < 2)
32130 : return NULL;
32131 : x2 = XVECEXP (x1, 0, 1);
32132 : if (GET_CODE (x2) != CLOBBER)
32133 : return NULL;
32134 : x3 = XEXP (x2, 0);
32135 : if (GET_CODE (x3) != REG
32136 : || REGNO (x3) != 17)
32137 : return NULL;
32138 : x4 = XVECEXP (x1, 0, 0);
32139 : x5 = XEXP (x4, 0);
32140 : operands[0] = x5;
32141 : x6 = XEXP (x4, 1);
32142 : x7 = XEXP (x6, 0);
32143 : if (!rtx_equal_p (x7, operands[0]))
32144 : return NULL;
32145 : x8 = XEXP (x6, 1);
32146 : switch (GET_CODE (x8))
32147 : {
32148 : case REG:
32149 : case SUBREG:
32150 : operands[1] = x8;
32151 : if (!register_operand (operands[1], E_VOIDmode)
32152 : || GET_MODE (x3) != E_CCmode)
32153 : return NULL;
32154 : switch (GET_MODE (operands[0]))
32155 : {
32156 : case E_SImode:
32157 : switch (pattern1528 (x6,
32158 : E_SImode))
32159 : {
32160 : case 0:
32161 : x9 = PATTERN (peep2_next_insn (1));
32162 : x10 = XVECEXP (x9, 0, 0);
32163 : x11 = XEXP (x10, 0);
32164 : if (rtx_equal_p (x11, operands[0])
32165 : &&
32166 : #line 6594 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32167 : (!TARGET_AVOID_LEA_FOR_ADDR || optimize_function_for_size_p (cfun)))
32168 : {
32169 : *pmatch_len_ = 1;
32170 : res = gen_peephole2_66 (insn, operands);
32171 : if (res != NULL_RTX)
32172 : return res;
32173 : }
32174 : operands[3] = x11;
32175 : if (!register_operand (operands[3], E_SImode)
32176 : || !
32177 : #line 6621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32178 : ((!TARGET_AVOID_LEA_FOR_ADDR || optimize_function_for_size_p (cfun))
32179 : && peep2_reg_dead_p (2, operands[0])))
32180 : return NULL;
32181 : *pmatch_len_ = 1;
32182 : return gen_peephole2_70 (insn, operands);
32183 :
32184 : case 1:
32185 : x9 = PATTERN (peep2_next_insn (1));
32186 : x12 = XEXP (x9, 0);
32187 : if (rtx_equal_p (x12, operands[0])
32188 : &&
32189 : #line 6607 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32190 : (!TARGET_AVOID_LEA_FOR_ADDR || optimize_function_for_size_p (cfun)))
32191 : {
32192 : *pmatch_len_ = 1;
32193 : res = gen_peephole2_68 (insn, operands);
32194 : if (res != NULL_RTX)
32195 : return res;
32196 : }
32197 : operands[3] = x12;
32198 : if (!register_operand (operands[3], E_SImode)
32199 : || !
32200 : #line 6635 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32201 : ((!TARGET_AVOID_LEA_FOR_ADDR || optimize_function_for_size_p (cfun))
32202 : && peep2_reg_dead_p (2, operands[0])))
32203 : return NULL;
32204 : *pmatch_len_ = 1;
32205 : return gen_peephole2_72 (insn, operands);
32206 :
32207 : default:
32208 : return NULL;
32209 : }
32210 :
32211 : case E_DImode:
32212 : switch (pattern1528 (x6,
32213 : E_DImode))
32214 : {
32215 : case 0:
32216 : x9 = PATTERN (peep2_next_insn (1));
32217 : x10 = XVECEXP (x9, 0, 0);
32218 : x11 = XEXP (x10, 0);
32219 : if (rtx_equal_p (x11, operands[0])
32220 : && (
32221 : #line 6594 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32222 : (!TARGET_AVOID_LEA_FOR_ADDR || optimize_function_for_size_p (cfun)) &&
32223 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32224 : (TARGET_64BIT)))
32225 : {
32226 : *pmatch_len_ = 1;
32227 : res = gen_peephole2_67 (insn, operands);
32228 : if (res != NULL_RTX)
32229 : return res;
32230 : }
32231 : operands[3] = x11;
32232 : if (!register_operand (operands[3], E_DImode)
32233 : || !(
32234 : #line 6621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32235 : ((!TARGET_AVOID_LEA_FOR_ADDR || optimize_function_for_size_p (cfun))
32236 : && peep2_reg_dead_p (2, operands[0])) &&
32237 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32238 : (TARGET_64BIT)))
32239 : return NULL;
32240 : *pmatch_len_ = 1;
32241 : return gen_peephole2_71 (insn, operands);
32242 :
32243 : case 1:
32244 : x9 = PATTERN (peep2_next_insn (1));
32245 : x12 = XEXP (x9, 0);
32246 : if (rtx_equal_p (x12, operands[0])
32247 : && (
32248 : #line 6607 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32249 : (!TARGET_AVOID_LEA_FOR_ADDR || optimize_function_for_size_p (cfun)) &&
32250 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32251 : (TARGET_64BIT)))
32252 : {
32253 : *pmatch_len_ = 1;
32254 : res = gen_peephole2_69 (insn, operands);
32255 : if (res != NULL_RTX)
32256 : return res;
32257 : }
32258 : operands[3] = x12;
32259 : if (!register_operand (operands[3], E_DImode)
32260 : || !(
32261 : #line 6635 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32262 : ((!TARGET_AVOID_LEA_FOR_ADDR || optimize_function_for_size_p (cfun))
32263 : && peep2_reg_dead_p (2, operands[0])) &&
32264 : #line 1202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32265 : (TARGET_64BIT)))
32266 : return NULL;
32267 : *pmatch_len_ = 1;
32268 : return gen_peephole2_73 (insn, operands);
32269 :
32270 : default:
32271 : return NULL;
32272 : }
32273 :
32274 : default:
32275 : return NULL;
32276 : }
32277 :
32278 : case CONST_INT:
32279 : if (peep2_current_count < 3
32280 : || XWINT (x8, 0) != -1L)
32281 : return NULL;
32282 : x9 = PATTERN (peep2_next_insn (1));
32283 : if (pattern1272 (x9,
32284 : -1) != 0)
32285 : return NULL;
32286 : x13 = PATTERN (peep2_next_insn (2));
32287 : x14 = XEXP (x13, 1);
32288 : x15 = XEXP (x14, 0);
32289 : operands[1] = x15;
32290 : if (pattern1815 (x13) != 0)
32291 : return NULL;
32292 : x16 = XEXP (x14, 1);
32293 : operands[2] = x16;
32294 : switch (GET_MODE (operands[0]))
32295 : {
32296 : case E_QImode:
32297 : if (!general_reg_operand (operands[0], E_QImode)
32298 : || GET_MODE (x6) != E_QImode
32299 : || !
32300 : #line 9069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32301 : (peep2_regno_dead_p (3, FLAGS_REG)))
32302 : return NULL;
32303 : *pmatch_len_ = 2;
32304 : return gen_peephole2_86 (insn, operands);
32305 :
32306 : case E_HImode:
32307 : if (!general_reg_operand (operands[0], E_HImode)
32308 : || GET_MODE (x6) != E_HImode
32309 : || !
32310 : #line 9069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32311 : (peep2_regno_dead_p (3, FLAGS_REG)))
32312 : return NULL;
32313 : *pmatch_len_ = 2;
32314 : return gen_peephole2_87 (insn, operands);
32315 :
32316 : case E_SImode:
32317 : if (!general_reg_operand (operands[0], E_SImode)
32318 : || GET_MODE (x6) != E_SImode
32319 : || !
32320 : #line 9069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32321 : (peep2_regno_dead_p (3, FLAGS_REG)))
32322 : return NULL;
32323 : *pmatch_len_ = 2;
32324 : return gen_peephole2_88 (insn, operands);
32325 :
32326 : case E_DImode:
32327 : if (!general_reg_operand (operands[0], E_DImode)
32328 : || GET_MODE (x6) != E_DImode
32329 : || !(
32330 : #line 9069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32331 : (peep2_regno_dead_p (3, FLAGS_REG)) &&
32332 : #line 1196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32333 : (TARGET_64BIT)))
32334 : return NULL;
32335 : *pmatch_len_ = 2;
32336 : return gen_peephole2_89 (insn, operands);
32337 :
32338 : default:
32339 : return NULL;
32340 : }
32341 :
32342 : default:
32343 : return NULL;
32344 : }
32345 : }
32346 :
32347 : rtx_insn *
32348 : peephole2_49 (rtx x1 ATTRIBUTE_UNUSED,
32349 : rtx_insn *insn ATTRIBUTE_UNUSED,
32350 : int *pmatch_len_ ATTRIBUTE_UNUSED)
32351 : {
32352 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
32353 : rtx x2, x3, x4, x5, x6, x7;
32354 : rtx_insn *res ATTRIBUTE_UNUSED;
32355 : x2 = XVECEXP (x1, 0, 0);
32356 : x3 = XEXP (x2, 1);
32357 : if (GET_CODE (x3) == PLUS)
32358 : {
32359 : res = peephole2_48 (x1, insn, pmatch_len_);
32360 : if (res != NULL_RTX)
32361 : return res;
32362 : }
32363 : x4 = XVECEXP (x1, 0, 1);
32364 : x5 = XEXP (x4, 0);
32365 : if (GET_CODE (x5) != REG
32366 : || REGNO (x5) != 17
32367 : || GET_MODE (x5) != E_CCmode)
32368 : return NULL;
32369 : operands[3] = x3;
32370 : switch (GET_MODE (operands[0]))
32371 : {
32372 : case E_QImode:
32373 : if (!arith_or_logical_operator (operands[3], E_QImode))
32374 : return NULL;
32375 : if (register_operand (operands[0], E_QImode))
32376 : {
32377 : x6 = XEXP (x3, 1);
32378 : operands[1] = x6;
32379 : if (memory_operand (operands[1], E_QImode))
32380 : {
32381 : x7 = XEXP (x3, 0);
32382 : if (rtx_equal_p (x7, operands[0])
32383 : &&
32384 : #line 29238 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32385 : (!(TARGET_READ_MODIFY || optimize_insn_for_size_p ())))
32386 : {
32387 : *pmatch_len_ = 0;
32388 : res = gen_peephole2_294 (insn, operands);
32389 : if (res != NULL_RTX)
32390 : return res;
32391 : }
32392 : }
32393 : x7 = XEXP (x3, 0);
32394 : operands[1] = x7;
32395 : if (memory_operand (operands[1], E_QImode)
32396 : && rtx_equal_p (x6, operands[0])
32397 : &&
32398 : #line 29251 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32399 : (!(TARGET_READ_MODIFY || optimize_insn_for_size_p ())))
32400 : {
32401 : *pmatch_len_ = 0;
32402 : res = gen_peephole2_298 (insn, operands);
32403 : if (res != NULL_RTX)
32404 : return res;
32405 : }
32406 : }
32407 : if (!memory_operand (operands[0], E_QImode))
32408 : return NULL;
32409 : x6 = XEXP (x3, 1);
32410 : operands[1] = x6;
32411 : if (nonmemory_operand (operands[1], E_QImode))
32412 : {
32413 : x7 = XEXP (x3, 0);
32414 : if (rtx_equal_p (x7, operands[0])
32415 : &&
32416 : #line 29326 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32417 : (!(TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())))
32418 : {
32419 : *pmatch_len_ = 0;
32420 : res = gen_peephole2_308 (insn, operands);
32421 : if (res != NULL_RTX)
32422 : return res;
32423 : }
32424 : }
32425 : x7 = XEXP (x3, 0);
32426 : operands[1] = x7;
32427 : if (!nonmemory_operand (operands[1], E_QImode)
32428 : || !rtx_equal_p (x6, operands[0])
32429 : || !
32430 : #line 29340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32431 : (!(TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())))
32432 : return NULL;
32433 : *pmatch_len_ = 0;
32434 : return gen_peephole2_312 (insn, operands);
32435 :
32436 : case E_HImode:
32437 : if (!arith_or_logical_operator (operands[3], E_HImode))
32438 : return NULL;
32439 : if (register_operand (operands[0], E_HImode))
32440 : {
32441 : x6 = XEXP (x3, 1);
32442 : operands[1] = x6;
32443 : if (memory_operand (operands[1], E_HImode))
32444 : {
32445 : x7 = XEXP (x3, 0);
32446 : if (rtx_equal_p (x7, operands[0])
32447 : &&
32448 : #line 29238 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32449 : (!(TARGET_READ_MODIFY || optimize_insn_for_size_p ())))
32450 : {
32451 : *pmatch_len_ = 0;
32452 : res = gen_peephole2_295 (insn, operands);
32453 : if (res != NULL_RTX)
32454 : return res;
32455 : }
32456 : }
32457 : x7 = XEXP (x3, 0);
32458 : operands[1] = x7;
32459 : if (memory_operand (operands[1], E_HImode)
32460 : && rtx_equal_p (x6, operands[0])
32461 : &&
32462 : #line 29251 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32463 : (!(TARGET_READ_MODIFY || optimize_insn_for_size_p ())))
32464 : {
32465 : *pmatch_len_ = 0;
32466 : res = gen_peephole2_299 (insn, operands);
32467 : if (res != NULL_RTX)
32468 : return res;
32469 : }
32470 : }
32471 : if (!memory_operand (operands[0], E_HImode))
32472 : return NULL;
32473 : x6 = XEXP (x3, 1);
32474 : operands[1] = x6;
32475 : if (nonmemory_operand (operands[1], E_HImode))
32476 : {
32477 : x7 = XEXP (x3, 0);
32478 : if (rtx_equal_p (x7, operands[0])
32479 : &&
32480 : #line 29326 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32481 : (!(TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())))
32482 : {
32483 : *pmatch_len_ = 0;
32484 : res = gen_peephole2_309 (insn, operands);
32485 : if (res != NULL_RTX)
32486 : return res;
32487 : }
32488 : }
32489 : x7 = XEXP (x3, 0);
32490 : operands[1] = x7;
32491 : if (!nonmemory_operand (operands[1], E_HImode)
32492 : || !rtx_equal_p (x6, operands[0])
32493 : || !
32494 : #line 29340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32495 : (!(TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())))
32496 : return NULL;
32497 : *pmatch_len_ = 0;
32498 : return gen_peephole2_313 (insn, operands);
32499 :
32500 : case E_SImode:
32501 : if (!arith_or_logical_operator (operands[3], E_SImode))
32502 : return NULL;
32503 : if (register_operand (operands[0], E_SImode))
32504 : {
32505 : x6 = XEXP (x3, 1);
32506 : operands[1] = x6;
32507 : if (memory_operand (operands[1], E_SImode))
32508 : {
32509 : x7 = XEXP (x3, 0);
32510 : if (rtx_equal_p (x7, operands[0])
32511 : &&
32512 : #line 29238 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32513 : (!(TARGET_READ_MODIFY || optimize_insn_for_size_p ())))
32514 : {
32515 : *pmatch_len_ = 0;
32516 : res = gen_peephole2_296 (insn, operands);
32517 : if (res != NULL_RTX)
32518 : return res;
32519 : }
32520 : }
32521 : x7 = XEXP (x3, 0);
32522 : operands[1] = x7;
32523 : if (memory_operand (operands[1], E_SImode)
32524 : && rtx_equal_p (x6, operands[0])
32525 : &&
32526 : #line 29251 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32527 : (!(TARGET_READ_MODIFY || optimize_insn_for_size_p ())))
32528 : {
32529 : *pmatch_len_ = 0;
32530 : res = gen_peephole2_300 (insn, operands);
32531 : if (res != NULL_RTX)
32532 : return res;
32533 : }
32534 : }
32535 : if (!memory_operand (operands[0], E_SImode))
32536 : return NULL;
32537 : x6 = XEXP (x3, 1);
32538 : operands[1] = x6;
32539 : if (x86_64_nonmemory_operand (operands[1], E_SImode))
32540 : {
32541 : x7 = XEXP (x3, 0);
32542 : if (rtx_equal_p (x7, operands[0])
32543 : &&
32544 : #line 29326 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32545 : (!(TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())))
32546 : {
32547 : *pmatch_len_ = 0;
32548 : res = gen_peephole2_310 (insn, operands);
32549 : if (res != NULL_RTX)
32550 : return res;
32551 : }
32552 : }
32553 : x7 = XEXP (x3, 0);
32554 : operands[1] = x7;
32555 : if (!x86_64_nonmemory_operand (operands[1], E_SImode)
32556 : || !rtx_equal_p (x6, operands[0])
32557 : || !
32558 : #line 29340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32559 : (!(TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())))
32560 : return NULL;
32561 : *pmatch_len_ = 0;
32562 : return gen_peephole2_314 (insn, operands);
32563 :
32564 : case E_DImode:
32565 : if (!arith_or_logical_operator (operands[3], E_DImode))
32566 : return NULL;
32567 : if (register_operand (operands[0], E_DImode))
32568 : {
32569 : x6 = XEXP (x3, 1);
32570 : operands[1] = x6;
32571 : if (memory_operand (operands[1], E_DImode))
32572 : {
32573 : x7 = XEXP (x3, 0);
32574 : if (rtx_equal_p (x7, operands[0])
32575 : && (
32576 : #line 29238 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32577 : (!(TARGET_READ_MODIFY || optimize_insn_for_size_p ())) &&
32578 : #line 1196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32579 : (TARGET_64BIT)))
32580 : {
32581 : *pmatch_len_ = 0;
32582 : res = gen_peephole2_297 (insn, operands);
32583 : if (res != NULL_RTX)
32584 : return res;
32585 : }
32586 : }
32587 : x7 = XEXP (x3, 0);
32588 : operands[1] = x7;
32589 : if (memory_operand (operands[1], E_DImode)
32590 : && rtx_equal_p (x6, operands[0])
32591 : && (
32592 : #line 29251 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32593 : (!(TARGET_READ_MODIFY || optimize_insn_for_size_p ())) &&
32594 : #line 1196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32595 : (TARGET_64BIT)))
32596 : {
32597 : *pmatch_len_ = 0;
32598 : res = gen_peephole2_301 (insn, operands);
32599 : if (res != NULL_RTX)
32600 : return res;
32601 : }
32602 : }
32603 : if (!memory_operand (operands[0], E_DImode))
32604 : return NULL;
32605 : x6 = XEXP (x3, 1);
32606 : operands[1] = x6;
32607 : if (x86_64_nonmemory_operand (operands[1], E_DImode))
32608 : {
32609 : x7 = XEXP (x3, 0);
32610 : if (rtx_equal_p (x7, operands[0])
32611 : && (
32612 : #line 29326 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32613 : (!(TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())) &&
32614 : #line 1196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32615 : (TARGET_64BIT)))
32616 : {
32617 : *pmatch_len_ = 0;
32618 : res = gen_peephole2_311 (insn, operands);
32619 : if (res != NULL_RTX)
32620 : return res;
32621 : }
32622 : }
32623 : x7 = XEXP (x3, 0);
32624 : operands[1] = x7;
32625 : if (!x86_64_nonmemory_operand (operands[1], E_DImode)
32626 : || !rtx_equal_p (x6, operands[0])
32627 : || !(
32628 : #line 29340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32629 : (!(TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())) &&
32630 : #line 1196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32631 : (TARGET_64BIT)))
32632 : return NULL;
32633 : *pmatch_len_ = 0;
32634 : return gen_peephole2_315 (insn, operands);
32635 :
32636 : default:
32637 : return NULL;
32638 : }
32639 : }
|